Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I wonder why programming jobs haven't yet "dried up" because of the software evolution. For example, I am a developer myself, which means that I do care about software (I mean I am not of the type of guys that needs a computer mainly to just browse the Internet), and still I wouldn't mind if I never receive any more updates on my Ubuntu machine.

I find that it provides everything I need, and while the updates provide various bug fixes/improvements, I wouldn't mind using it with its current state for the rest of my life. For two years of Ubuntu usage I have never bumped at a serious bug/problem.

Another example is Windows. Almost half of its users still use Windows XP, which is practically ancient, yet they find it satisfying for all their needs (and I agree with them).

I could go with many more examples, but by now you are understanding my point and my question. While new "trends" appears all of the time (like a new mobile OS) which runs on new platforms and requires some fresh development work, still the majority of the software effort goes in to what I consider as "completed projects", or at least a state of a project which is enough to be considered as completed.

Do you have an explanation?

share|improve this question
4  
I used to think that Facebook and cell phones were useless :) and I still do. By the way, I think the reason why is that humans get bored easily. You, btw, are not human. –  Job Feb 19 '11 at 3:28
9  
Why aren't those XP users using 286s running DOS?? –  Crazy Eddie Feb 19 '11 at 3:49
3  
@Crazy Eddie There is a BIG difference between a 286 and a dual/quad core at 2.5GHz. This difference is the "completed" state. The difference between a quad core at 2.5 and a 32 core at 6 GHz is irrelevant. You don't need (won't have a practical usage) of a car that can go up to 2000 mph –  jd_505 Feb 19 '11 at 3:53
4  
Nope, it doesn't matter if your car can go up to 1000,2000 or more mph, you still won't find a way (a road) to fully utilize it's potential –  jd_505 Feb 19 '11 at 3:56
4  
@jd_505, just because you cannot imagine it, it does not mean it is useless. –  user1249 Feb 19 '11 at 9:20
show 10 more comments

closed as primarily opinion-based by gnat, MichaelT, GlenH7, Aaronaught, user16764 Oct 27 '13 at 18:50

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

18 Answers

There are billions of unfinished problems in the world. Not to mention human greed which needs new tools to satiate its fancy everyday.

If you really think there are no pending problems left, try solving some of these:

  1. Software to help people communicate on a mass scale when hostile governments switch off telecommunication networks.
  2. Software for food and other essentials distribution system that inherently plugs system leakages in countries like India and Uganda.
  3. Software that makes the differently abled enjoy a much better quality of life.

I hope this gives you some perspective.

share|improve this answer
2  
+1 for most thoughtful answer. –  Matt Caldwell Feb 19 '11 at 5:56
2  
+1 for "human greed" –  Mahmoud Hossam Feb 19 '11 at 19:24
1  
Point 1 can only be solved with hardware. –  Thomas Stock Feb 19 '11 at 19:53
2  
Software might be of some help to the "differently abled", but not much, I'm afraid. I'm a polio survivor, and the main thing software's done for me is give me an occupation I can do at home. –  Mike Dunlavey Feb 19 '11 at 20:52
1  
@Thomas: Without enabling software silicon doesn't make a difference. You already have the hardware here, but the software needs a lot of work once it chooses whom it should serve. –  Fanatic23 Feb 20 '11 at 4:15
show 2 more comments

As a counter-example, take the flower shop up the street. Their experience with software might go something like:

  • Install some accounting software - much better than paper ledgers
  • Set up company email
  • Put up a little brochure web site since everyone else is
  • Add a POS system
  • Add a simple customer ordering form to the web site
  • Buy a simple CRM tool to manage corporate customers
  • Integrate with national and global sales networks to accept sales the didn't originate from your site
  • Integrate company email and CRM
  • Add special ordering tools for repeat customers online
  • Advertise for delivery drivers online
  • Get flowers cheaper by agreeing to use a distributors ordering software
  • Get employee benefits cheaper by managing benefits online
  • Apply for required government permits online
  • Do simple background checks for new employees with software tools
  • Have a consultant build a bridge between your inventory system and the distributor so weekly orders are placed automatically
  • Pay taxes electronically
  • Add GPS devices to your delivery vehicles that can be tracked from the office.
  • Use mapping/routing software to design optimal routes for delivery
  • Browse industry data to make sure you're performing as expected
  • Add package tracking to the online customer tools
  • Spread your web presence using social networks and ratings sites
  • Offer a little free mobile app for ordering and checking order status (mostly for big customers).
  • Manage rewards programs for your most loyal customers with software
  • Integrate accounting, inventory, customer ordering, order tracking, and distributor ordering
  • Acquire new customers with Groupon promotions
  • Update all of these systems when necessary

