In a couple of months I will be completing a decade professionally in the IT / ICT field. Its been a great journey and I have much to learn. I am happy that I have been able to stick to technology and my love for programming increases each day. I have also seen a lot of technologies come and go in these years, some have been surprisingly pleasantly and some have left a bad taste in the mouth.
Java was the first language that I really understood and appreciated. It's statically typed, complied to a bytecode and offers great performance second only to C. With Java I felt that there were hundreds of ways to tweak things, you could start threads from a thread pool, synchronize them with locks when are where you wished. But with this great power also came great repossibilty, one had to spend time to understand concurrency, thread safety and most of the times these important aspects were ignored. Java still is a great language and the JVM is still the place to go when you are looking for stability and performance.
Then I learned Rails, this was the complete opposite of Java. Built on a dynamic, meta-programming-happy language - Ruby, it offered one and only one way to build app. This was a good thing and bad. Good because the design decisions Rails took were (and still are) great. RESTful MVC architecture with a great ORM, there is nothing better really. Rails is THE framework to go if you want to build modern websites quickly and efficiently. Of course, Ruby isn't the fastest langauge on the planet, but it is improving and JRuby will kick ass in near future.