Friday, November 29, 2019

The History & Origins of C# Programming Language



During the initial development stages of the .NET Framework, the class libraries were originally written using a managed code compiler system called "Simple Managed C" or SMC. During January 1999, Anders Hejlsberg formed a team with the aim to build a new language at the time called Cool, which stood for "C-like Object Oriented Language".

Soon after it was in the last stages of development, Microsoft had considered keeping the name "Cool" as the final name of the language, but chose not to do so for trademark reasons. When the time came to publicly announce .NET project at the July 2000 Professional Developers Conference, the language had been renamed C#, and the class libraries and ASP.NET runtime had been ported to C#.

Anders Hejlsberg is the principal designer for C# and the lead architect at Microsoft, and he was previously involved with the design of Turbo Pascal, Embarcadero Delphi (formerly CodeGear Delphi, Inprise Delphi and Borland Delphi), and Visual J++. 

During many instances, in interviews and technical papers, Anders has stated that flaws in major programming languages like C++, Java, Delphi, and Smalltalk was the driving factor behind fundamentals of the Common Language Runtime (CLR), which, in turn, drove the design of the C# language itself.

Everything was not smooth for the language. For instance, James Gosling, the creator of Java programming language in 1994, and Bill Joy, a co-founder of Sun Microsystems, the originator of Java, called C# an "imitation" of Java. Gosling also went further and added that that C# is sort of Java with reliability, productivity and security deleted.

The next statements came from Klaus Kreft and Angelika Langer---authors of a C++ streams book. They had stated in a blog post that "Java and C# are almost identical programming languages. Boring repetition that lacks innovation.” 

"Hardly anybody will claim that Java or C# are revolutionary programming languages that changed the way we write programs," and "C# borrowed a lot from Java - and vice versa. Now that C# supports boxing and unboxing, we'll have a very similar feature in Java."

Then after in July 2000, Hejlsberg stepped up went on to say that C# is "not a Java clone" and is "much closer to C++" in its design.

The Next Step
Ever since the time C# 2.0 was rolled out in November 2005, the C# and Java languages have evolved on increasingly divergent trajectories, they became two very different languages with time. The first major departures came with the addition of generics to both languages, with vastly different implementations. 

Talking about C#, it makes use of reification to provide "first-class" generic objects that can be used like any other class, with code generation performed at class-load time.

Additionally, C# has added a plethora of major features which accommodate functional-style programming, culminating in the LINQ extensions released with C# 3.0 and its supporting framework of lambda expressions, extension methods, and anonymous types. 

For a developer working with a C# development company or working on a C# project, these features enable him to use functional programming techniques, such as closures, when it is advantageous to their application. The LINQ extensions and the functional imports help developers reduce the amount of boilerplate code that is included in common tasks like querying a database, parsing an xml file, or searching through a data structure, shifting the emphasis onto the actual program logic to help improve readability and maintainability.

Originally, C# did have a mascot called Andy and it was named after Anders Hejlsberg. It was retired on January 29, 2004.

Conclusion

The name "C sharp" was inspired by the musical notation where a sharp indicates that the written note should be made a semitone higher in pitch. This resonates with the language name of C++, where "++" indicates that a variable should be incremented by 1 after being evaluated.

The sharp symbol also resembles a ligature of four "+" symbols (in a two-by-two grid), further implying that the language is an increment of C++.

Read Also:


0 comments:

Post a Comment