Microsoft onthult de uiteindelijke Visual J#.Net

Microsoft heeft op zijn Tech Ed 2002 conferentie de final van Visual J#.Net gepresenteerd, meldt C|Net. Dit is een ontwikkeltool die programmeurs in staat stelt software te maken in de taal Java. De ontwikkelde software werkt echter alleen met Microsoft's .Net technologie; het ontwikkelen van standalone Java software is niet mogelijk.

Klanten van Microsoft die al eerder Visual Studio.Net hebben gekocht, kunnen de final gratis downloaden bij Microsoft. Visual J#.Net zal binnen enkele weken ook toegevoegd worden aan de retailversies van Visual Studio.Net. Dit pakket, dat in februari werd uitgebracht, is een verzameling programmeertools die Visual Basic, C++ en C# omvat. De final is verbeterd ten opzichte van de vorige versies. Zo is er betere documentatie en meer voorbeeldcode beschikbaar. Ook stelt Microsoft tools beschikbaar om de voorganger Visual J++ te gebruiken binnen de Visual Studio.Net omgeving. Microsoft heeft vertrouwen in het succes van de nieuwe tool:

Microsoft.NET If you write apps using the Java language irrespective of any platform, we will have 15 to 20 percent of the market," said Tony Goodhew, product manager for Microsoft's developer division.

Door Andries Mooij

Nieuwsposter

02-07-2002 • 16:45

35

Bron: C|Net News.com

Reacties (35)

35
35
33
11
1
0
Wijzig sortering
Ik snap alleen niet helemaal waarom je in Java gaat programmeren terwijl het maar zeker weten op 1 platform draait.

De kracht van Java lijkt mij juist dat de code zeer gemakkelijk te compilen is voor vrijwel elk ander platform, zodat het overal werkt (tenzij je niet kan programmeren en platformafhankelijkheden in je software plaatst). Volgens mij schiet deze tool het doel van Java een beetje voorbij....

Op zich kan dit alleen maar bedoeld zijn voor programmeurs die een beetje progjes in elkaar willen slepen, het meeste verstand van Java hebben i.o.v. andere prog-talen en het niets kan schelen dat hun code niet portable is.

* 786562 standeman
Anoniem: 32081 @Standeman2 juli 2002 20:12
Ik snap alleen niet helemaal waarom je in Java gaat programmeren terwijl het maar zeker weten op 1 platform draait
Het is ook geen must om software te ontwikkelen in Java die op andere platforms moet draaien. Sterker nog, de meerderheid van alle software die tot op de dag van vandaag in Java is geschreven heeft nog nooit op een ander platform als het ontwikkelplatform gedraaid. Het was een aardig 'marketing praatje' van Sun dat dit kon, maar de praktijk laat zien dat het vaak toch vrij lastig is om de 'compile once, run everywhere' filosofie te garanderen. Vandaar dat je in de Java newsgroups vaak de slogan 'compile once, debug everywhere' tegenkomt. Vooral als je een volwaardige applicatie gaat maken, kom je dit probleem al snel tegen.
Ik weet niet precies waar je je verhaal op basseert maar het werkt wel degelijk.
Compile once run everywhere.
Ik heb toch wel degelijk java apps geschreven onder AIX en ze werken zowel onder linux als winows.
Het probleem duikt echter al snel op als je Microsoft java gaat gebruiken dit is nl alleen geschikt voor windows.
Het probleem dat je schetst ligt dus niet zozeer bij SUN als wel bij Microsoft.
Zij geven n.l. weer een eigen draai aan java waardoor er shitloads aan apps niet goed of niet werken op andere operating systems.
Ik geef grootkop helemaal gelijk. Veel van onze software wordt onder windows ontwikkeld en onder linux in productie gezet.
De enige keer dat we problemen ontstaan wanneer 1 of andere sufkop bijvoorbeeld "\" i.p.v. File.separator gebruikt!! Tja.. dan vraag je gewoon om problemen en ben je niet slim aan het proggen. Als je een beetje oplet kan je makkelijk voor elk OS dezelfde code gebruiken.
Platformafhankelijke code in Java? Dan moet je wel erg je best doen, ben ik zelf nog nooit tegengekomen.

En .Net draait niet maar op 1 platform. Er is een linux-versie van het .net framework in de maak. MS heeft .Net zo opgezet dat elke taal gebruikt kan worden, maar ook elk OS omdat de intermediate language (waar alle verschillende talen naar 'vertaald' worden) volgens een openbare specificatie werkt.

