I have started my career in 2006 as a Java Developer. Since then most of the time I was involved in developing web applications using Servlets, JSP, Struts, IBatis and Hibernate. In late 2008 I started working with Spring and now I am a big fan of Spring.
I am very interested in learning new technologies/frameworks, so I started playing with several things like Quartz, JMS, JSF,JasperReports, DWR, XStream API, JPA, JavaMail, DisplayTag, JUnit, Ant, ApachePOI, JExcel blah blah blah. I am very much bored of doing the same things over and over using Struts, Spring, Hibernate etc.
Apart from job market perspective there could be many people(like me) learning new languages/frameworks/tools out of interest or for fun, or to pass the time. I am a regular visitor to JavaLobby and I am seeing lot of new things coming in Java technology everyday.
So I thought of learning something new and I listed down what are all the new things that are there in the Java world.
1. RIA frameworks (EXTJS, DOJO, YUI, Flex)
2. PHP, RubyOnRails, Groovy/GRAILS
3. Social networking APIs like SpringSocial
It seems to me that we have enough well established server-side technologies(Spring, EJB3 etc...) to develop middleware components. Now the majority of new applications are being developed/enhanced to add AJAX flavour to give a rich look. And there are plenty of Ajax frameworks.
I choose EXTJS, DOJO, YUI frameworks based on their popularity. I have prior experience with ExtJS and ExtJS is unbeatable AJAX library for developing web applications with Rich UI widgets. The ExtJS grid is awesome. And you can find almost every kind of UI widget in ExtJS. But I don't know why majority of the people are using other Ajax libraries instead of ExtJS.
I am working currently using YUI in my project. The YUI features are good but look and feel-wise its very poor compared to ExtJS and Dojo.
I had a chance to play with Flex sometime back in 2009 and its simply superb. But Flex should be used for flashy kind of applications, otherwise it will be a overusage (eg if Flex is used for simple CRUD kind of applications).
Secondary Programming Language
My primary programming is Java and I want to learn a new programming language now which should be cool and suitable for rapid application development. Can somebody suggest what would be better to learn among PHP, ROR, GROOVY/Grails from the percpective of Job market and ease of use to develop small to medium sized web applications.
Recently I am seeing that many websites are providing interfaces to interact with Social Networking sites like Twitter, Facebook, Linkedin etc. SpringSocial might be a good one to learn this time.
After Struts, Spring, Hibernate era, I think the future would be Rich Application Development with Social Networking site interactions.
What do you say?