Hermann Wacker / Alte Nachrichten
 
StartSeite | HermannWacker/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern

Veränderung (letzte Änderung) (Autor, Normalansicht)

Verändert: 1c1,113
=Alte Nachrichten=
=Alte Nachrichten=

Lieber Hermann, herzlich willkommen im DseWiki. Mach es dir bequehm und fühl' dich wie zu Hause. Deine C-Kritik werde ich so bald wie möglich lesen und kann sie auch nachfühlen, obwohl C noch immer meine bevorzugte Sprache ist. Ich beteilige mich aber auch aktiv an der Entwicklung der SpracheD - vielleicht interessiert dich das auch. Liebe Grüße -- HelmutLeitner



Hallo Hermann, ich finde deine Ausführungen zum Thema Softwareentwicklung wirklich königlich. Es ist immer wieder erfrischend zu hören, dass es anderen auch so geht wie einen selbst. Manchmal meint man, wenn man sich gerade einmal wieder mitten im Chaos befindet und wie Don Chichotte gegen Windmühlen kämpft, man ist einfach nur zu blöd, dem Computer etwas beizubringen. Deine Seite muss ich einmal meinen Chef zeigen, wenn er wieder einmal irgend etwas bezüglich Terminplanung von uns wissen will. Deine Ausführungen zu C sind recht interessant und du hast sicher die negative Seite sehr gut getroffen, mich würde interessieren was du von C++ hältst?

Habe gleich Java gelernt. Gruß Hermann



(Dieser Eintrag musste leider entfernt werden, da sich gewisse Mitmenschen in ihrer Privatssphäre verletzt sahen.)

Dein Namensfetter

Sören (westwind.net@web.de)

Hallo Sören, vielen Dank für den Eintrag. Ich sende dir in kürze eine E-Mail. Gruß Hermann



Moin wackerer Fechter gegen die Windmühlen!

Viele Leute gibt es ja nicht, die mal was gehaltvolles gegen C zu sagen haben. Deshalb mein Respekt vor deiner C-Katastrophenseite! Ich als Diplom-C-Hasser muss natürlich hier auch meine Hundemarke setzen. Wessen bevorzugte Sprache trotz besseren Wissens immer noch C ist, dem kann ich vielleicht weiterhelfen. :-) -- HenningThielemann




Hallo Hermann,

About two years ago, the Lisp programmer and dot-com millionaire Paul Graham wrote an essay entitled Hackers and Painters, in which he argues that his approach to computer programming is better described by analogies to the visual arts than by the phrase "computer science".

So zu lesen unter http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm. Offenbar ist der Autor aber anderer Meinung:

So let me say it simply - hackers are nothing like painters.

Nach seiner Vorstellung schauen sich 'Painter' wohl den lieben langen Tag nackte Frauen an.

;-) - SDö
:Nach meiner Grundüberzeugung ist Softwareentwicklung eine Kunst.
:Man muß als Softwareentwickler als erstes sein Handwerk beherrschen;
:gute Software ist aber am Ende eine Frage der Ästhetik.
:Von den klassischen Künsten kann man Software Design am ehesten mit der Architektur vergleichen.
:Jeder gute Software Entwickler träumt davon eine Kathedrale zu bauen.
:C-Programme sind wie dritte Welt Slums.
:Die Haupteinkommensquelle für Softwareentwickler besteht darin Wasserleitungen in dritte Weltslums zu
:reparieren, die ein Diktator erbaut hat, und die nie funktioniert hat.
:Leute die Pretty Printer über meine Ada-Sourcen laufe lassen gehören für 10-Jahre ins Gefängnis.


:Bilder malen ist wie Skifahren ober Surfen man muß laufend Entscheidungen fällen.
:Die Entscheidungen sind nichtmehr umkehrbar.
:Der weiteren Weg ist festgelegt.
:Für Software gibt es Refactoring.

:Softwareprojekte sind wie Skifahren.
:Softwareprojekte haben einen Anfangs und einen Endpunkt, wie ein Skilift einen Einstiegs und einen Endpunkt hat.
:Ab n-Mitarbeiten sind Softwareprojekte nicht mehr kontrollierbar, sie bewegen sich unaufhaltsam ins Tal wie eine Lawine.
:Bei einem Software Projekt gibt es bei jeder Abfahrt mindestens einen Beinbruch wenn nicht sogar mehrere Tote

:Die Weiber sind eh an allem Schuld geben aber eine gute Leinwand ab. Braucht noch jemand einen Bikini?


Hallo Herrmann,
ich habe Programmieren anfangs in Assembler (und Maschinencode) gelernt, dann Turbo-Pascal, Basic usw., dann C, C++ (vor 12 Jahren). Vor ca. 3 Jahren bin ich endlich auf Java gestoßen (niemand vorher hat mir leider diesen Tip gegegen), ja, mit Perl habe ich mich auch mal abgequält.

Aus dieser jahrelangen Erfahrung kann ich zwar Deine Warnungen von C bestätigen, aber nicht vollständig. (Übrigens, in C++ ist das genauso schlimm.) Aus folgenden Gründen:

C (auch C++) ist nahe an der Maschinenprogrammierung. Man kann Alles machen, ist aber auch für Alles verantwortlich. Folglich ist C/C++

* geeignet für schnelle Programme, Betriebssystemteile, Hardwarezugriffe, aber

* ungeeignet für anwendungsorientierte Programme.

Desweiteren möchte ich anmerken, dass die automatische Codegenerierung (mit Ergänzung von inneren Zeilen in Methoden-Bodies) beispielsweise bei UML-Tools den C/C++-Programmierer entlastet von der eigenen Entscheidung, wie welche Zeiger zu schreiben sind usw. Für eine Zwischensprache der Codegenerierung ist C oder C++ ganz gut geeignet, etwa vergleichbar damit, dass ein C-Compiler auch erstmal Assembler erzeugt, der danach nochmal über einen Optimierer und dann Assembler läuft. Damit ist für den, der tief hineingucken will, die Beherrschung dessen was abgeht bis zum Maschinencode hin möglich. Solche Dinge sind notwendig, aber nicht für den allgemeinen Anwenderprogrammierer, beispielsweise für Grafikoberflächen usw.

Von Java bin ich überzeugt (obwohl ich auch schon ein paar dumme Ecken festgestellt habe). Alles, was auf dem PC als Applikation läuft, sollte man nur in Java schreiben, Vorteil: Läuft unter Windows genauso wie unter Linux. Java ist viel strenger, das führt zu ordentlichen Programmen, viel besser in Fehlermeldungen beim Compilieren, viel besser beim debuggen usw.

Nun gibt es noch den Querschläger C#, der wieder alles besser können will und Java das Wasser abgraben will, aber es gibt die Open Software-Gemeinde, die kein Freund von besserwissenden Großfirmen ist.

Weil mit Java Software auch für die Automatisierungstechnik (schnelle Zeitscheiben) besser erstell- und testbar ist, aber diese dann aus mehreren Gründen nicht auf dem Zielsystem laufen kann (keine Java-VM, sehr schnelle Zeitscheiben, Garbage-Collector benötigt ausschließende Zeiten), habe ich einen Java2C++-Übersetzer realisiert. Er funktioniert, aber im Kollegenkreis wurde dieser Ansatz nicht angenommen (wollen lieber in C++ programmiernen). Der Ansatz ist folgender: Austesten der Algorithmen in Java nicht in Echtzeit, danach Umsetzen in C++, compilieren und geht. In der zugehörigen Laufzeitumgebung ist eine Speicherverwaltung mit garabageCollector und gleichgroßen Speicherblöcken enthalten, mit dem Vorteil, dass der GarbageCollector die Unterbrechung zulässt, damit kann er in einer niedrigen priorität konkurrierend zu schnellen Threads laufen. Die Laufzeitumgebung umfasst auch Unterstützung von String, LinkedList?, ArrayList?. Vielmehr nicht. Das ganze ist nicht dazu gedacht, komplexe Java-Programme zu übersetzen (das braucht wirklich niemand), sondern dazu, Automatisierungssoftware in Java zu designen und in C/C++ zu implementieren.

PS: In der Vorschau habe ich gesehen, das Windows als Link unterstrichen ist, und hinter LinkedList?, Java2C ein Fragezeichen mit Link steht. Hier gibt's wohl einen automatischen Linkersteller, anders als bei der Wikipedia-Lexikon. (?)

Mit freundlichen Grüßen, Hartmut Schorrig

:Im Grunde bin ich immer noch von der Programmiersprache Ada begeistert.
:Ich habe mich aber in den letzten Jahren auch mit Java beschäftigt.
:Besonders interessant an Java ist momentan die Eclipse und EclipseEntwicklungsUmgebung/RichClientPlattform Technologie.
:Aus meiner Sicht die technologische Spitze der Software Technologie.

