If you work in the business of generating web pages to display to users, you need to know: there's going to be some major changes in the browser landscape over the next year or three.
There are several things going on out there. Any one of them could make a serious difference to the web at large - but they're all either happening right now, or imminent.
I'm not sure I believe that precise graph of price vs. time (or even that I read it right) but I don't think they're wrong by more than a factor of two on either axis. Smartphones (more accurately, pocket frackin' computers[2]) are going to go mass market, and soon.
In 2010, smartphones sold roughly 300,000,000 units. That's about the same as the number of desktop PCs sold in the same period, apparently. This year, they're going to sell more. When those $100 beasties hit, it's going to seem like everyone's got one.
I did some ad-hoc performance testing recently. Mobile safari on iOS 4-point-(mumble) on an iPhone 3GS was about a factor 10 slower than Chrome 8 on my workstation. So: only 10 times slower than one of the fastest browsers out there running on much beefier hardware. That's comfortably in the same league as (probably even somewhat faster than) IE8 on the same workstation. It leaves IE7 in the dust.
Add those two items together (low prices + web capability) and you get: mobile devices are going to become a very popular way to access the web. This is going to happen fast - if we're lucky, we've got a year or two to prepare for it. Right now, I'm seeing mobile safari at about 1.5% to 3% of sessions on the websites I work on. That's up from basically zero 12 months ago.
All those browser support conversation, where you say things like "we'll support all the browsers over 5% market share in our stats"? They're going to get gate-crashed by mobile devices in less than 12 months' time, quite possibly less than 6. Maybe not any one browser on its own, but in aggregate, it all adds up fast.
The only thing I can see slowing this down is the mobile phone operators, and their we're-not-price-gouging-our-customers-honest-guv data payment plans. Even on that front, for $100 or so, I'd be seriously considering buying one of these beasties for use via wi-fi hotspots only (hell, that covers my house and garden, for starters - anything else is a bonus) and screw the phone people.
The good news is that they mostly follow the standards. If you can:
All the other desktop browsers are an order of magnitude faster than IE8, which is itself significantly quicker than IE7 and 6. IE9 is going to be seriously competitive with everyone else. Don't get me wrong, performance is still an issue, but the browsers are now probably less of a bottleneck than your code is.
Now, that's not bleeding-edge, but it's sure as hell quick enough to run non-trivial things at a sensible speed. Remember: there was a perfectly-playable port of Lemmings to JS done years ago, before all this optimisation occurred. Some of the stuff that people are doing out there in browser-specific-tech-demo land is amazing (like, real-time-chromakey[5], real-time hardware-accelerated 3D graphics[6])
So: You can now write real app-scale code in websites browsers. This has started to get through to people, though I still see a lot of comments like "javascript is a toy, you can't do anything serious with it" from people who really should know better, if only because it's been smacking them in the face for a year or two now.
The possibilities for mobile devices to run really cool things via pure web tech are much greater than most people realise - and web tech runs on all of them without having to port to a zillion different native development environments, or get sign-off from Apple before you can ship anything. [7]
[1] http://tech.fortune.cnn.com/2010/12/22/2011-will-be-the-year-android-explodes/
[2] Not that long ago, the state-of-the-art in phone games was "snake". An iPhone 3GS (which is now moderately old hat, tech wise) has far more computational shove than the system I used to play Half-Life all the way through. Yeah, these things happen to be phones, but, first and foremost, they're full-on pocket computers. People just haven't really cottoned on to that bit yet, because the future just went and snuck up on us.
[3] http://www.quirksmode.org/blog/archives/2009/10/there_is_no_web.html [8]
[4] On sites I interact with professionally, I'm still seeing IE6 at about 5-8% and IE7 at 12-20%. I can't quite pull the trigger yet, but IE6's days are numbered.
[5] https://developer.mozilla.org/samples/video/chroma-key/index.xhtml works in firefox 3.5 and up, allegedly. No idea about other browsers.
[6] http://webglsamples.googlecode.com/hg/aquarium/aquarium.html. You'll need a Firefox 4 beta or another WebGL-enabled browser (I believe the pre-release chrome builds can do it too, though I've not confirmed it personally)
[7] I hear the cry: "How do people make money from web apps?". That requires rather more prognosticating than I'm willing to commit to right now. One possibility is Operator Billing - it's going great guns in Africa. But that requires the mobile phone networks to be more forward-sighted than "give us $LOADSAMONEY-per-byte, and Get Orf OurLand Network" and "new handset is 10% better than old one, upgrade now!", so colour me somewhat skeptical for the moment.
[8] On the subject of mobile browser landscape and mobile web, just read everything PPK writes. Even if/when he's wrong (not often, on past track record) he's wrong in interesting and educational ways.
There are several things going on out there. Any one of them could make a serious difference to the web at large - but they're all either happening right now, or imminent.
Mobile devices are going be everywhere.
I'm seeing reports[1] that at least one major chipmaker is planning to ship a system-on-a-chip imminently which they reckon will allow roughly-iPhone-3GS-equivalent handsets to sell at retail, without contract, for ~$100. Those things are going to be hitting the high street in less than 6 months.I'm not sure I believe that precise graph of price vs. time (or even that I read it right) but I don't think they're wrong by more than a factor of two on either axis. Smartphones (more accurately, pocket frackin' computers[2]) are going to go mass market, and soon.
In 2010, smartphones sold roughly 300,000,000 units. That's about the same as the number of desktop PCs sold in the same period, apparently. This year, they're going to sell more. When those $100 beasties hit, it's going to seem like everyone's got one.
Mobile devices are not second class web citizens any more
These things have proper browsers on them. Most are webkit-based (like Chrome and Safari) so they do proper standards-based rendering, including lumps of the new CSS3 whiz-bangs. They have proper javascript engines with better performance than you may expect.I did some ad-hoc performance testing recently. Mobile safari on iOS 4-point-(mumble) on an iPhone 3GS was about a factor 10 slower than Chrome 8 on my workstation. So: only 10 times slower than one of the fastest browsers out there running on much beefier hardware. That's comfortably in the same league as (probably even somewhat faster than) IE8 on the same workstation. It leaves IE7 in the dust.
Add those two items together (low prices + web capability) and you get: mobile devices are going to become a very popular way to access the web. This is going to happen fast - if we're lucky, we've got a year or two to prepare for it. Right now, I'm seeing mobile safari at about 1.5% to 3% of sessions on the websites I work on. That's up from basically zero 12 months ago.
All those browser support conversation, where you say things like "we'll support all the browsers over 5% market share in our stats"? They're going to get gate-crashed by mobile devices in less than 12 months' time, quite possibly less than 6. Maybe not any one browser on its own, but in aggregate, it all adds up fast.
The only thing I can see slowing this down is the mobile phone operators, and their we're-not-price-gouging-our-customers-honest-guv data payment plans. Even on that front, for $100 or so, I'd be seriously considering buying one of these beasties for use via wi-fi hotspots only (hell, that covers my house and garden, for starters - anything else is a bonus) and screw the phone people.
It's the browser wars all over again
All these new devices come with their own browsers and, unfortunately, there are loads of the buggers [3]. They're all subtly different. They're all running on different hardware, with different screen sizes. You're really, really, really, going to have to test on the real damn hardware.The good news is that they mostly follow the standards. If you can:
- persuade the photoshop weenies to give up on pixel-perfection ('cos the screen dimensions are all over the show)
- do at least a bit of work to tailor the design to the realities of small screens (by dumping cosmetic fripperies and focusing on making the site suitable for whatever it's supposed to actually do)
- refactor all the UI stuff to cope with touch instead of/as well as mouse interactions (which is quite a big deal, especially if the site's supposed to do any quantity of data entry)
- avoid the real bleeding-edge stuff like webGL
Javascript performance has just gone up like a rocket.
IE is still the biggest desktop browser, and it sucks, especially the older versions. On the desktop, almost everyone still has to support IE6/7[4]All the other desktop browsers are an order of magnitude faster than IE8, which is itself significantly quicker than IE7 and 6. IE9 is going to be seriously competitive with everyone else. Don't get me wrong, performance is still an issue, but the browsers are now probably less of a bottleneck than your code is.
Now, that's not bleeding-edge, but it's sure as hell quick enough to run non-trivial things at a sensible speed. Remember: there was a perfectly-playable port of Lemmings to JS done years ago, before all this optimisation occurred. Some of the stuff that people are doing out there in browser-specific-tech-demo land is amazing (like, real-time-chromakey[5], real-time hardware-accelerated 3D graphics[6])
So: You can now write real app-scale code in websites browsers. This has started to get through to people, though I still see a lot of comments like "javascript is a toy, you can't do anything serious with it" from people who really should know better, if only because it's been smacking them in the face for a year or two now.
Conclusions
Mobile devices are going to become at least a significant way of accessing the web within months. In the long run, a good chance of becoming the dominant way. That's long run in internet time - I'll go out on a limb and say: 5 years, maybe. Mobile devices are probably going to be what finally rams the stake through the hearts of IE6, 7 and maybe 8 (with Firefox and Chrome cheering from the sidelines).The possibilities for mobile devices to run really cool things via pure web tech are much greater than most people realise - and web tech runs on all of them without having to port to a zillion different native development environments, or get sign-off from Apple before you can ship anything. [7]
The references I can be arsed finding, with added footnotes
[1] http://tech.fortune.cnn.com/2010/12/22/2011-will-be-the-year-android-explodes/
[2] Not that long ago, the state-of-the-art in phone games was "snake". An iPhone 3GS (which is now moderately old hat, tech wise) has far more computational shove than the system I used to play Half-Life all the way through. Yeah, these things happen to be phones, but, first and foremost, they're full-on pocket computers. People just haven't really cottoned on to that bit yet, because the future just went and snuck up on us.
[3] http://www.quirksmode.org/blog/archives/2009/10/there_is_no_web.html [8]
[4] On sites I interact with professionally, I'm still seeing IE6 at about 5-8% and IE7 at 12-20%. I can't quite pull the trigger yet, but IE6's days are numbered.
[5] https://developer.mozilla.org/samples/video/chroma-key/index.xhtml works in firefox 3.5 and up, allegedly. No idea about other browsers.
[6] http://webglsamples.googlecode.com/hg/aquarium/aquarium.html. You'll need a Firefox 4 beta or another WebGL-enabled browser (I believe the pre-release chrome builds can do it too, though I've not confirmed it personally)
[7] I hear the cry: "How do people make money from web apps?". That requires rather more prognosticating than I'm willing to commit to right now. One possibility is Operator Billing - it's going great guns in Africa. But that requires the mobile phone networks to be more forward-sighted than "give us $LOADSAMONEY-per-byte, and Get Orf Our
[8] On the subject of mobile browser landscape and mobile web, just read everything PPK writes. Even if/when he's wrong (not often, on past track record) he's wrong in interesting and educational ways.
no subject
Date: 2011-01-12 23:24 (UTC)I certainly use my iPhone (1st edition!) for web browsing and media playing a lot, and the web experience is good enough already for most things.
no subject
Date: 2011-01-13 10:30 (UTC)My recent virus attack scuppered my Delphi, so I can't actually program at the moment (or find anywhere that sells early Delphi versions).
no subject
Date: 2011-01-13 11:20 (UTC)no subject
Date: 2011-01-13 11:30 (UTC)Many thanks. (It's mostly to get my replacement for Vista's cack-handed copy function working again.)
What about simple programming on the web?
no subject
Date: 2011-01-13 12:09 (UTC)* Firefox - with the FireBug extension
* Google Chrome/Chromium - with there developer tools
On the server side if your doing anything with the data you'll need something more than static HTML files. Pretty much anything can create web-pages on the fly using CGI. The web server passes the request to program and the program spits out some HTML to stdout which the web-server dutifully sends back.
I don't know but I wouldn't be surprised if Lazurus has some support for CGI programs. However the biggies are probably:
* Perl - traditional hacker tool and responsible for most of the early CGI scripts. Still in heavy use and has a massive archive of modules (called CPAN) that make lots of stuff easy. However the language is a unholy mixture of paradigms and punctuation soup which may offend your eyeballs. Often referred to as a write once language.
* PHP - very popular due to it's ease of use. You write web-pages as normal and use tags to escape into bit of code. It has a fairly comprehensive standard library. It's fairly easy to pick up but does have a reputation for being hard to write secure code.
However most heavy systems use web frameworks which are more tuned to developing web-apps. There are lots out there of which the Ruby on Rails possibly gets the most press. Based on Ruby it's very popular with certain sections of the web programming community. However I've never used it but friends of mine really like the language.
I'd be tempted to suggest Python as I'm a growing fan of it for all sorts of rapid prototyping. It's a nice sensible language which after my experience with Perl comes as a relief. The base language has a simple CGI module for simple scripts and a wealth of frameworks of which Django probably has the greatest mindshare amongst Python folks.
Given I don't think I've met you and all I know is you like Pascal I'd suggest Python, YMMV ;-)
no subject
Date: 2011-01-13 12:23 (UTC)As for web programming, thanks for the advice. I have a gander at the links. I really need some hand-holding (I loathe the lower slopes of the learning curve) and I need to decide what I want to program on the web. And, more importantly, why.
no subject
Date: 2011-01-14 18:05 (UTC)Ho hum.
no subject
Date: 2011-01-14 18:23 (UTC)It doesn't work on my home computer. I get a "External: SIGSEBV" debugging error. The Lazarus website, well complicated in its forum comments, suggest this might be Bit Defender objecting. It's [rude word] Vista, probably, but I've no idea how to solve it.
Ho hum.
no subject
Date: 2011-01-16 14:16 (UTC)It was Bit Defender messing up Lazarus, which I can't seem to switch off, but it has a game mode. Clearly computing has now detected that I don't do any serious programming anymore, but instead I'm only playing.
no subject
Date: 2011-01-16 18:12 (UTC)I shall take a breather before attempting web stuff I think.
Many thanks again.
no subject
Date: 2011-01-13 10:31 (UTC)no subject
Date: 2011-01-13 11:26 (UTC)I agree with you main analysis though. Computers really take off when people stop regarding them as such and smart phones are going to drive the mass-adoption of always on-line and connected life-styles. If Star Trek TOS predicted the rise of the mobile phone TNG predicts the data-pad that everyone will be using as their primary interface into the cloud.
You can still be pixel perfect
Date: 2011-01-13 18:37 (UTC)You can then convert that to a native iPhone/iPad/iClokc app using CS5.
The hard part is a finger friendly GUI that supports 'glance-ability'. I think we're a way off people using a smart phone as their primary day-to-day compute device.
Re: You can still be pixel perfect
Date: 2011-01-13 20:59 (UTC)Most of the pixel-perfect graphic design weenies I encounter still haven't wrapped their minds around the concept that the screen might be something other than The One True Size (which is probably something resembling 1000x680-ish) Which means they're still stuffed, due to device variety.
I have this pristine mental caricature (derived from years of professional mental scarring) of Photoshop-wielding graphic designers, who spend days mocking up a "web page" (translation: a pretty picture with the usability characteristics of a not-very-usable thing[1]) and expect perfect replication, fancy transparency effects and all, in every browser out there. CSS3 and PNGs notwithstanding, the main problem is their conceptual failure to distinguish the relative desirability of "pretty" and "usable".
[1] I was going to say "1960s-era jetfighter cockpit", but at least one of those is pretty clear on which bits are the controls, if not necessarily what they all do. Said caricature usually wants all the controls helpfully disguised as graphic fripperies.
I know this is a caricature, and many web graphics weenies are much more realistic these days, but I still get nasty surprises occasionally.
I might agree about computer-type-people not using mobiles as a primary compute device. I'm nowhere near as sure that people who currently pretty much don't use computers (except maybe as web browsers) aren't going to start using mobiles (and I include tablets in that) as their primary means to access the intarwebs, if only in read-only mode.