tags:

views:

1576

answers:

10

I want to write a piece of software which is essentially a regex data scrubber. I am going to take a contact list in CSV and remove all non-word characters and such from the person's name.

This project has Perl written all over it but my client base is largely non-technical and installing Perl on Windows would not be worth it for them.

Any ideas on how I can use a Perl/Python/Ruby type language without all the headaches of getting the interpreter on their computer?

Thought about web for a second but it would not work for business reasons.

A: 

Not going to work without an install of something. A plain install of Windows just doesn't have enough good tools to do that.

What about submitting the CSV through email having a server process it and return the results ?

jim
Not an option either unfortunately, the data leaving their hands is just not an option.
Brian G
It /can/ work if you bundle an interpreter, and most scripting languages have a way of doing that.
Michael Carman
+20  A: 

You can use Perl Archive Toolkit to bring a minimal perl core + needed modules + your Perl program with you.

And you can even convert it using PAR Packer to a windows exe file that will run just like any other program, from an end user's perspective.

Tom Feiner
+3  A: 

You could convert the script to an executable. In Python and Windows you can easily do that with py2exe. There are similar solutions for Perl and Ruby, but I believe py2exe is both free and reliable.

kgiannakakis
+16  A: 

You can get Windows executables in all three languages.

Adam Bellaire
These aren't actually compilers, they just pack the Perl code into a specially designed programs. I don't know about the other examples.
Brad Gilbert
You're right, "compile" isn't the right word. Fixed.
Adam Bellaire
I dunno, if you think about 'compile' as an English word rather than a computing word, it's accurrate: these packagers collect up the necessary parts and bundle them together. Just as the creator of a compilation album collects singles into a bundle.
slim
@slim: That's true, but it could be interpreted either way. Using a different word is less ambiguous.
Adam Bellaire
@Adam that's also true. But the different word isn't right either. It's not being converted. I suppose since 'compile' is taken you could use the word 'collect'. That's a word linkers use... but then it's stronly analogous to linking.
slim
@slim: I think I'll just use a less specific word. :)
Adam Bellaire
+2  A: 

A non-technical audience? You'll also want some sort of basic user interface, probably of the `graphical' type. You might try wxPython, which can be packaged into a Windows executable with py2exe and into a Mac application with py2app.

Noah
The thing about that is wxPython + py2exe = 25+ meg program.
sli
With 1TB disks costing $50 these days, who cares?
jrockway
A: 

"installing Perl on Windows would not be worth it for them" Really? It's that complex?

Python has a simple .MSI that neatly installs itself with no muss or fuss.

A simple application program is just a few .py files, so, I don't see a big pain factor there.

You know your customers best.

I find that the following isn't so bad. And it's much easier to support, since your upgrades will just be a single .MSI with simple, easy-to-live with source.

1) double click this .MSI file to install Python (or Perl or whatever)

2) double click this other .MSI to install the good stuff

S.Lott
Its not that its that complex but the idea for the script is so simple that if it is difficult in any way it may provide enough resistance that it is not worth it for them.
Brian G
Value speaks for itself. If the script isn't valuable enough, find something cooler and more irresistible.
S.Lott
You also have to consider that installing Perl on the client machine means yet another thing the local sysadmin has to maintain in addition to the script, whereas with the packed script, they just maintain that. Assuming there is a sysadmin..
romandas
+1  A: 

Shoes can make exe's, and binaries for other platforms as well, and you get an integrated GUI.

krusty.ar
+6  A: 

Are you sure there is a headache? ActivePerl and Strawberry Perl are dead easy to install on Windows with just a couple of mouse clicks. Python is just as easy to install from what I hear.

Have you tried installing any of those to see how easy it is? If those are hard for your customer, I don't see how giving them a script to run is going to be easier.

brian d foy
OK, headache was a strong word.
Brian G
Sure, it's easy but, sometimes you just do not want to install stuff (like an interpreter) on the clients machine. A self contained app on a thumb drive can be a handy tool.
JeffV
+6  A: 

Using PAR, the Perl Aachiver has already been mentioned in other answers, and is an excellent solution. There's a short tutorial on building executables using PAR that was published as a Perl Tip last year.

In most cases, if you have PAR::Packer already installed on your build system, you can create a stand-alone executable with no external dependencies or requirements with:

pp -o example.exe example.pl

In most cases PAR will do all the hard work of determining your module dependencies for you, but if it gets anything wrong there are additional command line options you can use to ensure they get included. See the pp documentation for more details.

All the best,

Paul

pjf
A: 

Ruby has the OCRA program that packages everything up into a nice neat .EXE file. The RubyScript2EXE program is no longer maintained, so this would be the better solution.

John