Friday December 16, 2005 Arstechica published an interesting article about history of personal computer market. When reading it, I actually recalled the computers I owned in my life.
The first time I was able to touch a computer was in 1984 (I was 11 years old at that time). My dad has a friend, who bought Sinclair ZX Spectrum and I spent a whole afternoon with it. Later, my dad borrowed this computer, so we had it at home for a week - I think this week was the point I realized I would like to become computer engineer or something like this.
In 1986, I got my first computer - Atari 800 XL with a tape recorder. It was amazing machine, I started to learn Basic and moved later to 6502 assembler. I also remember a special language available only on that machine called Action!, which was very fast (compared to basic). I basically lived with this computer through the whole high school. I really loved this machine and I still think it was a 8-bit computer with perhaps the best hardware architecture at the market. Getting 256 colors on the screen or smoothly scrolling screens - do you remember how easy it was to do?
In 1987 I went to high school and I saw a PC compatible computer for the first time and learned Pascal (using TurboPascal 5.0). I remember one of my projects - I wrote a simple windowing system for text modes (perhaps I could find a 5.25" floppy disk with this project somewhere
). On a high school a friend of mine bought Amiga 500 - a very powerfull machine with amazing graphics and sound capabilities. PCs at that time were quite unusable machines compared to it.
After finishing the high school I already knew I wanted to be a software professional and I went to the university to study computer science. I sold Atari machine to one of my dad's friends (who wanted it for kids to play games) and was without a computer for some time - it was ok, because I was using computes in university labs - usually y PCs running MS-DOS, later also Windows 3.1. In 1993 I bought Amiga 1200 with 2 megs of memory , 14Mhz 68020 processor, 120 megabytes harddrive and 14" color monitor. I later upgraded memory and processor to 6 MB and 28Mhz68020. I learned C, C++, 68000 assembly, c-shell scripting, LISP and many other stuff on it. The only thing I missed on that machine was that I coudn't play Doom
. I still have this amazing machine in a box and perhaps I should start it up and try to boot. The last time I run it, it was actually three years ago, and it was still working perfectly - it even survived Y2K - I haven't noticed any problems with it
.
At the university I also had a chance to work on real unix machines - besides some DEC servers, I was using Sun Sparcstation 5 and SGI Indy. I somehow liked the SGI machine more - it was a bit faster and its windowing system called 4DWM was simply nicer (sorry openlook designers
). I remember compiling some open source window managers (CTWM and Bowman (AKA Afterstep) for the sparcs. I also remember downlading and learning the first version of Java for the sparcstation - at that time I never thought I will work for Sun in the future
. Anyway I finished university in 1996 and did my diploma thesis in Visual C++ 2.0 on Windows NT 3.5 (I was forced to use it - I was dealing with using OpenGL in Win32 environment, I would had choosen SGI Indy instead
) running on noname 75Mhz Pentium PC.
At that time it was quite clear my Amiga is not able to help me much with advancing in my career, so in 1998 I assembled my own PC - AMD K6 @ 300 Mhz, 192MB of memory, 6GB harddrive, graphics card with NVidia Riva 128 3D accelerator and Soundblaster Live. Not a bad machine for that time and it is still being used today - my wife's parents are using it everyday to browse the internet and send emails (I'm quite surprised it is still usable
). In 1999 I also somehow got an old Sparcstation 10 (nobody wanted to use it anymore) - it had 112MB of memory and external harddrive, so I installed Solaris 2.6, Oracle database and Tomcat and used to run as a webserver which was simply getting data from the database and published it on the web
. I think for a machine from 1992 it was quite amazing it was able to run up-to-date software 7 years later.
This blog I'm typing on a PC which I assembled four years ago - Athlon XP 1700+, 1GB of memory, Geforce 2 GTS graphics and 40 MB harddrive. It's quite amazing to look backwards in the history - how the computer industry has changed in the last 20 years. I'm really wondering how it is going to evolve in the next 20 years.
During the weekend I was browsing the internet, just to look for some stuff around Microsoft mobile story, and while doing that, I spotted Evan Williams' blog, where he writes about Ten Rules for Web Startups. When I was reading it, I actually realized, these rules apply for mobile(and perhaps many other consumer oriented) startups as well. Let me take the rules and comment them from the mobile perspective:
#1: Be Narrow - definitely true for all startups and even all projects - it is much better to focus on a narrow area and do it right, than try to save the world and very likely fail.
#2: Be Different - your application have to attract the users. They need to talk about it and everybody have to download it, jut to try it out. This drives the volume, which is the only way how to succeed in the mobile world.
#3: Be Causal - this is even more important for mobile startups - a lot of the business in mobile space is driven by things like ring tones, wall papers and recently also Java ME games - all of this is quite causal stuff. Mobile applications have to be causal in the first place - users have to feel good when using them.
#4: Be Picky - being picky on features is very important - mobile applications cannot be overengineered - its much better to make one feature perfect than several of them hard to use - nobody would use such application.
#5: Be User-Centric - mobile world is completely different from the computers world. Many people does not know how to operate computer, but they own a mobile phone and would like to use it. The mobile applications should be usable enough, so even such people can use them (you want them as customers, right?).
#6: Be Self-Centered - a perfect thing about mobile applications is the fact they are often being created as a painkiller for your own problems. For example these days I'm trying to find a good solution which will be able to synchronize calendar and task list on my phone with my desktop computer. Unfortunately I'm not using Microsoft Outlook and all other solution somehow do not work for me - it looks like I'm going create my own solution, which in the future could help other people as well.
#7: Be Greedy - definitely true for mobile applications - its always a good business model to offer the application for free and charge for additional services coming with it.
#8: Be Tiny - most of the companies doing mobile applications I had a chance to meet were started as a quite small projects of two or three people, usually without office, doing most of their communication over the internet and outsourcing many tasks (e.g. web design, graphics design) to other, similar in size, startups. This works even when dealing with device fragmentation problems - there are actually companies specializing in porting application to devices - so you can still design and develop application in a small team and then let the other guys to port the application to all required devices.
#9: Be Agile - As new devices with new capabilities coming to the market, the potential for the application is changing rapidly - I dare to say even more rapidly than the internet where the situation on the browser side is rather static these days. In the next year a lot of devices with Location API (JSR-179), SVG (JSR-228) or Payment API (JSR-239) is going to appear on the market and if you want to succeed, you need to be one of the first utilizing these APIs in your applications. And there are many more such APIs - Mobile Service Architecture (JSR 248 for CLDC or 249 for CDC) is defining 14 such APIs and many others are coming. You definitely need to watch the market and change your plans when needed.
#10: Be Balanced - this is more than truth, but I bet you already know that. Actually this blog is one of the things which helps me being balanced
.
It's official - today we released Beta 2 version of NetBeans and NetBeans Mobility Pack. You can download it from here

