koshamo...

Hier kann jeder sich kurz vorstellen bzw. einen kurzen Steckbrief angeben.
Antworten
koshamo
Beiträge: 13
Registriert: Sa Aug 11, 2018 5:38 pm
Wohnort: Heidelberg

koshamo...

Beitrag von koshamo » So Aug 12, 2018 11:00 am

Hi Leute,

dann will ich mich hier mal vorstellen...

Ich bin mittlerweile fast 42 und wohne bei Heidelberg.

Angefangen hat mein IT-Leben mit 8 Jahren, als ich mir einen C64 gekauft habe. Mit gut 9 Jahren habe ich dann angefangen "zu programmieren", indem ich das C64-Basic Handbuch, was mit der Kiste mitgeliefert wurde, gelesen hatte und diverse kleine Sachen programmiert hatte. Leider was das alles nicht sonderlich zufriedenstellend für mich und da ich auf dem Dorf wohnte und meine Eltern mich diesbezüglich null unterstützt hatten, kam ich an keine weiteren Ressourcen ran, um mich weiter zu entwickeln (Internet gab es ja noch nicht). Also ist das Thema Programmieren irgendwie wieder eingeschlafen. In der 11. Klasse dann auf dem TG lernten wir Pascal, was mich dann wieder zum Programmieren gebracht hatte. Ich habe in den 3 Jahren Oberstufe recht viel programmiert und hatte einen Klassenkameraden, der echt fit war und von dem ich echt viel gelernt hatte. Aber.... dann ging es an die Studienauswahl (nur am Rande: meine Eltern wollten nicht, dass ich studiere...). Ich stand also vor der Wahl Elektrotechnik oder Informatik. Und an Informatik hatte ich mich wegen meinem Klassenkameraden nicht rangetraut (wenn die alle so drauf sind, sehe ich kein Land im Studium....).
Und es kam, wie es kommen musste: bereits im ersten Semester habe ich festgestellt, dass ich in der E-Technik völlig falsch bin. Allerdings ließen meine Eltern überhaupt nicht mit sich reden, was ein Studiengang-Wechsel anging.

Wie auch immer. Ich habe mir mein Studium weitestgehend selbst finanziert und nebenbei entsprechend immer in kleineren Firmen gearbeitet, vom Schaltschrankbau über Prüfstandsbau kam ich irgendwann in die Elektronikentwicklung und Treiberprogrammierung mit C. Um mich weiter zu entwickeln habe ich dann die Firma gewechselt und war dort als studentischer Softwareentwickler tätig, leider mit Delphi :lol: Zu der Zeit habe ich an Präzisions-CNC-Fräsmaschinen rumprogrammiert: Umstieg auf Ethernet, Makrointerpreter, parallele Motorenprüfungen uvm.

Privat habe ich zu der Zeit den Umstieg auf Linux gewagt und war jahrelang auf Debian Sid (unstable) unterwegs und habe mich viel mit C++ auseinandergesetzt. Die Studienarbeit habe ich im Bereich Regelungstechnik mit C++ geschrieben und meine Diplomarbeit habe ich ebenfalls in C++ bearbeitet, wobei ich leichtgewichtige 3D-Visualisierungsdatenformate und die passenden Konverter untersucht habe (für CAD-Systeme).

Danach bin ich als wissenschaftlicher Mitarbeiter an der Uni geblieben und musste wieder primär mit Windows arbeiten, weil unser Fachgebiet eher Consultant-mäßig aufgestellt war. Das Fachgebiet selbst war im Bereich der IT im Maschinenbau mit Entwicklungsprozessen (CAD, PDM, ERP), Werkzeuge und Methoden beschäftigt. Meine Promotion habe ich mit Prozessmodellierung und UML/MOF verbracht. Programmiert habe ich in der Zeit kaum noch, ab und an mal ein kleines Tool in Java. Aber das war es dann noch.

Danach habe ich einen Ausflug in die Industrie gemacht und mich mit SAP rumgeschlagen, wobei ich neben der Prozessorganisation der Entwicklungsprozesse viel mit SAP-Problemen und Schreiben von Softwarespezifikationen beschäftigt war. Ausflug deshalb, weil ich mich dort nie so wirklich wohl gefühlt habe.

Mittlerweile bin ich Lehrer an einer Berufsschule und unterricht dort Fachinformatiker für Anwendungsentwicklung und Elektroniker für System- und Informationstechnik, arbeite also sehr viel mit Java (FIAE) und C für Arduino / Microcontroller (ESI). Daneben bin ich als Dozent an einer Hochschule (FH) tätig und unterrichte dort Informatik (Java-Programmierung und angewandte Algorithmen), Prozessmanagement, Wirtschaftsinformatik und ab und an Einführung in C.

Privat habe ich mich die letzten Jahre sehr viel mit Java beschäftigt und finde Java eigentlich toll. Die Entwicklung bei Oracle hat mich aber zunehmend nachdenklich gestimmt und ich habe angefangen, mich etwas mehr mit anderen Sprachen zu beschäftigen. Nach einem kurzen Ausflug in Richtung Scala bin ich gerade dabei, mich mit Common Lisp tiefer auseinander zu setzen und werde mich demnächst noch mit Haskell befassen wollen. Inhaltlich interessieren mich insbesondere das Thema Programmiersprachen, Compiler (wobei ich mich noch nicht an das Schreiben eines eigenen herangetraut habe), Clean Code usw.
Achso, mein Betriebssystem: FreeBSD

Und weil ich seit 20 Jahren dem nicht studierten Informatik-Studium hinterherheule, habe ich mich in den letzten Wochen in Hagen an der Fernuni in den Master-Studiengang Praktische Informatik eingeschrieben - sozusagen als Reparatur meines Berufslebens ;)

Ich habe einen Kollegen, der ein ebensolcher gestörter Programmier(sprachen)freak wie ich ist, der aber ab September die Schule wechselt. Und da mir der Austausch fehlt und meine Frau schon wegen meiner Themen jammert, habe ich mich hier angemeldet, um für einen entsprechenden Austausch sorgen zu können.

Achja, mein Problem: da ich meist doch eher alleine arbeite (als Lehrer und Dozent), aber auch in Projekten, so ich denn gerade welche habe, habe ich so gar keine Idee, auf welchem Level ich stehe. Anfänger bin ich jedenfalls nicht mehr....

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8462
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: koshamo...

Beitrag von Xin » Mo Aug 13, 2018 7:53 am

koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Ich bin mittlerweile fast 42 und wohne bei Heidelberg.
Angefangen hat mein IT-Leben mit 8 Jahren, als ich mir einen C64 gekauft habe. Mit gut 9 Jahren habe ich dann angefangen "zu programmieren", indem ich das C64-Basic Handbuch, was mit der Kiste mitgeliefert wurde, gelesen hatte und diverse kleine Sachen programmiert hatte. Leider was das alles nicht sonderlich zufriedenstellend für mich und da ich auf dem Dorf wohnte und meine Eltern mich diesbezüglich null unterstützt hatten, kam ich an keine weiteren Ressourcen ran, um mich weiter zu entwickeln (Internet gab es ja noch nicht).
Das ist quasi im Detail mein Lebenslauf. Fast 42, mit 9 das Handbuch vom 64er gelesen. Allerdings kam ich zum Computer, weil unsere Schule eine "Computer-AG" in der 4. Klasse anbot. So überredete ich meine Eltern, mir dieses unerhört teure Spielzeug von meinem Kommunionsgeld zu kaufen, las das Handbuch und war anschließend meiner Klasse kurz darauf weit voraus.
Unterstützt haben mich meine Eltern nicht, aber mein Taschengeld reichte manchmal für eine Diskette namens "Magic 64". Und auf einer der Disketten über mehrere Monate war auf der Rückseite ein Assemblerkurs, den ich abgeschrieben habe, da man auf einem C64 nur ein Programm laufen lassen konnte und man sich eben nicht den Text angucken konnte und dabei ausprobieren...
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Also ist das Thema Programmieren irgendwie wieder eingeschlafen. In der 11. Klasse dann auf dem TG lernten wir Pascal, was mich dann wieder zum Programmieren gebracht hatte. Ich habe in den 3 Jahren Oberstufe recht viel programmiert und hatte einen Klassenkameraden, der echt fit war und von dem ich echt viel gelernt hatte. Aber.... dann ging es an die Studienauswahl (nur am Rande: meine Eltern wollten nicht, dass ich studiere...). Ich stand also vor der Wahl Elektrotechnik oder Informatik. Und an Informatik hatte ich mich wegen meinem Klassenkameraden nicht rangetraut (wenn die alle so drauf sind, sehe ich kein Land im Studium....).
Und es kam, wie es kommen musste: bereits im ersten Semester habe ich festgestellt, dass ich in der E-Technik völlig falsch bin. Allerdings ließen meine Eltern überhaupt nicht mit sich reden, was ein Studiengang-Wechsel anging.
Im ersten Semester doch eigentlich gar kein Problem. Bei uns war im ersten Semester Informatik nahezu alles identisch mit den E-Technikern. Man hätte also vermutlich unheimlich viel anrechnen können.
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Wie auch immer. Ich habe mir mein Studium weitestgehend selbst finanziert und nebenbei entsprechend immer in kleineren Firmen gearbeitet, vom Schaltschrankbau über Prüfstandsbau kam ich irgendwann in die Elektronikentwicklung und Treiberprogrammierung mit C. Um mich weiter zu entwickeln habe ich dann die Firma gewechselt und war dort als studentischer Softwareentwickler tätig, leider mit Delphi :lol: Zu der Zeit habe ich an Präzisions-CNC-Fräsmaschinen rumprogrammiert: Umstieg auf Ethernet, Makrointerpreter, parallele Motorenprüfungen uvm.
Das klingt nach einigen coolen Projekten.
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Privat habe ich zu der Zeit den Umstieg auf Linux gewagt und war jahrelang auf Debian Sid (unstable) unterwegs und habe mich viel mit C++ auseinandergesetzt. Die Studienarbeit habe ich im Bereich Regelungstechnik mit C++ geschrieben und meine Diplomarbeit habe ich ebenfalls in C++ bearbeitet, wobei ich leichtgewichtige 3D-Visualisierungsdatenformate und die passenden Konverter untersucht habe (für CAD-Systeme).
STL, Wave, sowas?
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Mittlerweile bin ich Lehrer an einer Berufsschule und unterricht dort Fachinformatiker für Anwendungsentwicklung und Elektroniker für System- und Informationstechnik, arbeite also sehr viel mit Java (FIAE) und C für Arduino / Microcontroller (ESI). Daneben bin ich als Dozent an einer Hochschule (FH) tätig und unterrichte dort Informatik (Java-Programmierung und angewandte Algorithmen), Prozessmanagement, Wirtschaftsinformatik und ab und an Einführung in C.
Hmm... ich hatte mir immer mal überlegt, irgendwann aus der beruflichen Software-Entwicklung auszusteigen und so etwa in diese Richtung zu gehen. Unterrichten machte mir immer Spaß. Allerdings klingt das auch irgendwo nach Jahresverträgen usw.
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Privat habe ich mich die letzten Jahre sehr viel mit Java beschäftigt und finde Java eigentlich toll. Die Entwicklung bei Oracle hat mich aber zunehmend nachdenklich gestimmt und ich habe angefangen, mich etwas mehr mit anderen Sprachen zu beschäftigen. Nach einem kurzen Ausflug in Richtung Scala bin ich gerade dabei, mich mit Common Lisp tiefer auseinander zu setzen und werde mich demnächst noch mit Haskell befassen wollen. Inhaltlich interessieren mich insbesondere das Thema Programmiersprachen, Compiler (wobei ich mich noch nicht an das Schreiben eines eigenen herangetraut habe), Clean Code usw.
Java finde ich als Sprache knapp unter okay. Als Konzept und vor allem als Entwicklung aus den 90ern als Rückschritt.
Scala wollte ich mir mal angucken, CL eher weniger. Ich habe mal was Lisp-Artiges programmiert, daher kann ich einfaches Lisp halbwegs lesen, aber habe da wenig Erfahrung drin.
Haskell wird die nächste Sprache sein, die ich mir genauer angucke. Hintergedanke ist auch, dass ich einen Compiler schreibe, bzw. eine Programmiersprache entwickle und den Compiler halt zum Testen brauche.
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Und weil ich seit 20 Jahren dem nicht studierten Informatik-Studium hinterherheule, habe ich mich in den letzten Wochen in Hagen an der Fernuni in den Master-Studiengang Praktische Informatik eingeschrieben - sozusagen als Reparatur meines Berufslebens ;)
Da fehlt mal wieder das "Daumen hoch"-Smiley.

Sowas finde ich immer wieder klasse. Ich überlege auch immer mal wieder noch was zu studieren, aber die Zeit ist eh immer knapp.
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Ich habe einen Kollegen, der ein ebensolcher gestörter Programmier(sprachen)freak wie ich ist, der aber ab September die Schule wechselt. Und da mir der Austausch fehlt und meine Frau schon wegen meiner Themen jammert, habe ich mich hier angemeldet, um für einen entsprechenden Austausch sorgen zu können.
Im Fachbereich "gestörter Programmiersprachenfreak" hätte ich Kompetenzen anzubieten. :D
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Achja, mein Problem: da ich meist doch eher alleine arbeite (als Lehrer und Dozent), aber auch in Projekten, so ich denn gerade welche habe, habe ich so gar keine Idee, auf welchem Level ich stehe. Anfänger bin ich jedenfalls nicht mehr....
Ich programmiere jetzt seit 1986. 1990 habe das erste Mal kommerziell meine Software vertrieben. Da war ich 14.
Wenn ich heute eine Konferenz besuche, frage ich mich auch immer, ob ich eigentlich noch Anfänger bin, weil die anderen, die können soviel, was ich nicht kann...
Einen Compiler schreiben schließlich viele Leute. Vermutlich die wenigsten so wie ich, aber schlussendlich würde ich sagen, es gibt nur Anfänger und Menschen, die keine Anfänger mehr sind.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

koshamo
Beiträge: 13
Registriert: Sa Aug 11, 2018 5:38 pm
Wohnort: Heidelberg

Re: koshamo...

Beitrag von koshamo » Mo Aug 13, 2018 10:02 am

Xin hat geschrieben:
Mo Aug 13, 2018 7:53 am
Unterstützt haben mich meine Eltern nicht, aber mein Taschengeld reichte manchmal für eine Diskette namens "Magic 64". Und auf einer der Disketten über mehrere Monate war auf der Rückseite ein Assemblerkurs, den ich abgeschrieben habe, da man auf einem C64 nur ein Programm laufen lassen konnte und man sich eben nicht den Text angucken konnte und dabei ausprobieren...
Ich kann mich noch dran erinnern, dass ich ab und an mal das Magazin C64er in der Hand hatte. Da gab es Hex-Code Programme zum Abtippen, was aber letztlich für mehr Frust als Freude gesorgt hatte. Einerseits hatte man irgendwo immer einen Tippfehler drin, den man nie gefunden hat, andererseits habe ich auch keinerlei Anleitung gefunden, wie man sowas schreibt. Ich hätte ja auch in Hex programmiert, wenn ich die Listings mal hätte sturzfrei abtippen und damit experimentieren können :roll:
Xin hat geschrieben:
Mo Aug 13, 2018 7:53 am
Im ersten Semester doch eigentlich gar kein Problem. Bei uns war im ersten Semester Informatik nahezu alles identisch mit den E-Technikern. Man hätte also vermutlich unheimlich viel anrechnen können.
So die Theorie.... aber sag mal einem 20-jährigen, dass er einen feuchten Kerricht auf das Geschwätz der Eltern geben soll. In meinem jetzigen Alter mit der entsprechenden Lebenserfahrung sieht man die Dinge ja dann völlig anders. Aber sei es drum, deshalb jetzt nochmal voller Angriff voraus.
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Die Studienarbeit habe ich im Bereich Regelungstechnik mit C++ geschrieben und meine Diplomarbeit habe ich ebenfalls in C++ bearbeitet, wobei ich leichtgewichtige 3D-Visualisierungsdatenformate und die passenden Konverter untersucht habe (für CAD-Systeme).
Xin hat geschrieben:
Mo Aug 13, 2018 7:53 am
STL, Wave, sowas?
JT hieß das Datenformat. Das beinhaltet zwei mögliche Darstellungen: eine reine Kantenbeschreibung einerseits und XTBreps auf der anderen Seite. Letzteres ist eine Beschreibung, die die Geometrie aus Primitiven bzw. einzelnen Teilvolumina zusammensetzt und eigentlich ziemlich straightforward ist, da die Geometriebeschreibung deutlich kleiner und exakter ist. Das sind die Hausformate von Siemens's Software NX (ehemals Unigraphics). Hab mich damals auch viel mit Tesselierungsalgorithmen beschäftigt und hatte mal den Auftrag, die Spezifikation vom Datenformat JT zu verifizieren. Das wiederum war kein Spaß. Wenn man Daten Byte-weise lesen und unter Berücksichtigung der Endianness verarbeiten muss....
Xin hat geschrieben:
Mo Aug 13, 2018 7:53 am
Hmm... ich hatte mir immer mal überlegt, irgendwann aus der beruflichen Software-Entwicklung auszusteigen und so etwa in diese Richtung zu gehen. Unterrichten machte mir immer Spaß. Allerdings klingt das auch irgendwo nach Jahresverträgen usw.
Ich bin an einer Privatschule unbefristet angestellt. Wir haben allerbeste Rahmenbedingungen. Eigentlich eine super Sache.
Xin hat geschrieben:
Mo Aug 13, 2018 7:53 am
Java finde ich als Sprache knapp unter okay. Als Konzept und vor allem als Entwicklung aus den 90ern als Rückschritt.
Scala wollte ich mir mal angucken, CL eher weniger. Ich habe mal was Lisp-Artiges programmiert, daher kann ich einfaches Lisp halbwegs lesen, aber habe da wenig Erfahrung drin.
Haskell wird die nächste Sprache sein, die ich mir genauer angucke. Hintergedanke ist auch, dass ich einen Compiler schreibe, bzw. eine Programmiersprache entwickle und den Compiler halt zum Testen brauche.
Ohje, Flamewargefahr :lol:
Ich bevorzuge Java definitiv gegenüber C++ und dazu schreibe ich auch gerne an anderer Stelle. Ich sehe Java aber auch in einem anderen Einsatzgebiet als C++, wobei ich tatsächlich auch der Meinung bin, dass C++ langsam aber sicher obsolet wird. Und es gibt in C++, wie eben in Java auch, einige gravierende Fehlentscheidungen, was das Design der Sprache angeht. Aus meiner Sicht gehört Bjarne noch heute für die friend-Deklarationen erschossen :mrgreen: Aber so hat jede Sprache ihre Vor- und Nachteile und auch die entsprechenden Verfechter der einen oder anderen. Auf das Einsatzgebiet kommt es an, würde ich meinen.
Lisp lerne ich eher deshalb, weil ich Scheme im Studium brauchen werde und ich mir Lisp eh mal anschauen wollte. Ich habe schon so oft gelesen, dass Lisp einen zu einem besseren Programmierer macht, selbst wenn man nie wirklich damit programmiert. Einfach das Kennenlernen diverser Konzepte, die sich nicht oder nur kaum in anderen Sprachen realisiert finden. Ich finde z.B. die Idee, dass Code und Daten das Gleiche sind, eine fantastische Idee. Wenn man das mal etwas weiter pervertiert, kann man adaptiven Code schreiben, also Code, der sich selbst anpasst.... und da sind wir mitten im KI-Thema.
Aber tatsächlich fixt mich auch Haskell im Moment am meisten an. Ich denke, dass das ne Sprache ist, mit der man langfristig wirklich produktiv arbeiten kann. Da habe ich bei Lisp noch so meine Zweifel. Schauen wir mal.
Xin hat geschrieben:
Mo Aug 13, 2018 7:53 am
Im Fachbereich "gestörter Programmiersprachenfreak" hätte ich Kompetenzen anzubieten. :D
Du wirst es noch bereuen, das geschrieben zu haben :lol:

