Roadmap für ALLE Programmiersprachen

BeBur schrieb:
Puh, hast du ein Beispiel dafür?
Smalltalk
Lisp (aber eher die Scheme-Familie als die Common Lisp-Familie)
:-)
Gut. Lisp ist da fast zu konsistent. Weil auch mathematische Operatoren prefix geschrieben werden. Das bringt zwar Konsistenz aber bricht mit der Gewohnheit, das sowas normalerweise zwischen den Operanden steht.

BeBur schrieb:
Spätestens bei Sprachen, die effizient kompiliert werden können wird es dünn.
Ja. Das liegt aber auch daran, das elegante Sprachen auf Hardware treffen die nicht elegant sind.
Simples Beispiel: Wenn Du unter C ein Integer hast, weißt Du halt, das passt in ein CPU-Register. Bei einer Sprache die davon wegabstrahiert und stattdessen den Typ "Ganze Zahl" hat, muss das natürlich irgendwie "einpassen" was zwangsläufig "Reibungsverluste" hat.

Man kriegt aber trotzdem ganz respektable Geschwindigkeiten, wenn man genug Optimierung drauf wirft.

BeBur schrieb:
C++ ist diesbezüglich vermutlich ein schlimmeres Monster als Java.
Ja. In C++ kloppt man halt alles an Features rein was geht (und was sich zudem "zero-cost" implementieren lässt). Und dann kommt noch das Altlast-Problem hinzu mit all den Kram, den man zwar möglichst nicht mehr verwendet werden soll aber natürlich aus Kompatibilitätsgründen noch drin ist.
Mit Rust hat man ja ein Beispiel für eine Sprache, die da ein deutliches besseres Design hat und aber gleichzeitig für die Anwendungsgebiete geeignet ist, die man sonst mit C++ (oder gar C) erledigt hat.

Also ich bin nicht mehr so in der Java-Entwicklung drin, daher sind meine Aussagen vielleicht etwas veraltet. Aber Java zeichnete sich immer dadurch aus, das die ein überschaubares Set an Sprachkonstrukten hatten. Das machte Java einerseits verbose, weil man dann umständlich Sachen bauen musste. Dafür hatte man häufig ein One-way-to-do-it, welches Java-Code gut lesbar machte
Und die waren auch eigentlich immer sehr konservativ, was das hinzufügen neuer Features angeht (man gönnte sich stattdessen lieber komplexe Frameworks :)).

BeBur schrieb:
btw. Yukihiro Matsumoto ist großer Fan von Lisp und Smalltalk. Die Eigenschaften von Ruby kommen also nicht von ungefähr. :)
Hab auch mal ne Weile mit Ruby was gemacht.
Bei dynamischen Sprachen hast Du natürlich häufig das Problem, das viele Fehler erst zur Laufzeit auffallen. Da muss man auf ne gute Testabdeckung achten. :-)

BeBur schrieb:
Umfangreiches Marketing von Oracle als diese noch ein zentraler Player waren.
Java wurde ja damals schon unter Sun gepusht. Damals, als das WWW aufgekommen ist und man sich auf die Hype-Welle mit drauf gesetzt hat. Und durchaus ja nicht völlig zu Unrecht. Applets waren ja eine frühere Variante davon, was man heute mit WebApps macht.
 
  • Gefällt mir
Reaktionen: nutrix
BeBur schrieb:
Umfangreiches Marketing von Oracle als diese noch ein zentraler Player waren.
Das stimmt so nicht. Zurzeit ist es Oracle, davor Sun. Und die mussten nichts "vermarkten", weil das Produkt wie gesagt gut durchdacht wurde und es keines Marketings bedurfte.

Das klingt ein bisschen so, als wenn aus etwas schlechtem Gold gemacht wurde ... was falsch ist. Das Produkt ist/bleibt die beste Werbung für das Produkt. :D

C++ kann man einfach in die Tonne werfen, wenn man nicht gerade hardwarenah programmieren muss ... Das tut sich inzwischen keiner mehr freiwillig an.
 
CyborgBeta schrieb:
C++ kann man einfach in die Tonne werfen, wenn man nicht gerade hardwarenah programmieren muss ... Das tut sich inzwischen keiner mehr freiwillig an.
Oh, du kennst das Heise-Forum nicht. Da gibt's einige, laut denen nach C++ nur noch Mist kam für Leute, die nichts können.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: CyborgBeta
CyborgBeta schrieb:
weil das Produkt wie gesagt gut durchdacht wurde
Es fehlt immer noch der Nachweis von Dir, das Java gut durchdacht ist.
Bisher ist das eine reine Behauptung und wenn man dich auf bestimmte Dinge hinweist, wird das entweder ignoriert oder mir "es wäre ja sonst nicht so erfolgreich" abgetan.

