What Software Platforms Mean to the End User
Frequently, you'll see a tech site - just like this one - tout a feature of some smartphone, PDA, tablet, or other mobile device by talking about what's under the hood.
"It runs Java." or "It's based on Webkit." or "It's developed using the Python standard library." And at least some of you are out there going, "Big deal. I don't care what programming language it's made in. Does it work or not?" And some of you are right. You shouldn't have to care what language your software is written in. In an ideal world, all technology devices should work together, flawlessly, seamlessly, transparently...
In the land of sugar-plum fairies, maybe it's like that. Meanwhile back on Earth, we have a Tower of Babel of technology platforms to go along with our Tower of Babel of spoken languages. It seems that there's many different ways to boss machines around and tell them what to do. So different languages, platforms, and methods are created to specialize in different features for each gizmo and dingus we invent. We won't have one software language that does it all any sooner than we'll have one human language that everyone can speak and understand.
So when should it make a difference?
Here's a rule of thumb: If the device you're considering buying is something whose installed software you will never change, you don't care a fig about what it's made with. Seriously, it could be made of jelly beans as long as it does what it's supposed to do. Consider the device to be a "black box", buy it, and go home happy.
But if you ever intend doing something with the software, that means that you'll either be installing more software on it, adding new hardware features which will need drivers for it, updating the existing software, and even deleting software from it. Now, you care about what it's made with. Even with laptop computers, you can see that Apple's software won't run on Windows and vice versa. That's one example.
When it comes to mobile devices, your mantra should be "open and portable". The reason why that's the mantra for you is because of the daily habits of this peculiar creature we call a "programmer". To save us from political-correctness, we'll insist that all programmers are "she" here.
A programmer's eye view:
Now, when a programmer learns her first language, she wants it to make a big splash. She's fresh out of school; she doesn't want to waste time picking up some niche technology that will only qualify her for three jobs out there. And after her first language, she'll still be picking up new technology and platforms and methods. Technology changes fast; you hardly dare take your hat off or it'll get left behind. So you have to constantly read up on the latest methods. It takes about a month to get introduced to a programming language, a year to get good enough in it to hold down a job, and about three years to really start to master it. Some devices aren't on the market that long!
Naturally, a programmer's natural enemy is wasted time. In choosing which technology to pick up next, she'll want the ones with the fewest barriers to entry and the fewest limits. That's where the "open" part comes in, which usually tags onto "open source" and "open standards". Instead of a closed language which requires licensing fees and is protected by patents and will be phased out in maybe five years so the company which monopolizes it can make more money selling everybody the new software system, she'll pick an open source system that's here yesterday, here today, here tomorrow, and nobody controls too much so she can move about with it with the most freedom.
With us so far? The other concept is a lot easier to understand: "portable" actually means in this context being able to port one's skills from one job to the next. If you spent five years programming toasters and then suddenly everyone's moving to microwaves, you want those microwaves to have a system where you don't have to throw away too much of your experience and start over again. So, in portability, you want wide, broad platforms that span many devices and systems. Java, for example, runs on everything from phones to rockets. C - it's a language, take out word for it! - C also has been around since the 1960's, shows no sign of slowing down now, and again runs on everything from super-science hadron colliders to pocket calculators.
OK, so what does that translate into benefits to me?
The power of the free market! Few developers equals less software. Many developers equals more software. Not just in the programs, but more technicians will be familiar with the platform and know how to fix it, how to secure it, and how to change it to suit your needs. Basically, open source and standards, plus platforms and development tools and skills which are portable, leads to more support and more plentiful software.
To make another analogy, you've probably had the experience of having a foreign car break down and you couldn't get it fixed as easily as you could have a domestic. See, nobody in town deals with those. You have to call in the specialist, and he's gonna have to order the part from Switzerland and it'll take two weeks and cost twice as much...
Anyway, that's what it means for different software platforms, programming languages, drivers, and whatnot on mobile devices. I hope that didn't hurt too bad, did it?
Filed Under: Mobile Computing • Mobile Internet • PDAs
