by Spencer Wade
The development of new web technologies is one of the reasons programming is such an exciting field. There are few things more pleasing than getting your hands on cutting-edge technology, and bending it to your purposes. New technology turns every day into Christmas for developers, and the gifts just keep getting better and better. This piece will discuss some of the technology that has been released to the programming community, and give some indication of the ways these breakthroughs are being used in the industry. Most of these are already available for commercial and private use, and they are definitely worth keeping an eye on in the coming year.
There are many APIs out today that are mistakenly labeled “HTML5”. This is not the case with getUserMedia. It began its life as a HTML5 device, but was later renamed and hived off to W3C’s WebRTC suite of specifications. The getUserMedia technology, or gUM, gives access to a user’s microphone and camera. As a part of the WebRTC suite of specifications, gUM enables peer-to-peer-in-browser video conferencing. The fact that gUM has other uses means it has been separated from the rest of the suite.
Giving web applications the very same functionality as native applications is the primary mission of gUM, and it goes a long way toward accomplishing this lofty goal. Functionality is the real key in any new technology, and as functionality grows in production browsers, there will be an incredible amount of web-based QR code-readers and augmented reality apps developed.
Scalable Vector Graphics are nothing new in the development industry. They have been around for quite some time in Chrome, Firefox, Opera, and Safari. It was not until Internet Explorer began supporting it in IE9 that SVG became fully realized. Sadly, by this time it was largely overshadowed by HTML5 even though they are, at heart, different tools for different tasks.
SVG has garnered support from all the latest browsers. It has great mobile support on all platforms with the lone exception of versions of Android older than 3.0. There are many online tutorials and articles available that go into much greater detail when discussing SVG and how it may be used. That is a bonus for all of the newbie developers who may not have had any exposure to SVG. It would be a great benefit to anyone starting out with SVG to take the time to visit these sites, and get acquainted with all the ins and outs of this tool.
The difficulty in learning WebGL is a major hurdle for many users, but there are resources available to help with this learning curve. WebGL is not just for game developers either. There have been music videos, excellent graphics, and professional visualizations created with WebGL. Here are some excellent resources to use:
- Raw WebGL 101
- Learning WebGL
- WebGL 101
WebGL can be found on almost all browsers, excluding IE10, and is equally prevalent on mobile operating systems as well. It has been excluded from Internet Explorer 10 due to Microsoft’s refusal to support it. This is an internal decision made by Microsoft, and should not be interpreted as a failure of WebGL.
Traditional image upload dialogue is great, but it can be upgraded by allowing dragging and dropping into the browser rather than navigating through the specific file system. This allows the user to start with a normal file and progressively add enhancements. If the user detects for HTML5 drag and drop support, and locates it, they can replace the input with a drag target for the image. Now when an image is dragged into the target area the FilReader API shows a thumbnail of the image. There are also specifications for writing and manipulating file systems, but, as of today, these are not currently usable due to cross-browser insufficiency. Here are some resources that may be of use:
- The W3C File API
- Exploring the FileSystem API
The technologies described here are only a small sampling of what is available to users in 2013. These tools represent the cutting-edge of web technology, but in a field that changes as fast as this it is only reasonable to assume that the next great tool is already coming down the pipeline. That is just one of the things that make technology so exciting to work with. There is never a dull moment, or a penultimate tool. Things change. Adaptation and enthusiasm are the still the best tools we humans have.