Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I\'ve had some discussion with colleagues who chose to go with JRuby along the f

ID: 654291 • Letter: I

Question

I've had some discussion with colleagues who chose to go with JRuby along the following line of argumentation:

JRuby can make use of anything that is available in Java, ergo such programs are more portable bc Java is more portable.

Arguably, the breadth, capability and speed of C/C++ libraries that have been wrapped for Python is still better than what is available in Java. But since this is C/C++, all the problems with portability reappear this way - or so their argument went.

Have you ever had such a problem? that is, problem with portability of Python's extensions?

Personally, I have never found this to be a problem, but YMMV, while theoretically and potentially this is a problem. I'm curious of your experiences.

Explanation / Answer

This is almost an impossible question to answer in the abstract. It depends on what type of programming your doing (systems, enterprise, application) and your definition of portability.

At my current job they did try JRuby precisely because it had the promise of playing nicely with the JVM (before I got there). They ditched because, practically speaking, they found coding calls to Java somewhat cumbersome and switched to Groovy. I've also, anecdotally, had problems running pure Ruby libraries in JRuby - for whatever reason. But writing portable C is not easy. I used to run MRI Ruby on Solaris and there were some native libraries that required a lot of tweaking before they compiled.

You might find more libraries for interfacing with "enterprise" software and "enterprise" crap... err... systems in Java than in C/C++. But as @MrFox pointed out - Java ain't no systems language. If your definition of portable is runs on Linux and Mac OSX, a lot of Python wrappers have worked for me with little or no problem (except for some SciPy related stuff). (I will admit I am a python dilettante and if I were more hard core I might run into more edge cases). If your definition of portable includes OpenVMS and zVM, then Java is your best bet.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote