Whenever I use a non-Java language, I always have this nagging feeling in the back of my head that something is going to hold this piece of code from ever becoming mainstream or used by a lot of people. It can be because the language is slow, or that it needs an interpreter. Or that it will be hard to deploy my program on a user's machine.
— Cedric Beust, I'm not tired of Java yet
I won't argue that Perl apps (Perl 5 apps) are easy to deploy, but Java? Really?
I think maybe the Sun marketing chip in your head is loose, don't you remember, Java is "Write Once, Run Everywhere". I mean it's not like it requires a virtual machine (*cough* JVM version incompatabilities *cough*), or that virtual machine is so notoriously slow that is would require lots of investment into some kind of JIT compiler or something.
Next thing you know you will be complaining that Ruby is not an ideal language for writing DSLs in. *sigh*
- Stevan
Re:Write Once, Run Everwhere
chromatic on 2008-01-18T16:14:39
My problem is that I remember trying to run Java applications on multiple platforms for which there was no (or in some cases, no recent) JVM. These were not exotic platforms, either. Perhaps you've heard of GNU/Linux?
Re:Write Once, Run Everwhere
Stevan on 2008-01-18T21:25:56
Clearly you are some type of subversive {commun,terror}ist and should be banned from writing software no matter what language. Don't you know that nothing in life is free!?!?!
Re:Write Once, Run Everwhere
Ovid on 2008-01-19T13:52:30
Reminds me of a complaint a colleague has. He recently bought some hardware that lets you do all sorts of fancy reconfigurations. Unfortunately, you can only do this with Windows, not Linux. Apparently a developer at the company told him "we only support mainstream operating systems."
Re:Write Once, Run Everwhere
slanning on 2008-01-27T15:07:14
It's true that Linux isn't a mainstream OS. Go into Staples and look for Linux -- I found only Windows and a little MacOSX. Go into Waldenbooks (or whatever crappy bookstore there is in your local mall) and try to find a Linux-related magazine (after filtering out magazines without boobs, plants, balls, or guns on the cover). Can you find something in Walmart? I'm wanting to install Ubuntu on my mom's computer while I'm at home, and I forgot to bring a CD with me and she's on dialup, so I've been looking around for it in local stores (ok, my home being in rural Ohio doesn't help) and can't find it anywhere..
"Perl programmers know how to efficiently deploy Perl apps, but not Java apps, while Java programmers know how to efficiently deploy Java apps, but not Perl apps. Film at 11."
When I think about it, deploying's a nightmare in every single language I know. Perl? It's not everywhere. It'll run everywhere, but if I want to write something for my Dad to use, getting Perl to him is not going to be easy. Java? Same story, only I've got less experience and less ideas how to go about it. What's left? C/C++? What do I use for that, autoconf? While I feel competent enough to make that work, it's still not something I can describe as anything other than a nightmare. And if I'm using Windows' versions of C/C++, I can pack it all up with a Winstaller or whatever they use, and I'm sure that's no picnic, either.
When I think about it, it's a wonder any software runs at all.
Re:Hmm, not news, when you think about it
jplindstrom on 2008-01-18T21:57:30
If you're gonna put stuff on your dad's desktop, PAR/PerlApp + InnoSetup makes things just as easy to install as any other Windows program.
It's not a problem. Really.
Re:Deployment is hard
chromatic on 2008-01-18T21:34:31
The CLASSPATH environment variable. The horror.
Re:Deployment is hard
Dom2 on 2008-01-19T13:48:23
Compared to installing XS modules on Windows? I know which I'd rather have to do.BTW, this is no affront to the fantastic nature of CPAN. Just my ability to deploy it simply.
Re:Deployment is hard
chromatic on 2008-01-19T18:10:30
I had forgotten that particular hate. Good point. At least I can get away from that by not using Windows though.
Re:Deployment is hard
djberg96 on 2008-01-20T13:11:39
I have VC++ 6.0. No problemo.:) Re:Deployment is hard
jplindstrom on 2008-01-21T00:06:20
Have you tried Strawberry Perl?
I've been pleasantly surprised again and again installing stuff on Windows with cpan recently, to the point where I have almost started expecting things to just work.
And it does.
I attribute this mostly to the tremendous work of a) Adam Kennedy and b) the Catalyst team which really started taking ease-of-installation seriously a while back. And it paid off.
Actually, if you still have problems installing things on production boxes, you can get things working in your dev environment and then create PPMs yourself, to be installed where there is no compiler available.
See PPM::Make.Re:Deployment is hard
Dom2 on 2008-01-21T08:50:42
Strawberry Perl is great – I used it to ensure I could get XML::Genx to compile under windows.
But when it comes to application deployment, I still think Perl is a pain compared to Java. Part of that pain is XS modules.
- You can't bundle them with your project – they need to be compiled on the target environment (or a near facsimile).
- There's no mechanism for specifying any 3rd party libraries that they depend upon. At least with jar files, you can just include the dependencies directly most of the time.
I know that there are solutions to some of these things, like PAR, but to be quite frank, I don't see them being heavily used at present. And none of them matches the simplicity of “drop a file in the lib directory”. It's a similar situation to why PHP is so popular on the server – drop in your files and away you go.
Re:Deployment is hard
Aristotle on 2008-01-21T12:27:06
Well, as long as that PHP code doesn’t rely on a C (or other foreign language) library…