CyborgBeta schrieb:
C++ kann man einfach in die Tonne werfen, wenn man nicht gerade hardwarenah programmieren muss ...
C++ ist ziemlich erfolgreich. Im Grunde widerlegt der Erfolg von C++ Dein "Argument".
Ergänzung ()

pseudopseudonym schrieb:
Da gibt's einige, laut denen nach C++ nur noch Mist kam für Leute, die nichts können.
Dieser "Generationenkonflikt" ist weder neu, noch C++-spezifisch:
https://www.ee.torontomu.ca/~elf/hack/realmen.html
:-)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: nutrix
@andy_m4 Schau hier:


ich unterstelle jetzt einfach mal, James Gosling kann sowohl C++ als auch Java programmieren ;)
 
CyborgBeta schrieb:
ich unterstelle jetzt einfach mal, James Gosling kann sowohl C++ als auch Java programmieren
Die genannten Umstände sind mir wohl bekannt. Hat aber eher am Rande damit zu tun, ob Java durchdacht ist. Hat mehr mit der Frage zu tun, was die größten Probleme in Sprachen wie C++ sind und wie man die umschiffen kann.
Es ging ja auch gar nicht um ein Vergleich mit C++, sondern darum, ob Java eine durchdachte Sprache ist.

btw.: James Gosling hat auch mal was anderes gesagt. Auf die Frage, was er im nachhinein bei Java anders machen würde, sagte er sinngemäß, er würde die Klassen weglassen. :-)
Wobei er nicht Klassen als solche als Problem sieht, sondern eher das Konzept der Vererbung.
Siehe dazu auch:
https://www.javaworld.com/javaworld/jw-08-2003/jw-0801-toolbox.html (Original-Link funktioniert leider nicht mehr)
Der Punkt ist, das James Gosling selbst Aspekte seiner Sprache als suboptimal ansieht.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: nutrix und CyborgBeta
andy_m4 schrieb:
Hat mehr mit der Frage zu tun, was die größten Probleme in Sprachen wie C++ sind und wie man die umschiffen kann.
Na ja, er nennt schon einige Eigenschaften von Java, in denen es C++ haushoch überlegen ist ...

Also ein sowohl als auch. ... Oder von mir aus auch: des einen Schwäche ist des anderen Stärke.
 
andy_m4 schrieb:
Smalltalk
Lisp (aber eher die Scheme-Familie als die Common Lisp-Familie)
:-)
Scheme habe ich wirklich gehaßt, und ich mußte zum Glück beruflich nirgends irgendwo sowas mal wieder einsetzen.

Nur mal zum Thema Java und Plattformunabhängigkeit. Ich hatte Anfang der 90er Cobol programmiert, wo AcuCobol schon das konnte. Einmal in einem Zwischencode kompiliert und dann einfach auf die Cobol-Runtime auf AIX, Windows und zig andere Unixarten deployed, und lief. Als dann Java mit dem JVM kam, und das alle so als innovative Neuerung feierten, ich so nur 🧐 🥱🙄, mach ich doch schon lange in Cobol so.
 
Frage aus den hinteren Reihen: Laßt ihr Maple als Programmiersprache gelten?
 
  • Gefällt mir
Reaktionen: CyborgBeta
Eigentlich nicht, siehe schon alleine die Schnittstellen zu richtigen Programmiersprachen:
https://de.wikipedia.org/wiki/Maple_(Software)

Schnittstellen​

Maple besitzt Schnittstellen zu Matlab, Fortran, C, C#, Java, Visual Basic, Python, Perl, R, JavaScript, Julia und Swift, die Maple-Code in diese Zielsprachen übersetzen. Umgekehrt lassen sich Fortran-, C-, C#- oder Java-Routinen in Maple einbinden, und Maple lässt sich aus C, Java und VisualBasic aufrufen (OpenMaple-API).
Eine Programmiersprache hat meines Wissens nach keine solche Schnittstellen zu anderen Sprachen.
Ergänzung ()

Auch nur mal so als Denkanstoß, falls das einige hier nicht mitbekommen haben: Man programmiert heute eigentlich nicht mehr, man modelliert, und die Sprache, die dann hinten rauspurzelt, ist egal.
 
  • Gefällt mir