Xin hat geschrieben:
Mo Aug 13, 2018 7:53 am
Ich programmiere jetzt seit 1986. 1990 habe das erste Mal kommerziell meine Software vertrieben. Da war ich 14.
Wenn ich heute eine Konferenz besuche, frage ich mich auch immer, ob ich eigentlich noch Anfänger bin, weil die anderen, die können soviel, was ich nicht kann...
Einen Compiler schreiben schließlich viele Leute. Vermutlich die wenigsten so wie ich, aber schlussendlich würde ich sagen, es gibt nur Anfänger und Menschen, die keine Anfänger mehr sind.
Mein damaliger Klassenkamerad hat auch mit 14 zum ersten Mal Software verkauft, was mich ja vom Informatik-Studium abgehalten hatte ;)
Naja, dass man nie alles weiß und es immer noch besser gehen kann, ist eh klar. Und das Feld ist mittlerweile sooooo groß geworden. Aber ich verstehe genau, was du meinst, das ist nämlich genau das Thema.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8462
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: koshamo...

Beitrag von Xin » Mi Aug 15, 2018 9:29 am

koshamo hat geschrieben:
Mo Aug 13, 2018 10:02 am
Ich kann mich noch dran erinnern, dass ich ab und an mal das Magazin C64er in der Hand hatte. Da gab es Hex-Code Programme zum Abtippen, was aber letztlich für mehr Frust als Freude gesorgt hatte. Einerseits hatte man irgendwo immer einen Tippfehler drin, den man nie gefunden hat, andererseits habe ich auch keinerlei Anleitung gefunden, wie man sowas schreibt. Ich hätte ja auch in Hex programmiert, wenn ich die Listings mal hätte sturzfrei abtippen und damit experimentieren können :roll:
An sowas erinnere ich mich auch noch. OpCodes-Abtippen hatte nun wirklich nichts mit Programmierung zu tun, sondern das war nur das Kopieren von fertig programmierten Programmen.
Ich kann heute verstehen, was man da tat, ich kann es heute sogar nachmachen (was ich ja auch tue, da mein Sprache JIT kompiliert), aber um jemanden einen Einblick ins Programmieren zu geben, waren diese Programme überhaupt nicht geeignet.
koshamo hat geschrieben:
Mo Aug 13, 2018 10:02 am
Xin hat geschrieben:
Mo Aug 13, 2018 7:53 am
Im ersten Semester doch eigentlich gar kein Problem. Bei uns war im ersten Semester Informatik nahezu alles identisch mit den E-Technikern. Man hätte also vermutlich unheimlich viel anrechnen können.
So die Theorie.... aber sag mal einem 20-jährigen, dass er einen feuchten Kerricht auf das Geschwätz der Eltern geben soll. In meinem jetzigen Alter mit der entsprechenden Lebenserfahrung sieht man die Dinge ja dann völlig anders. Aber sei es drum, deshalb jetzt nochmal voller Angriff voraus.
Guter Hinweis... etwas in der Art muss ich wohl bald mal wieder machen.
Statt selbst zu beraten, werde ich begründet zu unabhänger Beratung raten.

Ich wünsche Dir viel Erfolg bei Deinem Studium. Und überlege selbst auch nochmal, ob ich nicht nochmal was studieren will.
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Die Studienarbeit habe ich im Bereich Regelungstechnik mit C++ geschrieben und meine Diplomarbeit habe ich ebenfalls in C++ bearbeitet, wobei ich leichtgewichtige 3D-Visualisierungsdatenformate und die passenden Konverter untersucht habe (für CAD-Systeme).
Xin hat geschrieben:
Mo Aug 13, 2018 7:53 am
STL, Wave, sowas?
JT hieß das Datenformat. Das beinhaltet zwei mögliche Darstellungen: eine reine Kantenbeschreibung einerseits und XTBreps auf der anderen Seite. Letzteres ist eine Beschreibung, die die Geometrie aus Primitiven bzw. einzelnen Teilvolumina zusammensetzt und eigentlich ziemlich straightforward ist, da die Geometriebeschreibung deutlich kleiner und exakter ist. Das sind die Hausformate von Siemens's Software NX (ehemals Unigraphics). Hab mich damals auch viel mit Tesselierungsalgorithmen beschäftigt und hatte mal den Auftrag, die Spezifikation vom Datenformat JT zu verifizieren. Das wiederum war kein Spaß. Wenn man Daten Byte-weise lesen und unter Berücksichtigung der Endianness verarbeiten muss....[/quote]
JT kenne ich noch gar nicht... sieht aber auch für mich beruflich interessant aus, ich denke, das sollte ich mir mal ansehen. Wir arbeiten hier mit IFC, was ebenfalls Breps und Geometrien darstellen kann, wie auch Informationen, ob es sich um Wände, Räume, Stützen, Rohre, Kabel, Fenster uvm. mehr handelt.
Zum Einlesen ist es allerdings nicht wirklich angenehm und ich durfte den Importer schreiben. Rund 600 Klassen lasse aus der Formatbeschreibung automatisch generieren, die dann mit unserem Produkt "verklebt" werden.
Beiläufig hatte ich noch Wave und STL implementiert, wo ich schonmal dabei war. Daher dachte ich an diese zuerst.
Gibt es für JT eine frei verfügbare Beschreibung?
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Xin hat geschrieben:
Mo Aug 13, 2018 7:53 am
Hmm... ich hatte mir immer mal überlegt, irgendwann aus der beruflichen Software-Entwicklung auszusteigen und so etwa in diese Richtung zu gehen. Unterrichten machte mir immer Spaß. Allerdings klingt das auch irgendwo nach Jahresverträgen usw.
Ich bin an einer Privatschule unbefristet angestellt. Wir haben allerbeste Rahmenbedingungen. Eigentlich eine super Sache.
Aber so einen Job findet man nicht an jeder Ecke?!
Alle mit denen ich bisher sprach haben Zeitverträge bzw. sogar nur Verträge für einzelne Kurse. Die fahren dann für 6-12 Stunden in die Schule und am Ende des Jahres hoffen sie, dass sie im nächsten Jahr wieder einen Kurs haben.
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Ohje, Flamewargefahr :lol:
Halb so wild... ich habe auch schon als Java-Entwickler gearbeitet, plane aber nicht, das zu wiederholen.
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Ich bevorzuge Java definitiv gegenüber C++ und dazu schreibe ich auch gerne an anderer Stelle. Ich sehe Java aber auch in einem anderen Einsatzgebiet als C++, wobei ich tatsächlich auch der Meinung bin, dass C++ langsam aber sicher obsolet wird. Und es gibt in C++, wie eben in Java auch, einige gravierende Fehlentscheidungen, was das Design der Sprache angeht. Aus meiner Sicht gehört Bjarne noch heute für die friend-Deklarationen erschossen :mrgreen:
Das C++ obsolete werden muss, sehe ich auch. Ich sehe aber nicht, dass es das wird. Im Gegenteil, C++ entwickelt sich die letzten 8 Jahre massiv weiter.

