Beliebteste Programmiersprachen 1965 - 2019

  • Im Video fand ich die Langlebigkeit von Fortran beeindruckend. Immerhin startet es 1965 von der Pole Position und hält sich bis 1998 in den Top Ten. Vor 1965 war es aber schon einige Jahre die Nummer 1. In dem Punkt wird die Sprache nur von C ausgestochen.


    Auf Großrechnern und Vektorrechnern hätte diese Rangliste sicher anders ausgesehen. Da gab es meines Wissens nach um 1990 nicht viele Alternativen zu Fortran. Jedenfalls waren die großen, bekannten FEM-Pakete in dieser Sprache realisiert, wegen ihrer numerischen Programmbibliotheken. Beruflich konnte ich Fortran für Strömungssimulationen auch lange Zeit auf einer Workstation nutzen, zuletzt noch 2005. Anders als Forth oder Pascal, verlernt man Fortran wohl nicht so leicht. Vielleicht ein weiterer Grund für seine langwährende Beliebheit.

    : RPN ."Register-Postfix-Notation" ;

  • Ausserdem wird das Toolset drum herum immer wichtiger. Niemand würde heute mehr einen Java-Entwickler anheuern, der bloß Java beherrscht, ohne von git, jenkins, hibernate, angular, gradle, intellij, jms, xml, jason, liquibase, jpa, spring, kubernetes, docker oder bootstrap jemals gehört zu haben:neinnein:

    Das ist korrekt. Die verwendeten Programmiersprachen ändern sich von Projekt zu Projekt. Die Standard-Pattern und die Tools sollte man drauf haben.

    SQL würde ich noch ergänzen. Es gibt kaum ein Backend, dass nicht auf irgendeiner SQL-Datenbank arbeitet.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Ausserdem wird das Toolset drum herum immer wichtiger. Niemand würde heute mehr einen Java-Entwickler anheuern, der bloß Java beherrscht, ohne von git, jenkins, hibernate, angular, gradle, intellij, jms, xml, jason, liquibase, jpa, spring, kubernetes, docker oder bootstrap jemals gehört zu haben:neinnein:

    Das ist korrekt. Die verwendeten Programmiersprachen ändern sich von Projekt zu Projekt. Die Standard-Pattern und die Tools sollte man drauf haben.

    SQL würde ich noch ergänzen. Es gibt kaum ein Backend, dass nicht auf irgendeiner SQL-Datenbank arbeitet.

    SQL ist sehr mächtig und geht teilweise in Richtung Programmiersprache (z.B. https://oracle-base.com/articl…clause-enhancements-12cr1).

    Auch NOSQL-Datenbanken wie Elastic rudern inzwischen wieder zurück in Richtung SQL (https://www.elastic.co/de/what-is/elasticsearch-sql).

    Bei uns in der Firma gibt es unterschiedliche Ansichten, ob man etwa in ETL-Tools wie Informatica komplizierteste Mappings und Workflows grafisch oder einem Stück handoptimieren SQL formulieren sollte. Jedenfalls neigen ETL-Entwickler ohne Verständnis für SQL-Tuning dazu , schnell die Datenbank lahm zu legen und nach mehr Indexen zu rufen:cry2:

  • Das ist korrekt. Die verwendeten Programmiersprachen ändern sich von Projekt zu Projekt. Die Standard-Pattern und die Tools sollte man drauf haben.

    SQL würde ich noch ergänzen. Es gibt kaum ein Backend, dass nicht auf irgendeiner SQL-Datenbank arbeitet.

    SQL ist sehr mächtig und geht teilweise in Richtung Programmiersprache (z.B. https://oracle-base.com/articl…clause-enhancements-12cr1).

    Für Standardaufgaben reichen oft ein paar einfache Selects und Joins. Die sollte man halt drauf haben. Und das grundsätzliche Verständnis, wie SQL funktioniert. Alles weitere muss man sich dann reinziehen, wenn es das Projekt erfordert.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

    Einmal editiert, zuletzt von detlef ()

  • In wie weit das inzwischen in den Informatikunterricht bzw. Studium Einzug gehalten hat, das kann ich nicht beurteilen.

    Am Gymnasium meiner Tochter ist Python neben einer Einführungsrunde über Scratch die Programmiersprache. Spätestens wenn sie das in höherer Klasse macht, muss ich da wohl mal rein schauen...

  • Am Gymnasium meiner Tochter ist Python neben einer Einführungsrunde über Scratch die Programmiersprache. Spätestens wenn sie das in höherer Klasse macht, muss ich da wohl mal rein schauen...

    Scratch ist fuer mich so eine "Puzzel-Bilder"-Programmierung ;)

    Fuer den Anfang unter 10 Jahren OK fuer mich, aber in einer hoeheren Klasse wuerde ich was anderes erwarten
    (sowas wie damals Pascal)

  • Am Gymnasium meiner Tochter ist Python neben einer Einführungsrunde über Scratch die Programmiersprache. Spätestens wenn sie das in höherer Klasse macht, muss ich da wohl mal rein schauen...

    Scratch ist fuer mich so eine "Puzzel-Bilder"-Programmierung ;)

    Scratch ist genial. :)


    Meine Kinder haben das im 7. Schuljahr gemacht.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

    Einmal editiert, zuletzt von detlef ()

  • Am Gymnasium meiner Tochter ist Python neben einer Einführungsrunde über Scratch die Programmiersprache. Spätestens wenn sie das in höherer Klasse macht, muss ich da wohl mal rein schauen...

    Scratch ist fuer mich so eine "Puzzel-Bilder"-Programmierung ;)

    Fuer den Anfang unter 10 Jahren OK fuer mich, aber in einer hoeheren Klasse wuerde ich was anderes erwarten
    (sowas wie damals Pascal)

    Das Problem im Lehrbereich ist, dass es (immer noch) keine Strategie gibt. Da wird dann im Zweifelsfall die Sprache benutzt, die der Lehrer gerade beherrscht (oder zu beherrschen meint). Das Steckenpferd eines Dozenten an der Uni Regensburg war leider C++, das er seinen Studenten im Psychologie-Studium (sic) als Einstieg in die Programmierung nahebringen wollte. Ich hab meiner Tochter dann den Code geschrieben. Nach ihrer Aussage war der Dozent insbesondere von der Verwendung von function pointern fasziniert und hat sie entsprechend belobigt :prof:

  • Wenn ich mir die Lehrpläne für die 12 und 13 Klasse Informatik anschaue, kommt da programmieren fast gar nicht vor.

    Meine Kinder habe jetzt das erste Halbjahr der 12 hinter sich und haben ein paar Wochen Prolog programmiert.

    Ansonsten Syntaxdiagramme, Berechbarkeit, Halteproble, Komplexität (Goedel, Touring).


    Der Lehrplan für Hessen:

    https://kultusministerium.hess…es/2021-06/informatik.pdf

    Wie gesagt, erwartet nicht, dass da viel programmiert wird.


    Und so verläuft auch das Informatikstudium. Ich habe da nicht viel programmiert. Und wenn, dann war das Mittel zum Zweck.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Man fragt sich ja sowieso, was die in dem 'Fach' generell und überhaupt so treiben - in Dresden an der sogenannten Exzellenzuniversität denken sie sich z.B. Daten komplett selbst aus [1] und bedrohen dann Leute, die das zumindest seltsam finden. Aber daß C++ dort in einer "Einführung in Informatik" benutzt wird, paßt irgendwie auch ins Bild.

    (Eigentlich kann man sich ja schon auch fragen, was so eine Vorlesung da überhaupt bringen soll ... jetzt vielleicht von einer Vorstellung von Statistik Tools oder so mal abgesehen (was wiederum vermutlich sehr sinnvoll wäre); aber Programmier Projekt als Übung geht ja schon bißchen am "Target" vorbei.)



    Zu Scratch


    Das finde ich total fetzig - vor allem nach ich das mal im Echteinsatz bei einer Kinderveranstaltung gesehen habe. Da waren natürlich auch Leute anwesend, die bißchen wußten, was sie da tun und zeigen (Technische Sammlungen), aber man hatte wirklich den Eindruck, daß die Jungs und Mädchen da echt was Neues gesehen haben und was davon mitnehmen.


    Prinzipiell gefällt mir die Idee des grafischen Programmierens eigentlich aber auch für andere Sachen. Aus irgendwelchen Gründen hat sich das aber nicht so recht durchgesetzt. Auf dem Mac gab es aber ein zeitlang ein ganze Menge solche Programme, bei denen man Programmbablaufbilder "gemalt" hat.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Prinzipiell gefällt mir die Idee des grafischen Programmierens eigentlich aber auch für andere Sachen. Aus irgendwelchen Gründen hat sich das aber nicht so recht durchgesetzt. Auf dem Mac gab es aber ein zeitlang ein ganze Menge solche Programme, bei denen man Programmbablaufbilder "gemalt" hat.

    Nicht zufällig verwendet man in der Steuerungstechnik u.a. Funktionsbaustein- und Ablaufsprache und (speziell für die Elektriker) Kontaktplan.

    Lego Mindstorms verwendet auch so eine schöne bunte Ablaufsprache.

    Und in Labview werden auch komplexe Anwendungen programmiert.


    Das sind eben spezielle Sprachen für spezielle Anwendungen.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Der Lehrplan für Hessen:

    https://kultusministerium.hess…es/2021-06/informatik.pdf

    Wie gesagt, erwartet nicht, dass da viel programmiert wird.


    Danke - interessanter Text.


    Das steht da auch nicht mit drin, daß viel programmiert werden soll - wobei es in den hinteren Abschnitten ja doch angedeutet wird. Seite 15 oder Seite 18 etwa. Und auf Seite 34 findet sich dann aber, daß "Kenntnis einer prädiktiven oder funktionalen Programmierprache" wohl nur für "LK" angedacht ist.


    Ich mag ja sehr die abstrakten Datentypen Keller und Schlange (auf Seite 18) ebenso wie das Teile und Herrsche Prinzip als Beispiel für einen effizienten Algorithmus. Oder auch die polynomiale und exponentielle Zeitkomplexität.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Oder auch die polynomiale und exponentielle Zeitkomplexität.

    Hoer mir bloss auf. Da bin ich ganz schön ins Schwitzen gekommen, als ich das meinen Kindern erklären sollte. :fp:

    Musste ich mir alles wieder ergoogeln.


    Jetzt habe ich das alles wieder drauf, inkl. Touring-Maschine, Fleißiger Bieber usw. (da ging es um das Halteproblem).

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • dass im Informatik-Studium theoretische Grundlagen gefragt sind, ist ja klar. Bei Naturwissenschaftler, wozu man im weitesten Sinne auch Psychologen zählen kann, geht es in erster Linie aber um nummerische oder statistische Verfahren, die handwerklich zu codieren sind. Im Anwendungsgebiet des besagten Dozenten hätte ich eher R oder Mathlab verortet als C++. Wahrscheinlich meinte er, "richtige" Programmierung müsse auch richtig kompliziert sein...

  • dass im Informatik-Studium theoretische Grundlagen gefragt sind, ist ja klar. Bei Naturwissenschaftler, wozu man im weitesten Sinne auch Psychologen zählen kann, geht es in erster Linie aber um nummerische oder statistische Verfahren, die handwerklich zu codieren sind. Im Anwendungsgebiet des besagten Dozenten hätte ich eher R oder Mathlab verortet als C++. Wahrscheinlich meinte er, "richtige" Programmierung müsse auch richtig kompliziert sein...

    Mir war das schon klar. Aber viele setzen halt Informatik mit dem Erlernen ein Programmiersprache gleich. Eine Sprache lernen kann man im VHS-Kurs. Das ist eben nicht Informatik. Programmieren ist nur die praktische Umsetzung der Grundlagen, die man in der Informatik gelernt hat. Und dafür nimmt man eben die Sprache, die gerade am besten passt.


    Ich hab gerade mal durchgezählt. Ich habe in Studium und Berufsleben inzwischen in mindestens 15 klassische Programmiersprache programmiert (bzw. programmieren müssen). Dazu kommen dann noch die diversen SPS-Programmiersprachen und Assembler für diverse Mikrocontroller. Als Informatiker sollte man schon etwas flexibel sein. ;)

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Ich verstehe immer nicht so richtig was leute gegen das Einrücken bei Python haben... wie rückt ihr denn in anderen Sprachen ein?


    Ich programmiere selbst am liebsten in C (mit embedded Lua falls nützlich) und habe Python vor ein paar Jahren eher widerwillig angefangen. Ich muss aber sagen dass sich mit Python schon ganz gut arbeiten lässt. Und in einigen Bereichen (zB Machine Learning) kommt man sowieso überhaupt nicht darum herum weil Python (+TensorFlow/PyTorch) als Anforderung in 95% der Jobbeschreibungen steht ;)


    Mein Haupt-Kritikpunkt an Python wäre dass es zu einfach ist, bzw. eher dass es Komplexität versteckt. Das erleichtert es Anfängern erstmal den Einstieg zu finden, führt dann aber doch später oft zu Problemen eben weil das tiefere Verständnis fehlt.

    Suche: SGI Indigo (gerne IP12), DEC/DIGITAL CRT Monitor und ein VT240 (inkl. Monitor).

  • Ich finde es gerade gut, dass Python einen zur einheitlichen Einrückung 'erzieht'. :)

    Probleme hab ich, als alter Copy&Paste-Programmierer, nur wenn verschiedenen Einrückungsstilen (Leerzeichen vs. Tab) aufeinandertreffen.

    Da helfen aber die guten Code-Editoren. :mrgreen:

  • Rein prinzipiell ist aber so eine { } als Trenner formal schon irgendwie besser. Es geht ja auch ein bißchen um Trennung von Form und Inhalt. Bei HTML probiert man zur gleichen Zeit sowas wie CSS oder gar XML. Und bei den/der Programmiersprachen schafft man das zur gleichen Zeit ab - irgendwie seltsam.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Ich finde es gerade gut, dass Python einen zur einheitlichen Einrückung 'erzieht'. :)

    Probleme hab ich, als alter Copy&Paste-Programmierer, nur wenn verschiedenen Einrückungsstilen (Leerzeichen vs. Tab) aufeinandertreffen.

    Da helfen aber die guten Code-Editoren. :mrgreen:

    Die Editoren müssen dann retten, was die Sprachdefinition nicht hergibt. Zum Glück hatte ich beruflich nur kurz mit Python zu tun. Vermischung von Formatierung und Semantik geht überhaupt nicht.


    Ich habe auch immer noch kein gültiges Syntaxdiagramm für dieses völlig verkorkste Konzept gesehen. Gibt's überhaupt Syntaxdiagramme für Python?

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Rein prinzipiell ist aber so eine { } als Trenner formal schon irgendwie besser.

    Meinst du? Aber warum denn?


    Syntax gibts hier: https://docs.python.org/3/reference/grammar.html


    Warum geht denn keine Vermischung von Formattierung und Semantik? Mein Punkt war ja gerade dass wir die Formattierung sowieso so machen und dann evt. } und end Anweisungen nur für den Compiler machen. Warum also nicht gleich den Compiler schlau genug machen Code-Blöcke genau wie wir anhand der Einrückung zu erkennen?


    Ich bin ja gar kein begeisterter Python-Anhänger sondern muss das halt verwenden und kann mich auch ganz gut damit abfinden. Ich merke nur immer wieder dass viele (gerade aus dem Informatik-Bereich ist mein Eindruck) eine starke Ablehnung dageben haben und versuche zu verstehen warum. Also ob es dafür gute sachliche Gründe gibt oder ob es nur die allgemeine Skepsis gegenüber "neuem" ist ;)

    Suche: SGI Indigo (gerne IP12), DEC/DIGITAL CRT Monitor und ein VT240 (inkl. Monitor).

  • Für einen Informatiker ist Python am Anfang wie eine Linksgewindeschraube für einen Mechaniker. "Fühlt sich halt falsch an".


    Mann kann sich aber dran gewöhnen, und nach einer Weile tut's gar nicht mehr weh ;)

  • Rein prinzipiell ist aber so eine { } als Trenner formal schon irgendwie besser.

    Meinst du? Aber warum denn?


    Naja, das ist einfach: der Trenner ist ja in Phython auch noch da. Er ist halt schlicht nötig, um da Eindeutigkeit für den Compiler (oder sowas in der Art) herzustellen. Es geht also aus strukturellen Gründen gar nicht ohne. [ Eventuell ändert sich das mal, wenn solche Tools intelligent(er) werden, aber dann werden sie vermutlich auch im gleichen Atemzug direkt selbst programmieren können und der Programmierer als solcher wird schlicht unnötig. Bis dahin - nämlich bis zu Erkennung der gemeinten / eigenlichen Semantik - wird es wohl in irgendeiner Form bei der "Strukturierung" bleiben. ]


    Und jetzt kommt der Punkt. Pyhton benutzt dafür ":" und anschließende Leerzeichen (mal mehr mal weniger) nach einem definiertem System.

    C z.B. benutzt dafür { }.

    Die Eindeutigkeit ist darum bei beiden auf gleiche Art gegeben.

    Nur: ein Leerzeichen ist mit das ungünstigeste Zeichen, was man für soetwas überhaupt benutzen kann, v.a. weil es eben auch noch andere Funktionen hat - in letzter Konsequenz als Trenner von "Texteinheiten". Die { } dagegen macht eigentlich eben nur den Block auf/zu, ist aber insbesondere eben nicht nebenbei noch eines der wichtgsten Zusatzzeichen überhaupt.


    Was etwa wohl gar nicht geht, ist, daß man den Pythontext zusammenkürzt - zumindest auf Textebene - und die Spaces einfach mal wegwirft, wenn sie überflüssig sind, da sie ja bereits bei einer einfachen verschachtelten Schleife geradezu essentiell sind.


    Andersherum läßt sich aber eine Markierung in der Art { } beliebig erweitern und auch in schöne Formate bringen. Und bei der Power heutiger Rechner kann das auch der Editor eigentlich schon machen. Dazu muß er evtl. das Symbol auch gar nicht anzeigen, wenn es durch passende Spaces ersetzt wird; aber eben nur auf dem Bildschirm.




    Das Argument ist gut - und vor allem auch das mit den Leuten, die das nicht so kryptisch haben wollen, kann ich absolut nachvollziehen.

    Ist aber kein guter Grund, sowas wirklich Basales in einer Sprache umzuwerfen.


    Es würde eher dafür sprechen, die passenden Tools zu bauen - und wahrscheinlich gibt es die auch schon längst - die es evtl. ermöglichen Strukturen schöner anzuzeigen und einfacher einzugeben. Beim Multicoloring von Syntax geht das ja mittlerweile ganz gut, und wenn es erstmal nur simpler Fettdruck von Sprachwörtern ist, bringt das ja schon viel.



    Mein persönliches Hauptargument gegen die { } wäre, daß man sie auf einem deutschen Keyboard unglaublich schlecht eingeben kann. Und daß sie ein sehr ungewohntes Symbol sind (aber genau deswegen hat man sie ja evtl. ausgesucht).



    (PS: Ich weiß ja auch nicht, wie das Python intern geregelt wird. Evtl. werden ja eingerückte Spaces nach einem Doppelpunkt, gleich in ein passendes Symbol übersetzt.)

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Je mehr Programmiersprachen ich auf professionellem Level gelernt habe, desto mehr kam ich dahinter, dass alle Sprachen irgendwas haben, was den anderen überlegen ist.


    Finde ich gar nicht so verkehrt, dadurch lockern sich festgefahrene Denkmuster auf.


    Sehr schöne Punkte. Vielleicht ist das auch der eigentliche Grund, weshalb es überhaupt soviele Sprachen gibt. Weil eben verschiedene Leute verschieden an sowas herangehen, oder einfach gelegentlich mal 'anders' herangehen wollen.


    Die Masse bildet dann einfach die schöne Vielfalt der Leute ab, die sowas benutzen. Im Idealfall würde sich jeder das am Besten zu ihm Passende suchen.



    Was ja irgendwie schon auffällig ist: die konstruierten Sprachen, mit dem Anspruch alles abzudecken (sowas wie Ada, PL/1, Smalltalk und evtl. auch LISP oder Swift) funktionieren irgendwie wohl v.a. deshalb nicht, weil die Leute sie nicht annehmen - egal wie gut es durchdacht ist.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Was ja irgendwie schon auffällig ist: die konstruierten Sprachen, mit dem Anspruch alles abzudecken (sowas wie Ada, PL/1, Smalltalk und evtl. auch LISP oder Swift) funktionieren irgendwie wohl v.a. deshalb nicht, weil die Leute sie nicht annehmen - egal wie gut es durchdacht ist.

    Ich denke, da ist ein Denkfehler drin: Die meisten Leute programmieren ja nicht deswegen, weil sie grade Lust drauf haben: Sie wollen, dass ihr Computer ein Problem möglichst gut löst.


    "Gut" ist allerdings kein eindeutiger Qualitätsbegriff. Das kann "schnell" meinen, dann nehme ich C oder Assembler. Das kann "wartbar, geeignet auch in 10 Jahren noch zu funktionieren, aber trotzdem schnell" - dann nehme ich C++. Will ich schnell was zusammenhacken, was nur ein- zweimal funktionieren muss, nehme ich Python. Will ich formal möglichst gut verifizieren lassen können, dass mein Programm möglichst fehlerfrei ist, nehme ich (auch heute noch) Ada. Will ich "eigentlich gar nix Besonderes", nehme ich (widerwilig) Java oder C#. Will ich dabei möglichst schnell verrückt werden, nehme ich Swift, Lisp, oder Forth ;).


    Wie "leicht" eine Sprache zu lernen ist, hängt auch davon ab, welche Abstraktionsebenen (und das heißt sowohl Abstraktion vom Problem als auch Abstraktion der Maschine) sie verwendet. Oftmals sind auch "Köder" drin (z.B. in Logo die Schildkröte, die wirklich einfach war, viele davon Angelockte haben aber, sobald sie die Listen gesehen haben, alles wieder weggelegt). Abstraktionsebenen, die vollständig auf den Anwender ausgerichtet sind, machen typischerweise die Programme langsam, sind sie auf Geschwindigkeit ausgelegt oder garnicht vorhanden (wie bei C oder Assembler), machen sie die Programme schwer zu verstehen.


    Kommt halt immer drauf an, was man will und was man schon kann. Oder, in der professionellen Welt: Wofür man genug gute Leute zusammenkriegt. Ada und Smalltalk kann keiner. Gute C++-Entwickler für technische Software zu kriegen wird zunehmend schwieriger. Java und C# geht grade so, Python z.B. kann anscheinend jeder. C kann anscheinend auch jeder, aber ein C-Programm zu schreiben, dass auch jeder lesen kann und das dann auch noch performant und möglichst fehlerfrei ist, ist eine Kunst, die wirklich nur sehr Wenige beherrschen. Die Kunst beim professionellen "Software-Machen" ist wirklich nicht, irgendwas hinzukriegen, was bei der Auslieferung einmal funktioniert, sondern was auf die Beine zu stellen und weiterzutreiben, was nicht nach 10 Jahren Wartung zu vollkommenem Kauderwelsch-Spaghetti verkommen ist.


    Und: Was außer Assembler sollen denn "nicht konstruierte Sprachen" sein?

  • Mein persönliches Hauptargument gegen die { } wäre, daß man sie auf einem deutschen Keyboard unglaublich schlecht eingeben kann. Und daß sie ein sehr ungewohntes Symbol sind (aber genau deswegen hat man sie ja evtl. ausgesucht).

    Ich denk man hat sie vor allem auch zur Unterscheidbarkeit genommen. Es werden ja auch runde und eckige Klammern verwendet, alle für jeweils ihren eigenen Zweck. Man kann zwar auch für alles den selben Klammertyp nehmen, aber dann landet man bei Lisp und verirrt sich im Klammerirrgarten ;)

    - Acorn Archimedes 5000 - 4 MB - 2 IDE HDDs - Castle SCSI II - (Yamaha CRW2100SX) - Dell U2311h -

  • Brainfuck ... sieht irgendwie schwer lesbar aus ...



    Und: Was außer Assembler sollen denn "nicht konstruierte Sprachen" sein?


    War vielleicht ein unglücklicher Begriff. 'Konstruiert' meinte sowas wie die Idee der alles abdeckenden Sprache, die für jedes und alles paßt. Genau das war zumindest bei PL/1 und Ada irgendwie die grundlegende Idee ( PL/1: "... published by IBM. It is designed for scientific, engineering, business and system programming. ..." ). Und smalltalk wollte gleich die gesamte Welt abbilden.


    Daß natürlich alle irgendwie konstruiert sind, ist ja klar.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Brainfuck ... sieht irgendwie schwer lesbar aus ...

    Da nimm Whitespace, das ist gar nicht lesbar ;) dafür sind aber Ausdrucke besonders Toner sparend...

    Bei whitespace werden alle nicht-whitespace Zeichen ignoriert, d.h. man kann sehr schön Platzsparend z.B. C und whitespace Code in einer Datei kombinieren! :)

    Suche: SGI Indigo (gerne IP12), DEC/DIGITAL CRT Monitor und ein VT240 (inkl. Monitor).

  • "Gut" ist allerdings kein eindeutiger Qualitätsbegriff. Das kann "schnell" meinen, dann nehme ich C oder Assembler. Das kann "wartbar, geeignet auch in 10 Jahren noch zu funktionieren, aber trotzdem schnell" - dann nehme ich C++. Will ich schnell was zusammenhacken, was nur ein- zweimal funktionieren muss, nehme ich Python. Will ich formal möglichst gut verifizieren lassen können, dass mein Programm möglichst fehlerfrei ist, nehme ich (auch heute noch) Ada. Will ich "eigentlich gar nix Besonderes", nehme ich (widerwilig) Java oder C#. Will ich dabei möglichst schnell verrückt werden, nehme ich Swift, Lisp, oder Forth ;).

    :thumbup::thumbup::thumbup:

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."