18

What programming languages and technologies will be most in demand by employers and open source projects in 2009?

18

All the latest acronyms of course! Sorry to be cynical, but with HR running the show in many places, it's the same every year.

Having said that, the skills you need to get the job, are often very different to the skills you need to do the job. Unfortunately.

Hmmm... I may have strayed off the point a bit.

16

I think Python is going to be on the up; DJango recently made it to version 1.0 and is definitely a contender for Ruby on Rails.

I'm seeing a lot of stuff about the .net and ruby versions of wxWidgets popping up when I've been searching for help on wxPython so I've a feeling that APIs like along those lines and anything that'll run on Android is also going to be big next year.

Generally speaking though, I think whatever languages / technologies allow web apps to act more like desktop apps (check out Google Gears for example). Especially if they'll also run on mobile platforms. Have a look at some of the talks from the Google I/O event as well for a look at some of the really interesting stuff Google has planned - exciting stuff!

...and no, I don't work for Google ;-)

[edit] *cough* ..and Javascript of course :-)

[edit2] ..and now I'd say familiarity with Google wave!

13

I think ASP.NET MVC could prove quite popular next year. There's a lot of companies waiting for it to exit beta before adopting it, and that's not likely to happen til 2009. Granted this isn't a new technology as such, but it involves quite a different approach to Web Forms, and may also attract companies to .NET who previously shied away from it due to a dislike of Web Forms and the difficulties of using TDD etc.

8

As always, a thorough knowledge of source control and good revision practices.

No matter what languages/technologies you use, these are essential skills that are surprisingly difficult to find.

8

.NET technologies and Sharepoint

7
6

I work at a startup which has a principle product that is a desktop application. It's been doing well, and recently we've added a server-side component to compliment the desktop app.

We hired an hourly consultant to write the server side in LAMP (linux, Apache, MySql, Php) with the idea that we'd hire a full time LAMP developer if it took off.

Well, the server side product did take off, and we have really been trying hard to find a full time LAMP developer here in Austin. I naively thought that this would be an easy hire, since there are so many LAMP applications out there.

We've found it impossible to interview a single LAMP developer with any prior professional experience at all. And we are in a developer hotbed, Austin Texas USA.

People have told us that all this work is now done in India. Well, we've tried outsourcing to India and it was a disaster. We really need our own LAMP dev here.

Based on this recent experience I'd suggest to any new entrant into software development that LAMP server side programming is a highly desirable skill.

6

According to the Dynamic Languages Jobs Barometer, the hottest scripting language in the job market is tied between Perl and Javascript.

Plugging even more languages into the Indeed Job Trends page shows C at the top, followed by Java, followed by C++, followed by Perl/Javascript, followed up by PHP/Python/Ruby down at the very bottom. Other languages and keywords can be plugged in at the Indeed site if you're curious about other combos.

6

Good developers are always going to be in demand, be they writing PHP, Python, Perl, or Java.

6

Cloud computing. Be it for Google Apps Engine, Amazon Web Services or Microsoft Azure, cloud-as-a-feature (this word is brain-child of Nicolas carr(Does IT matter? fame)) is going to be the next big thing. In some ways, it already is.

5

The past few years we've seen the transition from rich-clients to thin(web)-client. I think in 2009 this trend will continue. Technologies involved asp.net/ruby/php etc. etc.

5

COBOL.

Again.

5

In the .NET space there is a strong demand for SharePoint architects, BizTalk developers, WCF expertise, and application integration experts (which is highly related to the other mentioned technologies).

I have seen some advanced SharePoint architects get extremely healthy offers based on the demand for SharePoint from customers in the consulting space.

Silverlight is also an interesting technology right now as there is not a lot of demand for it vs Flash but the small demand that is there is paying much more than what you see in similar situations where Flash is chosen.

5

I would bet for the following

  • Silverlight
  • JQuery
  • C# - Dynamic language
  • ASP.NET
  • Android - Google Mobile OS programming (Java skill)
  • WPF XAML related MS technologies
3

agile software development methodologies

3

Same technlogies as any other year this decade, really. Things don't really change that quickly. Key software engineering technologies like iterative development, unit tests, code reviews are older than that, yet still very relevant.

Now, these won't be explicit requests when applying for a job. They're not buzzwords. And I think you're looking for something between the old fundamentals and today's buzzword. My guess would be web applications. AJAX, Google Gears, Silverlight etc are the enablers, but we'll see the real change when website developers are replaced by application developers.

3

with more and more companies moving old apps from c++ to .NET it's becoming essential (and surprisingly hard) to find developers who are up on the latest technologies/frameworks who also have a solid background in C++

on top of that, add some solid interop experience and you should be set for years to come

2

Indeed has some interesting job trend data:

growth:
ruby: http://www.indeed.com/jobtrends?q=ruby
social networking: http://www.indeed.com/jobtrends?q="social+networking"
steady:
java: http://www.indeed.com/jobtrends?q=java
c++: http://www.indeed.com/jobtrends?q=c%2B%2B
erratic:
trash collector: http://www.indeed.com/jobtrends?q=trash+collector

2

