Sometimes I like to believe that my passion for technology watch gives me this little je ne sais quoi that allows me to determine with a pretty good accuracy whether a given technology is going to be huge or not. Of course sometimes I’m proven wrong, most of the time because something else comes in the way and changes everything. But this time…
If you want to bet on technology horses, here are my tips for the 5 years to come:
- Rich Internet Applications, and more specifically Flex
- Model-Driven Architecture, and more specifically AndroMDA
- Service-Oriented Architectures, and more specifically… nothing in particular, flexible solutions first and foremost (maybe we have to find another name for it before IBM and others make it disappear under tons of marketing crap)
- Semantic Web, including RDF, OWL & Co.
- And my special mention today goes to… the one that just reappeared in my top 5: MOBILE SERVICES!
Of course I’m talking about Google’s Android.
Yes, I know, my opinion is biased, I usually love everything Google does, because I can’t help admiring the creativity they are able to generate and the innovation they drive. But hey, I’ve been doing Java ME development on my free time for a few years now, and each time I came back to it, it was like a huge pain: all this fragmentation, impossible to use even the simplest services on my own 6-month old phone… and I don’t even mention this crappy emulator. And now I can’t even develop on my Mac!
Well, guess what! I’ve only been playing with Android for a few minutes, and it has a great development environment (even if I’m still waiting for the IntelliJ integration), a very good-looking emulator, and the API seems really simple to use. And when you read all the industry commitment there is behind it with the Open Handset Alliance, and you start to imagine this could become THE industry standard, with all its openness and non-fragmentation. That’s really exciting!
You know what, that’s what I’ll never like with Sun Microsystems: they have this very annoying tendancy to let go, to release a big clumsy technology, and to rest on the fact that they are the first one on this market. And then they wait. They have done it with J2EE (those who do EJB’s, raise your hands! that’s what I thought…), Spring & Co have created something better, now they’re trying to catch up with JSF and EJB3, but I doubt they will make it. And now it could happen with J2ME: they have neglected mobile platforms for too long, and now they’re going to pay the price. Do I believe that JavaFX Mobile is going to change it? Look, I haven’t seen a single working environment with it yet, but why not. Time will tell!
What about you? What horses would you bet your savings on?
On Friday night, when I came home from the office, I had a very big dilemma to sort out: I wanted to save money for the iPhone, but there was this Leopard thing that was nagging at me and… well, I cracked! I jumped into my car and at 6:00 PM, I was in front of the FNAC entrance in City 2, hoping that there would not be a long queue. And there wasn’t any!
Actually, it was so easy to get it into my hands, that I added another one: iLife’08. When it came out, I thought that it might be bundled up with Leopard, but since Steve didn’t do it, I bundled it myself, and BOOM (that’s what he said), I’m lighter of 210€.
So on Friday, when I came back home for the second time, guess what I spent my night on! Yes, I know, geeky… At first, I tried just to upgrade my existing system, but when I booted on Leopard’s DVD, it could never see my internal hard drive. After a few disk repairs and authorization fixing, it still couldn’t find it. I guess I have messed up with my partitions with all those bootcamp reinstallations. Nevermind, I took the opportunity to back up my whole stuff and do a fresh install. So I booted on Tiger’s DVD to erase my main disk, then I used Leopard’s DVD to install it. And I can tell you something: those minutes when he checks the integrity of the DVD are really a pain, because after that, it’s all just grace and wow!
Now I’ve been running Leopard (and iLife’08) for about 36 hours, and let me tell you it’s awesome. As they said everywhere, it’s not a revolution, but it’s definitely a nice evolution. It seems faster, UI look and feel is more consistent, the whole space thing is very neat, the new dock is cool and I’m so happy not having to worry about backing up anymore.
The only thing that really REALLY pisses me off, is the absence of Java 6 !!! I mean, Steve, my friend Steve, Steve my idol, could you please stop denigrating Java like that! First, you dismiss Cocoa Java API, then you don’t bundle Java in your iPhone, and now you remove your developer preview of Java 6 and there’s just no Java 6 SDK on Leopard. Come on!!! Come to JavaPolis this year, come to the stage and look at the audience, appreciate all those glowing apples in the darkness. You have a new community to satisfy, and you can’t just deny the fact that there are so many Java developers out there compared to Objective-C people. There’s something wrong in your attitude, I’m sure you must be up to something, otherwise… Otherwise nothing! I won’t leave my Mac anyway… But still!!!
The funny thing is that the fact I was willing to pay 210€ for software like that, me, a big Open Source advocate, made me think about software economic models. Maybe it will be the topic of a post to come…
Sometimes that’s what I would like to say to people dropping me an email or hooking me up on GTalk past midnight with some tricky framework-specific problem. But I don’t! Because I’m a nice guy ;o) And I have nothing against you guys, quite the opposite actually because I always learn a lot in the process, and the next time someone asks me the same question, I can pop the answer out of my hat like a magician and I love that.But because I’m such a nice guy, I’m just going to reveal a little piece of my secret for you. When you can’t find the source of an error intuitively or magically, there is a standard procedure that every call center guy in India knows about: troubleshooting. It can be a somewhat long process but it’s so simple that it can be… very fast. Here are the basic steps:
- Identify symptoms: not what happens, but how it manifests to you, what is the exact exception stack trace, what are the red lights on. And don’t try to interpret and filter out symptoms that you don’t think are important, or symptoms you don’t want to be important. Try to be objective and factual.
- List potential sources: try a google search based on your observations in step 1, try to guess based on your experience and knowledge, understand the process at work and what it involves, including all of its steps. And once again, don’t filter out some of them because you think they’re not important. Once you figure out what was going wrong, it’s always surprising to see how far it was from what you expected in the first place. And then try to order them by order of likelyhood.
- Proceed by elimination: take the first one in your list and figure out a way to eliminate this potential source, do some basic testing out of your specific context, isolate this source and test your problem against it. And do that for every element in your list until there is only one you can’t eliminate. And if it comes down to more than one option, then at least you have reduced your field of investigation and you can ask more precise questions to Google or people you know.
And once you’ve got the source, then congratulations, you’re almost done! All that’s left is to find a solution.
This process is so simple and so common that most people think it’s ridiculous. Look, take any user manual around you and you’ll find a troubleshooting section that leads you through that same process. Even psychologists sometimes use that approach to help you in finding a solution to your problem, I’ve seen it in coaching myself. So okay, it’s gonna take some time, but you know what they say: it’s not about the destination, it’s about the path to get there. And you’ll see that after a few times using that simple process, you’ll be far more efficient AND independent with it. And then people can drop you an email or hook you up on GTalk past midnight and ask you a cumbersome question, and you will help them eliminate a first potential source, post an rant on your blog, and go to bed hoping that the source list won’t be too long ;o)