:Bei Java habe ich einige Probleme mit Swing und Multithreading.
:Man mache mal mehrere Fenster in meinem Fractal Generator auf.
:Alle Fenster kann ich nur als einen einzigen Thread laufen lassen.
:Events wie Mouse Clicks werden gespeichert und nacheinander abgearbeitet.
:Dies führt bei langen Berechnungen zu sehr hässlichen Effekten.

:Gruß Hermann

:: Es gibt ein paar nützliche Links und Tools zu dem Thema. Ich fang mal eine Seite an SwingMultithreading. SDö




Hmm, also Java ist mir nicht wirklich sehr geheuer. Das ist das selbe als ob man Windows benutzt man weiss nie was wirklich abläuft. Am besten macht sich das bei DRM Hardware bemerkbar (habe hier ca 8 TV Tuner und 5 davon haben DRM kompatible Komponenten eingebaut)
Am Beispiel von IBM Lotus Notes, die Software stirbt nach einiger Zeit an Speichermangel und die Software soweit mir bekannt ist läuft das Teil auch mit Java.
Und wenn ein Java Programmierer einen Fehler sieht der eigentlich im JNI des jeweiligen Moduls steckt steht er vollkommen an.
Das mit den Timeslices finde ich merkwürdig, wie soll ein Java Userspace Prozess bessere Zeiten hinbekommen als eine native Realtime Applikation?! .. Da wäre dann zusätzlich noch die Java VM zwischen Betriebssystem und eigentlicher Applikation. (Eventuell bei dafür ausgelegter Hardware ja, aber nicht bei normalen 0815 Kisten die mit einem OS laufen)
Sofern man wirklich weiss wie Java programmiert wurde kann man auch mutmaßen wie zuverlässig das ganze ist, wenn nicht dann sieht man halt nur die Auswirkungen.

C Programmieren ist auch ein sehr weitreichender Begriff finde ich, es gibt sehr viele APIs die einem das Leben leichter machen (auch Speichermanagement). Für Applikationsprogrammierung finde ich nachwievor C++, Python, Perl, PHP, C (sofern man Erfahrung mit den jeweiligen APIs hat) vollkommen in Ordnung.

Gruß,

Markus Rechberger
:Der Vorteil von Java ist, daß man Plattform unabhängig ist. Wenn ich Applikationen schreiben will die mich nicht an eine spezielle Plattform binden ist Java eine sehr gute Wahl. Will man Hardware nah programmieren, so wird heute normalerweise C verwendet. Hat man aber einen guten Ada-Compiler zur Verfügung, so kann man Hardware nahe Programmierung auch sehr elegant durchführen.

:H.Wacker

Alte Nachrichten

Lieber Hermann, herzlich willkommen im DseWiki. Mach es dir bequehm und fühl' dich wie zu Hause. Deine C-Kritik werde ich so bald wie möglich lesen und kann sie auch nachfühlen, obwohl C noch immer meine bevorzugte Sprache ist. Ich beteilige mich aber auch aktiv an der Entwicklung der SpracheD - vielleicht interessiert dich das auch. Liebe Grüße -- HelmutLeitner


Hallo Hermann, ich finde deine Ausführungen zum Thema Softwareentwicklung wirklich königlich. Es ist immer wieder erfrischend zu hören, dass es anderen auch so geht wie einen selbst. Manchmal meint man, wenn man sich gerade einmal wieder mitten im Chaos befindet und wie Don Chichotte gegen Windmühlen kämpft, man ist einfach nur zu blöd, dem Computer etwas beizubringen. Deine Seite muss ich einmal meinen Chef zeigen, wenn er wieder einmal irgend etwas bezüglich Terminplanung von uns wissen will. Deine Ausführungen zu C sind recht interessant und du hast sicher die negative Seite sehr gut getroffen, mich würde interessieren was du von C++ hältst?

   Habe gleich Java gelernt. Gruß Hermann

(Dieser Eintrag musste leider entfernt werden, da sich gewisse Mitmenschen in ihrer Privatssphäre verletzt sahen.)

Dein Namensfetter

Sören (westwind.net@web.de)

Hallo Sören, vielen Dank für den Eintrag. Ich sende dir in kürze eine E-Mail. Gruß Hermann


Moin wackerer Fechter gegen die Windmühlen!

Viele Leute gibt es ja nicht, die mal was gehaltvolles gegen C zu sagen haben. Deshalb mein Respekt vor deiner C-Katastrophenseite! Ich als Diplom-C-Hasser muss natürlich hier auch meine Hundemarke setzen. Wessen bevorzugte Sprache trotz besseren Wissens immer noch C ist, dem kann ich vielleicht weiterhelfen. :-) -- HenningThielemann


Hallo Hermann,

