The February issue of Dr. Dobb's has a lot of articles about cloud computing. That's not surprising, cloud computing is very much on the minds of many folks these days and it does affect developers as much as (if not more than) most IT folks.

One developer had a very interesting perspective on the topic, and very clearly spells out what he does and does not want:

I don't want to write HTTP and SOAP and REST and SimpleDB queries. I don't want to be squeezed into a browser and I most certainly don't want to learn a new language to do what I've been doing for years.

Well, I'd suggest you stay away from cloud computing, web applications, integration projects, and any technology developed after 2001. Have you considered a career maintaining mainframe applications? We've got a lot of those in the midwest, still running code written in COBOL in the early 70s and our COBOL developers are starting to retire.

Yes, now I'm being (slightly) facetious, but seriously, if you don't want to use modern technologies and protocols I'm afraid you're most often going to be relegated to maintenance and support of aging, legacy applications.

You don't need to learn a new language to do what you've been doing for years. You can keep on doing that using the skills you currently have, but if you want to leverage the cloud or virtualization or new environments and paradigms then you may have to learn a new language or protocol or polish up those skills to adapt to emerging technologies.

Developers aren't alone in the rate of change they have to deal with; network and systems' administrators are constantly learning new systems, new devices, new techniques, and new technologies that enable them to do what needs to be done. The only constant in IT is change, and if that's a problem for you then you've likely made a poor choice in professions.  

I want to write applications that do cool stuff. I don't want to be limited to specific display technologies. I don't want to have to know anything about the display technology!

We all want to write applications "that do cool stuff". Unfortunately most developers are employed by businesses who want them to write applications that support the business, and that is often incompatible with "cool stuff." Why do you think I was a job-hopping developer for years? Because I'm easily bored and after about a year of doing the same old thing I'd go looking for something "cool" again. Funny thing, though, is business don't employ developers to write applications that do cool things; they employ developers to write applications that perform business-related functions and those functions are rarely "cool." Cool is for your free-time, or you need to find an organization that is in the business of developing applications you think are cool. Not impossible, but certainly not an easy task.

Remember Sun's motto? "The Network IS the Computer!"

Yeah, I remember that one. Still waiting for that one to come to fruition.

THAT'S what I want! I want to write an application (an MVC application!) and have it work anywhere.

Hmmm...okay, here's what you do. You write your application and deploy it in the cloud. Oh wait, you don't want to deal with HTTP or REST or SOAP or browsers.

Okay, here's what you do. You write your application and package it up in a virtual image. Then you ... oh, wait, that will only work "anywhere" provided that "anywhere" has the means to load and execute a virtual image.

Okay, here's what you do. You write your application and deploy it on your desktop. Every time a user wants to run your application you ship your desktop to them. Cause seriously, that's what it's going to take if you aren't willing to adopt new technologies and protocols.

Cloud computing and virtualization aren't for everyone nor are they well-suited for every application. But dude, your demands pretty much read like "I want to write whatever I want in the way I want to write it and have it magically run wherever people want to run it."

The reality is that no technology or deployment model is a panacea. Cloud computing addresses some problems, virtualization others, and some programming languages are better at solving specific business problems than others.

The trick is, as Don often says when I rant against certain programming languages that I find yuckdistasteful and useless, to use the right tool to solve the problem or accomplish the desired task. That may be an MVC application, or a cloud-deployed application, or a browser-based application or even one of those languages that I hate with a passion that rivals a child's hatred of vegetables. 

Cloud computing, virtualization, traditional web-based environments, and legacy client-server models all offer alternative means of deployment for many types of applications. The goal is to match the needs of the users and the business to the model and environment.

Nowhere in the decision making process does what developers want factor into that equation. Unfortunately, almost all of the "wants" and "do not wants" listed above are purely driven by personal desire, not the desires of the organization or the needs of the users or the financial bottom line.

When you find the organization that cares more about what developers want to do and how they want to do it than solving business problems, you let us know because there's probably a whole lot of folks who'll want to apply for that position.


Follow me on Twitter View Lori's profile on SlideShare friendfeedicon_facebook AddThis Feed Button Bookmark and Share