Re: Why not develop new language
From: Ioannis Vranos (ivr_at_guesswh.at.grad.com)
Date: 09/01/04
- Next message: Chris F Clark: "Re: Cpp Considered Harmful"
- Previous message: kanze_at_gabi-soft.fr: "Re: Is export "useless and broken"?"
- In reply to: Prashant: "Why not develop new language"
- Next in thread: Herb Sutter: "Re: Why not develop new language"
- Reply: Herb Sutter: "Re: Why not develop new language"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Thu, 02 Sep 2004 00:00:31 +0300
Prashant wrote:
> There are lot of dicussion on C# is much better than C++. Why there is
> no language to compute C#. This way we are accepting monopoly of M$.
> Why there is no group which seriously tring to develop new language
> better than C#.
OK, lets shed light on this.
C# has of course less abilities than C++ under paradigm view. Also C#
has not a standard library of its own.
Also about .NET in particular here is some information.
CLI is an official standard describing a multilingual VM environment
with an API. .NET is a CLI compliant machine and there is also the
C#/CLI standard which describes C# in relevance to CLI there is not a
separate C# standard).
There is an upcoming C++/CLI standard (currently draft, official
document expected in December 2004) - and also an upcoming C#/CLI 2
standard.
C++/CLI is more powerful than C#/CLI (including the upcoming C#/CLI one).
The design ideals of C++/CLI are the following:
1) Bring C++ abilities to CLI.
2) Bring CLI additional features to C++.
3) Leave no room for a lower level language in CLI (*including IL*).
Some of the abilities provided by C++/CLI:
Reference objects with stack semantics , deterministic finalisation.
Templates used with reference objects (and producing 100% IL code).
Generics support. Generics are created at run-time while templates at
compile-time. Ability to use generics and templates in combination (e.g.
templates having a generic interface and vice versa).
Ability to pin objects so as to not be moved by the garbage collector
and converted to regular pointers.
No Dispose definition. Dispose is automatically created by the compiler.
C++: Right by default. Other languages (including C#): right by explicit
coding.
MS says that on average, C++ pure IL code is 25% faster than C#. Except
of this, now being MS specific, VC++ supports heavy optimisations not
available on VC# including the upcoming POGO optimisations (real-use
optimisation) + some other crazy stuff that I saw in a video yesterday
something like:
#pragma openmp for
for(int i=0; i<whatever;++i)
// ...
which is facilities supported from openmp: http://www.openmp.org.
The above has as a result, (in addition to the usual .NET
multi-threading facilities) to execute the loop in a separate optimised
thread).
And many others:
I have created a page explaining some of these:
http://www23.brinkster.com/noicys/cppcli.htm
And Microsoft references (be sure to check these):
http://microsoft.sitestream.com/TechEd/DEV/DEV333_files/Botto_files/DEV333_Sutte.ppt
Now you may kiss C# good bye.
Regards,
Ioannis Vranos
http://www23.brinkster.com/noicys
- Next message: Chris F Clark: "Re: Cpp Considered Harmful"
- Previous message: kanze_at_gabi-soft.fr: "Re: Is export "useless and broken"?"
- In reply to: Prashant: "Why not develop new language"
- Next in thread: Herb Sutter: "Re: Why not develop new language"
- Reply: Herb Sutter: "Re: Why not develop new language"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|