Anyway. This one is pure nerdery.
I don’t have a lot of obsessions, really. Honestly. I’m pretty chill, I walk my dog, I drink gobs of coffee, and I live in Portland, for pete’s sake. I’m 36, and I could only do the family man thing for a grand total of 3 months because I simply wasn’t very good at it.
That aside, this is about Mobile (surprise). I broke into the development industry fully expecting to be some sort of Java/web guy in the late 90′s. My first job? Writing software for the Palm III. Specifically, barcode scanning Palm IIIs that were for the identification and point of sale industries. And since then, I’ve made a pretty big piece of my pocket change doing mobile stuff, for smartphones before anyone called them smartphones (they were sort of called “PDA/cell phone hybrids” at the time, as I recall). Kyocera, Handspring Treos, all that jazz. It was wicked cool and I got nerdy about it, big time. Unfortunately, you’ve never heard of me because I did applications that weren’t released to the public. I moved from company to company, learning how various people in various occupations did their jobs, and I wrote applications to help them do their jobs better. In the process, I learned a lot about people and various industries, but I didn’t really get a lot of fanfare like a lot of my fellow members of the old Palm Development mailing list got over the years. But that’s cool, you can still find stuff I wrote ages ago, sometimes, sitting out on the web in various archives for that group.
And to get it out of the way, when I say “webOS”, people, I’m talking about the Palm Pre. The Veer, TouchPad, Pixi, Pre2, and Pre3. Okay? Since everyone is so caught up in the names of their hardware that they don’t know what software they’re using. It’s like how Windows runs on your PC, or for the Mac people, that “pretty colorful stuff that is on my screen when I start up my MacBook Pro that I click on and make the fun happen”.
Anyway, that’s part of the reason no one reads my blog, ever. Nor cares about my opinions. Even my best selling public app, which was a bible reader for Symbian/Nokia Series 60 and 90 phones, had another guy’s name on it. (Believe me, it was awesome though to see the downloads numbers just scroll on Handango back on release day.) I never got wealthy, I’m just comfortable middle class…but I think I’ve learned a depth and gained an understanding of this market that a lot of guys avoided (like the plague…hell, no fanfare, middling salary, no job security…I can totally understand where they were coming from).
I even was part of a team or two that made a mobile device! Windows Mobile, but hey. It was a fun (and sometimes excruciatingly annoying) project to be a part of. So I have strong opinions about mobile OSs and the companies behind them. After all, I’ve at least dabbled in all of them, and have written moneymakers in some of them (mostly ones that I liked enough to take the project). I’ve also done enterprise applications for the desktop, small business stuff, web development, services for big multinationals…you get the point.
Anyway, the whole point of this thing (~500 words in) is that the way I felt when I first used this operating system (made by Palm, owned by HP) called webOS did two things to me: It was the first time since I switched from DOS to Windows that I really felt like I had really substantially “stepped up”. Not “it doesn’t crash as much” like a lot of PC to Mac switchers say or “it’s more intuitive” or whatnot…I realized pretty quickly that the way to use this is something different. Not hunting through lists of icons like on Windows, Mac, and a lot of the mobile OSs, and not typing at a command line, but a synthesis of both approaches. But moreso, this was the first operating system I’ve ever used where everything “feels” like I’m connected to something, like I’m using a web browser and not a browser that has been jammed into an operating system that seems to tolerate it.
Instead of being concerned about “How many free bytes of space I’ve got on it”, I’m more concerned about my data signal. Because instead of storing all my crap locally, I’m storing it on a server that is locked down with my login and password. Look, no device is hack proof. If you have it on your phone, all it takes is someone to steal your phone, and they have your stuff. Works the same way with PCs. You don’t normally password protect all your personal folders stored locally on your phone or computer…even though there are plenty of apps to do so…it’s just not easy to get at your stuff.
But more than that, you don’t have to care about how many bytes you have on the cloud (unless you’ve got a limited account, of course), because that is someone else’s problem. You just put stuff up there and delete it at your leisure when you don’t need it anymore (instead of picking things to trashcan or being stuck doing long backups at awkward times because you need to scrape 100 megabytes out for something important).
And the fact that the UI is so clean and so well designed for multitouch screens (this is something that was obviously built for multitouch, unlike a lot of mobile OSs out there that look like they were originally designed for resistive screens and styli, then had gestures and the like shoehorned on top of them. This was built for the input devices, just like Windows and MacOS were built for mouse input (and not poorly shoehorned in like DOS apps tried to do frequently). This is critical stuff here.
If you design your OS for the hardware, and you do it right from the get go, you give your team a hell of a lot of acceleration when it comes to building on that OS. Because instead of throwing parts away and starting over, you’re just improving stuff. I know this from over a decade of designing applications, developing applications, coming in as the closer to finish apps, doing maintenance to build up the app…all of it. I’ve done all of that and I know the process inside and out, and how a bunch of different companies all do it a little differently (but essentially, it’s a process that is highly organic and “just happens” unless you have very strict guidelines around your process). When you start out doing something right, you’re going to be so much better off down the road that it just isn’t funny.
That’s how I feel about webOS. They got that OS “right” off the bat. Universal Search (now JustType). Microsoft shoehorned it in as an afterthought, and seriously, it sucks on Windows (and everywhere else). But it kicks ass on webOS because it was designed into it. Multitouch gesture support. webOS even pared it back because the architects felt like maybe it was too much for those who used gesture-crippled OSs (like Android was, Windows Phone, and even, yes, iOS to a lesser degree). Service based architecture. You download an interface that connects to a service, not a huge honking application that gobbles up your limited system resources, not some weird proprietary Java that runs in an emulated state, none of that nonsense. Your apps are just interfaces to services.
Did Palm get hurt by the fact that they’ve got a service based application model that relies heavily on the data network (and was only 3G to boot?) Oh HELL yes. Their platform isn’t as much about 3D rendering and processor speed on the device…it’s about the network speed. That’s why apps run laggy. You optimize apps on webOS by doing web tricks like caching, speeding up queries, optimizing backend services, and other things that, frankly, don’t rely as much on putting some “badass processor” in the machine as much as adding some more and faster memory for cache. Or beefing up remote servers. Or tweaking wifi drivers. See, the thing is, native code will always have an advantage and that’s because it’s not pinging the network to do stuff. Unfortunately, native code also relies heavily on beefier hardware to do more and better stuff, and there are just simply physical limits when it comes to powering that stuff. At some point, you just can’t progress.
But with a “cloud” device, those limits are only confined to the speed of the data network, which so far, seems to have a whole lot more room to develop. Of course…the effect right now is “it’s scrolling laggy and it sometimes stops responding”. Because it’s probably retrying to send a packet over the line because your data network dropped you for a sec, or there’s a ton of data coming through…that kind of stuff.
But the ability to multitask when the real effort is on the server? Incredible. (Well, as long as not all your apps are pulling over your data connection at the same time.)
That’s a tremendous design advantage to start out with. It just makes sense, and it’s an architectural change that is not unlike the difference between a procedural DOS application and an event driven Windows application.
And no, just because your device interprets/compiles Java or whatever doesn’t mean it’s somehow immune to the native code issue. You’re doing the work client side, and you will simply need more and more muscle over time to keep that up. It’s doing that on your device, not the server.
There are two things I’d kill for in webOS: consistent, across the board push support (eliminating polling servers and pulling saves power, reduces packet transfer in data lines, and generally is good for everyone), and the ability to roll a “mini-Synergy” server, not unlike Sharepoint or whatnot, that a corporation can install and use to manage employee profiles, updates, notifications, and all that jazz…while they’re logged into the corporate network. Obviously, it would have to be able to “convert” your phone from using your own Synergy profile to using your office’s Synergy when logging into the wifi, and it would have to do it in such a way that corporate administrators would be able to force you to use your corporate profile while you are connected to their network. Now, that may sound scary, but right now, I can’t use the wifi in just about any company I work for because if you download “bad stuff” or go to “bad websites”, the company could get themselves in trouble in a myriad of ways.
But I’d really love to not have to carry 2 phones all the time, one for work and one for home, because that work phone is usually a piece of crap that some other guy used to use.
One other thing, if Leo Apotheker is serious about the enterprise, he’s got to either support something like Mono of webOS so us .NET enterprise code monkeys can port our enterprise code easier and better integrate with our web services and the like, or he’s got to make a whole lot of easy and free (as in free) remoting applications that work like butter. I know, it’s easier to say than do, but if you can’t run the application on your device, then if you want to play in the enterprise market, you better well be able to run the app on your Windows desktop (though it would be best to be able to integrate straight through…after all, you’d then be able to cache the data you accessed locally on your webOS device, and not on your personal computer’s hard drive that might be somewhere far away and you being stuck remoting to it every time you wanted to access that data).
Anyway, that’s a lot of words there, WordPress is having trouble keeping up. In a huge, ginormous nutshell, I don’t like OS’s that don’t know what they are. I find that iOS and Android simply don’t, as Windows Mobile was, and how PalmOS turned out to be. They started with an idea, then began imitating, throwing stuff away, rewriting, hacking things in, doing things poorly, opting to “let the third parties make things better”, and in the end, what you’ll get is a big ugly kludge that will have to start over again. I’ve seen this happen way too many times. That’s why I simply don’t like those OSs. Sure, to a normal user, they do what they want them to do right now, and that makes them happy. But so did Windows Mobile, once. So did PalmOS, once. So did SymbianOS, once. As did RIM. But what OSs, on which platforms, have managed to withstand the test of time? It was Windows and Linux (MacOS X ain’t MacOS 9, not by a longshot). When they came out, they both knew what they were, and by the time they became a kludge, they had already outlasted their competition (OS/2, Minix, other Unix variants). webOS has started out with a paradigm that definitely appears to be the next stage in mobile OSs (and maybe operating systems in general, if Google’s webOS envy with ChromeOS is any indication). They’re following a steady path where they’re not feeling the pressure to jam too much into their OS all at once in order to match a competitor’s marketing bulletpoints. iOS 5, the next versions of Android…huge amount of “throw away/rewrite/start over”ness. Which will mean new security holes, new growing pains, and all that crap all over again.
I’ve seen mobile OSs die that way before, and I’ll see a lot more before I retire from this business. My advice to anyone is to get on board with the platform that makes the most revolutionary step forward that every established OS from the big players immediately tries to quash and imitate, because that new player is doing something right.
Even if the hardware is shitty. And yeah, Palm was operating on a shoestring budget. How do I know? I interviewed there in 2007. I could tell something big and cool was about to happen, but I saw an awful lot of empty cubicles and not a lot of people walking around looking smug. Not too many people drinking coffee and laughing and having a good time. Just an air of “what the hell is going on?”. This was right before Ruby joined Palm. I knew they didn’t have money…I found out later that they opted to hire a guy who was local and was asking for less cash than me with my “oh no, it’s way too expensive for me to live down there…and besides, I’ll need to relocate and that will cost me so much” line. I had solid experience for the position I was interviewing for, too, having come off a gig with GE doing stuff that only real estate agents ever saw (and never probably ever saw my name on either). In retrospect, i wished I could have worked there for the experience, but the gig I would have been working on would have been Windows Mobile software support. Ouch. Wonder if those guys are still there, and made themselves learn Novacom Linux…
So basically, that’s my big love puff piece for webOS. Of course, I really, really, really wish I could find time to write things for it. Even moreso, find a job paying me to write things for it…which is really where my experiences are my strong suit. But I can’t because dumb people keep using dumb OSs that aren’t as good because they feel like the “hardware build quality” is better, instead of buying into the potential and supporting an awesome cause.