Het .Net verhaal is niet typisch microsoft. Er wordt veel meer met open standaarden gewerkt en ze laten nog veel open. MS weet ook zelf nog niet precies hoe .Net winstgevend gaat worden.
Anoniem: 55933 @machiel3 juli 2002 23:22
Het is natuurlijk niet helemaal platformonafhankelijk (draait alleen op OS'es die Java ondersteunen, maar dat zijn er volgens mij zat), maar over het algemeen zijn de aanpassingen die nodig zijn echt minimaal. De versie van Sun is het meest portable, want ik heb idd nog geen programma dat in MS Java is geschreven zien draaien op MacOS en Linux etc.
Nee duh, MS Java heeft ook Microsoft Foundation Classes en wordt naar geoptimaliseerde Windows bytecode gecompiled (daarom was de MS VM ook vele malen sneller).
Veel mensen vergelijken JAVA en .NET op gebieden waar dat niet helemaal kan, maar op het ene gebied waar ze het meest gelijk zijn, namelijk de totale platformonafhankelijkheid, trekt .NET continu aan het kortste eind. Zoals hier al terecht wordt opgemerkt door machiel; Microsoft heeft de specificaties voor de runtime, de foundation classes en het common type system aan de ECMA gegeven (C# trouwens ook, maar dat is een taal die het platform target, niet het .NET platform zelf). Het staat eenieder letterlijk vrij deze specificaties te downloaden, want voor ECMA standaarden hoef je geen geld te betalen. Eenieder mag vervolgens ook een eigen implementatie maken en zolang dit conform de specificatie gebeurd mag deze implementatie ook de naam .NET dragen. Pas als er dingen worden veranderd mag het geen .NET meer heten... Niet zo heel verschillend van SUNs licentie voor JAVA dus, het verschil is alleen dat de specificatie voor JAVA bij SUN ligt en dat de specificaties voor .NET worden beheerd door een onafhankelijke organisatie.
Het enige dat Microsoft "verweten" kan worden is dat ze niet zelf de runtimes schrijft voor ieder OS. Naja, helemaal vreemd is dat natuurlijk ook niet, als SUN had gekund had ze vast ook alleen een JAVA runtime voor Solaris gemaakt :)
Anoniem: 25979 @Standeman2 juli 2002 19:30
op deze manier haal je nieuwsgierige Java-programmeurs over naar het .Net platform omdat ze gewoon in Java kunnen programmeren en na verloop van tijd zich ook weer meer gaan interesseren voor andere .Net talen. Alle beetjes helpen denkt Microsoft.
Dit is natuurlijk geen nieuwe opmerking, maar het moet toch gezegt worden. Waarom zou iemand dit willen gebruiken? Als je een MS only programma wil maken gebruik je toch geen Java? Welk soort mensen gaat dit gebruiken?

[no troll intended]
.oisyn Moderator Devschuur® @Invalid2 juli 2002 17:27
lijkt me duidelijk: mensen die een windows app willen maken en meer ervaring hebben met java dan met C#

wat ik me trouwens afvraag is hoeveel van de originele Java API blijft bestaan in J#... lijkt me dat je, net als in de andere .NET talen, gewoon gebruik maakt van de .NET api. Dus dan zou de enige overeenkomst tussen J# en Java de syntax zijn. Wazig...
Anoniem: 48941 @Invalid2 juli 2002 19:16
De enige reden dat M$ dit uitbrengt is om developers die al java code hebben (of er nog wat aan willen sleutelen) tot .net en C# te bekeren.
Tis onzin, want de syntax van een taal leren is relatief eenvoudig. Het is juist het doeltreffend leren gebruiken van de API en alle andere 'randverschijnselen' bij een taal die het moeilijk maken om een bepaalde taal goed te leren. Daar komt nog eens bij dat C#'s syntax voor twee druppels water lijkt op die van Java, die weer heel erg sterk lijkt op die van C++, die weer heel erg sterk lijkt op die van C...

Ik denk dat er een fout in het artikel zit...Het nut van een Java waarin alleen de .Net architectuur wordt ondersteund ontgaat me zo totaal, dat ik me gewoon niet kan voorstellen dat het totaal onmogelijk is om een standalone Java (J#) applicatie te maken die ook op andere platforms draait...
Anoniem: 14829 @OddesE3 juli 2002 20:59
Tis onzin, want de syntax van een taal leren is relatief eenvoudig.
Natuurlijk is het leren van een taal nogal eenvoudig voor een ervaren programmeur (zolang die taal maar geen APL is :)), maar daar gaat 't niet om.
Het omzetten van bestaande server side java code naar .net kan een stuk sneller in J# dan in C#, omdat de syntax gelijk is.

Het gaat er niet om om programmeurs over te krijgen naar .net, maar bedrijven. En J# vergemakkelijkt dan het migratiepad, waarmee die drempel verlaagd kan worden.

Vergeet niet, de alternatieven voor .net (BEA, WebSphere, etc.) zijn voor bedrijven zeker zo duur als .net, zo niet stukken duurder. Dan gaan de kosten en tijdsduur van migratie een woordje meespelen, en dan kan iets als J# de beslissing doen doorslaan in MS' voordeel.
Anoniem: 8510 2 juli 2002 16:54
Eindelijk is Java gestandaardiseerd. Dat kun je niet zeggen van Sun z'n Java variant wat wel breed gebruikt wordt, maar geen standaard is. Sun heeft de standaard teruggetrokken omdat ze anders hun eigendomsrechten kwijt waren.
.oisyn Moderator Devschuur® @Anoniem: 85102 juli 2002 17:16
Het heet niet voor niets J# (en de vorige J++), omdat ze de naam Java niet mogen dragen van Sun

De reden hiertoe is dat MS java niet implementeert zoals Sun dat voorschrijft
Het lijkt me dat het juist minder gestandaardiseerd is geworden met weer een nieuwe "interpretatie" van de taal, dit keer van MS ;)
Er zwerven zoveel verschillende Java versies van zoveel verschillende producenten rond, dat je zo langzamerhand door de bomen het bos niet meer ziet... (8>
Hmmm, ik ken maar 1 Java en dat is de Java van Sun. J# is overduidelijk een plot van MS (een van de vele) om alles over te nemen. Ja dit is een troll, maar ik vind het wel erg smerig als je van een taal als een van z'n uitgangspunten heeft cross-platform te zijn je een platform specifieke implementatie maakt.
Anoniem: 8510 @Invalid2 juli 2002 19:43
.NET is niet platform specifiek, maar platform onafhankelijk.
Wie zegt dat Java nu gestandaardiseerd is :?
Dit vind sun niet leuk, dat gaat weer stennis worden in de recht zaal.
Anoniem: 27537 @jesse2823 juli 2002 09:51
Dan moet SUN de licentie maar aanpassen. Microsoft doet dit keer alles binnen de licentie: gebruikt de grammatica en de syntax, maar omdat het veranderd is heet het geen JAVA meer maar J#. Dat is precies wat SUN toestaat en is precies wat SUN Microsoft nadrukkelijk heeft toegestaan na de rechtszaak vanwege Microsofts eerdere verbeteringen aan JAVA (de Microsoft Foundation Classes). Daar rolde uit dat J++ een gewone legale extensie op JAVA was, dus waarom niels99 nou weer een overbodig krijgt????
Sun schijnt een botje te hebben lopen op tweakers.net, zodra de woorden java+MS+nieuw in een bericht voorkomen wordt de advocaat gemailt :)
visual j++ .. geen probleem... J# ineens wel? lijkt me niet vriend :)
Huh? Ze wilden toch met java concurreren door C#?