Warum muss Stroustup für 'friend' erschossen werden? Wie gesagt - ich entwickle selbst eine Programmiersprache und bin immer interessiert an unterschiedlichen Perspektiven.
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Lisp lerne ich eher deshalb, weil ich Scheme im Studium brauchen werde und ich mir Lisp eh mal anschauen wollte. Ich habe schon so oft gelesen, dass Lisp einen zu einem besseren Programmierer macht, selbst wenn man nie wirklich damit programmiert. Einfach das Kennenlernen diverser Konzepte, die sich nicht oder nur kaum in anderen Sprachen realisiert finden. Ich finde z.B. die Idee, dass Code und Daten das Gleiche sind, eine fantastische Idee.
Und das wird in Lisp irgendwie anders gewertet als in C++?
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Wenn man das mal etwas weiter pervertiert, kann man adaptiven Code schreiben, also Code, der sich selbst anpasst.... und da sind wir mitten im KI-Thema.
Kann man das nicht irgendwo mit jeder interpretierenden Sprache? ^^
Und schlussendlich auch indirekt mit C++?

Vielleicht sollte ich mir den Bereich von Lisp mal genauer angucken, ich habe in der Richtung durchaus einiges im Hinterkopf, vielleicht bringt mich sowas dann noch auf neue Ideen.
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Xin hat geschrieben:
Mo Aug 13, 2018 7:53 am
Im Fachbereich "gestörter Programmiersprachenfreak" hätte ich Kompetenzen anzubieten. :D
Du wirst es noch bereuen, das geschrieben zu haben :lol:
Unwahrscheinlich... es gibt wenig Leute, die das Thema ernsthaft interessiert, da freut man sich auf jede Chance, wenn einem jemand über den Weg läuft, bei dem die Chance besteht, dass man Input bekommen könnte.
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Mein damaliger Klassenkamerad hat auch mit 14 zum ersten Mal Software verkauft, was mich ja vom Informatik-Studium abgehalten hatte ;)
Naja, dass man nie alles weiß und es immer noch besser gehen kann, ist eh klar. Und das Feld ist mittlerweile sooooo groß geworden. Aber ich verstehe genau, was du meinst, das ist nämlich genau das Thema.
Denke ich an das Programm von damals, stand dort, dass man an dem Programm erkennen kann, wie man gut programmiert. Damals war ich stolz... heute ist es mir eher peinlich, denn unter gut programmieren verstehe ich heute etwas anderes. ;)
Eigentlich war das alles recht billig. Aber für einen 14jährigen schon sehr cool. :-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

koshamo
Beiträge: 13
Registriert: Sa Aug 11, 2018 5:38 pm
Wohnort: Heidelberg

Re: koshamo...

Beitrag von koshamo » Mi Aug 15, 2018 9:35 pm

Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
JT kenne ich noch gar nicht... sieht aber auch für mich beruflich interessant aus, ich denke, das sollte ich mir mal ansehen. Wir arbeiten hier mit IFC, was ebenfalls Breps und Geometrien darstellen kann, wie auch Informationen, ob es sich um Wände, Räume, Stützen, Rohre, Kabel, Fenster uvm. mehr handelt.
Zum Einlesen ist es allerdings nicht wirklich angenehm und ich durfte den Importer schreiben. Rund 600 Klassen lasse aus der Formatbeschreibung automatisch generieren, die dann mit unserem Produkt "verklebt" werden.
Beiläufig hatte ich noch Wave und STL implementiert, wo ich schonmal dabei war. Daher dachte ich an diese zuerst.
Gibt es für JT eine frei verfügbare Beschreibung?
Wir haben damals an der ISO-Zertifizierung gearbeitet. Du kannst mal bei jtopen.com (leitet mittlerweile direkt zur Siemens-Seite weiter) reinschauen, ob das wirklich was für dich ist. Dort gibt es auch Spezifikationen, wie ich gerade gesehen habe. Letztlich war das seinerzeit ein proprietäres Format, dass eigentlich nur im Rahmen von Unigraphics/Siemens NX und den entsprechenden Mockup-Tools interessant war. Dadurch, dass man das in eine "offene" Community verlagert hatte, konnte man noch extra Geld scheffeln. Marketing eben. Ich habe aber seit 2011 die Entwicklung nicht weiter verfolgt.
Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
Aber so einen Job findet man nicht an jeder Ecke?!
Alle mit denen ich bisher sprach haben Zeitverträge bzw. sogar nur Verträge für einzelne Kurse. Die fahren dann für 6-12 Stunden in die Schule und am Ende des Jahres hoffen sie, dass sie im nächsten Jahr wieder einen Kurs haben.
Naja, manchmal stolpert man halt einfach in was brauchbares rein....
Das, was du aber beschrieben hast, habe ich in ähnlicher Weise als Dozent an der Hochschule. Wobei ich recht sicher sein kann, wann ich welche Veranstaltungen lese - Dozenten gibt es halt auch nicht an jeder Ecke (was wohl am Preis liegt...)
Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
Halb so wild... ich habe auch schon als Java-Entwickler gearbeitet, plane aber nicht, das zu wiederholen.
Was findest du denn so schlimm an Java?
Eigentlich mag ich die Sprache. Ist halt etwas arg geschwätzig, aber man kann ganz nette Sachen machen, ohne sich um andere kümmern zu müssen. Und schlechten Java-Code findet man mittlerweile häufiger als schlechten C++ Code (was aber für guten ebenfalls zutrifft :lol: ).
Letztlich ist es halt so, dass viele große Projekte mit Java gestemmt werden und sich die mehrzahl der Programmierer mit Programmieren halt wirklich schwer tut, weil keiner mal hinter die Kulisse schauen mag. Die schreiben eben grauenvollen Code - aber das würden sie mit jeder Sprache bewerkstelligen.

Ich habe in dem einen Unterforum einen Thread gefunden mit dem Titel "Warum ich Java hasse". Wenn der nicht von 2014 gewesen wäre, hätte ich ja noch drauf geantwortet. Das präsentierte Java-Beispiel macht so ziemlich alles falsch, was man in Java falsch machen kann. Kein Wunder, dass man die Sprache furchtbar findet.
Wie ich immer wieder feststelle, ist in Java die Objektorientierung bzw. das Programmieren allgemein völlig anders gelagert als in C++. Man kann nicht 1:1 von einer Sprache in die andere übersetzen. Da kommt taatsächlich nur Müll bei raus. Mal abgesehen davon, dass C++ Modell stand, als Java Anfang der 90er entwickelt wurde, haben die beiden - bis auf das Konzept Objektorientierung und die generelle Syntax - echt nix gemeinsam. Das sollte man immerhin bedenken.

Und nur weil ich Java oder C++ kann, bin ich noch lange nicht in der Lage, meinen Code mal eben schnell nach Smalltalk zu übersetzen, nur weil es eben auch objektorientiert ist. Java hat sich mittlerweile so weit von C++ entfernt, dass Vergleiche nur noch auf anderer Ebene geführt werden können. Selbst das Thema Performance muss besonders betrachtet werden. Es gibt genug Beispiele, in denen C++ schneller ist, aber eben auch genug, in denen Java schneller ist. Kommt halt drauf an, was der Schwerpunkt der Anwendung ist. Und nur weil etwas General Purpose Language heißt, sollte man nicht jedes Werkzeug für jedes Problem anwenden ;) Genaugenommen kann man (im Großen) auch Java oder C++ als DSL bezeichnen.
Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
Warum muss Stroustup für 'friend' erschossen werden? Wie gesagt - ich entwickle selbst eine Programmiersprache und bin immer interessiert an unterschiedlichen Perspektiven.
Ich habe schon lange nichts mehr mit C++ gemacht, aber wenn ich mich recht entsinne, war das Konzept so, dass ich *in* einer Klasse definiere, welche *externen* Funktionen besondere Rechte *in* der Klasse haben.
Damit zerschießt man vollständig die Themen Modularisierung und Kapselung. Wenn ich bevorzugte, externe Methoden schreiben will, muss ich die Klasse trotzdem verändern und in der Klasse die Bevorzugung angeben. Dann kann ich das auch faktisch gleich in die Klasse schreiben, macht vom Prozess kein Unterschied.
Das sinnvolle an Kapselung ist ja eigentlich, dass ich eine bestehende Klasse, die fehlerfrei ist, eigentlich nicht in ihrer Struktur ändern muss, wenn ich Funktionalität hinzufügen will. Letztlich gibt es dafür Vererbung, Dekorator-Pattern, Wrapper-Klassen und weiß der Teufel noch für sinnvolle Möglichkeiten, um einen sinnvollen Entwurf zu realisiern.

Aber, um das Gleichgewicht zu halten, Java hat bis einkl. Java 8 auch das Thema Kapselung mit 2 Füßen getreten. Mit Reflection ist es sogar möglich, direkt auf private Attribute zuzugreifen und diese zu setzen. Java 9 bietet da durch das Modulsystem wenigstens die Möglichkeit, dem ein Riegel vorzuschieben - auch wenn die wichtigsten Frameworks das wieder torpedieren, da sie allesamt auf Reflection setzen und man die Module doch wieder aufmachen muss.

