If you follow any front-end web developers on Twitter today, you’ll probably have come across articles on vendor prefixes and the latest CSSWG fight over Mozilla, Microsoft and Opera wanting to implement -webkit- vendor prefixes. Before I delve into why this is happening, I want to make something very clear – this is wrong and must not happen.
So why is it happening?
The February 2012 face-to-face meeting of the CSSWG [complete transcript] had vendor prefixes on the agenda because:
glazou: Title is: Why and How to Implement Other Vendors' Prefixes
tantek: This is a specific subtopic of vendor prefixes
tantek: The problem statement right now, and this is a problem for
Mozilla and any other non-WebKit browser
tantek: Sites have webkit-specific content, and serve backup content to
everyone else. Specifically for mobile content.
tantek: Non-WebKit browsers face prisoners dilemma
tantek: similar to quirks in 2003 or so
FYI: glazou is Daniel Glazman, chair of the CSSWG, tantek is from Mozilla. Other parties who appear in quotes are Peter Linss (HP), Florian Rivoual (Opera), Sylvain Galineau (Microsoft) and Simon Fraser (smfr from Apple).
So far, sounds reasonable, then tantek continues:
tantek: At this point we're trying to figure out which and how many webkit
prefix properties to actually implement support for in Mozilla
tantek: Currently we have zero. Zero is no longer an option for us.
Suddenly, everything is turned upside down. Opera and Microsoft start saying the same thing – the argument is that of the top 1000 websites, a significant percentage uses webkit-only prefixes without the other browser prefixes.
glazou: A long time ago, Mozilla had an Evangelism team that would call up
the website owners and ask them to change.
This refers to developer evangelism, people like Bruce Lawson, Martin Beeby and Rob Hawkes to name just three (Google has a huge team – [Thanks to Michael for the correct link]). All of these people are pioneers in web technology and use vendor prefixes every day, and all of them tell developers to use the other browser’s vendor prefixes too. This is not the opinion of the CSSWG:
Florian, Sylvain: Evangelism has failed.
glazou: Have you tried pinging the WASP about that? Other activists of web
sylvaing: If MS can't scale to handle this, you think WASP can?
tantek: Opposite is happening right now. Web standards activists are teaching
people to use -webkit-
tantek: People like Lea Verou.
tantek: Their demos are filled with -webkit-. You will see presentations
from all the web standards advocates advocating people to use
These words make me sad indeed. The CSSWG has lost faith in evangelists and the community upon which it relies so much that they are prepared to implement other vendor’s non-standard code and prefixes to help them gain market share back.
Quirks mode all over again
Yes, this is where we’re at. The current dominance of webkit, especially on mobile, is causing developers to adopt non-standard technology and only those bits of technology for webkit. This cannot happen. Daniel Glazman understands:
tantek: What are the thresholds, even approximate, for implementing
-webkit- properites (or none)?
glazou: Unbelieveable we are having this discussion.
Florian: Our job is to solve interoperability. We want to discuss it here,
because that's our job.
tantek: Help us minimize the damage.
There are two problems that have been raised: that webkit has an “IE6 style” dominance over mobile, and that developers are making matters worse.
Time for action
The first problem is not a problem at all. It is a symptom of developer knowledge being controlled by the “latest sexy and experimental technology”. Developers are fixated on making all of those great effects that we used to have with Flash work on iPads and iPhones, and because that’s webkit only, they pay no attention to the other browsers that can use their sites. Web standards is going backwards, and it’s our fault. It’s not Apple’s, it’s not Google’s, they simply make technology available, we produce code that only targets them.
The first step is to admit that there is a problem. Look at your code. If there is a vendor prefix for any property ask yourself why you chose to use it. If there’s a good reason (like 2d transforms are cool) then look closer – have you put all of the other vendor prefixes there as well? Have you checked the syntax to make sure it’s the same (because that’s what vendor prefixes are for). One final thing is to make sure you never do it again. There’s tools to help like prefix-free and SASS and LESS CSS pre-processors all do this for you.
Change for browsers is harder
I’ll quote directly from Remy Sharp on this one:
Browsers need to:
- Fucking drop experimental prefixes. It’s unacceptable and a disservice to the developers working with your browser. You need to give timelines to dropping these things.
- Non-production ready browsers should support experimental prefixes, production ready releases should not. If it’s Chrome 16 – the stable version – experimental support should not be baked in. The properties should be full available without the prefix.
- Work with the working groups (…Apple).
I especially like item 2 here. Too many developers use dev channels as their main browser (I know I do). This is fine, but by removing prefixes from stable browser versions has the great advantage of breaking for your clients who will be on the stable channel. This will raise bugs and force developers to change their code. It works for me has never been a good excuse, and with this change it never will be.
Make some noise, Internet
None of these changes will be made if we don’t get the evangelism community back on its feet. For too long have we assumed that everything is hunky-dory now that HTML5 has ridden in and saved us from non-standard implementations. I implore you, blog about this, shout about this, tell your friends and make them review their code. Vendor prefixes are here to stay, and so are the five major browsers. You must code for all of them, all the time. Shout it from the rooftops, the only good vendor prefix, is every vendor prefix.
Well over a year ago, I wrote an article on the regulated rigidness that is Apple’s product release cycle. I mapped out the next two years of Apple’s product launches down to the month, and it has been the most viewed post on my blog for the entirety of last year, even eclipsing Smashing Mag calling my bookshelf “rough”. nearly 40% of all page views were for that and over 80% of searches led to that page
So, looking back on what I wrote, was I right? Does it even matter?
Was I right?
Yes, most. Of the time. I predicted the iPhone, iPad, new iPods and 10.7 announcements very well. The iPhone 4 sdk announcement was spot on, but the ipad launch date was a bit off, as was the iPad 2 and iPhone 5 as well. I didn’t see OS X 10.7 Lion coming so soon after it’s announcement, given how long 10.6 took to release.
It seems that Apple have switched to an 18 month release cycle with it’s more mature products like the iPhone. The iPad is still new so innovation and new features are simple, the iPhone is more difficult as there’s very few extra sensors that they could add, so software and CPU/GPU components as well as the design of the device itself are the updates to be made. Significant changes like that take longer, so the 18 month cycle seems more reasonable.
What I got wrong or missed completely was more telling: I didn’t get the iMac refresh or te MacBook pro or air updates. I also got iWork 2011 out by 6 months. Not brilliant form, but let me explain why they’re out: Apple don’t control them, Intel do.
Intel’s processors are the main reason to get a new MacBook, they’re certainly the biggest update in every generation. The recent addition of Thunderbolt ports and a bit more RAM isn’t really a good reason to upgrade. Major design changes I.e. the unibody MacBook pro change or the nee design MacBook Air are harder to predict, but Intel makes it’s roadmaps very clear. They go in an annual tick-tock pattern, new architecture on the tick then tweaks and enhancements to that architecture on the tock. Then it continues (like clockwork) with a new micro-architecture every 2 years. This means you get an updated MacBook every year, at almost the same time of year. The only time it misses is if Intel miss a deadline, and they’ve not done that for years.
So, what’s the future? Pretty much the same as when I last wrote. Expect updates, regularly. As products mature, expect their release cycles to extend. New products get 12 months updates, then after a few years get 18 months updates until they are eventually discontinued. MacBook updates will continue to be in line with Intel processor updates.
And that is how Apple’s release cycle works. Any questions, Tweet me or write a comment below.
The iPad 2 may be an “all new design”, but Apple attended the same school as Porsche, making few changes on the surface and lots under the hood.
Does anyone here own a Porsche? No, me neither. However, I have been lucky enough to have driven one and I watch top gear all the time (which clearly makes me an expert in such matters). I can confidently say that since 2003, two “new” Boxster models have been released, and the shell shape, which apparently is better than ever, has not changed. In the same way, the iPad 2 is a complete redesign, and yet nothing has really changed. Though that’s not a bad thing.
What changed on the Boxster is the same that has happened on the iPad, the engine and electrics got a big tweak, and it’s whats under the hood that really matters.
For the iPad, they have a new processor, the heart of the beast. It is (likely to be) a ARM Cortex A9 dual core CPU, meaning it can multi-thread better and reduce power consumption per calculation thanks to architecture improvements. This gives it the same 10 hour battery life as the old model. That means it’s faster too, a bit like every new Porsche is faster than the last. It’s also a bit lighter, thanks to improved manufacturing processes meaning they can get rid of the wall and taper the edges of the device. it’s not a big improvement there, only 60g saved, but the feel of the thing has changed for the better, another thing that Porsche will tell you makes the new model an essential purchase.
Yes, the iPad 2 has new features: the cameras and gyroscope. However, these are sanity factors and the iPad is simply catching up with it’s older siblings. There was nothing unexpected in the announcement, a very nice looking cover and an HDMI connector being welcome but nothing out of the ordinary. This is very much a “tock” product, with the innovation to come in the next version.
Is it worth it?
Is it an essential purchase? Well, like with the Porsche, if you already have one and want a new one, you have more money than sense. But if you don’t, like all Porsches, it’s very, very tempting and will make you the envy of your friends for the next 6 months until the next one comes out
Emily and the iPad
Aaargh! I hate this stupid thing! Why won’t it do what I ask it to do!
I heard this cry coming from the living room one evening. My fiancée, Emily, was trying to use my beloved iPad to write an e-mail. “What’s it done this time?”, I politely inquire in response.
“Everything!” came the reply, “All I want to do is send an e-mail, how hard can it be!”
Always wanting to help (like the loving husband-to-be I am) I show her how to copy and paste, move the cursor and find the comma key on e-mail layout keyboards, but then it struck me, why is this so hard? So, I asked her to sit down with me and tell me all of the problems that a real person(tm) has with Apple’s latest gadget.
“Firstly, before I met you, I hadn’t ever used a Mac. I had heard they were just for designers and arty-farty people, but they’re just normal computers for every-day use. This is not about not understanding Macs, this is about the iPad. Also, I love the long battery life, and I really like the screen, it’s brilliant.”
“I’m a Hotmail user, and I can’t get more than 50 messages when I’m using the Mail app. Your GMail account works fine, searches on the server and everything, but Hotmail is a second-class citizen and doesn’t get all the features it should. It also doesn’t sync read/unread items back to the web interface (which I use most of the time) so I don’t know what I’ve read and what I haven’t.”
“There’s no iPad app for Facebook. The iPhone version on the iPad looks rubbish, as do all iPhone-specific apps. The visual quality is really poor and not what I’ve come to expect from the iPad.”
“I’m left-handed, and sometimes the iPad doesn’t pick up the gestures that I make. Tapping on an icon sometimes sends me to the search screen! The whole interface seems to have been made for right-handed people.”
“Moving the cursor around when entering text is painfully slow and really inaccurate. When I’m moving it the magnifying glass is right under my finger so that doesn’t help at all! When my wrist touches the screen the whole screen moves and suddenly jumps to the bottom which is infuriating.”
“It’s heavy. For a girl, it’d be nice to have it in a handbag, but the iPad is too large and heavy for that. It wouldn’t fit in 80% of my handbags and any it would fit in would also take a 13″ laptop, which would be far more useful.”
“I’ve not played many games on any platform so I can’t compare the iPad to anything else like that. Still, the games I play on it are fun, if a little pointless.”
“Getting stuff on to it is hard. iTunes is an issue and if you don’t use Google/MobileMe, something like Dropbox or have your work e-mail on it, it’s even harder to put stuff on it. It needs a USB port to load documents on. The camera connection kit is good, but it’s pretty slow.”
“There’s no Flash support for it, and to me that’s critical. For example, checking the weather on the BBC, I can get the basic information but the radar weather map doesn’t work. Sites that have their own video player, like Wedding TV1 don’t work, and for me, that seriously hampers its usefulness”
“I want web sites to work the same on the iPad as they do on the PC. These ‘Mobile-optimised’ sites are suitable for the iPhone, but not for the iPad and they shouldn’t come up (N.B. this is referring to the Hotmail mobile web interface). I don’t want to have to learn another interface. If I wanted just e-mail, I’ll use the Mail app, but since I want the web site in the browser, show me the actual web site!”
“It’s just not an improvement on a laptop for the situations where I’d use it. If I wanted something that size I’d take a laptop instead as it’s has a DVD drive, all my music and all my web sites.”
“All that said, it’s a brilliant device that has its purposes and has generally replaced the laptop for general Internet browsing, but for what I want something that kind of size to do, it just doesn’t do it.”
1 Yes boys, it exists, it’s on Sky.
These aren’t the typical usability problems that his lordship Neilsen came up with, they represent problems of someone who uses Macs, works with a computer every day, and still has issues getting things done on the iPad. To be honest, some days I do too (discovering that yet another web site uses Flash is a classic).
What gets me is that many of these can be resolved by Apple and their close partners: making Hotmail work better with Mail, doing more testing with left-handed users, Facebook releasing an iPad app, Hotmail turning off the mobile site for the iPad, making the iPad render pixel-doubled iPhone apps properly (I refuse to believe that text can’t be made smooth), and finally making iTunes work better for file management (or enabling people to use explorer/finder).
The moral of the story is whilst you can’t please everyone with your designs, don’t think solely about your target audience. Try to think about the people around them who will use the device and make sure it works for them too. If you’re after a more practical use for this story, learn that the iPad isn’t perfect, in fact, it’s far from it. I still believe it’s the best that’s out there, and I’d love Emily to get her hands on a Galaxy Tablet to compare the two. We’ll have to wait to see what 2011 and Android 3.0 and the BlackBerry Playbook can bring to the table to gauge if the iPad has a real competitor which can make my fiancée happy!