For such a simple business, that's an awful lot of technology and none of it seems too ridiculous today (I doubt the little flower shop up the street is doing all of this, but I'm sure we'd be surprised.). Someone has to build all that software.

I doubt the flower shop could have predicted they would need so much technology, just like we can't predict the technology that will be available tomorrow.

share|improve this answer
add comment

Why do car companies seek to improve their design when any vehicle from the past decade would suffice? Why would a coffee shop search for new roasts when their current blend is already satisfying? Why would a fashion designer create new clothes when what we're all wearing is more than enough?

While there might be good enough, there is no best---only better

And anyone who takes pride in his work is always looking to improve, to sharpen the tools, to seek perfection. That's what drives scientific progress, that's what inspires artists, that's what motivates entrepreneurs. No best, only better.

share|improve this answer
1  
I agree on the improvement part, but do you have an explanation on why the demand is actually rising (more people are needed), considering that we are at the "good" state already (which is the biggest % of the product), and we need only some improvements? It is more work to create a car design compared to just make a few adjustments between the 2008 and 2009 model. Could it be because of the legacy code, because the bigger they are the harder to upgrade/maintain they are ? :) –  jd_505 Feb 19 '11 at 3:35
show 1 more comment

People keep thinking up new things to do with computers, and hardware keeps evolving to let you do things you couldn't do before.

It's hard to know where to begin, but let's take watching TV as an example.

In October 1965, if you wanted to watch "I Dream of Jeannie", you had to turn on the right station, at the right time. There were no other options: you couldn't record it or buy it or anything. And if you missed it, well, too bad. Maybe in a few years, they'd syndicate it and (if you were lucky) you could catch the show you missed sometime in 1970.

Oh, and in 1965, nobody had a computer except corporations and universities, they were usually at least as big as a small car, and involving a computer in TV playback was purely a sci-fi notion.

By 1996, you could buy "I Dream of Jeannie" episodes on VHS, which you could then play on a VHS player that might have an embedded CPU, and a CRT TV which might also have an embedded CPU, which of course somebody had to program. There were devices you could use to capture the video output from your VHS into your computer, but the consumer-level hardware horsepower back then was so low, you could suck down a huge chunk of a state-of-the-art hard drive with one episode, and then you could only play it back in a little teeny window on your screen.

In 2006, they started releasing "I Dream of Jeannie" episodes on DVD. When you played them back, your DVD player and flat-screen TV both required an embedded CPU, both of which somebody had to program. Or, of course, you could play the DVD on your computer, which somebody had to program to do it.

Shortly after the DVD releases, people started ripping the DVDs using DVD-ripping software that somebody had to program. And then they edited the rips into clips (using non-linear video editing software that somebody had to program), and used their browsers (which somebody had to program) to upload their videos to YouTube (which somebody had to program) for other people to view in video playback browser plug-ins (which somebody had to program).

Now, you don't even have to rip the DVDs! You can use iTunes (which somebody had to program) and go to the iTunes Store (which somebody had to program) and purchase and download 140 different episodes of "I Dream of Jeannie", which you can play back using software on your computer (which somebody had to program)

While I haven't checked this, I strongly suspect you could also take those iTunes versions of "I Dream of Jeannie" and play them on your iPhone or iPod Touch, which, of course... somebody had to program.

And I have absolutely no idea where "I Dream of Jeannie" is going to turn up next. Maybe on my wristwatch, or on some kind of wearable fabric, or projected onto the lenses of my glasses. But wherever it turns up, somebody will have to program it.

