- For språk som bruker grensesnitt, prøv Java, C # eller C ++. Python, C ++, og mange andre språk tillate multippel arv, mens Scala bruker 'egenskaper', en interessant kombinasjon av grensesnitt, multippel arv, og sammendrag.
- For prototype-basert objektorientert programmering, lære Javascript (ECMAScript). Javascript har ikke klasser: i stedet det har prototyper.
Self er det opprinnelige språket som startet prototype-basert programmering, og Actionscript, kan Lua, og REBOL brukes for denne type programmering.
- For funksjonell programmering, vurdere å lære Objective Caml eller Haskell. Disse er statisk-skrev funksjonelle programmeringsspråk. For litt mer praktiske funksjonelle språk, vurdere Scala (på Java Virtual Machine) eller F # (på .NET)
-. Hvis du ønsker å prøve en svært dynamisk programmeringsspråk, prøv Ruby, Python, Perl, eller Lisp. Typesystemer i disse språkene er svært forskjellig fra et språk som Java eller C.
Det er verdt å prøve slike språk for å se den slags ting du trenger å gjøre for å kode rundt å ikke ha denne slags type system - enhetstesting, metaprogramming teknikker, duck skrive, og så videre.
- Prøv domenespesifikke språk, til disse er språk bygd for svært spesifikke formål, eller språk abstraksjon bygget på toppen av en eksisterende språk uttrykke noen bestemt sett av funksjonalitet. Noen av disse er SQL, XSLT, FreeMarker, ASP.net, C # LINQ, Shell Scripts, YACC, AWK, SED, og hundrevis mer. Ruby og Scala kan både brukes til å opprette domenespesifikke språk.
Merk at mange domenespesifikke språk ikke er Turing Komplett.
Trinn 4:
Lær om ulike tilnærminger til samtidighet.
- Samtidighet er et vanskelig problem i databehandling, og mange nye språk er å gi nye måter å skrive samtidige rutiner. Noen av disse fremgangsmåter ikke lett kan bygges med biblioteker og krever i stedet at støtte fra språket i seg selv.
- Threading er den mest støttet måte å støtte samtidighet, men kan være svært vanskelig å bygge.
Java, C ++ og mange andre språk støtter threading, mens noen språk som Python og Ruby bare støtte "grønne tråder 'i stedet for ekte systemnivå threading. Threading blir komplisert fordi alle trådene trenger tilgang til samme sett av globale data, noe som kan føre til race conditions og andre lignende problemer. Så har andre tilnærminger blitt introdusert ...
- Software transaksjo