Stack OverflowWhat made programming easier in the last couple of years?
[+69] [85] MrFox
[2009-03-10 14:52:02]
[ history technologies ]

I have been programming for 20 years. Many things changed since I wrote my first BASIC lines. Now we have IDEs, frameworks, debuggers, profilers, versioning tools and many other helpful toys.

So which developments in the past 10 years have made programming easier? And what was necessary to sacrifice for it?

[+230] [2009-03-10 14:55:22] oxbow_lakes

The Internet [1].


20 years, certainly. 15, maybe. Not 10. I think Google itself has been around for 11 years or so. - Adam Jaskiewicz
The internet is a really, really great place -- for (more than) porn! - Randolpho
(1) The internet is for porn... - Sakkle
The Internet started in 1969. That's not exactly in the last 10 years. - Jörg W Mittag
It really started to expand and get into the public eye in the last 20 years. In the last 15 or so it has come into common use (and Amazon was founded in '94). 10 years ago it was already huge and mainstream. Not gonna downvote, because it's certainly important, but the question specifies 10 years. - Adam Jaskiewicz
@Jorg - I don't recall anyone being able to google "can I have teh codez" wearing Spandex and listening to Ziggy Stardust. The link I posted was to Google - I was making a joke along the lines of "Google is the internet". Lol! - oxbow_lakes
Too bad the top voted answer is a joke. - Robert S.
@oxbow_lakes You're still wrong, joke or not. Google was incorporated in September of 1998, so you're a few months off :P - Adam Jaskiewicz
Google is probably the more correct answer then the "the internet", but internet is fine. Companies becoming more involved in the internet was in the 92-95 time frame. The internet being the main source and replacement for Help in your IDE is definitely in the last 10 years. - bruceatk
(2) @Randolpho: "I'm pretty sure if they took all the porn off the internet, there would be only one page left, and it would be called". - ldigas
GOOGLE is NOT the Internet ! - n00ki3
(2) Google is not the internet. Pfffft. Lol! - oxbow_lakes
(5) If google has the power to blacklist the whole of the internet (itself included), then I would contend that google IS the internet. - Kyle Trauberman
[+162] [2009-03-10 14:57:43] Paulo Guedes [ACCEPTED]

Any IDE with auto-completion :-)

(3) im pretty sure crutches have been around for hundreds of years... - community_owned
In what sense has autocompletion been around for hundreds of years? - mquander
(12) the wheel has been around for longer -- stop being lazy and just walk everywhere! - jonstjohn
when did Vim get this feature? I think it's probably quite long ago... (ctrl+N in insert mode, for anyone who cares). - rmeador
Which, according to Petzold, rots the mind ;) - alphabeat
@theman_on_vista - When you have a broken leg do you prefer to get around with or without crutches? Yeah, it's possible to crawl, if your time isn't worth much. - Bratch
(3) @Bratch, a broken leg and not knowing common libraries are two different things. While CC is a nice feature, one should be able to work without their favorite IDE. Both the 'crutches' and 'broken leg' arguments are straw men, imho. - Tim Post
(3) It's just an attempted analogy about making things easier. Many of us can work without an IDE, but this is about making it easier, and in many cases faster, which is not always better, as Petzold makes very clear. - Bratch
(3) Before I had an IDE with autocompletion. Now I have a "dynamic" language that makes it impossible. We get quite a bit of autocomplete anyway, but it's not like with a static and statically-typed lang. - Yar
Very much agree with you yar. I usually work in VB.Net, and the thing I miss most when using languages like PHP and Ruby is really good auto completion. - Kibbee
[+128] [2009-03-10 14:53:16] grapefrukt

Garbage collection.

Just saw that it was for the last ten years, oh well. - grapefrukt
(2) While the whole concept of Garbage collection has existed for more than 10 years, It was really within the last 10 years that using garbage collected languages really got popular. - Kibbee
Or that computers got fast enough that garbage collection isn't the slow down that it used to be... - Paul Tomblin
GC has been around for 50 years and a lot of popular languages had GC for a lot longer than 10 years: Lisp (1959), Smalltalk (1966), APL (1965), Perl (1987), Python (1989), Ruby (1993), PHP (1995), JavaScript (1995), Java (1991) and so on ... - Jörg W Mittag
Garbage collection is older than that. - ldigas
GC is messy. Programmers are lazy, but garbage collection goes beyond laziness. - WTP
[+114] [2009-03-10 14:58:45] Kibbee

Source control [1]. Sure source control existed for much longer, but the advancement of source control systems with things like SVN, Git, and others have really helped make things a lot easier. Source control was much worse when all we had was CVS [2] and SourceSafe [3].


(3) CVS wasn't that bad, within its limitations. SVN is a better CVS, but not stupendously better. Distributed VCSs, like Git, do seem to be newer than ten years, and are much better. - David Thornley
I agree. CVS wasn't that bad. It's just been replaced by better things. Now Sourcesafe was bad.... - MatthieuF
[+77] [2009-03-10 14:54:08] Greg Dean


