Re: Why not develop new language

From: Ioannis Vranos (ivr_at_guesswh.at.grad.com)
Date: 09/01/04


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

http://www.accu.org/conference/presentations/Sutter_-_Is_C++_Relevant_on_Modern_Environments_%28keynote%29.pdf

Now you may kiss C# good bye.

Regards,

Ioannis Vranos

http://www23.brinkster.com/noicys



Relevant Pages

  • Re: Garbage Collection - Stop Making Trash
    ... If by system extensions you mean language extention, ... that does not require changes to the C++ standard. ... One thing is to standardize an API for CLI, ...
    (comp.lang.cpp)
  • C++ standard committee censor different opinions
    ... However, if C++ is evolving toward CLI or likes, i.e. interface first ... Plauger and his company sell C++/CLI libraries to Microsoft and that's ... standard committee, they either censor different opinions or shut up ...
    (comp.lang.cpp)
  • Re: Garbage Collection - Stop Making Trash
    ... you appear to have concerns about the CLI standard. ... > run afoul of a patent, or multiple patents, Microsoft may choose to ... > enforce if Mono becomes too much of a threat to Microsoft. ...
    (comp.lang.cpp)
  • Re: A C++ Whishlist
    ... Both C# itself and it's runtime environment, the Common Language ... Infrastructure (CLI) are standardised by ECMA. ... Microsoft .Net is an implementation of those standards. ... Library defined in the CLI standard, adding things such as everything in the ...
    (comp.lang.cpp)
  • Re: Why no one operating system is wrtten in an object language...!!!
    ... a managed language. ... But interpretation would still be slow, which is usually not a desirable characteristic of OSes. ... I know the CLI is just-in-time compiled form Intermediat ... provides a big advantage for platform compilation because one just has ...
    (comp.object)