Anders Hejlsberg slår til igen ...
Min gode gamle ven og studiekammerat, Anders Hejlsberg, som i tidernes morgen komponerede COMPAS PASCAL, som siden blev til POLY PASCAL og TURBO PASCAL og senere far til DELPHI, har gjort det
igen. Anders er nu C# Chief Architect hos Microsoft. Navnet C# (udtales C sharp) er (igen) en IT-vits, ideen er, at C# er en præcisering af C++, eller en halv tone over C. Dette er et objekt-
og komponent-orienteret sprog, som udnytter Microsofts nye .NET-platform, og er fokuseret på web-enabling af applikationerne. Sproget er baseret på C++, men med mange moderne udvidelser.
Microsoft og Java
Samtidigt er det ingen hemmelighed, at Microsoft har et anstrengt forhold til Java og ikke mindst til SUN. Microsofts Java-udviklingsværktøj MS Visual J++ og Java-samarbejdet med SUN har
ikke været en dans på roser. Dette er formodentligt også en af årsagerne til, at man har valgt at satse på et helt nyt sprog C#, som iøvrigt fra start er givet til
standardiserings-organisationen ECMA (det gjorde SUN også først med Java, men har senere trukket det tilbage for selv at kunne kontrolere sproget som en "industri-standard").
Mere simpelt og mere konsistent
C# ligger tættere op af C++ end Java gør. C# indeholder en række forenklinger og gør op med nogle gamle C-shortcuts (ikke mere if (i), nu kræves if (i != 0), slut med implicitte breaks i
switch-statements etc.). Hele #include-problematikken er løst på en elegant måde (Java-alike) o.s.v. Anders og Brian fra dengang DELPHI var lige før release. Sprogprofessor
Hejlsberg slår nu til igen, denne gang med sit C#. 
|
C# er komponentorienteret
Dataindkapsling, polymorphism og nedarvning findes i C#, men multibel nedarvning er ikke medtaget, med begrundelsen at det er for komplekst for programmøren (dette er en gammel
religions-hygge-krig imellem Anders og Bjarne). Man har analyseret C++ og Java-programmørers erfaringer og er nået frem til at antal nye faciliteter, som "ophøjer" en klasse til en
komponent. Det er ting som properties (kontrol med datatilgang i klasser), indexers (kontrol med indexering i klasser), events (asynkrone hændelser), attributes (at man kan tilføje nye
sproglige faciliter svarende til klassemedlemmers public/protected/private/internal direktiver) m.m.
C# dropper hele begrebet med globale funtioner, variable og konstanter; alt er nu klasser. Istedet kan man bruge static class members, hvilket er en tiltrængt opstramning i forhold til C++.
Metoder og operatorer kan overloades i C#, med en enklere syntax end C++.
I C# findes også versionshåndtering og man kan nu introducere nye medlemmer i en basisklasse og alligevel opnå binær kompabilitet til eksisterende brugere af fx. en DLL-fil.
Konklusion
Ovenstående er et meget overordnet kig på sproget C#. Har du lyst til at læse mere så se fx.: www.hitmill.com/programming/dotNET/csharp.html.
Spændende bliver det at se C# contra Java i de kommende år. Det er let at spå om fremtiden; men svært at spå rigtigt, så det vil jeg lade andre om :). Brian på besøg hos Anders
og hans fru Liz. Nej, hunden hedder ikke C# :-). 
|