Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 50 reacties
Bron: The Register

Microsoft heeft de specificaties vrijgegeven van de nieuwe programmeertaal die zij in ontwikkeling hebben: C-Sharp. Zoals je al in een deze eerdere nieuwsposting hebt kunnen lezen, lijkt de taal erg op Java, maar als je je er wat meer in gaat verdiepen zal je merken dat het ook veel weg heeft van C(++). De taal is echter volgens het artikel makkelijker te leren dan C++, en zou daarom best wel eens een goede zet van Microsoft kunnen zijn. De stap voor mensen die al Visual Basic kennen naar een hogere programmeertaal zal dan makkelijker worden:

Well, syntactically it's very Java like, and from a distance, the two are practically indistinguishable. Look closer and you get the definite impression that its authors know Java pretty well, but were annoyed by some of its idiosyncrasies. For example, our Anders and his fellows are obviously very keen on C-style pre-processing, and C# has its own way of importing classes. But on the whole, the similarities are far more striking - even when they go by different names - than the differences. Both do their own garbage collection, for example, and frown on willy-nilly overloading. But what's left out of this spec is far more interesting. It's a pretty bare boned language description, and doesn't describe a security model, or come with a library of ready-to-roll classes. Microsoft is trying to throw this as a language pitch, not a platform pitch, and won't let anything get in the way of the message.

For example, in C# every object is a COM object, but there's no reason we can see from reading the spec that these couldn't be JavaBeans or other objects. But again, the authors are playing it straight and there's no deviance from the pitch. This is just a language, OK?

Lees de rest van het artikel bij The Register.

Moderatie-faq Wijzig weergave

Reacties (50)

De taal lijkt op eerdere pogingen, zoals bijvoorbeeld C@ als ik me dat goed herinner. Het is meer een concurrent voor java dan voor perl... Kwestie van de juiste tool voor de juiste opdracht.

Maar waar java platformonafhankelijk is, is dit natuurlijk een poging van windows om weer mensen aan zich te binden. C# zal dan ook alleen binnen de microsoft platforms werken.

Het lijkt wel een aardige taal te worden
Hmm, ik geef weer een andere taal niet zo heel veel kans van slagen, vooral als de standard (class)libraries niet strak gedefinieerd zijn (vele incompatible versies; bekijk de standaard C++ template library maar eens. Die is niet echt compatibel tussen compilers onderling.)

Verder: COM is een term die door Microsoft gebruikt wordt, maar in feite is het meer een 'afspraak' van hoe losse stukjes code met elkaar kunnen praten, en hoe je het versieprobleem oplost. Dit kan ook onder Linux: ik meen dat het freeware Crystal Space 3D engine een eigen COM implementatie gebruikt onder alles behalve Windows (waar native COM gebruikt wordt).

En onder Linux maakt de GNOME desktop ook gebruik van een soort COM, alleen wordt de communicatie daar geregeld via CORBA (Common Object Request Broker Architecture). Het resultaat is hetzelfde.
AAAAAARG

Als je op ENCARTA moet nakijken wat een 4GL is, moet je niet eens erover PRATEN, Mark Timmer.

4GL is een taal niveau dat vrijwel alleen wordt gebruikt om een taal aan te duiden die geen computer of programma specifieke zaken laat zien, bv de verschillende talen in pakketen als SAP.

VB, C++, C#, Java, en al die andere talen zijn 3GL.

OK, dat uit de weggeruimd hebbende, voeg ik alleen nog toe dat het totaal irrelevant is op welke godvegeten ranzo taal C# lijkt. En wel hierom: deze taal is speciaal gericht op het bouwen van COM objects voor .NET. Omdat het speciaal daarvoor bedoeld is, is de taal beter geschikt dan welke andere taal dan ook.

Dus who carez op welke taal het LIJKT. Ookal was het een 1:1 copy van Java, dan NOG is het interessanter, om de dood eenvoudige reden dat MS nu zelf de syntax kan bepalen en bv COM specifieke zaken er in kan stoppen, iets wat Sun te allen tijde zal voorkomen.

Dabit: elke taal die het makkelijker maakt dan C++ om COM objects te bouwen maar wel de C++ snelheid te houden, is een winnaar. Niet zeuren over dat COM maar iets flauwekullerigs is: nu al worden erg veel software componenten als COM objects aangeboden. Dit gaat de komende jaren alleen maar groter worden. Dat de UNIX wereld OF zelf een COM variant gebruikt OF corba achtige zaken implementeert is alleen maar nadelig voor hen. Er zijn op de wereld nu eenmaal vele en vele malen meer COM developers dan Unix developers.

Verder zou ik iedereen willen aanraden te gaan kijken op:
msdn.microsoft.com/vstudio/nextgen/technology/clangref.exe
en
msdn.microsoft.com/vstudio/nextgen/technology/introtoc.exe

2 worddocs die EN de syntax uitleggen en meer.
Dim: use the language that fits the job.

dat is wat menig iemand schijnt te vergeten. Het is niet een 'java vervanger', maar een taal waar veel mensen die wel com objects in C++ willen gaan maken maar dat te ingewikkeld vinden omwille van de vele macro's en dus maar naar VB grijpen maar dan weer tegen allerlei manko's aanlopen zoals apartment threading etc. op hebben zitten te wachten

Dat /. zeurt over deze taal is niet verwonderlijk. in de threads daar over C# was het 1 grote klaagzang hoe slecht deze taal wel niet was en dat het puur java was. Pak de eerste zin in deze posting (use the language...) en herhaal hem net zo lang totdat je snapt waar het over gaat.

Dan zet ik het nog eens op een rijtje:
1) JE HOEFT HET NIET TE GEBRUIKEN
2) JE HOEFT HET NIET TE GEBRUIKEN
3) JE HOEFT HET NIET TE GEBRUIKEN
4)...

volgens mij duidelijk.

en ach ja, dat veel dingen die MS heeft aangekondigt als 'vaporware' of 'crap' worden afgedaan... tuurlijk. C is nog altijd een leuke taal met veel kracht. Je kunt er alles in maken. Net als assembler. De PDP-11 was een prima computer, die heel wat nut heeft bewezen.

Waarom al dat nieuwe. toch? waarom toch aankondigen... wacht es... wat betekent dat eigenlijk... 'aankondigen'.... dat is toch hetzelfde als Linus vertelt dat de Kernel versie x.y klaar is toch?

Wanneer iets zn nut bewijst (COM, ring a bell?) heeft conservatief unixland ineens handen te kort om het te implementeren (kijk alleen al naar de vele COM varianten op unix, allemaal niet compatible met elkaar of met COM op win32.) Raar. De mensheid heeft meer voordeel bij het feit om eens positief te kijken naar wat er wordt bekokstoofd door bedrijven en dat te gebruiken en eventueel te extenden. MS spendeert per jaar meer dan 2 miljard$ aan research. Er werken echt niet allemaal dombo's. Vele ontwikkelingen die daarvandaan komen maar onbesuisd platurineren omdat, ja waarom eigenlijk?.... ph34r for the unknown? waarschijnlijk.

* 786562 Otis
Otis - Translator - Column :)

Hoewel ik het weet kan ik me voorstellen dat een hoop mensen zich afvragen wat de volgende dingen betekenen:

"klaagzang"
"bekokstoofd"
"onbesuisd platurineren"

Otis, zou je hier eens een licht op kunnen schijnen :)
Dim: Wat C# toevoegt? nou precies wat C toevoegd aan het programmeren wanneer je assembler gebruikt: gemak! nu is C# geen niveau hoger tov C, althans niet voor mij, maar het voegt wel gemak toe voor het werken aan COM objects wanneer je C++ speed wilt en dus C++ moet gebruiken voor het maken van die COM objects. C++ _IS_ dus voldoende, maar als je COM objects in C++ gaat maken, helpt de ATL je wel wat maar niet alles. vele macro's moet je leren, wat ik een zwak iets vind, immers ik wil TAAL specifieke dingen gebruiken , of een api, niet macro's. VB is een alternatief uiteraard, en velen zullen dat kiezen, echter VB heeft enkele nadelen, die ook met v7 niet worden opgelost.

Ik haalde linux erbij omdat jij /. erbij haalde met een quote. :)

Mindtwist: klaagzang en bekokstoofd staan gewoon in het woordenboek. Onbesuisd platurineren is Otiaans voor plat afzeiken! :)

KinkyClown: dat veel mensen zich afvragen OF het Java gaat vervangen is puur gebaseerd op het feit dat sommige mensen het syntactisch op Java vinden llijken. (net zoals Java syntactisch op C++ lijkt?). Maar verder lijkt het me een uit de lucht gegrepen opmerking, want... gaat C# op een JVM draaien, opdat het platform onafhankelijk wordt? neen. En juist DAT is het bestaansrecht van Java.
C# is m.n. bedacht voor COM objects. Niet alleen het gemak waarmee je ze kan maken - mee eens Otis (ATL in C++ helpt, maar blijft behelpen) - maar ook voorkomen van bugs & (hieraan gerelateerde) reductie van onderhoudskosten (zeer belangrijk). Door de aard van COM kan je nu eenmaal niet alles wat je binnen een proces kunt doen, en de aanpassingen die nodig zijn om het maken van COM objects 'natuurlijk' te maken brengen ook met zich mee dat de taal platform afhankelijk wordt. Maar het meest gebruikte platform is Win32 en COM is daarom belangrijk. Naarmate er meer en meer gebruik gemaakt gaat worden van COM objects wordt het ook steeds belangrijker dat deze goed geimplementeerd zijn. Het is bijzonder frustrerend als een applicatie crasht door een bug in een COM object dat door een ander ontwikkeld is.

</div><div class=b4>This is just a language, OK? </div><div class=b1>

