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

Eerste beta van open source .NET-implementatie Mono

Novell heeft de eerste betaversie van het open-sourceproject Mono uitgebracht. Mono is een project waarbij geprobeerd wordt het .NET-platform te porten naar Linux en Unix-based besturingssystemen. De port is opgezet door softwarebedrijf Ximian, dat vorig jaar overgenomen werd door Novell. Sindsdien is het werk niet blijven liggen, maar werd het project onder de hoede van Novell verder gezet. Met Mono moet het voor software-ontwikkelaars mogelijk worden één applicatie te schrijven die op zowel Windows als Linux en Unix-platformen werkt, een belangrijk voordeel aangezien veel bedrijven verschillende systemen draaiend hebben. Microsoft zelf voorziet immers enkel in een framework voor Windows. Met behulp van de vrijgegeven specificaties van .NET wil Mono de andere platformen voor zijn rekening nemen. Deze eerste testversie werd oorspronkelijk eind 2003 verwacht maar moest uitgesteld worden. Als alles verder volgens planning gaat hoopt Novell een tweede betaversie klaar te hebben begin juni, om eind juni met een eerste stabiele versie te komen.

Mono logo

Door Yoeri Lauwers

Eindredacteur

07-05-2004 • 13:10

62 Linkedin Google+

Bron: C|Net

Reacties (62)

Wijzig sortering
Ik vraag me af wat MS hier mee gaat doen? Ze kunnen alles en iedereen weer voor de rechter gaan slepen. Dat is het verleden van MS kennende wel gebruikelijk.

Wat mij slimmer lijkt is om het juist te gaan supporten. Dat hoeft niet verder te gaan dan je specs volledig open te maken.

Het wordt voor ontwikkelaars aantrekkelijker als de totale markt waarvoor ze ontwikkelen groter is. Op deze manier trek je Linux (en mac?) daar ook bij. MS heeft een goede reputatie bij ontwikkelaars dus als ze al hun marketing gewicht er in gooien dan komt het een flink eind. Daardoor kunnen ze namelijk wel elk ander cross-platform GUI gericht systeem de kop mee indrukken (lees: java). Dat is ook wel typisch MS.
Ik denk niet dat Microsoft er iets tegen gaat of wil doen. Ze hebben niet voor niets de specificaties vrijgegeven.
Microsoft wil met .NET bereiken dat zo ongeveer alles met elkaar kan communiceren. Weet men dit op Linux over te zetten dan is dat alleen maar gunstig voor Microsoft. Hoe populairder de .NET standaard wordt, hoe beter voor Microsoft, aangezien ze altijd een stapje voor zullen zijn op Linux. Mono zal altijd achter de feiten aanlopen aangezien het Microsoft is die de boel bepaald, maar tegelijkertijd zal Mono .NET helpen populair te worden op verschillende systemen. Het is zeg maar een win, win situatie.
Ik vraag me af wat MS hier mee gaat doen? Ze kunnen alles en iedereen weer voor de rechter gaan slepen. Dat is het verleden van MS kennende wel gebruikelijk.

Dat kunnen ze niet, zodra ze namelijk die rechtzaak winnen en .NET alleen geschikt is voor MS OS-en, dan maken ze misbruik van hun monopolie, en mogen ze waarschijnlijk .NET niet meer meeleveren en een schadeclaim gaan betalen. Dan zijn ze verder van huis, en weer een boel tegenstanders rijker.
Ok iets genuanceerder:
MS heeft een ruime ervaring in het omgaan met onwikkelaars. Ze hebben eerder een aantal succesvolle ontwikkel omgevingen op de markt gezet, dus daarover hoor je weinig accuut sceptische reacties.

Visual C++ is toch een veel gebruikt product, en DirectX kan je toch ook wel geslaagd noemen.
JetBRAINS IntelliJ IDEA, CodeGuide, etc zijn toch veel gebruikte producten, en OpenGL kan je toch ook wel geslaagd noemen.
Ik lees bijna alleen maar onzin hier }:O

1) JAVA is niet meer traag, dit was vroeger zo. Tegenwoordig is er embedded JAVA en heb je toevallig wel eens de 3D desktop volledig JAVA gerendered gezien (Project looking glass)? Kom dan nog eens aan dat JAVA traag is.

2) Alhoewel JAVA nog steeds geinterpreteerd wordt, doet C# het niet veel anders. Alle talen worden eerst naar MSIL (MS Intermediate Language) vertaald en vervolgens door de JIT (Just in Time) compiler gecompileerd. Dit is praktisch hetzelfde als in JAVA, alleen heeft MS er nog een managed/unmanaged omgeving bijgebouwd.

3) Een krachtige .NET mogelijkheid is om de System.InteropServices te gebruiken. Dit houdt in dat je bestaande C, C++ en VB applicaties kunt integreren met managed .NET applicaties. Dat is op dit moment een major issue om over te stappen op .NET, omdat niet al het werk van de afgelopen 20 jaar wegggegooid hoeft te worden. Zelfs COM zooi kun je hergebruiken binnen .NET.

