I need a to take rewrite an existing Perl program, which needs to run on both Windows and Linux. The program’s source-code should be hidden from the users. ie. not scripting language like Perl – besides I really hate Perl. So what are my options? My first thought was of course Java. But then the customer says they have bad experience with Java. C# is out I guess – it needs to run on some version of Redhat. C and C++ just feel so last century. What else is there?
What sorts of things does the application need to do? How about writing it to run on a web server, with the browser providing the cross-platform interface? (would run on more than just Windows and Linux if you do it that way).
FORTRAN!
You can write anything in FORTRAN if you try hard enough.
It is an interface (through regular http calls) to a server program. Unfortunately there already is a web interface. The program is to be the command line interface.
Fortran?! Might as well do Cobol. I even heard there is a Visual Cobol. Perhaps Cobol.Net?
You’re giving command line access to the users? Is the non-access to the uncompiled code an intellectual property protection thing then? (are you selling the suite to admins who will set it up independently of you?)
Flash.
It’s not really users, or at least John Doe users. It used to be that the tool would only be used inside the company (big company – thousands of users). Now they’re opening a bit for outside partners. They call them collaborators (does this word have an ominous working-with-the-enemy sound to it in English?). Not everybody, but still not trusted completely. So they want this extra bit of protection of not everyone can peek into the source code.
If it has to do with a web server, then PHP is the obivious choice.
The computer scientist in me would have you write it in Haskell though.
Note that there’s a PHP compiler that compiles it into a Java-like bytecode.
Though actually, Perl apps can be compiled out into a binary:
http://lists.evolt.org/archive/Week-of-Mon-20010604/034159.html
You’re ruling out C/C++ because they “feel” so last century.
I’ll need a better explanation than that for a decision not to use one of them.
It’s been a while since I programmed in C++ so I’m a bit rusty. Compared to Java/C# it seems a bit cumbersome, and I don’t want to much about with all the memory handling if I can avoid it. And I don’t need the extra performance gain.
IMHO, compiling the Perl and leaving it alone would be the most efficient. You may hate Perl, but having to rewrite Perl into something else will probably be much more hateful (depending on how many Perl “magic” things the original developers used.)
As much as I hate PERL, that is what I’d do.
How about Python? Distribute it as .pyc files so the source code isn’t directly available.
Haskell or O’Caml.
Use whatever programming language you like (I’d use C, but that’s just because that’s what I’m comfortable with), and compile it for Windows and for Linux. Distribute the Windows executable to the Windows users, and the Linux executable to the Linux users, and hold onto the source code yourself.