Office apps? Meh. I'd be perfectly happy still using Word 5.1 from the early 90s.

But everything else? I've been programming for 40 years now, and I expect the market for programming work to just keep growing and growing.

share|improve this answer
add comment

Because our endless hunger for useless crap we already have must be satiated.

Also, without the software industry driving the need for faster and faster computers there'd be no need to do hardware upgrades. THEN where would we be? What would all those electronics garbage recycling towns in China do? The mountains of toxic trash would soon turn into nothing but hills. We simply can't have that.

share|improve this answer
show 1 more comment

Ubuntu and Windows XP are still sufficient because operating systems, and desktop software in general, have become less important. So many things, stuff we wouldn't want to miss, happen on the web, like this site, Facebook, and YouTube. That's where new software is built. A lot of exciting stuff happens on smartphones and tablets, another domain where a lot of programming happens.

share|improve this answer
add comment

In your post, you mention two operating systems (Ubuntu an Windows XP), stating that their users are predominantly happy with the OS's current form.

Ubuntu and Windows XP the result of the culmination of thousands of ideas.

Many of the ideas (whether it be placing the Start Menu at the bottom left corner of the screen, or designing Microsoft Excel) have been so thoroughly developed. Yes, it's true that they might've reached the satisfying state, but think about what our current software, and software-engineering ideas, will lead to in the future.

Our needs and wants are evolving with technology. We want to utlise technology to its full potential. Ubuntu and Windows Xp are just a mere stepping stone (or milestone) in an on-going process.

share|improve this answer
add comment

For applications and systems that people actually use:

Software begets more software.

In the form of:

  • New features
  • Bug Fixes
  • Competitor businesses and applications
share|improve this answer
add comment

Developers for mobile and social applications seem to be in high demand. Startups are all over the place and for Ubuntu and OS's, there are always bugs - nothing is complete. As long as someone has an idea, they'll need a developer.

share|improve this answer
2  
I think that the % of developers working on mobile/social apps is rather small. Most of the developers, on a global scale, are working for big enterprise companies or "local" small companies devoted to a certain product related to their country's business situation. –  jd_505 Feb 19 '11 at 3:45
add comment

18 years ago I was sat in front of my school's new 286 computer in the library using Windows 3.1. It was cool! Far better than the old BBC micros... But I was completely oblivious to what I'd be sat I'm front of 18 years from then, who would have had any clue about what we'd be using today? I don't even think I new what the Internet was back then...

My point is, I don't think many of us have the vision or imagination to even guess what computers will be like in 18 years from now. Computers are evolving and getting better all the time, needing constant development to make that happen.

At the moment you THINK your happy with Ubuntu, but will you still be using it in 10 or 20 years time when everyone else is using their new super Hokey Cokey 5000, or whatever it's going to be called?

share|improve this answer
add comment

Problems may have solutions, but there is always room to optimize the solutions. The more heavily the solution is used, the more of a difference that even a small optimization can make.

This may seem like an abstract point. But it is not. For instance one of my skillsets is A/B Testing. I can tell you from experience that a successful A/B test very rarely introduces major new functionality. But a small wording change can cause 10% more people to sign up for your website, which can mean millions of dollars of in additional revenue. It is a difference so small that few will ever notice. Yet it is a significant improvement, and the prospect of possibly finding such will pay a lot of salaries.

Furthermore businesses constantly are changing. A surprising number of changes require changes to how they operate internally. Also over time they identify internal inefficiencies that better tools would alleviate. This constant churn and optimization is real work that requires real people to do it. A lot of that work needs to be done by people who can program. (This is actually where most programmers are employed, doing internal stuff within businesses.)

Furthermore the trend is that over time it has become easier for programmers to do our job. The easier it is for us to do our job, the more kinds of things there are that it makes sense to have programmers write programs to do. And the more programmers we find ourselves needing. How long can this trend be sustained? I don't know. But it has been going on since the late 50s, and shows no signs of slowing down.

share|improve this answer
add comment

The amount of information out there grows exponentially. You could expect tools for gathering and organizing it, now you can expect tools to filter it out for your specific needs.

