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

Microsoft publiceert C# en CLI sourcecode

Door , 34 reacties, bron: Microsoft

Microsoft heeft van een aantal delen van hun .NET platform de sourcecode gepubliceerd onder een zogenaamde 'shared source license', zo is te lezen in een persbericht van Microsoft. De software ontwikkelaar heeft de sourcecode gepubliceerd van de CLI (Common Language Interface) en een C# implementatie. De CLI is de basis van het .NET framework, en maakt het mogelijk om verschillende programmeertalen te gebruiken in één programma. De broncode is in principe voor iedereen vrij te downloaden, mits men zich aan de bijbehorende licentie houdt.

Microsoft heeft de code gereleased met als doel dat hij wordt gebruikt voor educatieve doeleinden, zoals onderzoeksprojecten. Het bedrijf hoopt dat, met name op universiteiten, nieuwe ideeën en technologiën worden ontwikkeld, gebaseerd op het .NET platform. Ook hoopt de softwarereus dat mogelijke bugs eerder worden ontdekt en opgelost. De 'shared source license', waar men zich aan dient te houden wanneer men de broncode wil gebruiken, houdt in dat de code uitsluitend voor educatieve- en onderzoeksdoeleinden mag worden gebruikt. Het is dus niet toegestaan de broncode voor commerciële projecten aan te wenden. De CLI broncode zoals die nu door Microsoft is gepubliceerd is te gebruiken onder FreeBSD en Windows XP en is te downloaden op Microsoft's MSDN site. Meer informatie over de reden en doelstellingen die Microsoft heeft met het releasen van de broncode is te vinden in een een artikel op Microsoft's site:

Microsoft.Net Demonstrating continuing commitment to academia, computer science research and the Shared Source Initiative, Microsoft Corp. today announced the availability of source code for its Shared Source CLI implementation. The Shared Source CLI source code implements the ECMA Common Language Infrastructure (CLI) and C# standards. It is available on the Microsoft® Windows® XP and FreeBSD operating systems. By delivering over 1 million lines of source code, the Shared Source CLI implementation will promote programming language innovation and XML Web services research.

[...] "The Shared Source license, while not ‘open source,’ is a bold experiment for Microsoft," said Tim O’Reilly, founder and president of O’Reilly & Associates Inc., one of the top computer book publishers in the world. "It enables the academic community to study the code and share its ideas (even if they can’t use it verbatim for commercial use). We need more experiments such as this to understand what’s science and what’s religion when it comes to the effectiveness of different types of software licensing in spurring innovation."

Met dank aan Ripley voor de tip.

Door Martin Sturm

Nieuwsposter

28-03-2002 • 11:32

34 Linkedin Google+

Bron: Microsoft

Reacties (34)

Wijzig sortering
Ook hoopt de softwarereus dat mogelijke bugs eerder worden ontdekt en opgelost.
Dit is uit de lucht gegrepen, de gereleasde sourcecode is niet bedoeld voor het debuggen van .NET's runtime zoals die is gereleased met visual studio.net en het framework. het is een implementatie van de door de ECMA gestandaardiseerde CLI en .net api, maar ook niet meer dan dat, en het heet dan ook anders: Rotor. Verder is Corel erbij betrokken (en kun je de implementatie ook bij Corel downloaden). Het geeft inzicht in hoe je EEN compiler voor C# zou kunnen maken, hoe EEN jit compiler zou kunnen werken, hoe EEN garbage collector zou kunnen functioneren binnen .net, hoe assemblies at runtime kunnen draaien binnen de CLI etc etc. Verder is voor unix developers de PAL interessant, het is een complete layer voor win32 development op Unix, en wordt gebruikt door de rotor CLI op freebsd.
Dit is uit de lucht gegrepen, de gereleasde sourcecode is niet bedoeld voor het debuggen van .NET's runtime zoals die is gereleased met visual studio.net en het framework. het is een implementatie van de door de ECMA gestandaardiseerde CLI en .net api, maar ook niet meer dan dat, en het heet dan ook anders: Rotor.
Dus eigenlijk is dit niets anders dan een bijzonder uitgebreide demo-applicatie die aangeeft hoe je het zou kunnen doen? Dan is die kreet 'MS geeft delen van .Net vrij onder een shared source licentie' ook wel een tikkeltje misleidend omdat iedereen die deze kreet hoort denkt aan de .Net implementatie zoals MS die verkoopt.

