blufive: (Default)
[personal profile] blufive
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.

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
...then you shouldn't have too much trouble keeping the browsers mostly in line.

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.


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


[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] [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] works in firefox 3.5 and up, allegedly. No idea about other browsers.

[6] 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 Land 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.

Date: 2011-01-12 23:24 (UTC)
ext_8559: Cartoon me  (Default)
From: [identity profile]
You are definitely correct with your price/performance predictions ... Nokia is running a little late, but should have a sub $100 Symbian smartphone in the US this year (subject to the current reshuffle which is losing me my job there). Last time I checked Symbian still had the edge on performance/price at the mid to cheaper end (and S40 touchscreen phones for under $100 have been out for months now) ... Android and iPhones have the 1Ghz processors, while Nokia can run the top of the line Symbian phones on something like a 650Mhz CPU (and there are some developments coming there too).

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.

Date: 2011-01-13 10:30 (UTC)
From: [identity profile]
I really must get sorted with something that allows me to program on the web. Any advice?

My recent virus attack scuppered my Delphi, so I can't actually program at the moment (or find anywhere that sells early Delphi versions).

Date: 2011-01-13 11:20 (UTC)
From: [identity profile]
If you want a Free as in Freedom Delphi you could look at Lazarus. My Dad is a old-school Pascal man and has been using it happily for his hacking.

Date: 2011-01-13 11:30 (UTC)
From: [identity profile]
Ah, I'm an old-school Pascal man. It's downloading now in the background and I shall have a play tomorrow.

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?

Date: 2011-01-13 12:09 (UTC)
From: [identity profile]
There are essentially two sides to web-programming these days. All the fancy form-filling and whizzy effects are done by JavaScript (and numerous JavasScript libraries such as jQuery). For that all you need is a developer friendly browser. I'd suggest one of:

* 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 ;-)

Date: 2011-01-13 12:23 (UTC)
From: [identity profile]
Lazarus seems to do the trick, even installing here on the work computer. It's a bit buggy in the debugging, but I suspect that's because work computer security said "Noooo!" to a .dll. I've manage to write the "Do not press this button again" program.

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.

Date: 2011-01-14 18:05 (UTC)
From: (Anonymous)
Oh, twiddle! 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.

Date: 2011-01-14 18:23 (UTC)
From: [identity profile]
Spoke too soon.

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.

Date: 2011-01-16 14:16 (UTC)
From: [identity profile]
Woo who!!!

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.

Date: 2011-01-16 18:12 (UTC)
From: [identity profile]
Thanks for that link to Lazarus. I finally got it to work and I've rewritten my datastick to harddisc program ('cos I hate Microsoft's stupid ignore properties checkbox). It'll take a while to get back into it, but this is exactly what I wanted.

I shall take a breather before attempting web stuff I think.

Many thanks again.

Date: 2011-01-13 10:31 (UTC)
From: [identity profile]
Also, my way of working has been changing. All my files are on a datastick, which I plug into the desktop computer because I want to use a big screen and a proper keyboard. Really I want to plug a big screen and keyboard into my phone when at home, while using the phones screen on the move.

Date: 2011-01-13 11:26 (UTC)
From: [identity profile]
Hopefully it's not a repeat of the browser wars as any decent web-designer should have learnt the lessons to code to standards which all the browsers support (or use libraries like jQuery which mask the differences from you). We should never see a repeat of the near monopoly that IE reached the first time around.

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)
From: [identity profile]
You can still be pixel perfect; everything apart from Apple kit runs Flash these days, so a single cross-platform GUI is trivial.
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)
From: [identity profile]
...if you're willing to sell your soul to Adobe. [shivers]

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.


blufive: (Default)

April 2017

234 5678

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 2017-09-24 12:00
Powered by Dreamwidth Studios