Kan je met visual studio .net eigenlijk helemaal niet iets programmeren zonder dat je .net framework nodig bent??
Dat klopt je hebt altijd de runtime van 20 MB nodig voor je .NET programma's.
Ze willen volgens mij de stap voor programmeurs kleiner maken om over te stappen naar .Net .

En nu is het mogelijk om een groep Java programmeurs te laten samen werken met VB programmeurs dmv van de .Net Framework.

Bedrijven kunnen kennis groepen dus uit elkaar halen en combineren, waardoor het personeel makkelijker en sneller inzetbaar is.
Ja hoor, er zit ook nog gewoon Visual C++ 7 bij, en daarmee kan je "ouderwetse" lean-and-mean applicaties maken. :)
Anoniem: 6401 2 juli 2002 22:26
Inderdaad: dit is alleen maar marketing. De API van .NET is compleet anders als die van Java, dus je kunt NOOIT je code zo met javac compilen en vervolgens ook met .NET. Tis alleen maar de syntax. Ze hebben wel een tool die de boel converteert als het goed is, maar dat kan nooit echt goed werken volgens mij.

-Off-Topic-
Weet iemand hoe snel .NET is?? In vergelijking met echte C of Java? En dan niet alleen compileersnelheid, maar vooral ook tijdens gebruik...
Weet iemand hoe snel .NET is?? In vergelijking met echte C of Java? En dan niet alleen compileersnelheid, maar vooral ook tijdens gebruik...
Ik ben er nog niet zo lang bezig met C# (eigenlijk alleen nog maar mee aan het testen), maar mijn eerste indruk:

