Move VisualD to github/d-programming-language ?
Nick Sabalausky
SeeWebsiteToContactMe at semitwist.com
Thu Sep 12 14:58:01 PDT 2013
On Thu, 12 Sep 2013 13:30:55 +0200
"PauloPinto" <pjmlp at progtools.org> wrote:
>
> I don't get the point, what there is VM like when I compile Java,
> Scala, F#, C# native code?
>
> How it is different from compiling Apple/Object/Turbo/Think
> Pascal, Delphi, Modula-2, Modula-3, Ada, OCaml, Oberon, Haskell,
> D, Go, Rust to native code?
>
> There is no VM about it, other than implementation details.
>
> Is the lack of access to processor resources what makes some of
> them VM languages?
>
> Then even ANSI C is a VM language, given that what gives the
> language lower hardware access capabilities are all language
> extensions.
>
Let me try to clarify my main point, since I may have been a bit
unclear:
I don't really mean to debate "VM vs native" here; I'm aware (as you
are) that a normally-VMed language can be made to be every bit as fast
and powerful as any normally-native-compiled language. Heck, all you
need is a VM that interprets/JITs the LLVM's bytecode, and then bam,
all of a sudden C/C++ are VM languages.
That "VM vs native" isn't what I was really trying to address. I was
only trying to address a couple very specific points in your and
Walter's discussion about "D vs languages like Java/C#/Scala/Clojure".
And not *all* normally-VM languages in general, but specifically ones
along those particular lines (frankly, the more popular ones).
Walter had said:
> I think [the C++ resurgence] presents an opportunity
> for [D]. Driving the C++ resurgence is:
>
> 1. demand for high performance computing
>
> 2. turning back towards native languages
>
> 3. recognition of the value of functional-style programming
> techniques
>
> 4. recognition of the value of safety, encapsulation, etc.
I'll concede to your point that #3 and #4 are addressed not only by D
but also by several normally-VMed languages (to varying levels of
success).
However, and this is the core of what I was trying to say: I'm
disputing that most of those other popular normally-VMed languages
address Walter's #1 and #2 *as effectively* as D does. My reasoning for
that goes like this:
- Walter's point #1, "demand for high performance computing" is
*partly* about avoiding the runtime/startup costs of
interpretation/JIT, but it's *also* about being able to reach down to
the low-level when necessary (pointers, reinterpret casts, manual
memory management, etc.)
- Walter's point #2, "turning back towards native languages" has much
the same duality: It's *partly* about performance, but *also* about
being able to access the hardware (ex: drivers, OS-level stuff,
certain embedded systems, reduced electricity usage, reduced memory
footprint (ex: for phones/tablets with little or no virtual mem),
etc.)
- While it's certainly *possible* for a normally-VMed language to offer
full low-level abilities, most of them don't (or at least most of the
popular ones don't), and the ones that do (ex: C#, AIUI) don't
usually (ever?) do it on a level that's on par with C/C++/D.
And I think the fact that most normally-VMed languages lack, or skimp
on, low-level abilities is no coincidence: There's a natural tendency
for that specifically because two of the main reasons for using a VM in
the first place are A, the safety of being banned from low-level access
and B, the increased cross-platform portability achieved by not
accessing low-level. Again, it's not that normally-VMed languages
can't/never get around that (C#/.NET found ways around it), but that
they *typically* don't, and even when they do it's typically (if ever?)
not up-to-par with C/C++/D.
More information about the Digitalmars-d
mailing list