Mocht het MONO project slagen in de omzetting van de InteropServices namespace, dan voorzie ik een grote toekomst voor .NET op alle platformen. Zo niet dan blijven we met een "light" versie van .NET op andere systemen zitten en wordt het hoofddoel, compatibiliteit tussen beide systemen creeeren niet volledig gehaald.
Wat curry zegt is al absoluut waar (behalve misschien dat "niet vooruit te branden", java 1.4.x doet niet zo opvallend veel onder voor de sandbox van .NET), maar wat belangrijker is, is dat je voor Java afhankelijk bent van Sun en naar welke platforms zij hun JVM porten. Ja, je kunt ook zelf een JVM schrijven, maar als je nu toch al Mono hebt (wat op meerdere platforms compiled, C, isn't it lovely) ligt het natuurlijk voor de hand je bij de monopolie-volgende massa aan te sluiten.

Vaak had de wereld er beter uit kunnen zien als we met z'n allen zus of zo hadden gedaan, maar zolang Microsoft marktleider blijft, kun je maar beter zorgen dat je omgeving conformeerd, dan dat je zuiver puristisch en ideologisch alle overeenkomst uit de weg gaat.
zolang Microsoft marktleider blijft, kun je maar beter zorgen dat je omgeving conformeerd
Je moet eens in de 'echte wereld' gaan kijken wat er allemaal in Java draait (Vooral server-side), MS gaat er een flinke klus aan hebben om Java op de server voorbij te streven.
Ja en in Auto's draaien meer Linux derivaten dan Windows CE distribs, maar ik denk ook niet dat dat de hoofdzakelijke doelmarkt is. Volgens mij gaat het voor Mono vooral om desktop applicatie portability.

Op Servers kan Java het bijvoorbeeld nog niet winnen van native-code, maar betekend dat dan dat Java volkomen kansloos, danwel zinloos is?
jaja, Java is zwaar inferieur. Daarom heeft MS zo'n beetje alles ervan gejat om vervolgens in C# te stoppen.

Eerlijk is eerlijk... Java zuigt echt als het om het bouwen van GUI-/client-applicaties gaat. Maar voor web-apps is Java echt beter.
Dan moet je die luitjes de keuze geven, change skill set or move..

het maakt niet uit of je nu graag in c# , java of whatever programeert, het gaat erom dat applicaties interopereerbaar zijn, portable en makkelijk aan te passen. .net legt een basis hiervoor en mono wil platform onafhankelijk hiermee verder gaan.
Goh wat grappig, helaas is Java een proprietary techniek waarbij je vast zit aan een inferieure taal waarvan op geen platform een implementatie is die enigszins vooruit te branden is.
Het enige waar Java niet snel in is is floating-point berekeningen, en dat komt omdat het op een platform onafhankelijke manier moet gebeuren. Voor de rest is 't net zo snel zo niet sneller (ivm runtime optimalisatie) als native code.
Bij .NET kun je 21 (of wellicht ondertussen al meer) talen kiezen afhankelijk van je benodigdheden, achtergrond en kennisniveau, en heb je zelfs J# mocht je om de een of andere reden Java echt een mooie taal vinden.
Voor Java zijn er een stuk of 189
http://grunge.cs.tu-berlin.de/~tolk/vmlanguages.html
Als jij een development team onder je hoede krijgt met 2 VB devvers, 1 Java developer, 3 COBOL-experts en 2 C++-goeroe's weet ik wel dat je je project in .NET in de helft van de tijd werkend afhebt dan dat je met Java een half-operationeel prototype kunt afleveren.
Ja, en 25 % v/d code in VB, 12,5 % in J# , 37,5 % in COBOL en 25% in C# , dat gaat ff lekker onderhoudbare code opleveren, om 't nog maar niet te hebben over QA.
(...) programmeurs die geen java kunnen (...)
Ik weet niet wat jij onder programmeur verstaat, maar blijkbaar iets anders dan ik.

Een programmeur is iemand die kan programmeren, in welke taal hij dit doet is verder triviaal, een beetje programmeur kan zich elke taal vrij snel eigen maken (alhoewel het wel een tijdje zal duren voordat ie alle in's en out's kent), het is alleen een kwestie van andere syntax en api's aanleren.
En dat is dus onwaar, de syntax leer je misschien 'even' als je het over C-verwanten hebt. Maar dat geld niet voor het weten van de ins en outs van een API, zoals iemand anders al zei.

Veel dingen zoals string manipulatie etc. zullen niet veel anders zijn maar als ik me goed herinner hebben Java en C# (EDIT: .NET dus, niet C# :+) een verschillende kijk op threads, om maar een voorbeeld te geven.
Wat in java gemaakt wordt moet bij het draaien alsnog geïnterpreteerd worden door de virtuele machine (Java Runtime). (Daardoor is het zo langzaam, zoals Countess zei)

Wat de heren van Mono willen is een programma dat rechtstreeks kan draaien op Linux/Unix zonder tussenkomst van virtuele machines zoals Java.

En als je een windows programma, zonder meer kunt compileren onder Mono vind ik het heel knap dat ze zover gekomen zijn
Je had ook nog een project dat dotGNU heette, maar dat is totaal onbekend bij de grote (linux) massa. Wie weet hier meer over?
Projectpagina
Op zich doet mono het aardig op dit moment, alleen bij soap serialization van object graphs met cyclic references gaat het mis in mn testprogramma. Ach, het is beta 1 :).

De compiler is verder in de windows install weggestopt achter een bash script dat niet werkt wanneer je geen bash voor windows hebt geinstalleerd, beetje raar. De compiler werkt op zich wel goed, hij heeft alleen nog steeds moeite met dit:

public interface IFoo
{
// other definitions

int GetHashCode();
}

en dan implementeer je dat in je class Foo.

Daarna gebruik je de interface IFoo om een Foo instance te benaderen en GetHashCode aan te roepen:

IFoo myFoo = GetMyFoo(); // returned IFoo instance
int hash = myFoo.GetHashCode();

De laatste regel compileert niet in mono, wel in csc, omdat GetHashCode ook in object zit. Naja casten naar (Foo) werkt wel. Toch een beetje raar dat de csc compiler het wel slikt.

Op dit item kan niet meer gereageerd worden.


Apple iPhone XS Red Dead Redemption 2 LG W7 Google Pixel 3 XL OnePlus 6T FIFA 19 Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank en Intermediair de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2018 Hosting door True