Mooi dat ze zaken openbaar maken en er is vast wel iets van te leren, maar ik heb het gevoel dat Microsoft toch een beetje het beeld wil creeeren dat ze ook meedoen aan het schenken van code aan de wereld, terwijl nu niet bepaald de code is die iedereen die .Net gebruikt krijgt geleverd als je .Net componenten koopt.
Heb op web wereld gelezen dat een aantal universiteiten ook de source code krijgen... kunnen die studenten gratis .NET tweaken en Microsoft met de eer strijken.
Wat zeur je nou. Iedereen zit altijd te zeiken dat Linux zoveel beter is, omdat de hele werled ermee kan klooien wat ie wil. Nu doet Microsoft het ook, maar ipv blij te zijn, zit je te zeiken dat Microsoft met de eer van anderen gaat strijken.

Dat doen RedHat en Suse (en al die anderen toch ook)
RedHat ed. doen dat inderdaad ook, maar die gaan niet met de eer strijken, want die hebben geen eigendom op de (meeste) code die ze schrijven. De code die ze aanpassen, zoals de Linux kernel, is namelijk vrijgegeven onder de zogenaamde GNU licentie

Verbeteren universiteiten bijvoorbeeld een groot stuk van .Net via deze "Shared Source" constructie, dan is *Microsoft* eigenaar van deze code!!
Dat is t m nou juist.. Linux is meer dan een OS. Het is een soort community van mensen die (althans voor persoonlijk gebruik) de software gewoon gratis voor de community schrijven. Voor het algemeen belang (en natuurlijk dat je als je ergens aan de slag wilt kunt zeggen van 'kijk, heb ik gemaakt').

