Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Before I picked up Java I was programming in Perl and C. I remember that amazing feeling with Java that things just worked as I expected them to. A few years later I worked on another Perl project and spent two days chasing a bug that I could never even have made with Java (due to default initialization of variables, weird scopes and stuff like that).

I think Java still has a lot of things going for it, and my most favorite aspect is the documentation. I never spent a dime on Java books because there is so much excellent documentation available online (starting with the Java Tutorial for beginners). Compare that to Ruby, where you can't even get a specification of the current state of the language for free.

Also it seems most of the new developments in IT are being developed for Java first these days, like Aspect Oriented Programming, Dependency Injection and whatever (granted, maybe some of these things would be superfluous in other languages to begin with, I don't know). You get a really good IDE for free (Eclipse), and new add-ons and frameworks for Java are almost forced to also provide plugins for the IDE to work with. For LISP you are still supposed to use Emacs. What do you use for Ruby on Rails?

That said, it seems to me the problem with Java is not the language but the people using it. There is a lot of overengineering going on, that just isn't fun anymore. Many people (especially the bosses in the large corporations) have become dogmatic about certain ways to design applications, that are often inappropriate (in my opinion).

I also long for a faster way to prototype, and I am putting a lot of hopes on Groovy+Grails or even Ruby. But I have the impression that many people who bash Java don't really know it.



"Compare that to Ruby, where you can't even get a specification of the current state of the language for free."

Err.... http://www.ruby-doc.org/

"What do you use for Ruby on Rails?"

Textmate. :-)

http://macromates.com/

BTW, you might want to have a look at JRuby. While it's still pre-1.0, it's moving along nicely. It will allow you to leverage all your knowledge of the Java class libraries.


I know ruby-doc.org, but the only full specification of the language there seems to be the first edition of "Programming Ruby", which describes an older version of Ruby. There is nothing for the current version of Ruby.


Java's big advantages are saving you $50 in books, a crappy bloated IDE, and fad paradigms?

"But I have the impression that many people who bash Java don't really know it."

Interesting complaint from someone who just bashed Perl and almost certainly doesn't know it well.


You mean I should have used "strict" and I wouldn't have had any problems with Perl? It's true, I am not a Perl hacker by any means. The aspects of Perl I have seen are sufficient for me to wanting to avoid it like the plague.

I am not saying that there can't be valid reasons for hating Java. I just think most of the times it is rather the specific frameworks than the language itself that pisses people off. For example I can't bring myself to write EJBs - having to create 5 files just to be able to call a method remotely exceeds my pain tolerance. Yet in many big cooperations someone up in the management chain has decided that every Java Application has to use EJBs. That I hate, too. It's misleading to judge Java based on that perversity, though - EJBs are just a framework written in Java, not the Java programming language.

Anyway, out of curiosity, is Perl still relevant today? Why would people choose Perl over Python or Ruby?


"The aspects of Perl I have seen are sufficient for me to wanting to avoid it like the plague."

From your description it sounds like you were frustrated by coding horrendous Perl and instead of learning it you moved to a language with training wheels. I'd rather just fall a few times while I'm learning so I can go much faster afterwards.

"Why would people choose Perl over Python or Ruby?"

It's fast in productivity and performance. There are great books. It's on every Unix machine. CPAN still reigns supreme as the ultimate library repository. These days there's some great frameworks for web development, my favorite being Catalyst with DBIx::Class and Template Toolkit.

Ruby is mostly just Perl without all the mental baggage of people seeing bad Perl code for years. The way a restaurant might avoid saying "squid" and instead say "calimari" -- it sells a lot better.


Oh, and about the book: yeah, I bought the Ruby book, and even the rails book. It turns out that I am often traveling and would like to toy around with Ruby when I am not at home. So having to carry those books around just sucks. I think it is a HUGE difference between a free programming environment and one you have to pay for.

Also whenever I take on a new programming contract, I just start the computer the company provides me with, download the Java documentation and off we go.

Fad paradigms: no, but I know that if I need something, someone has already written a framework for it.


You might ask why you even need some huge reference for Java after using it for years?

You're moving from a verbose, bloated, over-engineered system to a terse and simple system. I think you're looking for something that doesn't exist because it's not how Ruby programmers work -- they use a language small enough to actually keep in your head and that's a huge part of the productivity to be had.


I don't usually look into the Java programming reference or tutorial anymore. However, typically every project involves some new technology, Hibernate, Spring, Groovy, whatever, so my feeling is that it's actually the job of the Software Developer to constantly learn new things. It's nice if the documentation doesn't get in my way then. Maybe I am mistaken, though, and it feels totally different for developers using other languages.

My ride with RoR hasn't been smooth so far. Far from having my first web app running within minutes. Instant Rails didn't work at all, and I spent hours trying to find a database driver for MySQL for Ruby. It's all very confusing. I suspect there is already a database driver bundled with RoR, but how would I know (documentation, where are you)? Googling only led me to some strange page where you could compile your own driver from C source code (and with what compiler, if I am on windows), which presumably was in some kind of alpha stage.

At least with Java I know that there usually exists a stable and proven solution... The training wheel analogy was maybe not so bad at all: Java applications just tend to be more stable than the scripting stuff. And other than bikes with training wheels in the real life, Java is also faster.


"I remember that amazing feeling with Java that things just worked as I expected them to. "

You mean, as opposed to Perl, which doesn't work?

That's the most ridiculous thing I've heard on this forum.


my typical experience that Perl didn't work as expected right away. That's just because it is so much more messy. I didn't say that Perl doesn't work, it is just harder to use.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: