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 , , 43 reacties
Bron: ActiveWin

tigger zag op ActiveWin staan dat op de servers van Microsoft de eerste betaversie van Visual J#.NET is verschenen. Deze kan als een component van Visual Studio.NET beta 2 worden gebruikt en maakt het mogelijk om applicaties voor het .NET raamwerk te bakken door gebruik te maken van de syntax van Java. De programma's die op deze manier gemaakt worden zullen, in tegenstelling tot andere applets, niet werken op een virtual machine. Dat wil zeggen dat ze alleen kunnen draaien op systemen waarvoor de .NET runtime libraries beschikbaar zijn. Op die manier ontduikt Microsoft de strenge testprocedures die Sun heeft bedacht voor Java-compatible tools. Verder wordt er expliciet bij vermeld dat J#.NET op eigen houtje door Microsoft is ontwikkeld en niet wordt ondersteund of getest door Sun:

Visual Studio.NET Sun has tolerated Java clones, which avoid mention of the 'J' word, such as HP's Chai project. Microsoft too avoids the 'J' word, deploying instead new write once, run anywhere term, "java-language syntax" (note the attention to case, there) suggesting that Java is now so generic it doesn't need the approval of Sun. This tactic is entirely consistent with Redmond's browser-war era strategy of divorcing Java the language from Java the platform.

But it gives Sun the chance to respond with the jibe that Microsoft has two java-ish languages (J# and C#), neither of which is The Real Thing. Delphi lead Anders Heljsberg, hired from Borland to work on Visual J++, later co-authored the very Java-like C# language specification.

Lees meer bij The Register.

Moderatie-faq Wijzig weergave

Reacties (43)

Wat iedereen hier vergeet (of niet weet) is dat de CLR (Common Language Runtime) van .NET net zo cross-platform is als de JVM van Java. Bovendien is de CLR open source en onder beheer van ECMA. Er is op dit moment een CLR beschikbaar voor Windows en voor de Mac. Een versie voor Linux wordt ontwikkeld door Corel.

Daarnaast is het in .NET concept een stuk interessanter dat je zelf de taal kan kiezen om cross-platform code te genereren, je hoeft niet perse voor Java te kiezen maar kan bijv. C++, C#, Visual Basic, Cobol (jawel), Haskel etc. etc. en nu ook Java (J#) gebruiken. De code die je schrijft wordt geconverteerd naar IL (Intermediate Language) code die erg lijkt op de Java bytecode. De IL code draait vervolgens weer op de CLR, die de IL code daadwerkelijk compileert voor het onderliggende platform (i.t.t. tot de trage vertaalslag die de JVM doet).

Een Visual Studio .NET programmeur moet dus even leren naar classes te programmeren ipv. naar Windows specifieke DLL's maar het resultaat is wel dat je .NET code kan draaien op Windows, Linux, Mac, you name it!
Wat iedereen hier vergeet (of niet weet) is dat de CLR (Common Language Runtime) van .NET net zo cross-platform is als de JVM van Java

Is de CLR platform onafhankelijk? Voorlopig is er alleen nog maar een implementatie voor MS Windows en zelfs dat nog onder allerlei voorwaarden. Het Java Platform is nu al beschikbaar voor ontzettend veel platforms en is dus platform onafhankelijk. Het is nog maar de vraag of dit ook oor .NET te realiseren is.

De zogenaamde port naar FreeBSD verdient het label port niet. De Mono implementatie van Ximian moet nog maar zien te afwachten of ze erin slagen om de WinForms (Ja: WinForms ;) )goed te implementeren.

Ook voor de het Java Platform zijn trouwens behoorlijk wat talen beschikbaar. Java is echter wel veruit de hoofdtaal.

Ook Java bytecode wordt trouwens voor grote delen naar native code
gecompileerd.
Is de CLR platform onafhankelijk? Voorlopig is er alleen nog maar een implementatie voor MS Windows en zelfs dat nog onder allerlei voorwaarden
Ja de CLR van .NET is platform onafhankelijk. Implementaties op verschillende andere platformen (waaronder Linux en Mac) zijn in volle gang.
Als iets in volle gang is betekend dat voorlopig nog lang niet dat het goed werkt...