Reaktionen: CyborgBeta
nutrix schrieb:
Man programmiert heute eigentlich nicht mehr, man modelliert, und die Sprache, die dann hinten rauspurzelt, ist egal.
Sehe ich nicht so. Noch kann ChatGPT noch nicht alles in Perfektion in jeder Programmiersprache... Aber damit lenke ich wahrscheinlich wieder vom Thema ab... ich bin mal was essen.
 
nutrix schrieb:
mach ich doch schon lange in Cobol so.
Ja. COBOL und Java haben erstaunlich viele Gemeinsamkeiten. Vor allem das "Würden wir gerne weg haben, aber wir haben so viel legacy, das das praktisch gar nicht zu schaffen ist" ;-)


Araska schrieb:
Laßt ihr Maple als Programmiersprache gelten?
Klar.
Wir lassen sogar INTERCAL durchgehen. Soll ja keiner sagen, wir wären nicht tolerant. :-)
 
  • Gefällt mir
Reaktionen: guzzisti und nutrix
CyborgBeta schrieb:
Sehe ich nicht so.
Sorry, nicht böse gemeint, aber es ist irrelevant, wie Du es sehen willst. Da solltest Du mal wirklich in dem Bereich arbeiten und mal schauen, was da aktuell so überall passiert. Real wird das schon vielfach so in vielen Bereichen gemacht, ich war da ja viele Jahre als Consultant unterwegs. Bonita, Kissflow, Oracle BPM, Talend, Kmine, Tableau, Calmunda, Jaspersoft....

Natürlich wird es das Programmieren nicht komplett ersetzt. Aber Du wirst nicht glauben, wie viele heute da mit solchen Tools erfolgreich modellieren, ohne Programmierkenntnisse. Und es funktioniert sogar sehr gut.

Und als Consultant gehst Du nicht nachdem, was Du willst oder sinnvoll ist, Du lieferst das, was der Kunde will, in seiner Umgebung, in seiner Programmiersprache, in seinem Workflow, mit seiner Infrastruktur...
 
Zuletzt bearbeitet:
CyborgBeta schrieb:
Na ja, er nennt schon einige Eigenschaften von Java, in denen es C++ haushoch überlegen ist ...
Wie gesagt: Es geht gar nicht um den Vergleich Java vs. C++
Wenn ich sage Joghurt ABC schmeckt besser als Joghurt XYZ dann heißt das noch lange nicht, das Joghurt ABC gut schmeckt.

Übrigens: In der Java-Runtime findet sich sehr viel C++ Code. Grade so innerhalb von Hotspot (welches letztlich Java-Code ausführt).

nutrix schrieb:
Aber Du wirst nicht glauben, wie viele heute da mit solchen Tools erfolgreich modellieren, ohne Programmierkenntnisse. Und es funktioniert sogar sehr gut.
Ich finde das übrigens auch vollkommen legitim. Das versetzt es Leute in die Lage ihre alltäglichen Probleme zu lösen, die das sonst nicht konnten.
Und vermutlich ist das was die "KI" ausspuckt immer noch um Längen besser, als das was ein schlechter Programmierer sich irgendwie von stackoverflow u.ä. zusammenkopiert,

Was meine Befürchtung ist, das das auch zunehmend da eingesetzt wird, wo Qualität gefragt ist. So lange das immer noch im Peer-Programming mit jemand der sich auskennt geschieht, ist auch das noch ok. Wenn dann aber die Fachkräfte aus Profitgründen auch noch wegfallen, wirds langsam kritisch.
 
  • Gefällt mir
Reaktionen: nutrix
andy_m4 schrieb:
Und vermutlich ist das was die "KI" ausspuckt immer noch um Längen besser, als das was ein schlechter Programmierer sich irgendwie von stackoverflow u.ä. zusammenkopiert,

Was meine Befürchtung ist, das das auch zunehmend da eingesetzt wird, wo Qualität gefragt ist.
Was sollen diese Sticheleien? Du kennst meinen Werdegang überhaupt nicht.
 
CyborgBeta schrieb:
Du kennst meinen Werdegang überhaupt nicht.
Richtig. Ich kann nur den Outcome beurteilen. ;-)