About two years ago, the Lisp programmer and dot-com millionaire Paul Graham wrote an essay entitled Hackers and Painters, in which he argues that his approach to computer programming is better described by analogies to the visual arts than by the phrase "computer science".

So zu lesen unter http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm. Offenbar ist der Autor aber anderer Meinung:

So let me say it simply - hackers are nothing like painters.

Nach seiner Vorstellung schauen sich 'Painter' wohl den lieben langen Tag nackte Frauen an.

;-) - SDö

Nach meiner Grundüberzeugung ist Softwareentwicklung eine Kunst.
Man muß als Softwareentwickler als erstes sein Handwerk beherrschen;
gute Software ist aber am Ende eine Frage der Ästhetik.
Von den klassischen Künsten kann man Software Design am ehesten mit der Architektur vergleichen.
Jeder gute Software Entwickler träumt davon eine Kathedrale zu bauen.
C-Programme sind wie dritte Welt Slums.
Die Haupteinkommensquelle für Softwareentwickler besteht darin Wasserleitungen in dritte Weltslums zu
reparieren, die ein Diktator erbaut hat, und die nie funktioniert hat.
Leute die Pretty Printer über meine Ada-Sourcen laufe lassen gehören für 10-Jahre ins Gefängnis.

Bilder malen ist wie Skifahren ober Surfen man muß laufend Entscheidungen fällen.
Die Entscheidungen sind nichtmehr umkehrbar.
Der weiteren Weg ist festgelegt.
Für Software gibt es Refactoring.

Softwareprojekte sind wie Skifahren.
Softwareprojekte haben einen Anfangs und einen Endpunkt, wie ein Skilift einen Einstiegs und einen Endpunkt hat.
Ab n-Mitarbeiten sind Softwareprojekte nicht mehr kontrollierbar, sie bewegen sich unaufhaltsam ins Tal wie eine Lawine.
Bei einem Software Projekt gibt es bei jeder Abfahrt mindestens einen Beinbruch wenn nicht sogar mehrere Tote

Die Weiber sind eh an allem Schuld geben aber eine gute Leinwand ab. Braucht noch jemand einen Bikini?

Hallo Herrmann, ich habe Programmieren anfangs in Assembler (und Maschinencode) gelernt, dann Turbo-Pascal, Basic usw., dann C, C++ (vor 12 Jahren). Vor ca. 3 Jahren bin ich endlich auf Java gestoßen (niemand vorher hat mir leider diesen Tip gegegen), ja, mit Perl habe ich mich auch mal abgequält.

Aus dieser jahrelangen Erfahrung kann ich zwar Deine Warnungen von C bestätigen, aber nicht vollständig. (Übrigens, in C++ ist das genauso schlimm.) Aus folgenden Gründen:

C (auch C++) ist nahe an der Maschinenprogrammierung. Man kann Alles machen, ist aber auch für Alles verantwortlich. Folglich ist C/C++

Desweiteren möchte ich anmerken, dass die automatische Codegenerierung (mit Ergänzung von inneren Zeilen in Methoden-Bodies) beispielsweise bei UML-Tools den C/C++-Programmierer entlastet von der eigenen Entscheidung, wie welche Zeiger zu schreiben sind usw. Für eine Zwischensprache der Codegenerierung ist C oder C++ ganz gut geeignet, etwa vergleichbar damit, dass ein C-Compiler auch erstmal Assembler erzeugt, der danach nochmal über einen Optimierer und dann Assembler läuft. Damit ist für den, der tief hineingucken will, die Beherrschung dessen was abgeht bis zum Maschinencode hin möglich. Solche Dinge sind notwendig, aber nicht für den allgemeinen Anwenderprogrammierer, beispielsweise für Grafikoberflächen usw.

Von Java bin ich überzeugt (obwohl ich auch schon ein paar dumme Ecken festgestellt habe). Alles, was auf dem PC als Applikation läuft, sollte man nur in Java schreiben, Vorteil: Läuft unter Windows genauso wie unter Linux. Java ist viel strenger, das führt zu ordentlichen Programmen, viel besser in Fehlermeldungen beim Compilieren, viel besser beim debuggen usw.

Nun gibt es noch den Querschläger C#, der wieder alles besser können will und Java das Wasser abgraben will, aber es gibt die Open Software-Gemeinde, die kein Freund von besserwissenden Großfirmen ist.