(7) Brown-noser :-) - Les
(4) Nah, for the time waster SO is, I wouldn't give it so much credit ;) - Pop Catalin
@Pop Catalin LOL - thats true - Greg Dean
It's good, but it ain't that good - Mark Rogers
[+71] [2009-03-10 14:55:27] Greg Dean

[+53] [2009-03-10 15:45:36] Stephan Schmidt

Open source libraries. Most of the code you needed to write 20 years ago is now available for free. Today people assemble applications, they don't mainly write new code.

(1) And sometimes it makes you wonder just how much those libraries buy you in terms of functionality and time-savings... Sometimes. - Chris Kaminski
(1) @darthcoder - agreed. Sometimes :-). - Owen
SpaceWar! had to wait for vendor-supplied sin and cos routines. - luser droog
[+49] [2009-03-10 15:02:07] Gavin Miller

High-Level programming languages [1]

  • LINQ [2] ~ 2007
  • F# [3] ~ 2005
  • C# [4] ~ 2001
  • Python 2.0 [5] ~ 2000 (I say 2.0 because the language began to gain ground here)
  • CSS [6] ~ 1996
  • Ruby [7] ~ 1995
  • [1]

    (3) Those have existed an been used for more than 50 years now, ever since Lisp (1959). - Jörg W Mittag
    Which programming languages in particular? - jmucchiello
    @Jorg - khm, khm, fortran (1957). Thank you :) - ldigas
    (30) CSS isn't a programming language: it's some kind of voodoo... ;-) - peSHIr
    (2) <conspiracy theory>Java is missing from your list</conspiracy theory> - Kelly French
    [+33] [2009-03-10 14:55:04] m_oLogin

    Color screens :)

    You are right! Didn't think of that. :) But I know how I dislike editing XML without highlighting. - nice one! - MrFox
    What, you mean you don't have the gray/light gray/dark gray setup? - VirtuosiMedia
    In the past 10 years? - Andy
    My workstation had a color screen in about 1988 or so (with the "X10 Windowing System"). - NVRAM
    Color screens are a little older than 10 years. Maybe you were thinking about color screens with really high resolutions ? - ldigas
    (3) Bah... two colors is enough! Black and amber! - Spoike
    how about cheap, large displays? Two (or more) monitors were a relative luxury 10 years ago, now they are very common and a huge productivity booster. - Bryan Oakley
    @Bryan Oakley: I remember seeing a Macintosh II with four screens set up a long, long time ago. I was very impressed by how windows went across screen boundaries, and wished I were rich enough that I'd even consider buying multiple monitors (which were not cheap back then). - David Thornley
    [+30] [2009-03-10 15:11:08] John MacIntyre

    For programmers targeting the Microsoft platform;

    .NET has been a HUGE leap in every possible way.

    Compare that with VB6 and classic ASP. It's massive!

    You think VB6 and Classic ASP are bad, you should check out MFC. - Kibbee
    I've used MFC. After using VB3 & VB4 for a couple years; MFC was a god send! ;-) ... but trust me ... I wouldn't go back. - John MacIntyre
    Maybe Microsoft can get it right one of these times. I've been coding in C / C++, FORTRAN and BASIC since the 70's. UNIX had it right when it made the lowest common denominator the source used to create the OS. Linking between C, FORTRAN, PASCAL, COBOL (note I didn't say BASIC) is a snap since the base libraries are all written in the same language. - Dave
    (3) Yup, .net is great...guess where they copied it from? - Pyrolistical
    [+26] [2009-03-10 18:23:13] OscarRyz

    CPU speed of course!!!

    10 years ago, there were still 286 machines [1], and the simplest program could take minutes to compile.

    None of the others mentioned factors would have succeed if we still had slow machines.

    I remember the first time I opened ProjectBuilder or Netbeans. It took forever and eventually I had to restart the machine.


    Fifteen years ago, I had very fast compiles on my blazing 68030 Mac using Think C. - David Thornley
    Hard to fit running unit tests in to your programming habits on slow hardware. - Jay Bazuzi
    @Greg. Yeap, I saw that in my way to here. Additionally I added my reason why that have made easier. - OscarRyz
    (1) 10 years ago I had a Pentium II. The original Pentium came out in 1993. There may still have been some 286 machines around 10 years ago, but I don't think they were the norm. Faster machines have helped, but I think your timelines are a little off. - Kibbee
    Mmhh true.. perhaps 386? :P We should also consider the geography. Public schools in Mexico in 1999 still had windows 3.1 running on very very slow hardware ( true perhaps not necessarily 286 ) but certainly not Pentium. Or isn't? Geee, I start confusing dates and I'm only 30!! :S :S :) - OscarRyz
    Even the absolutely ancient school machines I "maintained" for one old lab (microchannel never caught on so there where no spare parts available) in 1999 where IBM PS/2s (386SX 25mhz). The closest to 286 I could find in 1999 was a handful of DOS 3/GWBASIC machines used to control wood working tools. - David
    Probably it was just the perceived speed. In 1999 universities had the fastest internet in the country but the machines speed was terrible. I remember I can see each pixel ( without exaggeration ) drawing on the screen one by one. A simple rendering took about 40 secs to 2 mins. - OscarRyz
    And closing a browser took about the same amount of time. The funny thing is one one friend opened "" instead of "" heh e heheh .. It was the most embarrassing time, waiting for the IE3 ( or 4?? ) Or Netscape to close such webpage, showing a lot of "hot male's" pictures. :) :) - OscarRyz
    [+23] [2009-03-10 14:55:42] jjnguy

    I'm going to go with a refinement of the software development process.

    Moving from process models such as the waterfall model [1] to newer methods like an agile/iterative approach have made software development much easier.

    Probably the biggest sacrifice of these new processes is a harder to determine code complete date.


    Code is "never" complete. Business systems continually evolve. If you ever get to the point where you think code is complete, I think you miss the point of the Agile methods. IMHO, anyway. - Chris Kaminski
    @Chris, what is not complete on a Hello, World application?! - WTP
    [+22] [2009-03-10 20:51:43] Jay Bazuzi

    Automated Refactoring Tools

    The most important ones are Rename and Extract Method, but Extract Class, Move Method, Introduce Explaining Variable, and their inverses are pretty important, too.

    Tools that get these right 90% of the time is great for labor saving, but then you must have good unit tests, the kind that only come from Test-Driven Development, so that means they're really for a restricted audience.

    Tools that get them right 99.9% of the time are useful for everyone, regardless of development practice.

    That's why the refactoring list in Visual C# is so small: we wanted to go for the "always right" algorithm, even though it took a lot more time on the schedule; time that could have been used to add more refactorings. (It's also why Rename is so slow.)

    The result is that people buy Resharper to get a full catalog of refactorings (which are important), but I worry that they aren't aware of the differences between the builtin and addin refactorings.

    Too bad we couldn't build a fuller catalog of refactorings, or made Visual Studio extensible enough that you could build your own high-reliability refactorings. Maybe in VS 10. I'm hoping.

    I like this one - nice point - MrFox
    For me, it's the really the combination of automated refactoring and TDD that provides huge bang for your buck. IMO it takes a fair bit of experience with TDD before you realize that one of its main purposes is to empower refactoring. Both TDD and refactoring are useful on their own, but when properly combined they are far more effective. - Sean Reilly
    +1 Rename (resharper here)... is such a beast but with the right tool, it's something you do like every minute and you wouldn't before because it'd mean hunting through dozens of files, correcting namespaces and filenames as well as the actual calls and references.. wow, just wow - Oskar Duveborn
    [+21] [2009-03-10 15:00:31] kevchadders
    • Stepping/Breaking into code
    • IntelliSense [1]
    • Improved GUI Interface
    • .NET Framework
    • Internet (HTML/ASP.NET/PHP etc)

    (2) All but one of those (.NET Framework) were around more than 10 years ago. - Robert S.
    (3) I would argue that the .NET framework is just a refinement of Java. - cdmckay
    @cdmckay: Yeah but you would be wrong. :) Have you worked with Java, I'm mean yuk... C# is so elegant! C# != Java (even Refined) - Bobby Cannon
    (1) I have worked with Java, and except for the setters/getters issue (no first-class properties), I'm not sold on C# as all that much better. Better for sure on Windows, but guys, I don't develop just for Windows. - Chris Kaminski
    [+20] [2009-03-10 14:58:20] tvanfosson

    Unit test frameworks and mocking. In order to effectively benefit from it you have to sacrifice "code-like-hell programming" and invest time and effort in disciplined test writing. I could go back to using VI and separate shells to compile in instead of an IDE, but I wouldn't give up unit testing.

    +1 I'm dissapointed this has so few votes. TDD is more profound than OOP, IMNSHO - TokenMacGuy
    indeed, TDD was the first thing that came to my mind, too. And in fact, I usually develop with vi and multiple shells on multiple virtual desktops. - Tetha
    [+17] [2009-03-10 15:03:32] Gambrinus

    I think a big step forward was:

    • syntax highlighting
    • code completion
    • educational tools like ReSharper [1]
    • Internet
      • online examples
      • online documentations
      • newsgroups
      • download of libraries
      • etc.
    • powerful IDEs
    • powerful debuggers
    • frameworks and access to them (see Internet)
    • 10 more years of experience in software-development

    [+17] [2009-03-10 15:59:17] Pratik Deoghare


    by great programmers like Guido von Rossum [1] , Bruce Eckel [2], Jon Skeet [3] ...


    (1) And Jeff Atwood? - Peter Mortensen
    @Peter ya sure :-) - Pratik Deoghare
    [+14] [2009-03-10 15:09:06] user69889
    1. OOP
    2. .NET framework
    3. IntelliSense [1]

    OOP is more than 40 years old, not 10. - Jörg W Mittag
    Well apparently this person hadn't used OOP before 10 years ago. - jmucchiello
    [+13] [2009-03-10 14:57:44] Artur Carvalho


    [+12] [2009-03-10 15:10:19] Kevin Conner

    Higher-level languages like Ruby and Python.

    To take advantage of them we had to give up our perfectionist control on memory, performance, etc. and accept that higher-level languages cut down on the time it takes to make the damn thing work.

    Ruby has been around for 16 years, Python almost 20. Higher-level languages have been around since Lisp (1959). - Jörg W Mittag
    As for Ruby and Python, yes, but now they are flourishing. As for Lisp, I meant more like increasingly higher and higher-level languages. Not that Lispers need anything higher-level than Lisp. - Kevin Conner
    [+12] [2009-03-10 16:16:40] Dave Webb

    Sometimes I think that the Internet/Google has made programming harder rather than easier.

    10-20 years ago pretty much every programming language or tool you bought would come with a nice ring-bound manual covering almost everything you need to know about it.

    Whilst good hypertext documentation is obviously preferable to a big pile of paper, a lot of projects these days - both open source and commercial - seem to think they can ship with next to no documentation and solve this by giving you a couple of samples to download and installing phpBB and calling it a "Support Forum".

    I do long for the days of exhaustive reference manuals rather than some default Javadoc that adds no value at all. (setAutoWidth(boolean autoWidth) turns AutoWidth on and off? Really? I'd never have guessed, but where do I find out what the AutoWidth feature actually freaking does?)

    I agree. Nowadays when people have lots of information at their disposal, they look and look and are unsure if "that way is ok?". In the old days, you'd just find the one way that works and do it. Much more productive. You should never leave too many open options for a newbie. - ldigas
    Greater truths have never been spoken. Most of the Bigger projects (Apache, JBoss, etc) don't have this issue, but every API Reference needs to come with an API Tutorial. - Chris Kaminski
    [+11] [2009-03-11 20:46:50] Comptrol

    Programming is easier??? Damn I knew I should stop using C++.

    [+11] [2009-03-10 14:55:07] Nik

    Debugging environments that support edit & continue.

    All Smalltalk IDEs had that from day 1 (1966). In fact, in most ST IDEs, the debugger is the IDE. Also, Lisp implementations had it probably even before then. - Jörg W Mittag
    [+11] [2009-03-10 14:54:30] jonstjohn

    Eclipse [1] IDE.

    Had to sacrifice: Vim keyboard commands.


    (2) You should check Eclim out: - Jonas
    wish I could upvote a comment - thanks - been looking for this for a while - jonstjohn
    jonstjohn: How true ! (well, the second part) - ldigas
    [+9] [2009-03-10 14:59:10] JaredPar

    Red Bull [1] - it gives you wings.


    (1) Yes! Although before that there was Jolt. - sk
    Yeah, but until the mindlink is perfected, you still need hands to program. - Gamecat
    (1) before Jolt, Mountain Dew - jonstjohn
    (5) And before all of them... coffee :) - Sakkle
    It's still coffee, but today you got to have a big noisy espresso machine at home too be "cool".... However I still drink normal high quality dark coffee with nothing in it, dark and strong :) - Johan
    [+9] [2009-03-10 18:24:24] Wedge

    Built-in libraries and frameworks.

    Need to interact with the file system? Need to make a web application? Need to talk to a database? Need to use regular expressions? Need to send email? Need to use a hash algorithm like MD5? Etc. All of these things used to be hurdles that would require either tracking down the right 3rd party library then figuring out how to license and use it or spending significant developer effort to create the functionality from scratch. Today all of these things come for free with the most popular languages (C#, Java, Perl, PHP, etc.) as built-in libraries or frameworks.

    [+8] [2009-03-10 14:56:51] Frederik Gheysels

    IntelliSense [1] and autocompletion (making it easier to use more descriptive names for classes / variables ... )

    Unit-tests (having some kind of permanent test-suite, making it easier to refactor code)

    Static code analysis tools

    ORM [2] tools and DI [3] containers

    As noted before; the Internet and the vast resources that can be found on it. (MSDN, blogs, articles on The Code Project [4], ... )


    [+7] [2009-03-10 15:04:37] Ola Eldøy

    Greater acceptance/use of continuous integration.

    [+7] [2009-03-10 15:15:41] John Sibly

    Google [1]


    -1 is duplicate - GogaRieger
    [+7] [2009-04-15 22:21:42] Gavin Miller

    Loband MSDN! [1]

    Seriously, you need to look at this if you use MSDN! Props to Frank Krueger for pointing this out [5]


    haha I remember when they added this. It was like an exit gate opened in hell. - Longpoke
    [+5] [2009-03-10 15:58:35] Scott Evernden

    Do you think programming is easier ? I still seem to spend 8-16 hours a day trying to make stuff work...

    Depends on what "stuff" is. Some tasks are clearly easier now, some programming problems have yet to be solved. - pearcewg
    (1) I maintain that "programming" meaning what "Programmers" do isn't any "easier" than its ever been .. Yes we have more lofty problems and power tools , but the job remains a challenge. If it was truly easier then more ordinary people would be doing it ... - Scott Evernden
    +1 for a sudden outbreak of common sense. - Tim Post
    The point isn't working shorter hours, it's getting more done with the hours you have. - Qwertie
    [+5] [2009-08-10 20:30:29] Stefano Borini

    I am surprised that nobody said "open source licensing". It completely changed the life of programmers in the last 10-15 years (when Linux and the open source community began to grow). The availability of open source tools, code, information sharing, allowed large communities to grow and provide google, documentation, ideas, programs, snippets of code.

    It gave microsoft competition, it gave OSX its environment, it created the web and the CC licensing that shapes a large part of the web today.

    That's good point! Thanks! - MrFox
    Most of the current popular OS licenses were available more then 10 years before the question was asked. Linux, as an OS you could use without being a serious hacker, is newer than 10 years. - David Thornley
    [+4] [2009-03-10 15:29:06] Laurent

    Programming languages such as Java and C# were designed to remove and/or limit the source of software programming faults found in other programming languages such as C and C++ (think pointers, memory management...). Ada was designed that way earlier but did not have the public success of Java and C#.

    These same programming languages also helped because their specifications cover:

    • Compile time behavior
    • Run-time behavior
    • Debug and run-time inspection of data-structures
    • Extensive standard libraries

    And they completely avoided the grey-zones found in the specification of C or C++ where quite a number of aspects of the actual language functionality or behaviors are compiler specific.

    Java is over 10 years old. - David Thornley
    Even though Java is over 10 year old it really became mainstream in the past 10 years for business applications. Just to give one example it's run-time performance has been dramatically improved over the past 10 years. - Laurent
    [+4] [2009-03-10 14:59:58] Greg Dean

    Moore's Law [1]


    was established in 1965, 44 years ago - ine
    sigh - Does that mean it stopped in 1999 (10 years ago)? I'd argue it was reaching its critical mass just around that time. - Greg Dean
    greg dean, o yea? and i forget, you are an authority how? go back to your you scrub - community_owned
    Stopped for processor speed about the beginning of 2003. So, you're saying that the lack of improvement in processor speed helps programming? - David Thornley
    @therman: That was rude and contributed nothing to the discussion. - ine
    LOL, @theman_on_vista - clearly the recourse of a week mind, well done. - Greg Dean
    @David -I'm saying, that because computers are so fast and have tons of memory, programming got easier. Both in terms of productivity and requirements/feature. 2003 or not that is still well within the 10 year window (it's expeonential, so the last years = the biggest change) - Greg Dean
    @Greg: Exponential in number of transistors, last I looked, but the speed improvement since 2003 is still disappointing. Fortunately, memory depends on transistor count. However, I don't see how it makes my job all that much easier. - David Thornley
    @David Thornley- Why are you so caught up on 2003 and speed? If you don't think it makes your job easier, go out and get a computer from 1999 (10 years ago) and use that for dev. While you're at it, get one for all your users too. - Greg Dean
    Moore's Law definitely helped. If you look at what most programmers do these days: CPU Speed is for most problems not really the limit anymore. Memory is also for most applications no longer an issue. And disk space is virtually illimited. - Laurent
    [+3] [2009-03-10 15:46:37] Rontologist

    Design patterns, kinda.

    While it is foolish to ask "What design patterns can I use to solve problem X" at the beginning of the project (since that mostly leads to overly complicated and ugly solutions) they are invaluable as a short hand when discussing solutions with other developers.

    I had the Gang of Four book more than ten years ago. - David Thornley
    They have been around for more than 10 years, but they didn't become popularized until quite a bit later. - Rontologist
    [+3] [2009-03-10 15:53:57] Konrad

    Interestingly enough, I believe the very same answers provided are also true for the question "What has made programming more difficult in the last 10 years".

    Are all these wonderful new 'toys' creating a layer of abstraction that spoils us into not really understanding the fundamentals of the underlying technologies, thus causing longer troubleshooting cycles? Especially for the new/younger breed of programmers?

    See "Leaky abstractions" (

    When I use "new" abstractions like C#'s lambda functions, I for one know exactly how it works, sometimes down to the assembly language level. Of course, "new" programming language features aren't usually new, they're just new in mainstream languages. And then there are productivity-enhancing tools like Intellisense, which don't create abstractions, they create transparency, so you can learn how a program works more quickly. - Qwertie
    [+3] [2009-03-10 14:55:17] Kibbee

    Edit And Continue.

    [+3] [2009-03-10 14:55:33] Ferruccio

    Google (well, the internet in general, but mostly Google)

    Google makes the internet easier. :) - Randolpho
    I used to get around confortably with altavista as well. - ldigas
    [+3] [2009-03-10 15:14:07] Qwertie

    More powerful languages like C# 3.0, Ruby, and Python with features like closures (inner functions), generators/iterators (the latter being useful to simulate coroutines [1]), delegates (passing bound functions as parameters), Ruby's continuations, and C#'s query language (LINQ). IMO C# and the lesser-known boo [2] are especially exciting because you can get high performance comparable to C++. There had been some languages before that had features like this, but they never enjoyed popularity. In the future, I think more features imported from functional and logic programming languages will make skilled programmers even more productive.

    Garbage collection makes a huge difference.


    The Internet.


    Darn little of what you're talking about wasn't available before 1999. - David Thornley
    Oh? What popular language had all of that before C#? There was the internet in 1999 but it's become more useful, and there was GC, yeah, but weren't most people still using C/C++? There was Intellisense in 1999 but it's more reliable now and has a lot more features. - Qwertie
    I was programming in less popular languages back then, myself. You are right about importing features from functional languages - language designers have been copying features from Lisp into languages with actual syntax for decades. - David Thornley
    It really is important whether a feature is mainstream or not. I don't think my boss would be too impressed to learn I had written my latest code in LISP. But C#, great. - Qwertie
    [+3] [2009-03-10 21:46:26] Hkkathome

    Short and simple answers (in no particular order):

    1. Model-View-thinking
    2. Agile methods
    3. Better hardware
    4. Internet
    5. Other

    [+3] [2009-03-11 15:04:53] Bratch

    Many of these things have been around in one form or another for a while. For me, if it was just the last couple of years, I would say advances in OS virtualization. I have 7 different VMs on one machine and can take a snapshot of any of them multiple times. If gives me great flexibility on developing against different platforms without having a pile of old boxes under my desk.

    I do not believe that anything had to be sacrificed for this, except a bunch of disk space and some RAM, which is much cheaper than several years ago. And you can take more advantage of that multi-core CPU.

    [+3] [2009-03-15 11:17:12] cletus

    jQuery [1]

    It singlehandledly (IMHO) made Javascript usable.


    [+2] [2009-08-10 15:22:44] Elzo Valugi

    Free learning on internet. Most of the people are learning online now, 10 years ago you had to go to some paid courses to get an introduction. You can do the same today in youtube.

    The only sacrifice that we made is the time spent learning that people should share stuff on internet and that profit shouldn't be always the engine for everything.

    Before the internet, I learned to program from books in the library. - Qwertie
    [+2] [2009-03-10 23:52:41] sleske

    Refactoring tools, to automatically (and without the risk of silly mistakes) perform common changes on code: extract method, inline method, extract class etc.

    [+2] [2009-03-10 20:57:19] Steve Hanov

    Vim highlights the opening bracket when you type the closing one.

    vi did brace matching 30-or-so years ago. This isn't new. - xcramps
    vim never had it turned on by default until version 6 something. - Steve Hanov
    [+2] [2009-03-10 15:06:19] Daniel Daranas

    OO [1]. And, largely as a consequence, libraries. We had them before, but now they are far more powerful.


    [+1] [2009-03-10 15:01:35] Soviut

    Version control. Without it I wouldn't be able to tele-develop, and the open source community would probably not exist.

    I'm stating that the open source community was founded on widespread use of version controlled repositories on the internet. Hell, GIT was invented as a distributed version control for the Linux kernel. - Soviut
    im sorry i misread, i didnt realize you were referring to the "community" - community_owned
    In 1999, the community was primarily using CVS, which was then state of the art. Distributed version control (git, arch, mercurial, etc.) may be less than 10 years old. - David Thornley
    [+1] [2009-03-10 15:01:53] m42martin

    punch cards! :)

    oh, wait. maybe not.

    [+1] [2009-03-10 15:40:50] Ferruccio

    Hardware getting really fast and cheap.

    No way, in the DOS era you never had to wait several minutes for some designer to open, everything was basically instant there, hit Enter, and a half second later it was open - Pop Catalin
    I didn't say anything about software ;-) - Ferruccio
    In the DOS era, you had to worry about not using too much memory and not taking up too much disk space. Today you can just use what you want and tell the user to buy a new computer if they need more. - Dan
    [+1] [2009-03-10 14:55:39] Eric Petroelje

    The internet - makes it a lot easier to find answers to questions.

    I'd add open source to the list too, as open source projects have provided lots of great tools that developers can use out of the box for free to do many complex tasks.

    Bear in mind that, while the Open Source Initiative may be less than ten years old, there was a whole lot of free (as in speech) software already, including Gnu stuff, BSD, Linux, Apache.... - David Thornley
    [+1] [2009-03-10 23:09:40] Rick

    I've also been in the industry for over twenty years and have use a variety of programming languages. How about PICK? Anyone heard of that one? The years of old (1980's) we had to build our own code snippets, libraries and read these thick and not well written books on programming.

    The Internet has empowered the developer. With it, vast resources can be searched in less time than it take to breath! Good solid answers by technical peers are there!

    But again, without the Internet I could still do my designing, developing, documenting.

    Yes the Internet has made it easier but what I find that has really made a difference is the advances of the IDE. Whether it's .NET, Java or whatever language . Using an effective IDE that supports intelisence and gives you a clean graphical, powerful and intuitive environment to build the applications in, is probably the most important to me.

    I'm more productive than ever before, even though the languages keep evolving and I'm bombarded by new frameworks, design patterns, and technologies. I'm still productive because of my IDE.

    As you know, languages have really evolved as well. Now there are discussions about all the new features available to the .NET developer. So many enhancements in such a short time but we still want all the power and ease of building these highly graphical interfaces, so we accept the changes - bitch a little - and then use them.

    So to sum up before I write a book here, my order of what has made programming easier are:

    1. A graphical IDE
    2. The language (C#/VB.NET/Java) evolving
    3. New frameworks and technologies (WSE, ...)
    4. The Internet - because we need an open unbiased, unfiltered source of information

    BTW... Good Question.

    Is PICK this: ? - Peter Mortensen
    [+1] [2009-03-10 23:29:25] Thorgeir

    IMO Generics

    +/-0 for that one :) - Aaron Digulla
    [+1] [2009-03-10 18:57:01] Robotsu

    The internet and the wide-range, immediate availability of information and example code from various support communities.

    Echo's my sentiments exactly, arguably companies development teams are as big as the interested community that utilise their technology due to the readiness and willingness of people to offer their help and experience for free. - Dean
    [+1] [2009-03-10 17:22:05] Mike Dunlavey

    I'm not a web developer (yet), but for the desktop, tools have gotten a lot prettier and chrome-plated, but I think the most basic advances happened earlier:

    • Unix: C, diff, scs, ...

    • C++ and its ilk

    At the same time, everything that has supposedly made programmers more productive has (for most of us) allowed us to do the same functionality with lots more code.

    [+1] [2009-03-10 17:24:31] bobince


    Today's it's expected of any decent language/stdlib that you'll have all the documentation available for free and searchable on the internet, backed up with public discussion forums.

    Programming ‘in the dark’ because the docs were great big dusty books that cost a fortune and/or were only available to partners was a disaster.

    [+1] [2009-03-10 16:36:23] Aaron Digulla

    Multi-monitor graphics cards.

    Okay, that's whining on a high level but having the web browser open next to my IDE really helps.

    Not to mention having the application that you're debugging running on one monitor whilst the IDE sits on the other one. That's been a godsend for those of us who work on the user interface of a program. - RobH
    [+1] [2009-03-10 16:58:11] Aravind

    IDE's and frameworks which highly reduced the time of development - called RAD [1].


    [+1] [2009-03-11 02:42:28] community_owned

    What was sacrificed: Easier programming is accomplished at the cost of higher levels of abstraction - can't bang directly on the silicon like you used to. Means programs run slower and require more memory - but as long as computer speeds double faster than programmers' productivity and memory costs keep dropping, not such a terrible price to pay...

    [+1] [2009-03-11 08:08:30] Boris Liberman

    I think that things such C++ std library or even boost or Java with its sets of libraries allowed some significant improvements in life of average programmer.

    Another useful thing is of course knowledge exchange networks such as codeproject, codeguru or this site.

    I don't think that things such as interactive debugging are truly ground breaking - they are more about convenience. However, ability to consult one's fellow programmers outside of one's direct organization is pretty remarkable thing.

    The C++ standard library is well over ten years old, and Boost will be ten in September. Back when I was younger, Usenet and mailing lists were the primary means of knowledge exchange, and they worked pretty well. - David Thornley
    David, if you're saying that whatever I listed above is not that new, then there is no dispute here. If you're saying that these things did not bring any benefit to the programmers' public, then I have to ask you to clarify. After all, IMO this thread is about opinions, not the ultimate truth. - Boris Liberman
    [+1] [2009-08-10 19:28:14] Martin



    Source Control

    [+1] [2009-03-15 16:16:56] Apocalisp

    Monad transformers [1], of course.


    [+1] [2009-03-10 20:12:15] David Thornley

    Looking over the previous answers, the only concept we didn't have ten years ago is:

    Distributed version control systems (I didn't find a reference to them before this millenium).

    Everything else has been implementations, earlier ideas becoming more popular, things becoming less expensive, and information becoming more available.

    Either the pace of innovation in software development has gone down, or the length of time it gets a new idea to be implemented and into general use is normally greater than ten years.

    I don't think it has to be invented in the last 10 years, to count. Lots of times things don't become widely adopted for several years after their initial creation. - Greg Dean
    The question asked for the developments of the last ten years. - David Thornley
    [+1] [2009-08-10 20:34:00] community_owned

    Nothing! Programming is still really hard, even if you are highly skilled. I cannot think of anything that has arrived in the last 2 years that actually makes the hard part - designing and writing effective reusable and functional code.

    Most of what's already been mentioned here has been around in some form or another for a lot longer than that.

    [+1] [2009-10-02 17:38:54] dogbane

    Decompilers to see how other applications work. And damn those obfuscators!

    [+1] [2009-08-10 20:23:57] Ray

    Experience and knowledge gained over these years.

    [0] [2009-10-09 19:36:31] Steve

    I find having a larger screen helps me visualise more code at once.

    [0] [2009-10-14 17:05:46] dwelch

    syntax highlighting

    [0] [2010-05-04 13:24:25] Venkatesh

    The following made programming easiest in the last couple of years.

    1. IDEs.
    2. Design Patterns
    3. Software Development Life cycle (SDLC)
    4. Version Control System.
    5. Web Tutorials and Forums.
    6. GUI and Frameworks.

    [0] [2011-08-25 13:47:22] Christian

    The increasing use of computers in midle bussness and home stuff. more investemts do more easy tecnology

    [0] [2009-08-10 19:36:32] Chris Kaminski

    Something I wish was more prevalent in debugging is execution recorders, where some parent process traces the entirety of your program forward and backward, recording variable values, stack locations, etc, so you can rewind your application to find out where something got changed. It'd be perfect for throwing to customers for those hard-to-repro issues.

    It'd be a PITA trying to get a sanitized version out of somewhere like Raytheon, but I'd kill to have one. Debugging would get so much easier if you could visualize the lifespan of a memory location over time and not just a snapshot in time.

    [0] [2009-08-10 19:49:13] Dan Monego

    Frameworks and IOC

    When's the last time you sat down and typed out some form of (static) void main()? If you were writing the entry point for the app that you're developing now, what would you put in it?

    [0] [2009-08-10 19:58:27] Jeremy Friesner

    valgrind ... at least, it sure makes debugging those mysterious crashes easier.

    [0] [2009-03-11 09:22:31] Luis Abreu

    I believe that the increase of the abstraction has made things really easy. Just compare writing a program in C++ with writing a program in C#...

    [0] [2009-03-13 09:30:15] mqbt

  • Richer set of available programming languages to choose for solving your problem. From high level, object oriented, to dynamic, to functional, to low level languages.
  • Better tools for writing codes.
  • Tools to help write quality code. Think TDD and available unit testing frameworks.
  • Better ways of sharing and finding information. Books, magazines, the internet, the search engines, blogs, forum, QnA websites ( :)), etc.

  • 74
    [0] [2009-03-13 16:21:11] community_owned

    Abstractness in the programming, High Level Programming Lanugages, IDE( auto complete, refactoring, code-to-build, Beaten problems Best Practices, on-demand coding, internet code browsing repositotires

    [0] [2009-03-15 09:14:40] CLaRGe

    ReSharper. Had to sacrifice about $100 to gain a ton of productivity.

    [0] [2009-03-10 17:05:48] Sarel Botha

    Web applications becoming prevalent have made things easier.

    Don't have to deal with reproducing issues on individual client machines much. Many of the issues occur on the server and can be fixed and the app can be deployed again very easily.

    They do have their problems, such as browser incompatibilities and the challenge of how to perform privileged actions on client machines.

    IMO the pros outweigh the cons though.

    Web apps are OK if they're small, but IMO, large apps have no place in a browser. Large apps that want to use the Web should, IMO, use the Google Earth model, where the app resides on the client machine and goes out to the Web to get what they need. - RobH
    Web apps, in the form of Java applets, are more than ten years old. - David Thornley
    [0] [2009-03-10 18:14:52] Mue

    Hmm, a little brainstorming. OO with Smalltalk and its IDE, oh, much older. Functional programming with Lisp and Emacs, hmm, by far older. Concurrent programming with Erlang/OTP, hmm, more than 20 years old. And logical programming with Prolog? Don't talk about it. So perhaps ODBMS or RDBMS, no, both older. And dirstibuted computing, hmm, no, RPC and CORBA have been around for a long time, even multi-platform. A good operating system? Unix is already very old. The internet? That too. at least open source software? No, that's also more than 10 years old.

    Damned, I've got to admit that there's nothing real new for the last 10 years. So let's do our best to change this. +smile+


    why did you smile - community_owned
    Call it exhilaration. - Mue
    [0] [2009-03-10 18:58:08] johnny

    More and better applications that needed to be created. Our society changed with the PC, as PCs became more integrated into everything, the need for programs. The need for programs meant competition. Programmers honed their skills, made better tools, and by repetition and the need to move forward - programming became easier. Though, I do believe "easier" is in the eye of the beholder. Perhaps in the future those things today will be "easier" when new skills, tools, and competition begin anew.

    [0] [2009-03-10 19:03:50] Giovanni Galbo

    Abstraction. The more and more code others write for us, the less we have to do to get things working.

    [0] [2009-03-10 14:59:00] duffymo

    Very little has made software development easier. The technology is certainly much better, but the difficulties are still due to communication and social issues. Those haven't changed.

    It's certainly a joy to not have to worry about every byte, and who doesn't love dual flat-screen color monitors?

    I think the scale of the problems have expanded to the limits allowed by all those technical improvements, so the cutting edge problems still seem hard.

    Great viewpoint. While the tools have certainly get better, it still takes many years experience and a rare mindset to get a good programmer. I think that even though tools will get even better, it will be a very long timer (century or two) before average people can program. - Kibbee
    [0] [2009-03-10 14:55:34] gpojd

    The Internet. It allows us to find information on how to do things a lot easier. It also makes sharing libraries easier (think CPAN for perl).

    [0] [2009-03-10 15:11:47] PoweRoy

    Add-ons like Visual Assist [1] and SharpDevelop [2].


    [-2] [2009-03-10 21:42:53] zgoda

    No single answer - many factors.

    This implies that virtually anyone who answered this question is wrong.

    [-4] [2009-03-10 15:06:26] Ola Eldøy

    Jon Skeet ;)

    lol, man crush? - community_owned
    (1) I also think he is more than ten years old. - David Thornley