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

I understand why people choose the JVM, I'm sure it gets people up and running very quickly, and maybe if you're an enterprise java programmer then getting set up on the latest cool JVM based language is quite easy. But speaking as a Python/JS/.Net guy who once spent a few evenings trying to build something in Scala, the JVM just seems so painful to use.

I lost hours trying to set up Maven to download one library and build my project. All the documentation pages seemed to point to other documentation pages. I ended up trying to download about 30 jars manually, but the versions seemed to clash. I am convinced that the best thing a programming language can to do improve adoption is not to create a JVM version, but to create a package management system like pip/npm/NuGet.



In all fairness, it does come across as "well thought out" and "solid"; similar to the way that Java comes across as well thought out and solid. I can tell it does a lot but I have to be completely initiated into the JVM way of thinking before I can get anything done. The quickstart page has some 6000 words, which describes how to set up an XML file containing all sorts of stuff. I'm introduced to things like a standard directory structure, Archetypes, CLASSPATHs and Project Object Models. All because I finished the Scala tutorial and then tried to use a library that wasn't installed on my machine already.

With Python, in the past things were a little trickier with easy install, but these days the library's web page would probably have told me to type:

    pip install third_party_library
And that's about it. Even if you haven't got Pip it's quite obvious what to do, the terminal tells you it doesn't know what pip is, so you Google "install pip Windows/Mac/..." and pretty soon you're up and running.


The first couple of days with a language can be painful. People have trouble getting python libraries to work too. Maven is really quite well thought out and solid.


> People have trouble getting python libraries to work too

Aside from developing on Windows with C extension libraries, those are increasingly rare. Pip + virtualenv works wonders, and the latter has been folded into the most recent official release of CPython (3.3), so it's now officially the right way to do Python package management, as opposed to simply the de facto approach.

As someone who's had to use both, I will say that my experience with even the most basic, functionality in Java's package management is a nightmare, whereas learning how to use the same basic functionality in pip/virtualenv was so easy, I wondered why I'd been putting it off so long.


> The first couple of days with a language can be painful.

It doesn't have to be:

http://xkcd.com/353/


> I lost hours trying to set up Maven to download one library and build my project.

You should check out Apache Buildr (http://buildr.apache.org/). It gives you the power of Maven repos with a Ruby "front end". And, yes, I know it's imperative and not declarative but I find that the build files tend to be small and understandable.


I know it's not considered a good thing to do, but I also have problems with Maven, mostly because I so seldom use Java.

But I found JarFinder in IntelliJ to be a good replacement for many needs. You just start using a class and it suggests a couple of jar's to download and reference. :)


> pip/npm/NuGet

Well actually all of those you mentioned are awful compared to Maven ;-)




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

Search: