// you’re reading...


If a programming language was a boat…

This one is inspired by a recent forum post, that still leaves me in amazement.

Hi, Im wondering how i can create a boat in turing and if someone can post a example.

This makes no sense, since one doesn’t normally make water vehicles in Turing, the programming language. Though this got me thinking — if a programming language was a boat, what would it be?


Turing would definitely be a kayak (thank you for comments). It’s small. It’s human powered. It’s often used as a beginner “boat”. And it’s also very Canadian.

Turing programming language as a canoe
Original photo by naokomc


Java is a cargo ship. It’s very bulky. It’s very enterprise~y. Though it can also carry a lot of weight. Will carry a project, but not very fun to drive.

Java programming language as a cargo ship
Original photo by cfarivar


Perl is a tugboat. Powerful enough to tug Java around, in 80 characters or less.

Perl programming language as a tugboat
Original photo by xeeliz


Ruby is difficult to describe. It’s sleek, sexy, and very fun to drive. Here’s a picture. Very trendy.

Ruby programming language as a speed boat
Original photo by Tony Falcon


PHP is a bamboo raft. A series of hacks held together by string. Still keeps afloat though.

PHP programming language as a raft
Original photo by permanently scatterbrained


C is a nuclear submarine. The instructions are probably in a foreign language, but all of the hardware itself is optimized for performance.

C programming language as a nuclear submarine
Original photo by Ryan C. McGinley


HTML isn’t really a programming language boat.

HTML is not a boat
Original photo by ascendeddaniel

There’s a lot more to this, and it’s all up for discussion. How would your favourite programming language fare in open waters?

