On Tuesday, 15 January 2013 at 10:22:20 UTC, Chris wrote:
A language such as C++ seems like a bad fit for a scripting
language because of it's complexity and the difficultly with
parsing through it. Also a scripted language probably should
not have low level access that is provided by languages such
as D and C/C++.
--rt
Why not? In my experience small scripts often turn into bigger
programs and sooner or later you need some sort of low level
features. Then you have to write modules in C/C++ and use Swig
or something to integrate them. That's why I prefer D, because
you can get the whole shebang _if necessary_. There are also
copyright issues. If you deliver a Python program, anyone could
rip it, even if you compile it to byte code. If you distribute
native executables, it's harder to rip your program. In
general, I find scripting languages less useful for projects
that (might) develop into something bigger. Now that I come to
think of it, scripting languages are inherently "quick and
dirty", that's why they are not really scalable (think of the
class system in Python and Lua, not the real deal).
For many applications where a scripted language really shines,
there are usually security related issues that require placing
strict limitations on what the scripts are allowed to do. You
have to understand that the scripts tend to be implemented by the
users of the system, rather than just the original developers.
Also code may be transmitted from one machine to another and
executed, so you have to be careful that malicious code cannot do
much harm.
I agree with your comment about larger projects that are
scripted. I think you'll tend to use large applications like that
in environments where the scripting provides little to no
advantages, and it becomes mostly a disadvantage in terms of
eating up resources for no good reason. I can see an advantage
for the developers, but the users of the application tends to
suffer, so if the application could later be compiled to native
machine code for distribution, that would close the gap.
--rt