Java, Ruby, and even Python Sucks

There is a bit of a flame war unfolding between Javanistas and Rubyists. I could trace this most recent scuffle to an article posted on JavaLobby by Daniel Spiewak about a little Java library called ActiveObjects. The aritcle is promoting this Java-based but Rails inspired Object Relational Mapping library. ActiveObjects is a Java implementation of the Active Record pattern made famous by Ruby on Rails and it’s use of convention over configuration. In touting the benefits of ActiveObjects, Daniel complains and grossly exaggerates that in Hibernate “you have to write more XML than code!”

Gavin King, the founder of Hibernate, responded that XML was soo 1999 and now they overuse annotations. Gavin wrote, “Hibernate Annotations has been around since early 2005 and there is no longer any good reason for people to define mappings in XML.”

Out of the blue and into the blogosphere, Obie Fernandez responded to Gavin’s ‘FUDdly’ remarks with his top 10 rant why Java sucks ass! Basically Obie resorts to fighting FUD with FUD. Obie goes ballistic on compilers, IDEs, frameworks, libraries, High School Musical 2, and Java developers themselves. Obie rants that most Java Programmers are morons. From his writing, it is clear that Obie idol worships DHH as the fucking second coming of the fifth generation computer language era. Obie’s top ten reasons why Java sucks include that the language makes money for vendors. From his Ruby rage you think he hopes to make Java vendor money by writing Ruby books.

To add FUD to the flames, Daniel, which started the whole my milkshare (ORM) is better than yours drama, responded with his top ten reasons why Ruby sucks ass infinity times ten. Daniel writes, “Some of Obie’s points are either misinformed, or deliberately misleading.” According to Daniel, Ruby sucks goatse ass because more of most Ruby programmers are morons, Ruby has an annoying community, and because Ruby has DHH. Touché.

Now, I may be a bit late to the party but I also have my favorite reasons why Java sucks. I also think Ruby sucks too. And just for good measure, Python sucks the most!

Ruby Sucks Because

  • Ruby does not any major corporate sponsorship or backing
  • At RubyConf everybody wants to talk about Rails
  • At RailsConf half the audience is writing books from lectures given by the other half
  • Ruby is a DSL for Rails
  • Most people think that DHH wrote Ruby or never have heard of Matz
  • There is no language specification for Ruby
  • Ruby will fragment to different wannabe successors
  • JRuby will ultimately go where Ruby can’t, the enterprise
  • Closures are by no means unique to Ruby, get over it
  • Ruby and Rubyist seem to have an inferiority complex when it comes to Java, get counseling
  • Rails is too tightly mind controlled, managed, copyrighted, owned by DHH and 37signals

Java Sucks Because

  • Java has way to many freaking frameworks
  • There is sooo much to learn in developing an application
  • Java has far too many APIs and libraries that are designed by committee
  • People still think Java is slow
  • Java still suffers from the fiasco that was Applets
  • Java still suffers from the fiasco that was EJB 2.x
  • There too many flavors of the JRE (Java 5, Java 1.4, J2SE, JEE, J2ME, JWTF)
  • The JRE has a lot of junk in the trunk
  • Methods gets deprecated, nothing gets removed, the API gets bloated
  • Java does not always run everywhere, sometimes you need to go native
  • Java is still primitive
  • Java developers are a dime a dozen

Python Sucks Because

  • Python cares about whitespace, I don’t care for that
  • Python programmers are morons
  • I like David Chappelle better than Monty Python
  • Guido van Rossum doesn’t work at 37signals
  • Python has no personality like JavaScript or personalities like Dave Thomas
  • Python will never go mainstream, not even with Google’s backing

To be honest, the back and forth almost sound like ‘yo mama’ comebacks. I mean, this is all to reminiscent of the east coast/west coast baby mama drama between Biggie Fries and Six Pack Shakur. There’s even some would be wanksta crew hating on CGI, Pascal, Ada, and Basic.