Read more


  1. Posted by Gianni Chiappetta | April 4, 2008, 1:58 am

    I think we can all agree that Coldfusion is like a sinking vessel; No longer functional, and everyone is jumping ship.

    Reply to comment

  2. Posted by hank | April 4, 2008, 3:17 am

    BASIC: a picture of an inflatable boat, the kind kids use in the municipal pool.
    Caption: Theoretically you could sail the seven seas with it, but you wouldn’t really want to.

    Reply to comment

  3. Posted by damien hunter | April 4, 2008, 3:19 am

    What the hell is Python?

    Reply to comment

    eric replied on: October 17th, 2008 at 4:08 pm

    its this really lightweight and easy to use programming languague, its also open source. really easy to learn. not as powerful as c++ or anything though.

    Reply to comment

    Adam replied on: November 2nd, 2008 at 2:30 am

    Ooh, I don’t know, depends how you define ‘powerful’. It’s slower than C (still fine except for complex mathematical stuff), but AFAIK the bundled modules have more capability.

    For more about it, and the Python way of doing things, run a python interactive prompt and type ‘import this’, or google “The Zen Of Python” (it’s a short poem).

    Reply to comment

  4. Posted by Kelvin Quee | April 4, 2008, 3:26 am

    One wonders – what boat is Python?

    Reply to comment

  5. Posted by GorgonTheDestroyter | April 4, 2008, 3:45 am

    I disagree Gianni. ColdFusion8 has a lot of very nice features. The syntax is horrible but you can at least operate inside tags now.

    Merging ColdFusion with Flex is sooooo nice. ColdFusion abstracts the server architecture away from you. You can then use it as a glue to call .NET or Java objects or just write inline cfscripts. You can even embed Ruby or Python into it if you want. Pretty slick actually. Oh and it handles all that web stuff too.

    Reply to comment

  6. Posted by RJ | April 4, 2008, 3:55 am

    .Net is undoubtedly a flotilla of mid-size ships in various states of dis-repair, with no one boat leading the others. At random intervals new boats, partially complete, will be added to the flotilla – but as these ships do the same as some of the other ships – nobody will bother to finish them. Sometimes, some of these ships sink never to be seen again, but nobody really notices.

    Reply to comment

  7. Posted by Mark | April 4, 2008, 3:56 am

    And let’s not forget Erlang: The Mary Celeste of programming ships, it appeared out of nowhere, nobody really knows what it does or what it’s good for, and nobody knows whats happening to it, or where it is going.

    Reply to comment

  8. Posted by RJ | April 4, 2008, 4:00 am

    Python is a Tall Ship ( http://upload.wikimedia.org/wikipedia/commons/e/e3/USCG_Eagle.jpg ).

    Undeniably beautiful and elegant in the water, tends to be solid and reliable. Will work with little intervention, but also provides sails to help you go that little bit faster.

    Reply to comment

  9. Posted by Ed Singleton | April 4, 2008, 4:02 am

    Python is a sleek sexy speedboat that’s fun and easy to drive.

    Ruby is the same model of speedboat but with a slightly cooler paintjob and some hacks to the engine that let you do some very exciting and dangerous things.

    Reply to comment

  10. Posted by StrangerB | April 4, 2008, 4:09 am

    What about some others? C ? C# ? Prolog? Haskell? Lisp?

    XD great list though!

    Reply to comment

  11. Posted by Xavier | April 4, 2008, 4:12 am

    “Ruby is difficult to describe. It’s sleek, sexy, and very fun to drive. Here’s a picture. Very trendy.”

    How about:

    “Ruby is difficult to describe. It’s sleek, sexy, and very fun to drive. Here’s a picture. Very trendy. NOTE: The people behind the wheel are probably dipshits. And the boat uses flintstones technology for its motor. (3 electric eels and one star fish).”

    Reply to comment

  12. Posted by Robert Enyedi | April 4, 2008, 4:14 am

    COBOL: the papyrus boats of the Egyptians. Ancient, but Thor Heyerdahl managed to reach America in one :-)

    Reply to comment

  13. Posted by Ian Tits | April 4, 2008, 4:17 am

    What sort of boat is Python? How come Python is always missed out?

    Reply to comment

  14. Posted by Filip van Laenen | April 4, 2008, 4:21 am

    Smalltalk: one of those old majestic sailing ships.

    Everybody who uses it, loves it, the perfect and most elegant programming language ever invented, but who’s still using it?

    Reply to comment

  15. Posted by Mihai Dobrescu | April 4, 2008, 4:25 am


    you forgot C
    C would be a STEALTH nuclear submarine
    an object-oriented one
    with much more buttons to push
    screens to read
    and speakers to signal danger on overflow

    Reply to comment

  16. Posted by Kitty | April 4, 2008, 4:28 am

    The one problem you have with the above is that your Ruby boat is a speedboat.

    I don’t think many people would regard that as an accurate description of Ruby, for all its’ other charms.

    Reply to comment

  17. Posted by Bendem | April 4, 2008, 4:33 am

    mmmm, very nice but you forget the .net language. Yes, is a Microsoft’s evil language, but some millions of development use it all days. Most of ruby, for example.

    Reply to comment

  18. Posted by Syl | April 4, 2008, 4:40 am

    Where is Python ? :)

    Reply to comment

  19. Posted by Groover | April 4, 2008, 4:42 am

    C-sharp, Like a luxury cruiser. Sleek, good looking and quite comfy. However, not very fast , expensive and somewhat limiting.


    Reply to comment

  20. Posted by Winter | April 4, 2008, 4:47 am

    How about Lisp? I think Lisp is sort of like a hydrofoil: everyone’s first reaction is “How does THAT work??”

    Well, unless you grew up on heavy functional stuff in which case all the other boats are weird and inefficient and why can’t everyone just use hydrofoils for everything.

    With that in mind let me suggest Ruby can also pull cargo ships around and fly out of the water on bizarre not-wings. Or at least, everyone who owns one says it can.

    Reply to comment

  21. Posted by Dave Cooper | April 4, 2008, 4:57 am

    Common Lisp is like a classic old luxury cruise liner, let’s say the QE II.

    It takes you forever to explore all the hallways and secret rooms but the process is fun and makes one feel important.

    Reply to comment

  22. Posted by Jasdeep | April 4, 2008, 5:03 am

    What about Python Guys ?

    Reply to comment

  23. Posted by Jon Fox | April 4, 2008, 5:04 am

    Python is a seaplane. You can fly above problems, swoop down to reach goals. You might need to link up with a submarine for traveling through rough waters.

    FORTRAN77 is a concrete boat that still lurkes under the surface. You wouldn’t want to set sail with it though. Try navigating around it.

    Reply to comment

  24. Posted by Juho Mäkinen | April 4, 2008, 5:15 am

    C (C-plus plus) would be an US aircraft carrier: Very big, takes countless manpower to master, but once you get it running nothing can beat it.

    Reply to comment

  25. Posted by Oleg | April 4, 2008, 5:16 am

    VB? ASP? .Net?
    Where? :)

    Reply to comment

  26. Posted by Nick | April 4, 2008, 5:17 am

    So um… this very site is a bamboo raft then?

    No need to feel downcast. The entire internet is a bamboo raft. It’s supposed to be a bamboo raft. Low barriers to entry and all that.

    Ruby on Rails (to clarify) is one of those fab little peddle boats that go on lakes etc – effortless to use, easy to manouvre, bells and whistles and everyone goes awwww… but as soon as you get out into open water you’re doomed. Peddling hapelessly against the tide until the end of time.

    Reply to comment

  27. Posted by Marius Kruger | April 4, 2008, 5:22 am

    I think the HTML analogy works for XML too.
    Wat type of a boat is pyhton?

    Reply to comment

  28. Posted by C Arnoldus | April 4, 2008, 5:26 am

    If PHP is a leaky bamboo raft, what does that make ASP?

    Reply to comment

  29. Posted by Shrinidhi Hande | April 4, 2008, 5:29 am

    What about .net?

    Reply to comment

  30. Posted by Rocco Sicilia | April 4, 2008, 5:32 am

    And Python? ;-)

    Reply to comment

  31. Posted by Zubin | April 4, 2008, 5:56 am

    Lisp is a kayak. Fun, not usually used for big projects, and sometimes it just feels upside down.

    Reply to comment

  32. Posted by Chris Steffen | April 4, 2008, 5:56 am

    I personally feel that Python is like a sailboat. Don’t ask me to explain… I just feel it’s peaceful and serene, it does what you want without getting in the way.

    Reply to comment

  33. Posted by TetrisMan | April 4, 2008, 6:08 am

    I would add: COBOL, it just like Titanic, huge made long aggo, not suite for today, break the first time you use it, sinked. But people still use it !

    Reply to comment

  34. Posted by Reggie Drake | April 4, 2008, 6:32 am

    Your Ruby picture seems to suggest speed. That can’t be intentional ;)

    Reply to comment

  35. Posted by she | April 4, 2008, 6:34 am

    ahhhh we need one for python!

    here i am gonna describe how it should look like:

    szssS ssSASSSZz zzz szsszszzzzzzzzz zszs!

    Reply to comment

  36. Posted by sdf | April 4, 2008, 6:48 am

    C is a matter/anti-matter submarine

    Reply to comment

  37. Posted by K McCall | April 4, 2008, 6:52 am

    BASIC is definitely a rowing boat then. Doesn’t do anything fancy and doesn’t go anywhere in a hurry, but is a tried and tested design that still floats after all these years.

    Reply to comment

  38. Posted by Gustavo Barrancos | April 4, 2008, 6:54 am

    To me is lisp kind of a programming languages motorcycle (http://www.defmacro.org/ramblings/lisp-ducati.html) so i guess if it was a boat a jet-ski have similar qualities.
    The only odd thing is the fact that you its kind of unusual to catch a glimpse of a long hair/beard MIT hacker riding it. If you have a picture, plz , post the link here!

    Reply to comment

  39. Posted by Verikon | April 4, 2008, 6:55 am

    Your first picture is of a kayak, not a canoe. As a person born in Canada, I’d say a kayak is more Canadian than a canoe, so you might consider just changing “canoe” to “kayak” and keeping the photo.

    Reply to comment

  40. Posted by Jack | April 4, 2008, 6:56 am

    I find Ruby to be more like the bamboo raft than php. Agreed also that python is missing. Rubbish.

    Reply to comment

  41. Posted by john | April 4, 2008, 6:57 am
  42. Posted by john | April 4, 2008, 7:18 am

    Python could be one of those sniper boats, frigate, or maybe a destroyer.

    Reply to comment

  43. Posted by revolutionhq.org | April 4, 2008, 7:19 am

    That’s canoe is a kayak :D

    Reply to comment

  44. Posted by it's the fuzz | April 4, 2008, 7:28 am

    Haskell would be an alien UFO that’s crash-landed in the middle of the desert, which no-one understands at first. In fact it is made of strange materials and doesn’t look right at all.

    When someone goes up close and touches it, it turns the observer into a being of pure light that travels through space at odd angles and across dimensions that no-one else sees. The newly-enlightened boat captain rides the craft at warp speed and bothers no more with mere mortals, except when sniggering at their use of legacy steamers and old rowboats full of holes. After all, what’s a boat good for if it can’t even fly?

    Reply to comment

  45. Posted by Ryan McGovern | April 4, 2008, 7:39 am

    Great page!

    I think you need a ship for lisp though… not my favorite language but i’m sure you could build something that floats with all those parens.

    Reply to comment

  46. Posted by Tom | April 4, 2008, 7:54 am

    Ruby is no better than PHP so quit with the PHP bashing.

    ADA is more of a nuclear submarine.

    C is scientific prescision – so a Russian aircraft carrier ( so big you can get lost ).

    What about Fortran, Javascript, VB.NET etc etc

    Reply to comment

  47. Posted by jpc | April 4, 2008, 7:56 am

    Python would be a catamaran. Light and functional, with conspicuous spacing.

    Reply to comment

  48. Posted by Adagio | April 4, 2008, 7:59 am

    You haven’t looked at PHP5 obviously

    Reply to comment

  49. Posted by ideambulate | April 4, 2008, 8:00 am


    Python is a hoverboat. You don’t need a lot of nautical experience to drive one, and they can go almost anywhere. Just don’t expect to get there very quickly.

    Reply to comment

  50. Posted by Nels | April 4, 2008, 8:09 am

    True, HTML isn’t a programming language. Its a mark-up language. Think of it as the river bank for PHP, the loading dock for the speed boat, etc.

    Reply to comment

  51. Posted by Howard Fore | April 4, 2008, 8:10 am

    @Gianni: Well, as long as “we” includes you and none of my friends and colleagues that make a living programming CF I suppose that’s true. Gianni, I hereby dub thee “troll”.

    Reply to comment

  52. Posted by Tero Tilus | April 4, 2008, 8:11 am

    Assambler would probably be an axe. “Let’s go boating. *hack* *hack* Timbeeeer!”

    Haskell might be hovercraft as it travels over any sufficiently smooth surface without any on-board-observable differences and lightly hovers above limitations of reality (which all boats have to face).

    Lisp is indescribable, omnipotent, alien technology.

    C … umm … could it be jet plane. It makes a very lousy boat and it’s noisy enough to blow your ears of. Ehm, that could instead be XML. Bad and noisy boat.

    SQL would definitely be cable ferry. Short coast-to-coast safely and efficiently. Period.

    FORTRAN is a frigate built to fight numbers.

    Reply to comment

  53. Posted by rick | April 4, 2008, 8:12 am

    If you are comparing APIs with languages attached than C would be a stripped down submarine that you would need to haul your own dials and steering wheel and periscope.

    –Smalltalk would be the spruce goose.

    –Pascal would be a dingy without any oars.

    –javascript would be an innertube that has a motor on it.

    –ObjectiveC would be a self-fueling speed boat with really complicated controls.

    –Scheme would be a submarine for one without any fuel.

    There is just so much problem in talking about ‘languages’ when really they are languages APIs. It is like saying linux is not linux kernel GNU everything. The point of C is that the library is such a small miniscule subset that it will work with any API bloated or not. Java is not comparable since it is a *huge* API with a OO language.

    I personally think the future will be languages and libraries that transcend platform and will compile for anything (like mac os x *should* be because it existed as openstep that compiled for 68k, solaris, openstep on x86 and winNT).

    Reply to comment

  54. Posted by ohxten | April 4, 2008, 8:15 am

    .NET Language – Titanic. Fat. Slow. Not as good as they say…
    Assembly – Bladerunner 35 GT4. Awesome if it’s used properly. Otherwise, a pain to maintain.

    Reply to comment

  55. Posted by chris strange | April 4, 2008, 8:16 am

    Python is the Bounty; a strong, seaworthy, cargo hauling, ocean going vessel but infamous for being strict about some things which puts people off to a degree unwarranted by the vessel itself.

    Reply to comment

  56. Posted by Tero Tilus | April 4, 2008, 8:16 am

    Uh, oh. What I intended to write, was C plus plus. Intentions probably collided with format markup.

    Reply to comment

  57. Posted by John | April 4, 2008, 8:25 am

    Python is a slightly larger and safer Ruby-boat. Some of the controls are clunkier, but you get used to them. Maybe the body is a double-hull or something. But it comes stock with life preservers, radar to see how deep the water is, and comfortable seats, so a lot of boaters like it.

    Also, regarding the Perl-tugboat, don’t forget that it comes with a (fully-stocked) mini-bar. :)

    Reply to comment

  58. Posted by Lutz Donnerhacke | April 4, 2008, 8:26 am

    Haskell is ever changing prototype. Only a few people can drive those individual items, but it looks cool and easily.

    Reply to comment

  59. Posted by Doug | April 4, 2008, 8:32 am

    What does everyone have a thing against PHP? I would say it is more like ferry boat. It is a fast way to cross the river, can take your car with you, but not as powerful, but can be.

    ASP/VBScript/C#/ASP.net I would say is more like a bamboo raft with an outboard motor attached.

    Reply to comment

  60. Posted by devrandomness | April 4, 2008, 8:38 am

    Did you know your blog runs on PHP? Is it also, ‘just afloat’?

    Reply to comment

  61. Posted by Woods | April 4, 2008, 8:41 am

    I’m kinda disappointed PHP is being compared to a bamboo raft Although is the same platform your blog runs on.

    Reply to comment

  62. Posted by Peter Bell | April 4, 2008, 8:46 am

    Naw – I’d say ColdFusion is a tug boat. It isn’t very sexy or cool, but it has a lot more power than is immediately visible and it just keeps on getting real projects live – quickly and cost effectively.

    Reply to comment

  63. Posted by John Stracke | April 4, 2008, 8:48 am

    But, for Ruby, you left off the important part: you can customize it to hell and gone. Blocks aren’t quite as flexible as Lisp macros (since a function can take only one block), but they’re pretty close. Also, with open classes, you can hack up the standard classes in startling ways.

    On the other hand, Ruby may be sleek, but it’s *slow*, so the speedboat image doesn’t really work for me. Maybe a boat made out of Lego, piloted by Lego fanatics. When you set out on your three-hour tour, it’s a paddleboat; when you get back, it’s a catamaran with a magnetohydrodynamic drive.

    Reply to comment

  64. Posted by The Third Bit » Blog Archive » If a Programming Language Was a Boat… | April 4, 2008, 8:58 am

    [...] Humor from the compsci.ca folks.  (Yes, I’m supposed to be putting together material for my annual performance review.  Yes, I’m surfing the web instead.  Your point is…?) [...]

  65. Posted by CF Coder | April 4, 2008, 9:04 am

    Nah, ColdFusion is like a pedal boat – quick to jump in and figure out, fun to pedal around, limited use in big water.

    Reply to comment

  66. Posted by Mega69 | April 4, 2008, 9:05 am

    And Javascript?

    Reply to comment

  67. Posted by deStone | April 4, 2008, 9:18 am

    As a wakeboarder, i look at the “star” on your site and shake my head in discuss. Those yamaha wakeboard jetboats are the most retarded boats on the planet. Yeah, you tried really hard to be cool — but if your going to have a sleek sexy fun boat, try a mastercraft or maybe a malibu or a supra. A yamaha boat like that is epic fail!

    Maybe i’m a php rafter and i’m a bit bitter that I wasted my time looking at your stupid site and stupid list. I am sure that php has made me more $$$ than ruby has made you.

    Reply to comment

  68. Posted by dasdasdasdasd | April 4, 2008, 9:22 am

    You’ve really got it all wrong. Ruby is REALLY slow. Yet you show a speed boat? Ruby would be like in a inner tube in a river, sure you’ll get to end eventually and you’ll have fun.

    C is powerful because it is very low level not because it has lots of features.

    Reply to comment

  69. Posted by Carl Crawley | April 4, 2008, 9:26 am

    Need to come up with one for .NET maybe?

    Reply to comment

  70. Posted by Dog | April 4, 2008, 9:28 am

    Visual Basic is a freightliner carrying a unicycle.

    Reply to comment

  71. Posted by Seth | April 4, 2008, 9:43 am

    VB.NET would be a Kit-Boat. Comes ready made to piece together into something functional if not exactly professional.

    Reply to comment

  72. Posted by Rajesh Kumar | April 4, 2008, 9:43 am

    Python would just be a turtle ship (http://www.flickr.com/photos/falkflicks/72785238/):
    Slow, powerful, equipped with cannons, and used mostly in only one part of the world.

    Reply to comment

  73. Posted by dave | April 4, 2008, 10:03 am

    I think the boats in your canoe picture are actually kayaks.

    Reply to comment

  74. Posted by Anchor | April 4, 2008, 10:12 am

    C# would be


    Tries to contain EVERYTHING, and consumes memory like this one: “The amount of fuel she consumes in one hour could refill a 13 gallon tank in a car at one tank a week for over six years.”

    Also, not too much fun to drive when all on board (users) are just partying (braking your nice Web 2.0 ASP.NET systems).

    Reply to comment

  75. Posted by shadytrees | April 4, 2008, 10:12 am

    > Ruby is difficult to describe. It’s sleek, sexy, and very fun to drive. Here’s a picture. Very trendy.

    Bonus: No training required to use it. Nobody has an accident when the fastest the boat goes is eight miles per hour. And there’s some Danish guy yelling “Fuck you!” every time you pass him by.

    Reply to comment

  76. Posted by Stephane Grenier | April 4, 2008, 10:19 am

    I’d love to see even more comparisons :)

    Reply to comment

  77. Posted by Jed | April 4, 2008, 10:20 am

    What about JavaScript? Personally, I’d compare JavaScript to the James Bond Q Boat. It’s small but powerful and it’s really easy to get yourself killed trying to use it.


    Reply to comment

  78. Posted by Allen | April 4, 2008, 10:53 am

    Python is another Ruby but an older model. :)

    Reply to comment

  79. Posted by Graham | April 4, 2008, 10:58 am

    For the non-programmer programmers out there:

    R, Matlab, SAS, etc. are all like a bathyscaphe. They’re great for scientific discovery, but difficult to use, depend on larger vessels (read: compiled languages) to get them from place to place, and hard for more than one or two people to use at a time.

    Reply to comment

  80. Posted by Gianni Chiappetta | April 4, 2008, 11:11 am

    All you Coldfusioners out there clearly hate yourself and feel the need to inflict as much pain upon your brains as possibly. May I suggest Why’s Poignant Guide to cure your pains.

    Reply to comment

  81. Posted by Charly | April 4, 2008, 11:13 am

    You are a very ignorant person if you think that PHP is a bamboo raft.

    Reply to comment

  82. Posted by Joe | April 4, 2008, 11:15 am

    .NET is like a “Ski and Fish” . . . Lots of people have one, they are adequate for lots of things but not great for any one thing. It’s relatively cheap . . . don’t expect them to last long.

    Reply to comment

  83. Posted by Renato | April 4, 2008, 11:22 am

    I think that we can add Prolog also
    It is like a Gondole of Venice
    Charmy but not much useful

    Reply to comment

  84. Posted by enigmatic | April 4, 2008, 11:23 am

    Lua is a pair of Waterskis. Alone, pretty useless, and won’t really hold you up well, but when attached to a boat it becomes awesome

    Cpp, like C, is a sub, though actually in an armada of subs, built so that when you fire a Missile, it’s actually fired from a separate sub. Unfortunately, you could also blow up the entire armada and once.

    Reply to comment

  85. Posted by Chris | April 4, 2008, 11:26 am

    Shell scripting is a cable ferry. Can be arbitrarily big, but tends to be restricted to one place and rarely fast or interesting.

    Suggested image from here:


    Reply to comment

  86. Posted by i dont like snakes | April 4, 2008, 11:27 am

    Ruby is indeed very well covered. Sexy but useless. I hope some-one finds a really good one for python that covers this exhausting hype-language that no one will talk about any-more in a few years. All other languages perfectly covered. Respect!

    Reply to comment

  87. Posted by Nathan Strutz | April 4, 2008, 11:32 am

    ColdFusion is a 30 ft luxury yacht. It’s nice and comfortable. It will take you and a few friends from port to port with no problems, and nearly drives itself. Don’t try to take it all the way across the ocean unless you’re attached to a cargo ship (though towing cables are included), and it has to run in the ocean, you can’t float it in your local lake.

    Reply to comment

  88. Posted by Skrud | April 4, 2008, 11:34 am

    This reminds me of the “Country Programming Language” phenomenon that my buddies and I came up with over beers. We had a lot of similar conclusions

    Like: Vatican City is XML: XML isn’t really a programming language but Vatican City isn’t really a country. Also, it declares reality to be whatever it wants.

    Reply to comment

  89. Posted by Leonardo | April 4, 2008, 11:37 am

    What about
    Basic (paper boat)
    Delphi (paper boat with a nice outfit)
    Assembler (?)
    C (yellow submarine )
    =) ?

    Reply to comment

  90. Posted by Aidy | April 4, 2008, 11:52 am

    Python is a white water raft. Unless you get all the spacing right, you crash and die horribly.

    Reply to comment

  91. Posted by goosh | April 4, 2008, 11:58 am

    .NET might be iffy, but C# is great and built in to .NET. Just build your own ship and quit complaining. I think most people underestimate how powerful it can be with a little effort.

    Reply to comment

  92. Posted by Sam | April 4, 2008, 12:35 pm

    Intercal would be a sea mine.

    Reply to comment

  93. Posted by Sea Man | April 4, 2008, 12:56 pm

    Oh I see why you bashed PHP; you’re a Ruby fanboy. That explains why your analogies are all completely wrong. PHP is just fine and so is Ruby. It’s all about picking the right tool for the right job. Thanks for playing…better luck next time.

    Reply to comment

  94. Posted by jezza | April 4, 2008, 1:04 pm

    javascript is this innertube being pulled behind a boat –

    fun and reckless in all the best sorts of ways but very painful when something goes wrong which it usually does

    Reply to comment

  95. Posted by JKreditch | April 4, 2008, 1:15 pm

    So Gianni Chiappetta I guess you have done an in depth analysis of the latest Coldfusion vs your obvious choice (Ruby)? If so please share or were you just making a statement based on dated information that you cannot back up?

    Reply to comment

  96. Posted by James | April 4, 2008, 1:21 pm

    @Sea Man

    Take a look at a PHP source file, and then at a Ruby source file. It would be quite obvious, even to the non-programmer, why Ruby is a sleek boat and PHP is a bamboo raft.

    Reply to comment

  97. Posted by a_to_the | April 4, 2008, 1:27 pm

    Coming from a CF pro, CF is a floating turd. That’s right, it’s brown, loaded with chunks of corn, and somewhat floats. I make most of my money working in this shitty language because, overwhelmingly, most places which use it are oblivious to any forms of, “best practices,” and know little about, “functional,” anything. How many CF consultants can say they’ve ever walked into a healthy CF project? I sure as hell can’t. How many CFers are well aware of lambda and closures (and have seen or personally used them in another language), yet still believe CF has it right? Angle brackets all over a markup language, great idea! Unable to rewrite native CF methods like, find (try writing your own ORM in CF with a find call), great idea! Poor error handling, great idea! Overly accepting and thereby promoting overuse of, # (octothorpe) signs, great idea! Lack of namespaces, fucking brilliant! Really, I could go on for days, but have to go do work in this joke of a language.

    Reply to comment

  98. Posted by Kilimangaro | April 4, 2008, 1:38 pm

    Fun to think that digg.com float on a bamboo raft.

    Reply to comment

  99. Posted by Gianni Chiappetta | April 4, 2008, 1:44 pm

    @JKreditch: I think a_to_the has done an excellent job for me!

    Reply to comment

  100. Posted by Howard Fore | April 4, 2008, 2:20 pm

    @a_to_the and @Gianni: While I do find language (or operating system) comparisons interesting, I always thinks it’s sadly amusing that developers will easily blame the language for the shortcomings of the project they are working on. If you don’t like the quality of the projects you’re producing, then you need look no further than the mirror for the source of the issue. You have either deluded yourself into believing you are a l33t coder and you aren’t, or you are whining about working on projects created by other crappy coders and not moving to somewhere that doesn’t produce crappy code. Languages don’t produce crappy code, crappy programmers do.

    Reply to comment

  101. Posted by Enlightenment | April 4, 2008, 2:35 pm

    If C# were a boat, it could only float in the pacific ocean around Seattle, otherwise would run aground. .

    Reply to comment

  102. Posted by Mozi | April 4, 2008, 3:11 pm

    Ruby’s a Hollywood prop of a speedboat. It looks sleek, sexy, and very fun to drive. But when you look beneath the deck, there’s really nothing there.

    Reply to comment

  103. Posted by Scott | April 4, 2008, 3:34 pm

    Assembly is this thing:

    It’s not quite a boat, but you can go absolutely anywhere, there is nothing that any of the others can do that this can’t do. Unfortunately it is obscenely complex and difficult to make it actually go anywhere, and the results of even a minute lapse in concentration can be catastrophic. Few mortals can use it, but those who have mastered its construction shall have almost godlike powers. And those few, those tiny few, after changing the galaxy are fading into the ether.

    Reply to comment

  104. Posted by Clock | April 4, 2008, 4:01 pm

    Java can be really fun , I promise :-)

    Reply to comment

  105. Posted by PENIX | April 4, 2008, 4:23 pm

    I was going to write a criticism, but it’s a stupid boat list, so who cares.

    Reply to comment

  106. Posted by dox | April 4, 2008, 4:23 pm

    You have forgot about J2ME ;) http://tinyurl.com/53xsyr

    Reply to comment

  107. Posted by Lee | April 4, 2008, 4:32 pm

    PHP would be more like the shipyard than a boat. You could build the bamboo raft, sure, but if you knew how to program you could also build any of the other boats.

    Reply to comment

  108. Posted by Adam | April 4, 2008, 4:34 pm

    Great list! We’ve been carrying it on with many new additions over here: http://www.talkphp.com/lounge/2581-if-programming-language-boat.html

    Reply to comment

  109. Posted by Lee | April 4, 2008, 4:40 pm

    Oh, I’d describe Ruby as one of those super fast, low slung, cool looking cigarette boats that you see in commercials racing across the waves with some hot chicks lounging about. You know, the sort of boat some guy with too much money and a very small penis would buy?
    Now remove the powerful engines (and the hotties… this is programming after all) and you have Ruby.

    Reply to comment

  110. Posted by A Programmer's Perspective | April 4, 2008, 4:41 pm

    If a programming language was a boat – a continuation…

    Continuing on the legacy of Tony…
    It sounded like a great idea in R&D, but slowly lost it’s greatness post-launch.

    It floats, and might even perform relatively fast, but what’s with the syntax?

    The picture…

  111. Posted by Nik Chankov | April 4, 2008, 4:43 pm

    I like it, but don’t think php should be represented with this bamboo raft thing … especially with some advanced framework in top of it :)

    I really enjoy it anyway! great article!

    Reply to comment

  112. Posted by Speit | April 4, 2008, 4:45 pm

    Shouldn’t Ruby have some leaks in it, be partially submerged, and only have the capacity to hold one or two people at a time?

    Reply to comment

  113. Posted by Gianni Chiappetta | April 4, 2008, 4:49 pm

    @Howard Fore: That is the most ridiculous comment ever. Let me give you a few analogies that will hopefully help you out. What you said in your comment was the same as saying:

    A professional chef should be able to cook just as well using using a microwave in place of an oven.

    A race car driver should still be able to win a race in a Ford minivan instead of their F1 car.

    An olympic runner should be able to win the race wearing snow boots instead of their athletic running shoes.

    Howard I see where you’re coming from, but your statement simply is not true.

    Reply to comment

  114. Posted by AngelsEye | April 4, 2008, 5:09 pm

    For all the CF bashers out there…we don’t need to describe CF as a boat because you already did…it was called Java. What you’re saying about CF is the same thing you might say about Flex and ActionScript. If you said ActionScript is good for these purposes and Flex just sucks…well, you’re kinda contradicting yourself because Flex is ActionScript…just like CF is Java.

    So in case you missed the point…CF is Java…just making it easier and quicker to write.

    @Howard Fore: here, here…crappy programmers write crappy code

    @a_to_the: I’ve worked on a few really good organized CF projects in real enterprise environments and now with the more OO approach of CF8…it’s getting way better. I’d be happy to point you to a few if you need assistance.

    Reply to comment

  115. Posted by Gianni Chiappetta | April 4, 2008, 5:13 pm

    @Lee: Remove the hotties?! Don’t you know that nerds are in right now?

    Reply to comment

  116. Posted by scottadams | April 4, 2008, 5:28 pm

    What about python? What about python? What about python? What about python?

    For gods sake people. Enough. There are probably 15 comments asking where is python. Is there some type of stupid boat that asks questions that have been asked umpteen million times before it? Maybe python is such a boat?

    Reply to comment

  117. Posted by kikko | April 4, 2008, 5:45 pm

    C would be the Titanic.

    Once thought to be the best of its kind, the most influential people all got on board thinking they would reach America.

    Now at the bottom of the ocean, most people dare admit that for all its beautiful features and incredibly promising future, it… well, it only sailed once. And all along Stroustrup was there playing violin, oblivious to the fact that he was too going to meet his maker. He is probably still playing down there, entertaining a few ghosts.

    Reply to comment

  118. Posted by Pete | April 4, 2008, 5:48 pm

    PHP is a fishing trawler. Not fancy, not super speedy, but it does exactly what it’s supposed to do, takes a lickin, keeps on tickin. And, it’s cheap.

    asp / vb / .net: Cortez’s ships. They’ll get you there somehow, but they should be burned upon arrival.

    CF is a decommissioned diesel submarine languishing in Norfolk harbor. Use it for torpedo practice whenever possible.

    Reply to comment

  119. Posted by Pete | April 4, 2008, 5:52 pm

    Oh, and regarding the CF Java thing: The CF _engine_ is Java. The CF _language_ is not. The entire _thing_ is a kludgefest, which is why it’s being abandoned en masse. Get a real language and get a real job.

    Reply to comment

  120. Posted by Michael Dinowitz | April 4, 2008, 6:00 pm

    And people always look at the yacht and envy it. But that’s the people who hate without knowledge. They hate the fact that ColdFusion’s been around longer than their favorite language and is just getting stronger. They hate that it’s owned by a major corporation. They hate that it’s well adopted in corporate America. They even hate that the syntax is so easy. Oh, it looks like HTML so it must be a toy.
    Why not just try it out with an open mind and see if its really dead or not. Will having an open mind be a betrayal of your love? Oh, the horrors of thinking.

    Reply to comment

  121. Posted by What Type of Boat is ColdFusion? | April 5, 2008, 12:00 am

    So, what kind of boat IS ColdFusion?

  122. Posted by Wired.com - If a Programming Language Was a Boat, What Boat Would it Be? | April 5, 2008, 12:00 am

    Wired.com – If a Programming Language Was a Boat, What Boat Would it Be?

  123. Posted by Aaron DM | April 4, 2008, 7:01 pm

    Haha, great ready Tony, I loved PHP and HTML :D

    Reply to comment

  124. Posted by Howard Fore | April 4, 2008, 8:01 pm

    @Gianni: Thanks for making my point for me. Producing great code takes (at least) two pieces, skill and tools. There’s plenty of great code being produced in ColdFusion. There’s also plenty of crappy code being produced in any language that you can name, whether it has lambdas, closures, generics, or whatever language-feature-du-jour you can name.

    Reply to comment

  125. Posted by Gary Funk | April 4, 2008, 8:39 pm

    @Gianni Chiappetta. You have it exactly backwards.

    “A race car driver should still be able to win a race in a Ford minivan instead of their F1 car.”

    ColdFusion is the car. If you don’t know how to operate an open-wheel car, you’ll drive bad and wreck. A bad programmer doesn’t set the quality of any language. If it did, all languages would be bad.

    It’s pretty clear you don’t like and you don’t understand ColdFusion. That’s okay. It’s sad you let this impose bad feelings in your life. But getting into a pissing contest just because you don’t llke something is silly. You are getting just as wet as all the others pissing here.

    We all have our likes and dislikes. That’s what makes this Internet good and exciting. To each his own. There is plenty of room here for everyone.

    Reply to comment

  126. Posted by Jeff | April 4, 2008, 8:43 pm

    C#/.NET is a bit more like a well-equipped fishing yacht; does everything, easy to drive, fast if you know the controls, even pretty comfortable. It’ll take you on the long haul, but be careful with the swells. The hull’s been through a few paint jobs (still working on covering up that Java paint) and it’s not watertight, but hey, it’s got a 100HP bilge pump.

    Occasionally, the dealer gets around to sending you some new paint, stickers, and helm (which you install yourself, naturally). Luckily, since a few million people have the same boat, replacement parts are easy to come by (and usually fit pretty well after you’ve cleaned the cruft from them).

    Reply to comment

  127. Posted by a_to_the | April 4, 2008, 8:59 pm

    @AngelsEye: How is CF8 more OO than CF7, and for that matter, CF6? You also claim, “…CF is Java…just making it easier and quicker to write.” That’s funny, the last time I tried to instantiate an abstract or interface java object, cf blew up with a message telling me abstract or interface classes are dissallowed ( yes you can work around this on CF8 w/ java 6 features, but it’s still a non-trivial knowledge thing to deal with); in the real world, most clients are running CF5-7 … and for those running CF8, many still aren’t using it with java 6, for one major reason or another.

    Another cool CF feature: isBoolean(34873) => 1

    You got that right, CF says 34873 is boolean. Don’t even try a, “technical,” argument saying 1 is the return if 34873 “can be coerced to boolean.” 34873, should never be “coerced” to boolean, that’s just ridiculous.

    How about the lack of nulls in CF? Oh that’s right, java doesn’t have null type values, neither should CF (sigh). The CF language gods deemed nulls to be exceedingly over-the-top (obviously), as far as progamming goes. Nulls would clearly confuse CF devs, because the idea alone is just too abstract.

    Something to sleep on: CF lacks a true local variables scope. If you think I’m making this up, or I’m, “horribly misinformed,” do your own experimenting until you can duplicate my claim; trust me, it’s there as I describe it. I can seriously go on with MAJOR CF defects, for days. Just let me know when you want me to stop.

    Reply to comment

  128. Posted by Jeremy | April 4, 2008, 9:53 pm

    Lisp simply can’t lower itself to being only a boat:

    From Damien Katz’s “The Volkswagen Lisp”: http://damienkatz.net/2007/01/the_volkswagen.html

    Reply to comment

  129. Posted by Matt Coleman | April 4, 2008, 10:53 pm

    Hmmm java could also be a whaling boat with on-ship canning factory that just doesnt work. maybe im clutching at straws here

    Reply to comment

  130. Posted by comment #999999999 | April 4, 2008, 11:10 pm

    Have Python be a seaplane. It’s the seaworthy craft that gives you wings! Have Lisp be a Bathysphere – compact, efficient, and so old that the only existing pictures of it are in black and white. As for Visual Basic, Visual C , Visual anything else: an inner-tube. A leaky one.

    Reply to comment

  131. Posted by Leonardo | April 4, 2008, 11:25 pm

    What, a flamewar on this issue ?

    Reply to comment

  132. Posted by Juanma | April 4, 2008, 11:57 pm

    You don’t know nothing! PHP with some framework like Symfony, it’s more powerful than Java, .NET, and Ruby!
    Thinks this:
    * Apache is for PHP, then was adapted to Java, … (Apache is a Server, if you don’t know)
    * The most language used in the world, to make apps is PHP
    * PHP is faster than Ruby (if you don’t believe me, try Twitter)
    * and many more …

    I think that your brain, is a paper boat in ocean ;-)

    Reply to comment

  133. Posted by izaa | April 5, 2008, 5:00 am

    Symbian C – very prowerful but very difficult to use .. and where is the manual??


    Reply to comment

  134. Posted by yaotzin | April 5, 2008, 9:48 am

    I don’t understand why PHP is a bamboo raft ?!?

    Reply to comment

  135. Posted by hm2k | April 5, 2008, 10:32 am

    PHP (PHP: Hypertext Preprocessor) is a computer scripting language…

    You can’t really compare C to PHP, I claim it as unfair!

    What about ASM?

    Reply to comment

  136. Posted by chuck | April 5, 2008, 10:49 am

    I disagree, I think programming languages are more like vacuums:
    - They all do pretty much the same thing
    - Even though the one you have works, someone will try to sell you a new one every few years.
    - They all suck
    - Someone will argue with you about which one sucks the most
    - No one will ever come over to your house to help you with it

    Reply to comment

  137. Posted by If a Learning Management System Was a Boat… | Rants, Raves, and Rhetoric v4 | April 5, 2008, 12:31 pm

    [...] saw a CompSci.ca blog post for If a programming language was a boat… (through WIRED) and laughed at the descriptions of C, ColdFusion, Java, Perl, PHP, and Ruby. Java [...]

  138. Posted by AngelsEye | April 5, 2008, 1:16 pm

    @Pete: Wow! I am so confused now because you totally misunderstood what I said. CF makes writing Java easier and quick for those of us who want to get the job done, not learn a complex programming language to do the same thing.
    You say abandoned en masse, but yet the number of companies using CF keeps getting bigger. That is strange and perplexing.
    I’ll give you this though…the one thing that sucks for me about your comment is that now I have to reevaluate making 6 figures a year and get a “real” job since apparently coding CF isn’t a “real” job.

    @Gary: I like a good debate where no one wins…but everyone walks away with a stretched mind. Devil’s Advocate anyone?

    Reply to comment

  139. Posted by Lance | April 5, 2008, 1:32 pm

    There are so many cocky, arrogant programmers in these comments it makes me sick. You are the pricks who make me want to get out of the business and do something else. Get over yourselves.

    CF isn’t going anywhere. It’s not dead, and developers who use it are no less worthy than you are. Ever hear of a little institution called the U.S. Government? Yeah, they use CF. A lot. Where I work, which is a very technical and fast-paced environment, we are hiring more CF developers all the time and sh*t-canning the .Net. As a CF developer, I get projects done in a quarter of the time the .asp/.Net guys do and my apps have just as good (if not better) quality, security, reliability and performance.

    Like it’s already been said here, it is the programmer’s responsibility to write good code. Whatever tools he or she chooses to use are their choice (or that of the company that signs their paycheck).

    Reply to comment

  140. Posted by leitermann | April 5, 2008, 1:40 pm

    I took a class on OOProgramming recently, & we didn’t learn a single iota of any real languages. All we used was Karel , which is like a simulation language that serves no practical function, considering there’s perfectly good REAL languages to learn with. I’d say if this were a boat, it would be a rowing machine. Can anybody think of a proper boat analogy for brainf*ck?

    Reply to comment

  141. Posted by michaelp | April 5, 2008, 2:59 pm

    Wow, so many comments already!
    Nuclear submarine for C. :P (I use C , same thing pretty much though)

    Reply to comment

  142. Posted by MIchael | April 5, 2008, 3:34 pm

    @Anchor (c# = cruise ship)

    I like it!
    Lots of great features, and interesting destinations on the itinerary, but you have absolutely no say in where it’s going, and it’s better if someone else is paying the bill!

    Reply to comment

  143. Posted by a_to_the | April 5, 2008, 3:56 pm

    @AngelsEye: if you want to develop java faster, try jRuby. Almost any time I implement a new (for me) java object in CF, I use jarExplorer and jRuby … then take my findings to CF. Why keep reloading a script (as a web page) to run repetitive object calls, while you only really care about what results from the last line of your code? Don’t forget, cfdumping a java object blows (as far as quality of info)! IRB through jRuby makes this much easier, and further, lets you really run java objects. jRuby also takes care of the Abstract & Interface initialization class issues of 99% of CF installtions (those without java 6). Try running stand alone java GUI libs (non web) through CF … that won’t ever work.

    Reply to comment

  144. Posted by Gianni Chiappetta | April 5, 2008, 7:04 pm

    @Lance: Your very comment makes you one of those “cocky, arrogant programmers”. At least AngelsEye and Howard Fore have been making actual points in favour of CF.

    Reply to comment

  145. Posted by michaelp | April 5, 2008, 7:35 pm

    Um, what’s CF?

    Reply to comment

  146. Posted by axa | April 6, 2008, 12:06 am

    Tony, i think another name of PHP is “Getek” the name is more familiar “Getek” than PHP/Bamboo Raft especially in asia.

    Reply to comment

  147. Posted by Rubayeet | April 6, 2008, 3:22 am

    What an irony! A PHP site calls itself a bamboo raft. Those of you who hate PHP, I would recommend this article:


    Reply to comment

  148. Posted by IamSam | April 6, 2008, 3:35 am

    Brainfuck is a bunch of 2×2 legos that are all the same. If you put them together JUST right, you might get something to float, but it’ll all fall apart long before you reach that point.

    Reply to comment

  149. Posted by Daryl Teo | April 6, 2008, 5:14 am

    ASM would be a Lego Ship.
    You get the tiny blocks, and build the ship using a variety of pieces. However, not something you want to sit on in a body of water. ^^


    Reply to comment

  150. Posted by jay | April 6, 2008, 7:44 am

    The open source gang are all stirred up now.

    CF is Java and it’s still Rockin’.

    CF is a swiss army knife with a pull out inflatable device.

    Reply to comment

  151. Posted by varun | April 6, 2008, 7:46 am

    I am still using PHP but that submarine has enticed me to learn C.Ruby also looks good. :P

    Reply to comment

  152. Posted by E. Rio | April 6, 2008, 10:12 am

    And Brainfuck? A trunk? Extremly minimalist, but not suitable for practical use.

    Reply to comment

  153. Posted by Havvy | April 6, 2008, 3:06 pm

    If HTML is a bike, then XML is a motorcycle. XHTML is a mountain bike. None float on water, but you use them anyways.

    Reply to comment

  154. Posted by Geekhall.net Admin | April 6, 2008, 5:28 pm

    Hehe, very funny comparison, altough I think PHP is something without most of todays technology didn’t exists. That floating rack is a fundamental structure to bigger ships :)

    Reply to comment

  155. Posted by Jacob | April 6, 2008, 5:46 pm

    CSS: A nice-looking small boat. Easily upgradeable appearance, but some changes cause it to sink in certain bodies of water.

    Reply to comment

  156. Posted by Otto Mäkelä | April 6, 2008, 5:52 pm

    I guess with all the suggestions above, the AI logic language Prolog would end up being a Soviet-built Ekranoplan — something really weird that looks like it fell from the sky, and hardly anyone knows how to operate properly.

    Reply to comment

  157. Posted by loupgaroublond | April 6, 2008, 7:14 pm

    I think you folks are missing the point about Python here.

    Python walks like a duck, quacks like a duck, and swims like a duck. Therefore, it must be a duck.

    Reply to comment

  158. Posted by SwamiYogurt | April 6, 2008, 9:51 pm

    To the ones asking about .NET, let me remind you of something; .NET is NOT a programming language. kthxbye

    Reply to comment

  159. Posted by Renato | April 6, 2008, 9:56 pm

    Assembly – It would be like a submarine rescue system. Easy to understand, almost impossible to operate…….. and if something goes bad, someone gets in a really trouble

    Reply to comment

  160. Posted by alan | April 6, 2008, 11:17 pm

    Ruby is a jet ski: looks sexy, fun to drive, gets you where you want to go really fast but gets overloaded with more than one or two users.

    Reply to comment

  161. Posted by Gianni Chiappetta | April 6, 2008, 11:52 pm

    @Jacob: Or perhaps a boat cover?

    Reply to comment

  162. Posted by kzma | April 7, 2008, 2:12 am

    Python would clearly be a cruise liner.
    It has everything you would ever want,
    it is extremely nice to be on,
    but it runs so very, very slow.

    Reply to comment

  163. Posted by TzG | April 7, 2008, 3:53 am

    VB is like a yacht with a gaping hole in it. It looks cool, but then you realize there’s a gaping hole in it and you drown.

    Should have stuck with that flotilla. [BASIC]

    Reply to comment

  164. Posted by Michael | April 7, 2008, 4:09 am

    funny how identified we all are with our favorite tools

    Reply to comment

  165. Posted by PHP Group EBP | April 7, 2008, 5:12 am

    Since we are PHP Programmers, we cannot tolerate its insult. We find it a very good programming language, probably the finest. Damn other languages. Tell me what cannot be built with PHP in web, We Bet !!! Its not like Asp.net (drag and drop stuff). PHP is a code and browse stuff.

    Named PHP a bamboo both, right ??? All right, remember bamboo does not sink in water (universal truth), while others can!! HAHAHA. GOT IT.


    – PHP LOVERS!!

    Reply to comment

  166. Posted by mehmet | April 7, 2008, 6:17 am

    Shouldn’t Ruby have some leaks in it, be partially submerged, and only have the capacity to hold one or two people at a time?

    Reply to comment

  167. Posted by JM | April 7, 2008, 8:07 am

    Asm would be a Scuba diver :P can go every where where no one else cna go but it will take allot of effort they can even walk climb on other boats…

    C would be a boat that can fit any where maybe a hovercraft with scuba divers.
    no where you cant go with a hovercraft and suba divers. you cna take a quicker path by cutting threw the shallow and on the land. you cna send your cuba divers go go deep in the core. its also portable on any surface (amost any processor (even micro) has a c compiler

    Reply to comment

  168. Posted by Zane | April 7, 2008, 8:50 am

    we can agree now that CSS would be close to motocross, because of HTML being a BMX bike.

    Reply to comment

  169. Posted by Sierra Bravo | April 7, 2008, 11:03 am


    Groovy is like the Ruby speedboat, but is solar-powered and uses no power, has twice the speed of ordinary speedboats, can hook up easily with the Java cargo ship (can drive the cargo ship if required), and uses a thought-controlled interface to water-ski…a whole lot more fun to drive…!

    sierra bravo

    Reply to comment

  170. Posted by Drewp | April 7, 2008, 4:17 pm
  171. Posted by Anthony | April 7, 2008, 5:22 pm

    Forth is the Mississippi stern paddle wheel ship of languages. Kinda old, but still operates and just keeps going. And all the action happens at the end of the statements, because of the RPN! Compact and shallow draft lets her run on even the shallowest of waters. (i.e. Small memory footprint and minimal resource needs let Forth run on even the lowest-end hardware.)

    Suggested image:

    Reply to comment

  172. Posted by Xandr | April 8, 2008, 3:37 am

    Cool, but looks like soft Turing PR :-)

    Reply to comment

  173. Posted by Tony | April 8, 2008, 3:38 am

    @Xandr — not sure why you would see things this way. The same could be said about every other programming language, though I suppose Turing is much lesser known, and thus the perception. Really, it’s only there because the question that has inspired this article was made in a Turing Help forum.

    Reply to comment

  174. Posted by mikekim | April 8, 2008, 5:24 am
  175. Posted by Joel | April 8, 2008, 9:41 am

    COBOL has got the be the Flying Dutchman. Just when you think it’s gone. It comes back to haunt you.

    Reply to comment

  176. Posted by Bastian | April 8, 2008, 9:50 am

    Assembler is like a boat out of milions of very small modules. It is the most efficient and fastest little boat you can build. But you won’t be able to make it bigger or more comfortable in a manageable time.

    Reply to comment

  177. Posted by lifeplayer | April 8, 2008, 11:43 am

    Jave seem the best and HTML seem “too good”. And both of them are used generally

    Reply to comment

  178. Posted by Professional Software Guy Who is the Most Awesome | April 8, 2008, 1:30 pm

    ActionScript (any version, from now until the end of time) is like Tom Hank’s boat in cast away. Yeah, you’ll start out ok, but its gonna fall apart and some one is going to have to save you along the way.

    Reply to comment

  179. Posted by John | April 8, 2008, 3:14 pm

    Good stuff, enjoyed reading all these comments =)
    Web languages should all be like airboats – lighter versions of high powered vehicles. It is hard to compare PHP or Ruby to C when PHP and Ruby are written in C.

    Ruby as a language is very fast, concise, and beautiful, ruby on rails is clunky and awkward at times – but enough work on it and you’ve got something grand.

    PHP is actually quite robust now and it is my choice for development at the time. And with all the PECL extensions and whatnot out there its really got a lot of added functionality too.

    I don’t like to get technical on these kinds of posts cause they are fun, but just had to because of some of the comments =p

    Reply to comment

  180. Posted by DaddyWri | April 8, 2008, 8:14 pm

    If one analogizes in the dimensions of performance and reliability, then you might agree on the following:

    ASM is a Formula I racing boat. Highly optimized, and hand tuned, but one bad wave and it crashes.
    C is one of those mass-produced racing boats people with too much money and not enough sense buy. Not bad performancewise, but given the level of typical pilot inexperience, crashes are inevitable.
    C-plus-plus is a mass-produced racing boat with a stink-pot’s superstructure. It’s top-heavy and one can’t quite guess exactly when it will decide to tip over.
    Python is a ferry. Reliable, lots of people can use it, but it isn’t terribly fast or sleek, and people who use it don’t care much about appearances.
    Java is an aircraft carrier. Reliable, and home to everything including the kitchen sink, but nobody quite knows where to find what they need.
    .NET is a flotilla of assorted boats of all different shapes and sizes, none of them with engines, but all of them with paddles.
    COM is the same, but with no paddles.
    Lisp is a unique, large-ish boat built entirely out of toothpicks. (If one toothpick is in the wrong place, boy are you in trouble.)
    HTML is a guy in a bathing suit.
    Javascript is a guy in a bathing suit with flippers.
    Perl is a submarine. Slow, reliable, but with more stuff under the water than above it.

    Reply to comment

  181. Posted by t3po | April 8, 2008, 8:44 pm

    Visual Basic A talking boat that instructs you on what to do. And can go at a alright speed.

    Reply to comment

  182. Posted by Psiman | April 9, 2008, 11:40 am

    Assembly: A wooden plank. It’s as basic as they come, it floats, and if you get a bunch of it together you can make a mighty fine ship, but almost no-one knows how.

    Reply to comment

  183. Posted by CodeMonkey2000 | April 9, 2008, 9:43 pm

    Tony, why would Turing be a kayak? I would say the Turing is more of an inflatable boat. Great for beginners, but impractical for any practical use. And wow 172 comments in 5 days 0_o.

    Reply to comment

  184. Posted by cory | April 10, 2008, 12:51 am

    For the mainframers out there… I’d say COBOL is like an old flat-bottom fishing boat. It’s easy to understand, gets the job done, ugly as hell, and you’ll never be able to get rid of it.

    Reply to comment

  185. Posted by PhilA | April 10, 2008, 8:36 am

    I think I understand why he’s called PHP a bamboo raft which most of you seem to have overlooked.

    Yes, the language “floats” and definitely does the job, but if you rely on the community code (most of which is buggy as hell) you end up with things that are just taped together.

    If you write stuff from scratch and build it properly, testing it thoroughly and using a decent framework then you’ll get a very sturdy “boat” which will do the job, but one flaky bit of code and it will start taking on water and you’ll get wet feet, although it’ll keep on floating.

    As for the people bashing CF, if you don’t like the language, why use it? If it’s so hateful, just get a job doing something else – programming in a language that you despise is just insanity.

    Reply to comment

  186. Posted by adam | April 10, 2008, 1:13 pm

    C( ) is a nuclear submarine with two unlabeled buttons: 1) launch nuke at self 2) turn engine on

    Reply to comment

  187. Posted by SmokeIT | April 10, 2008, 5:34 pm

    What would brainfuck be? :P

    Reply to comment

  188. Posted by Josh | April 10, 2008, 5:46 pm

    Assembly Language is not a boat, It’s the ocean.

    Reply to comment

  189. Posted by Roy | April 11, 2008, 1:43 am

    What about Lua?

    Reply to comment

  190. Posted by Optimized web design | April 11, 2008, 1:54 am

    If programming language las a boat i want to be submarine captain :)

    Reply to comment

  191. Posted by Timothy Madden | April 11, 2008, 4:14 am

    Sorry but the PHP description is inaccurate. Unlike a bamboo raft, it is a very reliable language. And multifunctional too.

    You forgot C . It is like a modern nuclear submarine, most of its power and functions are not even used by regular programmers.

    Reply to comment

  192. Posted by Robert | April 12, 2008, 11:56 pm

    What ?

    There are C and Java but why not C# and .net programe ?

    I like C.

    Reply to comment

  193. Posted by Han | April 13, 2008, 2:13 am

    JavaScript as the James Bond Q Boat, “small, powerful, but easy to get yourself killed”??? That’s C!

    JavaScript is a (floating) couch with motor attached. JavaScript jQuery is a couch with an attached TV, minifridge, self contained white gas stove, the works, and a speedboat motor.

    Reply to comment

  194. Posted by Han | April 13, 2008, 2:16 am

    Oh I agree assembly is an axe, you use it to hack out nuclear submarines.

    Reply to comment

  195. Posted by Johnny D. | April 13, 2008, 9:01 pm

    Windows is rapidly becoming obsolete (Gartner says 2011 will be the tipping point) and that is why .net and every other Windows centric technology will go to the wayside too.

    High level languages will eclipse 3 GL’s – RIA development will comprise of PHP, Ruby, Python, ColdFusion and Flex will dominate – especially ColdFusion and Flex when Apple buys Adobe which will occur within the next 5 years.

    Reply to comment

  196. Posted by cfreak | April 13, 2008, 10:07 pm

    All you guys defending PHP so religiously are hilarious. If you ever program in a real language you’ll understand what a pain in the ass it is. (Yes even 5) … hey I hear they’re adding these magical things call “namespaces” in version 6!! Look guys! PHP is the greatest ever!! Oh wait … all the other languages have had that for 20 years?

    (Yes I use it extensively as it is required for my job. Its fine for blogs, garbage for large apps that need to scale. Well unless you want to spend a lot of time tweaking and optimizing.)

    Reply to comment

  197. Posted by pazuzzu | April 14, 2008, 12:15 am

    ALGOL: a big fucking log. you can barely float on it, you can barely control it, you can barely do anything with it really, but you can still ride it….someplace.

    Reply to comment

  198. Posted by Han | April 14, 2008, 12:42 am

    Duh, of course PHP is a reliable and multifunctional language. BrainF*ck is just as reliable and multifunctional a language, as is INTERCAL. In fact, since there’s so few commands in BF, and they’re all so simple, a compiler for BF can easily be made mathematically complete, absolutely watertight, ike a twisted version of assembly. And since it’s turing-complete, like PHP, it can perform any algorithm that any other language can, accommodating for I/O limitations of course, which makes it just as multifunctional as, say Java. There is nothing you could do with Java that you can’t with PHP, or BF, or INTERCAL, so long as you’re provided with adequate I/O APIs.

    Hm, let me see. If PHP is a bamboo raft held together with string, BF is a lot of chopped up pieces of bamboo that you have to hold on with your eyelashes and toenails. And INTERCAL would be one of those crazy Escher drawings, except made into a boat.

    Also, JavaScript would be logs held together by string. Looks better than PHP, but in actuality is equally ready to fall apart.

    Reply to comment

  199. Posted by Ivo Krastev | April 14, 2008, 9:50 am

    I think PHP has very good analogy as raft. The only vessel that is still in use and stays afloat since the dawn of men! Not everyone can build http://en.wikipedia.org/wiki/Kon-Tiki btw

    Reply to comment

  200. Posted by Java is light | April 14, 2008, 1:28 pm

    Java is pure agility ! A cargo ship ? Kidding ?

    Reply to comment

  201. Posted by andrei | April 14, 2008, 5:12 pm

    I would just like to say that realistically today a good php application would do much better than a ruby one and be much easyer to develop and maintain if it uses a good MVC framework(there are plenty of those for php)

    Reply to comment

  202. Posted by Tony | April 14, 2008, 6:11 pm

    @andrei — it’s great to see how just about all of PHP’s MVC frameworks are based on Rails or those designed for Java. I’m sure that a “good framework”, designed around a different language, is much easier to maintain. /sarcasm

    Not to mention it will still be in PHP.

    Reply to comment

  203. Posted by CHJ | April 15, 2008, 4:01 am

    What about the Pascal?

    Reply to comment

  204. Posted by Madis Kaal | April 15, 2008, 4:55 am

    Python is a plank that one could use to make a ship (or a barrel, or a bathtub) but as it floats pretty well on its own people never bother to make anything big out of it, they just jump on a plank and hope to get there, powered by good luck and tailwind.

    Reply to comment

  205. Posted by 30degree | April 15, 2008, 6:25 pm

    BASIC: can only compare it to a rowing boat; kinda self explanatory to use but gets you nowhere fast.

    Reply to comment

  206. Posted by Dominic | April 16, 2008, 5:13 am

    Ruby would probably be the best looking boat around, easy as hell to get into and drive, but the picture presented here for ruby looks like it goes super fast, and that’s where you have ruby wrong (for now…)

    Reply to comment

  207. Posted by Marcel | April 16, 2008, 7:05 am

    Classic ASP: The Catamaran without sails, missing one hull, but with an outboard motor. Adding the missing components is possible, but expensive. Basically you’re in a motorized canoe. Only operates on fresh water.

    Reply to comment

  208. Posted by Timothy | April 16, 2008, 10:31 am

    Sorry, but PHP is a Casino barge (see http://www.2muddy.com/images/ArgosyCasino.jpg). It’s really not a boat, but it sure is fun and your guests won’t care.

    Reply to comment

  209. Posted by Scott | April 16, 2008, 4:10 pm

    Assembler is the breast stroke.

    Reply to comment

  210. Posted by blu3man | April 17, 2008, 9:12 am

    I love it. Nice analogies. Where does python fit in? lol.
    I agree though. I might look at learning ruby now.

    Reply to comment

  211. Posted by Tim Rhoades | April 17, 2008, 12:17 pm

    LOL! I love it. Especially the PHP description, it’s dead on :-D

    Reply to comment

  212. Posted by Jack'o | April 18, 2008, 1:25 am

    I love all the little Rubykins, they spend so much of their time bashing PHP, while all the real web developers are out writing serious applications with PHP. Oh and by the way, the instructions for C aren’t in another language, you’re just stupid.

    Reply to comment

  213. Posted by Tony | April 18, 2008, 9:44 am

    @Jack’o — one doesn’t need to do Ruby to see a problem with PHP (although that does help). It seems the former also helps with having a sense of humour. All you PHP guys are taking this way too seriously — there are a bunch of re:PHP comments that went into the spam box due to the raw level of profanities used.

    Though maybe such qualities make you an incredibly better developer? Do share some of your “serious applications”.

    Reply to comment

  214. Posted by Jack'o | April 18, 2008, 3:18 pm

    Serious web applications in PHP? No problem:


    Now of course they combine languages depending on the specific task they need to accomplish, but they are primarily PHP for their server side scripting. Why? because they have to handle load on the application.

    Oh and as for Ruby being fast, lets check out one of Ruby’s largest implementations: Twitter. I’ll refer you to this interview: http://www.radicalbehavior.com/5-question-interview-with-twitter-developer-alex-payne/

    You’ll see they’re going to move away from Ruby because “Ruby itself is slow” (speed boat?).

    Yes, Ruby is wonderful for new developers, or developers looking to write something very quickly. But it’s just not for large scale applications. PHP and Python are, I happen to prefer PHP, but Python is perfectly viable choice.

    It’s not that I don’t have a sense of humor. But it’s articles like this that are so complete misleading that reinforce false concepts, and I feel it’s damaging to the whole of the development community. So if you wanted to call Ruby a “Wave Runner, fun for beginners and easy to drive, but not really useful for long trips.” and PHP “A cigarette boat, a bit harder to pilot and maintain, but very fast.” That would be accurate, in my opinion.

    At any rate, this is my take on your article. So if you don’t like critical feed back on your work, don’t put up a reply form.


    Reply to comment

  215. Posted by Han | April 18, 2008, 4:29 pm


    Yes, I think there’s a consensus here that Ruby is being misrepresented as a speedboat (I personally don’t know anything about Ruby, though, I’m just pointing out that we generally agree with your assessment here).

    About PHP, though, it’s not that it isn’t fast. But it’s fast the way BrainFsck is fast: it’s simple as hell to compile or interpret and living hell to write a real program in. Nobody says it isn’t developed, or tried-and-true, or not suitable to write real programs for, but the syntax and API and everything is so crude, people just cringe no matter how long they’ve been using it.

    Like the others say, I’m sure it’s god to you as your first (or second) language, but try something else like C or Java or Python a little and then see how you adjust going back.

    Reply to comment

  216. Posted by Jack'o | April 18, 2008, 6:20 pm

    I can’t say for sure how other feel about it’s syntax, it’s really not my place. But I will say that I have worked on projects in Java, C, varieties of LISP (which is horrifying for the record), and then the LAMP-y web kit (PHP, mySQL, javascript, XML).

    Yes, PHP has some short comings, the lack of standardization in their function arguments is irritating no doubt. But I feel my self, and know many other who agree, that over all it is a very usable language, especially for people coming to web programming from a C background.

    This might be of interest to some:



    Reply to comment

  217. Posted by Tony | April 19, 2008, 12:57 pm

    @Jack’o — I was asking about your serious PHP applications, but it’s ok, you don’t have to share. I don’t think anyone here is arguing here that PHP is incapable of large scale applications; though so can Ruby. I see that you are already familiar with Twitter, but it there’s more to the story.

    First of all, the interview doesn’t suggest that the development team will be ditching Ruby. In fact, “All of us working on Twitter are big Ruby fans”.

    Then Ruby itself isn’t even the problem.

    Blaine Cook, Twitter’s lead architect, held Ruby blameless:

    For us, it’s really about scaling horizontally – to that end, Rails and Ruby haven’t been stumbling blocks, compared to any other language or framework. The performance boosts associated with a “faster” language would give us a 10-20% improvement, but thanks to architectural changes that Ruby and Rails happily accommodated, Twitter is 10000% faster than it was in January.

    Besides, there are different types of fast in the software industry. PHP might be interpreted faster and scale further, but raw language performance is not enough to overcome bottlenecks caused by architecture choices and database access. I strongly feel that Ruby code is faster to develop and easier to maintain over PHP, and so more time could be put towards speed improvements that matter.

    Reply to comment

  218. Posted by streaky | April 20, 2008, 12:19 am

    Ruby should be one of those iconic Chinese boats that they pile 4 million tons of stuff onto so it’s like, just not quite sinking.

    Sure the boat itself might be fine and quite seaworthy, but the people that are using it are lazy morons and the poor thing is laden with a container ship’s worth of cargo (metaphor for RoR if you didn’t get it).

    Reply to comment

  219. Posted by Tony | April 20, 2008, 12:56 am

    I’m not trying to pick on PHP on purpose in this comment, it just happens to appear to be streaky’s preference. In fact, the rest of this comment will be quite sarcastic in nature.

    @streaky — you forgot to mention that PHP’s boat comes with a lot of leaks. That’s a metaphor for phpBB being laden with so many security issues. If you don’t get it, phpBB is that piece of software that’s written in PHP and has “php” as a part of it’s name… so it must be representative of the programming language itself.

    Reply to comment

  220. Posted by Clintonio | April 20, 2008, 4:37 pm

    I cracked up, seriously. Even as a PHP programmer I still managed to find it hilareous.

    I started on C-plus-plus, I crashed and burned fast, so I went to PHP, it was a great start, I’ve not left if yet either, I have no reason to (I don’t do non-web stuff anyway). But next time I need to do something less web based I’m going to go have another go at C-plus-plus.

    The HTML one made me laugh, and so does anyone who tells me they are a programmer because they know HTML ;)

    Reply to comment

  221. Posted by streaky | April 21, 2008, 7:28 am

    Tony, that’s kind of an absurd argument.

    The reason phpBB, phpnuke, and just about every other PHP app that’s known insecure is that the developers are completely useless.

    You’re talking about applications that have issues with things like SQL – I mean SQL injection, explain to me why a PHP application should have an SQL injection floor – it shouldn’t under _any_ circumstances, yet those applications historically have. PHP provides the tools to avoid it absolutely in every case yet – they are also very well documented – yet the named projects didn’t, yet apparently that’s the language’s fault, I mean come on – seriously?

    Then you get the idiots with the PHP 5 upgrade moaning because they used, for example, $this out of object context. Aside from the obviousness that maybe one day you wouldn’t possibly be able to do that, $this makes no sense outside of object context, so why were people using it. Simply because they’re idiots – I’m sorry if anybody disagrees but the simple fact is if anybody did that they’re morons, no point dancing round the simple fact.

    For sure the issue is one of developer ability, I know for example that a good PHP developer can write tighter, faster, more secure code than a similarly experienced RoR developer. And now you’re saying “Aha! But PHP isn’t a MVC framework that does everything”, and you’re right but neither is Ruby – the poor thing has that behemoth RoR sat on top of it holding it back, who seriously does Ruby webdev without RoR? Nobody is the answer.

    People tried the same with PHP and it’s the same story, they slow everything down and cause all sorts of issues for real developers. Now sure it’s the ‘right’ way, but with web development and sites that get millions of hits over short spaces of time, doesn’t take much to argue that right is really left.

    All comes down to the fact that your competitor in the cage next to you at the DC that has a similar site and similar traffic patterns to you is using 1/4 of the number of servers you do and it’s costing them less because of it. Less cost = more profit – that’s why it’s a debate that PHP is going to keep winning over and over until Ruby gets some real developers (developers using the language I mean) – and the problem with that is that every PHP developer, and developers of other languages I’ve spoken to on the issue that haven’t jumped ship consistently say over and over that if they were going to leave PHP or whatever it wouldn’t be to Ruby with RoR or not – but Python.

    Plus to take issue again with your Ruby boat choice – sure it’s trendy, but not very useful when you what you really want to do is transport a few thousand cars across an ocean.

    Frankly I like the raft for PHP, notice how I didn’t complain about it? Sure it’s not perfectly made, when a big wave comes we might get wet and/or knocked off it but it’s all we have available and _damn is it fun_.

    Reply to comment

  222. Posted by Tony | April 21, 2008, 9:29 am

    @streaky –

    Tony, that’s kind of an absurd argument.

    Thank you, I tried.

    The point of absurdity was to demonstrate that Rails is not Ruby (also not the only framework available), and Ruby is not exclusively a “web development” language.

    Ruby gets some real developers (developers using the language I mean) – and the problem with that is that every PHP developer, and developers of other languages I’ve spoken to on the issue that haven’t jumped ship..

    I’m not sure if you were implying the same thing as I’m thinking of here, but from my perspective the problem here is that you get a bunch of vocational programmers jumping ship (excuse the pun) to the next trendy thing. The biggest issue is that from what I understand, many jump straight into Rails without learning Ruby first, and attempt to apply their old mindset (from PHP, Java, etc.) to the new playfield. They are clearly missing the point of the language, its culture, its approach to solving problems. That’s why some developers are having so many issues with it. It will be the same if they try to code Python as if it was PHP.

    Reply to comment

  223. Posted by Multimediedesigner | April 22, 2008, 12:57 pm

    I love PHP even though it’s not the biggest language of them all. So a bamboo raft for me.
    I come from Denmark, maby thats why I have a love for PHP… :)

    Reply to comment

  224. Posted by Robert O'Connor | April 23, 2008, 4:57 pm

    Where would Python and Groovy factor in? Scala? Lisp? Haskell? ;)

    Reply to comment

  225. Posted by array | April 28, 2008, 5:06 am

    PHP like bamboo raft? Where do you live? Seems you take a look only to PHP 4.0. Try PHP5, is like a sailing boat. You can sail alone around the world or you can win a cup with good team.

    Reply to comment

  226. Posted by JD | April 28, 2008, 6:08 pm

    What about ActionScript? The boat can looks whatever you want!

    Reply to comment

  227. Posted by Dm1t | April 28, 2008, 10:48 pm

    I agree with Wood comment. This site like millions other made with PHP. So it it can be fairly compared with tagboat in web development .

    Reply to comment

  228. Posted by steve | May 1, 2008, 9:24 pm

    i want to say that maybe python is less of a boat, and more of an anchor…..

    Reply to comment

  229. Posted by Ziggy | May 6, 2008, 3:25 am

    D is a nuclear submarine that appeared at random and is pretty much abandoned. It was made for people who pilot C ships, but nobody bothers since the new model is useless and a waste of research.

    Reply to comment

  230. Posted by The Programming Languages Zoo | Ask Rea Maor (dot) Com - Technology and Money Making at its best | May 6, 2008, 11:16 pm

    [...] “If a programming language was a boat“ [...]

  231. Posted by Sailor-o'hoy | May 12, 2008, 3:26 pm

    Pyton is a snake, takeing interest in whatever rich “data” water there can be. Yet a snake isn’t a boat so it will hitch hike on the opraters water vehichle (Linux)

    Reply to comment

  232. Posted by jose carlos | May 20, 2008, 2:10 pm

    I started on C-plus-plus, I crashed and burned fast, so I went to PHP, it was a great start, I’ve not left if yet either, I have no reason to (I don’t do non-web stuff anyway). But next time I need to do something less web based I’m going to go have another go at C-plus-plus.

    Reply to comment

  233. Posted by Valod | May 20, 2008, 2:28 pm

    I thought this article was just great, I’m a PHP programmer and I was a little offended by the raft! I think PHP is a faster version of Perl, maybe a fishing boat that can hold 10 people, defiantly not a raft

    Reply to comment

  234. Posted by Daniel W | May 26, 2008, 1:03 am

    JavaScript – An old, badass pirate ship with a dozen jolly rogers flying and hot pirate hookers all over. There are also a few cannon holes, but not enough to make it sink. The caption would be, JavaScript, its old, but will always be in the books. It may be outdated and never found real treasure, but it sure is an adventure. arrrrr.

    Reply to comment

  235. Posted by Han | May 26, 2008, 11:47 am


    Y’kno, I kinda like that…except there should be more canon holes, and quite a few planks missing in the hull, so that the only reason it isn’t on the ocean floor is because the pirates are scrambling to bail out water (read: jQuery, MooTools, etc). It’s also the only pirate ship still sailing after a great global drought a few years ago (read: dot-com bust, which is partially responsible for the lack of any real competing DHTML scripting languages).

    Reply to comment

  236. Posted by Peica | June 1, 2008, 5:13 am

    Kaka, Why the HTML not be the boat?

    Reply to comment

  237. Posted by Caturn | June 5, 2008, 11:11 pm

    You forgot Assembly, also this list isn’t very good.

    Reply to comment

  238. Posted by Delli | June 6, 2008, 2:37 am

    Kind of dissapointed when saw PHP description and some of author comments. Comments that PHP comes with leaks – yes a lot programmers think they can program without thinking about security issues just think how things to be done fast. Bad code is also a lame excuse you can write bad code in any language.
    There are a lot of serious websites written in PHP.
    If there was a statistic of used server side languages I’m sure PHP will be on 1st place and you compare it with bamboo raft this makes you ignorant, might say you are microsoft freak but your website runs on PHP so I beleave you are from bad programmers that I saw last 6 years while programming PHP.

    Reply to comment

  239. Posted by Glupi | June 6, 2008, 2:45 am

    Ladder (Ladder logic)

    Could be a River Barge.

    Few people know about it. Even fewer care about it.
    But actualy is used quite allot and does the job it was designed for beautifully.

    Reply to comment

  240. Posted by Shannon | June 8, 2008, 6:25 pm

    PHP – is like a cigarette boat. Fast and sexy, but needs a good driver.

    Java: is like an oil tanker. Moves slow, carries lots of cargo and pollutes the ocean.

    ASP.net: is like a chinese junk. Looks horrible, moves like a snail, and requires another boat to pull it.

    Ruby: is like a Yaght. Looks sexy but everyone hates the people who are on it.

    Javascript: is a boat without a paddle.

    Python: is like a Jet Ski. Fast and sexy. Just don’t try to take it across the ocean.

    Objective-C: is like a fish trawler. Stinks to all hell and nobody likes to drive it.

    HTML: is like a kayak. A lot of people think its a boat but it is really not.

    Reply to comment

  241. Posted by Jacques | June 9, 2008, 8:47 am

    I should think that it would be obvious that python is a boat that somehow stays afloat without any braces to hold it together.

    I would love python with braces to hold it together.

    Reply to comment

  242. Posted by Han | June 10, 2008, 1:02 am

    “PHP – is like a cigarette boat. Fast and sexy, but needs a good driver.”

    Nice description, except the fast and sexy part.

    “Java: is like an oil tanker. Moves slow, carries lots of cargo and pollutes the ocean.”

    Oil tankers pollute the atmosphere like hell, but they usually don’t pollute the ocean in the slightest unless there’s a major disaster, but when that happens they pollute big, like a nuclear reactor. When Java programs crash the JVM typically does an excellent job of covering for it, so that part’s pretty inaccurate. On the other hand supertankers are tried and true, like Java, so that’s pretty accurate.

    Yes, Java is slow–slower than PHP (gasp). But it carries way more cargo than PHP and for large projects is arguably easier to drive.

    “ASP.net: is like a chinese junk. Looks horrible, moves like a snail, and requires another boat to pull it.”

    In spite of the name, the Chinese junk was a (at the time) very advanced gigantic but fast and effecient ancient Chinese sailing ship. Adopting the technologies of the junk into Western shipbuilding was largely responsible for the Age of Sail, which directly led to European domination over the modern world and, ironically, the downfall of China as a major world power. (Well, “largely” is subjective, obviously the magnetic compass and gunpowder, both also Chinese technologies, and Greek technologies like the astrolabe played big roles too.)

    In other words, the Chinese junk was everything ASP.NET is not.

    “Ruby: is like a Yaght. Looks sexy but everyone hates the people who are on it.”

    Nice, but it’s spelled ‘yacht’.

    “Javascript: is a boat without a paddle.”

    More like paddle without a boat, or maybe a one of those tiny motorboat motors without the motorboat.


    “HTML: is like a kayak. A lot of people think its a boat but it is really not.”

    How is the kayak not a boat?!?! I prefer the previous suggestion of HTML being like a diving suit.

    Reply to comment

  243. Posted by Han | June 10, 2008, 1:06 am

    I meant “efficient” not “effecient”.

    Sorry if I seem to be picking on you, Shannon, I’m just expressing my opinion on some of your comments.

    Reply to comment

  244. Posted by Max | June 13, 2008, 2:34 am

    C is a kind of cruiser ship with a nuclear submarine as a lifeboat.

    Sorry… I couldn’t find any picture for this.


    Reply to comment

  245. Posted by Max | June 13, 2008, 2:36 am

    Sorry, my previous comment was about C plus plus being a cruiser ship. I guess the double plus has been eaten by the CMS.

    Reply to comment

  246. Posted by Eric Fowler | June 17, 2008, 5:21 pm

    SQL is a barge I suppose … it likes square things (like tables).

    COBOL is a garbage scow …

    Reply to comment

  247. Posted by John | June 21, 2008, 2:40 am

    Python is a pirate ship: awesome and gets all the booty.

    Reply to comment

  248. Posted by Matthew | June 22, 2008, 2:32 pm

    @John Python deserves it!

    Reply to comment

  249. Posted by Victor | June 22, 2008, 11:37 pm

    I strongly disagree with your decision of making PHP look so bad. You can’t realistically say that 90% of the websites and web applications out there are floating on a bamboo raft. Even if it is obviously a joke and a biased comparison, it only reveals your bad taste in humor and lack of professionalism.
    Better luck next time.

    Reply to comment

  250. Posted by oliver | June 25, 2008, 3:13 pm

    duh your using php for your blog and you compare it to a bamboo raft. by the way more people are using php over ruby so i guess ruby would rather be a bamboo raft.

    Reply to comment

  251. Posted by Tony | June 26, 2008, 7:07 pm

    What I find extremely interesting about the comments, are certain trends that emerge. It’s obviously clear that PHP and ColdFusion enthusiasts disagree with some of the assertions. Though while the ColdFusion camp tries to defend itself and forms an argument in favour of their choice; most PHP’ers simply take a comment about their language personally, get offended, and blurb something about a lot of other people using it.

    Yes, I know a lot of people use PHP. A lot of people also use Windows for their OS, and eat at McDonald’s. That is to say, the lowest common denominator isn’t always the best choice. Find a better argument.

    Reply to comment

  252. Posted by Clintonio | June 26, 2008, 7:38 pm

    Well, my biggest reason to use PHP is that it’s simple, it works and it was the easiest language for me to grasp out of the ones I was first presented with (I learn programming on a practical basis, if I’m just following tutorials I’ll end up not absorbing anything, so I needed something that would throw quick and practical results).

    I’m still fairly new to programming on the whole, but I honestly have to say that PHP does its job and fast, even if it’s just hacked together.

    Regardless, I burst out laughing when I read the bit about PHP.

    Reply to comment

  253. Posted by Richard | June 27, 2008, 9:44 am

    C is like a battleship, big, heavy and lots of knobs and switches but everybody wants to turn the wheel.

    Reply to comment

  254. Posted by Richard | June 27, 2008, 9:45 am

    eh, I meant c plus plus (damn forums)

    Whatever language these CGI scripts are written in are like a leaky boat, just barely usefull.

    Reply to comment

  255. Posted by Daniel | June 27, 2008, 12:01 pm

    I guess anyone who uses Javascript is a badass pirate then, even if we all had wooden legs; you don’t mess with people who have wooden legs and guns or Evil Birds on their shoulders, etc..

    Reply to comment

  256. Posted by nofrillz | June 29, 2008, 9:44 pm

    fully agree that php is shit

    also put in assembly language as a dinghy with a nuclear outboard motor – incredibly powerful but almost impossible to control except in small bursts

    Reply to comment

  257. Posted by BigSteve | July 9, 2008, 10:56 am

    While I don’t have any hands on with Python yet but judging from the early comments, Python must be an army of guys from the flotilla fallen overboard wearing ducky lifesavers yelling “What about me!”

    Reply to comment

  258. Posted by Pi | July 9, 2008, 3:27 pm

    @tony: Yeah, a lot of PHP activists like to say things like “well, it’s turing complete” or “well, our idiotic behavior is documented, so it’s okay”. I just sneer.

    Reply to comment

  259. Posted by M44LCY | July 10, 2008, 4:42 am

    You know, all of the above is really interesting. My own conclusion is that we all love the boats that we’re used to. We love to wash it and polish it. And we love to point out how much better our boat is than eveyrone else’s.

    But the puirpose of any boat is to transport you and your goods across water without getting your feet wet. No programming language reaches critical mass without being basically good at what it does. So they’re all equally good.

    It’s just that, if you wanted to cross the Atlantic, you wouldn’t head off in a coracle. And anyone that ever tried taking a hydrofoil into the local boating pond would tell you it’s not the best idea.

    Compare boats, help others to try out different boats. But let’s not say that our boat is the only valid one. Happy sailing!

    Reply to comment

  260. Posted by Masud | August 14, 2008, 3:36 am


    very interesting definition of programming language. i like it.

    keep it up. :)

    Reply to comment

  261. Posted by teknoloji haberleri | August 24, 2008, 2:17 pm

    Very interesting topic, really.

    I am an ASP coder (!) so, what about ASP. I think ASP similar to a JETSKI :p

    Reply to comment

  262. Posted by japsec | August 25, 2008, 10:43 am

    Many accused the ceremony and vagaries of C of preventing the approach. While I agree that Ruby has less ceremony than C, I also think C doesn’t get its fair shake sometimes.

    Reply to comment

  263. Posted by Nick Hamze | September 9, 2008, 5:49 pm

    This is great I never thought about looking at programming languages like this, keep up the good work, I just subscribed to this blog



    Reply to comment

  264. Posted by Douglas Gross | September 16, 2008, 5:07 pm

    VB6 and earlier is a paper boat…LOL!

    Reply to comment

  265. Posted by Darth Vader | September 17, 2008, 6:47 pm

    assembly is like one of those obscenely fast speedboats they drag race in…
    years of training, but it is unbelievably fast until you screw up, then crunch, your hard drive goes flipping through the air before hitting the water at 70 mph and getting crunched.

    “w00t! w00t! this is incredible! w0 ohshi **crunch**”

    Reply to comment

  266. Posted by Matt McPherrin | September 28, 2008, 10:08 pm

    Programming in machine code is swimming. You do it all yourself.

    Assembly is a little better: You’re still swimming, but with a pool noodle to keep you from sinking.

    Reply to comment

  267. Posted by Mike Huang | October 13, 2008, 5:56 pm

    haha, talk about hitting the key point of every word :P My favorite is PHP.


    Reply to comment

  268. Posted by eric | October 17, 2008, 4:10 pm

    when it comes down to it theres only one worthwhile programing language, and that is ada. ada is by far the best language ever

    Reply to comment

  269. Posted by PoWl | October 24, 2008, 5:08 pm

    I totally disagree with the statement about objective-c. Objective-C is much more a hovercraft that nobody dares to drive. One time driven you want leave it! ;-)

    Reply to comment

  270. Posted by Hunter | November 9, 2008, 4:31 pm

    Pascal – pedal catamaran, easy to use, but not for overseas travels.

    Delphi – catamaran yacht, comfort and fast. You can easily add and use helipad, smimming pool, guns and missiles, sail, cargo crane and many other third-party modules.

    Reply to comment

  271. Posted by theRemix | April 1, 2009, 10:07 pm


    agreed @JD

    or Bumper Boats!
    Can’t really ’sail’ outside of the ‘pool’ but it’s really, really fun in here.

    Reply to comment

  272. Posted by theRemix | April 1, 2009, 10:08 pm

    haXe would be a Decepticon


    not that haXe is fake, plastic, fictional, or a toy.

    Reply to comment

  273. Posted by snuxoll | April 6, 2009, 12:20 am

    What amuses me is all of the PHP fanboys getting bent out of shape over the authors comparison for ruby. We rubyists are perfectly content to move on with life when anyone makes a stupid argument about our language (zomg rails is slow, but rails isn’t ruby, and it’s not the only framework out there as well), but as soon as someone points out that PHP is just a bucket of functions you start making pointless arguments like ‘everyone is using it!’.

    Grow up.

    Reply to comment

  274. Posted by Venturing beyond the office, with Computer Science | CompSci.ca/blog | November 15, 2009, 3:08 am

    [...] Inside a shipping container, in the middle of an ocean… Original photo by cfarivar, reused from another boat post [...]

  275. Posted by Spyros | December 17, 2009, 5:04 am

    hehe, very nicely designed. I would put more load on the java boat though :D

    Reply to comment

Post a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>