Gary R. Schmidt said:
Some of us have been interfacing different languages for decades -
I know
that some newbies think it's a recent development, but really, it
isn't.
I've worked on projects where we were using Pascal, Fortran, C,
and
Assembler, all on the same hardware and interfacing to each other
via
API[1], and no doubt others have similar stories.
Of course interfacing different languages has been possible for
ages, I
write my Dlls in C++ and they talk to my Delphi programs without
problems
via APIs LoadLibrary - GetProcedureAddress and all that jazz, but
this is
different to the way .net works. In dotnet there is a Common
Language
Runtime (CLR). The Common Language Runtime is the substrate that
abstracts
the underlying operating system from your code, so you don't need to
think
anymore about language dependient type (an string in classic passcal
(not
Delphi) was not compatible with null terminated strings or VB
strings, for
example). You don't need to think anomorre about calling
conventions,
stdcalls, fastcalls etc. That means that if I compile a assembly
with VB for
.NET, I can use it DIRECTLY in my C# program. So there is a
difference,.