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.
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.
Original photo by cfarivar
Perl is a tugboat. Powerful enough to tug Java around, in 80 characters or less.
Original photo by xeeliz
Ruby is difficult to describe. It’s sleek, sexy, and very fun to drive. Here’s a picture. Very trendy.
Original photo by Tony Falcon
PHP is a bamboo raft. A series of hacks held together by string. Still keeps afloat though.
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.
Original photo by Ryan C. McGinley
HTML isn’t really a programming language 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?
I think we can all agree that Coldfusion is like a sinking vessel; No longer functional, and everyone is jumping ship.
Reply to comment
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
What the hell is Python?
Reply to comment
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
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
One wonders – what boat is Python?
Reply to comment
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
.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
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
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
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
What about some others? C ? C# ? Prolog? Haskell? Lisp?
XD great list though!
Reply to comment
“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
COBOL: the papyrus boats of the Egyptians. Ancient, but Thor Heyerdahl managed to reach America in one
Reply to comment
What sort of boat is Python? How come Python is always missed out?
Reply to comment
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
C
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
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
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
Where is Python ?
Reply to comment
C-sharp, Like a luxury cruiser. Sleek, good looking and quite comfy. However, not very fast , expensive and somewhat limiting.
http://www.crusadertravel.com/red_sea/images/bluefin.jpg
Reply to comment
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
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
What about Python Guys ?
Reply to comment
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.
http://tinyurl.com/2fhg58
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.
http://tinyurl.com/39r4z2
Reply to comment
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
VB? ASP? .Net?
Where?
Reply to comment
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
I think the HTML analogy works for XML too.
Wat type of a boat is pyhton?
Reply to comment
If PHP is a leaky bamboo raft, what does that make ASP?
Reply to comment
What about .net?
Reply to comment
And Python?
Reply to comment
Lisp is a kayak. Fun, not usually used for big projects, and sometimes it just feels upside down.
Reply to comment
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
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
Your Ruby picture seems to suggest speed. That can’t be intentional
Reply to comment
ahhhh we need one for python!
here i am gonna describe how it should look like:
szssS ssSASSSZz zzz szsszszzzzzzzzz zszs!
Reply to comment
C is a matter/anti-matter submarine
Reply to comment
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
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
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
I find Ruby to be more like the bamboo raft than php. Agreed also that python is missing. Rubbish.
Reply to comment
VBA:
http://www.bbc.co.uk/london/content/images/2006/04/26/marathon2006dingy400_400×293.jpg
Reply to comment
Python could be one of those sniper boats, frigate, or maybe a destroyer.
Reply to comment
That’s canoe is a kayak
Reply to comment
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
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
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
Python would be a catamaran. Light and functional, with conspicuous spacing.
Reply to comment
You haven’t looked at PHP5 obviously
Reply to comment
Python
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
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
@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
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
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
.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
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
Uh, oh. What I intended to write, was C plus plus. Intentions probably collided with format markup.
Reply to comment
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
Haskell is ever changing prototype. Only a few people can drive those individual items, but it looks cool and easily.
Reply to comment
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
Did you know your blog runs on PHP? Is it also, ‘just afloat’?
Reply to comment
I’m kinda disappointed PHP is being compared to a bamboo raft Although is the same platform your blog runs on.
Reply to comment
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
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
[...] 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…?) [...]
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
And Javascript?
Reply to comment
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
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
Need to come up with one for .NET maybe?
Reply to comment
Visual Basic is a freightliner carrying a unicycle.
Reply to comment
VB.NET would be a Kit-Boat. Comes ready made to piece together into something functional if not exactly professional.
Reply to comment
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
I think the boats in your canoe picture are actually kayaks.
Reply to comment
C# would be
http://en.wikipedia.org/wiki/MS_Freedom_of_the_Seas
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
> 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
I’d love to see even more comparisons
Reply to comment
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.
http://www.jamesbondwiki.com/page/Other%20Vehicles
Reply to comment
Python is another Ruby but an older model.
Reply to comment
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
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
You are a very ignorant person if you think that PHP is a bamboo raft.
Reply to comment
.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
I think that we can add Prolog also
It is like a Gondole of Venice
Charmy but not much useful
http://www.viaggiaresempre.it/005ItaliaVeneziaTraghetto.jpg
Reply to comment
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
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:
http://commons.wikimedia.org/wiki/Image:Alassalmi_cable_ferry_2007-07-01.jpg
Reply to comment
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
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
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
What about
Basic (paper boat)
Delphi (paper boat with a nice outfit)
Assembler (?)
C (yellow submarine )
Ada
Fortran
Smalltalk
=) ?
Reply to comment
Python is a white water raft. Unless you get all the spacing right, you crash and die horribly.
Reply to comment
.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
Intercal would be a sea mine.
Reply to comment
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
javascript is this innertube being pulled behind a boat –
http://www.youtube.com/watch?v=lT9ugCfLPiw
fun and reckless in all the best sorts of ways but very painful when something goes wrong which it usually does
Reply to comment
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
@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
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
Fun to think that digg.com float on a bamboo raft.
Reply to comment
@JKreditch: I think a_to_the has done an excellent job for me!
Reply to comment
@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
If C# were a boat, it could only float in the pacific ocean around Seattle, otherwise would run aground. .
Reply to comment
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
Assembly is this thing:
http://www.ambrosiasw.com/games/evn/desktoppics/Dart(1600×1200).jpg
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
Java can be really fun , I promise
Reply to comment
I was going to write a criticism, but it’s a stupid boat list, so who cares.
Reply to comment
You have forgot about J2ME http://tinyurl.com/53xsyr
Reply to comment
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
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
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
If a programming language was a boat – a continuation…
Continuing on the legacy of Tony…
.NET
It sounded like a great idea in R&D, but slowly lost it’s greatness post-launch.
Erlang
It floats, and might even perform relatively fast, but what’s with the syntax?
ColdFusion
The picture…
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
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
@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
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
@Lee: Remove the hotties?! Don’t you know that nerds are in right now?
Reply to comment
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
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
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
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
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
So, what kind of boat IS ColdFusion?
Wired.com – If a Programming Language Was a Boat, What Boat Would it Be?
Haha, great ready Tony, I loved PHP and HTML
Reply to comment
@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
@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
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
@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
Lisp simply can’t lower itself to being only a boat:
http://damienkatz.net/pics/amphib.jpg
From Damien Katz’s “The Volkswagen Lisp”: http://damienkatz.net/2007/01/the_volkswagen.html
Reply to comment
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
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
What, a flamewar on this issue ?
Geeez
Reply to comment
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
Symbian C – very prowerful but very difficult to use .. and where is the manual??
http://img.dailymail.co.uk/i/pix/2007/12_03/EcoBoatPA1_468×309.jpg
Reply to comment
I don’t understand why PHP is a bamboo raft ?!?
Reply to comment
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
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
[...] 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 [...]
@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
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
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
Wow, so many comments already!
Nuclear submarine for C. (I use C , same thing pretty much though)
Reply to comment
@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
@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
@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
Um, what’s CF?
Reply to comment
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
What an irony! A PHP site calls itself a bamboo raft. Those of you who hate PHP, I would recommend this article:
http://www.cio.com/article/197152/PHP_s_Enterprise_Strengths_and_Weaknesses_Take_
Reply to comment
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
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. ^^
~Daryl
Reply to comment
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
I am still using PHP but that submarine has enticed me to learn C.Ruby also looks good.
Reply to comment
And Brainfuck? A trunk? Extremly minimalist, but not suitable for practical use.
Reply to comment
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
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
CSS: A nice-looking small boat. Easily upgradeable appearance, but some changes cause it to sink in certain bodies of water.
Reply to comment
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
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
To the ones asking about .NET, let me remind you of something; .NET is NOT a programming language. kthxbye
Reply to comment
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
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
@Jacob: Or perhaps a boat cover?
Reply to comment
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
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
funny how identified we all are with our favorite tools
Reply to comment
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.
DONT DARE INSULT PHP.
– PHP LOVERS!!
Reply to comment
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
Asm would be a Scuba diver 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
we can agree now that CSS would be close to motocross, because of HTML being a BMX bike.
Reply to comment
Groovy…
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
Lisp?
http://www.youtube.com/watch?v=VMafhj_jG6g
Reply to comment
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:
http://en.wikipedia.org/wiki/Image:Paddleboat_Vancouver_Canada.JPG
Reply to comment
Cool, but looks like soft Turing PR
Reply to comment
@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
What about Whitespace?
Reply to comment
COBOL has got the be the Flying Dutchman. Just when you think it’s gone. It comes back to haunt you.
Reply to comment
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
Jave seem the best and HTML seem “too good”. And both of them are used generally
Reply to comment
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
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
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
Visual Basic A talking boat that instructs you on what to do. And can go at a alright speed.
Reply to comment
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
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
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
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
C( ) is a nuclear submarine with two unlabeled buttons: 1) launch nuke at self 2) turn engine on
Reply to comment
lol
What would brainfuck be?
Reply to comment
Assembly Language is not a boat, It’s the ocean.
Reply to comment
What about Lua?
Reply to comment
If programming language las a boat i want to be submarine captain
Reply to comment
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
What ?
There are C and Java but why not C# and .net programe ?
I like C.
Reply to comment
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
Oh I agree assembly is an axe, you use it to hack out nuclear submarines.
Reply to comment
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
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
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
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
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
Java is pure agility ! A cargo ship ? Kidding ?
Reply to comment
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
@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
What about the Pascal?
Reply to comment
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
BASIC: can only compare it to a rowing boat; kinda self explanatory to use but gets you nowhere fast.
Reply to comment
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
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
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
Assembler is the breast stroke.
Reply to comment
I love it. Nice analogies. Where does python fit in? lol.
I agree though. I might look at learning ruby now.
Reply to comment
LOL! I love it. Especially the PHP description, it’s dead on
Reply to comment
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
@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
Serious web applications in PHP? No problem:
Facebook,
Yahoo,
Digg,
Flickr,
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.
Cheers,
Reply to comment
@Jack’o
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
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:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Cheers,
Reply to comment
@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.
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
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
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
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
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
@streaky –
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.
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
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
Where would Python and Groovy factor in? Scala? Lisp? Haskell?
Reply to comment
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
What about ActionScript? The boat can looks whatever you want!
http://www.funforever.net/wp-content/012.jpg
Reply to comment
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
i want to say that maybe python is less of a boat, and more of an anchor…..
Reply to comment
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
[...] “If a programming language was a boat“ [...]
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
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
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
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
@Daniel
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
Kaka, Why the HTML not be the boat?
Reply to comment
You forgot Assembly, also this list isn’t very good.
Reply to comment
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
Ladder (Ladder logic)
Could be a River Barge.
Features:
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
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
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
“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.
(snip)
“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
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
C is a kind of cruiser ship with a nuclear submarine as a lifeboat.
Sorry… I couldn’t find any picture for this.
Ciao,
max
Reply to comment
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
SQL is a barge I suppose … it likes square things (like tables).
COBOL is a garbage scow …
Reply to comment
Python is a pirate ship: awesome and gets all the booty.
Reply to comment
@John Python deserves it!
Reply to comment
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
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
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
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
C is like a battleship, big, heavy and lots of knobs and switches but everybody wants to turn the wheel.
Reply to comment
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
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
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
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
@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
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
hahahaha
very interesting definition of programming language. i like it.
keep it up.
Reply to comment
Very interesting topic, really.
I am an ASP coder (!) so, what about ASP. I think ASP similar to a JETSKI :p
Reply to comment
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
This is great I never thought about looking at programming languages like this, keep up the good work, I just subscribed to this blog
Thanks
Nick
Reply to comment
VB6 and earlier is a paper boat…LOL!
Reply to comment
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
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
haha, talk about hitting the key point of every word My favorite is PHP.
-Mike
Reply to comment
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
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
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
Actionscript
agreed @JD
or Bumper Boats!
http://www.summerlandfunpark.com/boats.jpg
Can’t really ’sail’ outside of the ‘pool’ but it’s really, really fun in here.
Reply to comment
haXe would be a Decepticon
http://www.cliffbee.com/reviews/images/thundershell.gif
not that haXe is fake, plastic, fictional, or a toy.
Reply to comment
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
[...] Inside a shipping container, in the middle of an ocean… Original photo by cfarivar, reused from another boat post [...]
hehe, very nicely designed. I would put more load on the java boat though
Reply to comment