Neue Programmiersprachen werden immer wichtiger. Einige davon wachsen mit hoher Geschwindigkeit und tauchen auch in Stellenanzeigen immer häufiger auf. Je nachdem, ob ihr fürs Web, Backend oder Smartphones entwickelt – fast überall gibt es neue – und ältere – Programmiersprachen, die ihr euch genauer anschauen solltet.
Diese Programmiersprachen solltet ihr 2022 lernen
Immer noch führen Sprachen wie JavaScript, Python, C++ oder Java die Liste der meistgenutzten Programmiersprachen an. Doch wie lange noch? Sind die Sprachen des letzten Jahrhunderts wirklich noch modern genug? Einige neue Programmiersprachen machen ordentlich Druck und sind es wert, gelernt zu werden.
Python für Data-Science und Automatisierung
Obwohl Python ein paar Jahre mehr auf dem Buckel hat und aus den 90er Jahren stammt, wächst die auf knappen Programmierstil setzende Sprache stetig und hat sich dieses Jahr erneut vor Java auf Platz 2 der meistgenutzten Sprachen festgesetzt. Im Tiobe-Index hat Python 2021 sogar den Spitzenplatz. Ein großer Vorteil von Python ist die Plattformunabhängigkeit: Sie läuft auf fast allen Betriebssystemen. Mit ihr könnt ihr objektorientiert oder prozedural programmieren. In Bereichen wie Data-Science, Machine-Learning und künstliche Intelligenz kommt ihr um Python nicht herum. Insgesamt ist die Sprache aber fast universell einsetzbar. Mit den entsprechenden Tools sind sogar Benutzeroberflächen möglich. Zudem ist Python leicht zu lernen und hat viele Bibliotheken.
Android: Kotlin ist weiterhin unfassbar beliebt
Im Mai 2017 hat Google Kotlin neben Java zur offiziellen Android-Programmiersprache erklärt. Seitdem wächst die aus dem Hause Jetbrains stammende Sprache scheinbar unaufhaltsam. Die Sprache ist unfassbar beliebt und ist in der Stackoverflow-Survey 2021 immerhin auf Platz 14 der am meisten genutzten Programmiersprachen. Sie hat gegenüber Java sehr viele Vorteile und macht den Umstieg von Anwendungen mit Java-Codebase leicht. Durch die Interoperabilität könnt ihr euer Projekt Stück für Stück in Kotlin umschreiben.
Warum Kotlin statt Java? Kotlin ist erst ein paar Jahre alt und hat somit viele moderne Features an Bord, die bei Java erst nach und nach mehr schlecht als recht hinzugekommen sind. Durch die Null-Sicherheit und die sehr einfache Syntax für Lambda-Funktionen und Sprachkonstrukte, die den Code gegenüber Java deutlich reduzieren, gehört Kotlin für Android definitiv zu den Must-haves. Wer ein neues Projekt schreibt, sollte wenn möglich auf Kotlin setzen. Auch, weil Jetbrains an Features für Multiplattform-Projekte mit Kotlin arbeitet. So könnt ihr native Apps für Android und iOS schreiben.
Scala
Scala ist eine Allzwecksprache, die sowohl objektorientierte als auch funktionale Programmierung unterstützt. Ähnlich wie Kotlin gleicht Scala viele von Javas Unzulänglichkeiten aus. Data-Pipelines und ETL, eventbasierte Anwendungen, verteilte Systeme, Microservices und Java-Altsysteme, die modernisiert werden sollen, sind Anwendungsbereiche der Sprache. Wer für das Backend entwickelt und die Mühe investiert, hat mit fundierten Scala-Kenntnissen Chancen auf eine sehr gut bezahlte Entwickler:innenposition, auch wenn Scala insgesamt weniger nachgefragt wird als Java oder Kotlin.
Clojure
Clojure ist ein moderner Lisp-Dialekt, der 2005 erstmals veröffentlicht wurde. Die Sprache fördert einen funktionalen Stil, der nebenläufige Programmierung stark vereinfacht. Clojure läuft in der Java Virtual Machine und ist eng mit der Java Runtime integriert. Closure ist dynamisch konzipiert und kann effizient in die nativen Parts der Host-Plattform kompiliert werden. So kann die Sprache mit Bibliotheken des Java-Ökosystems interagieren, ohne dass explizite Konvertierungen von und nach Clojure nötig sind. Mit ClosureScript gibt es zudem eine Variante, die auf das JS-Ökosystem abzielt.
Trotz der Kombination von zwei Ideen, die zur Zeit der Erstveröffentlichung eher unpopulär waren – funktionaler Programmierung und Lisp –, findet Clojure in so unterschiedlichen Branchen wie Finanzen, Klimawissenschaft, Einzelhandel, Datenbanken, Analytik, Verlagswesen, Gesundheitswesen und Werbung Anwendung. Unter Anwender:innen gilt Clojure als simpel und stabil, ansonsten bewegt sich die Sprache trotz ihrer Vorzüge eher unter dem Radar. Ein genauerer Blick kann sich aber definitiv lohnen: In der Liste der bestbezahlten Tech-Kenntnisse der Stackoverflow-Survey 2021 belegt Clojure mit einigem Abstand Platz 1 vor F#, Elixir und Erlang.
Webentwicklung: TypeScript
In der Webentwicklung gibt es seit Jahren die immer gleichen Sprachen, die ihr draufhaben solltet. Wollt ihr in diesem Segment entwickeln, kommt ihr um JavaScript nach wie vor nicht herum. Wer JavaScript beherrscht, ist auf jeden Fall gut aufgestellt. Seit 2012 gibt es einen neuen Player aus dem Hause Microsoft: TypeScript. Im Gegensatz zu JavaScript ist TypeScript statisch typisiert und gibt euch mehr Kontrolle über euren eigenen Code.
Doch keine Angst! Wer JavaScript beherrscht, wird sich auch schnell in TypeScript einarbeiten können. Denn TypeScript versteht JavaScript und vice versa. Ihr könnt die vielen Libraries und Frameworks oder anderen bestehenden JavaScript-Code ohne Probleme mit TypeScript weiter nutzen. Auch wichtig: Am Ende wird TypeScript in JavaScript transpiliert, sodass TypeScript mit genauso vielen Browsern kompatibel ist. Euch auf TypeScript einzulassen, lohnt sich auch deshalb, weil bekannte Frameworks und Libraries wie Angular oder React und seit einiger Zeit auch Svelte mittlerweile auf die Sprache setzen. Beherrscht ihr sie, kann sie eure Entwicklungsprozesse schneller machen und führt zu besser lesbarem Code. Viele Entwickler:innen, die einmal mit TypeScript in Berührung gekommen sind, wollen nicht wieder zum großen Bruder JavaScript zurück.
Dart
Dart ist eine ECMA-standardisierte Programmiersprache aus dem Hause Google, deren Entwickler:innen vor allem die Verwendung in Web-Browsern dafür ins Auge gefasst hatten. Die noch junge Sprache sollte eine moderne Alternative zu JavaScript sein, die einige Probleme der alteingesessenen Sprache des Webs überwindet. Im Stackoverflow-Ranking der meistgenutzten Technologien belegt Dart 2021 hinter Ruby immerhin den 17. Platz. Das ist nicht so verwunderlich, in den vergangenen Jahren konnte das Dart-basierte UI-Toolkit Flutter für die plattformagnostische Entwicklung von Benutzeroberflächen stetig weiteren Contributor:innen- und auch Nutzer:innenzuwachs verzeichnen.
iOS: Swift statt Objective-C
Solltet ihr iOS-Apps immer noch mit Objective-C entwickeln, dann wird es Zeit, Swift zu lernen. Die Sprache wurde 2014 vorgestellt und gilt als moderne Alternative zu Objective-C für iOS und macOS. Sie hat viele Ähnlichkeiten zu Kotlin und mindestens genauso viele Vorteile gegenüber Objective-C wie Jetbrains Sprache gegenüber Java. Swift erleichtert das Entwickeln von Apps für iPhones und Co. deutlich, weswegen sich Apple-Entwickler:innen die Sprache bereits seit 2014 näher hätten anschauen sollen. Wer das immer noch nicht getan hat, sollte sich „Swift lernen“ unbedingt auf die Liste der Vorsätze für 2022 schreiben.
Go von Google für Cloud-Computing
Die Open-Source-Programmiersprache Go wurde von Google aus Unzufriedenheit mit Java und C++ entwickelt. Sie ist vor allem für Cloud-Computing relevant. Der Fokus von Go liegt klar auf Effizienz und produktiver Entwicklung. Um bestehenden Code nicht zu gefährden, soll Go in späteren Versionen weiterhin mit der ersten Version kompatibel bleiben. Wer Go beherrscht, kann durchaus Zeit sparen, jedoch ist die Einarbeitung ziemlich zeitaufwendig und mühsam.
Rust: Zuverlässig, performant und produktiv
Mit diesen Worten bewirbt Mozilla seine 2010 angekündigte Programmiersprache Rust. Rust setzt auf statische Typisierung und will Null-Pointer- und Stack-Overflow-Fehler zur Laufzeit weitestgehend verhindern. Die Sprache positioniert sich zwischen Low-Level-Sprachen wie C und höheren Sprachen wie Java. Durch die Verbindung verschiedener Programmierparadigmen erlaubt Rust ein hohes Abstraktionsniveau und setzt für die Speicherverwaltung auf ein für funktionale Sprachen übliches Typisierungssystem anstelle eines Garbage-Collectors. Genutzt werden kann die Sprache unter anderem für CLI-Tools, Web-Assembly und Netzwerk-Services.
Rust ist eine Alternative für C und C++, die viele Gefahren und Fehler zur Laufzeit ausmerzen will. Da Rust noch relativ jung ist, fehlt es derzeit an einigen Stellen noch an Tools und Bibliotheken. Mit der Ankündigung AWS‘, sich künftig verstärkt in die Weiterentwicklung der immer beliebter werdenden Programmsprache einbringen zu wollen, könnte sich das allerdings demnächst ändern. Auch andere große Player wie Microsoft und Meta investieren in Rusts Weiterentwicklung.
AssemblyScript
Apropos Web-Assembly: Web-Entwickler:innen, die die Vorteile von Web-Assembly erkannt haben, bislang jedoch aufgrund der doch sehr großen Unterschiede davor zurückschrecken, sich neben JavaScript eine Low-Level-Sprache wie Rust oder C anzueignen, sollten AssemblyScript im Auge behalten. AssemblyScript ist eine TypeScript-Variante, die Web-Assembly-Binaries produziert. Das noch in der Beta-Phase befindliche Open-Source-Projekt zielt darauf ab, TypeScript-fähigen Webentwickler:innen ein Tool an die Hand zu geben, das ihnen den Einstieg in die Arbeit mit Web-Assembly erleichtert.
Lies mehr zum Thema: Warum sind Kotlin, TypeScript und Rust so im Trend? Der Hang geht zu mehr Kontrolle und weniger Fehlern.
Dieser Artikel wurde zuletzt am 13. Dezember 2021 aktualisiert.
Typescript wird transpiliert …
Hallo Robert,
ein Transpiler ist eine spezielle Art eines Compilers. Aber genauer und richtiger ist natürlich die Verwendung des Begriffs „transpilieren“.
Vielen Dank dafür, habe ich im Beitrag angepasst.
Viele Grüße aus Hannover
Andreas
=> für Anfänger meist die richtige Wahl..
Kann ja wohl nicht dein Ernst sein!
Diese Sprachen (Java, C oder JavaScript) zu lernen kann für Neulinge eher traumatisch sein. Misserfolg ist garantiert. Kryptisch ohne Ende, Klammern und Kommata bis zum Erbrechen, kompliziert.
Da gibt es bessere Alternativen: Ruby oder Python, VueJs oder Elm (evt. Html, Css) sind für Anfänger wesentlicher einfacher nachzuvollziehen, beschreibend, und bringen Erfolgserlebnisse.
Hallo Werner,
dass ist durchaus mein Ernst. Java, Javascript oder auch C sind immer noch immens weit verbreitet. Wer diese Sprachen nicht beherrscht, wird im Berufsleben im entsprechenden Segment noch Probleme haben. Auch weil bspw. Kotlin in Java oder TypeScript in JavaScript transpiliert ist es sehr sinnvoll die entsprechende zugrunde liegende Sprache zu beherrschen.
Ich möchte dir auch noch diesen Artikel ans Herz legen. Der beschreibt, warum der Einstieg ins Programmieren nicht unbedingt leicht sein muss: https://t3n.de/news/einstieg-ins-programmieren-1127207/
Und HTML und CSS sind keine Programmiersprachen. Also ist damit der Einstieg ins eigentliche Programmieren absolut nicht sinnvoll.
PS: An der Universität sind Java und C aus gutem Grund meistens die Einsteiger-Sprachen.
Viele Grüße aus Hannover,
Andreas
Gut, dann hatten wir unterschiedliche Denk-Ansätze. Ich meinte -hatte es so verstanden, Anfänger die Lust haben was zu programmieren und keine Informatik Studenten,
Bei Studenten kann ich voraussetzen das wesentliche Grundkenntnisse vorhanden sind. Dann mag das sinnvoll sein.
Bei „Anfängern“ eher nicht. Frust ist dann garantiert.
In diesem Fall sind Java&Co def. nicht geeignet.
HTML, CSS habe ich bewusst in Klammern gesetzt.
Gruss aus München in mein alte Heimatstadt..
Werner, falls man Javascript in vollem Umfang erlernen will, ist das sicherlich nichts fuer Anfaenger, jedoch kann man damit sehr schnelle ergebnisse erzielen und ist ebenso fuer Anfaenger als auch fuer Profis.
Naja, Vue ist keine Sprache, sondern ein Framework, Html und CSS sind keine Programmiersprachen und daher ist deine Gegenueberstellung, wie der Vergleich von Apfeln mit Birnen.
Hallo Jarek.
Die Frage war für mich nach Programmieren lernen. Warum soll ein Framework das nach JS kompiliert nicht auch genutzt werden, um den Einstieg zu schaffen, und positive Erfahrungen zu machen. Das VueJS und Elm keine „Sprachen“ sind -geschenkt. Die verhalten sich aber so und vermeiden viele Probleme die bei Vanilla JS reichlich nerven.
Wenn du aufmerksam gelesen hättest … ich habe Html und CSS in runde Klammern gesetzt habe, um auch diese Beschreibungssprachen für Anfänger (keine Informatikstudenten) als lernenswert zu erwähnen. Ist doch nun Birnen-pickerei..
Erlang ;)
Ich kann nur jedem Scala empfehlen. Nach meinem ersten Kontakt wurde es sofort zu meiner Lieblingssprache!
Und mit Scala.js, welches im Endeffekt Javascript erzeugt, kann ich für Backend und Frontend dieselbe Sprache verwenden. Auch kann ich in Scala bei Bedarf sämtliche Java-Bibliotheken vnutzen oder auch ältere in Java geschriebenen Programmteile mit neuerem Scala Code gemeinsam verwenden.
Als Krönung unterstützt Scala auch Funktionale Programmierung (FP).
Weil natürlich HCL, CMake und SQLPL ganz typische Programmiersprachen sind. Da hat sich doch jemand ne Statistik angeschaut und ungefiltert und uniterpretiert alles einfach hierher übernommen…
Wie sieht es mit „q“ von kx aus? Ist dies noch interessant in der heutigen Zeit?
„Kryptisch ohne Ende, Klammern und Kommata bis zum Erbrechen, kompliziert.“
Das ist die typeische Aussage von jemand -entschuldige die Unterstellung- der noch nie in diesen Sprachen entwickelt hat.
Ich habe nach jahrelanger Verirrung in BASIC (1982-86) mit gleichzeitigen 8086-Assembler Orgien (wenn man was Kryptisches sucht, dann ist man damit gut bedient) C gelernt, das war im Rahmen meiner Diplomarbeit (ich habe nicht Informatik studiert). Ich war sofort begeistet von der Strunktur und Klarheit der Sprache. Das hat sich im gleichen Maß- trotz Erweiterung der Funktionen- an die Töchter und Enkelinnen C++, Java und C# vererbt.
Die Urahnin aller dieser Sprachen war Algol, es gibt viele ähnlich strukturierte Sprachen (PL/1, Ada, auch Pascal).
Was soll also falsch daran sein, eine davon zu lernen? Ich schreibe heute fast nur Java, kann aber- weil es ähnlich bzw. fast eine Übermenge davon ist, C, Pascal (das ich nie „gelernt“ habe), C++, C#, Kotlin etc. lesen und verstehen.
Übrigens hat mich das von 1987-1993 erlernte LISP die Lambdas in Jave sehr schnell verstehen lassen.
Und noch etwas- wer programmieren lernen will, sollte erstmal gar keine Sprache lernen. Zuerst sollte man verstehen, dass eine Programmiersprache nur ein Werkzeug zum Ausformulieren einer bereits vorhandenen Prozeßdefinition ist.
Python halte ich im Übrigen für sperrig, da die Funktion nie der Form folgen darf (Ersatz von klaren Strukturelementen {} oder begin / end durch Whitespace).
„Python halte ich im Übrigen für sperrig, “
ok, und das gilt nicht für C und C++?
und zu dem Rest was du schreibst: Angeber. den anderen empfehle ich dringend mal mehrere Tutorials zu Python durchzugehen und selbst zu entscheiden.
Ich arbeite DEUTLICH schneller mit Python und hab das fehlen der dämlichen Klammern SEHR zu schätzen gelernt, es zwingt gleichzeitig zu einem sauberen Layout. Python konnte ich mir selbst beibringen (was auch immer das heisst), mit C++ rätsel ich immer noch die meiste Zeit.
Ich brauch minimum nur Notepad++ und Python installiert, und du? Während du noch runterlädst, fang ich zu arbeiten an. Während du noch überlegst wie du was löst, bin ich mit einem kleinen Problemlöser schon fertig. Und ich schreibe keine Treiber oder sonstiges low-level zeuch.
Unglaublich gute Bibliotheken (ich komme aus dem Videobereich!).
Das einzige relativ „schwierige“ in Python ist die kompilierung in eine kleine EXE für die Weitergabe.
Und: Python könnte man sogar in C++ verwenden und AFAIK umgekehrt.
kurz: ich LIEBE Python! Schade das die Unis immer auf Java setzten.
Sollte JEDER mal selbst probiert haben.
Minimum Notepad++?
Darin kann ich auch Java programmieren. Achso, das kann ich übrigens auch mit einem normalen Textpad.
Sowas sind Scheinargumente bei der Wahl einer Programmiersprache.
Viel wichtiger ist, zunächst mal zu hinterfragen, WAS eigentlich programmiert werden soll. Danach kann dann die passende Programmiersprache ausgewählt werden.
Geht es darum, das Programmieren zu lernen, schließe ich mich vorbehaltlos einem der Vorredner an. Erstmal gar keine Sprache lernen, sondern vielmehr logisches Herangehen und Lösen eines Problems lernen. DAS ist die Grundlage guten Programmierens!
Will ich moderne neue Technologien dann mag das alles stimmen. Sonst ist C ein super Einstieg.
Und auch die alten Sprachen lohnen. Wer z.B. Cobol kann, der kann sich derzeit vor Stellenangeboten zu guten Konditionen in soliden Konzernen kaum retten.
Und noch etwas zum allgemeinen Gewicht von Programmiersprachen:
https://www.tiobe.com/tiobe-index/
Sollte man beim Lesen des Artikels daneben geöffnet haben.
Und ist mit SQLPL PL/SQL (Oracle) gemeint?
Das Problem ist hier, dass es meines Erachtens nie eine gute Idee ist, proprietäre Sprachen als einzige und hauptsächliche zu lernen. oder zu verstehen Dazu gehört ABAP genauso wie TypeScript oder C#. C und Java haben einige Plattformen bereits überlebt und werden noch einige mehr überleben. ABAP wird mit SAP, PL/SQL mit Oracle, TypeScript und C# mit Microsoft sterben. Java hat Sun genauso überlebt wie es Oracle überleben wird. C war von Anfang an nie fest an einen Computerhersteller oder Systemhersteller gebunden.
Über den Abschnitt zu Rust kann ich leider nur den Kopf schütteln. Das meiste davon ist falsch!
Rust kann keine Stack-Overflow-Fehler verhindern, das kann *keine* Sprache. Wahrscheinlich war gemeint, dass Rust memory-safe ist, so wie alle Sprachen mit einem Garbage Collector. Das besondere an Rust ist jedoch, dass Rust memory-safe ist, obwohl es *keinen Garbage Collector verwendet*.
Rust positioniert sich auch nicht zwischen low-level Sprachen und höheren Sprachen, Rust ist beides zugleich. Es ist low-level, weil es zu Maschinencode kompiliert und keine Runtime hat. Rust ist aber auch high-level durch die vielen Abstraktionen (Closures, traits, pattern matching, macros, iterators, futures, …).
Zitat: Rust „setzt für die Speicherverwaltung auf ein für funktionale Sprachen übliches Typsystem statt eines Garbage-Collectors.“
Falsch. Rust setzt für die Speicherverwaltung auf das *Ownership-Modell* statt eines Garbage-Collectors. Das gibt es in *keiner anderen Sprache*. Leider steht das auch in der deutsch-sprachigen Wikipedia falsch.
Dass für Rust wenig Bibliotheken verfügbar sind, kann ich nicht nachvollziehen; dazu kommt, dass Rust mit anderen Sprachen (z.B. C/C++) interoperieren kann, dadurch hat man alles was man braucht.
Hallo, gearde im Hinblick auf IoT/Zukunft sollte man Abra für IOTA lernen. Was denkt ihr?
„Python halte ich im Übrigen für sperrig, “
ok, und das gilt nicht für C und C++?
und zu dem Rest was du schreibst: Angeber. den anderen empfehle ich dringend mal mehrere Tutorials zu Python durchzugehen und selbst zu entscheiden.
Ich arbeite DEUTLICH schneller mit Python und hab das fehlen der dämlichen Klammern SEHR zu schätzen gelernt, es zwingt gleichzeitig zu einem sauberen Layout. Python konnte ich mir selbst beibringen (was auch immer das heisst), mit C++ rätsel ich immer noch die meiste Zeit.
Ich brauch minimum nur Notepad++ und Python installiert, und du? Während du noch runterlädst, fang ich zu arbeiten an. Während du noch überlegst wie du was löst, bin ich mit einem kleinen Problemlöser schon fertig. Und ich schreibe keine Treiber oder sonstiges low-level zeuch.
Unglaublich gute Bibliotheken (ich komme aus dem Videobereich!).
Das einzige relativ „schwierige“ in Python ist die kompilierung in eine kleine EXE für die Weitergabe.
Und: Python könnte man sogar in C++ verwenden und AFAIK umgekehrt.
kurz: ich LIEBE Python! Schade das die Unis immer auf Java setzten.
Sollte JEDER mal selbst probiert haben.
Naja man kann auch kritisieren ohne beleidigend zu werden.
Und ich bleibe dabei:
Die Form folgt der Funktion und nicht umgekehrt.
Deine Argumentation „ich arbeite deutlich schneller“ etc. is das was man anekdotisch nennt. „Also der Schwager der Freundin meines Cousins hat das homöopathische Mittel Hundescheiße D100 genommen und es hat total seine Erkältung geheilt…“
Und Deine Unterstellungen von wegen „während Du noch herunterlädst“ ist völliger Bullshit. Ich arbeite an richtigen Systemen, nicht an ein paar Scripts. Da kann ich mit Notepad nichts anfangen, ich brauche eine erwachsene IDE.
Dass Du Python liebst ehrt Dich sicher, aber nach wie vor gilt: Die Form folgt der Funktion. Punkt.
Hallo,
ich bin am überlegen, welche Software ich für meine Webapplikation verwenden sollte. Im Back-End schwanke ich vor allem zwischen Node.js und Django. Ich möchte einen Mathekurs für Schüler erstellen. In diesem soll es neben erklärenden Texten und Videos auch viele Übungsaufgaben unterschiedlichen Typs geben. Z.B. Ankreuzaufgaben, Eingabeaufgaben oder Zeichenaufgaben. Die Aufgaben sollen entsprechend des Lernfortschrittes gestellt werden. (Falsche Aufgaben mit veränderten Zahlen erneut stellen, …) Außerdem soll es ein Punktesystem und Lernstatistiken geben. Ich habe noch wenig Erfahrung mit Webentwicklung (Etwas HTML, CSS, Bootstrap, WordPress) und beherrsche weder JavaScript noch Python.
Punkte die für Python/Django sprechen könnten:
– leichter Syntax, schneller zu lernen für mich als Anfänger
– Entwicklung geht schneller, früherer Release
– Bibliotheken für mathematische/Statistische Berechnungen, maschinelles Lernen
Punkte die für JavaScript/Node.js sprechen könnten
– bessere Performance bei Echtzeitanwendungen: Nutzer soll bei Eingabe der Antwort schnell Lösung erhalten
Für welche Software würdet ihr euch in meinem Fall entscheiden? Was würde aus eurer Sicht für/gegen Django/Node.js sprechen?
Vielen Dank!
„ Denn TypeScript versteht JavaScript und vice versa.“
Ähm nein.
„Denn typescript versteht javascript“ Bis dahin stimmt das ja noch, obwohl streng genommen das Wort „versteht“ nicht zutreffend ist. Aber „vice versa“ ist bloedsinn.
Typescript ist einfach ausgedrueckt javascript + mehr, halt eine Obermenge von javascript.
Andererseits koennte man den Faktor Zeit hinzunehmen. Dann koennte man sagen, Typescript ist was Javascript wird. Obwohl das streng genommen auch nur theoretisch und im Idealfall zutrifft. In der Praxis jedoch geht ecmascript doch einen anderen weg als es fuer typescript prognostiziert wurde.
So, jetzt ist die Verwirrung komplett xD
TypeScript wird sich definitiv nicht durch setzen. Da macht es auch keinen Sinn immer und immer wieder zusagen, dass man TypeScript lernen soll. Seit Jahren, und es wird dabei bleiben, sind es PHP und JavaScript, die im Web dominieren werden. Wer Programmieren lernen will und dabei nicht auf Trends aufbauen will, sondern mit dem Erlernten auch was erreichen und umsetzen will, sollte PHP und JS lernen.
Ich wuerde sagen typescript hat sich schon laengst durchgesetzt.
Nicht zuletzt schlaegt sogar google typescript fuer die angular-entwicklung vor, obwohl die selber eine aehnliche transpilersprache namens „Dart“ haben.
Ausserdem kann man JS mit Typescript schwer vergleichen. Da typescript quasi javascript ist. Es macht auch keinen sinn typescript zu lernen wenn man kein JS gelernt hat.
Typescript ist ein optionaler Aufsatz fuer JS um Webapplikationen hochskalierbar zu machen durch die Verwendung von statischer Typisierung. Schlussendlich wird typescript in JS transpiliert.
Das Gute ist: Wenn man Typescript kann, kann man auch JavaScript, indem man einfach die Typannotationen weglässt. Offenbar haben Sie sich nie mit diesen „Trends“ beschäftigt.
Wenn man die Basics einmal verstanden hat, dann kann man sich überall recht schnell ein- und zurechtfinden.
Das kann man auch in einem Bewerbungsgespräch vermitteln. Um seinen Lebenslauf aufzubohren, kann man natürlich in jeder Sprache Mal sein „Hello World“ zum Besten geben. Dazu noch ein paar rudimentäre Tutorials um die Sache abzurunden. Aber Fachkundige Personaler wissen: Quantität ist nicht gleich Qualität. Wirklich relevantes Know-How lerne ich im Job.
Trotzdem eine schöne Übersicht über die aktuellen Sprachen-Trends! Zu meinen guten Vorsätzen fürs neue Jahr würde ich sie jetzt jedoch nicht zuordnen.
„Solltet“ ihr „unbedingt“ lernen … „2021“, ja ne is klar … Dann lerne ich mal diese 7 gelisteten Programmiersprachen. Wenn ich aufs schlafen und arbeiten verzichte schaffe ich es vielleicht.
Ich würde die Liste weniger als Handlungsaufforderung und mehr als Inspiration verstehen. Dafür ist sie ganz hilfreich. Man merkt allerdings, das Andreas halt noch ein euphorischer Student ist, der alles, was gerade hipp in der Branche ist, wie ein Schwamm aufsaugt. Und das ist auch gut so … so waren viele von uns vermutlich auch einmal. Im Job wird das später alles Mal ganz anders aussehen. Und im besten Fall kommt dann auch noch das Privatleben dazu ;)
Jetzt hat man also 2020 durch 2021 ersetzt. Hat sich ansonsten irgendwas an dieser Liste geändert? (Wobei ich die Liste eigentlich gar nicht schlecht finde, wie sie ist …)
Allerdings kann ich mich nur einem meiner Vorredner von 2018 anschließen, dass sich im Abschnitt über Rust viele Ungenauigkeiten befinden, wäre schön, wenn man das mal korrigieren würde.
Gutes Symbolbild übrigens – HTML war ja schon immer einer der populärsten „Programmiersprachen“.
wie manche andere hier auch, finde ich den „…,die Ihr unbedingt…“ wenigstens fragwürdig.
Denn a) was muss ich dann im nächsten Jahr unbedingt lernen?!
Programmiersprachen sind kein Selbstzweck! Sie stehen zwischen dem Programmierer und seiner zu lösenden Problemstellung und der CPU mit ihren wachsenden Möglichkeiten.
Ein Sprache kompensiert ein Defizit des Programmierers, denn warum entwickelt er nicht gleich in Maschinensprache. Neue Sprachen bedeuten also in erster Linie Kompensation neuer Defizite. Denn neue Programmiersprachen machen einen schlechten Programmierer nicht zu einem guten Programmierer!
Eine neue Sprache hat also für die allgemeine technische Entwicklung aber auch für die eigenen Karriere einen zeitlich begrenzten und damit modischen Charakter.
Und das führt zu b)
der zunehmenden und praktisch sinnfreien „Babylonischen Sprachverwirrung“!
Es ist in keiner Weise ersichtlich, in wie weit neue Sprachen Programme fehlerfreier gemacht haben. Neue Sprachen schaffen hingegen immer ein Schnittstellenproblem. Viele neue Sprachen wurden geschaffen, um neue Abstraktionsebenen hinzuzufügen – mit allen damit verbundenen auch negativen Konsequenzen.
Wir brauchen heute KI-Ansätze zum Debuggen. Viele FOSS-Programmierer glauben zudem, dass ihre Erzeugnisse schon deswegen gut, weil eben „frei und open source“ sind. Aber wie wir in zunehmenden Maße feststellen, ist das Gegenteil der Fall.
Außerdem sorgen auch und gerade Befindlichkeiten dafür, dass bestehende Projekte geforkt werden, was die damit verbundenen Probleme gleich mit verdoppelt.
Bei den Neu-Sprachlernern mögen Begriffe wie „Legacy“, C(++) oder COBOL ein Naserümpfen hervorrufen, aber dieses „Legacy“ steht in der Realität in aller erster Linie für: „Code that works!“
Zuerst einmal: Doch, Programmiersprachen können Selbstzweck sein. Ihnen geht es offenbar nicht so, aber mit bereitet es Freude, neue Konzepte kennenzulernen und mich vor neue Herausforderungen zu stellen. In den letzten Jahren habe ich einige Programmiersprachen gelernt, einige oberflächlich, andere im Detail. Ich hatte großen Spaß dabei.
Sie sehen nicht ein, warum neue Programmiersprachen Programme fehlerfreier machen können. Ich unterstelle Ihnen einfach mal, dass Sie noch nie in Rust oder Typescript programmiert haben.
Rust führt das neue Konzept der „Ownership“ ein, das durch Überprüfungen zur Kompilierzeit Data Races verhindern kann. Mit diesem Feature kann keine Ihrer Legacy-Sprachen aufwarten. Dadurch, dass der Compiler bestimmte Sachen unterbindet, wird der Entwickler außerdem gezwungen, besser darüber nachzudenken, was er dort eigentlich tut. Probieren Sie es aus, dann merken Sie es. Die Sprache bietet erstklassige Möglichkeiten für asynchrone Programmierung, für Netzwerkprogrammierung, für systemnahe Programmierung, ohne den Ballast von 40 Jahren, den C++ mit sich rumschleppen muss, weil man alle paar Jahre planlos neue Features einbaut, ohne alte Fehler entfernen zu können.
JavaScript ist (oder war bis vor kurzem) die einzige Möglichkeit für den Browser zu programmieren. An JavaScript führt hier keine Weg vorbei, mit COBOL können Sie das nicht. Leider gehört JavaScript zu den Sprachen, in denen auch erfahrene Entwickler schnell Fehler machen, da es kein Typechecking gibt und die Sprache einige komischen Eigenheiten hat. Typescript macht es besser, indem die Möglichkeit für Typannotationen geboten (und je nach Konfiguration auch erzwungen) wird. Das verringert das Risiko für Probleme in größeren Projekten erheblich. TypeScript ist ein riesiger Fortschritt gegenüber Javascript und hat definitiv seine Daseinsberechtigung.
Sie sagen es, die Möglichkeiten der CPUs wachsen, aber plädieren dafür, dass man weiter Sprachen aus den 50ern einsetzt? Multitasking in COBOL und C, viel Spaß! Google, Microsoft, Amazon und andere große und kleine Firmen setzten (unter anderem) auf neue Programmiersprachen. Gerade für Serveranwendungen sind Programmiersprachen wie Go, Rust und JavaScript/TypeScript (Node.js) doch geradezu geschaffen. Vor 50, 60, 70 Jahren bei der Erstellung von Fortran, Algol 60 und C hat niemand an diesen Anwendungszweck gedacht. Genauso wenig wie an KI, Smartphones und Toaster. Die Anforderungen wandeln sich.
Ich weiß gar nicht, wie Sie sich überhaupt für Computer interessieren können. Schließlich hat die Menschheit die letzten 4000 Jahre auch mit Rechenschiebern überlebt. Diese sind für jeden Menschen unabhängig von irgendwelchen Sprachen zu verstehen, und sie funktionieren einfach. Keine Bugs, kein Internet, kein Open Source, keine Abstraktionsebenen, genau das richtige für Ihre Ansprüche.
Im Ernst, wenn jeder Mensch Fortschritten so sehr misstrauen würde wie sie, wenn der Erfinder der Feuers es aus Angst weggelaufen wäre, wenn der Erfinder des Rads auf die TÜV-Zertifizierung gewartet hätte, bevor er sich getraut hätte, es zu benutzen, würden wir noch in Höhlen leben. Die Zeiten ändern sich, und COBOL ist wirklich nicht für moderne Einsatzzwecke geeignet
Mich würden von t3n noch mehr solcher Artikel interessieren. Gerne auch mit aktuellen Vergleichen und Entwicklungen. Ich kann z.B. überhaupt nicht nachvollziehen warum man außer vllt. für Treiber und Betriebssysteme Rust gegenüber Go bevorzugen sollte. Go hat extrem gute Bibliotheken für Webservices und Desktop Applikationen, betriebssystemübergreifend. Auch von der Syntax ist Rust eher eine Krücke aus meiner Sicht.
Ich arbeite insgesamt gerne je nach Anwendungsfall gerne mit PHP, Python und Go. Durch ChatGPT und CoPilot ist man schnell wieder im Thema wenn man eine Weile mit einer Sprache weniger entwickelte.