De Java AWT is zelfs niet erg prettig in platform onafhankelijk gebruik. Ik moet nog maar afwachten in hoeverre de andere .NET implementaties compatible zijn.

Iets is in mijn ogen pas platform-onafhankelijk als ik dezelfde applicaties ook op meerdere platformen zie draaien (en dan geen suffe demo's, maar real-life apps).
Maar wat gebeurd er met de stanard libraries?
En crossplatform zal .NET nooit worden, omdat er default een .EXE package wordt gemaakt.
Een aantal van de standaard libraries zullen wel geport worden naar Linux en Mac, maar dan met name de libraries die je nodig hebt om zogenaamde Windows Forms applicaties te bouwen (client applicaties dus). Wil je .NET server apps bouwen (of bijvoorbeeld web services) dan kun je er gif op in nemen dat je daarvoor naar Windows moet. Niet dat dat een probleem is voor me trouwens... horses on courses 8-)
Let op, in theorie heb je gelijk, de CLR kan ook draaien op Linux of Mac, maar dat was ook het geval met DCOM dat zogenaamd ook op UNIX zou draaien (Software AG had dat ontwikkeld dacht ik). Ik heb echter nooit iemand ontmoet die via DCOM NT en Unix met elkaar heeft laten praten. Stap niet te snel op de Linux.NET of de Mac.NET trein...
Hier een stuk van the register, waar ze ook gemerkt hebben dattie weer weg is + wat meer info:

http://www.theregister.co.uk/content/4/22088. html

Dit is ook erg interessant (review van snelle downloader + info over libs)

http://www.oreillynet.com/cs/weblog/view/wlg/ 748

Hier nog meer boeiende info over de libs en meer:

http://www.microsoft.com/india/indiadev/projects/dot net.htm

Conclusie:
- compatible met 1.1.4 - rmi - jni - applets
- class file converter
Wow, net de link van mbravenboer gelezen (www.microsoft.com/india/indiadev/projects/dot net.htm) waarin zeer interessante informatie staat.

