1988: As a teen, I wanted to learn to code but couldn’t afford to buy Turbo Pascal for my Atari ST. Most programming languages (interpreters / compilers) were distributed commercially. There was no Web to download from, someone had to ship floppy disks.
1994: As a student, I loved to have Pascal (commercial but cheap) and Microsoft Access 2.0 (expensive, paid for by my first client) on my Windows 3.1 PC. When I was stuck, I had to consult a book or search CompuServe (a commercial pre-Web community) for answers.
1998: At my job, a few years later, we had Web access (my first Windows 2000 PC was actually permanently connected to the Internet, with a public IP address and no firewall). We built Web-based software, running Apache, PHP, and a database with a search engine on Unix servers. Most database software was commercial, and extremely expensive (we used Oracle). Search engines were hard to come by (we went with Oracle’s ConText). I got my own development server, which means the company bought me a second PC – it took days to install Linux, Oracle and all the other stuff on it.
2014: Today we have virtual machines (easy to clone) we can run on our Mac or PC. Or we run servers “in the cloud”. Databases, search engines, programming languages, editors, you name it – there’s enterprise-grade open source software for almost everything. Plus a vast array of tools and libraries. And people are writing tutorials and posting the answers to almost all our questions on the Web, for free.
With no investment besides Mac or PC hardware and an Internet connection, and a lot of time, I have everything I need to build professional software. An amazing opportunity for learners and independent developers. (Or hobby projects: I’m currently working on a topic maps engine.) No wonder there’s so many Web CMS and DAM products/projects out there.
I keep being amazed by the huge opportunities and the low barriers to entry. (And I keep wondering why so few young people learn programming. You don’t know what you’re missing out on!)