Software follows social trends and needs, and as information is becoming more and more of social and industrial factor, demand will not decline. Forms of information are countless, its uses expand constantly, software development is long ways from becoming extinct.

share|improve this answer
add comment

You could interpret the purpose of computers (and the applications running on them) to something as narrow as optimizing processes.
Doing so, you will see, there is very much room for improvement and there will always be.

Also, the vast majority of all computer applications is horrible, when it comes to usability, reliability, features and performance (or at least on a number of scale). While there are few applications, that are slowly improving in quality, the average is plumetting at an alarming rate.
One other reason, why there is still so much programming work is poor design and crappy implementation. Jeff Atwood made a post on this you might find worth reading.

share|improve this answer
add comment

Software just allows us to express solutions to real world problems. Given that there will always be new problems to solve, there will always be the need for new software and therefore there will always be work for developers.

share|improve this answer
add comment

As far as I'm concerned, we're not finished until we can make one of these.

But more seriously, there are many on-going problems in computer-science that still aren't solved, or aren't anywhere close enough to "good". These things include image recognition, natural language processing, speech recognition, and lots of other "fuzzy pattern recognition" type problems where humans usually excel but machines fail badly. The state of AI is pretty pathetic, compared to the ambitions of the 1960s. All in all, there's still quite a bit of work to do and a lot of room for improvement.

By the way, even Ubuntu could use some improvement. Flash support on 64-bit sucks.

share|improve this answer
add comment

I guess I look at it in evolutionary terms. If society were static we'd eventually figure out how to meet our real needs, and that would be fine.

What drives evolution is challenges, often very bad challenges, such as nature or bad people deciding they want to take what we have and/or murder us. We have to think of new ways to overcome this. That generates a demand for new technologies, including software. The desire for entertainment also creates an insatiable demand, witness everything from the Roman circus to modern media, but that's just for fun. Real challenges come from things like hunger and danger.

share|improve this answer
add comment

The thing with software is it will continue to evolve with and beyond the hardware that it operates on. Currently we are only writing software that is.. pre-programmed to a certain level and this will still be many more years before humans in the majority are writing "AI" software.

When you look at something like Google compared to something like the software that is used to operate a touchscreen interface in a vehicle, you can see so many gaps in the technology.

Until we have software that is able to expand and develop itself in a forever changing physical and intelligent world.. We'll have plenty of work to do..

Edited.. When a new technology or concept comes along, a lot of existing software is instantly out of date and the majority in that genre needs to be re-created/published. Say in two years we make the major break through with using a computer by mind/thought interfacing.

Even though you can make a simple plugin for most operating systems to translate a thought/command into keyboard/mouse operations.. This still is limited and a bad way to approach it. Technology will always advance and we have no idea what will be available in 12 months little alone 10 years.

Wont even start on quantum computers

share|improve this answer
add comment

There are always new applications, new problems to solve, and new platforms.

share|improve this answer
1  
I am asking this because as I see it it is exactly the opposite, all problems (that a user may need to solve using a computer) are already solved. New applications are rarely introduced (at least successful ones, for example MS Office / OpenOffice are still the best solutions for managing the "office" work). New platforms are introduced all the time, but they capture a small % of the total developers around the world. –  jd_505 Feb 19 '11 at 3:22
3  
Many new software products don't solve problems per se (Facebook, Farmville, Twitter, etc). –  James McLeod Feb 19 '11 at 3:27
3  
And computers have uses which go far beyond the home consumer (industrial, commercial, medical, etc). –  James McLeod Feb 19 '11 at 3:28
1  
@jd_505, the mere fact that planes are not falling from the sky hardly means that our air traffic control and avionics system are doing all that is needed. That's just avoiding the grossest possible failure. Consider: passengers have been stuck in planes on the ground for almost 24 hours because the scheduling software can't immediately factor in the effect of storms on airport capacities. On 9-11 the ATC and the military completely lost track of one of the hijacked planes because the only way they could share information was by people shouting at each other over conference calls. –  Charles E. Grant Feb 19 '11 at 7:08
show 6 more comments

Not the answer you're looking for? Browse other questions tagged or ask your own question.