Hacker News new | ask | show | jobs
by rabbitfang 5116 days ago
I've used both Java and Ruby and Java is by far the more advanced runtime with better support. Ruby may have much cleaner syntax than Java, but better tooling is NOT one of Ruby's strengths.

Reading your post I suspect you've had very little exposure outside of Ruby.

1 comments

> Reading your post I suspect you've had very little exposure outside of Ruby.

Reading your post, I see that you just throw claims around.

> I've used both Java and Ruby

Congratulations. You aren't the first or the only one.

> Java is by far the more advanced runtime with better support.

There are a lot of good things about JVM. I never contended that.

> but better tooling is NOT one of Ruby's strengths.

I don't remember saying it. I said "easier to refactor => high quality code" or "mvn is better at dependency management than bundler/gem"...is bullshit.

On a large project the ability to refactor is important. Making structural changes to a large Ruby project is extremely time consuming and error prone. Pretty much anything is better at dependency management than bundler/gem. If you have to compile your dependencies at install time you're probably doing something wrong. Not to mention the version incompatibilities between gem versions and syntax changes.
> Making structural changes to a large Ruby project

Only the structural changes which are some form of rename. Refactoring is more than renaming. What eclipse provide is a very limited form of refactoring. Most of the refactoring is to be done by the programmer and can't be done by the IDE.

> Pretty much anything is better at dependency management than bundler/gem.

Yeah. How so?

> If you have to compile your dependencies at install time you're probably doing something wrong.

1. There is no compilation when the code is ruby.

2. When there are native extensions, the compilation is required. Dev platform isn't the same as production most of the times, and precompiled so can't be bundled up.

3. If there are only ruby dependencies, `bundle package` will pack them in vendor/cache and next `bundle install` will install from the cache.

> Not to mention the version incompatibilities between gem versions and syntax changes.

How has this got to do with anything? I am maintaining a gem. In this version, it does pagination. In next version, it will delete your home directory. Version compatibility you say? Go cry me a river. What is bundler supposed to do? Does maven stop me from doing this?

You do, of course, understand that when a Ruby project gets large, it's still about 10% the size of a similarity functional Java project, right?

I don't like all the magic involved in Ruby for web (in particular Rails), but it's much more concise than Java.

That doesn't mean that Ruby is so compact that it's impossible to get a large code base in it. When Ruby projects get large making changes to the code is both painful and scary (I would know since I've had to do just that).
Is your codebase well covered by tests? Do they still run after the change? Did you write tests for the change you just made (preferably before the change)? If you answered yes to all these questions, fear not. You are every bit as covered than you'd be with a Java codebase and you probably have the afternoon for code review.