[Malvern] Programming Languages

guy at steelpillow.com guy at steelpillow.com
Tue Apr 26 23:08:55 BST 2005


chris at hyperspace.org.uk wrote:
> On Sun, Apr 24, 2005 at 09:24:26PM +0100, Ian Pascoe wrote:
> > Folks
> > 
> > In my research I have come across references to the C programming
> > language and it's variants.
> > 
> > Does anyone know what the major differences are between say C, C+, C++,
> > C#, etc?
> > 
> > I realise that their must be a historic tree of development and the +
> > and # indicates something specific to that branch of the language but
> > what is it and does these suffixes also apply to other languages like
> > Java (J, J+, J#).
> 
> C is a basic systems programming language.  C++ is an object-oriented
> extension of this plus a whole bunch of classes/objects to enhance it.
> C# is a Microsoft thing which is similar to Java i.e. object oriented.
> 
> C is compiled (can be interpreted but this is very unlikely).  C++ is
> normally automatically processed into C then compiled.  C# runs on top of
> some hardware abstration layer called .net
> 
> I'm not sure C+ exists, if it does it's a niche thing.

C was someone's third effort at designing a programming language (after A and B). C+ addressed some shortcomings (can't remember what now, probably added floating-point or some such) of the original C, but was incompatible (in the sense that a C or C+ compiler could not process the other variant. When the object-oriented approach arrived, the associated revision was called C++ and was also incompatible with C. C kept its niche for low-level system stuff, while the power addicts moved to C++ leaving C+ as a historical curiosity.

Don't know much about J+, but Borland J++ rings a bell.

Relatively recently, Microsoft got fed up with supporting C, C++, VisualBasic, Java and some others I can't recall. All these languages work in subtly different ways, and things that are built into one can be next to impossible in the other (garbage collection, more poltely known as memory recovery, springs to mind). So they decided to rewrite all the languages they cared about, so as to conform to an ideal logical structure. The idea is that no matter what language you write a program in, it will compile down to identical run-time code. The whole project, including the coding tools, is called .net ("dot-net") and the varoius modified languages are identified by the musical "sharp" sign, #. So we get C#, J#, etc.

If you want to write programs for .net on Linux, you need something called mono.
mono 1 didn't do VB, but mono2 does/will?






More information about the Malvern mailing list