The migration of desktop compute horsepower from the endpoints into the cloud brings with it two major changes in the way we write software. First, writing traditionally-desktop-bound software as web apps, using technologies like CMSs and dynamic languages, and changing the way we interact with the software might have some effect on the skill-set that is most sought-after. Also, the type of hardware we run on is changing beneath our feet from an easy-to-grasp, uniprocessor von Neumann machine to massively-parallel, harder-to-reason-about architectures, and those people familiar with technologies (at all levels of the stack) and techniques to write efficient, correct parallel software will be in demand in a wider slice of the software development than they used to be. In short, parallel programming is going from being an HPC/scientific computing/graphics problem, to everybody's problem, and those who grok paralellism will be at an advantage once it's the only way to continue to reap performance benefits.

One could also argue that advancing hardware makes exploiting performance through software less important, and there's a lot of validity there for certain market segments (many line of business apps, for example). However, many of the economic underpinnings of this industry rely on people's assumption that software is going to do things faster over time, and that's a hard expectation to change.

2

I think this says it all:

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

1

I think PHP is going to play a big part again in the web business, The next versions are going to introduce some features that the community has been waiting for for a long time.

1

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

For many developers, TIOBE is the bottom line where skills are concerned, and there are few surprises on the list. Java is still strong. C and C++ are still the languages of choice for performance-critical apps. And .NET-related languages will be around for a while. The big surprise: 10th-most popular Delphi. Delphi? I had to pinch myself to check what century I'm in.

The only thing I'd add to this list is to make sure you know (as in thoroughly grok) the XML world. The big money-maker these days is anything SOA related: BPEL, etc. So learn your web services. There's also great money to be made in computer security. Good luck!

EDIT: SOA FTW!

http://www.indeed.com/jobtrends?q=soa&l=

http://www.indeed.com/salary?q1=soa&l1=&q2=java&l2=&q3=ruby&l3=&q4=cobol&l4=

1

I am starting to get calls about Windows Presentation Foundation. Several recruiters have contacted me about that in the last month. Before that there were no jobs in the WPF space. I would imagine that not a lot of people have WPF/XAML since its is so new, requires a minimum of Windows XP, and it competes with WinForms in which a lot of desktop .Net companies are heavily invested (codebase, knowledge).

When I have asked the recruiters about their need it has always been for desktop apps, but I would expect some requirements for WPF skills when Silverlight becomes more popular.

WPF was a bear to get into when I first starting using the CTPs as it was a real moving target. Now there are a couple of great books out on the subject and WPF is stable. I would recommend WPF Unleashed for anyone with C# skills that wants to jump into WPF. Unlike Jeff Atwood I actually enjoyed Applications = Code + Markup. It contained no pictures in the version I purchased, but I really liked the way Petzold explained how to accomplish WPF tasks in pure C#, then went through the same things in XAML. That gave me a great understanding of the underlying object model, and how XAML related to it.

1

Ive been working on enterprise applications using Java for the las 4+ years, but lately i keep my eyes wide open to other possibilities.

Think that functional languages such as Scala is taking place. Companies like IBM are spending time and money broadcasting knowledge about this lang. There is even a framework for web applications using Scala.

Another point is a excellent web framework using Python, Django. Parts of Django are used under the hood in Google App Engine.

Ive done my own hello worlds using these solutions and the beste is: Both can run over JVM.

Big chances to see all this things growing demand next year.

1

The ability to write solid, failure-resistant client code to access cloud computing services will provide you with a career for at least the next five years.

I would suggest one of the following established platforms (listed in my personal order of preference):

  1. C# on .NET
  2. Java
  3. Ruby
  4. Python
  5. PHP
1

When talking about technology choices for 2009 and beyond, Java [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 Google technology which provides a connect 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:

  1. Customer satisfaction by rapid, continuous delivery of useful software
  2. Working software is delivered frequently (weeks rather than months)
  3. Working software is the principal measure of progress
1

OSGi and OSGi technology is one of the upcoming key technologies to be knowledgeable about. See the OSGi Alliance's web site. OSGi provides life cycle and services management to Java. It has been around for about 10 years now and was, in the beginning targeted at the embedded market, but it proves to be a universal middleware. Lots of J2EE products (JBoss, Bea, Websphere, SpringSource etc) are currently moving to OSGi.

1

mobile development in industry. This might now explicitly be cell phone development, but rather making use of a mobile framework (like Android) for things like inventory management or on-site support/reference/data-reporting.

Most existing systems are build upon custom hardware and software. Now with mature, open mobile operating systems like Android and manufactures like HTC, it's now possible to commoditize the many industries/companies that previously had to roll their own solution.

Think of how Windows being a standard platform opened up the field for commercial software. The same will happen for mobile devices.

0

Depends where you live I think. Here in quebec city, the .Net is really strong with few jobs in Java, while at 150 miles in Montreal J2EE is still very strong.

I would also add that is depends what kind of job you target. If you aim for the big coorp the .Net/Java is still the key, for smaller ones, I think ruby/python will gain popularity.

Personnally my goal is to learn more about Cloud computing.

0

Carbon footprint aware programming!

0

I hear over and over people saying how cool Objective-J and Cappuccino look, but no one seems willing to take the plunge. Maybe with Atlas? We have a grand total of 4 StackOverflow questions about Objective-J, and half of them have to do with finding an editor plugin for syntax highlighting.

So, despite wanting to learn Objective-J in 2009, I'm almost sure I won't.

So I'll just go with the obvious choices: JavaScript and jQuery.

0

You should really consider Qt Framework (QtSoftware.com) with C++ and/or Python with PyQt for desktop cross platform applications.

0

I Think dotnet,java,oracle,php are most important technology