ThoughtWorks has released the Technology Radar 2010 (PDF) this month, a whitepaper containing ThoughtWorks’ technology strategy and trends in four major domains: Techniques, Tools, Languages, and Platforms. InfoQ looked at this whitepaper in depth to better understand the ideas and suggestions being offered by ThoughtWorks.
For each of the four domains mentioned, ThoughtWorks has a list of items divided in four classes: Adopt, Trial, Assess, and Hold. Adopt means the item is recommended to be used in the enterprise. Trial means the item is worth investing into it but should be used for low risk projects. Assess is for items worth considering and learning how can be used and what are their potential. Hold is for items that do not deserve attention and resources at this time.
Techniques
Compared to a year ago, all techniques recommended have moved up one or more notches. “Build pipelines” has moved from Trial to Adopt, “Lean Software Development” from Assess to Trial, while “Emergent Design”, and “Evolutionary Database” has jumped from not being charted right into Trial.
Tools
When it comes to tools, there have been more diverse changes compared to a year ago. IE6 was not considered last year, and now is suggested to be terminated as product. ASP.NET MVC moved from Trial to Adopt. Subversion has moved from Adopt to Trial because “Distributed Version Control” tools have moved from Hold to Trial. The whitepaper mentions rspec and Cucumber as “Next Generation Test” tools pushing the category into Assess. Other new tools have made their debut in the Hold zone, previously not being considered: Google Wave, Language Workbenches, and Polyglot Development Environments.
Languages
Perhaps this section brings the most intriguing suggestions. JavaScript has come from nowhere right into Adopt zone, move explained by the authors as following:
While JavaScript first appeared in 1995, it is only in the past couple of years that libraries such as Prototype and JQuery have helped the language become more accessible to a wider developer audience. As developers continue to embrace JavaScript for developing rich user web applications, we increasingly hold JavaScript in the same level of esteem as any other production language, ensuring that scripts are adequately tested, refactored and maintained.
C# has moved from Hold to the border zone between Assess and Trial due to its advances in the last year:
C# has continued to move forward with the adoption of language features such as lambda expressions, extension methods, object initializers and automatic property setters and getters, all of which are available in the 3.5 release of the language. With the 4.0 release of C#, we will see the introduction of a dynamic keyword and named and optional parameters, which will continue to bring C# more in line with languages such as Ruby and well ahead of the Java language.
The authors mention the fact that Java has been slow in adopting new features lately, the initiative being taken by other languages built on JVM, “languages such as Groovy, JRuby, Scala and Clojure.” They expect enterprises to “begin to assess the suitability of reducing the amount of Java-specific code developed in their enterprise applications in favor of these newer languages.” Because of that, the authors suggest assessing the end of Java as a programming language.
Platforms
Finally, when it comes to platforms there are not many big surprises with one exception: “Rich Internet Applications” which has been downgraded from Adopt to Assess/Trial being on the border between the two. The reason:
Our position on Rich Internet Applications has changed over the past year. Experience has shown that platforms such as Silverlight, Flex and JavaFX may be useful for rich visualizations of data but provide few benefits over simpler web applications.
Given that these toolsets have limited support for automated testing, it would suggest that a more traditional web application stack provides greater value for enterprise development. We recommend only using RIA platforms for rich visualizations incorporated into web applications, not as comprehensive development targets.
Firefox has moved from nowhere into Adopt because it “provides support for the widest range of platforms”. JVM has made the same leap being a “general-purpose virtual machine for other languages such as Ruby, Groovy, Scala and Clojure.” Another platform coming from nowhere is Android which is suggested for the trial phase. iPhone is a hot technology these days, and it is proposed for Adopt.