In case you have not been paying attention to the web browser landscape Microsoft is releasing a new browser with Windows 10, Edge. Any product strategy change like this is accompanied with many misc conceptions, lack of knowledge and just plain misinformation. Today I want to cover some topics related to Edge and Internet Explorer's future.
Internet Explorer's Future
First Internet Explorer still has life, but has entered the part of its career when it is just watching the clock till its pension kicks in. That's right, Internet Explorer is still on the payroll, receiving benefits. On August 16 Microsoft Internet Explorer turns 20 years old, which of course is ancient in Internet time. It is by far the oldest browser in the market. I think the only thing that has outlived Internet Explorer in my lifetime is The Simpsons.
Internet Explorer's primary role is to maintain legacy line of business applications till they are replaced. Because of its position in the application life cycle it is not a good business decision to make it learn any more new tricks. However the many years of battle it has seen give it valuable insights to support existing applications for a few more years. Think of it as a temporary bridge to give your enterprise some time to upgrade your front end web applications.
If it were not for legacy critical line of business applications the oldest browser would have been forced to retire several years ago. If you think about it IE has entered a similar phase in its life as mainframes and Cobol. It can still do the work, but will never be able to handle the latest web development trends, architectures and standards efficiently. The plan is to forever freeze the browser with current 2014 standards.
What Internet Explorer offers is secure web platform to run legacy web applications. Internet Explorer Enterprise Mode is the key, allowing enterprises the ability to upgrade their client operating systems to Windows 10 and start using Edge.
While enterprises should not rely on Internet Explorer to be there forever they should leverage it as a stop gap. Enterprise Mode is the safety net keeping enterprises from having to spend untold billions replacing outdated line of business software with updated client web applications. But at the same time these applications should start a full upgrade cycle, with the goal to shed reliance on deprecated and dead technologies and APIs.
Enterprise Mode allows companies to designate web sites to run against Internet Explorer version 7, 8, 9, 10 and Quirks Mode. It also allows most ActiveX controls and deprecated technologies to run without incident. But someday Internet Explorer and the safe haven enterprise mode is will go away. So enterprises should leverage enterprise mode telemetry to identify applications that need to be upgraded and plan to do so sooner rather than later.
Internet Explorer continues to live, but its working days are numbered. Sometime in the not to distant future it will retire. Once it does it will probably move to Florida, play some golf and eat dinner before 5PM. Until then leverage enterprise mode and upgrade those legacy enterprise applications. Remember January 12th Internet Explorer version 8 and 9 no longer supported, leaving Internet Explorer 11 and enterprise mode as the only option to businesses.
When Windows 10 ships at the end of July everyone will have Microsoft Edge with their new operating system. I think there are some misconceptions floating around out there about Edge. First it is not really a new browser, but a fork of Internet Explorer. Think about it as the son of IE. It carries on the family blood line but is young, fast and understands the latest trends. Do not confuse it with hipsters or the lazy youth squatting in a park complaining about life. This is a motivated kid with a sharp brain and energy it is not afraid to use.
“Working on a brand new browser, we’re able to sculpt and imagine what we think the future of the Web will be like,” Clarice Chan
The Edge team keeps stressing the new browser is a fork from the past. This is important because the underlying engines are based on Internet Explorer's code. The big difference is they simply removed code for legacy feature support. Anyone who has ever worked with the code base of an older application can appreciate scar tissue the accumulates over time. Heck anyone who has achieved middle age in real-life understands what I am talking about. One of the problems any product or application has is over time you must keep supporting the promises of the past, even when they are no longer valid.
“We’re working on this thing that’s going to make a big difference in the world, and we believe in how the Web has helped to shape human society over the last 20 years,” says Principal Program Manager Lead Charles Morris. “So helping Microsoft be at the forefront of that — people are really passionate about it.”
By abruptly choosing to no longer support legacy features, features that have no future in the overall context of the modern and future web, Microsoft can free valuable engineering resources to add new feature support. These include security features, new web standards and modern user experiences. Microsoft Edge represents a chance for the browser team to reboot and start with a fairly evergreen browser that focuses on modern web development techniques and standards. Microsoft as well as Google, Mozilla and Opera have all learned from the history of previous browsers and their relationship to consumers and businesses. Going forward Edge will be positioned to adapt to new technologies and standards, which is something developers should be excited to support.
Multiple Device Support
I hesitate to call this a feature, but it is an important strategy point, the Edge team's emphasis on one browser code base across all Windows platforms. This means XBox, Phones, Tablets, Desktops and I assume IoT as well. They will all run the same browser. As a web developer this is very important because it means I can reliably code to recommended standards by organizations like the W3C and ECMA. Microsoft's more aggressive update policies will make our lives easier because we will no longer need to worry about browser fragmentation, at least from Microsoft. Of course there will always be those companies or situations where browsers and operating systems are deliberately not upgraded. But those should be few and far between. If you should find yourself in one of these organizations you still know what you have to work with, but need to be diligent to not allow your platforms to fall too far behind.
Knowing my applications can run across all these different devices is comforting. However it also means you and I need to fully embrace responsive web design. As someone that has been practicing responsive design for the past 4 years I am not concerned. By now it should be second nature. I realize the majority of web developers are just getting started with responsive design. The good news is browsers like Internet Explorer and Edge already support standards that make responsive design work. Edge offers even more with image srcset support. Because the Edge team plans on frequent feature updates I think we will also see support for the new PICTURE element within a year.
One of the problems with other browsers is variations between different platforms. For example there are literally thousands of WebKit based browsers proliferating in the Android ecosystem. Apple has key differences between desktop Safari and iOS Safari. Edge is a Universal application, which enables it to run across all Windows 10 based operating systems.
The Web Should Just Work
Another tactic the Edge team is taking is supporting defacto standards as well as recommended standards. Often Internet Explorer is criticized for not supporting web standards. Many of these accusations are not exactly true. Take touch as an example. Internet Explorer 10 added Pointer Events, which quickly became a W3C recommended standard. However because Apple released its touch API when the iPhone was released most touch enable web sites implement support for Apple's API. What most web developers do not understand is the touch API has been a proprietary Apple API. The Webkit team reverse engineered touch API support and the W3C drafted a standard. Until recently the W3C specification did not reach recommendation status. And it did so with a warning that Apple has the right to sue over patent infringement.
Since most developers took advantage of iOS's popularity and WebKit's touch API support to author sites that bid to the API. While Pointer Events are clearly superior to supporting touch, mouse and other input APIs developer's simply were not leveraging the API or abstraction libraries like DeepTissue. So last year the Internet Explorer team added support for the touch API (on the phone), acknowledging it as a defacto standard.
Jansen and others also meet regularly with people from companies like Google and Mozilla, as well as the World Wide Web Consortium, to help ensure standardization of Web content. Despite the competitiveness among people working on different browsers, “we all want sort of the same thing, which is that the Web just works, and that people enjoy browsing,” - Microsoft Jobs Article
Other examples of where other browsers do not implement a specification completely or some non-standard API exist. So the Edge team is adjusting support to enable sites written to the defacto standards. Another example involves CDN hosted font files. The way the specification is written the server must have a cross origin policy (CORS) in place for the font files. Many servers do not. If the CORS policy is not present the browser should log an error. However Internet Explorer seems to be the only browser implementing the specification, causing it to not properly load many third party font files. Edge will change this problem by relaxing support from the recommended specification to the defacto standard.
While relaxing from recommended standards is not the best strategy, it does enable to the web to work better. I am on the fence about this, but understand the position. My personal feeling is disgust at browsers like Chrome not properly implementing a standard. I don't want to sound like I hate Chrome it is really developers thinking Chrome perfectly implements standards. The reality is FireFox, Opera, Safari, IE, etc all fail at some point. Edge cases always ship, etc. But I think the reality is many of these edge cases are just that, edge and not primary standards. However they do cause some issues that show up in strange places, like the cross origin font file example.
If you go to about:flags in the Edge address bar you will be greeted with a page to enable various experimental features. As I am writing this post two features I have tested are ES6 generators and ASM.js support. As those specifications reach recommendation status and the implementation is polished they will move from the about flags to just being supported. New experimental features will replace them in the settings and can be enabled and disabled as needed.
About flags enable me as a developer to start writing code against a proposed standard to see if it works for my applications. I can also provide feedback to the team and standards bodies. This feedback loop will enable the standard to be refined and made better before it is finalized. It also helps browser teams to flesh out any bugs or implementation issues.
Not everything is hidden behind an about flag. Edge offers many new HTML5, ECMAScript and CSS feature support. In fact there are over 3000 new features supported. You may be saying, 3000 really? Yes, there are many details to modern web standards. Often they are rolled up into higher level feature sets. Scorecard sites often check for high level feature support, giving a browser full credit for a feature. Often the reality is deeper feature support is missing or not properly implemented. Sometimes these sites give a browser credit for supporting features that are not standards, so take their scores with a grain of salt.
I think the more important aspect Edge offers is more frequent feature update cadence. Because the team no longer needs to worry about legacy browser engine support implementing new features becomes easier. The team has also announced they are planning on a different update cadence schedule. In fact schedule is not really the best term, my impression is when a feature is ready they are going to ship it. So not every quarter or every 6 weeks, but when it is ready. I like this because I hate waiting on something to ship I know the team has completed just because a major operating system update is not scheduled.
If you want to keep current on feature support please visit the Edge teams' status page. Here you can filter for your desired specification and see when and if Edge and Internet Explorer supports the feature. It will also tell you if other browsers implement support and point you to the specification. Not only do I find where different browser are in supporting a feature I find many specifications I did not know existed. So I encourage you to visit the site at least once a month and check for updates.
Microsoft Edge marks an important point in the Microsoft browser history time line. It is not completely the end of the Internet Explorer, it lives but is moving to a new role and will retire in the near future. Edge is a fresh start, a place for a new Microsoft to provide a platform for developers like me to build today's and tomorrow's modern user experiences.
In the meantime you should watch some of the presentations made the recent Build, Ignite and Edge Development Summit about Edge and Internet Explorer: