Jump to content

Recommendation for Portable Scripting Language

JacobFW

Thank you to everyone who'd like to help me, but to keep things simple I'd appreciate only getting replies from people who have on the job experience.  I am perfectly capable of googling, and have already spent several hours doing so before posting here.  I am not looking for search results, but hopefully some pros/cons of specific languages and executables.

 

At my job, we do most of our server side processing with Coldfusion/Lucee, which serves us well for the vast majority of our needs.  We've ran into a few scenarios however, where we had problems that would be very convenient to solve if we were able to run scripts on our clients machines, both to offload the processing power, and to minimize the changes that need to be made to the import process on our server, and I'm hoping I can get some recommendations for both a language, and an interpreter for it.

 

Requirements:

  • Portable Interpreter - Program which executes the scripts needs to be a standalone/no-install executable.
  • Just in time Interpreter.  No precompilation to byte code or some other form.
  • Reliability is king.  I'm not looking to be a guinea pig.  The interpreter should already be designed to be a portable solution.
  • Windows.  Like the former, no projects which are linux based but just need to be recompiled for windows. (if it also supports Mac/Linux, that great, but not necessary).
  • In terms of preexisting components, I only need file/directory manipulation, and a decent string manipulation library.  Any additional features are not, but not required.

 

I've been doing to research on my own, and found Lua, which I intend to experiment with at work this week.

 

Again, I'm looking for a recommendation for a language and a script interpreter.

Thank you for any help you can provide.

 

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, James Evens said:

It is also possible to python as a portable version but you will still deal with the normal python problems.

Care to define What these normal problems are?

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

7 hours ago, vorticalbox said:

Care to define What these normal problems are?

Not really the place for such a conversation.

Link to comment
Share on other sites

Link to post
Share on other sites

34 minutes ago, James Evens said:

Performance, missing backwards comparability after updates (for example 2.7 to 3)

Performance depends on the implementation. There are JIT style interpreters available like PyPy

 

And despite me preferring 2.7, it's only because I learned it first to maintain existing scripts. You should just use 3 if you're starting fresh.

Link to comment
Share on other sites

Link to post
Share on other sites

12 hours ago, JacobFW said:

Thank you to everyone who'd like to help me, but to keep things simple I'd appreciate only getting replies from people who have on the job experience.  I am perfectly capable of googling, and have already spent several hours doing so before posting here.  I am not looking for search results, but hopefully some pros/cons of specific languages and executables.

 

At my job, we do most of our server side processing with Coldfusion/Lucee, which serves us well for the vast majority of our needs.  We've ran into a few scenarios however, where we had problems that would be very convenient to solve if we were able to run scripts on our clients machines, both to offload the processing power, and to minimize the changes that need to be made to the import process on our server, and I'm hoping I can get some recommendations for both a language, and an interpreter for it.

 

Requirements:

  • Portable Interpreter - Program which executes the scripts needs to be a standalone/no-install executable.
  • Just in time Interpreter.  No precompilation to byte code or some other form.
  • Reliability is king.  I'm not looking to be a guinea pig.  The interpreter should already be designed to be a portable solution.
  • Windows.  Like the former, no projects which are linux based but just need to be recompiled for windows. (if it also supports Mac/Linux, that great, but not necessary).
  • In terms of preexisting components, I only need file/directory manipulation, and a decent string manipulation library.  Any additional features are not, but not required.

 

I've been doing to research on my own, and found Lua, which I intend to experiment with at work this week.

 

Again, I'm looking for a recommendation for a language and a script interpreter.

Thank you for any help you can provide.

 

We did something very similar with client using python and py2exe to avoid them having to install python themselves. It creates a nice standalone exe they just have to run.

 

Its not perfect, the exe was much larger that other solutions as it basically contains the whole python install! It is also pretty trivial for the user to get access to your source code as they can just unzip it, this often isn't a concern but worth mentioning. But as our main code base was in python it was incredibly convenient.

 

I don't have experience with any other options so can offer any comparisons...

Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, Meic said:

We did something very similar with client using python and py2exe to avoid them having to install python themselves. It creates a nice standalone exe they just have to run.

 

Its not perfect, the exe was much larger that other solutions as it basically contains the whole python install! It is also pretty trivial for the user to get access to your source code as they can just unzip it, this often isn't a concern but worth mentioning. But as our main code base was in python it was incredibly convenient.

 

I don't have experience with any other options so can offer any comparisons...

Ideally I would like to avoid having to copy over a couple of giant ass exes, but if that's the worst part of it, then I can deal with that.  I had to copy the MS-SQL installer to one of our clients machines over TeamViewer before.  God save me from slow internet connections.

 

Already considered the source code aspect.  Thankfully I wouldn't be placing anything sensitive or valuable on the client's machine.  And the convenience is easily worth it for me.

Link to comment
Share on other sites

Link to post
Share on other sites

Python has a portable version (look for the "embedded ZIP" download), with versions for every OS.  The 64-bit Windows version comes in at 12.7MB after unzipping.

  • Pros:
    • Code is very easy to write and maintain.
    • Very robust built-in tools for file and string manipulation; more powerful tools in the standard library's os, sys, and re modules (for general OS interfaces, miscellaneous system/interpreter functionality, and regular expressions, respectively).
    • Excellent documentation.
    • The portable version doesn't seem to be generating any compiled bytecode files (the normal install does)--but if it is doing this, there's a command line flag (python -B your_file.py) to make it not.  The compiled bytecode just reduces startup time--there's no runtime benefit.
    • Python doesn't quite have Java's level of "write once, run anywhere," but it's close.  In 2+ years of writing code across Windows and Linux machines I've only ever run into a small handful of things that needed to be changed (and they were very small, quick fixes).
  • Cons:
    • Runtime is a bit on the slow end, but recent versions of the language keep adding speedups.  May or may not be an issue depending on your use cases--if you have very high performance needs, it might be worth benchmarking this with some test scripts to check.  I've never noticed the file/directory manipulation to be a slowdown in my own work, and the string manipulation is plenty fast (I do a bunch of natural language processing work, so strings are part of my bread and butter).
    • The portable version does not seem to come with pip, the CLI package manager for Python libraries, and I'm not sure if you can copy-paste source code directories from PyPI to add them in.  But thankfully the standard library should be more than enough for file/directory/string manipulations, as long as that's what you stick to.
Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×