When talking about technology choices for 2009 and beyond, Java technology [and its flavors for desktop, mobile and enterprise] seems to be clearly leading the pack.
However, there seems to be a a lot of new trails which are closely associated with Java. For example, Jython, derived from Python offers almost seamless interoperability with Java. Python is also the first language to be supported by Google in its App Engine initiative. JRuby also provides a bridge between Java and Ruby. GWT is another technology from Google which provides a connection between Java and widely used AJAX in web applications.
Another relatively new [first public release in 2003] language, Scala, designed and built by the team led by Prof. Martin Odersky (EPFL, Switzerland) [Prof. Odersky has also influenced the development of Java as a co-designer of Java generics and as the original author of the current javac reference compiler] also seems to be promising. On a related note, in the article titled "Java EE meets Web 2.0" written by Constantine Plotnikov, Artem Papkov and Jim Smith in developerWorks, November 2007), the authors identifies principles of the Java EE platform that are incompatible with Web 2.0 and introduces technologies, including Scala, that close the gap.
When it comes to methodologies used in Software Engineering, Agile methodologies is clearly the leader. The biggest reason for the success of Agile methodologies could be the fact that it results in:
- Customer satisfaction by rapid, continuous delivery of useful software
- Working software is delivered frequently (weeks rather than months)
- Working software is the principal measure of progress