Da fragt man sich wirklich, wozu man Objektorientierung nutzt :shock:
Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Lisp lerne ich eher deshalb, weil ich Scheme im Studium brauchen werde und ich mir Lisp eh mal anschauen wollte. Ich habe schon so oft gelesen, dass Lisp einen zu einem besseren Programmierer macht, selbst wenn man nie wirklich damit programmiert. Einfach das Kennenlernen diverser Konzepte, die sich nicht oder nur kaum in anderen Sprachen realisiert finden. Ich finde z.B. die Idee, dass Code und Daten das Gleiche sind, eine fantastische Idee.
Und das wird in Lisp irgendwie anders gewertet als in C++?
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Wenn man das mal etwas weiter pervertiert, kann man adaptiven Code schreiben, also Code, der sich selbst anpasst.... und da sind wir mitten im KI-Thema.
Kann man das nicht irgendwo mit jeder interpretierenden Sprache? ^^
Und schlussendlich auch indirekt mit C++?
Naja, in C++ kann ich nicht den C++-Laufzeitcode verändern. In Lisp kann ich sogar bereits mit meinem Code den Compiler steuern.... auch wenn ich noch nicht weiß, wie das geht.

Aber zum Thema "Daten und Code sind identisch" ein kleines Beispiel:

Code: Alles auswählen

;; eine Liste mit 3 Symbolen
'(a b c)
;; ein Ausdruck: eine Funktion a wird aufgerufen und die Parameter b und c übergeben
(a b c)
Der einzige Unterschied zwischen der Liste und dem Ausdruck besteht in der Funktion quote ('), die letztlich nur verhindert, dass das erste Symbol als Funktion interpretiert und aufgerufen wird. Ansonsten gib es im übrigen in Lisp nur Symbole, d.h. ich kann von einer Funktion auch einfach nur den Funktionsnamen weitergeben und woanders dann die Funktion aufrufen (ähnlich wie function-pointer, nur mächtiger).

Durch ein Makrosystem, das nicht vergleichbar zu dem Präprozessor-Geplänkel von C/C++ ist, kann eine ganze Menge Code generiert werden. C++ Templates gehen eher in die Richtung, sind aber doch wieder was ganz anderes.

Ich würde mich da jetzt gerne noch richtig drüber auslassen, aber so weit bin ich einfach noch nicht. Einiges habe ich mir noch gar nicht angeschaut, anderes habe ich nicht soweit durchdrungen, als dass ich das irgendwie erklären könnte.

Achja, eine bemerkenswerte Kleinigkeit: der eigentliche Lisp-Kern besteht aus nur 7 Funktionen. Der komplette andere Rest kann auf diesen 7 Funktionen aufgebaut werden. Und das zeigt eigentlich die Mächtigkeit des Makrosystems und der einfachen Syntax (die du oben im Beispiel schon quasi vollständig gesehen hast)
Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
Vielleicht sollte ich mir den Bereich von Lisp mal genauer angucken, ich habe in der Richtung durchaus einiges im Hinterkopf, vielleicht bringt mich sowas dann noch auf neue Ideen.
Genau deshalb beschäftige ich mich damit ;)
Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
Unwahrscheinlich... es gibt wenig Leute, die das Thema ernsthaft interessiert, da freut man sich auf jede Chance, wenn einem jemand über den Weg läuft, bei dem die Chance besteht, dass man Input bekommen könnte.
Das ist wohl war...
Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
Denke ich an das Programm von damals, stand dort, dass man an dem Programm erkennen kann, wie man gut programmiert. Damals war ich stolz... heute ist es mir eher peinlich, denn unter gut programmieren verstehe ich heute etwas anderes. ;)
Eigentlich war das alles recht billig. Aber für einen 14jährigen schon sehr cool. :-)
Aber geht es uns nicht mit jedem Projekt so, dass wir nach 5 oder 10 Jahren mal wieder in die Hände bekommen?
Wenn man etwas Freude am Programmieren hat und offen bleibt, kann man ja gar nicht anders, als sich von Jahr zu Jahr zu verbessern....

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8462
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: koshamo...

Beitrag von Xin » Fr Aug 17, 2018 1:53 pm

koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Wir haben damals an der ISO-Zertifizierung gearbeitet. Du kannst mal bei jtopen.com (leitet mittlerweile direkt zur Siemens-Seite weiter) reinschauen, ob das wirklich was für dich ist. Dort gibt es auch Spezifikationen, wie ich gerade gesehen habe. Letztlich war das seinerzeit ein proprietäres Format, dass eigentlich nur im Rahmen von Unigraphics/Siemens NX und den entsprechenden Mockup-Tools interessant war. Dadurch, dass man das in eine "offene" Community verlagert hatte, konnte man noch extra Geld scheffeln. Marketing eben. Ich habe aber seit 2011 die Entwicklung nicht weiter verfolgt.
Spezifikationen habe ich keine gesehen, nur vieles, um dort Mitglied zu werden.
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
Aber so einen Job findet man nicht an jeder Ecke?!
Alle mit denen ich bisher sprach haben Zeitverträge bzw. sogar nur Verträge für einzelne Kurse. Die fahren dann für 6-12 Stunden in die Schule und am Ende des Jahres hoffen sie, dass sie im nächsten Jahr wieder einen Kurs haben.
Naja, manchmal stolpert man halt einfach in was brauchbares rein....
Das, was du aber beschrieben hast, habe ich in ähnlicher Weise als Dozent an der Hochschule. Wobei ich recht sicher sein kann, wann ich welche Veranstaltungen lese - Dozenten gibt es halt auch nicht an jeder Ecke (was wohl am Preis liegt...)
Und spricht das nun für oder gegen Dein Gehalt? :D
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
Halb so wild... ich habe auch schon als Java-Entwickler gearbeitet, plane aber nicht, das zu wiederholen.
Was findest du denn so schlimm an Java?
Eigentlich mag ich die Sprache. Ist halt etwas arg geschwätzig, aber man kann ganz nette Sachen machen, ohne sich um andere kümmern zu müssen.
Interessante Aussage: Ohne sich um andere kümmern zu müssen.

Was ich an Java gut finde ist, dass es Framework gibt. Man kann mal schnell etwas machen. Was ich an Java nicht gut finde ist die Sprache, die nicht nur sehr geschwätzig ist, sondern auch, dass sie ein Framework hat, was veraltet, inkompatibel wird und reihenweise Sicherheitslücken hat. Man kann sich also entscheiden, ob die Software sicher läuft, weil sie auf der getesteten Version läuft oder ob sie möglicherweise an Inkompatiblitäten abschmiert, weil Sicherheitsupdates notwendig waren. Letzteres wurde daher überall wo ich bisher war abeschaltet, die Software wurde immer mit eigener JVM installiert, bei der man wusste, dass es läuft.

Schlussendlich ist das in C++ ähnlich. Aber die Probleme scheinen geringer.

