Comparing programming languages has been a popular sport for many years.
I love the quote from Antoine de Saint-Exupery who once said “If you want to build a ship, don’t tell people to collect wood, or assign them tasks, but rather teach them to long for the endless immensity of the sea“.
So let’s see how each of the dozen-or-so programming languages I’ve used over the last few decades support that epic vision of empowerment:
- BASIC – You build your first ship and sail the ocean. Except It’s a toy boat not a ship, and the ocean is a bathtub.
- 8-bit Assembler – First thing you’ll be doing is prospecting for iron ore to make nails… and you always keep in mind that the finished ship needs to float in a glass of water.
- FORTRAN – You model Bernouli’s fluid mechanics formulae for each point on a ship’s hull. Which turns out to be fascinating, but doesn’t get you any closer to having a ship.
- C – You build a ship using artisanal hand tools. It floats at first, but then keeps sinking. It’s not reproducible so you never work out why. You add more lifeboats and document it as a “known bug”.
- Pascal – You declare the ship and hit Run.
- Java – You fork the ship you made previously with C, turn it inside out, and launch it onto a virtual ocean. It doesn’t sink anymore. You don’t know why.
- PHP – You build a boat out of concrete, yoghurt and paperclips, using only tools discarded by a left-handed wainwright.
- Ruby on Rails – You let Rails generate the scaffolding, dry dock, ocean, ship, crew, and bottle of champagne. You leave it to build while you go off to buy sunscreen.
- R – You predict the maximum boat speed, and plot the performance and fuel consumption profiles, while hoping someone else is building a ship.
- Python – You publish a shipbuilder package on PyPI, and write a blog about building ships, but you never get around to building one.