But today, I was re-reading an old blog post and I was reminded of Steve’s prediction. Jarosaw “sztywny” Rzeszótko, a young Polish blogger, had send 10 questions to 8 famous programmers and he had posted their replies (I had written about it too). Here are some excerpts from that post:
Q. What do you think will be the next big thing in computer programming? X-oriented programming, y language, quantum computers, what?
I think web application programming is gradually going to become the most important client-side programming out there. I think it will mostly obsolete all other client-side toolkits: GTK, Java Swing/SWT, Qt, and of course all the platform-specific ones like Cocoa and Win32/MFC/etc.
It’s not going to happen overnight. It’s very slowly been going that direction for ten years, and it could well be another ten years before web apps “win”. The tools, languages, APIs, protocols, and browser technology will all have to improve far beyond what you can accomplish with them today. But each year they get a little closer, and I’ve finally decided to switch all my own app development over to browser-based programming from now on.
Microsoft and Apple definitely don’t want this to happen, so a necessary first step will be for an open-source browser such as Firefox to achieve a dominant market position, which will in turn require some sort of Firefox-only killer app. (A killer app would be something like iTunes, something that everyone in the world wants to use, badly enough to download Firefox for it.)
Q. If you had three months to learn one relativly new technology, which one would You choose?
I do happen to have 3 months (part-time), and I’m spending it learning Dojo (http://dojotoolkit.org) and advanced AJAX and DHTML. I’m learning it by writing a fairly ambitious web application. Dojo’s really cool, and I’m sure it will only improve with time.
At a technical interview recently, I was asked:
What if you don’t like Java’s garbage collection, what would you do? How would you manage memory?
You can carve a large array of bytes on the JVM heap, implement your own memory on that array and manage it yourself, kind of a virtual-machine-over-virtual-machine system; but I don’t see very good reasons to do that. Well-informed engineers have worked over a decade to get the JVM garbage collection right – so if you have to dump all that work and cook up your own scheme, you better have very good reasons. I told as much to the interviewer – I would imagine that it can be done, but I don’t know of any situation where I would recommend it.
Dear readers, do you know a good answer to this question? Do you know any situation where you would recommend this? If you come across such a situation, what would your solution be?
Brain Charles Lara batted in an international cricket match for the last time yesterday.
With him goes the last of the classical batsmen. At the presentation ceremony at the end of the match, he asked “Did I entertain?” – he must have got his answer from the huge cheer from the crowd assembled.
Lara’s farewell was unlike any other. Despite being a dead rubber, the tournament got its first full attendance. When Lara got out, not only did he get a standing ovation from the whole crowd, but also from the press box (which I am told is a rare thing). And at the end of the match, even the umpires and the match referee had the grace to shed the starched formality and take pictures with the great batsman.
Here is wishing Lara a wonderful life ahead; and thanks to the great entertainment he provided over the 17 years.
I was reading through the Wikipedia entry on source lines of code and noticed this quote from Bill Gates:
Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
Good one! 🙂
From their writeup on Tavant.
Who is a liquid coding champion? A crack coder at Tavant Technologies. For those who think coding is the stuff spy stories are made of, well, it is the backbone of a software programme. In any IT solutions business, when a client gives a specification for a certain programme, it seldom stays what it started out as. A good coder will keep this in mind and ensure his work is flexible from day one. That way, he doesn’t have to start all over again when the specifications change.
Liquid Coding was a programing competition held for programmers at Tavant Technologies. It is a 3-hour competition and one can pair up with another person. At the start of the first hour, you would get a set of requirements. At the end of the first hour, you get some more requirements and further some more at the end of the second hour too. Each requirement is specified as one or more executable unit tests, and they carry certain number of points based on their complexity.
The crux of the competition is to write code to match requirements under extreme time pressure, and write it in such a way that it is extensible enough when further requirements are to be implemented.
I paired with Vineeth for this competition, and we came first in the tech lead category. The experience was intense and real fun. It is one of the best prizes I have ever got; and definitely the one that I am most proud about. 🙂