CyborgBeta schrieb:
Was sollen diese Sticheleien?
Das war gar nicht explizit gegen Dich gerichtet. Glaub mir, das man sich von Stackoverflow ähm ... inspirieren ... lässt, das ist nicht etwas, was Du exklusiv hast.
Ist auch als Solches nicht verwerflich. Ich guck auch viel in Code so a-la "wie hat der dasunddas realisert". In anderer Leute Code zu schauen ist eine der (zentralen) Ideen hinter Open-Source.
 
  • Gefällt mir
Reaktionen: CyborgBeta
andy_m4 schrieb:
Ich finde das übrigens auch vollkommen legitim. Das versetzt es Leute in die Lage ihre alltäglichen Probleme zu lösen, die das sonst nicht konnten.
Richtig. Der Trend geht in den letzten Jahren genau da hin, daß die Sachbearbeiter ihren "Mist" selbst bearbeiten und lösen zu können, anstatt teure und permanent ausgelaste Fachkräfte jeden Pups neu implementieren zu müssen, weil Formular A nun das Häcken B für Verfahren C mit Gesetzesvorlade D braucht.

Beispielsweise gibt es schon sehr lange sowas wie Data Preparation und Data Stewardship, wo Sachbearbeiter ohne jegliches SQL-Know How selbst für saubere Datenhaltung, Dubletten und Co. in Datenbanken sorgen können, und man nicht mehr dem SQL Entwickler bemühen müßte. Ich sehe jedes Mal große Augen in den Meetings, wenn ich davon erzähle, und man schaut mich an wie den Mann im Mond oder als ob ich ein Außerirdischer wäre. Meiner Meinung nach gibts schon so viele geile und gute Lösungen auf dem Markt, die nur kaum einer kennt und nutzt.
andy_m4 schrieb:
Und vermutlich ist das was die "KI" ausspuckt immer noch um Längen besser, als das was ein schlechter Programmierer sich irgendwie von stackoverflow u.ä. zusammenkopiert,
Neh, nach meinen bisherigen Tests und Versuchen ist da noch vieles im Argen. Die dafür ausgelegten LLMs haben alle heute noch ein Riesenproblem, sie können nicht einbeziehen, was ich jetzt genau als Version des jeweiligen Programms, App, OSS, OS usw. vorliegen habe. Letzte Trauerspiel war ein simples Analysieren mit Powershell und CSV Dateien, wo fast nichts auf Anhieb lief, sondern nur mit zig Korrekturen und eigener Recherche und Lesen gelöst werden konnte. Gute Entwickler werden lange nicht aussterben, sie wird man noch lange brauchen. Aber das geht auch nur, wenn diese Leute alle eine solide Ausbildung darin haben. Wenn sie nicht genau wissen, was sie da tun und lösen sollen, hilft eine KI Unterstützung auch nicht weiter. Daher bin ich noch tiefenentspannt, das wird noch locker 10-20 Jahre dauern, bis das wirklich gut wird, so daß Du einen Entwickler ersetzen kannst.

Und selbst in Star Trek TNG und Co. müssen Chief OBrian, Geordi oder Data noch eine Menge programmieren. 😎 🖖
andy_m4 schrieb:
Was meine Befürchtung ist, das das auch zunehmend da eingesetzt wird, wo Qualität gefragt ist. So lange das immer noch im Peer-Programming mit jemand der sich auskennt geschieht, ist auch das noch ok. Wenn dann aber die Fachkräfte aus Profitgründen auch noch wegfallen, wirds langsam kritisch.
Genau das ist aber das Thema, dem wir uns alle stellen müssen. Da passiert sehr viel momentan an vielen Unternehmen und Behörden, um genau das mit oben genannten Mitteln zu lösen.
 
  • Gefällt mir
Reaktionen: andy_m4
nutrix schrieb:
Neh, nach meinen bisherigen Tests und Versuchen ist da noch vieles im Argen.
Also jetzt mal von der Unzulänglichkeit des Sprachmodell-Konzeptes als solches abgesehen, steht und fällt ja auch vieles mit den Trainingsdaten. Weil die Sprachmodelle ja mehr oder weniger nur das replizieren, was sie schon mal "gesehen" haben. Und Du brauchst halt sehr viele Trainingsdaten, weshalb Du da nicht nur manuell aufbereiteter, hochwertiger Content drin ist, sondern vor allem all der Kram der auch sonst so im Internet herum geistert. Klar kann man da durch entsprechende Auswahl und Tuning etwas entgegenwirken, aber das Grundproblem bleibt.