Mal schnell etwas machen hat den Vorteil, dass man schnell etwas zeigen kann. Dann allerdings bleibt eine geschwätzige Sprache über, in der man vieles sehr umständlich machen muss. Const-Correctness beispielsweise. Oder Mehrfachvererbung, die jetzt ja wohl als Methodenvererbung so halb eingeführt wurde? Es gibt mir Pointer und die Behauptung, dass es keine Pointer sind.
Java war nie eine ehrliche Sprache, Java war nie eine gute Sprache. Java ist lediglich eine erfolgreiche Sprache, weil es viele Java-Entwickler gibt, denen C++ zu schwer erscheint, da sie dafür verstehen müssten, was sie da eigentlich schreiben.
Und so wachsen die Projekte und man bekommt auf die Frage, warum da einmal pro Stunde eine Exception im Protokoll landet die Antwort "Das wissen wir nicht, aber wenn sie nicht kommt, läuft irgendwas verkehrt."
Warum oder wie eine Software läuft, scheint in Java häufiger zu passieren. Man kümmert sich halt nicht drum. Und man stellt dann einen C++-Entwickler ein, der dann Reingeneering machen darf. ;)
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Und schlechten Java-Code findet man mittlerweile häufiger als schlechten C++ Code (was aber für guten ebenfalls zutrifft :lol: ).
Letztlich ist es halt so, dass viele große Projekte mit Java gestemmt werden und sich die mehrzahl der Programmierer mit Programmieren halt wirklich schwer tut, weil keiner mal hinter die Kulisse schauen mag. Die schreiben eben grauenvollen Code - aber das würden sie mit jeder Sprache bewerkstelligen.
Viele Entwickler wollen nur noch einen Job, das scheint mir auch so.
Ein Interesse für den Job scheint kein Kriterium mehr zu sein.
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Wie ich immer wieder feststelle, ist in Java die Objektorientierung bzw. das Programmieren allgemein völlig anders gelagert als in C++. Man kann nicht 1:1 von einer Sprache in die andere übersetzen. Da kommt taatsächlich nur Müll bei raus.
Und warum kann man das nicht? Warum ist das anders gelagert? Warum macht man in Java genau das gleiche wie in C++, nur dass man die Sachen, die in C++ als gute Programmierung gilt, in Java nicht machen kann?
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Mal abgesehen davon, dass C++ Modell stand, als Java Anfang der 90er entwickelt wurde, haben die beiden - bis auf das Konzept Objektorientierung und die generelle Syntax - echt nix gemeinsam. Das sollte man immerhin bedenken.
Dann habe ich Java entweder nie verstanden - was allerdings auch für die Leute gilt, die in meinem beruflichen Umfeld professionel damit arbeiten, denn eigentlich sind Java und C++ in meinen Augen sehr nah beisammen. Nur halt, dass Java halt geschwätzig ist und nur die Basics kann.
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Java hat sich mittlerweile so weit von C++ entfernt, dass Vergleiche nur noch auf anderer Ebene geführt werden können. Selbst das Thema Performance muss besonders betrachtet werden. Es gibt genug Beispiele, in denen C++ schneller ist, aber eben auch genug, in denen Java schneller ist.
Ich höre bisher nur von konstruierten Beispielen. Ein echtes Beispiel, wo Java C++ abhängt kenne ich nicht.
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Kommt halt drauf an, was der Schwerpunkt der Anwendung ist. Und nur weil etwas General Purpose Language heißt, sollte man nicht jedes Werkzeug für jedes Problem anwenden ;) Genaugenommen kann man (im Großen) auch Java oder C++ als DSL bezeichnen.
Die DSL ist "kann man schnell im Framework finden"?
Wozu brauche ich dann Java, dann kann ich auch Python nehmen.
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
Warum muss Stroustup für 'friend' erschossen werden? Wie gesagt - ich entwickle selbst eine Programmiersprache und bin immer interessiert an unterschiedlichen Perspektiven.
Ich habe schon lange nichts mehr mit C++ gemacht, aber wenn ich mich recht entsinne, war das Konzept so, dass ich *in* einer Klasse definiere, welche *externen* Funktionen besondere Rechte *in* der Klasse haben.
Damit zerschießt man vollständig die Themen Modularisierung und Kapselung. Wenn ich bevorzugte, externe Methoden schreiben will, muss ich die Klasse trotzdem verändern und in der Klasse die Bevorzugung angeben. Dann kann ich das auch faktisch gleich in die Klasse schreiben, macht vom Prozess kein Unterschied.
Durchaus. Eine Templatefunktion, wie beispielsweise to_string kann man nicht in die Klasse schreiben, man möchte aber damit vielleicht Daten aus der Klasse auslesen, ohne öffentliche getter anzubieten.

Ich sehe auch nicht, wo die Modularisierung kaputt geht, denn wie Du schon schreibst: Man könnte die Funktionen ja in die Klasse schreiben (was nunmal eben nicht geht), also schreibt man mit friend dazu, welche externe Funktion dann mit dieser Klasse verbunden ist.
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Das sinnvolle an Kapselung ist ja eigentlich, dass ich eine bestehende Klasse, die fehlerfrei ist, eigentlich nicht in ihrer Struktur ändern muss, wenn ich Funktionalität hinzufügen will. Letztlich gibt es dafür Vererbung, Dekorator-Pattern, Wrapper-Klassen und weiß der Teufel noch für sinnvolle Möglichkeiten, um einen sinnvollen Entwurf zu realisiern.
Und warum ist friend hier keine sinnvolle Möglichkeit?
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Aber, um das Gleichgewicht zu halten, Java hat bis einkl. Java 8 auch das Thema Kapselung mit 2 Füßen getreten. Mit Reflection ist es sogar möglich, direkt auf private Attribute zuzugreifen und diese zu setzen. Java 9 bietet da durch das Modulsystem wenigstens die Möglichkeit, dem ein Riegel vorzuschieben - auch wenn die wichtigsten Frameworks das wieder torpedieren, da sie allesamt auf Reflection setzen und man die Module doch wieder aufmachen muss.

Da fragt man sich wirklich, wozu man Objektorientierung nutzt :shock:
Da frage ich mich, was OOP eigentlich ist? ^^

Eine brauchbare Definition kenne ich nicht. Für mich ist OOP ein Design Pattern, das mit virtual (bzw. final/static in Java) unterstützt (bzw. verhindert) wird.
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
koshamo hat geschrieben:
So Aug 12, 2018 11:00 am
Wenn man das mal etwas weiter pervertiert, kann man adaptiven Code schreiben, also Code, der sich selbst anpasst.... und da sind wir mitten im KI-Thema.
Kann man das nicht irgendwo mit jeder interpretierenden Sprache? ^^
Und schlussendlich auch indirekt mit C++?
Naja, in C++ kann ich nicht den C++-Laufzeitcode verändern. In Lisp kann ich sogar bereits mit meinem Code den Compiler steuern.... auch wenn ich noch nicht weiß, wie das geht.
In C++ kann man nicht den Code ändern, der gerade läuft. Aber man kann Code erstellen, der später laufen soll.
JIT programmiert sich ähnlich wie normaler Code: Man vereinfacht die Dinge auf ein niedriges Level, wie Assembler oder C und ruft die entsprechenden Funktionen, die Operation Codes in einen std::vector rausfeuern. Man fasst einige Dinge zusammen, Print zum Beispiel ist bei mir eine Funktion, der ich sage was sie drucken soll, zum Beispiel den Inhalt eines Registers oder einen Text. Und anschließend habe ich im Vector die Opcodes, um das Register im 10er System als ASCII-Zeichen auszugeben und tue das dann auch.
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Aber zum Thema "Daten und Code sind identisch" ein kleines Beispiel:

Code: Alles auswählen

;; eine Liste mit 3 Symbolen
'(a b c)
;; ein Ausdruck: eine Funktion a wird aufgerufen und die Parameter b und c übergeben
(a b c)
Der einzige Unterschied zwischen der Liste und dem Ausdruck besteht in der Funktion quote ('), die letztlich nur verhindert, dass das erste Symbol als Funktion interpretiert und aufgerufen wird. Ansonsten gib es im übrigen in Lisp nur Symbole, d.h. ich kann von einer Funktion auch einfach nur den Funktionsnamen weitergeben und woanders dann die Funktion aufrufen (ähnlich wie function-pointer, nur mächtiger).
Das kostet wieviel Zeit?
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Ich würde mich da jetzt gerne noch richtig drüber auslassen, aber so weit bin ich einfach noch nicht. Einiges habe ich mir noch gar nicht angeschaut, anderes habe ich nicht soweit durchdrungen, als dass ich das irgendwie erklären könnte.
Mal gucken, wann ich dieses Jahr nochmal dazu komme, etwas in der Richtung zu lernen.
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Achja, eine bemerkenswerte Kleinigkeit: der eigentliche Lisp-Kern besteht aus nur 7 Funktionen. Der komplette andere Rest kann auf diesen 7 Funktionen aufgebaut werden. Und das zeigt eigentlich die Mächtigkeit des Makrosystems und der einfachen Syntax (die du oben im Beispiel schon quasi vollständig gesehen hast)
Bleibt die Frage, ob hier eine akademische Geilheit aufkommt, den praktisch fand ich Lisp unlesbar. Große Projekte möchte ich damit nicht umsetzen.
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Xin hat geschrieben:
Mi Aug 15, 2018 9:29 am
Denke ich an das Programm von damals, stand dort, dass man an dem Programm erkennen kann, wie man gut programmiert. Damals war ich stolz... heute ist es mir eher peinlich, denn unter gut programmieren verstehe ich heute etwas anderes. ;)
Eigentlich war das alles recht billig. Aber für einen 14jährigen schon sehr cool. :-)
Aber geht es uns nicht mit jedem Projekt so, dass wir nach 5 oder 10 Jahren mal wieder in die Hände bekommen?
Wenn man etwas Freude am Programmieren hat und offen bleibt, kann man ja gar nicht anders, als sich von Jahr zu Jahr zu verbessern....
Mag sein. Aber damals war ich 14 und Goto war noch eine ganz normale Sache und Gosub war was für Leute, die irgendwie komisch dachten. ;)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

koshamo
Beiträge: 13
Registriert: Sa Aug 11, 2018 5:38 pm
Wohnort: Heidelberg

Re: koshamo...

Beitrag von koshamo » Sa Aug 18, 2018 10:00 am