* Bij niet-visuele dingen (doorrekenen, business logic, etc.) is het vergelijkbaar met java (SUN JDK 1.3.1). Delphi en VC++ 6 blijven een stuk sneller.

* Bij visuele dingen (GUI) is het meer te vergelijken met VB, en blijft java een stuk achter (logisch, want C# -en alle .net talen- kan rechtstreeks beschikken over de Windows API). Delphi voelt hier nog steeds wat sneller aan, en van VC weet ik 't niet (ik heb nog nooit wat visueels in VC gedaan :)).

* Bij web services: Ik ben stukje bij beetje een Delphi COM dll aan het omzetten naar een SOAP web service, en eerlijk gezegd valt me de performance van die web service tot nu toe nogal tegen. Dat ligt waarschijnlijk voor een groot deel aan mij (C# schrijven is 1, optimale C# code produceren is een tweede), maar ook aan de SOAP overhead en aan het feit dat IIS die web service blijkbaar iedere keer opnieuw in moet laden.
Die COM dll blijft bij standaard IIS instellingen ongeveer een kwartier in memory, met behoud van z'n connectie met de database, en het lijkt erop dat de web service iedere keer opnieuw moet inloggen op de database (en bij MSSQL kost dat nogal wat tijd).
Maar hier hou ik even een slag om de arm, want het kan (hopelijk) best zijn dat ik iets fout doe...
Dat kan dus wel, code die je ook met javac (of jvc) kon compiler nu met VS7 compiler naar het .NET platform.
Visual J# bevat juist alle JDK 1.1.4 libraries. Een vector tekenprogramma in java (jdk 1.1.4) waar ik aan mee gewerkt heb kon bijna zo gecompiled worden. Het enige probleem was het gebruik van al gecompileerde classes (XML libs), die heb er dus ff uitgecomment.

Overigens als reactie op bovenstaande, Java is zeker niet compile once, run everywhere. Ok, het runt wel maar zeker niet hetzelfde. Onze vector app hebben we getest onder Mac OS 9, Mac OS X (totaal andere java implementatie), Windows NT SUN VM, Windows NT MS VM, Linux, Solaris 5.7 en Irix. Developpen gebeurde parallel op zowel Mac OS X, Win NT en Linux.
Resultaat: Op echt elk systeem waren er wel dingen die op een of andere manier anders werkte. Redraws die anders gingen (zodat ene platform flikkerde en andere niet), Panels die resizede omdat events op verschillende platformen nogal verschillend aankwamen (frequentie, volgorde, etc), events die op sommige systemen helemaal niet verstuurd werden (mouse moves als de pointer buiten een window is) en meer. Nix echt wereldschokkends mischien, maar absoluut uniform zijn de Java implementaties niet.
Grappige is dat niemand schijnt te merken dat MS het weer precies goed doet. (wat betreft marketing). Wat is nu het gevolg van deze programmeertaal ? Juist, een hoop kritiek, maar ondertussen ook JAVA developers die overdruppelen naar .NET, langzaam maar gestaag. Dit wordt ook nog eens extra gestimuleerd door een tool als JUMP. (dat JAVA code naar C# code converteerd).

SUN doet zoiets niet, en daar kun je ze voor prijzen, maar is dit op den duur niet gevaarlijk ?
Dit wordt ook nog eens extra gestimuleerd door een tool als JUMP. (dat JAVA code naar C# code converteerd).
Zoals hierboven ook al een paar keer is vermeld: het verschil tussen platformen/talen zoals C#/.Net en Java zit 'm voornamelijk in de API die wordt aangeboden. Het lijkt me toch niet dat ik moeiteloos een J2EE servlet om kan zetten in het C#/.Net equivalent hiervan.

Ik ben dan ook erg sceptisch over deze informatie van Microsoft. Mijn favoriete quote van die pagina:
"The JLCA gives us more flexibility in migrating our Alibre Design application for peer-to-peer mechanical design and data sharing to the .NET platform," said Steve Emmons, CTO of Alibre Inc. "We're impressed with Microsoft's commitment to the Java language community, especially developers who chose Visual J++®."
Met name die laatste zin is op z'n zachtst gezegd opvallend te noemen.
Tis mooi want al die investeringen die gemaakt zijn om de eigen mensen Java te leren hoeven ze nu dus niet meer weg te gooien als ze overstappen naar .NET.
Anoniem: 34810 2 juli 2002 21:49
Van de week trouwens op een presentatie van iemand van MS gehoort dat ze dit dus niet een compiler mogen noemen, maar een ontwikkeltool, wegens rechtzaken van Sun... :? Lekker triest...

Op dit item kan niet meer gereageerd worden.