Here are my Jerry Springer final thoughts, if programming languages evolve beyond closures and white space to natural languages, are we still going to have these language wars? If we where to program in a natural language, say in English or German or Hindi, we would be as writers. Our JEE applications would be as thick as Moby Dick and our Ruby on Rails CRUD applications thin as Dear John letter. We as programmers tend to think we are artists, do writers and artist act as such? Oh Hell Ya!!

Technorati Tags: , , , , , , , , , , , , ,

Related posts:

  1. Ruby Language Goodies For Java Developers
  2. Top Programming Books on Google Book Search
  3. TechKnow Year In Review 2007
  4. Rad Ruby On Rails
  5. Top 13 Ruby on Rails Presentations
  6. Ruby on Rails Radioactive Fallout


43 Responses to “Java, Ruby, and even Python Sucks”

  • bob Says:

    My name is not bob — my way of posting anonymously. It’s funny that you say Python sucks the most, but your criticism are of it are the least articulated and concerning. I agree with your view on Java though.

    “Python programmers are morons?” !!

    Can I even take you seriously? So, would the language be better if the people using it got along with you better?

  • herval Says:

    yo mama sux because she doesn’t program Erlang!

  • jonas Says:

    I’m not Jonas, but I have Bob’s back.

    I don’t think you can quantify the “Python programmers are morons.” And as a Python programmer, who occasionally thinks he’s moronic, I think that has more to do with me than Python.

    Whitespace….some care, some don’t. I find it readable.

    Personality….who cares. The tools in my toolbox have no personality, I’m interested in getting the job done not talking.

  • bret Says:

    Sounds like bob and jonas lack the ability to detect sarcasm. Must be python programmers ;)

  • juxie Says:

    read the fucking tag! it’s under Humor stupid!

  • TechKnow Says:

    @Guido – I mean Bob/Jonas – You clearly are not a moron because you read the article and got the humor of it all. Agreed, some people think white space is funny, some don’t. Don’t feel bad about yourself, personally, I think .NET programmers more moronic than Python programmers.

  • planetmcd Says:

    Funny post. Here’s my (sadly) non humorous take on the ‘debate’, Rails is Not Opinionated, it is Principled.

  • somebody Says:

    “Java has way to many freaking frameworks ”
    I don’t eat chocolate cause there is too many kind.

    Go back to php you noob

  • pcdinh Says:

    “Java has way to many freaking frameworks ”
    When PHP5 with strong OOP support released on 2005, the same practice repeats in PHP world. There are too many MVC frameworks. However, most of them embrace nearly the same mind share. So developers do not have to learn a lot before switching from one to the others like in Java world.

    By the way, PHP does not have what make Java, Python, Ruby suck. As the result, it rocks. :D

  • Cliff Says:

    Yo’ mama sucks cuz she speaks LISP with a lisp! No doubt, cuz… you’re off da’ hook with this post. I was looking for someone to shed light on the real problem… the people pointing out all of the problems. But wait, you didn’t trash talk Groovy at all!

  • Aaron Mezer Says:

    I actually agree with your statements, especially about python. To quote google:
    “We’ve chosen python because our developers have less issues learning the simple structure.”

    It is truly the easiest language I’ve ever used, very easy. But it’s tedious, especially when you count that both compilers and interpreters are READING the white space, instead of passing it.

    Python was a solution for those who cannot understand Java, PHP, ASP, Perl, C#, etc. So, I belive you are correct in calling python coders morons.

  • sleytr Says:

    Python is a solution for those who can understand stupidness and uselessness of all these languages.

    Python coders are smart and brave enough to learn a language for their selfs because they love it, not for a job from some company which uses some corporate supported mainstream platform.

  • ahoge Says:

    Nice read :D
    Rails’ structure freaks me out from time to time.

  • Rick O'Shay Says:

    The second I read that Python cared about spaces I donated the book to the company library. Last time that I checked, “easy to tokenize and parse” wan’t on the check list of important language features. I wan’t to write code, not do the compiler’s work for it.

    As far as Ruby, which really mean Ruby on Rails as far as all these discussions go, dynamic scripting languages increase productivity on the surface and having an MVC generator rocks. I hope nobody minds that I leverage those benefits using a syntax and idioms that are homogeneous with type-safe Java (read: Groovy and Grails).

    Regarding Java, having a gillion frameworks does suck, but you can solve that by choosing Java EE with JBoss Seam and Google Guice.

  • Mike Jones Says:

    Python is already becoming mainstream lol. I agree with most of the other arguments though. (But i do like python)

  • Miles Togo Says:

    Well its been a year and the major nit can still be picked: most ruby programmers are morons.

    Even some of the guys who have written “the” books, are sadly lacking in practical (!) experience.

    The rest seem to be a bunch of bandwagon jumping script kiddies who don’t know jack about engineering and development practices, and have little or no meaningful experience.

    Meanwhile, so-called Ruby gurus have struggled, flailed, and fallen flat on their faces in the last year as they experienced the effects of not knowing how to code properly and not knowing how to architect an application that can scale past write saturation issues in the persistence layer. We’ve seen it over and over again. Two good examples: MOG, and Twitter. Both built and run by people who didn’t really know what the fuck they were doing, at first. In Twitter’s case they got some relevant clues, hired some experience, and took care of business. In MOG’s case, they’re still flailing, because their lead engineer Lucas Carlson is both under-qualified and obnoxious prick whom nobody wants to work with (or so I’ve read, in several places, anyway).

    These are just two examples. There are more out there. RoR has a long way to go. Or maybe it should just “go”, period. Some people are remembering that they could do all of this in PHP in half the time and scale it for half the cost…

  • foo Says:

    Python rocks !

  • Levi Figueira Says:

    Interesting how I got here via a Java programmer, who is acknowledging that Rails (Groovy actually) is possibly the way we should go corporately. I don’t know any of the 3 but I’ll learn Ruby/Rails for “work” and I’m learning Python on my own. Of all the languages, Python is the one that attracts me the most BECAUSE of the whitespace and visual organization. I’m coming from the design field and even the little that I coded before (mainly PHP and Javascript) I cared about how my code was structured and commented. Talking to seasoned developers, they appreciate that I do that and we can all work together a lot more easily.

    But all this to say:
    1. Java does sucks… especially as a framework! In the last 10y, all the Java apps I used got throwned in the recycle bin because they are… SLOW (main problem with OpenOffice going mainstream IMO)
    2. Ruby, especially Rails, is booming because it’s fast and easy to develop on and highly maintainable. Also, Rails developers are usually Apple users (like myself) and tend to be very dedicated to their “preferences” and even “evangelistic” about it… I see a great future ahead for Rails.
    3. Python is an extremely versatile language that you can easily use to develop a command-line script on your box, integrate with excellent frameworks (like PyGTK) to develop very good looking applications, already has a great MVC (Django) and I’m sure more will come, and has a great community because it is a language that has been around for a while (since 1991).

    Again, that’s why I won’t learn Java and will learn both Rails and Python.

    My preference??? Python.

    Oh, and great article! ;)

  • LeviFig.net » Java… and Ruby/Rails and Python… Says:

    […] up in my arguments because I don’t know Java that well, he sarcastically sent me this link: Java, Ruby, and even Python Suck.Quite an entertaining article I should say, but what I really thought interesting were his points […]

  • Asad Rana Says:

    I am a professional software architect in UAE and let me tell you python programmers are usually morons…the language is all hype…they flood the internet about how great it is sort of like programming heaven…only reason their with python is because its a scripting language and they cant be serious programmers ever. By the way i consider waste of mental energy and time a sin…in conjunction with that comes the concept that python wont make anyone serious money. If you want to make money .Net is the way…as for java dont go their…too many of us south asians are willing to work for 1 dollar an hour!

  • segmentation fault Says:

    I agree python programmers are morons, but thats not pythons fault :)

  • progsnake Says:

    Obie Fernandez is a cock. Other than that, I am neutral in this debate.

  • COP Says:

    Python is like first love.. it gets better n better you work with it.. Just like Apple products.. u keep discovering the goodies and u never want to go back to the ugly world.

  • fooo Says:

    Python programmers are not moron. Many of them code for KDE, GNOME and other FOSS projects. Yes it is not mainstream due to lack of enterprise backing but it is the BASIC and VISUAL BASIC of future.

  • Jammylov Says:

    Youtube is written in Python, not to shabby.

  • Django fan Says:

    Having been a senior dev at the world’s largest interactive services company, I’ve used a number of technologies in my time. Python, by far, is my favorite language to work with, and Django my favorite framework.

    Python has drawbacks too, but I find them far less annoying that someone trying to tell me how great this framework is or that language is.

    I think the one thing we can all agree on, is that we like to get stuff done. But, I’ll take Django over Rails anywhere anytime.

  • Andy Says:

    All of you suck who even raise a question on PHP or Perl.

    A variable needs to be defined with a $ unless it is C++ or C.

    No one commented here about the sick training from .net guys who even do not understand the >NET architecture ?

    Is not .NET a shit and a waste from JAVA that is processed further to smell and taste better ?

  • Alex Says:

    @Rick – “The second I read that Python cared about spaces I donated the book to the company library. Last time that I checked, “easy to tokenize and parse” wan’t on the check list of important language features. I wan’t to write code, not do the compiler’s work for it.”

    Python’s whitespace significance has nothing to do with ease of parsing. It is to reduce crufty symbols (block ‘ends’ made unnecessary because you should already have correct whitespace no matter what language) and reduce typing. Python is actually notably difficult to parse, since it is such a dynamic and flexible language.

  • M.S. Babaei Says:

    Yeah!! They all suck!! I still prefer Perl for web development (+JavaScript for Client Side Programming) and C++/Qt for Desktop.

    You’re article is very funny!! tnxXx!!

  • borb Says:

    PHP sucks because it was never meant to be a language, and therefore the conventions in it make no logical sense what-so-ever. The thing just grew to a grotesque size and is now a language interpreter. It’s so Emacs.

  • Nathan Says:

    Unlike “bob” and “jonas”, I have no need for anonymity, so here goes:

    The main thing (to me) that the flame war lacks is understanding that certain languages have their place. You can write an awful lot in Java that would be a complete waste of time to even try in Ruby (I’m sitting around waiting for someone to write a SQL database engine in Ruby … no tackers? I wonder why.)

    That said, I would like to address some of the critique against Java:
    – “too many frameworks” – I call it choice. For some projects, using Hibernate just seems like too much bloat, so you can switch over to using something else, like iBatis. Find Java Server Faces too much? You can use Struts instead. Choice is a good thing.
    – “sooo much to learn” – again, in the end this is a good thing. When Ruby on Rails “auto-magic” fails, it’s a train-wreck to try to figure out what happened, and you end up having to delve into the source anyway, so you’re not really saving yourself from anything. In fact, given the “code should be self explanatory” mind-set of Rubyists, this can become a nightmare, because heaven forbid we actually comment any of the source
    – “people think Java is slow” – that’s not Java’s fault, surely? That seems more like people are stupid.
    – “too many flavours” – adding J2EE onto a cell-phone would be insanity. Besides, this really has more to do with what APIs are available, not the language itself. I can take a class compiled for J2ME (no GUI involved, obviously) and use it in a J2SE desktop app. Seems like a boon to me.
    – “methods get deprecated, nothing get removed” – while I completely agree with the bloat point, there is a distinct benefit overall: my Java 1.0 app will still run under Java 6. I hate to bash things, but an minor version number upgrade from Ruby 1.8.6 to 1.8.7 is a screw-up (Strings mangled, anyone?) This is even worse in Rails -company I worked for had to upgrade from Rails 1.2.4 to 1.2.6, and Rails had completely changed how their Date extensions worked -and it wasn’t even mentioned in the change-logs!
    – “does not run anywhere, need to go native” – so wait, you want Sun to make a Java API for every conceivable possible OS API and Application API ever invented???? Wow.
    – “Java is still primitive” … uuuh … what? I don’t get it.
    – “dime a dozen” – true, but not GOOD ones. As with any language you care to mention, you always have a vast wasteland of incompetents (80% of the Rails programmers I worked with didn’t even know how a computer actually handles numbers internally).

    So there you have it. I hope I made my point clear, and I certainly don’t want to enter a flame war … mainly because anyone with a brain knows that Ruby sucks ;-) Hehehe, sorry, couldn’t resist!

  • doc Says:

    Anyone who actually wants to write serious code has to start by thinking they are going to use C. If you have to use C++ that means your program’s way too big, and you should probably have multiple communicating programs — or it means you don’t know how to organize your code and what someone else to do it for you…. which is bad news.

    That leads to programming frameworks.

    If I’m the CIO of a company, I’m going to organically grow my own framework based on the structure of the company, its core strengths, relationships with other companies, suppliers, vendors, etc. If I fail to do that, I’m now beholden to a bunch of “framework organizers” who post rants on weblogs and think directory trees substitute for databases (or worse….vice versa). The priorities of any given framework are, guaranteed, bad for everyone except the framework authors.

    For example, Ruby on Rails great if you’re an SEO hack and need to whip out lots of websites that are functional clones of each other. Oh… and look half the Ruby programmers make their bread and butter by being SEO hacks.

    So, already, Java and Ruby are ruled out here. They are behemoths. They are good at what the framework programmers built them for… and that’s about it. Ruby is less of a behemoth, but Ruby is even more tightly controlled.

    Python is a strange beast. Like LISP, it’s syntax is bizarre at first glance but then, as you read it, you feel your brain being reorganized around the code. Unlike LISP, though, it has no elegance, symmetry or power. Is that a list context? Yes! No? What’s going on here?

    OF course, I can’t say anything, I’m the author of a language that only I and a handful of people use (smx). It’s not a framework, not object oriented and … it includes builtin support for loading PERL modules of all things. How awful.

  • Steve Says:

    All languages and frameworks suck. As a programmer though you should be able to figure out how to work with anything. Stop bitching and do your job. If someone is going to pay me 300k a year to write java apps well fuck it… I will use java. Programmers are problem silvers but they also bitch and moan like faggots. Write some code and shut the fuck up already.

  • itsbrad212 Says:

    Python is not for morons. However, if you think python is the most advanced programming language in the world and it can solve anything, then you are a moron. I am a python and C programmer and pretty darn proud of it

  • Beavis Says:

    It is amusing that the creator of ActiveObjects thinks that Ruby sucks.

    AO is very clunky compared to AR, mainly because Java is so clunky and inflexible.

  • John Says:

    Wow us programmers (or “scripters” for those elites that choose to call them such) are SOOOO fucking retarded. Seriously we need to get over ourselves and our hate for X language or Y framework… or at least just hate it and be done with it. Not be the next “Z language sucks” author. Just find what you like doing, learn it, do it, and have fun and/or make money. I on the other hand need to stop reading through comments of peoples language flames and need to stop searching “Z language sucks” for kicks when I should be working god damnit. BTW Ruby sucks. FUCK YOU!

  • jhuni Says:

    In Perl there is more then one way to suck.

  • chrisOf6 Says:

    Complaining vehemently is the aigre-doux sauce that makes life worth living. If I didn’t have complaining I would have to drink more coffee.

  • Gorilla Logic Blogs » Blog Archive » Language Flamewars and the Blub Paradox Says:

    […] resolution ever comes of ANY flame war …despite the fact there are no end to the results that are relevant to the war at hand.  We all know flame wars are pointless, and […]

  • Language Flamewars and the Blub Paradox | Lessons of Failure Says:

    […] the fact there are no end to the results that are relevant to the war at hand.  We all know flame wars are pointless, and […]

  • Houmou Says:

    The Smalltalk framework Seaside actually whoops Django’s and Rails’ asses up and down the street.

  • Guile Says:

    Comparing programming languages/frameworks/whatever… is pretty much like boys comparing their penis size in a more nerdy way.

    Women don’t care what language we’re using, trust me ;)

  • sam Says:

    Hey!! Not all Python programmers are morons, cause I’m sure I’m only one of those things – either a python programmer or a moron..
    Awesome article.. and if people would defend their language choice in response to this .. then surely they are morons and not (Python) programmers

Leave a Reply