Wat doe je dan als je de euvele moed hebt om met een nieuwe taal te komen? Zorgen dat het lijkt op een taal die door professionals gebruikt wordt zodat het niet te moeilijk te leren is, en ook incidenteel kan worden toegepast. Java lijkt op C/C++ en dat is ook niet toevallig.

Hoe was de reactie op Java? Grote euforie! Maar is Java wel zo bijzonder? Lijkt op C/C++ maar mist een aantal features, langzaam tenzij je het compileert etc. etc. Platform onafhankelijk? Zoals Kinstayer terecht opmerkt zijn er nogal wat mogelijkheden om dat te voorkomen (implementatie van de JVM).
Afgezien van de hype heeft het terecht een plaatsje gekregen in de toolbox van de (web-) programmeur.

ProX: je verdwaalt met name in libraries en helpfiles als je de API nodig hebt. Maakt niet uit in wat voor taal je dan programmeert met 1 uitzondering: een script taaltje met kleine, beperkte en voor toepassing specifieke API.

Jan Klaassen: dacht toch dat Perl, Delphi, VB onder 3GL vallen, net als C en C++. 4GL is bijvoorbeeld SQL of Prolog die echt een abstractieniveau hoger zijn. Scripting languages zijn talen waarmee je applicaties kunt aansturen en die geinterpreteerd worden door een engine die in de betreffende applicatie is ingebouwd (bijv. javascript). Perl is dus een scripting language, maar Delphi en VB zijn general purpose languages. En een script language kan 4GL zijn (SQL), maar ook 3GL (javascript).

Otis: denk om je hart.

Dim: er is niets leuker dan een taaltje bedenken en daar een compiler/interpreter voor bouwen. En er is ook altijd wel een reden te vinden om het te doen. Uiteindelijk zullen andere programmeurs uitmaken of je zinnig bezig bent geweest of niet. In principe kan je alles ook in FORTRAN of COBOL programmeren (yuch!) om maar eens twee talen te noemen die ik nog niet gezien heb :)

dabit: COM is een binaire standaard voor objects, en dus meer dan een afspraak van hoe losse stukjes code met elkaar kunnen praten. Het versieprobleem is 'opgelost' door inheritance niet te implementeren (aggregatie wel) en de implementatie los te koppelen van de declaratie door toe te staan dat 1 object meerdere gezichten (interfaces) kan hebben - als je methods toevoegt, voeg je een nieuwe interface toe zodat oudere programma's het nieuwe object kunnen gebruiken met de originele interface. De verschillen met objecten in C++ zijn groot genoeg om C# een kans van slagen te geven. De CORBA standaard heeft vergelijkbare doelstellingen, maar de binaire implementatie zit als ik me niet vergis veel dichter op objecten in C++.

Doggie & Jesse: C++ is een mooie taal, maar soms ook een nachtmerrie voor het managen van software projecten en dan is het niet meer de taal met de onbegrensde mogelijkheden (van programmeurs voor programmeurs) maar een pakhuis van ellende. Omdat alles kan, moet altijd afgebakend worden wat wel en niet wordt toegestaan. Je kunt in C++ (en ook in C) geen goede software produceren als er geen duidelijk eigen idioom met afspraken en beperkingen is gedefinieerd. Er zijn daarom nogal wat voorstanders van alternatieven waar alle 'gevaarlijke' mogelijkheden - zoals die enge pointers - uit zijn verwijderd. Het alternatief (en daar geloof ik eerlijk gezegd meer in) is goed opleiden. Programmeren is nu eenmaal een vak en vakman wordt je niet in een achternamiddag ongeacht het gereedschap dat je gebruikt. Maar ja, dat kost weer tijd en centjes...

Hm. Gigantisch verhaal weer. Sorry hoor, maar ik moest even.
Hmm.. ik vindt 't allemaal best, zolang 't maar een beetje op C++ lijkt (of php, perl of java) dan vindt ik alles best.

Een taaltje wat direct compiled naar de intermediate language.. jeuh!

- "Microsoft is fijn, Linux is fijner :)"</div><div class=b3>[Reaktie gewijzigd door cappie]<!-- end -->
</div><div class=b4>De stap voor mensen die al Visual Basic kennen naar een hogere programmeertaal zal dan makkelijker worden.</div><div class=b1>

C(++) is toch een lagere programmeertaal dan VB en niet een hogere?
Hoe "makkelijker" de taal is, hoe hoger toch?
Leuk. Men neme een programmeertaal en slope alle dingen die men niet zint er uit. Vervolgens implementeer je je eigen eigenwijze gebrabbel en noemt het een nieuwe programmeertaal. En zeg je dat het makkelijker te leren is. Leuk argument tegenover bedrijven, want minder tijd voor leren is meer tijd voor werken en dus goedkoper. MAW: Dit is weer een product wat je straks van hogerhand door je strot wordt geduwd....sounds familiar??
* 786562 Venator

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True