Go Mobility Pack go
!!!
The desktop war is over. Who won? Mobile devices! - perhaps a bit exaggerated statement and perhaps a bit ahead of time, but I really believe the mobile devices (mostly in a form of mobile phones) will be the most widely used computers by the general public in the future. If you look at the stuff the non-technical people do (like my wife for example
), they usually send/receive emails, look for some information on the web, book their vacations, perhaps do some shopping on the web and use some type of instant messenger. These applications cover well over 95% of their needs and to be using those you don't need a desktop computer even today. Also the fact the device is connected to the network in most of the places is a great thing - a week ago I missed a bus when getting home in the late night and withing a couple of seconds I got a list of alternative lines I could use - exactly right at the place and the time I needed this information (this wouldn't be possible with my desktop).
A very important thing is also complexity (or rather simplicity
) - mobile phones are usually quite easy to use (ok, not every manufacturer is able to produce user friendly interface, but this is changing rapidly), and usually don't need any kind of setup - most of the things are usually preset from the cellular network operator or can be set even remotely using a special kind of SMS. This is one of the thing I really enjoy about this technology - being a computer guy usually means solving many problems with desktop computers across the whole family, but I never had to help anyone with a mobile phone
.
The only thing the mobile devices are currently missing compared to desktops is a good input device and to lesser degree a display with high resolution. Both can be fixed though - a long time ago I was reading about a projections keyboard, which works by projecting a red outline of a keyboard on a desk by a laser beam and reading back the keys you would like to press by noticing reflection changes on the projected keys. I definitely wouldn't mind to have such thing built-in in my mobile phone.
Display resolution is also increasing rapidly - PocketPCs have resolution of 480x640 for some time and the new Nokia N80 has resolution of 352x416 - not a bad resolution for a mobile phone. Anyway in the future I would definitely like to see a 3D holographic projection from a mobile device.
There is also a lot of future in voice recognition when dealing with mobile devices, but I still keep wondering why does it take so much time to make voice recognition a reliable technology - as far as I remember predictions 20 years ago, we should have been using voice recognition for some time now. On the other hand, speech synthesis is working quite well - I looked at FreeTTS project some time ago and I was amazed by the speech quality.
So what do you think? Do you see any future in the desktops? I don't, so that's the reason the desktop war is simply over.
P.S. I'm writing this on my laptop with an external keyboard attached :-o - I still don't have a decent device with a projection keyboard and a 3D holographic projector.
Hi - this is my first blog entry. I decided to blog at least 2-3 months ago, but this Sunday was actually the day I decided to spend a couple of hours on creating/customizing the blog pages.
A little bit about me - I'm one of the developers of NetBeans Mobility Pack, spending most of my time working on Visual Mobile Designer (on the designer are currently working three developers). I'm also quite interested in everything concerning mobile phones, PDAs and other "mobile" devices (yes, I'm interested also in PocketPCs with Windows
). Other interests include my family (proud father of two years old daughter) and everything concerning airplanes and flying (I'm living just below an approach corridor to runway 24 of Prague - Ruzyne airport, wouldn't you love it
?).
In this "occasional" blog I plan to post ideas/news/interesting stuff concerning mostly mobile world with focus on JavaME and NetBeans Mobility Pack, but I might include some other stuff (actually have you heard about Boeing 777 setting a new world record for distance?).
P.S. I just realized I didn't write my name or anything like that - so my name is Martin Brehovsky. I'm using "bblog" as the blog's username, because I'm singing most of my letters as "B." (there is one more Martin in the NetBeans Mobility Pack team).