hulpmiddelenin andere talen
|
Java (programmeertaal)
Duke, de Java mascotte
Java is een objectgeoriënteerde programmeertaal. Historisch gezien is Java een platformonafhankelijke taal die qua syntaxis grotendeels gebaseerd is op de (eveneens objectgeoriënteerde) programmeertaal C++. Java beschikt echter over een uitgebreidere klassenbibliotheek dan C++. De ontwikkelaars van de taal Java - de 'werknaam' was Oak - waren zo verzot op het stimulerende middel koffie dat ze hun nieuwe taal naar hun favoriete soort genoemd hebben.
[bewerk] GeschiedenisJava ontstond begin jaren '90 in een klein dochterbedrijf van Sun Microsystems onder leiding van James Gosling. Dat bedrijfje, First Person (met onder meer Arthur van Hoff en Patrick Naughton), had als opdracht: "make something cool". In de beginjaren richtte het bedrijfje zich op software voor settop-boxen. Toen enkele onderhandelingen op het nippertje mislukten begonnen ze aan Java. De werknaam Oak werd gekozen toen men naar buiten keek bij het zoeken naar een naam, en daar een eik (Engels: Oak) zag staan. Er bleek echter al een programmeertaal met die naam te bestaan. Na studie bleek dat mensen geïnteresseerd zijn in nieuwe zaken die iets met eten te maken hebben of hen aan eten doen denken. Om deze nieuwe taal te doen aanslaan hebben de ontwikkelaars besloten de naam te kiezen van hun populaire Java Koffie. Java is een koffiesoort uit Indonesië. Later bouwden ze voort op deze terminologie en introduceerden ze JavaBeans (bonen) en jar-archieven (Java ARchive) (een jar is een pot). Aanvankelijk wilde men Java promoten als programmeertaal voor allerhande elektronische apparaten, zoals televisies, afstandsbedieningen en koelkasten. Maar toen het world wide web meer en meer aan populariteit won, bedacht Sun dat ze hun (toen nog steeds niet al te populaire) taal goed konden gebruiken in een webomgeving. Dankzij de open specificatie en de mogelijkheid om een Javaprogramma als applet in een webpagina in te bedden (ook wel "embedden" genoemd) was de hype al snel gecreëerd. Het gebruik van Java voor kleine apparaten werd korte tijd later toch gerealiseerd met het uitbrengen, in 1997, van de Java Card technology, waarmee chipkaarten in Java geprogrammeerd kunnen worden. Deze techniek werd al gauw na de introductie in de GSM-wereld geadopteerd voor gebruik in de SIM-kaart. Het blijkt aan te slaan en in 2005 wordt deze Java-techniek in meer dan 80% van de uitgegeven SIM-kaarten toegepast. De volgende generatie Java bood vervolgens de mogelijkheid om Javaprogrammatuur op servers zelf uit te voeren (Engels: 'server-side'). Dit gebeurt in de vorm van servlets, Enterprise JavaBeans en Java Server Pages. Met name op dit gebied heeft Java de afgelopen jaren zijn kracht bewezen en wordt de taal gezien als een belangrijke omgeving voor webapplicaties. Zie ook Java 2 Enterprise Edition. Sterk in opkomst is de Java-versie die bedoeld en geschikt is voor apparatuur met een beperkte verwerkingscapaciteit, zoals PDA's, mobiele telefoons en — eindelijk — de settopbox. Zie hiervoor Java 2 Micro Edition. Op 13 november 2006 gaf Sun delen van Java vrij als opensourcesoftware, onder de GNU General Public License (GPL). Op 8 mei 2007 gaf Sun de laatste delen van Java vrij onder de GPL, op enkele kleine gedeeltes na waar Sun niet het auteursrecht op heeft. [bewerk] ReleasesJava heeft de volgende versies gekend (achtereenvolgens worden genoemd release-nummer, codenaam en release-datum):
Over de nummering van de versies is veel te doen geweest. Na het uitbrengen van versie 1.2 is de 2 vaak vermeld achter Java, wat dan een hele reeks boeken opleverde die "Java 2 behandelden", ook als het om versie 1.3 of 1.4 ging. Vanaf versie 1.5.0 was er een dubbele nummering: had men het over Java 5.0, dan ging het over de JRE of Java Runtime Environment. Het versienummer 1.5.0 verwees heel specifiek naar de JSDK of Java Software Development Kit, met andere woorden de ontwikkelomgeving. SE staat overigens voor "Standard Edition". [bewerk] Kracht door eenvoud en recyclingSinds haar introductie heeft Java een enorme vlucht genomen op het gebied van de mogelijkheden van het systeem als geheel. Van een relatief simpele taal met een vrij standaard bibliotheek aan functionaliteit heeft het platform Java (meer dan de taal Java) zich ontwikkeld tot een entiteit die zeer breed ingezet kan worden, in vrijwel alle probleemdomeinen en op vrijwel ieder type platform — van kleine embedded-processorsystemen tot supercomputers. De veelzijdigheid van Java komt voort uit de combinatie van een taal die eenvoudig gebleven is met een eeuwig uitdijende bibliotheek van klassen, die ook nog eens uitgebreid kan worden met externe bibliotheken. De taal Java is nauwelijks veranderd sinds het uitbrengen van Java 1.0 in 1995. Er is een klein aantal sleutelwoorden bijgekomen en de syntaxis is wat uitgebreid. Maar in essentie is en blijft de taal Java een geheel dat bestaat uit een klein aantal sleutelwoorden en syntactisch toegestane combinaties van die sleutelwoorden. Dit betekent dat het mogelijk is om met een kleine inspanning (het leren van de syntaxis van de basistaal) snel met Java aan de slag te gaan, waarna steeds als dat nodig is de kennis kan worden uitgebreid (van de klassenbibliotheek). Sinds de introductie in 1995 hebben de ontwikkelaars er altijd voor gekozen om nieuwe functionaliteit in het platform in te voeren met zo min mogelijk veranderingen aan de taal zelf. In plaats daarvan is al vroeg gekozen voor de optie om de objectgeoriënteerde eigenschappen van Java zoveel mogelijk uit te buiten door het overhevelen van zoveel mogelijk functionaliteit van de taal naar de klassenbibliotheken. Hierdoor wordt het mogelijk om steeds met dezelfde, kleine taalkern de vele en steeds weer nieuwe mogelijkheden van Java te gebruiken door gebruik te maken van objecten die de nieuwe functionaliteit voorstellen – iedereen die de taalkern kent, kan elke functionaliteitsuitbreiding op het platform gebruiken die er ooit was of die er ooit zal zijn en hoeft daarvoor alleen maar te weten wat de nieuwe klassen precies "doen" in plaats van het hoeven leren van hele nieuwe taalconstructies om hetzelfde te bereiken. Naast het hierboven beschreven principe van "veel uit weinig" is er zonder twijfel ook nog een tweede reden achter de grote vlucht die Java genomen heeft: het feit dat Java totaal niet innovatief is. Er is in het hele officiële Java-platform niets te vinden wat niet al eens ergens anders al een keer gedaan is. De meeste software, zeker in zakelijke toepassingen, werd tot 1997 geschreven in C, C++ of Pascal-dialecten. Java bracht enkele vernieuwingen bij de niet-academische softwareontwikkelaar zoals de virtuele machine, de garbage collector en het ontbreken van pointers. Deze ideeën waren echter niet nieuw: in diverse (al dan niet academische) programmeertalen waren ze al te vinden en beproefd. Wat dat betreft is Java heel duidelijk geen onderzoeksplatform, maar veel meer een praktisch platform – de ontwikkelaars van Java hebben altijd, bij elke nieuwe ontwikkeling, eerst rustig rondgekeken naar de verschillende uitwerkingen van het nieuwe idee voordat ze zelf tot toepassing overgingen. Deze aanpak heeft er weliswaar toe geleid dat Java vaak op bepaalde gebieden achter de feiten aanhobbelt, maar ook dat de uiteindelijke implementatie in Java meestal gebaseerd is op de keuzes die zich in de praktijk bewezen hebben. Het is overigens bijzonder te noemen dat Java, ondanks deze instelling, door vele onderzoeksgroepen ter wereld nou juist wel gebruikt wordt als basis voor hun eigen onderzoek naar uitbreidingen van programmeertalen. Het is de toepassing van de Virtual Machine – die het makkelijk maakt om aanpassingen aan de taal en de structuur te incorporeren in het runtime-systeem – die het platform flexibel genoeg maakt om ook voor deze toepassing bruikbaar te zijn. [bewerk] Algemeen belangGedurende de jaren '90 is Java redelijk populair geworden. In de meeste gevallen leek Java alleen goed voor gebruik in het onderwijs en voor webapplicaties, respectievelijk vanwege de strakke syntaxis en de mogelijkheid "applets" in webpagina's in te bouwen. Door kleine verschillen in Java-versies tussen diverse browsers is het gebruik van applets eigenlijk nooit echt van de grond gekomen, wat geleid heeft tot de introductie van de Java Plug-in: in plaats van een virtuele Javamachine door de browserbouwer in te laten bouwen, kan de gebruiker hem zelf downloaden wanneer dat nodig is. Hiermee wordt incompatibiliteit tussen JVM's van verschillende merken omzeild. Een ander platform waar Java veel wordt gebruikt is de mobiele telefoon. Veel toestellen bieden de mogelijkheid om Javaprogramma's uit te voeren. Deze programma's moeten dan wel voldoen aan de specificaties die zijn vastgelegd in de Java 2 Micro Edition-standaard. Het gebruik van Javaprogramma's in servers is meer en meer toegenomen sinds het implementeren van Just In Time-compiling, dat op het niveau van de Java Virtual Machine een grote versnelling van de uitvoering met zich meebracht, waardoor de eerder trage Javaprogramma's nu ook bruikbaar werden voor serverapplicaties. Daarnaast bevatten de J2EE- (Enterprise Edition) bibliotheken een groot aantal klassen voor het programmeren van (web)serverapplicaties, het communiceren met gegevensbestanden en het gebruik van allerlei generieke diensten. De meeste internet-gebaseerde bankdiensten in Nederland bijvoorbeeld draaien inmiddels op Java-technologie. Het opensource-contentmanagementsysteem van Nederlandse bodem MMBase is geheel geschreven in Java. Java is door de eenvoud en webbased-mogelijkheden ook erg populair als programmeertaal voor computerspellen. Een voorbeeld hiervan is RuneScape. Ook de ontwikkeling van bibliotheken, zoals Java OpenAL (JOAL) en Java OpenGL (JOGL), draagt bij aan het gebruik van Java voor computerspellen. Er worden ook opensourcebibliotheken ontwikkeld, zoals de Lightweight Java Game Library (LWJGL). De jMonkeyEngine is een engine voor het ontwikkelen van 3D-computerspellen in Java. [bewerk] Java versus C++Java wordt gecompileerd naar bytecode voor een virtuele machine, de Java Virtual Machine (JVM). De JVM is beschikbaar voor allerlei verschillende soorten computers. Hierdoor is de gecompileerde bytecode platformonafhankelijk, d.w.z. de code kan op elke willekeurige computer draaien, onafhankelijk van het besturingssysteem (zoals Windows, Unix of Mac OS X). Er is dus maar één (virtueel) platform: de JVM. C++-broncode (en ook de broncode van C, de niet object-geörienteerde voorloper van C++) wordt meestal direct naar machinetaal gecompileerd, waardoor de uitvoerbare bestanden slechts op één doelplatform draaien. De Javabytecode wordt op het laatst mogelijke moment (Just In Time, JIT) gecompileerd naar machinetaal. Bij deze JIT-compilatie worden ook de dynamische eigenschappen van een programma meegenomen. Het kan gebeuren dat veelgebruikte bytecode opnieuw wordt gecompileerd omdat in een gebleken situatie met een iets andere compilatie grote snelheidswinsten te boeken zijn. Hierdoor zal een Javaprogramma in eerste instantie langzamer draaien dan vergelijkbare programma's die direct naar machinetaal gecompileerd zijn. In de begintijd van de programmeertaal Java was het JIT-compileren ook nog niet volledig geïmplementeerd. Hierdoor heeft Java een serieus imagoprobleem opgelopen dat nog steeds voortduurt, hoewel Java tegenwoordig competitief presteert. Daarnaast wordt van Java ten opzichte van C++ soms als nadeel aangemerkt dat voor de taal C++ onafhankelijke ISO/ANSI-comitées bestaan, terwijl Java nog steeds in handen lijkt te zijn van Sun Microsystems. Anderen beweren dat daar tegenover staat dat Java nog de mogelijkheid heeft om te groeien, zich aan te passen en nieuwe ontwikkelingen in te bouwen, terwijl C++ door standaardisatie verstard is en dus aan alle kanten door allerlei ontwikkelingen ingehaald wordt. In Java wordt de programmeur beter tegen zichzelf beschermd dan in C++ en C. Zo is er in Java geen pointermanipulatie. Dit is een voordeel omdat fouten bij het gebruik van pointers moeilijk te traceren zijn en zelfs kunnen uitlopen op het crashen van het operating system. Daarentegen is het ook een nadeel omdat het de vrijheid van de programmeur beperkt. Een ander belangrijk verschil tussen Java en C++ is het ontbreken van expliciet geheugenbeheer in Java: Java houdt zelf bij welke objecten met de new-operator zijn aangemaakt en verwijdert deze automatisch zodra er geen referenties meer naar die objecten zijn. Daarnaast is exception handling grondiger en correcter geregeld dan in C++. Net als C++ ondersteunt Java (vanaf versie 5) ook generiek programmeren. Zowel in Java als in C++ bestaan geparametriseerde types alleen voor de compiler. In Java worden deze types vervangen door het overeenkomende, minst specifieke niet-generieke type (bv.: Sommigen vinden Java een iets overzichtelijkere taal dan C++, maar dat is een kwestie van smaak: het schrijven van totaal onbegrijpelijke programma's is met C(++) gemakkelijker dan met Java. Veel C++-programmeurs missen zaken die in Java bewust zijn weggelaten zoals destructors, operator-overloading en pointermanipulatie. Verder klagen ze over het feit dat de garbage-collector de ongebruikte objecten niet snel genoeg vrijgeeft hetgeen voor bepaalde situaties inderdaad zo is[bron?]. [bewerk] Java en JavaScriptVeel mensen verwarren Java met JavaScript, maar in feite hebben de twee talen weinig met elkaar te maken. Hoewel beide talen op het eerste gezicht qua syntaxis op elkaar lijken, zijn er grote verschillen:
[bewerk] Java vs .NETHet concept van de virtuele machine (VM) is ouder dan Java zelf. In de jaren '70 was er de P-Code-virtuele machine om Pascalprogramma's platformonafhankelijk mee uit te voeren. Ook Microsoft creëerde later zijn eigen virtuele machine: de Common Language Runtime of CLR, de basis van .NET. Hét grote verschil tussen de Java VM van Sun en de CLR van Microsoft is echter dat die van Sun op verschillende besturingssystemen kan draaien, terwijl die van Microsoft beperkt is tot de diverse Windows-versies van Microsoft. Al zijn er inmiddels door de opensourcegemeenschap een aantal succesvolle .NET-runtimes voor Linux uitgebracht, waarvan Mono de bekendste is, waarmee ook .NET-code op andere besturingssystemen kan draaien. [bewerk] Java en open sourceVaak wordt Java genoemd in verband met open source en open standaarden en op 13 november 2006 kondigde Sun Microsystems aan Java vrij te geven onder de GNU General Public License. Al eerder had Sun het beheer van het Javaplatform in handen gelegd van een onafhankelijke organisatie, het Java Community Process (JCP). Dit samenwerkingsverband van Sun met andere bedrijven, instellingen en individuele personen bepaalt welke API's en andere standaarden onderdeel gemaakt worden van het platform. Ook bepaalt de JCP de richting van het kernplatform zelf – welke klassen opgenomen worden in de standaardbibliotheek en welke veranderingen er doorgevoerd worden in de taal zelf. Over veranderingen in het kernplatform heeft Sun echter een veto binnen het JCP. Sun heeft destijds een Javaontwikkelomgeving uitgebracht, Netbeans, die later vrijgegeven is in de opensourcegemeenschap en nu door een opensourcegemeenschap verder wordt ontwikkeld en beheerd. Ook zijn in de opensourcewereld veel tools en software te vinden voor Java en/of in Java geschreven, die worden uitgebracht onder een van de vele opensourcelicentievormen. [bewerk] VoorbeeldprogrammaHet bekende "Hello world"-programma in Java kan er zo uit zien: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!"); } } Voor op een website (een 'applet') ziet het er zo uit: import java.applet.*; import java.awt.*; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello World!", 20, 20); } } [bewerk] Zie ook[bewerk] Externe links
|
| kreatyna kreatyna www.activebody.pl | Gry Online Gry Online www.pozycjonarka.in… | Plaza 3 star hotel Los Angeles www.triptake.com | krynica noclegi krynica noclegi,ośrodek, wypoczynk… gornik.com.pl | Kredyty odnawialne Kredyty odnawialne www.eskarbiec.pl |