Weil mit Java Software auch für die Automatisierungstechnik (schnelle Zeitscheiben) besser erstell- und testbar ist, aber diese dann aus mehreren Gründen nicht auf dem Zielsystem laufen kann (keine Java-VM, sehr schnelle Zeitscheiben, Garbage-Collector benötigt ausschließende Zeiten), habe ich einen Java2C++-Übersetzer realisiert. Er funktioniert, aber im Kollegenkreis wurde dieser Ansatz nicht angenommen (wollen lieber in C++ programmiernen). Der Ansatz ist folgender: Austesten der Algorithmen in Java nicht in Echtzeit, danach Umsetzen in C++, compilieren und geht. In der zugehörigen Laufzeitumgebung ist eine Speicherverwaltung mit garabageCollector und gleichgroßen Speicherblöcken enthalten, mit dem Vorteil, dass der GarbageCollector die Unterbrechung zulässt, damit kann er in einer niedrigen priorität konkurrierend zu schnellen Threads laufen. Die Laufzeitumgebung umfasst auch Unterstützung von String, LinkedList?, ArrayList?. Vielmehr nicht. Das ganze ist nicht dazu gedacht, komplexe Java-Programme zu übersetzen (das braucht wirklich niemand), sondern dazu, Automatisierungssoftware in Java zu designen und in C/C++ zu implementieren.

PS: In der Vorschau habe ich gesehen, das Windows als Link unterstrichen ist, und hinter LinkedList?, Java2C ein Fragezeichen mit Link steht. Hier gibt's wohl einen automatischen Linkersteller, anders als bei der Wikipedia-Lexikon. (?)

Mit freundlichen Grüßen, Hartmut Schorrig

Im Grunde bin ich immer noch von der Programmiersprache Ada begeistert.
Ich habe mich aber in den letzten Jahren auch mit Java beschäftigt.
Besonders interessant an Java ist momentan die Eclipse und EclipseEntwicklungsUmgebung/RichClientPlattform Technologie.
Aus meiner Sicht die technologische Spitze der Software Technologie.

Bei Java habe ich einige Probleme mit Swing und Multithreading.
Man mache mal mehrere Fenster in meinem Fractal Generator auf.
Alle Fenster kann ich nur als einen einzigen Thread laufen lassen.
Events wie Mouse Clicks werden gespeichert und nacheinander abgearbeitet.
Dies führt bei langen Berechnungen zu sehr hässlichen Effekten.

Gruß Hermann

Es gibt ein paar nützliche Links und Tools zu dem Thema. Ich fang mal eine Seite an SwingMultithreading. SDö


Hmm, also Java ist mir nicht wirklich sehr geheuer. Das ist das selbe als ob man Windows benutzt man weiss nie was wirklich abläuft. Am besten macht sich das bei DRM Hardware bemerkbar (habe hier ca 8 TV Tuner und 5 davon haben DRM kompatible Komponenten eingebaut) Am Beispiel von IBM Lotus Notes, die Software stirbt nach einiger Zeit an Speichermangel und die Software soweit mir bekannt ist läuft das Teil auch mit Java. Und wenn ein Java Programmierer einen Fehler sieht der eigentlich im JNI des jeweiligen Moduls steckt steht er vollkommen an. Das mit den Timeslices finde ich merkwürdig, wie soll ein Java Userspace Prozess bessere Zeiten hinbekommen als eine native Realtime Applikation?! .. Da wäre dann zusätzlich noch die Java VM zwischen Betriebssystem und eigentlicher Applikation. (Eventuell bei dafür ausgelegter Hardware ja, aber nicht bei normalen 0815 Kisten die mit einem OS laufen) Sofern man wirklich weiss wie Java programmiert wurde kann man auch mutmaßen wie zuverlässig das ganze ist, wenn nicht dann sieht man halt nur die Auswirkungen.

C Programmieren ist auch ein sehr weitreichender Begriff finde ich, es gibt sehr viele APIs die einem das Leben leichter machen (auch Speichermanagement). Für Applikationsprogrammierung finde ich nachwievor C++, Python, Perl, PHP, C (sofern man Erfahrung mit den jeweiligen APIs hat) vollkommen in Ordnung.

Gruß,

Markus Rechberger

Der Vorteil von Java ist, daß man Plattform unabhängig ist. Wenn ich Applikationen schreiben will die mich nicht an eine spezielle Plattform binden ist Java eine sehr gute Wahl. Will man Hardware nah programmieren, so wird heute normalerweise C verwendet. Hat man aber einen guten Ada-Compiler zur Verfügung, so kann man Hardware nahe Programmierung auch sehr elegant durchführen.

H.Wacker


StartSeite | HermannWacker/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 27. März 2006 11:43 (diff))
Suchbegriff: gesucht wird
im Titel
im Text