Das ist alles nicht ganz so dramatisch, wenn das von Leuten benutzt wird, die sich auskennen. Aber wenns von Laien eingesetzt wird, hast Du ein Problem. Der kann ja nicht beurteilen, ob die Lösung gut ist. Der kann nur sehen: Wirds vom Compiler/Interpreter gefressen und kommt bei meinem Test 'ne brauchbare Lösung raus.
(sagtest Du ja im Prinzip schon; ich habs nur noch mal mit eigenen Worten wiedergegeben, um zu signalisieren, das ich (hoffentlich) verstanden hab, was Du meinst).

nutrix schrieb:
Gute Entwickler werden lange nicht aussterben, sie wird man noch lange brauchen.
Sehe ich ähnlich. Also auch mit der Betonung auf Gute Entwickler. Und ich könnte mir vorstellen, das es auch bald einen kleinen Gegentrend gibt (wie bei anderen Hypes auch). Erst wird gefeuert und dann merkt man, das vielleicht doch alles nicht so gut funktioniert, wie der Hype suggerierte.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: nutrix
Butter bei de Fische. Wenn jemand einen Thermomix bedienen kann, kommt vielleicht gelegentlich ein gutes und leckeres Essen raus. Deshalb ist aber so einer noch lange kein Koch geschweige den Meisterkoch. 🙃😁

Und genau so wird es beim Programmieren, IT allgemein oder allen andere komplexen Themen wie Medizin und Co. sein. Eine KI wird lange nur als Unterstützung gut oder für spezielle Zwecke sogar hervorragend sein. Aber eben nur als Tool. Es wird den fachkundigen Menschen wie Experten nicht ersetzen.

BTW würde ich - wenn ich müßte - heute sowas lernen wie Rust und Go, und alte Sprachen aufgrund diverser Sicherheitsprobleme so schnell wie möglich für neue Projekte verbannen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: CyborgBeta
CyborgBeta schrieb:
Das stimmt so nicht. Zurzeit ist es Oracle, davor Sun. Und die mussten nichts "vermarkten", weil das Produkt wie gesagt gut durchdacht wurde und es keines Marketings bedurfte.
Java mag super sein oder nicht so super, jedenfalls gab es viel Marketing und das war ein wesentlicher Erfolgsgrund. Selbstredend hätte kein Marketing was gebracht wenn Java keine gute Technologie gewesen wäre.
CyborgBeta schrieb:
C++ kann man einfach in die Tonne werfen, wenn man nicht gerade hardwarenah programmieren muss ... Das tut sich inzwischen keiner mehr freiwillig an.
Nee, C++ ist weiterhin die zentrale Sprache für alles technische. Es gibt auch keine andere Sprache, die so konsequent weiterentwickelt wie C++. Ist aber definitiv keine anfängerfreundliche Sprache, auch genau wegen dieser kontinuierlichen Weiterentwicklung. Von "C/C++" zu sprechen wie in dem Video ist wenn es um vor 30 Jahren geht okay, aber heute gibt es kein "C/C++" mehr, C++ hat sich komplett wegentwickelt von C. Letzteres "steht still", was okay ist denn die Schwerpunkte liegen woanders (embedded, wenig abstraktion / simple compiler, robuste ABI).

nutrix schrieb:
Eine Programmiersprache hat meines Wissens nach keine solche Schnittstellen zu anderen Sprachen.
Klar, es gibt "Transpiling" sogar als eigenen Begriff. Typescript wird z.B. üblicherweise nach Javascript transpiliert.

nutrix schrieb:
Man programmiert heute eigentlich nicht mehr, man modelliert, und die Sprache, die dann hinten rauspurzelt, ist egal.
Da wo man Java einsetzt mag das ab und zu mal sein. Da wo man C++ einsetzt ist das absolut undenkbar. Letztendlich ist das kein "entweder oder". Man programmiert mehr denn je und es gibt mehr "no code" Lösungen als jemals zuvor. Das wird auch auf absehbare Zeit noch so weiter gehen. Programmierer werden immer dafür bezahlt Produkte zu bauen, die ein Consultant nicht mal eben zusammen klicken kann.

Araska schrieb:
Frage aus den hinteren Reihen: Laßt ihr Maple als Programmiersprache gelten?
Klar, eine Programmsiersprache ist eine Technologie für den Zweck, einen Computer zu programmieren. Das ist bei Maple wohl gegeben. Ist natürlich keine "general purpose" Programmiersprache.
 
  • Gefällt mir
Reaktionen: CyborgBeta
Zurück
Oben