In het geval van Microsoft is het niet voor de community, maar om de kas van een nu al van het geld (en advocaten :P) bulkende microsoft (nota bene het bedrijf dat van een grote hoeveelheid linux'ers het vertrouwen verloor door hun eerdere producten.

Een soort samenspannen met 'de vijand' en het kapitalisme.. nee dank je..

Voor de andere groep (vooral wel ms gebruikers) kun je dan misschien nog wel wat verwachten. Voor ms is dat dan ook een zeer handige situatie. Ze hoeven niemand te betalen, maar elke user die niet tevreden is met hun software zal toch weer wat voor hun kunnen maken. Mooi meegenomen..

Samen met de andere reden, namelijk het feit dat er nu kan worden geprocedeert tegen een port naar linux, is dit precies weer een voorbeeld van waardoor ms groot is geworden.. Niet door geweldige code, maar de marketing, het opdringen en vooral het genereren en ontwijken van rechtszaken. De producten die ze afleveren zijn allemaal best ok, maar het bedrijf microsoft vind ik echt het voorbeeld van kapitalisme en asociaal gedrag. Nu kun je wel zeggen dat elk bedrijf dat zou doen.. waarom? ze moeten wel vanwege de andere bedrijven met als aanvoerder...

ach laat maar.. t begint ook weer richting een flame te trekken en dat was niet de bedoeling van deze post.

NB het topic lijkt te suggereren dat de code van de taal C# wordt gereleased, niet dat de code van [..] in C# staat. Zou een betere titel niet zijn:

'Microsoft publiceert gedeeltes van .NET code'?
Maar dat is toch wat iedereen wil. Iedereen wil dat microsoft de code vrijgeeft, zodat de opensource guru's aan de code kunnen gaan klooien en zo het programma verbeteren.
Dat Microsoft met de eer gaat strijken is inderdaad waar en misschien wel niet helemaal juist. Maar als je het daar als programeur niet mee eens bent, sleutel je toch niet aan de bron-code
ik ben het met gooddaddy eens, als je niet wilt dat MS met de eer gaat strijken dan werk je er toch niet aan mee? Ik zie het probleem niet hoor.
Bij GNU zijn er ook regels, en als je het daar niet mee eens bent moet je er niet aan mee werken heel simpel.

Ik vind het juist goed dat MS dit doet, dan kunnen mensen met een andere kijk op de wereld eraan mee helpen en zo het verbeteren.
Microsoft heeft de code gereleased met als doel dat hij wordt gebruikt voor educatieve doeleinden, zoals onderzoeksprojecten. Het bedrijf hoopt dat, met name op universiteiten, nieuwe ideeën en technologiën worden ontwikkeld, gebaseerd op het .NET platform. Ook hoopt de softwarereus dat mogelijke bugs eerder worden ontdekt en opgelost.
De grote vraag blijft natuurlijk hoe lang de broncode vrij beschikbaar is. Wordt de broncode weer closed source zodra de meeste bugs er uit zijn, of blijft men dit open source model aanhouden.

* 786562 plok
Dit is helemaal geen open source model. Je mag alleen naar de broncode kijken, maar je mag niet zeggen van "ow gaaf, die ga ik zelf gebruiken". Dit is een van de vereisten om open source te zijn.

Een Linux port is daarom ondenkbaar, hoewel dat met een paar ingrepen gefixt kan zijn als FreeBSD ook werkt.
Is het mogelijk om zo zeg maar je eigen shell voor .NET te schrijven? Of is dit maar een deel van 't script? Anders kan je toch zelf een paar veranderingen/verbeteringen in .NET zetten? Dat je dan bijvoorbeeld complete dialogen kan gaan herschrijven, zodat je er meer in kan doen of zo.
natuurlijk, maar je hebt geen enkele mogelijkheid dit te distribueren en de eigenaar van de Shared Source licentie heeft alle eigendomsrechten op jouw implementatie.

verder wordt er gebruik gemaakt van een verantwoordelijkheids-clausule zoals in GNU-BSD-style licentie's, echter waar die in voorgenoemde licentie gekoppeld is aan het feit dat de code is opengegeven, blijft er achter Shared Source een eigendomsclaim.

Tevens is er het gevaar dat MS hiermee een Port van C# naar linux geheel onmogelijk maakt, immers zij dwingen ontwikkelaars zich te conformeren aan de restricties van de licentie (overigens is dat juist ook de reden van ms' problemen/aversie tegenover GNU/Linux)
Linux ontwikkelaars zijn bezig met een eigen .NET implementatie, Mono (www.go-mono.com).
Jah, en dan gaat MS zeggen dat de Mono-devvers de sources van de originele CLI bekeken hebben, en dan kunnen ze met geen mogelijkheid hard maken dat ze alles zelf geimplementeerd hebben zonder iets af te kijken van de originele sources. En dan krijgen ze een rechtszaak aan de broek, weg Mono, weg DotGNU......
Jah, en dan gaat MS zeggen dat de Mono-devvers de sources van de originele CLI bekeken hebben, en dan kunnen ze met geen mogelijkheid hard maken dat ze alles zelf geimplementeerd hebben
Zo'n vaart zal t niet lopen denk ik je mag best eens kijken in de MS source hoe ze iets aanpakken lijkt me. Het wordt anders als je een heel stuk code kopieert en plakt.
You may not use or distribute this Software or any derivative works in any form for commercial purposes.
Hieruit maak ik op dat je niet een commerciele .NET implementatie GEBASEERD op de vrijgegeven broncode mag maken. Dus wat ideeen overnemen mag best.
Kan M$ waarmaken dat die code écht gejat is?

daarnaast weet zo'n beetje iedere rechter in de wereld dat een GNU developer zich religieus aan de voorwaarden in een licentie houdt. Ook (of misschien juist) als die van M$ is.

en: je mag geen commercieele software maken volgens de licentie... sinds wanneer is GPL'ed software commercieel te noemen? Iedereen mag het gratis en voor nop hebben, je betaalt meestal alleen voor eventueele support of (als je ze echt nodig hebt) features waar je voor wilt betalen.
Even toch een opmerking:

Ik val hier van mijn stoel af van verbazing over deze stap!

Er zullen wel geen geniale dingen in de sourcecode zitten.

Toch erg goed van Microsoft. Blijkbaar zien ze ineens in dat zij niet de enigen zijn die belang bij computers hebben, en dat zij niet de enigen zijn die kunnen programmeren.

Anyway, in principe geven ze niets belangrijks vrij, aangezien alles al lang gestandaardiseerd is. Maar ze geven wel inzage in de manier waarop ze hun programma's schrijven. Als de code een beetje op de MFC libraries lijkt, dan is het wel een noodzakelijke stap om er op deze manier voor te zorgen dat bugs snel opgelost worden :).
Er zullen wel geen geniale dingen in de sourcecode zitten.

...

Anyway, in principe geven ze niets belangrijks vrij, aangezien alles al lang gestandaardiseerd is. Maar ze geven wel inzage in de manier waarop ze hun programma's schrijven
Weer een superprogrammeur die wel even gaat vertellen hoe het zit terwijl hij niet eens zelf een blik heeft geworpen op de code.

De commandline interpreter van de C# compiler is niet best, de JIT compiler is echter intens complex en uitgebreid. De implementatie is echt niet 1:1 af te leiden van de 'standaard', want die beschrijft geen internals van bv de C# compiler en de JIT. De JScript compiler is bv compleet in C# geschreven en gebruikt .net's api's voor codegeneratie (ook runtime generated code) en dat is best wel vernuftig gedaan. Wat ik gezien heb van de C# compiler source is dat de code waar het telt echt solide in elkaar zit en compleet met de hand is gemaakt (dus geen compiler generator), en erg uitgebreid is (dus je hebt het niet 1 2 3 doorgrond).

Even aan de kant afgeven dat het allemaal niet zoveel toevoegt is dus ge-zever van de gemiddelde tweakers.net bezoeker die wel gehoord heeft van 'dot net' maar verder geen enkele technische kennis heeft omtrent het ontwikkelen van dit soort complexe projecten.
Microsoft zal ook wel inzien dat wil het hele .NET gebeuren slagen op wereldwijde basis, ze de open source community (en andere) ook de mogelijkheid moeten geven hun eigen implementaties te maken, gezien de aanhoudende populariteitsstijging van andere besturingssystemen.

Deze code release zal zeker en vast een duwtje in de rug zijn voor andere geniale developers.
De CLI is toch wel een behoorlijk strategisch en belangrijk component.
Ondanks al het gezeur over monopoliposities e.d. vind ik wel dat microsoft goed op weg is. Door de CLI (en ook C#) code vrij te geven voor inzage (geen commercieel gebruik, zo "slim" zijn ze nog wel ;) ) kan de "hele wereld" meehelpen met het door-ontwikkelen van het .NET platform (waar de CLI een heel erg belangrijk onderdeel van is).

Ik ben echt enorm benieuwd hoe het .NET platform het gaat doen. Microsoft doet er alles aan om het tot een succes te laten worden! Ik denk dat ze door de source aan te melden bij de ECMA, ook bijvoorbeeld Java ontwikkelaars over de streep willen trekken. Daar staat Open / Shared Source meestal hoog in het vaandel.

edit:

RetepV, je hebt helemaal gelijk dat alles van .NET bij de ECMA ligt, foutje van mij.
(Ik moet geloof wat minder gaan zuipen :+ )
Sorry, maar alles van .NET is gestandaardiseerd bij de ECMA, dus de "hele wereld" helpt/werkt er al aan mee. Er wordt momenteel zelfs een Open Source versie van .NET gemaakt.

Het enige wat Microsoft heeft gedaan door de sourcecode vrij te geven is inzage geven in hoe zij hun software schrijven, en hopen ze op deze manier dat het Linux-effekt optreedt: dat een heleboel mensen met de sourcecode aan de gang gaan en op die manier heel snel de bugs eruit halen.

Ze zeggen letterlijk dat het geen Open Source is, je mag er dus niet mee aan de haal gaan en het ombouwen zodat je een eigen versie van .NET maakt.
Het is eigenlijk puur voor hun eigen gewin:
- ze hopen dat anderen de code verbeteren
- of iets nieuws bedenken
- of bugs oplossen

MAAR.... omdat zij de eigenaar van de code blijven (shared source licentie) krijgen zij dus alle nieuwe dingen/verbeteringen etc. Zij kunnen er dus alleen op vooruit gaan. Het lijkt dus een wel mooi verhaal, maar het is gewoon een manier van MS om goedkoop aan verbeteringen te komen.

Of zie ik dat nou verkeerd? Ik "proef" dit ten minste in het verhaal... <No flamebait intended>
Het lijkt dus een wel mooi verhaal, maar het is gewoon een manier van MS om goedkoop aan verbeteringen te komen.
Voor de meerderheid van de bezoekers van Tweakers geldt jou gedachte. Zodra deze meerderheid het woordje Microsoft zien in een posting, gaan ze bedenken hoe ze moeten reageren in die post om Microsoft zwart te maken en open source aan te prijzen (flame dus).

Echter, ik denk dat dit gezien moet worden als toereiking aan de open-source community, zodat ook zij de code van Microsoft kunnen zien, er misschien van kunnen leren en hun opmerkingen erover kenbaar kunnen maken.
Het is ook een toereiking aan de consument, omdat bugs er eerder uitgehaald zullen worden. Dat willen we toch allemaal, of niet.
Verder is het inderdaad een goedkope manier van Microsoft om aan verbeteringen te komen, maar dat is commercieel gezien dus gewoon heel slim
Het enige wat Microsoft heeft gedaan door de sourcecode vrij te geven is inzage geven in hoe zij hun software schrijven, en hopen ze op deze manier dat het Linux-effekt optreedt: dat een heleboel mensen met de sourcecode aan de gang gaan en op die manier heel snel de bugs eruit halen.
Ik denk dat MS de sources alleen maar vrijgegeven heeft zodat ontwikkelaars een beter begrip kunnen krijgen over de werking van de CLI, en zodoende betere software schrijven dan de brakke VB-code die je nu vaak tegenkomt (de schuld van de slecht gedocumenteerde API's), en vervolgens krijgt DotNET een veel betere naam dan de oude Windows-applicaties, en sterft de oude API een 'natuurlijke' dood en wordt DotNET the way to go.....

Een marketing-strategie dus.....
uhmm.. wat misschien niet helemaal duidelijk is bij deze nieuwsposting is:
There are significant differences in implementation between this code and the code for Microsoft's commercial CLR implementation
Dus het is hetzelfde als de een belangrijk deel van de .Net basis maar niet helemaal hetzelfde
Alsje ff tellen langer nadenkt, dan kan het ook bijna niet anders dan nu.
MS geeft de source vrij.
Pietje sleutelt er het e.e.a. en maakt er een nieuwe .NET van
Terwijl MS juiste ermee bezig is om een commercieel prodcut te maken.

Pietje gaat ook commercieel, en klaacht MS aan "Dat .NET van jullie lijkt wel verdomde veel op die van mij".

Ik ben geen progger, en weetoom geod niet wat er allemaal wel/niet in die source code zit, maar dit komt dus bij mij ter gedachte
Ook hoopt de softwarereus dat mogelijke bugs eerder worden ontdekt en opgelost.
Zonder te willen flamen: Dat is wel een hele makkelijke manier om je software te debuggen. Zet de source op het net en wacht tot men je komt vertellen wat je moet veranderen...

Bovendien, je maakt het natuurlijk ook veel makkelijker voor hackers, want het is zo dus ook mogelijk om sneller lekken te vinden.
Dat de tweakers.net newseditor dit roept betekent nog niet dat MS dat roept. Als je de MSDN pages goed leest staat er ook dat dit een beta release is van ROTOR, een implementatie van de ECMA standaard en dus niet een 1:1 copy van de commerciele implementatie zoals MS released onder de noemer '.net framework'.

verder is de open source gemeenschap GEBASEERD op het fenomeen dat anderen bugs vinden in de code die geopenbaard wordt. Is niks nieuws aan. En heb geen illusies: de code is dermate complex dat je echt wel wat tijd kwijt bent om uberhaupt de code te doorgronden en in die tijd hebben de originele Rotor programmeurs de meeste bugs er allang uitgehaald. (het wordt nl. nog steeds ontwikkeld intern)
Er is maar 1 iemand die hier beter van wordt en dat is MS niet dat zo'n ramp is want het is nu eenmaal een commercieel bedrijf.

En microsoft kennende zit er een license bij die je echt niets toestaat buiten lezen en commentaar naar MS sturen
+ de mensen die .Net gaan gebruiken, want ze hebben eerder een beter product...

Op dit item kan niet meer gereageerd worden.


Apple iPhone X Google Pixel 2 XL LG W7 Samsung Galaxy S9 Google Pixel 2 Far Cry 5 Microsoft Xbox One X Apple iPhone 8

© 1998 - 2017 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Hardware.Info de Persgroep Online Services B.V. Hosting door True

*