Veel programmeurs hebben Java gekozen voor de platform onafhankelijkheid en de "modernheid" van de taal. Nu er modernere alternatieven zijn (C# en J#) en platform onafhankelijkheid ook niet meer voorbehouden is aan Java (je kan in .NET ook platformonafhankelijke code kloppen met VB.NET, C++, C#, Python, Pearl en nu ook Java etc.) vraag ik me af hoeveel mensen strikt blijven vasthouden aan Java... (of niet toch verleid worden om Java te gaan kloppen binnen een Visual Studio .NET omgeving)
Het Java Platform is voorlopig nog platform onafhankelijker dan .NET (meer Unix varianten, Linux , MS Windows en nog vele andere systemen waaronder veel kleine devices).

Zolang .NET applicatie zich nog niet bewezen hebben als werkelijk platform-onafhankelijk op de grootste platformen (unix, linux, ms windows) is de vergelijking met Java zinloos.

De Java 'omgeving' biedt echter niet alleen een goede taal, maar ook zeer veel extreem goede bibliotheken. Swing, JDBC, RMI, JAXP (zeer goede XML parsers, XML Schema support), XSLT, EJB, Corba, JAXB, JAXM (SOAP), Servlets, JSP, Java Webstart enzovoorts enzovoorts. Al deze stuff is pas echt goed geworden sinds het Java 2 Platform. De 1.1.4 editie (die gebruikt is voor J#) is meer dan antiek.
Verder biedt het Java Platform een security waat de .NET CLR (volgens mij) voorlopig nog niet tegenop kan. .NET is geen alternatief voor applets en Java Webstart. Ook biedt het Java Platform uitstekende mogelijkheden voor dynamic class loading.

De ontwikkelingen zijn zeker interessant, maar voorlopig moeten we denk ik niet te snel oordelen. Java technologie is nu beschikbaar. .NET technoglogie moet zich nog bewijzen.
't voordeel van java ten opzichte van andere talen is dat t platform onafhankelijk is doormiddel van de virtual machine.
Deze versie van java van MS is dat niet... wat houd je dan nog over :?
Het grote voordeel van een java-compiler voor .NET, is dat alle Java applicaties eenvoudig naar het .NET-platform geport kunnen worden. Dat betekend dat het voor Java-ontwikkelaars eenvoudig is om te zorgen dat hun software ook geschikt is voor systemen waarop geen Java VM draait, maar waarop wel Windows geinstalleerd is.

Uiteraard kan een gebruiker ook de Java VM installeren, maar de kans is aanwezig dat die in de toekomst niet meer standaard geinstalleerd wordt. Bovendien zou het misschien zo kunnen zijn dat .NET beter/efficiŽnter is dan de Java VM (die erg brak is).

Ik vraag me alleen af welke ontwikkelaar nog C# wil leren, als Java broncode ook naar .NET te compileren is en qua syntax erg op C# lijkt.
Voorlopig is dat nogal een droom. Er mag dan wel een compiler zijn die de Java taal naar .NET IL compileert, maar dat zegt absoluut niets over de mogelijkheid om Java code zomaar in .NET te kunnen draaien. Java code is uiteraard doorspekt met referentie naar de bibliotheken van het Java Platform. Deze zullen (en kunnen) niet beschikbaar zijn in de .NET CLR.

de Java VM (die erg brak is).

Allereerst is er geen 'de' Java VM en ten tweede is de meest gebruikte Java VM (de implementatie van Sun dus) absoluut niet brak.

Ik vraag me alleen af welke ontwikkelaar nog C# wil leren, als Java broncode ook naar .NET te compileren is en qua syntax erg op C# lijkt.

Das een interessante vraag :) .
Een ander voordeel van Java is ook de relatief 'schone' taal, tov C++ en VB.

Volgens mij was C# al het weerwoord op Java van Microsoft, ik snap ook niet goed waarom ze nu met J# (op het laatste moment ongeveer) komen. Immers, als je al een taal hebt die iedere javaman in een dag leert, waarom zou je dan een java syntax inbouwen.

Net zoiets als JScript in ASP, wie gebruikt dat nou? Dan kunnen ze beter hun energie in iets nuttigs steken of het allemaal een beetje goedkoper maken...
De programma's die op deze manier gemaakt worden zullen, in tegenstelling tot andere applets, niet werken op een virtual machine
Programma's gemaakt met J# zijn geen applets. Applets zijn in Java geschreven bytecodes die in een JVM van een browser draaien. Dus ook programma's ontwikkeld met een echte (Sun) Java ontwikkelomgeving die niet in een JVM in een browser draaien, ofwel gewone applicaties, zijn dus ook geen applets.
Eh, ze hoeven niet per se in de JVM van een browser te draaien... Je zou ook iets anders kunnen verzinnen... Maar verder heb je wel helemaal gelijk natuurlijk. Ik denk ook niet dat SUN het echt leuk vindt als er mensen applets op een hoop gooien met 'gewone' programma's :D
Ze leren het ook nooit bij M$. Eerst een complete ramp met hun eigen java cloon J++, die ook al geen VM had en nu weer dezelfde fout maken. Als ze nu gewoon die certificering halen bij Sun door compatibele code te maken dan wordt de wereld al een klein beetje beter.
Nee, dan doet Symantec het een stuk beter. Hun Java-compiler was niet eens in staat om een voor OOP nogal basale constructie als virtual inheritance te implementeren.

De Microsoft compilers/linkers waar ik ervaring mee heb (C/C++, assembly (MASM)) zijn trouwens uitstekend. Snel, efficient en hoewel er wel wat foutjes in zitten (of uit zijn gehaald) doen de resultaten niet onder voor andere compilers.
Microsoft en de wereld beter |:( het zal de dag des oordeels worden...

Over doemdenken gesproken, iedereen die denkt dat dit een succes wordt voor de gewone consument alsjeblieft handje omhoog. Weer een taal. Weer meer regeltjes en porting. Weer meer koppijn voor de sysops...
ach laat iedereen gewoon paralel programmeren in
een C/C++/CC++ das veel beter moet alleen nog wat op gevonden worden om het op meerdere platformen te laten werken maar dan zou je in principe ook een virtual machine voor kunnen gebruiken net zoals java dat doet. verder is c ook een veel krachtigere taal. je kunt er bijna alles mee nou dat zie ik java ook niet zo makkelijk nadoen.
Nou, C/C++/CC++ is ook niet perfect. Java is een superschone taal in tegenstelling tot C++. Java is van de grond af opgebouwd als object-georienteerd en is erg logisch en structureel als je het eenmaal kent. C++ heeft rommelige syntax en is niet erg consequent.
Java is inderdaad een superschone taal in tegenstelling tot C++. Maar C# is weer een evolutie boven Java in de traditionele Microsoft "embrace & extend" stijl. De C# code is nog efficienter (=minder) en je hoeft je als programmeur nog minder bezig te houden met "OS gerelateerde zaken" zoals Memory Management, Garbage Collection etc. Als je je erin verdiept is het net weer mooier en beter dan Java. Je zal alleen je geloof in de JVM aan de kant moeten zetten en programmeren voor de CLR en .NET class libraries.

Ik kan niet anders zeggen dan dat ik J# een meesterzet vind van Microsoft om de twijfelende Java programmeur over de streep te trekken. Microsoft grote troef is Visual Studio .NET, wat ik persoonlijk een ERG mooie development omgeving vind. Vooral door het feit dat je meerdere talen (ca. 17 geloof ik) door elkaar heen kan gebruiken die allemaal cross-platform code genereren, binnen 1 programma routines kan gebruiken die in een andere taal geschreven zijn en je hebt 1 geintegreerde debug omgeving. Java programmeurs zullen nu eerder geneigd zijn om VS.NET te installeren en eens te kijken hoe e.e.a. werkt. En Microsoft hoopt dat ze daarna niet meer terugstappen...
Java is inderdaad een superschone taal in tegenstelling tot C++. Maar C# is weer een evolutie boven Java in de traditionele Microsoft "embrace & extend" stijl. De C# code is nog efficienter (=minder) en je hoeft je als programmeur nog minder bezig te houden met "OS gerelateerde zaken" zoals Memory Management, Garbage Collection etc. Als je je erin verdiept is het net weer mooier en beter dan Java. Je zal alleen je geloof in de JVM aan de kant moeten zetten en programmeren voor de CLR en .NET class libraries.
(Disclaimer: ik heb weinig Java ervaring). Ik begrijp niet zo goed wat je bedoelt met die OS-gerelateerde zaken. Een van de dingen die je, dacht ik, in Java sowieso niet meer hoeft te doen is Garbage Collection. Voor Memory Management gedlt hetzelfde.

Voor wat betreft het overgaan van Java naar een .Net omgeving: ik denk dat niet veel bedrijven zo'n overstap makkelijk zullen maken. Java heeft heel erg veel ondersteuning voor enterprise applicaties. Op het moment dat je dat soort functionaliteit moet omschrijven van de ene naar de andere omgeving ben je wel even bezig. De vraag blijft voor mij dan ook welk voordeel hier aan vastzit.

Java is heel duidelijk een blijvertje en heeft bewezen bepaalde zaken goed tekunnen. .Net is erg nieuw en moet nog maar laten zien of ales inderdaad wel werkt zoals het op papier staat.
Wat we vergeten is dat het niet om de taal gaat, J# heeft dezelfde syntax als Java. C# had ook al bijna dezelfde syntax als Java. Waar het wel om gaat zijn de Java class libraries. Hoe beter je met de Java class libraries om kunt gaan, hoe beter je met Java om kunt gaan. Wil je als Java-programmeur overstappen op .NET begin dan maar eens met de indrukwekkende hoeveelheid .NET libraries, dat doe je niet in een dag, ook niet in een week.

Tot slot: J# zal net zo snel weer verdwijnen als dat het nu wordt gelanceerd, puur politiek van Microsoft om de overstap van Java naar .NET schijnbaar kleiner te maken, onzin dus. Als Microsoft addict ben je absoluut het beste af met de rijkere taal C#.
C# was toch bedoeld als alternatief voor Java, maar dan op het .NET platform? Dat MS nou met J# komt kan m.i. alleen maar betekenen dat C# dus niet aangeslagen is.

Misschien weet ik niet genoeg van .NET maar ik snap niet waarom een Java programmeur nu opeens in J# zou gaan programmeren. Java is toch al platform onafhankelijk? Meer nog dan .NET lijkt mij.

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