This document discusses Chris Wilson's experiences in the development of web technologies and browsers over several decades. It provides lessons learned from working on NCSA Mosaic in the early days of the web, joining Microsoft to work on Internet Explorer, the rise of dynamic web technologies like DHTML and XMLHttpRequest, and the mobile revolution. Key lessons include the importance of structure, securing networks, letting serendipity guide innovation, optimizing for user experience, integration across platforms, and making magic happen on the web.
33. Lesson 10
Have clear goals.
(aka: “Be careful what you
optimize for.”)
34. “Now is the time for the medium of the web to outgrow its origins in
the printed page. Not to abandon so much wisdom and experience,
but to also chart its own course, where appropriate.”
- John Allsopp, “A Dao of Web Design” - 2000
51. Why didn’t the iPhone = mobile Web explosion?
•None of that cool stuff was exposed in web platform
•No accelerometer, geolocation, audio input, touch
events, ... and a slow JavaScript engine!
52. Why didn’t the iPhone = mobile Web explosion?
•None of that cool stuff was exposed in web platform
•No accelerometer, geolocation, audio input, touch
events, ... and a slow JavaScript engine!
•No app store!
53. Access to capabilities in the Web is catching up
•2D/3D graphics, storage, geolocation, integration
into “native OS”, audiovideo IO, touch, ...
•Dive computer is barely still an outlier
Good afternoon. So I get to give the least technical talk of this deck - it’s time to relax a bit, I’m not going to teach you any hot new JavaScript techniques if you listen hard enough. This talk is partly future-focused, but a lot of it is the history of the web platform and a bit of the first browser war, from my personal perspective and more interestingly, the lessons I have learned along the way, some painfully. And even though my non-compete agreement with Microsoft expired a year ago, there’s not too much MS-bashing.\n\nI’ve also never managed a run-thru of this talk in under 40 minutes, so if I talk really fast - that’s why.\n\n
As Nick said, \nI’ve been working on web stuff since 1993, when I worked on Windows Mosaic at NCSA,... \nThis is me, when I began working on the web platform - this picture was taken at the first web conference ever, the “Web Wizards Workshop” that OReilly hosted in 1993.\n\nAs I was building this talk, my nearly 8-yo daughter was looking over my shoulder at this picture and said, “Daddy, who’s THAT?” When I told her it was me, she said “you look REALLY different”, but she wouldn’t answer when I asked her if that was a good or bad thing. She’s a smart kid.\n\nIn 1993, the idea came up to take the software a couple of guys at NCSA had come up with on X Windows called Mosaic, which accessed Internet content over FTP, gopher, and some new thing a guy in Switzerland had come up with called the world wide web, and used a prototype document language called HTML.\n\n
So I co-wrote the Windows version of NCSA Mosaic - and that is pretty much what happened to the last 19 years of my life.\n\n
This has, by the way, utterly RUINED the word “Mosaic” for me. I never get a mental image like this when somebody says that word.\n
Keep in mind at this point you didn’t even typically have network support for Windows - Windows didn’t come with an implementation of TCP/IP - the underlying Internet protocol. You could buy a separate package from a third party that gave you networking; that was usually a hundred bucks or more. Then you had to actually pay for dialup service, which was measured in dollars per minute in those days!\n But at NCSA, we already had our own network stack from our PC telnet work - so we got the network stack running in Windows, and then we built the HTML parsing and rendering stuff, and then Mosaic was up and running. When we put the very first version of Windows Mosaic up on the FTP server, and I remember we were cheering when we saw that we ticked past 1,000 downloads in a week. For contrast, we have 310million active Chrome users - when we ship a new version, once every six weeks or so, we convert about a quarter of our users in the first DAY. That means we’re doing that 1000 downloads about every second. Tick.\n \n
But what was really surprising was that the game DOOM came out this same year, and yet we still managed to get work done on Mosaic. We had a massive projector room with a good stereo sound system in our office - a conference room called the Fishbowl.\n
Now I want to underscore that we were college kids, driving this project, with no idea what we were doing. I was leading the PC software tools team, and I was only two years out of university. My team was all grad students and undergraduates. We got to build Mosaic, even though it wasn’t part of our original charter, because it was an interesting software tool for education and research - which was NCSA’s overall charter. We had a lot of freedom to build tools that would help education - there was, like much of the first dotcom boom, NO business plan behind this. There were, though, some amazing concepts behind this.\n
Not just the freedom to explore DOOM - but the freedom to explore ideas that might seem kinda out there, or unrelated to your core mission. This is one of the many core values that impress me at Google; it’s hard to see how self-driving cars directly affect Google’s bottom line.\n
That said, freedom to explore is not always a good thing. For some reason, I thought it would be neat to be able to overlap bold and italic tags, so I hacked away at the sanity that was the stack-based parser in Sir Tim’s libwww until I could overlap them. I remember going in and showing this to Eric Bina, one of the lead developers on the XWindows Mosaic, and getting a “WTF?” look from him. To this day, I consider this my worst contribution to the world.\n
\n
But we did have some insightful ideas behind that early web. At NCSA - in fact, in Sir Tim B-L’s original concept, there was this idea that the cool thing about the web was that everyone could be an author, that everyone would generate content - everyone would have their own web server! I clearly remember the wacky and random content that was out there at this time; for example, a guy named kevin hughes from the honolulu community college, who put up the HCC dinosaur museum exhibit as a web page. It was amazing the kind of things we started to see. \n\nKeep in mind, the competition to the Web was Gopher - you had to pay for the server, \n\nIn fact, we implemented, even in this browser that was totally primitive by today’s standards (no CSS, no Javascript, no HTML tables, not even any real font control!!) a group annotation feature. For any web page, you could write annotations on a common server, and whenever anyone in your “group” visited a web page you had written annotations for, they saw the annotations too.\n\nWe also had the idea that web server software should be free, and everyone should run a server on their machine. Keep in mind that at the time, firewalls were exceedingly uncommon - I ran a web server on the PC in my office that was accessible world-wide, and there was no firewall to get to it. \n\nIn fact, we wrote a networked space dogfight game as a student project, using the NCSA Telnet networking code. After we’d been playing it for a while, I had a brainstorm one day, and realized that I’d never explicitly disabled the background FTP server code in the PC telnet networking library. Sure enough, I had a friend of mine run the game, and I could FTP in to his machine and copy files off it! \n
\n
I WAS the AIRMosaic team. We had as many resources assigned to the FTP app or the Gopher app as we did to the web browser.\n\nThe less said about my time at SPRY, the better. Although I did gain my best friend from that experience. And a strong affinity with Dilbert cartoons.\n\n
Joined IE right before shipping IE2.0 - did one checkin\n\nSpyglass - “rewrote all code from scratch”?? Umm, pretty sure that was my line layout code architecture... not that I’m particularly proud of it...\n
First implementation of CSS in browser - Was asked to do Frames, but said “hey, look at this CSS stuff - Netscape doesn’t do this...”\n\nIE - componentization was a great thing - at the time, I didn’t completely understand - I’d used HTTP library.\nComponentization of browser\n
Now it was sometime about this time when a few Netscape engineers went out drinking and decided to come up with a tag that would cause the text to blink.\n\nNote that to this day, even according to the current CSS3 draft, conforming user agents are not required to blink the text - that was my doing, in CSS1. I was already trying to atone for those overlapping bold and italic tags.\n
Of course, Microsoft could not let this beautiful feature go unchallenged - so they implemented the autoscrolling, rotatable, BLINK-on-steroids: The MARQUEE element. You could control the scrolling speed! Whether it looped or not! Yes, indeed, we managed to outblink the BLINK tag.\n\nThe really depressing part is that <MARQUEE> was designed, implemented, tested and deployed stone-cold sober.\n\nThis element turned out, for a period of time, to be heavily used in some vertical text markets, particularly Korea as I recall - because it let the HTML author format text that looked correct for vertical Korean, so a lot of users could stop looking like this [tilt head].\n
So both of these innovations taught me to respect serendipity - making desirable discoveries by accident. CSS support was obviously a world-changing feature, even though I&#x2019;d mostly been drawn to it to make better-laid out pages, not to separate content and presentation.\n
It&#x2019;s also tempting, of course, to take away the lesson that people simply like flashy stuff.\n\nIn fact, I would be remiss in discussing IE3 if I didn&#x2019;t mention that bundled with IE3 was possibly Microsoft&#x2019;s finest and most impressive software package ever, after Microsoft Bob...\n\n
\nMicrosoft Comic Chat! This package let you have live IRC chats with a cartoon interface.\n\nSeriously, though - I thought Comic Chat was pretty cool, because it layered a radically different interface on top of an Internet service - something that Microsoft typically didn&#x2019;t do much of - and it was entertaining to have IRC chats about CSS with a comic-book interface.\n
Trident was a different team - Jeff Webber - &#x201C;we&#x2019;re fucked&#x201D;\n Asked to join after shipping IE3 - CSS story.\n \n
IE4 was dynamic. NN had to hack resize to not reload. Mosaic resized.\n document.images, document.links had been the only way to do dynamic\n innerHTML-&#x201C;Object Model&#x201D;\n layers vs CSS positioning\n When I was asked to join the IE4 team, I was told I&#x2019;d be in the &#x201C;Object Model&#x201D; team. My response was &#x201C;what&#x2019;s that? The JavaScript team? But I thought you wanted me to do stylesheets?&#x201D;\n
Interaction is critical\n\n
I&#x2019;m sure some of you remember this quote from Marc Andreessen, co-founder of Netscape. This may seem like a cheap shot against Microsoft, and I really don&#x2019;t intend it as such. Obviously, I didn&#x2019;t believe Marc's statement then, as I continued to work for Microsoft for another 15 years; I don&#x2019;t really believe it now, because I think they&#x2019;re quite well-debugged device drivers. \n \n What I don&#x2019;t think I expected, or realized, is that my expectations of what computing is would change so much. For context - Marc&#x2019;s statement was made five years before the first iPod was released - before the mass adoption of MP3 music. 12 years before the first iPhone was released. Think of how much computation functionality has happened since then. Before Lightroom (by TEN YEARS!). Eights years before the Canon Digital Rebel (that&#x2019;s right, at the time high-quality digital photos were hard to come by). I put up a page around this time on how to build bamboo didgeridoos, and I made ASCII art because I didn&#x2019;t have a digital camera. If you asked me what I worry about backing up most today, I would say my photo library - 30,000+ photos or so - followed by my movie library. My music and documents are already in cloud storage.\n \n
\n
IE4 took IE from 20-30% to 60%.\n\nDon&#x2019;t agree with everything it did\nBut - AMAZING leap forward. We would not have the platform we have today if not for IE4.\n
Some things weren&#x2019;t dynamic in IE4 - <input> type, layout\nThis was a problem\n
Another fine Microsoft product:\nDOCTYPE and quirks mode\nCART Precision racing\n
\n
XHR, Alex Hopmann\nOWA needed, MSXML.DLL was convenient vehicle\n\n
SMIL Animation - we just drove animation through OM properties. WTF?\n\nMore of same - Lacked clear end goal.\nFinally had WebOS, wasn&#x2019;t everything it was cracked up to be. ActiveDesktop.\nPost IE6 - refocused team on WPF - .Net 3.0 platform. &#x201C;Take lessons from Web, do a platform right.&#x201D;\n\n
Only now are we getting grid and flow layouts - \nWPF had this in 2001 - and plenty of other systems before that.\n
This helps you reduce complexity.\n
For example, let&#x2019;s cast our minds back eleven years, to John Allsop&#x2019;s seminal &#x201C;Dao of Web Design&#x201D; article on A List Apart. In it, with much foresight he said this - now is the time for the web to outgrow its origins in the printed page. I agree with this strongly, although I would say the goal is to grow beyond the constraints of previous media. John also said, &#x201C;This is not to say we should abandon the wisdom of hundreds of years of printing and thousands of years of writing. But we need to understand which of these lessons are appropriate for the web, and which are mere rituals.&#x201D; With that in mind, I wanted to mention...\n
Platform in IE, mashups, Maps!!\n
The power of the Web is not just reach, but combining sources.\n
In 2004, Microsoft finally realized that their users did in fact want a new version of IE - and not just to fix the security problems in earlier versions. So I guess that was a user focus of a sort. In October 2006, we released IE7.\n\nThis is the last direct reference to IE or Microsoft I&#x2019;ll make - you&#x2019;re free to ask me to dig in to the rest of IE&#x2019;s history, or why I left Microsoft, at the pub later.\n\nBut this time period - from 2000 through around 2008, really - was a critically important time for computing and the Web. This was the advent of Web 2.0. \n
This statement by Ben Galbraith was one of the best summaries of the changing focus of the web in the mid-2000s. I think everyone should care - and care deeply - about their user&#x2019;s experience.\n
In fact, the experience your users have should be the core of what you develop around;\n\nMicrosoft fails in this now, in my opinion, because they are still focused on attracting developers to build Windows apps. I don&#x2019;t care if you build Windows apps, Mac apps, iOS apps, or Android apps. I care about whether I can get to your app from whatever happens to be in my hand, and how easy it is to use.\n\n
The reason I bring this up now is that at the time the iPhone was released, I was over thirty-five. It was against the natural order of things. But nowhere else did the usability revolution move faster than in mobile. Five and a half years ago, when the iPhone was released, I had one of these. - a Samsung Blackjack, with a web browser and the ability to install native Windows CE apps; it automatically synced with my email, calendar and contacts in Exchange server over the air. It gave me access to the WSDOT Traffic map - for anyone who lives in Seattle and commutes over the 520 bridge, a godsend. In fact, that feature alone was why I bought it. This was already magical.\n\nSo why was the iPhone so ground breaking? In short, because it enabled building responsive, engaging mobile experiences, because of all the amazing interactivity - Touch screen is amazingly engaging, Accelerometer as a real controller, and more. Oh yeah, and an app store that made it easy to get new experiences.\n\n
The reason I bring this up now is that at the time the iPhone was released, I was over thirty-five. It was against the natural order of things. But nowhere else did the usability revolution move faster than in mobile. Five and a half years ago, when the iPhone was released, I had one of these. - a Samsung Blackjack, with a web browser and the ability to install native Windows CE apps; it automatically synced with my email, calendar and contacts in Exchange server over the air. It gave me access to the WSDOT Traffic map - for anyone who lives in Seattle and commutes over the 520 bridge, a godsend. In fact, that feature alone was why I bought it. This was already magical.\n\nSo why was the iPhone so ground breaking? In short, because it enabled building responsive, engaging mobile experiences, because of all the amazing interactivity - Touch screen is amazingly engaging, Accelerometer as a real controller, and more. Oh yeah, and an app store that made it easy to get new experiences.\n\n
The reason I bring this up now is that at the time the iPhone was released, I was over thirty-five. It was against the natural order of things. But nowhere else did the usability revolution move faster than in mobile. Five and a half years ago, when the iPhone was released, I had one of these. - a Samsung Blackjack, with a web browser and the ability to install native Windows CE apps; it automatically synced with my email, calendar and contacts in Exchange server over the air. It gave me access to the WSDOT Traffic map - for anyone who lives in Seattle and commutes over the 520 bridge, a godsend. In fact, that feature alone was why I bought it. This was already magical.\n\nSo why was the iPhone so ground breaking? In short, because it enabled building responsive, engaging mobile experiences, because of all the amazing interactivity - Touch screen is amazingly engaging, Accelerometer as a real controller, and more. Oh yeah, and an app store that made it easy to get new experiences.\n\n
So from 1997 to 2007, in ten years, I went from this cutting-edge Motorola MicroTAC...\n
to being able to hold my cell phone up in the air and have it tell me what music is playing, having the entire world map in my hand - whichs means I NEVER HAVE TO STOP TO ASK FOR DIRECTIONS - and coolest of all, I can hold my phone up in the air and have it show me a live map of the stars and planets I&#x2019;m looking at, so I can actually tell my daughters real constellation names instead of making them up - &#x201C;the princess&#x201D;, &#x201C;the donkey&#x201D; - in short, I have endless educational opportunities at my fingertips. I already had a star map. Why is this so cool? Because I don&#x2019;t have to pull out a compass, a watch and a protractor to figure out what constellation I&#x2019;m looking at. It&#x2019;s a much better, smoother, easier to use experience. And I&#x2019;m learning - I can actually find Cassiopeia in the night sky without my app.\n
And of course, the iPhone raised the bar across the board for mobile platforms. In fact, for me personally, after I&#x2019;d acquired an iPhone, and Microsoft was trying to figure out what its mobile story was after Mobile 5, I recall making this skeptical statement to a friend - I had a guitar in my office, and I used my iPhone as my guitar tuner. This quickly became a critical feature for me - I didn&#x2019;t want to have to keep another guitar tuner around. In short, I was saying Windows Mobile&#x2019;s future success rested on the number and quality of apps in its app store.I&#x2019;ve used a guitar tuner on iOS, Android, and even Windows Phone 7 - ultimately, my choice of which phone to carry in my pocket comes down to one factor, and only one - can you guess? Battery life.\n
And of course, the iPhone raised the bar across the board for mobile platforms. In fact, for me personally, after I&#x2019;d acquired an iPhone, and Microsoft was trying to figure out what its mobile story was after Mobile 5, I recall making this skeptical statement to a friend - I had a guitar in my office, and I used my iPhone as my guitar tuner. This quickly became a critical feature for me - I didn&#x2019;t want to have to keep another guitar tuner around. In short, I was saying Windows Mobile&#x2019;s future success rested on the number and quality of apps in its app store.I&#x2019;ve used a guitar tuner on iOS, Android, and even Windows Phone 7 - ultimately, my choice of which phone to carry in my pocket comes down to one factor, and only one - can you guess? Battery life.\n
In fact, I&#x2019;m happy to report as we recently enabled audio input in Chrome Canary in the Web Audio API, there is now a pure JavaScript guitar tuner available - i wrote one, too, but Craig Spence&#x2019;s is both far better and far prettier.\nso the web can be my guitar tuner too! So the web is better than Windows Mobile a couple years ago. \n
But at that point, I WAS already a passionate and long-time advocate of the web platform. So with the vast use of the iPhone&#x2019;s web connection, why didn&#x2019;t the iPhone&#x2019;s popularity cause a revolution in the mobile web platform? Native apps on the iPhone exploded, of course, but as someone who bought an iPod touch just to carry the web around my house in the palm of my hand, I was clearly an outlier. \nWell, none of the cool stuff was there in the web platform on the iPhone. No accelerometer, geolocation, audio input, even touch input. And the Javascript engine was not as fast as native code, by a long shot.\nFinally, there was no app store. How do you discover the &#x201C;Top 25&#x201D;? &#x201C;Trending&#x201D;? I&#x2019;ve seriously lost count of how much money I&#x2019;ve spent in the Apple app store. 99&#xA2;? Hell yeah! I spent four times that on my latte this morning!But with all these pieces missing, it kinda tanked having dynamic maps, the star map, and the music identification app, and the guitar tuner. I can&#x2019;t completely blame Apple here - after all, there were no standards for these things at the time, of course - and it has worked out quite well for them. But today, we&#x2019;re poised on the verge of that all changing.\n
But at that point, I WAS already a passionate and long-time advocate of the web platform. So with the vast use of the iPhone&#x2019;s web connection, why didn&#x2019;t the iPhone&#x2019;s popularity cause a revolution in the mobile web platform? Native apps on the iPhone exploded, of course, but as someone who bought an iPod touch just to carry the web around my house in the palm of my hand, I was clearly an outlier. \nWell, none of the cool stuff was there in the web platform on the iPhone. No accelerometer, geolocation, audio input, even touch input. And the Javascript engine was not as fast as native code, by a long shot.\nFinally, there was no app store. How do you discover the &#x201C;Top 25&#x201D;? &#x201C;Trending&#x201D;? I&#x2019;ve seriously lost count of how much money I&#x2019;ve spent in the Apple app store. 99&#xA2;? Hell yeah! I spent four times that on my latte this morning!But with all these pieces missing, it kinda tanked having dynamic maps, the star map, and the music identification app, and the guitar tuner. I can&#x2019;t completely blame Apple here - after all, there were no standards for these things at the time, of course - and it has worked out quite well for them. But today, we&#x2019;re poised on the verge of that all changing.\n
One big reason I&#x2019;m convinced the web platform will succeed as the universal platform is that access to capabilities in the web platform is catching up. We have storage, file system, geolocation, a variety of sensor apis, 2D and 3D graphics, touch events... and promotion as first-class applications in several different web browsers. In fact, Chrome&#x2019;s &#x201C;Create Application Shortcut&#x201D; is why I installed Chrome almost immediately after they shipped their first public release, and had it on pretty much every machine I owned from then on. I wanted a Gmail icon on my desktop.I&#x2019;ll take a stand here too - I hope the concept of App Stores will take off on the Web, too. Not as a way of limiting users to one browser, OS or source of applications - but as the app equivalent of a trusted storefront promoting multiple vendors&#x2019; products. It could happen, right? Hope springs eternal. &#xA0;Look at me - I&#x2019;ve lived in Seattle for the past sixteen years, and for pretty much all that time I&#x2019;ve owned a convertible.\n
End-to-end integration\nOffline support - offline in IE 5.5/6.0\nApp entry point is critical \nChrome&#x2019;s &#x201C;Make App Shortcut&#x201D;\nHotlist, bookmarks, shortcuts - IE 1.0 features\nSysApps FTW?\n\n