Hacker News new | past | comments | ask | show | jobs | submit login
Jython 2.7 alpha1 released (fwierzbicki.blogspot.com)
69 points by cobrien on May 17, 2012 | hide | past | favorite | 27 comments



In case any Jython devs are reading this, I'd like to also express my delight that Jython isn't dead. In the next few months I'll be expected to recommend a programming language for a large-scale enterprise project, and while Java--sad to say--seems to be the most responsible choice, I'd like to also have a JVM-compatible scripting language waiting in the wings. Glad to see that I'll have more options to evaluate when the time comes.


You have many options for JVM languages: Scala, Groovy, JRuby etc.

[edit] and many more: http://en.wikipedia.org/wiki/List_of_JVM_languages


don't forget Clojure


In the next few months I'll be expected to recommend a programming language for a large-scale enterprise project, and while Java--sad to say--seems to be the most responsible choice

What about Groovy?


Maybe, I'm still juggling the options in my head. But when I say enterprise I mean enterprise, with all the pejorative connotations thereof. We are not a nimble startup, we are an enormous, established, very conservative company; I'm just the guy who knows all those newfangled languages. This means that, unless someone can convince me otherwise (and if you can, please, please convince me otherwise), Java seems to possess the correct combination of features: mature platform, wide adoption, familiar syntax, readily-available developers, maintainability by those other than the original authors (Java isn't necessarily great at this, but better than many), and a quality that I'll describe only as hard to really fuck things up too badly. If it wasn't for that last requirement, I'd already be trying to sell Python to my boss; as it stands, if I can't find some really awesome static analysis and verification tools for Python, Java is simply the only choice that my conscience allows me to make.

(Corollary: what about .NET? Mostly I'm incredibly wary of recommending a language with only one "blessed" platform, and a proprietary one at that. My bosses are wary of this too: as a result of historical decisions we're currently locked into IBM hardware, writing million-line codebases in RPG-LE. If someone can allay my fears of vendor lock-in (at the hands of no less than Microsoft), perhaps I'll consider it.)


Having come from that environment, and having been a regular here for some time, I can guess that you have probably made the right decision, and that very few here will probably agree.

Also, for what it's worth, I was able to deploy full "Java" applications to the federal government that were completely Jython, and they've worked fairly well. The only concern I ever had was the one of how the customer might maintain such a codebase after our contract ended, but thankfully, that isn't a significant concern as a federal IT consultant, and super-tight deadlines often precluded Java as a viable language, only to see Java as a requirement later in the same RFP - This is where Jython (and its ilk) shine beautifully.

Edit: and just so it's said, I agree with your assessment on .Net. People are happy to pay for it, as well as the Microsoft tax, but I almost never saw it as the best option in a heterogeneous environment. It is also appreciably rare to run into an entirely Microsoft infrastructure.


Thanks for the encouragement, I sometimes wonder whether or not I really have any idea what I'm doing. :)


.NET on Unix can be a really pleasant experience, to be honest (I'm even working on a blog post.NET on Unix), but as much as I think it could be awesome for a start-up, I do not currently believe that it's a viable option for a conservative enterprise. Right now, we're going through a heretofore unprecedented deluge of open-source .NET libraries, and along with that has come a massive spike in Mono-compatible frameworks, but it's still a bit of an uphill struggle if you're coming from the Mono side. MonoDevelop is no VisualStudio, for example, and while NuGet runs fine on Unix, you miss out on all the pieces that integrate with solution files. I am optimistic you could pick .NET for Unix in a year or two for super-conservative corporate development, but I get your requirements, and regretfully believe you're making the only viable decision right now.


Thanks for the candid reply.

I am optimistic you could pick .NET for Unix in a year or two

This really resonates with me. I feel like there's been a language boom in the past few years, but few implementations yet have the maturity and stability that I'd expect in a corporate environment. Given enough time and continued interest in alternative languages, I'd bet that Java's grip on this market will likely continue to erode (though an outright slide into obscurity seems highly unlikely). If it were ten years from now, perhaps I'd even be considering Go for this space.


I work on that type of environment, and I would stay with Java.

You might have some luck with Groovy, but the performance hit might be an issue, depending on which types of applications.

On a former project I've found out it was easier to sell the Groovy than Python, due to the syntax being almost the same as in Java.

As for .NET I would only use it if you are only targeting Windows. Mono is not really an option for heterogeneous environments in the enterprise world, plus there are a lot of FUD discussions around it.


Java seems to possess the correct combination of features: mature platform, wide adoption, familiar syntax, readily-available developers, maintainability by those other than the original authors (Java isn't necessarily great at this, but better than many), and a quality that I'll describe only as hard to really fuck things up too badly. If it wasn't for that last requirement, I'd already be trying to sell Python to my boss; as it stands, if I can't find some really awesome static analysis and verification tools for Python

I think one can make a case that Groovy comes pretty damn close, and at least as close as any other "scripting language on the JVM."

Platform: Well, it's the JVM.

Wide Adoption: Define "wide?" But from what I can see, Groovy is pretty popular, especially Grails. There are plenty of books on Groovy/Grails, Grails meetups / users groups in many cities, an active community of developers, etc. There are even consulting companies that focus on Groovy and Grails. SpanTree in Chicago, IL come to mind.

Familiar Syntax: Groovy is great in this regard, as almost any .java file can be renamed to .groovy and compiled with groovyc. Most of the syntax that's different between Java and Groovy is optional in Groovy, so you can start off writing Groovy that is very Java-like and slowly evolve to more idiomatic Groovy over time.

Maintainability: No better or worse than any other dynamic language, IMO. If you have access to metaprogramming and duck-typing and what-not, there opportunity for abuse is there. But Groovy's culture does not seem to be big on a lot of BFM.

hard to really fuck things up too badly - hmm... that's pretty subjective, but to that point, Groovy does have unit-testing tools, static analysis tools, etc. available. The ecosystem might not quite as rich as of that for pure Java, but I think you can find what you need to create a sane development environment.


I'll look into Groovy some more, as I don't know enough to dispute most of those points. The one sticking point that I can see right now is Wide Adoption, which primarily means, "If I go to my boss right now and recommend this language, how likely is he to have ever heard of it, or ever heard of any product that uses it, or ever heard of any company that uses it?" My boss has heard of Java. My boss has only tangentially heard of PHP, but surely he's heard of Facebook from his kids, and Facebook uses PHP (not that I necessarily want to encourage him to use PHP). My boss hasn't heard of Python, but he's heard of Google, which sponsors Python development and uses it internally. What companies use Groovy? What well-known software has it produced? These questions are essential barriers to adoption in a company such as mine.


"Wide Adoption" - always hard to pin down, but as my ears are tuned to Groovy, I'm seeing it in more places. In some ways it's harder to pick out, because a company that's 'using python' will more likely have a larger stack of python (or jython) code. Groovy can (and does) fly under the radar more, precisely because it's so similar to Java syntactically, and fits in the toolchain (add a jar to the classpath and you're off).

You probably won't find many projects built "just" in Groovy - because of its JVM nature, you're more likely to find Java projects which are enhanced with Groovy (Groovy plugin for Hudson, for example, and the Play framework supporting Groovy in templates). Gradle as a build tool is starting to get some traction.

Groovy will probably be more behind the scenes than you'd like for a 'hey boss everyone is using this' sort of pitch, but it's not going away any time soon, and adoption is growing.

Biases on the table - I've done a number of mid-scale projects in Grails over the past several years, and I also run groovymag.com.


_Wide Adoption_ means many platforms, doesn't it? If you use Groovy, you're limiting yourself to the JVM. All the other languages mentioned, i.e. Scala, Clojure, Ruby, and Python, have both JVM and CLR versions. Since Oracle's aquisition of Java 2 yrs ago and its subsequent courtroom behavior, it's important to have a scripting language that runs on both the JVM and CLR, just in case. There's no move whatever to port Groovy to the CLR.

As for wide adoption, Groovy's used in Grails but not many people seem interested in it as a standalone language. See O'Reilly's book sales for the year to March 2012 (http://radar.oreilly.com/upload/2012/03/Lang_QTR_Units_PrevY...).


Cool. FWIW, here's a list of places using Grails:

http://grails.org/Success+Stories

and note that Groovy is commercially supported by SpringSource, a division of VMWare. I'm guessing your boss has heard of VMWare.


Thanks, this will definitely help. And if my boss hasn't heard of VMWare, I know that his boss has.


Speaking of conservative enterprises even UBS, the Swiss bank, is using Scala! [1].

source [1] http://en.wikipedia.org/wiki/Scala_%28programming_language%2...


There are many conservative banks that are starting to do enterprise projects in python. The primary reason why I would do that is the python ecosystem makes math and science easy to do


Out of curiosity, anyone know how it's comparing in speed to JRuby? Fantastic work was done on JRuby - you'd hope many of the findings/techniques find their way into Jython.


The Jython team and I collaborate with the JRuby team a fair amount. Some work has begun to use similar techniques in Jython to improve performance, so stay tuned!


I love Jython! and for me is the best combination of two rich library worlds. I use it mainly for scaping together with htmlunit


excellent news, I thought Jython was dead.


Far from it, Jython devs continue to attend and present at Pycon. Although these days I've been using Groovy lately for my JVM.next() needs.


It languished for a while and then new devs rotated in and there was a flurry of work and then it became just steady.


Jython was frozen in the 2.2.X state for the longest time but then Frank and his team jumped to 2.5.X a few years ago and its has been a modern Python ever since.


Good to see that this project is still going strong.


Many thanks to the Jython developers in case you're reading this.




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

Search: