Re: What programming language for Future
- From: "cr88192" <cr88192@xxxxxxxxxxxxxxxxxx>
- Date: Fri, 3 Feb 2006 21:38:00 +1000
"Marco van de Voort" <marcov@xxxxxxxx> wrote in message
news:slrndu67rt.a41.marcov@xxxxxxxxxxxxxxxxx
On 2006-02-03, cr88192 <cr88192@xxxxxxxxxxxxxxxxxx> wrote:well, in this case the primary difference is when it is run, eg, prior to
usually when apps come with scripts, those scripts are for that versionand
its vm, matches the code that came with it, and the user can tweak it
out
or
write new code, no concern for the past or the future.
I don't know what you mean here.
of
the app. if the user edits the scripts, they are writing code for that
version of the app. if the language or vm changes, oh well, no big loss.
the
app-provided scripts will change with the vm, and user supplied scripts
will
need to be modified.
Which is exactly the same as when the compiler is shipped with the app.
?!?
I don't see any difference between compiler and vm here.
runtime, or during runtime.
then again, java had used a seperate compiler, but still interpreted the
result. imo, java is oddball in this respect.
not sure I follow.yes, that is partly why depending on the bytecode version, and not the
source version, is a very bad idea...
Correct.
yes, I agree to this at least.older, all is fine. but once you try rebuilding and replacing the dll
(without rebuilding the app that uses it), things become much more
error
prone.
Same for bytecode compiled app and VM.
Where you were comparing to recompiling DLL, which happens with generalyeah, but in the context of someone or another deciding "hell, it would
compilers
be
cool if we did all our app's extensions as dll's". this leads to the
occurance of having to recompile the dll to write new app extensions,
which
is imo a pita.
Re-interpreting it at _any_ run, no that is a pleasure;_)
the user typically does not notice the recompiling/reinterpreting going on
with a vm, as it is done automatically, and is typically quite fast (usually
the scripts are pretty small, and most script languages tend to compile
quite fast vs c or c++, possibly due to the absence of things like header
processing and similar).
well, usually the vm is built into the app (eg: either part of the app'sone then ends up with apps where it is difficult to write extensions, if
for the sole reason that they can't rebuild a working dll.
Or get the relevant VM and all its modules set up. I don't see any
difference to be honest. Actually, one can link against an existing DLL
without having all source for the DLL. With modules in VM languages one
often needs them set up before a recompile.
codebase, or maybe a statically or dynamically linked lib).
linking to dll's is easy. writing working replacement dlls for existing apps
has been in my experience a lot more problematic, for some reasons I have
yet to decipher. maybe it is because they typically want people to rebuild
the damn things with msvc, and not everyone has msvc, and mingw is
incompatible in some subtle way. then again, it could have something to do
with the def files as well, but I don't know.
the fact it is a general purpose compiler/language doesn't matter in this
particular case. in the case where extensions are done as dlls, using a
general-purpose compiler is the only real option, but that does not
change
much.
I don't see why a specialistic compiler couldn't compile to a DLL.
it could, but using dll's for extensions is imo a very bad teqnique if the
idea is that people will actually write scripts or extensions. imo,
vm/interpreters do a much better job on this front.
one edits the damn file, and the app knows how to rebuild it, and often will
do so on its own.
I think dlls are popular because:
the scripts/extensions can be written in the host language, thus avoiding
the usual hassles of interfacing c or c++ to most script languages;
theoretically, the dll approach is more powerful, becuase the user can use
functionality outside the host app (system api's, ...);
it is the least work.
hell, even I have used dll's in the past, but tend to prefer static linking
instead (in my experience, less can foul up with static linking).
usually it is trivial stuff, like running the app from a directory where
it's dlls are not visible, ... resulting in the app not working. sometimes
it is other problems, like the dll got rebuilt but the app didn't, and now
they don't match so that the app crashes (vs being left in a consistent,
albeit out of date condition, ...).
imo, a lot of this didn't seem to be worth it, contributing to the switch to
using primarily static linking for my stuff (yeah, system stuff is still
dlls, but at least they don't really change all that often...).
then again, in general writing replacement dlls comes out as very
problematic in my experience. a lot seems to come down to subtle order type
issues.
typically use of "auto export" seems common, and different compilers/linkers
will apparently export the functions in a different order (or however all
this works).
.
- Follow-Ups:
- Re: What programming language for Future
- From: Marco van de Voort
- Re: What programming language for Future
- References:
- Re: What programming language for Future
- From: cr88192
- Re: What programming language for Future
- From: Marco van de Voort
- Re: What programming language for Future
- From: cr88192
- Re: What programming language for Future
- From: Marco van de Voort
- Re: What programming language for Future
- From: cr88192
- Re: What programming language for Future
- From: Marco van de Voort
- Re: What programming language for Future
- Prev by Date: Re: What programming language for Future
- Next by Date: New release of Visula
- Previous by thread: Re: What programming language for Future
- Next by thread: Re: What programming language for Future
- Index(es):
Relevant Pages
|