Aaaah, geiles Posting. Langsam kommen wir in die Tiefen rein 8-)
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Spezifikationen habe ich keine gesehen, nur vieles, um dort Mitglied zu werden.
wenn du auf jtopen.com gehst und dann auf Technology, findest du auf der rechten Seite die Spezifikationen.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Was ich an Java gut finde ist, dass es Framework gibt. Man kann mal schnell etwas machen. Was ich an Java nicht gut finde ist die Sprache, die nicht nur sehr geschwätzig ist, sondern auch, dass sie ein Framework hat, was veraltet, inkompatibel wird und reihenweise Sicherheitslücken hat. Man kann sich also entscheiden, ob die Software sicher läuft, weil sie auf der getesteten Version läuft oder ob sie möglicherweise an Inkompatiblitäten abschmiert, weil Sicherheitsupdates notwendig waren. Letzteres wurde daher überall wo ich bisher war abeschaltet, die Software wurde immer mit eigener JVM installiert, bei der man wusste, dass es läuft.
Naja, seit Java bei Oracle ist, ist es mit der Sprache ein ständiges auf und ab. Man beachte nur die lange Zeit, bis Java8 und Java9 released wurden. Dann sieht man mittlerweile diverse Announcements, von gekippten Featuren (siehe Nashorn). JavaFX wurde erst groß gehypet, dann kam die Ankündigung, es aus der SE zu werfen, was dann doch nicht passiert. Sicherheitsfeatures werden auch nicht immer zeitnah eingespielt, was aus meiner Sicht viel politisches Geplänkel ist, denn in manchen Bereichen sind die Sicherheitslücken gleich geschlossen, in anderen nicht. Auch die JVM bringt von zu Hause aus mittlerweile einige Probleme mit sich. Da bleibt die Entwickung der GraalVM abzuwarten. Und man findet mittlerweile einige Artikel dazu, dass man sich doch Gedanken machen sollte, auf die GraalVM umzusteigen.

Aber da sind wir mitten in den Entwicklungsmodellen. Ich glaube nicht, dass es auf Dauer Sinn macht, wenn eine Technologie ausschließlich bei einem global Player in der Verantwortung liegt. Ich glaube aber auch nicht, dass es Sinn macht, wenn eine Sprache in der Verantwortung von einem Konsortium von Global Playern (ISO) liegt. Unterm Strich steht die Politik dann meist vor dem sinnvollen Technologieeinsatz. Und das ist aus meiner Sicht auch der Grund, warum wir gerade in den letzten Jahren so viele neue Programmiersprachen sehen.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Schlussendlich ist das in C++ ähnlich. Aber die Probleme scheinen geringer.
Ansichtssache.
Was mich an C++ stört ist, dass es keine gute Standardbibliothek gibt, die einem die zügige Implementierung von Standardproblemen bietet.
Ok, dafür gibt es boost, was mittlerweile Quasi-Standardbibliothek für C++ ist.
Faktisch muss man mittlerweile zwei riesen Systeme lernen: C++ & boost. Und dann haben wir letztlich nur noch ganz wenige, die das sinnvoll beherrschen können.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Mal schnell etwas machen hat den Vorteil, dass man schnell etwas zeigen kann. Dann allerdings bleibt eine geschwätzige Sprache über, in der man vieles sehr umständlich machen muss. Const-Correctness beispielsweise. Oder Mehrfachvererbung, die jetzt ja wohl als Methodenvererbung so halb eingeführt wurde? Es gibt mir Pointer und die Behauptung, dass es keine Pointer sind.
Letztlich muss man jede Sprache können - und da sind wir wieder bei dem Problem, dass viele ihren Job "einfach nur noch machen". Egal mit welcher Sprache man arbeitet, man muss sich schon ein wenig auskennen.

Const Correctness ist definitiv ein Java-Problem. Man muss riesen Aufwand betreiben, um sicherzustellen, dass die übergeebenen Objekte nicht verändert werden können. Also wird es letztlich auf Kopien rauslaufen.
Das Thema mit den Pointern ist einfach ganz simpel, halt nur völlig von den Marketing-Sprüchen belastet. Jedes Argument wird grundsätzlich immer "call by value" übergeben. Bei Primitiven ist das const, bei Objekten eben nur eine const reference, sprich man kann kein anderes Objekt zuweisen, was einen aber nicht daran hindert, den Objektzustand zu ändern.
Und genau da kommt aus meiner Sicht ein generelles Thema rein: wenn ich tatsächlich diese const correctness haben will, bin ich dann bei einer antiquierten, "rein objektorientierten" Sprache richtig? Warum gibt es denn gerade diese Renaisance der funktionalen Programmiersprachen. Wenn man sich anschaut, wann Java "erfunden" wurde, war der FP Hype schon länger durch und OO galt als DAS Konzept der Zukunft. 25 Jahre später sieht die Welt halt völlig anders aus. Aber FP ist wiederum ein Konzept, das die Masse der Programmierer eben nicht verstehen wird, da fehlt die Leidenschaft, sich in das schwierige Thema einzuarbeiten (und genau diese Programmierer werden aber auch keine guten C++ oder Java Programmierer).

Noch kurz zur Mehrfachvererbung:
Ich frage mich, warum gerade C++ Entwickler immer wieder Mehrfachvererbung als so tolles Feature anpreisen. Selbst unser lieber Bjarne Stroustrup schreibt mittlerweile überall, man solle am besten gänzlich auf die Mehrfachvererbung verzichten. Er hat wohl mittlerweile gesehen, dass das eher von schlechtem Design zeugt, als im Großen und Ganzen einen sinnvollen Nutzen hat.
Und bei schlechtem Design meine ich das genau so: Dank der Mehrfachvererbung macht man sich viel zu wenig Gedanken über die Trennung von Daten und Verhalten und mischt viel zu viel Zeugs einfach durcheinander. Mir ist in all den Jahren kein Fall unter gekommen, in dem ich gesagt hätte "Verdammt, mit Mehrfachvererbung könnte ich das Problem jetzt leicht lösen". Viel eher "oh, da heb ich gerade ein kleines Designproblem. NNa dann, auf zum Refactoring" und der entstandene Code war viel besser strukturiert, klarer und die Zuständigkeiten in Ordnung.
Mal abgesehen davon kommt Rust z.B. ganz ohne VVererbung aus. Und sind wir mal ehrlich, wieviel Vererbung ist denn tatsächlich sinnvoll? Polymorphie zum Ersatz von switch-case Strukturen, ja. Vererbung zum Aufbau eines GUI-Baumes, ja. Abstraktion gemeinsamer Konzepte, ja. Aber wieviele Klassen sind denn "einfach nur Klassen"? Ich denke, das sind deutlich mehr als die Hälfte in jedem Projekt. Und in jedem Anfängerbuch findet man seitenweise Kram über die Vererbung, die Neulinge werden völlig verschreckt und am Ende kommt - nur um Vererbung einzusetzen - völlig wirrer Code ohne klar definierte Zuständigkeiten raus.
Ich bin mittlerweile sehr vorsichtig beim Einsatz von Vererbung und denke lieber zweimal nach, bevor ich Vererbung nutze.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Java war nie eine ehrliche Sprache, Java war nie eine gute Sprache. Java ist lediglich eine erfolgreiche Sprache, weil es viele Java-Entwickler gibt, denen C++ zu schwer erscheint, da sie dafür verstehen müssten, was sie da eigentlich schreiben.
Das kann ich so durchaus unterschreiben. Marketing war der Haupttreiber und Marketing ist nie ehrlich. Es gab Zeiten, da war Java aus meiner Sicht wirklich gut, aber dann haben sie mal wieder die Entwicklung verpennt. Und das Festhalten an der Byte-Kompatibilität bricht Java letztlich das Genik, denn sinnvoller Einsatz der Generics ist kaum möglich.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Und so wachsen die Projekte und man bekommt auf die Frage, warum da einmal pro Stunde eine Exception im Protokoll landet die Antwort "Das wissen wir nicht, aber wenn sie nicht kommt, läuft irgendwas verkehrt."
Warum oder wie eine Software läuft, scheint in Java häufiger zu passieren. Man kümmert sich halt nicht drum. Und man stellt dann einen C++-Entwickler ein, der dann Reingeneering machen darf. ;)
Das immer wieder gleiche Thema..... Qualität der Entwickler.
Und ein C++ Entwickler, der sein Handwerk wirklich versteht, ist eben einer, der die Passion mitbringt. Solche Java-Entwickler findet man auch - nur woher soll man vorher wissen, wer die Passion und das Know-How mitbringt.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Und warum kann man das nicht? Warum ist das anders gelagert? Warum macht man in Java genau das gleiche wie in C++, nur dass man die Sachen, die in C++ als gute Programmierung gilt, in Java nicht machen kann?
Wie oben schon angesprochen, gibt es z.B. den Unterschied Mehrfachvererbung vs. Interfaces. Static vs. nicht OO-Code. Überladen von Operatoren vs Functional Interfaces usw.
Man muss schon in die Sprachen reingehen, um festzustellen, dass die Konzepte sehr unterschiedlich sind und somit auch die Lösungen unterschiedlich ausfallen müssen. Man kann es nicht an einer For-Schleife festmachen, die in beiden Sprachen identisch aussieht. Der erwähnte Thread "Warum ich Java hasse" zeigt eine 1:1 Umsetzung des C++-Code in Java und mir haben sich die Fußnägel hochgerollt, als ich den Code überflogen habe. Wenn ich nur solchen Java-Code sehen würde, fände ich die Sprache auch zum k******. Man kann das aber auch elegant und ähnlicch knapp, aussagekräftig und effizient programmieren.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Dann habe ich Java entweder nie verstanden - was allerdings auch für die Leute gilt, die in meinem beruflichen Umfeld professionel damit arbeiten, denn eigentlich sind Java und C++ in meinen Augen sehr nah beisammen. Nur halt, dass Java halt geschwätzig ist und nur die Basics kann.
Das kann ich nicht beurteilen, aber es ist gut möglich.
Java hat eben auch das Problem, dass man es schnell lernen kann und schnell Code "zum Laufen" bringen kann. Es ist aber eben auch nicht mehr. Er läuft, ist aber oft weder gut noch effizient oder sonstwie brauchbar. Ich denke, Java ist nicht wirklich einfacher oder schlechter als C++, nur mit dem Unterschied, dass man schneller größere Projekte umsetzen kann. Für guten Code wird man in beiden Sprachen wohl ähnlich lang lernen müssen. ur, in C++ sieht man die Notwendigkeit, in Java eher weniger, es läuft ja ;)
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
koshamo hat geschrieben:
Mi Aug 15, 2018 9:35 pm
Java hat sich mittlerweile so weit von C++ entfernt, dass Vergleiche nur noch auf anderer Ebene geführt werden können. Selbst das Thema Performance muss besonders betrachtet werden. Es gibt genug Beispiele, in denen C++ schneller ist, aber eben auch genug, in denen Java schneller ist.
Ich höre bisher nur von konstruierten Beispielen. Ein echtes Beispiel, wo Java C++ abhängt kenne ich nicht.
Naja, die Unterschiede sind doch eingentlich ganz simpel: C++ ist native Sprache und kommuniziert viel mit dem OS, z.B. bei jedem new. Java ist faktisch nix anderes als ein Exokernel mit eigener Speicherverwaltung. D.h. bei einem new muss kein teurer Aufruf an das OS erfolgen, die JVM kümmert sich drum und hier ist sie tatsächlich echt schnell!
Wenn ich also ein Projekt habe, in dem viele kleine Objekte erzeugt und wieder verworfen werden müssen, was bei gutem Design in vielen Projekten der Fall ist, dann hat die JVM hier echte Vorteile gegenüber C++. Der JIT-Compiler ist mittlerweile echt sehr gut, so dass die wenigen performance-kriitischen Codefragmente genauso schnell laufen wie in C++, weil sie eben auch nativ sind (ok, oft nicht so hoch optimiert).
Aber möglicherweise kommt hier zum Tragen, dass der C++-Programmierer bei den Objekt-intensiven (Java)-Programmen in C++ einen völlig anderen Weg einschlagen würde -- und dann sind wir wieder genau bei dem Thema, dass man den Code eben nicht 1:1 übersetzen kann.

