Java
Programmeringssprog udviklet hos Sun Microsystems 1995 med henblik på programmering af distribuerede applikationer i såvel meget små som større computere. Java er objektorienteret og bygger på ideer fra bl.a. smalltalk og C++.
Java adskiller sig med hensyn til repertoiret af sætningskonstruktioner stort set ikke fra så mange andre imperative programmeringssprog udviklet de sidste 25 år. Det nye ligger snarere i, at sproget er designet med henblik på bekvem og sikker flytning af ikke blot kildeprogrammer, men også af oversatte programmer mellem forskellige platforme, og at spildopsamling på køretidspunktet accepteres.
Java er et sprog med et veldefineret, strømliniet typesystem; hertil har designerne forsøgt at undgå smarte konstruktioner, features og detaljer, der gør et samlet overblik vanskeligt og komplicerer oversættelse og kørsel. Java har ikke blot objekter, men giver også mulighed for at samle beslægtede objekter i moduler (packages) med mulighed for delte data. Java har også indbygget simpel behandling af exceptions og kritiske regioner, og dermed mulighed for parallelle processer (threads).
Oversatte programmer kan flyttes til en anden maskine og afvikles der, idet de kan oversættes til en maskinuafhængig mellemkode (bytecode) med veldefineret semantik (som kan afvikles af en fortolker JVM), og idet der er defineret en basal API bestående af otte moduler. Disse indeholder definitioner på objekter, der stiller funktioner til rådighed for parallelle processer, tekststrenge, I/O, netkommunikation, hyppigt anvendte datastrukturer som stakke, hash-tabeller og vektorer, og et vinduessystem. Java adskiller sig fra andre programmeringssprog ved at operationerne på tekststrenge er omhyggeligt designet, og ved at tekster kodes tegnvis i 16-bit Unicode snarere end 7-bit ASCII.
Et særligt modul indeholder definitioner til brug for applikationer, der skal anvendes i forbindelse med WWW. Anvendes disse, således at applikationen er et objekt afledt af grundtypen "applet", kan en WWW-browser dynamisk hente den og udføre den på brugerens maskine. Dette giver stor fleksibilitet og dynamik, men også en række sikkerhedsmæssige problemer, som efterhånden er ved at være løst tilfredsstillende.
