# Software Fri data går hånd i hånd med fri kode til at behandle data. Skriv kode i åbne, inkluderende sprog. Dvs. sprog med en åben standardardiseret arkitektur, forankret i en organisation uden særlige økonomiske interesser, sikret med en åben og fri licens. **NB!** Dette er en blot en beslægtet anbefaling til inspiration (*ikke* i sig selv [5-stjernet data]). [5-stjernet data]: ../data#stjerner "5-stjernet data" ## Sprog Blandt scripting-sprog (dvs. sprog som afvikles gennem en fortolker - ofte anvendt til relativt simple opgaver og hurtige skitser) er de åbne og uafhængige sprog [Elixir] og [TypeScript] [værdsat], og [TypeScript], [Python] og [JavaScript] er [populære]. [Elixir]: https://en.wikipedia.org/wiki/Elixir_(programming_language) "Elixir - et funktionelt, parallelliseret sprog afviklet i samme miljø som Erlang" [TypeScript]: https://da.wikipedia.org/wiki/TypeScript "TypeScript - en udvidelse af JavaScript til at håndtere statiske datatyper" [Python]: https://da.wikipedia.org/wiki/Python_(programmeringssprog) "Python - dynamisk multi-paradigme-sprog (imperativt, funktionelt, objektorienteret m.m.)" [JavaScript]: https://da.wikipedia.org/wiki/JavaScript "JavaScript - dynamisk multi-paradigme-sprog (imperativt, funktionelt, objektorienteret m.m.)" Blandt "rigtige" programmeringssprog (dvs. sprog som afvikles direkte i hardware - ofte anvendt til store og komplekse opgaver, bl.a. operativsystemer) er det åbne og uafhængige sprog [Rust] ekstremt [værdsat], mens klassiske [C] og [C++] er [populære]. [Rust]: https://da.wikipedia.org/wiki/Rust_(programmeringssprog) "Rust - multi-paradigme-sprog (funktionelt m.m.) med robust hukommelseshåndtering" [C]: https://da.wikipedia.org/wiki/C_(programmeringssprog) "C - multi-paradigme-sprog (imperativt og struktureret)" [C++]: https://da.wikipedia.org/wiki/C++ "C++ - multi-paradigme-sprog (imperativt, struktureret og objektorienteret) baseret på C" Blandt "beskyttede" programmeringssprog (dvs. sprog som afvikles i en virtuel maskine - ofte anvendt til større opgaver ovenpå operativsystemer) er det åbne og uafhængige sprog [Clojure] [værdsat], og [Java] er [populært]. [Clojure]: https://en.wikipedia.org/wiki/Clojure "Clojure - funktionelt sprog baseret på Lisp afviklet under Java" [Java]: https://da.wikipedia.org/wiki/Java_(programmeringssprog) "Java - multi-paradigme-sprog (objektorienteret m.m.) afviklet i en virtuel maskine" Blandt opmærkningssprog (dvs. sprog til at strukturere og annotere - ofte anvendt til dokumentation og præsentation) er [Markdown] [værdsat (som asynkront samarbejdsværktøj)], mens [HTML] og [CSS] er [populære (i Stack Overflow's survey)]. [Markdown]: https://en.wikipedia.org/wiki/Markdown "Markdown - opmærkningssprog primært til læsevenlig redigering af hypertekst" [HTML]: "HTML - opmærkningssprog primært til strukturering af hypertekst i web-browsere" [CSS]: "CSS - opmærkningssprog primært til præsentation af hypertekst i web-browsere" [værdsat]: https://survey.stackoverflow.co/2023/#section-admired-and-desired-programming-scripting-and-markup-languages "Stack Overflow udvikler-survey 2023 - eftertragtede og værdsatte sprog" [værdsat (som asynkront samarbejdsværktøj)]: https://survey.stackoverflow.co/2023/#section-admired-and-desired-asynchronous-tools "Stack Overflow udvikler-survey 2023 - eftertragtede og værdsatte asynkrone samarbejdsværktøjer" [populære]: https://www.tiobe.com/tiobe-index/ "TIOBE Indeks - populære programmeringssprog" [populære (i Stack Overflow's survey)]: https://survey.stackoverflow.co/2023/#section-most-popular-technologies-programming-scripting-and-markup-languages "Stack Overflow udvikler-survey 2023 - populære sprog" ## Faldgruber Et programmeringssprog kan være *politisk* ladet. Eksempelvis er [C#] udviklet af Microsoft som en (mindre) del af et [storstilet] forsøg på at [udmanøvrere] [Java], og selvom det principielt kan afvikles andre steder anvendes det i idag i praksis mest på Microsofts egne systemer. [storstilet]: https://www.cnet.com/tech/tech-industry/microsofts-holy-war-on-java/ "artikel om Microsofts hellige krig imod Java" [udmanøvrere]: https://en.wikipedia.org/wiki/Visual_J%2B%2B#Sun's_litigation_against_Microsoft "Retssag imod Microsoft om bevidst forvanskning af Java" Et programmeringssprog kan være *kulturelt* ladet. Eksempelvis er udvikler-kulturen omkring [Java] præget af en stærk interesse for [enterprisearkitektur], som smitter af på hvordan også kollektivt orienterede kodebiblioteker organiseres, så sproget i praksis mest anvendes i hierarkisk organiserede grupper (sjældent indenfor moderne agil programmering). Et programmeringssprog kan være *sikkerheds*ladet. Eksempelvis har [PHP] historisk haft mange sikkerhedsfejl og selvom selve sproget er blevet strammet op i nyere tid har bl.a. en udviklerkultur præget af pragmatikere gjort at der fortsat i dag løbende registreres [mange sikkerhedshuller] i PHP-kode. [C#]: https://da.wikipedia.org/wiki/C_Sharp "C# - multi-paradigme-sprog (objektorienteret m.m.) afviklet i en virtuel maskine" [enterprisearkitektur]: https://da.wikipedia.org/wiki/Enterprisearkitektur "Enterprisearkitektur - samspillet mellem virksomhedens forretningsstrategi og dens evne til at levere denne" [PHP]: https://da.wikipedia.org/wiki/PHP "PHP - dynamisk multi-paradigme-sprog (imperativt, funktionelt, objektorienteret m.m.)" [mange sikkerhedshuller]: https://en.wikipedia.org/wiki/PHP#Security "PHP sikkerhedsproblemer"