Ich sollte mal wieder mit C++ coden... ist einfach schon zu lange her. Zuletzt mit C++03 tehe.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Die DSL ist "kann man schnell im Framework finden"?
Wozu brauche ich dann Java, dann kann ich auch Python nehmen.
Guter Punkt.
Noch vor einigen Jahren wollte niemand mit einer interpretierten Sprache in große Projekte gehen, weshalb Python da auch nicht so richtig in die Pötte kam. Das ist mittlerweile anders und Python ist sogar auf embedded Systemen zu finden. Interpretiert heißt eben nicht langsam (siehe auch Java).

Python hat einen großen Vorteil gegenüber Java: sie haben tatsächlich zwischen der 2er und 3er Linie die Kompatibilität über Bord geworfen, was der Sprache gut getan hat. Das fehlt Java (siehe oben).
Aber warum Python so gehypet wird, ist mir schleierhaft. Die Sprache vereint viele Konzepte, aber keines ist vollständig umgesetzt. Aus meiner Sicht ist die Sprache "nicht Fisch, nicht Fleisch". Aber man kann noch schneller als in Java Prohejte umsetzen -- und genau so sieht dann auch der meiste Code aus ;)
Man wird einfach nicht um Kompetenz drumrum kommen, in keiner Sprache.

Aber es so toll, nach einem Wochenende so viel gelernt zu haben, dass man den Eindruck hat, programmieren zu können und die Welt mit dem eigenen Code zu beglücken.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Durchaus. Eine Templatefunktion, wie beispielsweise to_string kann man nicht in die Klasse schreiben, man möchte aber damit vielleicht Daten aus der Klasse auslesen, ohne öffentliche getter anzubieten.
Warum kann ich eine Methode, die eindeutig zu einer Klasse gehört, nicht in eine Klasse schreiben? Mal im ernst, das zerschießt doch ein sauberes Design, weil ich nicht Dinge, die zusammen gehören, zusammen packen kann. Und für den Anwender heißt das, dass er mehrere Klassen / Files betrachten muss, um zu sehen, was zzusammen gehört. Macht die Sache nicht einfacher. Und genau das ist ein großer Kritikpunkt an C++.... die Unsauberheiten werden dann als Maß der Kompetenz herangezogen um zu unterscheiden, wer es kann und wer nicht. Für mich ist das einfach nur ein unsauberes Ärgernis und ein Grund, die Sprache zu meiden.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Ich sehe auch nicht, wo die Modularisierung kaputt geht, denn wie Du schon schreibst: Man könnte die Funktionen ja in die Klasse schreiben (was nunmal eben nicht geht), also schreibt man mit friend dazu, welche externe Funktion dann mit dieser Klasse verbunden ist.
Wenn C++ doch so viel kann, warum gerade das nicht?!
Und ich werde gezwungen, viel tiefer in die Klasse zu schauen, als ich als Anwender sollte.... konzeptionell fraglich.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Eine brauchbare Definition kenne ich nicht. Für mich ist OOP ein Design Pattern, das mit virtual (bzw. final/static in Java) unterstützt (bzw. verhindert) wird.
Wissenschaftlich betrachtet gibt es auch keine Definition, aber die Literatur ist sich einig, dass Konzepte wie
Objekte & Klassen
Vererbung
Polymorphy / späte Bindung
Kapselung / Information Hiding
dazu gehören bzw. den Kern bilden. Rust z.B. bietet keine Vererbung, ist aber OO.
OO als Design Pattern zu sehen, finde ich interessant. Ich bin mir nur noch nicht sicher, ob ich da mitgehen kann. Das würde letztlich implizieren, dass ich eben auch andere Patterns daneben nutzen kann und das ist aktuell wenig der Fall.
C++ und Java haben aus meiner Sicht das Problem, viel zu imperativ zu sein. Die Grenze zwischen imperativer und oo Programmierung ist völlig verwaschen. So gesehen ist OO eine strukturelle Abstraktion, was einem Pattern entspricht. Hm.... muss ich drüber nachdenken.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
In C++ kann man nicht den Code ändern, der gerade läuft. Aber man kann Code erstellen, der später laufen soll.
JIT programmiert sich ähnlich wie normaler Code: Man vereinfacht die Dinge auf ein niedriges Level, wie Assembler oder C und ruft die entsprechenden Funktionen, die Operation Codes in einen std::vector rausfeuern. Man fasst einige Dinge zusammen, Print zum Beispiel ist bei mir eine Funktion, der ich sage was sie drucken soll, zum Beispiel den Inhalt eines Registers oder einen Text. Und anschließend habe ich im Vector die Opcodes, um das Register im 10er System als ASCII-Zeichen auszugeben und tue das dann auch.
Mir erschließt sich nicht, warum ich in der heutigen Zeit (außer bei Compilerbau) auf diesem Low-Level rumfriemeln sollte. Abstraktion ist eigentlich das Thema und die wird so komplett torpediert. Die primären Programmfehler liegen in den unteren Schichten und von denen sollte man eher wegkommen (und den Leuten überlassen, die das wirklich können). Meine Meinung.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Das kostet wieviel Zeit?
Oh, Common Lisp ist angeblich ähnlich performant wie C. Performance sollte da also nicht das Thema sein ;)
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Bleibt die Frage, ob hier eine akademische Geilheit aufkommt, den praktisch fand ich Lisp unlesbar. Große Projekte möchte ich damit nicht umsetzen.
Bei mir persönlich: ja!
Och, man gewöhnt sich dran ;)
Was ich als "Deutscher" toll finde: es gibt quasi nur runde Klammern, ich kann mich von der Alt-Gr-Taste lösen und schnell tippen. statt car und cdr könnte ich auch head und tail schreiben. Und was mir sprachlich sonst nicht in den Kram passt, verpasse ich einfach mit einem neuen Namen...
Aber letztlich: ist nicht jede neue Sprache oder Sprachfamilie anfangs seltsam im Erscheinungsbild? Jeder Pascal-Programmierer hat sich vor 30 Jahren über die geschweiften Klammern oder die kryptisch kurzen Namen in C-Programmen aufgeregt.... alles nur eine Frage der Sichtweise und Gewöhnung.
Xin hat geschrieben:
Fr Aug 17, 2018 1:53 pm
Mag sein. Aber damals war ich 14 und Goto war noch eine ganz normale Sache und Gosub war was für Leute, die irgendwie komisch dachten. ;)
Es gab ja auch Zeiten, da glaubte man, FORTRAN sei eine gute Sprache :lol:

Antworten