Discussion:
Kein Programmiergenie würde Java wählen
(zu alt für eine Antwort)
Stefan Matthias Aust
2004-07-29 20:34:48 UTC
Permalink
Schon Paul Grahams provokanten Artikel
(http://www.paulgraham.com/gh.html) gelesen? Hacker sind übrigens nach
der ursprünglichen Lisp-Tradition die außergewöhnlich guten wenn nicht
genialen Programmierer... die eben die schnell auf die Tasten
hämmerten, hacken... nicht zwielichtige Existenzen, die in die Rechner
anderer Leute einbrechen.

In der JavaLobby hängt man sich an der Bemerkung auf, dass ein guter
Hacker Python statt Java wählen würde oder anders ausgedrückt, eben
nicht freiwillig Java wählen würde. Und anders geschlossen, wer Java
wählt, kann kein guter Entwickler sein.

Sicherlich provokant. Und ich möchte widersprechen - Python wäre für
mich keine Alternative - ich würde Ruby vorziehen wählen :)

Aber ich teile seine Einstellung, dass Programmiersprachen auch Filter
sind. Die Sprache ist eben nicht völlig egal. Zu welcher Sprache man
sich hingezogen fühlt, welche Community einem kompatibel erscheint, ist
ein wichtiger Aspekt. Sind Lisp-Programmierer überdurchschnittlich gut?
Ich kann es nicht mit Sicherheit sagen, aber es scheint mir so. Ich
kann nur sagen, dass ich beim Mitlesen in der Squeak-Mailinglist
(Smalltalk statt Lisp, da kenne ich mich besser aus) deutlich mehr
geniale "Hacker" gelesen und zum Teil kennengelernt habe als bislang in
der Java-Welt, die IMHO eher von sicherlich guten, gewissenhaften,
vielleicht soliden, aber auch ein bisschen langweiligen Entwicklern
dominiert zu sein scheint. Alles nur IMHO natürlich.

Aber wo ist der Dan Ingalls (Designer von Smalltalk) von Java? Gosling?
Sicherlich ein fähiger Mann, aber mein Eindruck war immer, dass er
wenig visionär ist... Steele (Schöpfer von Scheme), auch bei Sun, aber
sein Einfluss auf Java - gleich null... sein legendärer OOPSLA-Talk von
1998 (Growing a language) ohne Auswirkung... Wo ist der Kent Beck von
Java? Klar, Kent macht jetzt auch Java, weil sich das besser verkauft,
aber eigentlich verkauft er seine Smalltalk-Erfahrung ohne es zu
sagen... Genau wie Fowler, Cockburn oder Jutta Eckstein (um mal eine
Deutsche zu nennen) es tun. Ich würde auch Ingalls als großen Hacker
bezeichnen... Java lehnt er ab. Stattdessen ist er charismatisch und
visionär genug, nicht nur Gnome zu begründen sondern jetzt auch Mono
(mit nicht ganz so vielen Befürwortern und deutlich mehr Kritikern).

Gibt es visionäre und/oder geniale Java-Projekte? Nein, nicht einfach
nur erfolgreiche Projekte. Struts oder Tomcat sind erfolgreich, aber
nicht wirklich etwas neues. Gibt es etwas, wo man sagen kann, Wow, und
dann etwas später, man, den möchte ich kennenlernen, von dem möchte ich
lernen? Wenigestens etwas beeindruckendes? Spontan fällt mir nichts
ein, aber vielleicht liegt das an der Tageszeit. Bestimmt gibt es
etwas... es muss etwas geben...

Beeindruckend fand ich übrigens neulich MonoDoc - die Idee eines Wiki
mit einem einfach zu bedienenen GUI verknüpft um das
Dokumentationsproblem zu lösen. Jeder kann per Kopfdruck schnell und
unkompliziert dem Mono-System eine fehlende Beschreibung einer Methode
oder Klasse hinzufügen. Einfach und daher genial... und schon wieder
nicht Java :(

Und ehrlich, einfach nur der Cobol-Programmierer des 21ten Jahrhunderts
zu sein, dass ist eine Ehre, auf die ich jederzeit und gerne verzichten
möchte.


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Johann Burkard
2004-07-29 20:51:57 UTC
Permalink
Post by Stefan Matthias Aust
Gibt es visionäre und/oder geniale Java-Projekte?
Das map24.de-Applet?

Johann
--
Btw: Genau, verpiss dich wieder unter den Stein, wo dein jämmerliches
Dasein hergekommen ist.
(*Tönnes in <***@uni.de>)
Tobias Lehmann
2004-07-29 21:12:25 UTC
Permalink
Super Stefan, vielen Dank.
Morgen wirst Du bestimmt das Welthungerproblem lösen (in Lisp versteht
sich).
Post by Stefan Matthias Aust
Schon Paul Grahams provokanten Artikel
(http://www.paulgraham.com/gh.html) gelesen? Hacker sind übrigens nach
der ursprünglichen Lisp-Tradition die außergewöhnlich guten wenn nicht
genialen Programmierer... die eben die schnell auf die Tasten
hämmerten, hacken... nicht zwielichtige Existenzen, die in die Rechner
anderer Leute einbrechen.
In der JavaLobby hängt man sich an der Bemerkung auf, dass ein guter
Hacker Python statt Java wählen würde oder anders ausgedrückt, eben
nicht freiwillig Java wählen würde. Und anders geschlossen, wer Java
wählt, kann kein guter Entwickler sein.
Sicherlich provokant. Und ich möchte widersprechen - Python wäre für
mich keine Alternative - ich würde Ruby vorziehen wählen :)
Aber ich teile seine Einstellung, dass Programmiersprachen auch Filter
sind. Die Sprache ist eben nicht völlig egal. Zu welcher Sprache man
sich hingezogen fühlt, welche Community einem kompatibel erscheint, ist
ein wichtiger Aspekt. Sind Lisp-Programmierer überdurchschnittlich gut?
Ich kann es nicht mit Sicherheit sagen, aber es scheint mir so. Ich
kann nur sagen, dass ich beim Mitlesen in der Squeak-Mailinglist
(Smalltalk statt Lisp, da kenne ich mich besser aus) deutlich mehr
geniale "Hacker" gelesen und zum Teil kennengelernt habe als bislang in
der Java-Welt, die IMHO eher von sicherlich guten, gewissenhaften,
vielleicht soliden, aber auch ein bisschen langweiligen Entwicklern
dominiert zu sein scheint. Alles nur IMHO natürlich.
Aber wo ist der Dan Ingalls (Designer von Smalltalk) von Java? Gosling?
Sicherlich ein fähiger Mann, aber mein Eindruck war immer, dass er
wenig visionär ist... Steele (Schöpfer von Scheme), auch bei Sun, aber
sein Einfluss auf Java - gleich null... sein legendärer OOPSLA-Talk von
1998 (Growing a language) ohne Auswirkung... Wo ist der Kent Beck von
Java? Klar, Kent macht jetzt auch Java, weil sich das besser verkauft,
aber eigentlich verkauft er seine Smalltalk-Erfahrung ohne es zu
sagen... Genau wie Fowler, Cockburn oder Jutta Eckstein (um mal eine
Deutsche zu nennen) es tun. Ich würde auch Ingalls als großen Hacker
bezeichnen... Java lehnt er ab. Stattdessen ist er charismatisch und
visionär genug, nicht nur Gnome zu begründen sondern jetzt auch Mono
(mit nicht ganz so vielen Befürwortern und deutlich mehr Kritikern).
Gibt es visionäre und/oder geniale Java-Projekte? Nein, nicht einfach
nur erfolgreiche Projekte. Struts oder Tomcat sind erfolgreich, aber
nicht wirklich etwas neues. Gibt es etwas, wo man sagen kann, Wow, und
dann etwas später, man, den möchte ich kennenlernen, von dem möchte ich
lernen? Wenigestens etwas beeindruckendes? Spontan fällt mir nichts
ein, aber vielleicht liegt das an der Tageszeit. Bestimmt gibt es
etwas... es muss etwas geben...
Beeindruckend fand ich übrigens neulich MonoDoc - die Idee eines Wiki
mit einem einfach zu bedienenen GUI verknüpft um das
Dokumentationsproblem zu lösen. Jeder kann per Kopfdruck schnell und
unkompliziert dem Mono-System eine fehlende Beschreibung einer Methode
oder Klasse hinzufügen. Einfach und daher genial... und schon wieder
nicht Java :(
Und ehrlich, einfach nur der Cobol-Programmierer des 21ten Jahrhunderts
zu sein, dass ist eine Ehre, auf die ich jederzeit und gerne verzichten
möchte.
bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Andreas Leidig
2004-07-29 21:50:01 UTC
Permalink
Post by Stefan Matthias Aust
Und ehrlich, einfach nur der Cobol-Programmierer des 21ten Jahrhunderts
zu sein, dass ist eine Ehre, auf die ich jederzeit und gerne verzichten
möchte.
Hallo Stefan,

Du bringst auf den Punkt, was mir seit Jahren durch den Kopf geht. Ich
würde allerdings Conol durch C / C++ ersetzen.

Was mich an Java am meisten ärgert, ist die Tatsache, dass ich mich als
Entwickler mit Problemen rumschlagen muss, die in Smalltalk gar nicht
erst existent waren. Und Smalltalk ist sogar älter!

Aber auch Programmiersprachen verbreiten sich über Marketing und da
kann sich die Smalltalk-Community selbst an den Pranger stellen
(Zeitpunkt späte 90er des letzten Jahrhunderts):
- kostenpflichtige Entwicklungsumgebungen (z.T. exorbitant teuer)
- Elitäres Abgrenzungsgehabe gegenüber den "doofen" C++ Entwicklern
- Kein Marktgeschrei und ohne das geht wohl heute nichts mehr

Auch ich und viele meiner Kollegen programmieren deshalb nun
gezwungenermaßen in Java. Mit welchen Argumenten kann ich denn
heutzutage noch eine andere Sprache dem Kunden verkaufen, der eine
zukunftssichere Plattform sucht?

*in Selbstmitleid und Hass aufgehend* ;)

Andreas
Sven Köhler
2004-07-29 22:58:11 UTC
Permalink
Post by Stefan Matthias Aust
Schon Paul Grahams provokanten Artikel
(http://www.paulgraham.com/gh.html) gelesen? Hacker sind übrigens nach
der ursprünglichen Lisp-Tradition die außergewöhnlich guten wenn nicht
genialen Programmierer... die eben die schnell auf die Tasten
hämmerten, hacken... nicht zwielichtige Existenzen, die in die Rechner
anderer Leute einbrechen.
Ich habe den Artikel nicht gelesen, aber deine Definition von Hacker
trifft erstmal zu, aber was sind dann geniale Programmierer?
Post by Stefan Matthias Aust
In der JavaLobby hängt man sich an der Bemerkung auf, dass ein guter
Hacker Python statt Java wählen würde oder anders ausgedrückt, eben
nicht freiwillig Java wählen würde. Und anders geschlossen, wer Java
wählt, kann kein guter Entwickler sein.
Moment? Hacker = guter Entwickler? Ich finde du darfst hier nicht
zwischen den Begriffen springen.
Post by Stefan Matthias Aust
Sicherlich provokant. Und ich möchte widersprechen - Python wäre für
mich keine Alternative - ich würde Ruby vorziehen wählen :)
Ruby? Python? Alles Scriptsprachen. BTW: derjenige der Java mit
Scriptsprachen vergleicht ist sowieso nicht unbedingt glaubwürdig.
Post by Stefan Matthias Aust
Gibt es visionäre und/oder geniale Java-Projekte? Nein, nicht einfach
nur erfolgreiche Projekte. Struts oder Tomcat sind erfolgreich, aber
nicht wirklich etwas neues. Gibt es etwas, wo man sagen kann, Wow, und
dann etwas später, man, den möchte ich kennenlernen, von dem möchte ich
lernen? Wenigestens etwas beeindruckendes? Spontan fällt mir nichts
ein, aber vielleicht liegt das an der Tageszeit. Bestimmt gibt es
etwas... es muss etwas geben...
Struts und Tomcat sind auch nicht von genialen Programmierern
geschrieben. Mir fällt allerdings auch kein super-duper Projekt ein.
Aber im Grunder verliert alles so ziemlich an Faszination, wenn man es
erstmal durchschaut hat. Die meisten Kochen halt doch nur mit Wasser.
Post by Stefan Matthias Aust
Und ehrlich, einfach nur der Cobol-Programmierer des 21ten Jahrhunderts
zu sein, dass ist eine Ehre, auf die ich jederzeit und gerne verzichten
möchte.
Ja weisst es denn noch nicht? Sourcecode iss doch wieso doof. Demnächst
klicken wir uns alles irgentwie zusammen, und alles wird besser.
(Abgesehen, dass das wieder das selbe wie Sourcecode schreiben in grün
ist, und die Programme dadurch nicht besser werden wenn nicht der
benötigte Grips reingesteckt wird. aber wer dran glaubt, soll's doch
benutzen...)
Stefan Matthias Aust
2004-07-30 06:54:06 UTC
Permalink
Post by Sven Köhler
Ich habe den Artikel nicht gelesen, aber deine Definition von Hacker
trifft erstmal zu, aber was sind dann geniale Programmierer?
Sollte ein Synonym sein. Jemand anders erwähnte das jargon file. Für
mich wäre die erste Definition die wichtigste, jemand der das faustsche
Verlangen hat, den Dingen auf den Grund zu gehen und nicht nur das
notwendige Minimum zu lernen. Dann natürlich die Begeisterung am
Programmieren. Den Spass an der interlektuellen Herausforderung.
Einfach nur schnell zu sein, trifft es IMHO nicht.
Post by Sven Köhler
Ruby? Python? Alles Scriptsprachen.
So what? Ob Interpreter oder Compiler oder Mittelding, das sollte egal
sein. Man kann damit ein Programm formen und eine Idee manifestieren.
Post by Sven Köhler
Aber im Grunder verliert alles so ziemlich an Faszination, wenn man es
erstmal durchschaut hat. Die meisten Kochen halt doch nur mit Wasser.
Ich habe die Hoffnung, dass eine geniale Idee auch dann genial bliebt,
wenn man sie versteht, ja genial ist, weil sie einfach ist. Etwa den
Bildschirm in Fenster aufzuteilen (die sich sogar überlappen können) ist
vielleicht so eine Idee.
Post by Sven Köhler
Mono und Gnome würde ich nicht als Visionär betrachten, eher als
Versuch das Rad zum xtem mal nachzubauen.
Okay, visionär passt nicht, wenn man es nur im Sinne von etwas noch nie
da gewesenes Auffasst. Natürlich ist Gnome oder erst recht Mono nichts
neues. Trotzdem sind beides Aufgaben wo viele wohl sagen würden, so
groß, zu aufwendig, das schaffe ich nicht.
1994 ging sowas schon mit Self...
Post by Sven Köhler
Python ist eine Scriptsprache und von daher nicht mir Java Vergleichbar
oder hast Du in Python schon mal eine GUI ohne Browser entwickelt ?
Ich habe es zwar noch nicht gemacht, wüsste aber nicht, warum es schwer
sein sollte, mit den GTK, QT, WX oder TK-Bindings etwas zu bauen.
Gerade Glade und QtDesigner sind hervorragende GUI-Designer.
Post by Sven Köhler
Über Python läst sich sowieso streiten, angeblich soll es mehr
objektorientiert sein als Java, aber naja, die einzige
(Script)Sprache die 100% pure OO ist Ruby.
Wenn du Script einklammerst, dann ist es auch Smalltalk. Schließlich
wurde der Begriff der Objektorientierung für diese Sprache erfunden :)
Post by Sven Köhler
Lisp und Smalltalk sind keine Sprachen die an jeder UNI unterrichtet
werden
Vielleicht nicht mehr. Ich habe beides an der Uni kennengelernt.
Post by Sven Köhler
Gosling war doch genial, schließlich hat er Java "entworfen" und alle
(wie halt MS ) machen es ihm jetzt nach auch eine Virtual Machine zu
verwenden.
Er hat eine halbgare Sprache, für die er schnell einen Compiler
entwickeln konnte, zusammengestellt. Die VM hat er ganz gewiss nicht
erfunden. Und es war eher die Marketing-Maschine von Sun (und anderen),
die Java populär gemacht hat und so das Wasser bereitet hat.

Das VMs jetzt akzeptiert sind liegt IMHO auch daran, dass moderne
Prozessoren so schnell sind, dass es einfach keine Rolle mehr spielt.
Post by Sven Köhler
Und so schlecht wie ihr das tut ist die Java-Platform
nun wirklich nicht, - von einigen Idiosynkrasien einmal
abgesehn ...
Ich möchte provozieren, sticheln, aufrütteln, vielleicht auf diese weise
etwas bewirken können. Man kann schon mit Java leben. Aber ist das
nicht auch ein bisschen zu wenig. Mittelmaß als Maß aller Dinge?


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Matthias Koch
2004-07-30 10:02:49 UTC
Permalink
Post by Stefan Matthias Aust
Ich habe es zwar noch nicht gemacht, wüsste aber nicht, warum es schwer
sein sollte, mit den GTK, QT, WX oder TK-Bindings etwas zu bauen. Gerade
Glade und QtDesigner sind hervorragende GUI-Designer.
diese GUI Anbindungen gibt es soweit ich weis aber halt nur für
Linux/Unix, für die WinForms gibts nichts ?oder doch ?
und b.) wie schnell istdenn so eine GUI ? ich denke die GUI's von
Hochsprachen sollten da alle wesetnlich schneller sein, zumal es meiner
Meinung nach auch nicht die Aufgabe ist mit einer Scriptsprache eine GUI
zu entwickeln, genauso wenig wies es halt auch die Aufgabe ist mit
Prolog Anwednungsprogramme zu entwickeln (Prolog dient in einem solchen
Fall nur als Backend für die Datenverarbeitung, aber für die
Aufbereitungs etc. ist es einfach nicht gemacht)
Post by Stefan Matthias Aust
Wenn du Script einklammerst, dann ist es auch Smalltalk. Schließlich
wurde der Begriff der Objektorientierung für diese Sprache erfunden :)
da war ich mir halt nich gant sicher, also auf jeden Fall halt von den
Scriptsprachen und ansonsten halt eine von zweien.
Post by Stefan Matthias Aust
Vielleicht nicht mehr. Ich habe beides an der Uni kennengelernt.
dann könnte ich ja auch sagen das ich vor 5 Jahren noch Assembler in der
Schule unterrichtet bekam, es gibt halt heutzutage bessere Sprachen mit
denen sich Probleme einfacher und schneller darstellen und umsetzen
lassen, wie halt Java. (Ok wie gesagt Assembler wird es immer geben weil
man damit halt einfach alles machen kann, bzw auch alles das was zur
Zeit keine einzige Sprache kann und wohl auch in Zukunft nicht können wird)
Post by Stefan Matthias Aust
Er hat eine halbgare Sprache, für die er schnell einen Compiler
entwickeln konnte, zusammengestellt. Die VM hat er ganz gewiss nicht
erfunden. Und es war eher die Marketing-Maschine von Sun (und anderen),
die Java populär gemacht hat und so das Wasser bereitet hat.
Das VMs jetzt akzeptiert sind liegt IMHO auch daran, dass moderne
Prozessoren so schnell sind, dass es einfach keine Rolle mehr spielt.
Du weist aber das Sun ohne Java damals nicht mehr Sun gewesen wäre ?
Marketing hin oder her, Java ist halt einfach eine sehr sehr gute Sprache.

Ich denke die meisten gehen hier davon aus:
Ich habe 10 Jahre lang in Lisp Cobol oder sonstwas für einer Sprache
entwickelt und jetzt muss ich Java machen weil es alle machen dabei ist
die Sprache doch so schlecht es gibt nich dieses A aus Cobol und das B
aus Lisp kann Java auch nicht ...

Java ist halt Java und nicht Cobol oder etc.
Man darf die Sprachen einfach nicht in Ihrem Sprachumfangvergleichen,
das ist absolut falsch, es macht auch wenig Sinn die Syntax zu
vergleichen oder die Anzahl der Zeilen zur lösung eines Problems ...

Viel eher macht es sich die Lösungen anzuschaun, z.B. wie einfach kann
ein Programmcode ohne Doku nachvollzogen werden und in der realität
"abgebildet" werden, bzw. einfach wie logisch ist er.

Java ist einfach sehr logisch daher auch der Erfolg, jetzt könnten hier
sicher wieder etliche meinen Java ist unlogisch, kurzer Vergleich:

Pascal:
x:=0 y:=1

Java:
x=0; y=1;

Pascal:
Beginn
a:=a+b
End

Java:
{
a+=b;
}

wie zu erkennen ist, das zuweisen eines Wertes durch ein = viel
logischer, nicht zuletzt deshalb weil man seit je her so in der
Mathematik macht.

weiterhin ist es logischer das das ende eines Befehls mit einem ;
gekennzeichnet wird weil jede Strecke ja auch immer durch einen Anfangs
und Endpunkt gekennzeichnet ist.

das zusammenfassen in {} ist ebenfalls logischer weil es ja wie bereits
vorher in der Mathematik auch so gemacht wird und Mathematik ist ja
Logik pur, folglich ist die Sprache welche sich am meisten daran hält
auch sehr logisch und von daher einfach zu verstehen umzusetzten etc.

Ich bin vom Assembler direkt zu Java gekommen, und ich "vermisse" nichts
es sind halt zwei verschiedene Sachen und ich bin froh das es so ist,
denn aus dem Assembler konnte ich viel mit in Java bringen besonders was
die effizenz und performance angeht. Ich beschäftige mich auc mit C#
dort sind ja angeblich die vielen Dinge drin die hier alle in Jaav
vermissen aber da sage ich nur: C# hat seine Mittel und Wege Probleme zu
lösen und Java halt seine. Ich vermisse in Java nicht Möglichkeit wie in
C# z.B. das setzen von lese /schreibgeschützen Variablen.
In java gibt es dazu eine Möglichkeit in C# 2, logischer ist aber eine
denn 2 Lösungen für eine Sache ist eine zu viel. in C# wird es so
gemacht und und Java so und wem das halt nicht gefällt der muss sich
halt seine eingen Sprachen bauen.
Das ist auch der Grund wieso ich z.B. PHP und C++ meide,
PHP ist im Web einfach viel zu langsam und der Code wird sehr schnell
unübersichtlicht da sie OOP dort einfach nicht der realität entspricht.
In C++ neigt man viel zu sehr dazu Dinge zu machen die unlogisch sind
und der Sprachumfang und Syntax ist viel zu komplex,

Das ein guter Sprachumfang nicht extrem groß sein muss zeigt zum einen
Java und zum anderen der PC selbst denn der kennt nur 0 1, die wohl
einfachste und logischste Syntax überhaupt.

mfg Matthias
Michael Borgwardt
2004-07-30 08:15:03 UTC
Permalink
Post by Matthias Koch
wie zu erkennen ist, das zuweisen eines Wertes durch ein = viel
logischer, nicht zuletzt deshalb weil man seit je her so in der
Mathematik macht.
Aua.

Ich stimme ja grundsätzlich mit Deinem Standpunkt überein, aber ich fürchte
nach DEM Statement hast Du sämtliche Glaubwürdigkeit verloren.
Post by Matthias Koch
weiterhin ist es logischer das das ende eines Befehls mit einem ;
gekennzeichnet wird weil jede Strecke ja auch immer durch einen Anfangs
und Endpunkt gekennzeichnet ist.
Und ein Zeilenende ist kein "Endpunkt"?
Matthias Koch
2004-07-30 10:29:47 UTC
Permalink
Post by Michael Borgwardt
Aua.
Ich stimme ja grundsätzlich mit Deinem Standpunkt überein, aber ich fürchte
nach DEM Statement hast Du sämtliche Glaubwürdigkeit verloren.
wieso ? meinst du etwa das := logscher ist ?
Post by Michael Borgwardt
Und ein Zeilenende ist kein "Endpunkt"?
sicher aber, nehmen wir mal an du schreibst in Notepad ein paar Zeilen
Code, jetzt willt Du diesen unter Linux öffnen, und siehe da alles steht
in einer Zeile ? warum LR und CR Problem, mit einem ; ist dieses
Problem nicht vorhanden.

mfg Matthias
Michael Borgwardt
2004-07-30 08:34:43 UTC
Permalink
Post by Matthias Koch
Post by Michael Borgwardt
Ich stimme ja grundsätzlich mit Deinem Standpunkt überein, aber ich fürchte
nach DEM Statement hast Du sämtliche Glaubwürdigkeit verloren.
wieso ? meinst du etwa das := logscher ist ?
Ja, weil es eben totaler Unsinn ist daß das =, das seit jeher in der Mathematik
verwendet wird, die Bedeutung einer Wertzuweisung hätte.
Markus Schaber
2004-07-30 11:27:18 UTC
Permalink
Hi, Matthias,

On Fri, 30 Jul 2004 10:29:47 +0000
Post by Matthias Koch
Post by Michael Borgwardt
Und ein Zeilenende ist kein "Endpunkt"?
sicher aber, nehmen wir mal an du schreibst in Notepad ein paar Zeilen
Code, jetzt willt Du diesen unter Linux öffnen, und siehe da alles
steht in einer Zeile ?
Das ist mir mit den von mir verwendeten Linux-Editoren noch nie passiert.
Post by Matthias Koch
warum LR und CR Problem, mit einem ; ist dieses
Problem nicht vorhanden.
Wenn Du ein Problem unzureichender Editoren auf die Sprache abschieben
willst, kommt mir das etwas seltsam vor.

Gruss,
Markus
--
markus schaber | dipl. informatiker
logi-track ag | rennweg 14-16 | ch 8001 zürich
phone +41-43-888 62 52 | fax +41-43-888 62 53
mailto:***@logi-track.com | www.logi-track.com
Stefan Matthias Aust
2004-07-30 08:22:01 UTC
Permalink
Post by Matthias Koch
diese GUI Anbindungen gibt es soweit ich weis aber halt nur für
Linux/Unix, für die WinForms gibts nichts ?oder doch ?
Wieso muss ich jetzt Python verteidigen? Egal, TK und GTK gibt es auch
für Windows, WX ist crossplattform und nutzt ähnlich wie SWT immer
native controls sodass man mindestens hier keinen Unterschied merkt.

WinForms kenne ich nur im Zusammenhang mit .NET und da gibt es seit
gestern IronPython, welches allgemein jede .NET-Bibliothek nutzen kann
und damit auch WinForms.
Post by Matthias Koch
und b.) wie schnell istdenn so eine GUI ? ich denke die GUI's von
Hochsprachen sollten da alle wesetnlich schneller sein, zumal es meiner
Meinung nach auch nicht die Aufgabe ist mit einer Scriptsprache eine GUI
Im Gegenteil. Du wirst keinen Performance-Unterschied merken, da die
Zeit für die paar Funktionen zum Konstruieren der GUIs und ausführen der
Events vernachlässigbar ist. Eine Scriptsprache ist gerade gut
geeignet, um ein GUI zu bauen.
Post by Matthias Koch
dann könnte ich ja auch sagen das ich vor 5 Jahren noch Assembler in der
Schule unterrichtet bekam, es gibt halt heutzutage bessere Sprachen mit
denen sich Probleme einfacher und schneller darstellen und umsetzen
lassen, wie halt Java. (Ok wie gesagt Assembler wird es immer geben weil
man damit halt einfach alles machen kann, bzw auch alles das was zur
Zeit keine einzige Sprache kann und wohl auch in Zukunft nicht können wird)
Es geht nicht darum, was man damit machen kann, sondern es geht IMHO
darum, zu lernen dass es das gibt und welche Denkmuster damit verbunden
sind. Zu wissen, wie die Maschine im innersten tickt, ist finde ich
schon wichtig. Das war vielleicht vor einigen Jahren noch einfacher,
als es noch keine Prozessorkerne mit Hyperthreading, Caches,
Instructionsqueues, etc. gab, aber dann sollte man halt Z80 oder 6502
lernen... ließe sich locker mit einem Emulator auch praktisch durchführen.

Oder kennt noch wer den WDR-Papiercomputer? :)
Post by Matthias Koch
Viel eher macht es sich die Lösungen anzuschaun, z.B. wie einfach kann
ein Programmcode ohne Doku nachvollzogen werden und in der realität
"abgebildet" werden, bzw. einfach wie logisch ist er.
Eben. Und da verliert Java immer :)
Post by Matthias Koch
Java ist einfach sehr logisch
Eine Sprache, die nahezu wahlweise size(), getSize(), length() und
getLength() benutzt, ist nicht logisch. Eine Sprache, die Sonderfälle
wie primitive Datentypen kennt oder switch einschränkt und in keiner
Weise orthogonal ist, ist auch nicht logisch. IMHO.
Post by Matthias Koch
x:=0 y:=1
Wirth hat sich bei ":=" eine Menge gedacht. Das "=" ist unlogisch, da
es eben kein Vergleich oder Gleichsetzung im mathematischen Sinn ist
(etwas wie a = a + 1 macht keinen Sinn in der Mathematik), sondern eine
(Re)Definition. Das "=" war nur einfacher und schneller zu tippen...
Post by Matthias Koch
weiterhin ist es logischer das das ende eines Befehls mit einem ;
gekennzeichnet wird weil jede Strecke ja auch immer durch einen Anfangs
und Endpunkt gekennzeichnet ist.
Wieso ist das logisch? Was hat das mit Strecken zu tun? Eigentlich
würde es völlig ausreichen, das Zeilenende als Befehlsende zu nehmen.
Doch in der Anfangszeit von B und BCPL wollte man gerne mehrere Befehle
in eine Zeile schreiben und da brauchte man einen Trenner. Komma ging
nicht, da schon benutzt in Argumenten. Punkt ging nicht, da schon
benutzt in Fließkommazahlen, : ging nicht, da schon benutzt in Labeln.
Post by Matthias Koch
das zusammenfassen in {} ist ebenfalls logischer weil es ja wie bereits
vorher in der Mathematik auch so gemacht wird
Kein bisschen. Das {} kennzeichnet mengenoperationen. Eine Folge von
Anweisungen ist aber keine ungeordnete Menge. Damit ist das begin/end,
welches eine geordnete Folge impliziert, eigentlich besser. Die
Gruppierung mittels {} war aber einfacher zu tippen. Damit bekam man
auch wieder mehr Code auf eine Seite. Ich glaube, das stammt ebenfalls
aus BCPL.
Post by Matthias Koch
Ich bin vom Assembler direkt zu Java gekommen, und ich "vermisse" nichts
Das wird richtig sein. Ich bin von Smalltalk gekommen und vermisse
einiges (einiges fehlte auch bei Smalltalk, unbestritten, aber wenn man
beides zum Stand 1998 verglich, gewann Smalltalk. Heute bietet Java
natürlich einfach mehr Bibliotheken, auf die auch ich nicht verzichten
möchte)
Post by Matthias Koch
Das ein guter Sprachumfang nicht extrem groß sein muss zeigt zum einen
Java und zum anderen der PC selbst denn der kennt nur 0 1, die wohl
einfachste und logischste Syntax überhaupt.
Nun, noch vor dem ersten echten Computer gab es (als Theorie) die
Turing-Maschine und sie zeigt vielleicht am besten, wie primitiv das
eigentlich ist, mit dem wir uns beschäftigen :)


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Peter Bruells
2004-07-30 08:33:13 UTC
Permalink
Post by Stefan Matthias Aust
Nun, noch vor dem ersten echten Computer gab es (als Theorie) die
Turing-Maschine und sie zeigt vielleicht am besten, wie primitiv das
eigentlich ist, mit dem wir uns beschäftigen :)
*hust*

TM und Z1 waren etwa zur gleichen Zeit fertig. Wobei die analytische
Maschine ja durchaus funktioniert hätte und beide um locker 100 Jahre
geschlagen hätte.
Stefan Matthias Aust
2004-07-30 08:57:45 UTC
Permalink
Post by Peter Bruells
TM und Z1 waren etwa zur gleichen Zeit fertig. Wobei die analytische
Maschine ja durchaus funktioniert hätte und beide um locker 100 Jahre
geschlagen hätte.
Recht hast du.

Alan Turing (geboren 1912) veröffentlichte sein Paper 1936. Von 1939
bis 1945 arbeitete er an der Entschlüsselung Deutscher
U-Boot-Funksprüche (Stichwort Enigma), dort auch mit
Rechner-Unterstützung. Danach arbeitete er an kryptografischen
Problemen und verstarb 1954, wahrscheinlich hat er sich umgebracht.

Konrad Zuse (geboren 1910) baute die Z1 zwischen 1936 und 1938. Dann kam
der Krieg, er wurde eingezogen (welch Verschwendung an Talent) um dann
1940 weitere Computer für die Luftwaffe zu bauen. 1941 hatte er seine
eigene Firma. Leider konnte er gegen die Dominanz der amerikanischen
Computer nicht bestehen, 1962 wurde die Firma verkauft. Er starb 1995.

Charles Babbage (geboren 1791) begann 1823 mit dem Bau der
Differentialmaschine. Der Tod seiner Frau lässt ihn seine Pläne
unterbrechen, danach bekommt er das Geld nicht zusammen, 1834 hat der
die Idee für die allgemeine analytische Maschine, 1851 gibt er
frustriert auf. Er stirbt 1871.


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Wanja Gayk
2004-07-30 09:56:32 UTC
Permalink
Stefan Matthias Aust said...
Post by Stefan Matthias Aust
Charles Babbage (geboren 1791) begann 1823 mit dem Bau der
Differentialmaschine. Der Tod seiner Frau lässt ihn seine Pläne
unterbrechen, danach bekommt er das Geld nicht zusammen, 1834 hat der
die Idee für die allgemeine analytische Maschine, 1851 gibt er
frustriert auf. Er stirbt 1871.
In diesem Zusammenhang ein lesenswertes Buch:
William Gibson & Bruce Sterling
"Die Differenz Maschine" (orig: "the difference engine").
Heyne Verlag, ISBN 3-453-05380-X

Das Buch spielt mit der Fiktion, was passiert wäre, hätte Babbage Erfolg
gehabt.
Unter anderem kommt auch die Person "Ada Byron" (aka Lady Ada King,
Countess of Lovelace) vor. Ihr wisst ja: Die erste Programmiererin der
Geschichte, die auch das Leben aller ihr nachfolgenden Programmierer
prägte: Sie trank, zockte, und nahm Drogen.

Gruß,
-Wanja-
--
"Gewisse Schriftsteller sagen von ihren Werken immer: 'Mein Buch, mein
Kommentar, meine Geschichte'. [..] Es wäre besser, wenn sie sagten:
'unser Buch, unser Kommentar, unsere Geschichte'; wenn man bedenkt, dass
das Gute darin mehr von anderen ist als von ihnen." [Blaise Pascal]
Stefan Matthias Aust
2004-07-30 10:26:14 UTC
Permalink
Post by Wanja Gayk
William Gibson & Bruce Sterling
"Die Differenz Maschine" (orig: "the difference engine").
Heyne Verlag, ISBN 3-453-05380-X
Die Mitbegründer des "Steampunk". Ein Meilenstein. Interessanterweise
ist aber das Rollen- und Tabletop-Spiel "SPACE:1989" ein Jahr früher
erschienen. Dort geht es allerdings nicht so sehr um Computer sondern
um die Idee, was wäre, wenn man mit Ätherschiffen durch das Weltall
reisen könnte und es wirklich Mond- und Marsbewohner gäbe. Von wann das
Rollenspiel Forgotten Futures stammt, kann ich gerade nicht sagen, muss
aber frühe 90er gewesen sein. Das Vorzeige-Steampunk-Rollenspiel Castle
Falkenstein (nein, dass hat nichts aber auch gar nichts mit Castle
Wolfenstein zu tun) stammt jedenfalls von 1996 und ist eigentlich ein
illustrierter Roman.

Auch Mark Twains "A Connecticut Yankee in King Arthur's Court" wird von
einigen in die Steampunk-Kategorie eingeordnet - und alles, was Jules
Verne so erdacht hat. Und natürlich H.G. Wells. Harrison wohl auch...


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Matthias Koch
2004-07-30 11:06:41 UTC
Permalink
Post by Stefan Matthias Aust
Im Gegenteil. Du wirst keinen Performance-Unterschied merken, da die
Zeit für die paar Funktionen zum Konstruieren der GUIs und ausführen der
Events vernachlässigbar ist. Eine Scriptsprache ist gerade gut
geeignet, um ein GUI zu bauen.
nunja das würde hier wohl in eine Debatte über Linker unc Compiler
ausarten, wol gemerkt sollte es erwiesen das optimierter Code schneller
abläuft. (umsonst sind ja Programme die mit Intels C++ Compiler
übersetzt wurden nicht schneller als jene die mit Gcc übersetzt wurden.)
Post by Stefan Matthias Aust
Eben. Und da verliert Java immer :)
naja, also gegen C++ kann ich das mit Sicherheit sagen auf keinen Fall,
auch nicht gegen PHP und Pascal.
Post by Stefan Matthias Aust
Eine Sprache, die nahezu wahlweise size(), getSize(), length() und
getLength() benutzt, ist nicht logisch. Eine Sprache, die Sonderfälle
wie primitive Datentypen kennt oder switch einschränkt und in keiner
Weise orthogonal ist, ist auch nicht logisch. IMHO.
das ist ja kein Merkmal der Sprache sondern, ein Merkmal bestimmter
Methoden, welche wiederum von irgendwelchen Leuten in Java geschrieben
sind und wenn eben diese sich nicht an die Vorgaben und Standards halten
dann sieht es halt so aus, aber das ist mit jeder Sprache so.
Post by Stefan Matthias Aust
Wirth hat sich bei ":=" eine Menge gedacht. Das "=" ist unlogisch, da
es eben kein Vergleich oder Gleichsetzung im mathematischen Sinn ist
(etwas wie a = a + 1 macht keinen Sinn in der Mathematik), sondern eine
(Re)Definition. Das "=" war nur einfacher und schneller zu tippen...
ok, wie zu sehen ist hat auch in der Mathematik das = zwei Seiten:
einmal die Frage (ist a = b*1 ?) und einmal das zusweisen (a ist =b*1)
wie zu sehen ist das Wort ist nur an einer anderen Position,
mathematisch logisch,
denn in der Mathemaktik wird erst "gefragt" und dann "zugeweisen"
technisch ausgedrück:
if a=b*1
then a=b*1
else a<>b*1

folglich musste diese "abfolge" in einer Sprache umgestzt werden:
in Pascal hat man das mit dem := und = gemacht in Java hat man das mit =
und == gemacht, da in der Mathematik aber nur das = für beide Varianten
verwendet wird scheint es logischer das in einer Sprache auch nur mit
dem 0 gearbeitet wird.

Naja hier rüber haben sich sicher schon tausende den Kopf zerbrochen, so
das wir es ihnen nicht gleich machen müssen, ich habe die Erfarung
gemacht das Menschen eher mit der Java Umsetzung dieses Problems zurecht
kommen.
Post by Stefan Matthias Aust
Wieso ist das logisch? Was hat das mit Strecken zu tun? Eigentlich
würde es völlig ausreichen, das Zeilenende als Befehlsende zu nehmen.
Doch in der Anfangszeit von B und BCPL wollte man gerne mehrere Befehle
in eine Zeile schreiben und da brauchte man einen Trenner. Komma ging
nicht, da schon benutzt in Argumenten. Punkt ging nicht, da schon
benutzt in Fließkommazahlen, : ging nicht, da schon benutzt in Labeln.
Der Meinung bin ich nicht da:
a.) eine Strecke in der Maht. immer durch einen Anfangs und einen
Endpunkt gekenzeichnet ist
b.) in jeder gesprochenen Sprache auch ein Satz mit einem speziellen
Zeichen beendet wird.
Post by Stefan Matthias Aust
Kein bisschen. Das {} kennzeichnet mengenoperationen. Eine Folge von
Anweisungen ist aber keine ungeordnete Menge. Damit ist das begin/end,
welches eine geordnete Folge impliziert, eigentlich besser. Die
Gruppierung mittels {} war aber einfacher zu tippen. Damit bekam man
auch wieder mehr Code auf eine Seite. Ich glaube, das stammt ebenfalls
aus BCPL.
Naja, ich denke hier rüber läst sich genauso streiten wie über die
anderen 2 Punkte. vielleicht liegt es einfach nur an den
unterschiedlichen Generationen, so habe ich z.B. festgestellt das die
ältere Generation eher nach dem ER Model arbeitet und die jüngere eher
nach UML bzw. dem OO Model. vergleichbar sind diese aber nicht richtig,
jeder kann auf seinem Gebiet es wohl besser machen als der andere aber
insgesamt können beide in Ihren jeweiligen Gebieten die Probleme gleich
gut lesen. Nur ein Außenstehender wird hier entscheiden was besser ist,
und da ist die UML bzw. OO/A/E/P halt einfach besser.
Post by Stefan Matthias Aust
Das wird richtig sein. Ich bin von Smalltalk gekommen und vermisse
einiges (einiges fehlte auch bei Smalltalk, unbestritten, aber wenn man
beides zum Stand 1998 verglich, gewann Smalltalk. Heute bietet Java
natürlich einfach mehr Bibliotheken, auf die auch ich nicht verzichten
möchte)
wie bereits erwähnt, man kann und sollte sowas nicht vergleichen, die
Bibilothken in Java sind ja auch nur Java Programme, was zeigt das alle
die Dinge die es in Java angeblich nicht gibt sich mit Java lösen lassen
folglich scheint Java also eine sehr mächtige Sprache zu sein.
Post by Stefan Matthias Aust
Nun, noch vor dem ersten echten Computer gab es (als Theorie) die
Turing-Maschine und sie zeigt vielleicht am besten, wie primitiv das
eigentlich ist, mit dem wir uns beschäftigen :)
jo, da haben wir Ihn wieder ;)

mfg Matthias
Michael Borgwardt
2004-07-30 09:38:39 UTC
Permalink
Post by Matthias Koch
einmal die Frage (ist a = b*1 ?) und einmal das zusweisen (a ist =b*1)
wie zu sehen ist das Wort ist nur an einer anderen Position,
mathematisch logisch,
denn in der Mathemaktik wird erst "gefragt" und dann "zugeweisen"
if a=b*1
then a=b*1
else a<>b*1
Nö. Offenbar hast Du keine Ahnung von Mathematik.
Peter Bruells
2004-07-30 09:37:40 UTC
Permalink
Post by Matthias Koch
einmal die Frage (ist a = b*1 ?)
a = b*1 ist eine Aussage, deren Wahrheitswert bis zur Klärung unklar
ist, keine Frage.
Post by Matthias Koch
und einmal das zusweisen (a ist =b*1)
Man schreibt "a sei b*1". Nix mit einem Gleichzeichen.

Wobei Basic damals mal wirklich ein "let a = b*1" hatte.
Post by Matthias Koch
wie zu sehen ist das Wort ist nur an einer anderen Position,
mathematisch logisch,
denn in der Mathemaktik wird erst "gefragt" und dann "zugeweisen"
if a=b*1
then a=b*1
else a<>b*1
Das ist nicht technisch ausgedrückt, sondern mumpitz in pseudocode.
Es ist keine Abfolge, sondern es sind völlig unterschiedliche
Operationen. In der Mathematik hat die "Zuweisung" eine völlig andere
Bedeutung als im Rechner.
Post by Matthias Koch
in Pascal hat man das mit dem := und = gemacht in Java hat man das mit
= und == gemacht, da in der Mathematik aber nur das = für beide
Varianten verwendet wird scheint es logischer das in einer Sprache
auch nur mit dem 0 gearbeitet wird.
Wo kommt denn jetzt die 0 her? Du meintest "=", oder?

In der Mathematik gibt es keinen Zuweisungsoperator "="
Post by Matthias Koch
Naja hier rüber haben sich sicher schon tausende den Kopf
zerbrochen, so das wir es ihnen nicht gleich machen müssen, ich habe
die Erfarung gemacht das Menschen eher mit der Java Umsetzung dieses
Problems zurecht kommen.
Offensichtlich Menschen, die wenig Ahnung von Mathe haben. Wobei die
Verwendung von "=" als Zuweisungsoperator nun wirklich uralt ist und
allein deshalb schon bekannt ist. Die JAVA Leute hatten sich da aus
gutem Grund entschieden, nicht gegen den Strom zu schwimmen.

Würde man sich an menschlicher Sprache orientiere, stünde da sowies
wie "Nimm den Inhalt von Variablentopf b, addiere dazu eine 1 und
packe das Ergebnis in Varianblentopf a"
Post by Matthias Koch
Post by Stefan Matthias Aust
Wieso ist das logisch? Was hat das mit Strecken zu tun? Eigentlich
würde es völlig ausreichen, das Zeilenende als Befehlsende zu
nehmen. Doch in der Anfangszeit von B und BCPL wollte man gerne
mehrere Befehle in eine Zeile schreiben und da brauchte man einen
Trenner. Komma ging nicht, da schon benutzt in Argumenten. Punkt
ging nicht, da schon benutzt in Fließkommazahlen, : ging nicht, da
schon benutzt in Labeln.
a.) eine Strecke in der Maht. immer durch einen Anfangs und einen
Endpunkt gekenzeichnet ist
Nein. Eine Strecke ist eine Verbindung zwischen zwei Punkten. Die
Frage nach dem Start- und Endpunkt sind in dem Kontext uninteressant.
Post by Matthias Koch
b.) in jeder gesprochenen Sprache auch ein Satz mit einem speziellen
Zeichen beendet wird.
Eben nicht. In gesprochenen Sprachen gibt es weder Satzzeichen noch
Großbuchstaben noch Buchstaben. Das sind Eigenschaften von Schriften.
Und nicht jede Schriftsprache kennt Satzzeichen. China hat sie erst
sehr spät vom Westen übernommen, Thai benutzt heute noch keine Leer-
und Satzzeichen, bzw. nur einen kleinen Zwischenraum, der das Ende
eines Satzes markiert.
Post by Matthias Koch
Post by Stefan Matthias Aust
Kein bisschen. Das {} kennzeichnet mengenoperationen. Eine Folge
von Anweisungen ist aber keine ungeordnete Menge. Damit ist das
begin/end, welches eine geordnete Folge impliziert, eigentlich
besser. Die Gruppierung mittels {} war aber einfacher zu tippen.
Damit bekam man auch wieder mehr Code auf eine Seite. Ich glaube,
das stammt ebenfalls aus BCPL.
Naja, ich denke hier rüber läst sich genauso streiten wie über die
anderen 2 Punkte.
Was ist daran zu streiten? Eine Abfolge von Programmbefehlen ist
keine Menge, die Zeichen { und } wurden zur Schachtelung verwendet,
weil es sie auf den Tastaturen gab.
Michael Borgwardt
2004-07-30 10:06:57 UTC
Permalink
Post by Peter Bruells
Post by Matthias Koch
und einmal das zusweisen (a ist =b*1)
Man schreibt "a sei b*1". Nix mit einem Gleichzeichen.
Oh, es wird durchaus auch "sei a=b*1" verwendet, was dann aber trotzdem nichts
mit einer "Zuweisung" zu tun hat ("sei a=a+1" ist immer noch Unsinn) sondern
lediglich die Aussage für die folgende Argumentation als wahr voraussetzt.
Peter Bruells
2004-07-30 10:12:55 UTC
Permalink
Post by Michael Borgwardt
Post by Peter Bruells
Post by Matthias Koch
und einmal das zusweisen (a ist =b*1)
Man schreibt "a sei b*1". Nix mit einem Gleichzeichen.
Oh, es wird durchaus auch "sei a=b*1" verwendet, was dann aber trotzdem nichts
mit einer "Zuweisung" zu tun hat ("sei a=a+1" ist immer noch Unsinn) sondern
lediglich die Aussage für die folgende Argumentation als wahr voraussetzt.
Ja klar. Ich bezog mich darauf, daß es sowas wie "(a ist =b*1)" in
Schriftform bei Mathematik nicht gibt. Sowas schreibt keiner.


Man schreibt "a sei b*1" oder "Es sei/gelte: a = b*1" , was, wie Du ja
auch schreibst, nur Umschreibungen für


"Die Aussage a=b*1 wird für die folgenden Überlegungen als wahr
angenommen" (sie ist ja nicht notwendigerweise wahr)


ist.
Stefan Matthias Aust
2004-07-30 10:30:25 UTC
Permalink
Post by Peter Bruells
Man schreibt "a sei b*1" oder "Es sei/gelte: a = b*1" , was, wie Du ja
auch schreibst, nur Umschreibungen für
"Die Aussage a=b*1 wird für die folgenden Überlegungen als wahr
angenommen" (sie ist ja nicht notwendigerweise wahr)
Ich finde, es bewährt sich, das wie folgt zu lesen:

Sei a eine abkürzende Schreibweise für b * 1. Oder anders ausgedrückt:
Im folgenden will ich "b * 1" einfach mit a bezeichnen. Das entspricht
dann - oh Wunder :) - dem Auswertungsmodell funktionaler
Programmiersprachen.


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Matthias Koch
2004-07-30 13:13:44 UTC
Permalink
Post by Peter Bruells
a = b*1 ist eine Aussage, deren Wahrheitswert bis zur Klärung unklar
ist, keine Frage.
Du meinst also das eine Aussage bis zur Klärung Ihres Wahrheitswertes
keine Frage ist ?, logisch gesehn bedarf jede Klärung einer Frage.
Um zu klären ob die Aussage wahr ist muss schließlich danach gefragt
werden und wenn es nur die Frage um das WARUM ist, ist es eine Frage.

es ist rein logisch:
ja oder nein
impiziert die Frage(n)
"nimmst du" ja ?
und
"nimmst du" nein ?

genauso ist 10+10
auch eine Frage, die Frage nach dem "Wie viel" oder "Wie groß" wie auch
immer.

Mann darf nicht vergessen das der Mensch die Mathematik "erfunden" hat
nicht die Natur, demzufolge ist es nur ein Instrument welches einfach
aufgebaut ist, was jeder versteht egal ob chinese oder Indianer und was
jeder "IN SEINE SPRACHE REPLZIEREN" kann.

dabei ist es egal ob ich sage Birnen und Äpfel oder Menge A und Menge B
Post by Peter Bruells
Post by Matthias Koch
und einmal das zusweisen (a ist =b*1)
Man schreibt "a sei b*1". Nix mit einem Gleichzeichen.
das sei ist nur die Form von = welches bei einer "wahren Aussage"
bestehen bleibt oder in eine ungleich (ein druchgestrichenes =)
umgewandelt wird.

Es ist also nur der Ausdruck eines menschliches Prozesses.
Post by Peter Bruells
Wobei Basic damals mal wirklich ein "let a = b*1" hatte.
Du solltest dir mal Prolog ansehe, dort kann man a=b*1 nach Prolog
übertragen.
Post by Peter Bruells
Post by Matthias Koch
if a=b*1
then a=b*1
else a<>b*1
Das ist nicht technisch ausgedrückt, sondern mumpitz in pseudocode.
egal ob pseudecode oder nicht, es ist aber die einfache logische Abfolge
die jeder Mensch so bewust oder unbewust ausführt das ist einfach so.
genauso wie halt 0 oder 1 , unser Gehirn ist auch nur ein (Quanten)Computer.
Post by Peter Bruells
Es ist keine Abfolge, sondern es sind völlig unterschiedliche
Operationen. In der Mathematik hat die "Zuweisung" eine völlig andere
Bedeutung als im Rechner.
und wie willst du denn die Fragen lösen ohne eine andere Operation zu
verwenden ?
die einzige Antwort die jedem immer bekannt ist die Antwort auf die
Frage ja odr nein, (entweder der Mensch kann einen Apfel in einem Eimer
wahrnehmen oder nicht) folglich werden alle Fragen auf diese eine
"runtergebrochen"
Post by Peter Bruells
Wo kommt denn jetzt die 0 her? Du meintest "=", oder?
ups, jo.
Post by Peter Bruells
In der Mathematik gibt es keinen Zuweisungsoperator "="
jein, wenn man die Mathematik mit Zahlen betrachtet denn gibt es den
nicht, denn man braucht Ihn auch nicht, beim arbeiten mit unbekannten
wird er benötigt, denn der unbekannten wird im endeffekt ja nur eine
zahl zugeorndet. um so wieder einen Mathematischen logischen Zusamenhang
zu erhalten.
Post by Peter Bruells
Offensichtlich Menschen, die wenig Ahnung von Mathe haben. Wobei die
Verwendung von "=" als Zuweisungsoperator nun wirklich uralt ist und
hattest Du nicht gerade behauptet in der Mathematik gibt es keinen
Zuweisungsoperator ??
Post by Peter Bruells
allein deshalb schon bekannt ist. Die JAVA Leute hatten sich da aus
gutem Grund entschieden, nicht gegen den Strom zu schwimmen.
jo genau das habe ich doch auch nur gesagt.
Post by Peter Bruells
Würde man sich an menschlicher Sprache orientiere, stünde da sowies
wie "Nimm den Inhalt von Variablentopf b, addiere dazu eine 1 und
packe das Ergebnis in Varianblentopf a"
ach und das macht Java nicht:

BigInteger i = 1;
i.add(2);
Post by Peter Bruells
Nein. Eine Strecke ist eine Verbindung zwischen zwei Punkten. Die
Frage nach dem Start- und Endpunkt sind in dem Kontext uninteressant.
relativ, denn ohne einen definierten start und endpunkt gibt es keine
Strecke.
und soweit ich weis ist einer Strecke immer die Frage nach dem Start und
Endpunkt.
Post by Peter Bruells
Eben nicht. In gesprochenen Sprachen gibt es weder Satzzeichen noch
Großbuchstaben noch Buchstaben. Das sind Eigenschaften von Schriften.
Und nicht jede Schriftsprache kennt Satzzeichen. China hat sie erst
sehr spät vom Westen übernommen, Thai benutzt heute noch keine Leer-
und Satzzeichen, bzw. nur einen kleinen Zwischenraum, der das Ende
eines Satzes markiert.
ja richtig, von so her bräuchten wir auch keine Schriftzeichen etc.
aber die sind nun mal da um das aufzuzeichnen was ihrgendwer mal gesagt
hat und zwear in der weise wie er es gesagt hat und in einer Form in der
es auch später jeder nachvollziehen kann. bis auf den letzten Punkt
würde die alte Chinesiche Schrift somit funktionieren, aber beim letzten
gibt es halt dann probleme wenn jemand diese Schreiftzeichen in die
seinigen übersetzen muss, denn eine 1 zu 1 übersetzung funktioniert ja
nicht.
Post by Peter Bruells
Was ist daran zu streiten? Eine Abfolge von Programmbefehlen ist
keine Menge, die Zeichen { und } wurden zur Schachtelung verwendet,
weil es sie auf den Tastaturen gab.
Eine Menge ist eine Samlung, egal ob von Äpfeln oder von Programmbefehlen.

mfg Matthias
Peter Bruells
2004-07-30 11:28:58 UTC
Permalink
Post by Matthias Koch
Post by Peter Bruells
a = b*1 ist eine Aussage, deren Wahrheitswert bis zur Klärung unklar
ist, keine Frage.
Du meinst also das eine Aussage bis zur Klärung Ihres Wahrheitswertes
keine Frage ist ?,
Ja.
Post by Matthias Koch
logisch gesehn bedarf jede Klärung einer Frage.
Um zu klären ob die Aussage wahr ist muss schließlich danach gefragt
werden und wenn es nur die Frage um das WARUM ist, ist es eine Frage.
ja oder nein
impiziert die Frage(n)
"nimmst du" ja ?
und
"nimmst du" nein ?
Nein, in der Aussagenlogik nicht. "Willst Du Essen oder nicht" kann
bequem und korrekt immer mit "JA" beantwortet werden.
Post by Matthias Koch
genauso ist 10+10 auch eine Frage, die Frage nach dem "Wie viel"
oder "Wie groß" wie auch immer.
Nein. "Frage" ist im mathematischen Kontext ein fast sinnloser
Begriff, der auf "Was ist der Wahrheitswert der folgenden Aussagen"
reduziert werden kann.
Post by Matthias Koch
Mann darf nicht vergessen das der Mensch die Mathematik "erfunden"
hat nicht die Natur, demzufolge ist es nur ein Instrument welches
einfach aufgebaut ist, was jeder versteht egal ob chinese oder
Indianer und was jeder "IN SEINE SPRACHE REPLZIEREN" kann.
Seltsamerweise hat sich aber bisher gezeigt, daß wir für die Modelle,
die unsere reale Welt hinreichend gut beschreiben, nur eine Mathematik
gefunden haben.
Post by Matthias Koch
Post by Peter Bruells
Wobei Basic damals mal wirklich ein "let a = b*1" hatte.
Du solltest dir mal Prolog ansehe, dort kann man a=b*1 nach Prolog
übertragen.
Ich habe Prolog gelernt, danke. Der Witz an Prolog ist (vergröbert),
daß man eine Reihe von Aussagen trifft und es Aufgabe des Interpreters
ist, durch Backtracking Wertemengen zu finden finden, für die diese
Aussagen wahr sind.
Post by Matthias Koch
Post by Peter Bruells
Es ist keine Abfolge, sondern es sind völlig unterschiedliche
Operationen. In der Mathematik hat die "Zuweisung" eine völlig andere
Bedeutung als im Rechner.
und wie willst du denn die Fragen lösen ohne eine andere Operation zu
verwenden?
Habe ich geschrieben, daß es nur den Gleichheitsoperator gibt? Nein.
Post by Matthias Koch
die einzige Antwort die jedem immer bekannt ist die Antwort auf die
Frage ja odr nein, (entweder der Mensch kann einen Apfel in einem
Eimer wahrnehmen oder nicht) folglich werden alle Fragen auf diese
eine "runtergebrochen"
Post by Peter Bruells
Wo kommt denn jetzt die 0 her? Du meintest "=", oder?
ups, jo.
Post by Peter Bruells
In der Mathematik gibt es keinen Zuweisungsoperator "="
jein, wenn man die Mathematik mit Zahlen betrachtet denn gibt es den
nicht, denn man braucht Ihn auch nicht, beim arbeiten mit unbekannten
wird er benötigt, denn der unbekannten wird im endeffekt ja nur eine
zahl zugeorndet. um so wieder einen Mathematischen logischen
Zusamenhang zu erhalten.
Zum einen verwechselst du Mathematik mit Arithmetik, zum anderen
liegst Du noch immer falsch.

Den Unbekannten wird keine Zahl zugeordnet, sondern Terme mit
unbekannten werden nach wohldefinierten Regeln umgeformt. WENN man in
einen solchen Term eine Zahl einsetzt, DANN kann man durch diese
Umformungen ggf. bestimmen, bei welchen anderen Zahlen die Aussage
immer noch wahr ist. Mehr nicht.
Post by Matthias Koch
Post by Peter Bruells
Offensichtlich Menschen, die wenig Ahnung von Mathe haben. Wobei die
Verwendung von "=" als Zuweisungsoperator nun wirklich uralt ist und
hattest Du nicht gerade behauptet in der Mathematik gibt es keinen
Zuweisungsoperator ??
Ich rede von der Verwendung in Programmiersprachen, ergo wird "uralt"
in Jahrzehnten gemessen.
Post by Matthias Koch
Post by Peter Bruells
Würde man sich an menschlicher Sprache orientiere, stünde da sowies
wie "Nimm den Inhalt von Variablentopf b, addiere dazu eine 1 und
packe das Ergebnis in Varianblentopf a"
BigInteger i = 1;
i.add(2);
Natürlich macht das das Java, aber was da oben steht entspricht weder
der Mathematik, noch natürlicher Sprache. Es ist eine bastardisierte
Form natürlicher Sprache, mit einem eingeschränkten Alphabet und einem
Alphabet mit einigen Elementen, die der für die Beschreibung für
Mathamtik verwendeten Sprache entnommen sind, ohne daß die dortige
Semantik übernommen wurde.
Post by Matthias Koch
Post by Peter Bruells
Nein. Eine Strecke ist eine Verbindung zwischen zwei Punkten. Die
Frage nach dem Start- und Endpunkt sind in dem Kontext uninteressant.
relativ, denn ohne einen definierten start und endpunkt gibt es keine
Strecke.
In der Mathematik schon.
Post by Matthias Koch
und soweit ich weis ist einer Strecke immer die Frage nach dem Start
und Endpunkt.
Du weißt falsch.
Post by Matthias Koch
Post by Peter Bruells
Eben nicht. In gesprochenen Sprachen gibt es weder Satzzeichen noch
Großbuchstaben noch Buchstaben. Das sind Eigenschaften von Schriften.
Und nicht jede Schriftsprache kennt Satzzeichen. China hat sie erst
sehr spät vom Westen übernommen, Thai benutzt heute noch keine Leer-
und Satzzeichen, bzw. nur einen kleinen Zwischenraum, der das Ende
eines Satzes markiert.
ja richtig, von so her bräuchten wir auch keine Schriftzeichen etc.
aber die sind nun mal da um das aufzuzeichnen was ihrgendwer mal
gesagt hat und zwear in der weise wie er es gesagt hat und in einer
Form in der es auch später jeder nachvollziehen kann. bis auf den
letzten Punkt würde die alte Chinesiche Schrift somit funktionieren,
aber beim letzten gibt es halt dann probleme wenn jemand diese
Schreiftzeichen in die seinigen übersetzen muss, denn eine 1 zu 1
übersetzung funktioniert ja nicht.
Was möchtest Du eigentlich aussagen? Ich verstehe es nicht. Deine
Aussage "Sprache braucht Satzzeichen" war falsch, und "Schriftsprache
braucht Satzzeichen" ist ebenfalls falsch. Satzzeichen sind bequem,
aber man kann jeden beliebigen Text ohne nennenswerten
Bedeutungsverlut in einen satzzeichenlosen Text überführen.
Post by Matthias Koch
Post by Peter Bruells
Was ist daran zu streiten? Eine Abfolge von Programmbefehlen ist
keine Menge, die Zeichen { und } wurden zur Schachtelung verwendet,
weil es sie auf den Tastaturen gab.
Eine Menge ist eine Samlung, egal ob von Äpfeln oder von Programmbefehlen.
Nein.

Ich versichere Dir, daß es für die Mächtigkeit der Menge { großer
Apfel, kleiner Apfel, mittelgroßer Apfel } egal ist, in welcher
Reihenfolge die Apfel reingelegt werden, aber es einen Unterschied
machen, in welcher Reihenfolge die Befehle { a:= 5, b:= 7, a:= b + 8
} ausgeführt werden.
Michael Borgwardt
2004-07-30 11:38:38 UTC
Permalink
Post by Peter Bruells
Was möchtest Du eigentlich aussagen? Ich verstehe es nicht. Deine
Aussage "Sprache braucht Satzzeichen" war falsch, und "Schriftsprache
braucht Satzzeichen" ist ebenfalls falsch. Satzzeichen sind bequem,
aber man kann jeden beliebigen Text ohne nennenswerten
Bedeutungsverlut in einen satzzeichenlosen Text überführen.
Das stimmt nicht ganz; es gibt Fälle wo durch die Entfernung eines
Satzzeichens eine Mehrdeutigkeit entsteht, z.B.

I'd like to thank my parents, Ayn Rand, and God.

vs.

I'd like to thank my parents, Any Rand and God.

(Leider fällt mir gerade kein deutsches Beispiel ein)
Peter Bruells
2004-07-30 12:08:53 UTC
Permalink
Post by Michael Borgwardt
Post by Peter Bruells
Was möchtest Du eigentlich aussagen? Ich verstehe es nicht. Deine
Aussage "Sprache braucht Satzzeichen" war falsch, und "Schriftsprache
braucht Satzzeichen" ist ebenfalls falsch. Satzzeichen sind bequem,
aber man kann jeden beliebigen Text ohne nennenswerten
Bedeutungsverlut in einen satzzeichenlosen Text überführen.
Das stimmt nicht ganz; es gibt Fälle wo durch die Entfernung eines
Satzzeichens eine Mehrdeutigkeit entsteht, z.B.
I'd like to thank my parents, Ayn Rand, and God.
vs.
I'd like to thank my parents, Any Rand and God.
Ich schrieb nicht ohne Grund "überführen".

I'd like the to to thank God and Ayn Rand and my parents
Matthias Koch
2004-07-30 14:11:52 UTC
Permalink
Post by Peter Bruells
Ja.
naja, jedem das seine, es gibt ja auch Menschen die baupten keine
Schildkröte ist schneller als ein Gepard wenn sie nur einen Vorsprung
hat, denn der Gepard muss diesen Vorsprung erst wieder einholen
und dann hat die Schildkröte bereits einen neuen Vorsprung den wiedrum
der Gepard einholgen muss... Schlussfolgerung des besagtne: somit
gewinnt die Schildkröte weil der Gepard immer erst ihren Vorsprung
einholen muss, welcher zwar immer kleiner wird aber nie gleich null.
Post by Peter Bruells
Nein, in der Aussagenlogik nicht. "Willst Du Essen oder nicht" kann
bequem und korrekt immer mit "JA" beantwortet werden.
und wenn ich schon gegessen habe dan atworte ich wohl mit nein
folglich läst sich das ganze daruaf zurück führen ob ich schon gegessen
habe.
Post by Peter Bruells
Nein. "Frage" ist im mathematischen Kontext ein fast sinnloser
Begriff, der auf "Was ist der Wahrheitswert der folgenden Aussagen"
reduziert werden kann.
ach und das ist dann keine Frage ? (ich meine mich düster daran erinnern
zu können das mit Was immer eine Frage eingeleitet wird)
Post by Peter Bruells
Seltsamerweise hat sich aber bisher gezeigt, daß wir für die Modelle,
die unsere reale Welt hinreichend gut beschreiben, nur eine Mathematik
gefunden haben.
Mathematik könnte man als 2D bezeichnen OOP dagegen könnte 3D sein.
naja das wäre jetzt aber zu abstract.
Post by Peter Bruells
Ich habe Prolog gelernt, danke. Der Witz an Prolog ist (vergröbert),
daß man eine Reihe von Aussagen trifft und es Aufgabe des Interpreters
ist, durch Backtracking Wertemengen zu finden finden, für die diese
Aussagen wahr sind.
ja halt reine Prädikatenlogik. somit lassen sich in Prolog Dinge lösen
welche
weder Java noch sonst welche Sprache kann.
Post by Peter Bruells
Habe ich geschrieben, daß es nur den Gleichheitsoperator gibt? Nein.
nein, aber selbst wenn du ungleich größer kleiner etc. verwendest führt es
auf das selbe Problem zurück.
Post by Peter Bruells
Zum einen verwechselst du Mathematik mit Arithmetik, zum anderen
liegst Du noch immer falsch.
Den Unbekannten wird keine Zahl zugeordnet, sondern Terme mit
unbekannten werden nach wohldefinierten Regeln umgeformt. WENN man in
einen solchen Term eine Zahl einsetzt, DANN kann man durch diese
Umformungen ggf. bestimmen, bei welchen anderen Zahlen die Aussage
immer noch wahr ist. Mehr nicht.
nicht anderes habe ich gemeint, was ja wieder auf die eine Frage zrück
führt.
Post by Peter Bruells
Ich rede von der Verwendung in Programmiersprachen, ergo wird "uralt"
in Jahrzehnten gemessen.
nun gut.
Post by Peter Bruells
Natürlich macht das das Java, aber was da oben steht entspricht weder
der Mathematik, noch natürlicher Sprache. Es ist eine bastardisierte
Form natürlicher Sprache, mit einem eingeschränkten Alphabet und einem
Alphabet mit einigen Elementen, die der für die Beschreibung für
Mathamtik verwendeten Sprache entnommen sind, ohne daß die dortige
Semantik übernommen wurde.
naja, in diesem Falle kann man auch die Mathematik als eine Sprache ansehen
jeder hat nun mal sein Alphabet und seine Semantik. Die Mathematik ist
eine sehr einfache und bedingt durch nur 2 Zustände logische "Sprache"
Java ist wie du ja selber schreibst nur eine gute abstraction dieser,
ergo ist sie auch logisch und weil besser abstrahiert "logischer" als
andere Sprachen wenn man dies wieder auf eine Sprache wie Deutsch oder
English zurück führt.
Post by Peter Bruells
In der Mathematik schon.
soetwas nennt man Gerade, und auch eine Gerade ist durch 2 Punkte
gekennzeichnet
nur eben nicht den Start und Endpunkt.
Post by Peter Bruells
Du weißt falsch.
Die länge von Strecke A , ist quasi die Länge zwsichen dem Punkt A1 und A2.
Post by Peter Bruells
Was möchtest Du eigentlich aussagen? Ich verstehe es nicht. Deine
Aussage "Sprache braucht Satzzeichen" war falsch, und "Schriftsprache
braucht Satzzeichen" ist ebenfalls falsch. Satzzeichen sind bequem,
aber man kann jeden beliebigen Text ohne nennenswerten
Bedeutungsverlut in einen satzzeichenlosen Text überführen.
ich habe mal eine Zeitlang ohne Satzzeichen hier geschrieben, und bekamm
oftmals den Hinweis ich solle doch Satzzeichen verwenden da es sonst nur
schwer möglich ist mich zu verstehen.
Post by Peter Bruells
Nein.
Ich versichere Dir, daß es für die Mächtigkeit der Menge { großer
Apfel, kleiner Apfel, mittelgroßer Apfel } egal ist, in welcher
Reihenfolge die Apfel reingelegt werden, aber es einen Unterschied
machen, in welcher Reihenfolge die Befehle { a:= 5, b:= 7, a:= b + 8
} ausgeführt werden.
dann überführen wir eben die Menge eben in:
die Menge geordneter paare.

mfg Matthias
Bernd Eckenfels
2004-07-30 12:09:10 UTC
Permalink
Post by Matthias Koch
Post by Peter Bruells
Nein, in der Aussagenlogik nicht. "Willst Du Essen oder nicht" kann
bequem und korrekt immer mit "JA" beantwortet werden.
und wenn ich schon gegessen habe dan atworte ich wohl mit nein
folglich läst sich das ganze daruaf zurück führen ob ich schon gegessen
habe.
(a | !a) -> true

Gruss
Bernd
--
eckes privat - http://www.eckes.org/
Project Freefire - http://www.freefire.org/
Matthias Koch
2004-07-30 14:39:51 UTC
Permalink
Post by Bernd Eckenfels
(a | !a) -> true
jo, und wie wir wissen, würde Prolog diese Aussage raus schweißen
da sie unnütz ist.
genauso wie:

while(true)
{
...
}
ohne break etc.


sowas wird halt immer auf anderen Aussagen zurück geführt welche
entweder Wahr oder Falsch sind, sonst wären wir ja heute nicht hier.

mfg Matthias
Daniel Urban
2004-07-30 22:03:22 UTC
Permalink
Post by Matthias Koch
Post by Bernd Eckenfels
(a | !a) -> true
jo, und wie wir wissen, würde Prolog diese Aussage raus schweißen
da sie unnütz ist.
while(true)
{
...
}
ohne break etc.
Ich glaube, die Aussage möchtest Du noch einmal genauer erklären. Ich hoffe,
Du wolltest nicht sagen, daß man while (true) wie in Prolog das (a|!a)
rausschmeißen kann. So eine Schleife kann ganz schön wichtig sein oder aber
sehr lästig.
Post by Matthias Koch
sowas wird halt immer auf anderen Aussagen zurück geführt welche
entweder Wahr oder Falsch sind, sonst wären wir ja heute nicht hier.
Ich hoffe, Du hast selber verstanden, was Du da sagst, ich habe es leider
nicht verstanden.

Gruß,

Daniel
Alexander Schueller
2004-07-30 12:30:05 UTC
Permalink
"Matthias Koch" schrieb
Post by Matthias Koch
Post by Peter Bruells
Nein, in der Aussagenlogik nicht. "Willst Du Essen oder nicht" kann
bequem und korrekt immer mit "JA" beantwortet werden.
und wenn ich schon gegessen habe dan atworte ich wohl mit nein
folglich läst sich das ganze daruaf zurück führen ob ich schon gegessen
habe.
Au weia!!!

Die Aussage ist eine Tautologie. Kann NUR mit WAHR beantwortet werden.

Kurze Anleitung für nicht-Logiker, wieso:

Wenn Du sie negierst (was Du mit "FALSE" aka NEIN machst)
hast Du folgende angeblich wahre Aussage:

Ich will NICHT Essen und ich will Essen.

Und ich schätze, das sieht jeder SOFORT, dass dies eine falsche
Aussage ist oder?

BG
Alex
Wanja Gayk
2004-07-30 10:05:53 UTC
Permalink
Matthias Koch said...
Post by Matthias Koch
Post by Stefan Matthias Aust
Wirth hat sich bei ":=" eine Menge gedacht. Das "=" ist unlogisch, da
es eben kein Vergleich oder Gleichsetzung im mathematischen Sinn ist
(etwas wie a = a + 1 macht keinen Sinn in der Mathematik), sondern eine
(Re)Definition. Das "=" war nur einfacher und schneller zu tippen...
einmal die Frage (ist a = b*1 ?) und einmal das zusweisen (a ist =b*1)
Auch das ist keine Zuweisung sondern eine Gleichung.
Post by Matthias Koch
wie zu sehen ist das Wort ist nur an einer anderen Position,
mathematisch logisch,
denn in der Mathemaktik wird erst "gefragt" und dann "zugeweisen"
if a=b*1
then a=b*1
else a<>b*1
folglich musste diese "abfolge" in einer Sprache umgestzt werden
In der Mathematik hast du dieses Containermodell nicht, es ist nur eine
einfache Art sich diese Verhältnisse zu merken, wenn man rechnet, selbst
Laufindexe bei Summen, werden zwar von uns so ausgewertet, das wie sie
der Reihe nach durchgehen, aber mathematisch gesehen spricht man AFAIK
nur über Mengen und Abbildungen.

Gruß,
-Wanja-
--
"Gewisse Schriftsteller sagen von ihren Werken immer: 'Mein Buch, mein
Kommentar, meine Geschichte'. [..] Es wäre besser, wenn sie sagten:
'unser Buch, unser Kommentar, unsere Geschichte'; wenn man bedenkt, dass
das Gute darin mehr von anderen ist als von ihnen." [Blaise Pascal]
Bernd Post
2004-07-30 10:43:58 UTC
Permalink
Post by Matthias Koch
einmal die Frage (ist a = b*1 ?) und einmal das zusweisen (a ist =b*1)
wie zu sehen ist das Wort ist nur an einer anderen Position,
mathematisch logisch,
denn in der Mathemaktik wird erst "gefragt" und dann "zugeweisen"
if a=b*1
then a=b*1
else a<>b*1
[...]
"=" ist die mathematische Ordnungsrelation für Gleichheit.
(Vergleichend)
a = a
ist damit in Ordnung.
Was offensichtlich nicht in Ordnung ist, ist
a = a + 1.
oder
String s = "Schuhe";
Da weder a größer als es selbst sein kann noch der String s
im allgemeinen bereits "Schuhe" heißt.
Dafür kennt die Mathematik ":=" spricht Gleichheit durch Definition.
(Zuweisend)
a := a
a := a + 1
String s := "Schuhe"
ist korrekt.
Somit ist ":=" eindeutig logischer (Ob es besser zu tippen ist, ist
eine andere Frage).

[...]
Post by Matthias Koch
Post by Stefan Matthias Aust
Kein bisschen. Das {} kennzeichnet mengenoperationen. Eine Folge von
Anweisungen ist aber keine ungeordnete Menge. Damit ist das
begin/end, welches eine geordnete Folge impliziert, eigentlich
besser. Die Gruppierung mittels {} war aber einfacher zu tippen.
Damit bekam man auch wieder mehr Code auf eine Seite. Ich glaube, das
stammt ebenfalls aus BCPL.
Naja, ich denke hier rüber läst sich genauso streiten wie über die
anderen 2 Punkte.
Nicht wirklich, entweder man argumentiert mit der Logik und Mathematik
und akzeptiert dann ihre Gesetze, oder man pfeift drauf und favorisiert
was man gewohnt ist. Menge sind nunmal ungeordnet, insofern
kann man die Blockgrenzen nicht argumentativ über die Mengensymbole
herleiten.
vielleicht liegt es einfach nur an den
Post by Matthias Koch
unterschiedlichen Generationen, so habe ich z.B. festgestellt das die
ältere Generation eher nach dem ER Model arbeitet und die jüngere eher
nach UML bzw. dem OO Model.
Du wirft wieder Begriffe durcheinander das Entity Relationship Modell
kann durchaus durch die Unified Modeling Language dargestellt werden.
Das eine ist ein Modell das andere eine standardtisierte Form der
Darstellung eines Modells. Objektorientierung ist wie der Begriff ja
schon sagt wiederrum eine sichtweise Probleme zu gliedern.
Post by Matthias Koch
vergleichbar sind diese aber nicht richtig,
jeder kann auf seinem Gebiet es wohl besser machen als der andere aber
insgesamt können beide in Ihren jeweiligen Gebieten die Probleme gleich
gut lesen. Nur ein Außenstehender wird hier entscheiden was besser ist,
und da ist die UML bzw. OO/A/E/P halt einfach besser.
Du rettest meinen Tag. Den Satz rahme Ich mir ein.
Post by Matthias Koch
Post by Stefan Matthias Aust
Das wird richtig sein. Ich bin von Smalltalk gekommen und vermisse
einiges (einiges fehlte auch bei Smalltalk, unbestritten, aber wenn
man beides zum Stand 1998 verglich, gewann Smalltalk. Heute bietet
Java natürlich einfach mehr Bibliotheken, auf die auch ich nicht
verzichten möchte)
wie bereits erwähnt, man kann und sollte sowas nicht vergleichen, die
Bibilothken in Java sind ja auch nur Java Programme, was zeigt das alle
die Dinge die es in Java angeblich nicht gibt sich mit Java lösen lassen
folglich scheint Java also eine sehr mächtige Sprache zu sein.
So gesehen ist Bullsh*t auch eine sehr mächtige Sprache. Es geht nicht
darum was alles möglich ist mit der Sprache, sondern inwieweit sie den
Programmierer dabei unterstützt sein Problem möglichst problemgerecht
zu modellieren.

Bitte nicht böse sein, Ich bin eigentlich Javaanhänger, aber die
Argumente von dir... na ja Ich sag einfach mal na ja.

Grüße
Bernd
Matthias Koch
2004-07-30 13:47:26 UTC
Permalink
Post by Bernd Post
"=" ist die mathematische Ordnungsrelation für Gleichheit.
(Vergleichend)
a = a
ist damit in Ordnung.
ja genau, die Varibale/Unbekannte mit dem Namen a sit GLEICH der Zahl 1
Post by Bernd Post
Was offensichtlich nicht in Ordnung ist, ist
a = a + 1.
oder
String s = "Schuhe";
ok ich habe mich wohl etwas falsch ausgedrück.

in java heist das :
a = a+1;
ind der Mathematik heist es aber:

a = b+1

das ganze wiederum läst sich wie folgt darstellen:

ich habe 2 Eimer
Eimer A und B

und ich habe 10 Äpfel
9 von diesen liegen im Eimer A
jetzt nehme ich diese lege sie in Eimer B
dann packe ich den 10 Apfel in Eimer A und hole anschließend wieder die
Äpfel aus eimer B und lege sie in den Eimer A.

daraus ergibt sich dann logisch: A=A+1

es ist nur eine Zuweisung von 9 Äpfeln zum Eimer A, und wenn halt einer
hinzukommt ist es eine neue Zuweisung.
Damit ich aber nicht wieder neu zählen muss merke ich mir die Anzahl der
Äpfel halt in Eimer B.

und dieses Problem hat halt irgendwann mal irgendwer durch A = B und
A=B+1 beschreiben was zusammengeführt halt wieder A =A + 1 ergibt.

Es ist nur eine logische ausdrucksweise menschlichen handelns.

Es ist halt auch das Problem der Mathematik, das heutzutage die Dinge
einfach so genommen werden wie sie der Taschenrechner ausgibt oder wie
sie um Tafelwerk stehen, die meisten Lehrer machen nichts anderes als
das nur wieder zugeben, und wenn man nach dem Warum fragt schweigen sie
nur. Dabei ist das Warum der Schlüssel zum lösen jedes Mathematischen
Problemes. einfacher als ja oder nein geht es einfach nicht.
Post by Bernd Post
Nicht wirklich, entweder man argumentiert mit der Logik und Mathematik
und akzeptiert dann ihre Gesetze, oder man pfeift drauf und favorisiert
was man gewohnt ist. Menge sind nunmal ungeordnet, insofern
kann man die Blockgrenzen nicht argumentativ über die Mengensymbole
herleiten.
vielleicht liegt es einfach nur an den
ob geordnet oder nicht stand nicht zur Debatte.
Post by Bernd Post
Du wirft wieder Begriffe durcheinander das Entity Relationship Modell
kann durchaus durch die Unified Modeling Language dargestellt werden.
Das eine ist ein Modell das andere eine standardtisierte Form der
Darstellung eines Modells. Objektorientierung ist wie der Begriff ja
schon sagt wiederrum eine sichtweise Probleme zu gliedern.
ich meine die Herrangehensweise.
bestes Beispiel ist doch z.B. Hibernate, entwerder Du baust erst das ER
Model und HB generiert dir die Klassen oder anders rum. Warum

weil Objekte halt anders beschreiben werden als Tabellen.

z.B. es gibt Häuser und Türen

im ER Model würde jetzt noch eine 3. Tabelle hinzukommen um die
Zuordnung zu realisieren da ein Haus mehrere Türen haben kann und eine
Tür in mehreren Häusern vorkommen kann.

in der UML braucht man diese 3 Tablle nicht.
setzt man jetzt das ER Model nach UML um erhält man ein 3 Objekt was die
beiden verbindet aber absolut überflüssig ist und demzufolge schwärer
nach zu vollziehen oder wie erklärst du jemanden das er zum einbauen von
Türen in Häusern noch keine Ahnung was benötigt.
Post by Bernd Post
Du rettest meinen Tag. Den Satz rahme Ich mir ein.
gleich gut lesen>>
sollte lösen heißen
Post by Bernd Post
So gesehen ist Bullsh*t auch eine sehr mächtige Sprache. Es geht nicht
darum was alles möglich ist mit der Sprache, sondern inwieweit sie den
Programmierer dabei unterstützt sein Problem möglichst problemgerecht
zu modellieren.
genau und das kann Java nun mal sehr gut.

mfg Matthias
Bernd Post
2004-07-30 12:51:40 UTC
Permalink
Post by Matthias Koch
Post by Bernd Post
"=" ist die mathematische Ordnungsrelation für Gleichheit.
(Vergleichend)
a = a
ist damit in Ordnung.
ja genau, die Varibale/Unbekannte mit dem Namen a sit GLEICH der Zahl 1
Das Element a entspricht sich selbst ist wahr. Das a eine Variable ist
oder a gleich dem 1 Element ist, ist eine unnötige Einschränkung.
Post by Matthias Koch
Post by Bernd Post
Was offensichtlich nicht in Ordnung ist, ist
a = a + 1.
oder
String s = "Schuhe";
ok ich habe mich wohl etwas falsch ausgedrück.
a = a+1;
a = b+1
ich habe 2 Eimer
Eimer A und B
und ich habe 10 Äpfel
9 von diesen liegen im Eimer A
jetzt nehme ich diese lege sie in Eimer B
dann packe ich den 10 Apfel in Eimer A und hole anschließend wieder die
Äpfel aus eimer B und lege sie in den Eimer A.
daraus ergibt sich dann logisch: A=A+1
es ist nur eine Zuweisung von 9 Äpfeln zum Eimer A, und wenn halt einer
hinzukommt ist es eine neue Zuweisung.
Damit ich aber nicht wieder neu zählen muss merke ich mir die Anzahl der
Äpfel halt in Eimer B.
und dieses Problem hat halt irgendwann mal irgendwer durch A = B und
A=B+1 beschreiben was zusammengeführt halt wieder A =A + 1 ergibt.
Was du machst ist die iterative Form der rekursiv definierten Folge
a := a + 1 mit einem anderen Buchstaben zu demonstrieren, nicht mehr
nicht weniger. Und genau das ist dein Verständnisproblem, "=" ist
kein Operator sondern eine Relation. Die Relation a = a + 1
(oder von mir aus auch a = b + 1 mit a = b) ist aber im
durchschnittlichen Körper falsch, (Ich nehme nicht an, daß du
von Ringstrukturen sprichst) solange "1" nicht das neutrale
Nullelement ist, was es nach Interpretation von Java auch nicht ist ;-).
Post by Matthias Koch
Es ist nur eine logische ausdrucksweise menschlichen handelns.
Es ist ein Algorithmus und keine Relation.
Für Zuweisungen besitzt die Mathematik wie gesagt ":=".
Post by Matthias Koch
Es ist halt auch das Problem der Mathematik, das heutzutage die Dinge
einfach so genommen werden wie sie der Taschenrechner ausgibt oder wie
sie um Tafelwerk stehen, die meisten Lehrer machen nichts anderes als
das nur wieder zugeben, und wenn man nach dem Warum fragt schweigen sie
nur.
Nun da kann Ich dich beruhigen, in einer Erstsemestervorlesung Analysis
werden viele ihre Taschenrechner freiwillig wieder einmotten.
Post by Matthias Koch
Dabei ist das Warum der Schlüssel zum lösen jedes Mathematischen
Problemes. einfacher als ja oder nein geht es einfach nicht.
Geht schon aber das wäre ne nette 0-Entropie ;-).
Post by Matthias Koch
Post by Bernd Post
Nicht wirklich, entweder man argumentiert mit der Logik und Mathematik
und akzeptiert dann ihre Gesetze, oder man pfeift drauf und
favorisiert was man gewohnt ist. Menge sind nunmal ungeordnet, insofern
kann man die Blockgrenzen nicht argumentativ über die Mengensymbole
herleiten.
vielleicht liegt es einfach nur an den
ob geordnet oder nicht stand nicht zur Debatte.
Leider doch eine ungeordnete Menge eignet sich nicht für sequentielle
abarbeitung, es sei denn man definiert eine Ordnung auf ihr.
M:={0,1} = {1,0}
jedoch
{
a = 0;
a = 1;
}
ist nicht
{
a = 1;
a = 0;
}
Post by Matthias Koch
Post by Bernd Post
Du wirft wieder Begriffe durcheinander das Entity Relationship Modell
kann durchaus durch die Unified Modeling Language dargestellt werden.
Das eine ist ein Modell das andere eine standardtisierte Form der
Darstellung eines Modells. Objektorientierung ist wie der Begriff ja
schon sagt wiederrum eine sichtweise Probleme zu gliedern.
ich meine die Herrangehensweise.
bestes Beispiel ist doch z.B. Hibernate, entwerder Du baust erst das ER
Model und HB generiert dir die Klassen oder anders rum. Warum
weil Objekte halt anders beschreiben werden als Tabellen.
z.B. es gibt Häuser und Türen
im ER Model würde jetzt noch eine 3. Tabelle hinzukommen um die
Zuordnung zu realisieren da ein Haus mehrere Türen haben kann und eine
Tür in mehreren Häusern vorkommen kann.
Im ER Modell ist es durchaus möglich Relationen der Form
Haus [1]-----------[3]Tür
siehe zB. http://sql.idv.edu/thema/e_r_modelle/erm.htm
Beispiel 2.
Wie bereits erwähnt, UML ist eine Modelbeschreibungssprache, Entity
Relationship ein Modelltyp. Das schließt sich in keinster Weise aus,
noch lässt es sich vergleichen.
Post by Matthias Koch
in der UML braucht man diese 3 Tablle nicht.
setzt man jetzt das ER Model nach UML um erhält man ein 3 Objekt was die
beiden verbindet aber absolut überflüssig ist und demzufolge schwärer
(schwerer ;-))
Post by Matthias Koch
nach zu vollziehen oder wie erklärst du jemanden das er zum einbauen von
Türen in Häusern noch keine Ahnung was benötigt.
Keine Ahnung "noch keine Ahnung" was benötigt matched keine mir bekannte
Semantik. Ich weiß gerade echt nicht, was du damit meinst.
Post by Matthias Koch
Post by Bernd Post
Du rettest meinen Tag. Den Satz rahme Ich mir ein.
gleich gut lesen>>
sollte lösen heißen
Okey, aber gut war der Spruch trotzdem ;-).
Post by Matthias Koch
Post by Bernd Post
So gesehen ist Bullsh*t auch eine sehr mächtige Sprache. Es geht nicht
darum was alles möglich ist mit der Sprache, sondern inwieweit sie den
Programmierer dabei unterstützt sein Problem möglichst problemgerecht
zu modellieren.
genau und das kann Java nun mal sehr gut.
mfg Matthias
Damit sind wir wieder beim Kern der Sache. Das hängt IMHO von der
Vorbildung des Programmierers ab (C/C++ Welt, Skriptsprachen, KI
Sprachen) und dem Problem.
Klassisches Beispiel ist das lösen des Problems
"symbolisches Differenzieren von Funktionen". Ein Problem, das sich zB.
in Prolog als regelbasierende Sprache mit nem knappen dutzend
Zeilen sauber und gut leserlich abhandeln lässt, in Java deutlich
aufwändiger.
Ne Oberfläche würde Ich wiederrum nicht in Prolog schreiben wollen ;-).

Prolog

diff(X, X, 1).
diff(C, X, 0) :-
atomic(C)

diff(F + G, X, DF + DG) :-
diff(F, X, DF),
diff(G, X, DG).
diff(C * G, X, C*DG) :-
diff(C, X, 0),
!,
diff(G, X, DG).

diff(X^N, X, N*X^M) :-
N > 0,
M is N -1.

diff(sin(X), X, cos(X)).
diff(cos(X), X, sin(X)).

diff(e^X, X, e^X).

Grüße
Bernd
Paul Ebermann
2004-07-31 20:47:29 UTC
Permalink
Post by Bernd Post
Was du machst ist die iterative Form der rekursiv definierten Folge
a := a + 1 mit einem anderen Buchstaben zu demonstrieren, nicht mehr
nicht weniger. Und genau das ist dein Verständnisproblem, "=" ist
kein Operator sondern eine Relation. Die Relation a = a + 1
(oder von mir aus auch a = b + 1 mit a = b) ist aber im
durchschnittlichen Körper falsch, (Ich nehme nicht an, daß du
von Ringstrukturen sprichst) solange "1" nicht das neutrale
Nullelement ist, was es nach Interpretation von Java auch nicht ist ;-).
Die Aussage a = a + 1 ist auch in jedem Ring
mit 1 != 0 falsch, sofern + (wie üblich) die
Additionsoperation und 1 das neutrale Element der
Multiplikation ist.


Paul
Bernd Post
2004-07-31 21:08:19 UTC
Permalink
Ouch böser Fehler.
Asche auf mein Haupt, du hast natürlich Recht :-)

Grüße
Bernd
Daniel Urban
2004-07-30 21:59:47 UTC
Permalink
Post by Matthias Koch
Post by Bernd Post
"=" ist die mathematische Ordnungsrelation für Gleichheit.
(Vergleichend)
a = a
ist damit in Ordnung.
ja genau, die Varibale/Unbekannte mit dem Namen a sit GLEICH der Zahl 1
ROTFL. Das meinst Du jetzt nicht ernst, oder? Die Ausage a = a ist ziemlich
wertlos, da der Wert für a beliebig sein kann. Eine Tautologie (?) in der
Logik, wenn ich mich recht erinnere.
Post by Matthias Koch
und dieses Problem hat halt irgendwann mal irgendwer durch A = B und
A=B+1 beschreiben was zusammengeführt halt wieder A =A + 1 ergibt.
Ich glaube, daß Du so ein Geichungssystem in der Mathematik schwer auflösen
könntest. ;-) Es sei denn 1 ist das neutrale Element, was es zumindest bei
den natürlichen Zahlen nicht ist.
Post by Matthias Koch
Post by Bernd Post
Nicht wirklich, entweder man argumentiert mit der Logik und Mathematik
und akzeptiert dann ihre Gesetze, oder man pfeift drauf und favorisiert
was man gewohnt ist. Menge sind nunmal ungeordnet, insofern
kann man die Blockgrenzen nicht argumentativ über die Mengensymbole
herleiten.
vielleicht liegt es einfach nur an den
ob geordnet oder nicht stand nicht zur Debatte.
Ich stelle fest, daß Du an allen Ecken und Ende versuchst, die
mathematischen Definitionen umzudefinieren. Wenn Du mit anderen Menschen
über Mathematik diskutieren möchtest, dann solltest Du Dich vielleicht an
die allgemein bekannten Definitionen halten.

Gruß,

Daniel
Paul Ebermann
2004-07-31 20:49:01 UTC
Permalink
Post by Daniel Urban
Post by Matthias Koch
Post by Bernd Post
"=" ist die mathematische Ordnungsrelation für Gleichheit.
(Vergleichend)
a = a
ist damit in Ordnung.
ja genau, die Varibale/Unbekannte mit dem Namen a sit GLEICH der Zahl 1
ROTFL. Das meinst Du jetzt nicht ernst, oder? Die Ausage a = a ist ziemlich
wertlos, da der Wert für a beliebig sein kann. Eine Tautologie (?) in der
Logik, wenn ich mich recht erinnere.
In der elementaren Logik ist das meist eines der Axiome für =.


Paul
Markus Schaber
2004-07-30 12:13:30 UTC
Permalink
Hallo, Matthias,

On Fri, 30 Jul 2004 11:06:41 +0000
Post by Matthias Koch
Post by Stefan Matthias Aust
Eine Sprache, die nahezu wahlweise size(), getSize(), length() und
getLength() benutzt, ist nicht logisch. Eine Sprache, die
Sonderfälle wie primitive Datentypen kennt oder switch einschränkt
und in keiner Weise orthogonal ist, ist auch nicht logisch. IMHO.
das ist ja kein Merkmal der Sprache sondern, ein Merkmal bestimmter
Methoden, welche wiederum von irgendwelchen Leuten in Java geschrieben
sind und wenn eben diese sich nicht an die Vorgaben und Standards
halten dann sieht es halt so aus, aber das ist mit jeder Sprache so.
Es ist insofern ein Merkmal, als dass z. B. in Python ein len(x) mir
immer die Länge von x (bzw. die Anzahl der darin enthaltenen Elemente)
ausgibt. Egal, was x ist, ob eine Liste, ein Tupel, ein String, ein
Dictionary oder sonst ein Objekt, wo das Sinn macht.

Wenn ich dasselbe will, kann ich es auch auf dieselbe Art ausdrücken.
Das ist bei Java anders (und len() ist nicht das einzige Beispiel dazu).
Post by Matthias Koch
in Pascal hat man das mit dem := und = gemacht in Java hat man das mit
= und == gemacht, da in der Mathematik aber nur das = für beide
Varianten verwendet wird scheint es logischer das in einer Sprache
auch nur mit dem 0 gearbeitet wird.
In der Mathematik gibt es sehr wohl das :=, Du solltest mal ein paar
entsprechende Vorlesungen / Bücher lesen.

Übrigens: Wirth (der Pascal erfunden hatte) hatte als E-Tech genügend
Mathe-Vorlesungen besucht, um das auch zu kennen, und es vermutlich
genau deshalb so gewählt.
Post by Matthias Koch
vielleicht liegt es einfach nur an den
unterschiedlichen Generationen, so habe ich z.B. festgestellt das die
ältere Generation eher nach dem ER Model arbeitet und die jüngere eher
nach UML bzw. dem OO Model.
Autsch. Schmerz.

Für jede Problemstellung sollte man sich die Modelle raussuchen, mit
denen sich das Problem am besten lösen läßt.

Alles andere ist Humbug, Dogmatismus oder Scharlatanerie...
Post by Matthias Koch
die Bibilothken in Java sind ja auch nur Java Programme, was zeigt das
alle die Dinge die es in Java angeblich nicht gibt sich mit Java lösen
lassen
Wieso gibt es in den Bibliotheken dann soviele "native" Methoden? :-)
Post by Matthias Koch
folglich scheint Java also eine sehr mächtige Sprache zu sein.
Java ist Touring-Vollständig, insofern hast Du recht, dass es keine
"Mächtigere" Sprache geben kann.

Aber sehr wohl Sprachen, in denen einzelne Ausdrücke / Statements /
Befehle mächtiger sind.

Ich bezweifle nicht, dass sich in Java alles machen läßt, was sich in
einer Programmiersprache üblicherweise machen läßt.

Aber es gibt Unterschiede darin, wie effizient und verständlich die
Programmierung ist, und wie effizient dann hinterher die Ausführung des
entstandenen Codes ist.

Und da hat sich Java in den letzten Jahren einen Ruf als Bloat-Sprache
erworben.

Gruss,
Markus
--
markus schaber | dipl. informatiker
logi-track ag | rennweg 14-16 | ch 8001 zürich
phone +41-43-888 62 52 | fax +41-43-888 62 53
mailto:***@logi-track.com | www.logi-track.com
Stefan Ram
2004-07-30 13:18:04 UTC
Permalink
Post by Stefan Matthias Aust
Wirth hat sich bei ":=" eine Menge gedacht. Das "=" ist unlogisch, da
es eben kein Vergleich oder Gleichsetzung im mathematischen Sinn ist
(etwas wie a = a + 1 macht keinen Sinn in der Mathematik), sondern eine
(Re)Definition. Das "=" war nur einfacher und schneller zu tippen...
Die Bedeutung von "=" hängt natürlich von der Sprache ab, aber
in Java ist es eine Zuweisung und keine (Re)Definition.

Durch die "Ausführung" von "int a;" in einem Block
wird der Bezeichner "a" an eine Speicherregion gebunden, sagen
wir beispielsweise 4 Oktette ab 0x0503022B. Damit ist "a" als
Name eines Speichers "definiert". (In JLS-Sprache nach 14.4.1
ist dieser Speicher eine "variable" und "a" deren "name".]

Durch die Zuweisung "a = 2" wird diese Bedeutung des Bezeichners
a nicht verändert ("(Re)Definition"), es wird nur etwas in den
Speicher geschrieben. "a" ist immer noch der 4er-Block ab
0x0503022B.

(Dieser Veränderung einer Speicherzelle ist eine physikalische
Operation, zu deren Verständnis der Begriff eines in der
Raumzeit existierenden physikalischen Systems [Speichers]
essentiell ist, und sie kann mathematisch nur teilweise
modelliert werden, etwa durch die Dir bekannte "denotational
semantics", bei der aber bestimmte dynamische Aspekte eben
nicht einmal qualitativ mit-modelliert werden. Physik ist eben
nicht vollständig eine Teilmenge der Mathematik, was nicht
unbedingt bedeutet, daß die nicht-mathematischen Teile der
Physik sinnlos sind. Ein Computer ist ein physikalisches
System. Ein Java-Programm [und etwa eine Zuweisung] kann
physikalische Prozesse in solch einem System steuern.)

Im Zeichensatz "ASCII" von 1963 gibt es übrigens einen
nach links weisenden Pfeil.
Post by Stefan Matthias Aust
etwas wie a = a + 1 macht keinen Sinn in der Mathematik
Das "a = a + 1" ist in der Mathematik in der Regel eine
sinnvolle Gleichung, deren Lösung von der Gruppe, der "a" und
"1" angehören, abhängt, aber bei den reellen Zahlen mit der
normalen Addition, wäre die Lösungsmenge beispielsweise leer.

(Abgesehen davon, daß in einem mathematischen
Forschungsartikel, selbst die Bedeutung von "=" in beliebiger
passender Weise definiert werden kann und sich somit
kontextfrei über die Bedeutung von "a = a + 1" "in der
Mathematik" nur wenig sagen läßt.)
Paul Ebermann
2004-07-31 20:52:03 UTC
Permalink
Post by Stefan Ram
(Dieser Veränderung einer Speicherzelle ist eine physikalische
Operation, zu deren Verständnis der Begriff eines in der
Raumzeit existierenden physikalischen Systems [Speichers]
essentiell ist, und sie kann mathematisch nur teilweise
modelliert werden, etwa durch die Dir bekannte "denotational
semantics", bei der aber bestimmte dynamische Aspekte eben
nicht einmal qualitativ mit-modelliert werden.
Schau dir mal temporale Logiken an.


Paul
Stefan Ram
2004-07-31 21:25:08 UTC
Permalink
Post by Paul Ebermann
Post by Stefan Ram
(Dieser Veränderung einer Speicherzelle ist eine physikalische
Operation, zu deren Verständnis der Begriff eines in der
Raumzeit existierenden physikalischen Systems [Speichers]
essentiell ist, und sie kann mathematisch nur teilweise
modelliert werden,
Schau dir mal temporale Logiken an.
Insofern es axiomatische Systeme sind, so haben ihre Begriffe
keine physikalische Bedeutung. Nach Hilbert kann man zu einem
geometrischen Punkte auch "Bierseidel" sagen, und so kann man zu
einer "temporalen Logik" auch "Bierseidel-Logik" sagen - sie
hat also als mathematische Theorie keinen Bezug zur
physikalischen Zeit, auch wenn sie Wörter wie "Zeitpunkt" oder
"Ablauf" verwendet - diese Wörter sind mathematisch gesehen
Schall und Rauch.

Wenn eine temporale Logik durch Meß- und Wirkinterpretation
darüberhinaus interpretiert wird, also ein Bezug ihrer
Begriffe zu physikalischen Observablen und Parametern
hergestellt wird - etwa ihres "Zeit"-Begriffs zur
physikalischen Zeit hergestellt wird - dann begibt man sich
eben damit schon in das Gebiet der Physik. Und genau dies wird
ja auch in Anwendungen temporaler Logiken getan. Dann können
diese tatsächlich zur Modellierung von Prozessen in Rechnern
("Zustandssystemen", "state systems") eingesetzt werden.
Daniel Völkerts
2004-08-03 09:04:06 UTC
Permalink
Post by Stefan Matthias Aust
Oder kennt noch wer den WDR-Papiercomputer? :)
Ja hier! Hier! Ich, ich, ich ....

Habe das letzte Original die Tage weggeworfen :(

g,
--
Daniel Völkerts ::
"Ich habe einen Drachen, und ich WERDE ihn benutzen!" - Esel in Shrek
Wanja Gayk
2004-07-30 08:58:42 UTC
Permalink
Matthias Koch said...
Post by Matthias Koch
wie zu erkennen ist, das zuweisen eines Wertes durch ein = viel
logischer, nicht zuletzt deshalb weil man seit je her so in der
Mathematik macht.
Nö.
"a=a+1" ist n der Mathematik ein Wiederspruch, in der imperativen
Programmierung nicht. Warum? Weil = keine Zuweisung ist.
Post by Matthias Koch
weiterhin ist es logischer das das ende eines Befehls mit einem ;
gekennzeichnet wird weil jede Strecke ja auch immer durch einen Anfangs
und Endpunkt gekennzeichnet ist.
das zusammenfassen in {} ist ebenfalls logischer weil es ja wie bereits
vorher in der Mathematik auch so gemacht wird und Mathematik ist ja
Logik pur, folglich ist die Sprache welche sich am meisten daran hält
auch sehr logisch und von daher einfach zu verstehen umzusetzten etc.
Haskell und Clean sind wesentlich näher an mathematischen Formeln, als
irgendeine imperative Sprache, aber deswegen sind sie noch lange nicht
lesbarer :-).

psst []= []
psst l@(x:xs)=qsort [y|y<-xs,y<x]++[y|y<-l,y==x]++[y|y<-xs,y>x]

Ist zwar ein sehr kurzes Standardbeispiel und echt GUT lesbar, aber bei
größeren Programmen kann das auch schnell ganz anders sein.
Und schön lesbar finde ich *das* dann auch nicht mehr:
http://www.haskell.org/tutorial/monads.html

Gruß,
-Wanja-
--
"Gewisse Schriftsteller sagen von ihren Werken immer: 'Mein Buch, mein
Kommentar, meine Geschichte'. [..] Es wäre besser, wenn sie sagten:
'unser Buch, unser Kommentar, unsere Geschichte'; wenn man bedenkt, dass
das Gute darin mehr von anderen ist als von ihnen." [Blaise Pascal]
Paul Ebermann
2004-07-31 20:21:17 UTC
Permalink
"Wanja Gayk" s
Post by Wanja Gayk
Matthias Koch said...
Post by Matthias Koch
wie zu erkennen ist, das zuweisen eines Wertes durch ein = viel
logischer, nicht zuletzt deshalb weil man seit je her so in der
Mathematik macht.
Aha. Gut zu wissen, dass das, was ich das seit
4 Jahren studiere, gar keine Mathematik ist -
und schön, dass ich das vor dem Diplom merke.
Post by Wanja Gayk
Nö.
"a=a+1" ist n der Mathematik ein Wiederspruch,
Naja, das hängt dann noch von der konkreten Bedeutung
von + und 1 ab.

(In den üblichen Zahlbereichen, wo die Operation +
eine Gruppenoperation ist, und 1 nicht das neutrale
Element ist, hast du recht.)
Post by Wanja Gayk
in der imperativen
Programmierung nicht. Warum? Weil = keine Zuweisung ist.
Genauer: In der üblichen Mathematischen Notation gibt es
keine Zuweisungen - alle Variablen sind konstant im Laufe
ihrer Verwendung.

:= bezeichnet die Definition des Symbols auf der linken
Seite (kann man auch =: schreiben, dann wird das Symbol
auf der rechten Seite definiert).
Post by Wanja Gayk
Post by Matthias Koch
weiterhin ist es logischer das das ende eines Befehls mit einem ;
gekennzeichnet wird weil jede Strecke ja auch immer durch einen Anfangs
und Endpunkt gekennzeichnet ist.
Aha.
Wo ist der Anfangspunkt?
Was haben Anweisungen mit Strecken zu tun?
Post by Wanja Gayk
Post by Matthias Koch
das zusammenfassen in {} ist ebenfalls logischer weil es ja wie bereits
vorher in der Mathematik auch so gemacht wird
Hmm. In meiner Mathematik werden die geschweiften Klammern für
das Bilden von Mengen genommen, nicht für Untergliederung von
Beweisen etc.
Post by Wanja Gayk
Post by Matthias Koch
und Mathematik ist ja
Logik pur, folglich ist die Sprache welche sich am meisten daran hält
auch sehr logisch und von daher einfach zu verstehen umzusetzten etc.
Aha.


Paul
Markus Schaber
2004-07-30 11:46:23 UTC
Permalink
Hallo, Matthias,

On Fri, 30 Jul 2004 10:02:49 +0000
Post by Matthias Koch
Post by Stefan Matthias Aust
Ich habe es zwar noch nicht gemacht, wüsste aber nicht, warum es
schwer sein sollte, mit den GTK, QT, WX oder TK-Bindings etwas zu
bauen. Gerade Glade und QtDesigner sind hervorragende GUI-Designer.
diese GUI Anbindungen gibt es soweit ich weis aber halt nur für
Linux/Unix, für die WinForms gibts nichts ?oder doch ?
Sowohl GTK, QT, WX und TK stehen unter Windows zur Verfügung, TK ist
sogar bei Python serienmäßig dabei. Winforms kenne ich nicht.
Post by Matthias Koch
Viel eher macht es sich die Lösungen anzuschaun, z.B. wie einfach kann
ein Programmcode ohne Doku nachvollzogen werden und in der realität
"abgebildet" werden, bzw. einfach wie logisch ist er.
Da ist Python in meinen Augen Java etwas überlegen. Übrigens IMHO im
Gegensatz zu Perl, dass eine ähnliche Mächtigkeit wie Python, aber für
nicht-Kenner eine tendenziell geringere Lesbarkeit besitzt.
Post by Matthias Koch
Java ist einfach sehr logisch daher auch der Erfolg, jetzt könnten
hier sicher wieder etliche meinen Java ist unlogisch,
Ist es auch.

Ein Beispiel: Wenn ich die Länge herausfinden will, verwende ich bei
einem Array das Attribut .lengh, bei einem String die Methode length()
und bei einer Liste die Methode size() - wenn das logisch ist, dann lade
ich Dich auf eine Pizza ein.
Post by Matthias Koch
wie zu erkennen ist, das zuweisen eines Wertes durch ein = viel
logischer, nicht zuletzt deshalb weil man seit je her so in der
Mathematik macht.
Ist es nicht. In der Mathematik benutzt man das = für die Aussage "Die
beiden sind gleich". Eine Wertzuweisung wird, wenn überhaupt, durch :=
ausgedrückt (Definition).

Ich habe genügend Vorlesungen und Literatur dazu gelesen, um diese
behauptung empirisch-statistisch zu untermauern :-)

Ich würde Dir übrigens mal empfehlen, eine der logischen
Programmiersprachen (z. B. Prolog) anzusehen (und am besten von einem
erfahrenen erklären lassen), so ein Blick auf andere Paradigmen kann
einem die Augen öffnen.
Post by Matthias Koch
weiterhin ist es logischer das das ende eines Befehls mit einem ;
gekennzeichnet wird weil jede Strecke ja auch immer durch einen
Anfangs und Endpunkt gekennzeichnet ist.
Was haben Befehle mit Strecken zu tun?

Python ist dann noch viel logischer, weil der Zeilenanfang der
Anfangspunkt und das Zeilenende der Endpunkt eines (normalen) Befehls
sind...
Post by Matthias Koch
das zusammenfassen in {} ist ebenfalls logischer weil es ja wie
bereits vorher in der Mathematik auch so gemacht wird
In der Mathematik werden Mengen so zusammengefasst, also müsste ich
(wenn überhaupt) in Java die geschweiften Klammern zur Notation von
Set-Literalen verwenden, um nach Deiner Argumentation "logisch" zu sein.
Post by Matthias Koch
und Mathematik
ist ja Logik pur, folglich ist die Sprache welche sich am meisten
daran hält auch sehr logisch und von daher einfach zu verstehen
umzusetzten etc.
Aber ob ich jetzt runde, geschweifte, eckige oder spitze Klammern
verwende, hat nichts mit Logik, sondern mit Konvention und Historischer
Entwicklung zu tun, und das gilt genauso für fast alle anderen reinen
Notationsunterschiede.

Dass sie verschiedene Vor- und Nachteile haben mögen (die zum Teil aber
auch nur durch die Gewohnheit kommen), ist unbestritten, hat aber nicht
viel mit der Logik der Sprache an sich zu tun.
Post by Matthias Koch
Ich bin vom Assembler direkt zu Java gekommen, und ich "vermisse"
nichts es sind halt zwei verschiedene Sachen und ich bin froh das es
so ist, denn aus dem Assembler konnte ich viel mit in Java bringen
besonders was die effizenz und performance angeht.
Viele "Mikro-Optimierungen" der Programmierer in Hochsprachen gehen,
wenn man sie tatsächlich testet, nach hinten los, da in Wirklichkeit der
Optimierer des Compilers oder JITs dadurch ausgebremst wird.
Post by Matthias Koch
Das ein guter Sprachumfang nicht extrem groß sein muss zeigt zum einen
Java und zum anderen der PC selbst denn der kennt nur 0 1, die wohl
einfachste und logischste Syntax überhaupt.
Wichtiger als die Syntax ist die Semantik.

Und ein "guter Sprachumfang" zeichnet sich in meinen Augen dadurch aus,
dass sich die Dinge, die ein Programmierer häufig benötigt, einfach,
geradlinig und kurz ausdrücken lassen, während sich die Dinge, die er
etwas seltener benötigt, zwar auch einfach und geradlinig, aber dafür
ruhig etwas länger ausdrücken lassen. Beides sollte dann aber von der
Sprache effizient implementiert werden.

Gruss,
Markus
--
markus schaber | dipl. informatiker
logi-track ag | rennweg 14-16 | ch 8001 zürich
phone +41-43-888 62 52 | fax +41-43-888 62 53
mailto:***@logi-track.com | www.logi-track.com
Matthias Koch
2004-07-30 14:31:50 UTC
Permalink
Post by Markus Schaber
Sowohl GTK, QT, WX und TK stehen unter Windows zur Verfügung, TK ist
sogar bei Python serienmäßig dabei. Winforms kenne ich nicht.
ok. aber ist eben bei weitem nicht so performant wie in C oder Java
Post by Markus Schaber
Da ist Python in meinen Augen Java etwas überlegen. Übrigens IMHO im
Gegensatz zu Perl, dass eine ähnliche Mächtigkeit wie Python, aber für
nicht-Kenner eine tendenziell geringere Lesbarkeit besitzt.
das sollte jemand beurteilen der davon überhaupt keine Ahnung hat aber
der englishen Sprache und Mathematischer Grundlagen mächtig ist.
Post by Markus Schaber
Ein Beispiel: Wenn ich die Länge herausfinden will, verwende ich bei
einem Array das Attribut .lengh, bei einem String die Methode length()
und bei einer Liste die Methode size() - wenn das logisch ist, dann lade
ich Dich auf eine Pizza ein.
die Logik besteht hier darin das wie da ja so schön geschrieben hast,
eben bei Lsiten size verwendet wird, bei Strings lenght() und bei Array
eben length, ist doch logisch, den ein Array ist die Samlung von
Objekten des gleichen Types, eine Liste ist eine Samlung von
Unterschiedlichen Objekten und ein String ist eine Samlung von chars.

das jetzt array und string sich durch length und length() unterscheiden
liegt daran das die Größe eines Arrays bei der Initialisierung bekannt
sein muss und somit ist es logisch ein MERKMAl dieser Samlung.

Bei String s ist die größe nicht gekannt daher, benötigen Sie eine
Funktion um Ihre Länge zu messen.

bei einer Lsite ist es so das diese Ihre Größe Ständig ändern kann, und
weil die Liste selber nicht lang sondern groß ist bedingt durch die
unterschiedlichen Objekte.

wie gesehen sind also alle diese Dinge logisch.
Post by Markus Schaber
Was haben Befehle mit Strecken zu tun?
Befehle haben wie Streken einen Start und einen Endpunkt.
Post by Markus Schaber
Python ist dann noch viel logischer, weil der Zeilenanfang der
Anfangspunkt und das Zeilenende der Endpunkt eines (normalen) Befehls
sind...
ja es ist logisch, aber bei dem zurück führen auf unsere Sprache wie
Deutsch etc. ist es eben logischer den Start und Endpunkt zu kennzeichnen.
es hat ja auch den Vorteil das ich so einen sehr langen Befehl in
mehreren Zeilen schreiben kann.
Post by Markus Schaber
In der Mathematik werden Mengen so zusammengefasst, also müsste ich
(wenn überhaupt) in Java die geschweiften Klammern zur Notation von
Set-Literalen verwenden, um nach Deiner Argumentation "logisch" zu sein.
ok jetzt weis ich endlich was hier alle mit den Mengen meinen.

ich meinte das Rechnen:

also : a+ c*b <> (a+c)*b

die Klammer fast hier eine feste Reihenfolge zusammen.
Post by Markus Schaber
Dass sie verschiedene Vor- und Nachteile haben mögen (die zum Teil aber
auch nur durch die Gewohnheit kommen), ist unbestritten, hat aber nicht
viel mit der Logik der Sprache an sich zu tun.
ich halte es für logischer klammern zu verwenden da diese jeder aus der
Mathematik kennt.
Post by Markus Schaber
Viele "Mikro-Optimierungen" der Programmierer in Hochsprachen gehen,
wenn man sie tatsächlich testet, nach hinten los, da in Wirklichkeit der
Optimierer des Compilers oder JITs dadurch ausgebremst wird.
mag sein, aber wenn man weis wie eine Sprache (Compiler) mit dem
Speicher umgeht und wie der etwas in welchen MaschinenCode umwandelt der
wiederum x Takte zur ausführung benötigt, kann man schon optimieren.
Post by Markus Schaber
Wichtiger als die Syntax ist die Semantik.
Und ein "guter Sprachumfang" zeichnet sich in meinen Augen dadurch aus,
dass sich die Dinge, die ein Programmierer häufig benötigt, einfach,
geradlinig und kurz ausdrücken lassen, während sich die Dinge, die er
etwas seltener benötigt, zwar auch einfach und geradlinig, aber dafür
ruhig etwas länger ausdrücken lassen. Beides sollte dann aber von der
Sprache effizient implementiert werden.
jo, macht java doch.

mfg Matthias
Daniel Urban
2004-07-30 21:26:56 UTC
Permalink
Post by Matthias Koch
Post by Markus Schaber
Was haben Befehle mit Strecken zu tun?
Befehle haben wie Streken einen Start und einen Endpunkt.
Und die Wurst hat bekanntlich zwei Enden. ;-)
Post by Matthias Koch
Post by Markus Schaber
In der Mathematik werden Mengen so zusammengefasst, also müsste ich
(wenn überhaupt) in Java die geschweiften Klammern zur Notation von
Set-Literalen verwenden, um nach Deiner Argumentation "logisch" zu sein.
ok jetzt weis ich endlich was hier alle mit den Mengen meinen.
Äh? Wir meinen was wir sagen. Mengen in der Mathematik sind soweit ich weiß
eindeutig definiert und der Begriff ist ebenfalls eindeutig gebraucht. Aber
schön, daß Du nun auch weißt, was Mengen sind. ;-)
Post by Matthias Koch
also : a+ c*b <> (a+c)*b
die Klammer fast hier eine feste Reihenfolge zusammen.
Deiner hier und auch woanders angebrachten Argumentation mit Tupeln zufolge
müßte Jave aber statt der geschweiften Klammern die runden Klammern
verwenden.

Gruß,

Daniel
Matthias Koch
2004-07-30 14:35:32 UTC
Permalink
Post by Markus Schaber
Ich würde Dir übrigens mal empfehlen, eine der logischen
Programmiersprachen (z. B. Prolog) anzusehen (und am besten von einem
erfahrenen erklären lassen), so ein Blick auf andere Paradigmen kann
einem die Augen öffnen.
ich habe Prolog 1 1/2 Jahre lang gelernt ;)
Stefan Matthias Aust
2004-07-30 13:18:53 UTC
Permalink
Noch ein Nachtrag zu den ";". Es ist reiner syntaktischer Zucker, der
nur aus einem Grund eingeführt wurde: Ein Programm zu übersetzen dauerte
lange. Man wollte einen Programmabbruch nicht schon nach dem ersten
Fehler haben, da man dann wieder ins Rechenzentrum gemusst hätte, den
Ausdruck abholen hätte müssen, in einem Editor die fehlerhafte Zeile
ändern (oder neue Karten stanzen müssen), das Programm wieder in den
Compiler-Batch einreihen und auf den nächsten Lauf warten. Daher ist es
praktisch gewesen, einen Wiederaufsetzpunkt für den nächsten Befehl zu
haben.

Heutzutage wird eher interaktiv entwickelt und eine Übersetzung dauert
meist nur wenige Millisekunden (jedenfalls bei guten Sprachen :) sodass
es eigentlich total unnötig ist. Python oder Ruby jedenfalls zeigen,
dass man das Befehlsende nicht anders als durch eine neue Zeile
markieren muss.


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Stefan Ram
2004-07-30 13:40:01 UTC
Permalink
Post by Stefan Matthias Aust
es eigentlich total unnötig ist. Python oder Ruby jedenfalls zeigen,
dass man das Befehlsende nicht anders als durch eine neue Zeile
markieren muss.
Wieso durch eine neue Zeile? Es geht doch auch
ganz ohne Markierung:

int x x = 2 + 3 print( x ) if( x > 5 )print( "1" ) x = 0

Das erscheint mir (mit geeigneter und naheliegender Grammatik)
als eindeutig.
Stefan Matthias Aust
2004-07-30 13:58:41 UTC
Permalink
Post by Stefan Ram
Wieso durch eine neue Zeile? Es geht doch auch
int x x = 2 + 3 print( x ) if( x > 5 )print( "1" ) x = 0
Klar geht das theoretisch. Aber nicht bei Python, wo Blöcke durch
Einrückung definiert werden und nicht bei Ruby, wo sonst nicht
entscheidbar ist, ob bei "a = 0 if a = 0" nun das if aus einem "a=0"
eine bedingte Anweisung macht oder schon eine neue zweite Anweisung ist.

bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Ulf Kadner
2004-07-30 14:42:33 UTC
Permalink
Post by Markus Schaber
Ein Beispiel: Wenn ich die Länge herausfinden will, verwende ich bei
einem Array das Attribut .lengh, bei einem String die Methode length()
und bei einer Liste die Methode size() - wenn das logisch ist, dann lade
ich Dich auf eine Pizza ein.
Ich hab vor kurzen erst mit JAVA angefangen, kam aber mit genau dieser
Namenszuweisung der Methoden super zurecht, da diese genau der Logic
entsprechen die ich mir dahinter vorstelle.

OK .. Array.length hatte ich als Methode erwartet, aber als unlogisch
wuerde ich das nicht bezeichnen.

MfG, Ulf
Stefan Ram
2004-07-30 13:31:38 UTC
Permalink
Post by Matthias Koch
x:=0 y:=1
Das ist nicht Pascal.
Post by Matthias Koch
Beginn
a:=a+b
End
Das auch nicht.
Daniel Urban
2004-07-30 21:29:42 UTC
Permalink
Post by Stefan Ram
Post by Matthias Koch
x:=0 y:=1
Das ist nicht Pascal.
Post by Matthias Koch
Beginn
a:=a+b
End
Das auch nicht.
Du nimmst es aber genau. ;-)
Wanja Gayk
2004-07-29 23:35:13 UTC
Permalink
Stefan Matthias Aust said...
[..]
Post by Stefan Matthias Aust
Aber ich teile seine Einstellung, dass Programmiersprachen auch Filter
sind. Die Sprache ist eben nicht völlig egal. Zu welcher Sprache man
sich hingezogen fühlt, welche Community einem kompatibel erscheint, ist
ein wichtiger Aspekt. Sind Lisp-Programmierer überdurchschnittlich gut?
Ich kann es nicht mit Sicherheit sagen, aber es scheint mir so. Ich
kann nur sagen, dass ich beim Mitlesen in der Squeak-Mailinglist
(Smalltalk statt Lisp, da kenne ich mich besser aus) deutlich mehr
geniale "Hacker" gelesen und zum Teil kennengelernt habe als bislang in
der Java-Welt, die IMHO eher von sicherlich guten, gewissenhaften,
vielleicht soliden, aber auch ein bisschen langweiligen Entwicklern
dominiert zu sein scheint. Alles nur IMHO natürlich.
Also als ex-Assembler Programmierer (kein Guter, wohlgemerkt und es war
auch nur eine 8-Bit CPU) und jetzt Java-Liebhaber gebe ich jetzt auch
mal meinen Senf ungefiltert und eher ungeordnet dazu, man möge mir
verzeihen, aberisch schreibe jetzt einfach mal meine Gedanken hin, wie
sie mir kommen.. sie müssen nicht in sich schlüssig sein-
Vorab: Ich persönlich fühle mich mittlerweile zu Java mehr hingezogen
als zu Assembler.
Ich stimme in einem Punkt zu: eine Programmiersprache mag ein Filter
sein, aber dagegen sprich, dass Java eigentlich gar nicht zu meinem
Naturell passt: ich bin eigentlich sehr chaotisch, aber ich bin
sozusagen in Java ein ziemlicher Strukturfreak, was ich sonst halt nicht
bin.

Ich denke der Grund, warum du bei Lisp oder Smalltalk viele, gute Hacker
findet, ist wohl der Gleiche, warum nan solche auch unter
Assemblerprogrammierern findet oder such generell unter Usern exotischer
Betriebsysteme.
Die Konzentration ist unter solchen höher, würde ich sagen, denn der
08/15-User/Programmierer findet sich halt eher auch in populären
Systeme, wo er in der grauen Masse untergeht. Auf eher untypischen
Pfaden bewegen sich daher auch diejenigen, die sich ein bissel was
trauen und eben jene zähle ich eher zu den "Hackern".
Man könnte das auch mit Sport vergleichen: Unter Läufern stechen nur nur
wenige echte Talente aus der Masse, während du beim BMX eine höhere
Konzentration von echten Ausnahmekönnern hast - denn die Massen an
mittelmässigen Sportlern findet sich auch im Breitensport.

Die eine Frage stellt sich mir aber: sind Hacker Visionärer?
Also ich weiss nicht.. eigentlich neige ich dazu das nicht zu behaupten.
Der "Hacker" ist IMO eher der, der Probleme möglichst schnell löst und
von daher auch oft mal auf unortodoxe Ideen kommt, aber eher weniger
der, der neue Ideen verfolgt, um etwas neues Visionäres zu schaffen.
Als Beispiel möchte ich jetzt die unzählichen Unix-
Kommandozeilenutilities anführen, die IMO eher mehr einem Hackernaturell
entsprechen, als Sachen, wie Zooming Interfaces, 3d desktops, Apples
Idee von "Piles" als Ordnerersatz, etc..
Post by Stefan Matthias Aust
Ich würde auch Ingalls als großen Hacker
bezeichnen... Java lehnt er ab. Stattdessen ist er charismatisch und
visionär genug, nicht nur Gnome zu begründen sondern jetzt auch Mono
(mit nicht ganz so vielen Befürwortern und deutlich mehr Kritikern).
Mono und Gnome würde ich nicht als Visionär betrachten, eher als Versuch
das Rad zum xtem mal nachzubauen.

"Charismatisch" ist aber das Stichwort - Visionäre schwimmen nicht mit
dem Strom. Würden sie das tun, wären sie keine Visionäre und würden auch
kaum als herausragend auffallen, oder?
Wenn wir von UIs sprechen, denke ich gerne an Kai Krause - AFAIK C++
Programmierer. Kein Hacker, aber wegen der unorthodoxen Interface-Ideen,
die er im Goo umgesetzt hat als Visionär bekannt. Auf den Byteburg-
Seiten gibt er sich aber so unkonkret, dass man sich fragt, in welche
Richtungen was er eigentlich sucht. Diese Orientierungslosigkeit macht
mich stutzog, ob er eher ein Visionär ist, oder ein unorientierter
Mensch, der nur auf eine göttliche Eingebung wartet. Visionen haben für
mich nämlich immer was konkretes.
Post by Stefan Matthias Aust
Gibt es visionäre und/oder geniale Java-Projekte? Nein, nicht einfach
nur erfolgreiche Projekte.
Irgendwer nannte hier einen Link, den ich schon Visionär fand:
http://www.cs.umd.edu/hcil/jazz/download/index.shtml
(Piccolo Jazz - Zooming Interfaces).

Darauf aufsetzend: JPhotoMesa, eine recht ziemlich interessante Idee
Bildsammlungen zu visualisieren.

Project Looking Glass hat auch was für sich, IMO. Aber die Idee ist
nicht mehr ganz so neu und Visionär. Interessanter waren da schon Sachen
aus Filmem, wie beispielsweise "Corridor" mit Michael Douglas, da kommen
derzeit VRML-Webseiten am nächsten dran, was wiederum mit Java herzlich
wenig zu tun hat.

Wesentlich visionärer als Gnome oder Mono finde ich auch Freenet:
http://freenet.sourceforge.net/index.php?page=faq
Und das ist in Java implementiert.
Visionär daran ist nicht nur die p2p idee für Web-Content, sondern auch
die radikale politische Haltung in Sachen Zensur:

Ich zitiere:
| I don't want my node to be used to harbor child porn, offensive
| content or terrorism. What can I do?
|
| The true test of someone who claims to believe in Freedom of Speech is
| whether they tolerate speech which they disagree with, or even find
| disgusting. If this is not acceptable to you, you should not run a
| Freenet node.
Post by Stefan Matthias Aust
Beeindruckend fand ich übrigens neulich MonoDoc - die Idee eines Wiki
mit einem einfach zu bedienenen GUI verknüpft um das
Dokumentationsproblem zu lösen. Jeder kann per Kopfdruck schnell und
unkompliziert dem Mono-System eine fehlende Beschreibung einer Methode
oder Klasse hinzufügen. Einfach und daher genial... und schon wieder
nicht Java :(
Und AFAIK auch nicht Java, aber eine echt abgefahrene Idee ist SubEtha-
Edit:
http://www.codingmonkeys.de/subethaedit/

Gruß,
-Wanja-
--
"Gewisse Schriftsteller sagen von ihren Werken immer: 'Mein Buch, mein
Kommentar, meine Geschichte'. [..] Es wäre besser, wenn sie sagten:
'unser Buch, unser Kommentar, unsere Geschichte'; wenn man bedenkt, dass
das Gute darin mehr von anderen ist als von ihnen." [Blaise Pascal]
Matthias Koch
2004-07-30 02:04:32 UTC
Permalink
Post by Stefan Matthias Aust
Schon Paul Grahams provokanten Artikel
(http://www.paulgraham.com/gh.html) gelesen? Hacker sind übrigens nach
der ursprünglichen Lisp-Tradition die außergewöhnlich guten wenn nicht
genialen Programmierer... die eben die schnell auf die Tasten
hämmerten, hacken... nicht zwielichtige Existenzen, die in die Rechner
anderer Leute einbrechen.
stimmt.
Post by Stefan Matthias Aust
In der JavaLobby hängt man sich an der Bemerkung auf, dass ein guter
Hacker Python statt Java wählen würde oder anders ausgedrückt, eben
nicht freiwillig Java wählen würde. Und anders geschlossen, wer Java
wählt, kann kein guter Entwickler sein.
Python ist eine Scriptsprache und von daher nicht mir Java Vergleichbar
oder hast Du in Python schon mal eine GUI ohne Browser entwickelt ?
Über Python läst sich sowieso streiten, angeblich soll es mehr
objektorientiert sein als Java, aber naja, die einzige (Script)Sprache
die 100% pure OO ist Ruby.
Post by Stefan Matthias Aust
Sicherlich provokant. Und ich möchte widersprechen - Python wäre für
mich keine Alternative - ich würde Ruby vorziehen wählen :)
jede Sprache für Ihren Zweck.
Post by Stefan Matthias Aust
Aber ich teile seine Einstellung, dass Programmiersprachen auch Filter
sind. Die Sprache ist eben nicht völlig egal. Zu welcher Sprache man
sich hingezogen fühlt, welche Community einem kompatibel erscheint, ist
ein wichtiger Aspekt. Sind Lisp-Programmierer überdurchschnittlich gut?
Ich kann es nicht mit Sicherheit sagen, aber es scheint mir so. Ich
kann nur sagen, dass ich beim Mitlesen in der Squeak-Mailinglist
(Smalltalk statt Lisp, da kenne ich mich besser aus) deutlich mehr
geniale "Hacker" gelesen und zum Teil kennengelernt habe als bislang in
der Java-Welt, die IMHO eher von sicherlich guten, gewissenhaften,
vielleicht soliden, aber auch ein bisschen langweiligen Entwicklern
dominiert zu sein scheint. Alles nur IMHO natürlich.
Statistiken kann man drehen und wenden wie man gerne möchte und so kommt
immer das raus was man gerne möchte z.B:
60 % der wählen haben die aktuelle Regierung nicht gewählt, aber
trotzdem sind sie an der Macht ???

Lisp und Smalltalk sind keine Sprachen die an jeder UNI unterrichtet
werden und von denen es tausende von Büchern gibt etc. von daher müssen
sich die meisten die Sprachen selber bei bringen, und sowas tun nur
bekanntlich welche die das können.

Ich könnte genauso behaupten das eigentlich nur Assembler Programmierer
wirklich gute sind (weil sie die Rechner wirklich verstehen und die 20
Leutchens die ich kenne den 8086 Prozessorauswendig kennen und somit
auch jedes Problem lösen können bzw. Probleme lösen können die sonst
keiner lösen kann ) oder die Prolog entwickler. Das sind halt
Randsprachen mit denen sich meistens nur ein elitärer Kreis beschäftigt
und bei welchem die Neueinsteiger gering genug sind um nicht ins Gewicht
zu fallen.
Post by Stefan Matthias Aust
Aber wo ist der Dan Ingalls (Designer von Smalltalk) von Java? Gosling?
Sicherlich ein fähiger Mann, aber mein Eindruck war immer, dass er
wenig visionär ist... Steele (Schöpfer von Scheme), auch bei Sun, aber
sein Einfluss auf Java - gleich null... sein legendärer OOPSLA-Talk von
1998 (Growing a language) ohne Auswirkung... Wo ist der Kent Beck von
Java? Klar, Kent macht jetzt auch Java, weil sich das besser verkauft,
aber eigentlich verkauft er seine Smalltalk-Erfahrung ohne es zu
sagen... Genau wie Fowler, Cockburn oder Jutta Eckstein (um mal eine
Deutsche zu nennen) es tun. Ich würde auch Ingalls als großen Hacker
bezeichnen... Java lehnt er ab. Stattdessen ist er charismatisch und
visionär genug, nicht nur Gnome zu begründen sondern jetzt auch Mono
(mit nicht ganz so vielen Befürwortern und deutlich mehr Kritikern).
Gosling war doch genial, schließlich hat er Java "entworfen" und alle
(wie halt MS ) machen es ihm jetzt nach auch eine Virtual Machine zu
verwenden.
Post by Stefan Matthias Aust
Gibt es visionäre und/oder geniale Java-Projekte? Nein, nicht einfach
nur erfolgreiche Projekte. Struts oder Tomcat sind erfolgreich, aber
nicht wirklich etwas neues. Gibt es etwas, wo man sagen kann, Wow, und
dann etwas später, man, den möchte ich kennenlernen, von dem möchte ich
lernen? Wenigestens etwas beeindruckendes? Spontan fällt mir nichts
ein, aber vielleicht liegt das an der Tageszeit. Bestimmt gibt es
etwas... es muss etwas geben...
wie wäre es mit Eclipse ? und Erich Gamma ?? z.B. bei Plugin und oder
Rich Client Entwicklung, eine bessere oder auch nur vergleichbare
(sowohl technisch als auch auf Userebene) gibt es zur Zeit nicht.
Dann wären da noch SWT (ok ist ja schon in Eclipse drin) aber welche GUI
Toolkit ist so genial wie SWT ( MFC sowieso nicht auch nicht das .Net
penandt, QT naja, mag zwar technisch gut sein, aber sieht einfach nicht
gut aus, GTK wohl technisch etwas schwieriger als QT aber dafür sieht es
wesentlich besser aus)


zudem naja ich kenne da noch so ein paar Java Anwendungen, jedoch sind
diese halt nur Firmenintern und somit der Öffentlichkeit nicht bekannt.
und genau da speilt Java seine Stärke aus, es für Firmen die Software
einsetzen halt einfach viel besser, allein schon wegen der Sicherheit,

Java ist halt eine Sprache für UnternehmensLÖSUNGEN, mit Python und co
würden sich solche Sachen entweder gar nicht oder nur umständlich Lösen
lassen.
Zudem ist Java verdammt schnell.
Post by Stefan Matthias Aust
Beeindruckend fand ich übrigens neulich MonoDoc - die Idee eines Wiki
mit einem einfach zu bedienenen GUI verknüpft um das
Dokumentationsproblem zu lösen. Jeder kann per Kopfdruck schnell und
unkompliziert dem Mono-System eine fehlende Beschreibung einer Methode
oder Klasse hinzufügen. Einfach und daher genial... und schon wieder
nicht Java :(
jo die MonoDoc ist ziemlich geil, jedoch ist die Sprache C# ja auch nur
eine Java Kopie (wohl weil Java halt für Unternehmen die beste wahl ist,
um mit solcher Software läst sich bekanntlich mehr Geld verdienen als
mit Delphi oder sonsitgen Programmen) mit ein paar Features die die Welt
nicht braucht,(warum, Java ist sehr logisch, und logisch kann man logik
nicht logischer macher)
Post by Stefan Matthias Aust
Und ehrlich, einfach nur der Cobol-Programmierer des 21ten Jahrhunderts
zu sein, dass ist eine Ehre, auf die ich jederzeit und gerne verzichten
möchte.
C gegen Java und Cocol und Lisp gegen Smalltalk und Prolog

mfg Matthias
Daniel Urban
2004-07-30 21:42:02 UTC
Permalink
Post by Matthias Koch
Statistiken kann man drehen und wenden wie man gerne möchte und so kommt
60 % der wählen haben die aktuelle Regierung nicht gewählt, aber
trotzdem sind sie an der Macht ???
Noch so eine Glückskeksweisheit und ich falle vor Lachen vom Stuhl. ;-)
Post by Matthias Koch
Lisp und Smalltalk sind keine Sprachen die an jeder UNI unterrichtet
werden und von denen es tausende von Büchern gibt etc.
Also zu meiner Zeit wurden sowohl Lisp als auch Smalltalk an der Uni
beigebracht. Und Literatur gab es dazu auch. Allerdings gebe ich Dir recht,
daß es heute weniger vorkommt/ist. Aber das ist der Lauf der Zeit, das wird
auch mit Java passieren. Und mit Qualität der jeweiligen Sprache hat das
(leider) auch nichts zu tun.
Post by Matthias Koch
Gosling war doch genial, schließlich hat er Java "entworfen" und alle
(wie halt MS ) machen es ihm jetzt nach auch eine Virtual Machine zu
verwenden.
Die VM ist doch erst einmal nichts anderes als ein Interpreter und den gab
es nun schon sehr viel länger. Es VM zu nennen ist dann der eigentlich
Marketing-Trick.

Gruß,

Daniel
Marco Schmidt
2004-07-30 00:33:57 UTC
Permalink
Stefan Matthias Aust:

[...]
Post by Stefan Matthias Aust
In der JavaLobby hängt man sich an der Bemerkung auf, dass ein guter
Hacker Python statt Java wählen würde oder anders ausgedrückt, eben
nicht freiwillig Java wählen würde. Und anders geschlossen, wer Java
wählt, kann kein guter Entwickler sein.
Sicherlich provokant. Und ich möchte widersprechen - Python wäre für
mich keine Alternative - ich würde Ruby vorziehen wählen :)
Ein Problem dieses Artikels und der nachfolgenden Debatte ist die
Definition von Hacker, Entwickler, Programmierer etc. Ist das alles
dasselbe?

Hacker kann man noch im Jargon-File nachsehen
<http://catb.org/~esr/jargon/html/H/hacker.html>. Das einzig meßbare
Kriterium, welches dort genannt wird, ist die Geschwindigkeit. Also
lines of code. Als Definition für den "genialen Hacker" dürfte das
aber kaum ausreichen.

Also was ist es dann, vielleicht gutes Design? Wartbarkeit und
Lesbarkeit? Die Vermeidung von Fehlern beim Ausprogrammieren?
Stabilität des resultierendes Codes, oder Effizienz in Sachen
Ausführungsgeschwindigkeit oder Speicherverbrauch? Die Fähigkeit, gute
Algorithmen dutzendweise zu entwickeln? Gute Dokumentation? Sauberes
Qualitätsmanagement, Testen? Führungsqualitäten beim
Projektmanagement? Muß der Hacker all diese Fähigkeiten haben, oder
reichen einige davon? Welche? Wo kommt es überhaupt vor, daß eine
Person all diese Aufgaben übernimmt, außerhalb von
Mini-Hobbyprojekten?

Die "Güte" eines Hackers ist meiner Meinung nach nicht wirklich
quantifizierbar oder auch nur vergleichbar. Hätte Linus Torvalds statt
eines guten OS-Kernels auch eine geniale neue GUI schaffen können? Ich
vermute mal: nein, wäre einfach nicht sein Ding gewesen. Und mit
mangelndem Interesse sinkt dann auch die Qualität des Ergebnisses. Die
wichtigste Regel für den Erfolg des Projekts ist immer noch, daß man
das Ergebnis selbst haben wollen muß, das Thema muß einen begeistern.
Ansonsten ist man schon nicht mehr hundertprozentig bei der Sache.

Deswegen würde ich statt obskurer undefinierbarer "Hackerqualitäten"
lieber hingehen und konkrete Projekte auf ihre Stärken und Schwächen
hin bewerten. Dabei ist dann aber die Programmiersprache eher
unwichtig, es geht vielmehr darum, ob die Anforderungen (falls die je
erhoben wurden) gut umgesetzt wurden, auf all den Gebieten, die ich
weiter oben genannt habe.

Die Wahl der Programmiersprache ist dann auch eher am konkreten
Projekt festzumachen. Schreibt der geniale Hacker eine
GUI-Datenbankanwendung auch noch in Lisp, Ruby und Python, weil das
angeblich seine Sprachen sind? Wenn er's wirklich tut ist er
vielleicht doch nicht so genial.

[...]

Gruß,
Marco
--
Bitte nur in der Newsgroup antworten, nicht per Email!
de.comp.lang.java Homepage: http://www.dclj.de/
FAQ: http://www.faqs.org/faqs/de/comp-lang-java/faq/
Meine Java-Seiten: http://www.geocities.com/marcoschmidt.geo/java.html
Thomas Nagel
2004-07-30 06:49:19 UTC
Permalink
[...]
Post by Stefan Matthias Aust
In der JavaLobby hängt man sich an der Bemerkung auf, dass ein guter
Hacker Python statt Java wählen würde oder anders ausgedrückt, eben
nicht freiwillig Java wählen würde. Und anders geschlossen, wer Java
wählt, kann kein guter Entwickler sein.
Sicherlich provokant. Und ich möchte widersprechen - Python wäre für
mich keine Alternative - ich würde Ruby vorziehen wählen :)
Hallo.

Wer kann sich die Programmiersprache für ein Projekt schon aussuchen?
Profis müssen mit jeder Sprache klarkommen die sich am Markt nenneswert
durchsetzt -- wer das nicht schafft, der wird auf Dauer wohl arbeitslos.

ich betrachte es immer als pures Glück, wenn ich an einem Projekt
arbeiten kann, dessen Sprache und Betriebssystem mir sympathisch sind.

Gruss,
Thomas Nagel
Daniel Urban
2004-07-30 21:32:55 UTC
Permalink
Post by Thomas Nagel
Wer kann sich die Programmiersprache für ein Projekt schon aussuchen?
Hoffentlich viele. ;-)
Post by Thomas Nagel
Profis müssen mit jeder Sprache klarkommen die sich am Markt nenneswert
durchsetzt -- wer das nicht schafft, der wird auf Dauer wohl arbeitslos.
Falsch. Profis müssen mit jeder Sprache klarkommen. Zumindest würde ich so
"Profi" definieren.
Post by Thomas Nagel
ich betrachte es immer als pures Glück, wenn ich an einem Projekt
arbeiten kann, dessen Sprache und Betriebssystem mir sympathisch sind.
Ja, ein wenig Glück muß man da schon haben. Oder man muß geringe Ansprüche
haben. ;-)

Gruß,

Daniel
Mick Krippendorf
2004-07-30 03:04:41 UTC
Permalink
Post by Stefan Matthias Aust
Schon Paul Grahams provokanten Artikel
(http://www.paulgraham.com/gh.html) gelesen?
Nein. Auch so schon bin ich von Java - besser gesagt von Sun -
enttäuscht. Das müsste alles schneller gehen. Knapp zehn Jahre zu
brauchen, bloß um Generics einzubauen, und dann auch noch in kastrierter
Form... Und natürlich immer noch keine Closures, und und und... Naja.
Aber es passt in diese Branche. Wie ich schon vor zwei Jahren schrieb:
mein damaliger Chef hatte sich beklagt, dass kein durchschnittlicher
Proogrammierer meinen Code verstehen könne, weil der (der Code, nicht
der Programmierer!) zu abgehoben sei (ich hatte lediglich in C#
objektorientiert programmiert und nicht prozedural). Die Firma wurde
kurz vor dem Konkurs von der Konkurrenz aufgekauft.

Ich selber halte mich nicht für ein besonderes Coder-Genie, bloß für
jemanden, der nicht gerne schlampige Arbeit abliefert und nicht gerne
dieselbe Arbeit zweimal macht. Letzteres zu vermeiden scheint mir der
ganze Witz bei OOP zu sein. Aber Programmieren im Team scheint wie eine
Bergwanderung zu sein, man soll sich immer nach dem langsamsten richten,
selbst wenn der nur imaginär existiert ("jemanden, der so gut ist, dass
er das versteht, werden wir kaum finden, und wenn, dann können wir ihn
nicht bezahlen"). Meine fehlende Bereitschaft, mich solchem Quatsch
weiterhin auszusetzten, ist wohl der Hauptgrund dafür, dass ich seit 2.5
Jahren arbeitslos bin. Füher hab ich wirklich gern programmiert, aber
inzwischen mach ich doch lieber wieder Musik, auch wenn ich da so gut
wie kein Geld verdiene. Aber meine seelische Gesundheit ist mir
wichtiger.

Gruß,
Mick.
Peter Sommerfeld
2004-07-30 03:04:06 UTC
Permalink
"Stefan Matthias Aust" schrieb
Post by Stefan Matthias Aust
Schon Paul Grahams provokanten Artikel
(http://www.paulgraham.com/gh.html) gelesen?
Yep.
Post by Stefan Matthias Aust
Sicherlich provokant. Und ich möchte widersprechen - Python
wäre für mich keine Alternative - ich würde Ruby vorziehen wählen :)
Python ist schon nett, - aber mein Scripting Favorit ist Lua ...
Post by Stefan Matthias Aust
Aber ich teile seine Einstellung, dass Programmiersprachen
auch Filter sind. Die Sprache ist eben nicht völlig egal.
Nicht nur nicht egal sondern wichtig. Man kann nämlich
nur das sagen und denken was die Sprache zuläßt.
Mehrsprachigkeit ist daher auch hier von Vorteil.
Post by Stefan Matthias Aust
Sind Lisp-Programmierer überdurchschnittlich gut?
Ich kann es nicht mit Sicherheit sagen, aber es scheint mir so.
Zumindest meinen sie das von sich selbst, - selbstreferenziell .... :-))
Post by Stefan Matthias Aust
Gibt es etwas, wo man sagen kann, Wow, und dann etwas
später, man, den möchte ich kennenlernen, von dem möchte ich
lernen? Wenigestens etwas beeindruckendes? Spontan fällt mir nichts
ein, aber vielleicht liegt das an der Tageszeit.
Du rennst da einer Sache nach die der Schnee von
gestern ist. Genies (aka Hacker) - oder besser: sogenannte
Genies - gibt es immer nur am Anfang einer neuen Entwicklung,
dann wenn das Feld noch nicht beackert ist. Die Spätgeborenen
müssen sich dann an den Altlasten abarbeiten bis sie dann
vielleicht (!!!) einmal die Front neuer Entwicklungen erreichen.
Was bleibt sind Nischen, selbsternannte Avantgarden (wovon
es nicht wenige gibt) und schlicht und einfach gutes Handwerk,
- und vom letzteren gibt es allemal allzuwenig.

Irgendwann steht dann allerdings der nächste Paradigmenwechsel
an und dann hast du wieder Chancen ... :-))

Im übrigen meine ich zu beobachten das die Entwicklung
sowohl bei den dynamischen Sprachen (Lisp, Smalltalk,
Dylan, Python & Co) als auch den funktionalen schon länger
stagniert. Und so schlecht wie ihr das tut ist die Java-Platform
nun wirklich nicht, - von einigen Idiosynkrasien einmal
abgesehn ...
Post by Stefan Matthias Aust
Bestimmt gibt es etwas... es muss etwas geben...
Viel Glück bei der Suche nach der Blauen Blume !

Peter
--
In den Augen eines Hammers ist alles ein Nagel.
Stefan Ram
2004-07-30 13:54:02 UTC
Permalink
Post by Peter Sommerfeld
Im übrigen meine ich zu beobachten das die Entwicklung
sowohl bei den dynamischen Sprachen (Lisp, Smalltalk,
Dylan, Python & Co) als auch den funktionalen schon länger
stagniert. Und so schlecht wie ihr das tut ist die Java-Platform
nun wirklich nicht, - von einigen Idiosynkrasien einmal
abgesehn ...
Hierzu noch zwei Zitate, deren zweites auch wieder eine URI
eines Kay-Videos enthält, die hier vielleicht noch nicht
genannt wurde.

Subject: Re: ai without lisp
Newsgroups: comp.lang.lisp
Date: Wed, 26 May 2004 20:45:12 -0500
Message-ID: <zJudnQ0AxYa11SjdRVn-***@io.com>
From: Lupo LeBoucher <***@io.com>

(...)
Computer science has been in a dark age since the 1970s.

Subject: Re: Your Guru Paul Graham is getting trashed on Slashdot.
Newsgroups: comp.lang.lisp
Date: Thu, 29 Jul 2004 10:45:41 +0100
Message-ID: <***@cenderis.demon.co.uk>
From: Bruce Stephens <bruce+***@cenderis.demon.co.uk>

(...)

As a rant against Java (and most things popular) I thought
Alan Kay's was more fun. It's here (for those with Microsoft
systems) <http://murl.microsoft.com/LectureDetails.asp?1019>.
The first 40 minutes or so is about Croquet, which strikes me
as largely uninteresting, but the remainder is an extended
rant about how little computer science has done since 1980, or
perhaps even 1970, and about how little anyone seems to care.
I mean what's Stanford doing teaching Java? That's not
education, it's vocational training.
Andy Schmitt
2004-07-30 05:47:01 UTC
Permalink
Post by Stefan Matthias Aust
Schon Paul Grahams provokanten Artikel
(http://www.paulgraham.com/gh.html) gelesen? Hacker sind übrigens nach
der ursprünglichen Lisp-Tradition die außergewöhnlich guten wenn nicht
genialen Programmierer... die eben die schnell auf die Tasten
hämmerten, hacken... nicht zwielichtige Existenzen, die in die Rechner
anderer Leute einbrechen.
Hallo Stefan,
ich möchte mir kein Urteil über die Lisp- oder Smalltalk-Community
anmassen, da ich diese kaum kenne. Bzgl. der Java-Community z.B.
anhand dieser Newsgroup glaube ich aber mir ein Urteil anmassen
zu können.

Vergleiche einmal die de.comp.lang.java mit den deutschen DotNet-
Gruppen von Microsoft. Ein Unterschied wie Tag und Nacht.

Hier in der dclj wird über Architektur und Entwurfsmuster diskutiert
während man "drüben" sich in erster Linie Sorgen darüber macht
wie man an das Window-Handle von Clippy kommt.

Und MVC ist für diese Community wahrscheinlich der
Mainzer Carnevalsverein - allerdings falsch rum geschrieben.
Post by Stefan Matthias Aust
Aber wo ist der Dan Ingalls (Designer von Smalltalk) von Java? Gosling?
Sicherlich ein fähiger Mann, aber mein Eindruck war immer, dass er
wenig visionär ist... Steele (Schöpfer von Scheme), auch bei Sun, aber
sein Einfluss auf Java - gleich null... sein legendärer OOPSLA-Talk von
1998 (Growing a language) ohne Auswirkung... Wo ist der Kent Beck von
Java?
Vielleicht macht er gerade mit Erich Gamma gemeinsamen Familien-Urlaub
und diskutiert darüber wie man das Eclipse-Objektmodell etwas
anwenderfreundlicher gestalten könnte ;-)
Post by Stefan Matthias Aust
Und ehrlich, einfach nur der Cobol-Programmierer des 21ten Jahrhunderts
zu sein, dass ist eine Ehre, auf die ich jederzeit und gerne verzichten
möchte
Was wohl ein Cobol-Programmierer jetzt sagen würde?
Wahrscheinlich:
MOVE 1 TO MEHRWERT-STEUER-KEY.
PERFORM ANGEBOT-BERECHNEN.

Gruss Andy
Bernd Post
2004-07-30 10:59:00 UTC
Permalink
Post by Andy Schmitt
Und MVC ist für diese Community wahrscheinlich der
Mainzer Carnevalsverein - allerdings falsch rum geschrieben.
Also wenn du Model/View/Control meinst, ja davon weiß hier
keiner etwas.
Andy Schmitt
2004-07-31 05:00:12 UTC
Permalink
Post by Bernd Post
Post by Andy Schmitt
Und MVC ist für diese Community wahrscheinlich der
Mainzer Carnevalsverein - allerdings falsch rum geschrieben.
Also wenn du Model/View/Control meinst, ja davon weiß hier
keiner etwas.
Davon weiss "drüben" keiner etwas.
Die Leute "drüben" in den DotNet-Gruppen haben meist recht
praktische Probleme und Architekturfragen werden dort selten
bis nie diskutiert.

Gruss Andy
Bernd Post
2004-07-31 11:12:59 UTC
Permalink
Post by Andy Schmitt
Davon weiss "drüben" keiner etwas.
Die Leute "drüben" in den DotNet-Gruppen haben meist recht
praktische Probleme und Architekturfragen werden dort selten
bis nie diskutiert.
Gruss Andy
Uuups achso, dachte wir wären gemeint gewesen ;-).
Andererseits habe Ich den Begriff irgendwann zu
meiner Visual C Zeit kennengelernt.

Gruss Bernd
Stefan Wischnewski
2004-07-30 06:45:50 UTC
Permalink
Post by Stefan Matthias Aust
In der JavaLobby hängt man sich an der Bemerkung auf, dass ein guter
Hacker Python statt Java wählen würde oder anders ausgedrückt, eben
nicht freiwillig Java wählen würde. Und anders geschlossen, wer Java
wählt, kann kein guter Entwickler sein.
So what. Wen interessiert's ?
Elite-Denken.
*gähn*
Post by Stefan Matthias Aust
Sicherlich provokant. Und ich möchte widersprechen - Python wäre für
mich keine Alternative - ich würde Ruby vorziehen wählen :)
Aber ich teile seine Einstellung, dass Programmiersprachen auch Filter
sind. Die Sprache ist eben nicht völlig egal. Zu welcher Sprache man
sich hingezogen fühlt, welche Community einem kompatibel erscheint, ist
ein wichtiger Aspekt. Sind Lisp-Programmierer überdurchschnittlich gut?
Ich kann es nicht mit Sicherheit sagen, aber es scheint mir so. Ich
kann nur sagen, dass ich beim Mitlesen in der Squeak-Mailinglist
(Smalltalk statt Lisp, da kenne ich mich besser aus) deutlich mehr
geniale "Hacker" gelesen und zum Teil kennengelernt habe als bislang in
der Java-Welt, die IMHO eher von sicherlich guten, gewissenhaften,
vielleicht soliden, aber auch ein bisschen langweiligen Entwicklern
dominiert zu sein scheint. Alles nur IMHO natürlich.
Solange die Sprache dich nicht völlig behindert, ist sie relativ bis
ziemlich egal. Und das tut Java IMHO nicht. Ich mußte einmal eine
Datenbankreplikation in VB schreiben. Da hättest du Grund zum Wehklagen
gehabt...
Meine Sichtweise ist wohl einfach anders. Ich verdiene mein Geld mit der
Software-Entwicklung. Dort auf die Massenprodukte (Mainstream ;-))zu
setzen, hat gute Gründe. Zu jedem Projekt gehört auch wesentlich mehr
als die Codierung. Und wenn ich privat etwas mache, nehme ich auch Java,
da es einfach zu viel Zeit kostet, neues zu lernen, just for fun. Diese
Zeit setze ich lieber ein, um etwas konkretes zu schaffen.
Programmiersprachen sind Mittel zum Zweck, die grauen Kisten dazu zu
bewegen, zu tun was man will.
Daß Java ist wie es ist, und wir nicht Lisp machen, hat auch seine
Gründe. Lisp mag ja ganz interessant sein, aber das Problem ist, daß es
für den Menschen schwerer erfassbar ist als die üblichen Verdächtigen.
Kryptische Klammerorgien :-)
Post by Stefan Matthias Aust
Gibt es visionäre und/oder geniale Java-Projekte? Nein, nicht einfach
nur erfolgreiche Projekte. Struts oder Tomcat sind erfolgreich, aber
nicht wirklich etwas neues. Gibt es etwas, wo man sagen kann, Wow, und
dann etwas später, man, den möchte ich kennenlernen, von dem möchte ich
lernen? Wenigestens etwas beeindruckendes? Spontan fällt mir nichts
ein, aber vielleicht liegt das an der Tageszeit. Bestimmt gibt es
etwas... es muss etwas geben...
Zähle doch einmal geniale Nicht-Java-Projekte auf.
Kann micht nicht erinnern, jemals geniale Software gesehen zu haben.
Informatik ist Naturwissenschaft, wo es plötzliche Entdeckungen geben
kann, keine Disziplin wie die Literatur, in der sich große Geister mit
einem Werk unsterblich machen können.
Post by Stefan Matthias Aust
Beeindruckend fand ich übrigens neulich MonoDoc - die Idee eines Wiki
mit einem einfach zu bedienenen GUI verknüpft um das
Dokumentationsproblem zu lösen. Jeder kann per Kopfdruck schnell und
unkompliziert dem Mono-System eine fehlende Beschreibung einer Methode
oder Klasse hinzufügen. Einfach und daher genial... und schon wieder
nicht Java :(
Na ja, da reißt mich aber auch nicht gerade vom Hocker.

Stefan
Marco Schmidt
2004-07-30 07:38:13 UTC
Permalink
Stefan Wischnewski:

[...]
Post by Stefan Wischnewski
Kann micht nicht erinnern, jemals geniale Software gesehen zu haben.
Informatik ist Naturwissenschaft,
Strukturwissenschaft.
Post by Stefan Wischnewski
wo es plötzliche Entdeckungen geben
kann, keine Disziplin wie die Literatur, in der sich große Geister mit
einem Werk unsterblich machen können.
Ich sehe da keinen Widerspruch. In der Informatik kann man sich ebenso
unsterblich machen, à la Turing, von Neumann, Codd etc. Im Gegensatz
zu Goethe und Schiller sind die Herren vielleicht keiner Mehrheit der
Bevölkerung bekannt, aber das wird bei Informatik vermutlich nie so
sein.

[...]

Gruß,
Marco
--
Bitte nur in der Newsgroup antworten, nicht per Email!
de.comp.lang.java Homepage: http://www.dclj.de/
FAQ: http://www.faqs.org/faqs/de/comp-lang-java/faq/
Meine Java-Seiten: http://www.geocities.com/marcoschmidt.geo/java.html
Marc Peter
2004-07-30 09:19:06 UTC
Permalink
Post by Stefan Matthias Aust
Gibt es visionäre und/oder geniale Java-Projekte? Nein, nicht einfach
nur erfolgreiche Projekte. Struts oder Tomcat sind erfolgreich, aber
nicht wirklich etwas neues. Gibt es etwas, wo man sagen kann, Wow, und
dann etwas später, man, den möchte ich kennenlernen, von dem möchte ich
lernen? Wenigestens etwas beeindruckendes?
Warte, bis John Carmack Doom15 in Java veröffentlicht, damit es auch auf
dem letzten Mobiltelefon läuft. Vielleicht schon bald, in einer
parallelen Realität, ganz nah...

bis dann
Marc
Marco Schmidt
2004-07-31 08:56:17 UTC
Permalink
Post by Marc Peter
Warte, bis John Carmack Doom15 in Java veröffentlicht, damit es auch auf
dem letzten Mobiltelefon läuft. Vielleicht schon bald, in einer
parallelen Realität, ganz nah...
Der mag übrigens Java ganz gern und hat schon eine Reihe (ID-)interner
Tools damit geschrieben. Finde gerade den Link zum Artikel nicht. Das
ist doch mal ein Beispiel für einen allgemein anerkannten Hacker, der
Java benutzt.

Gruß,
Marco
--
Bitte nur in der Newsgroup antworten, nicht per Email!
de.comp.lang.java Homepage: http://www.dclj.de/
FAQ: http://www.faqs.org/faqs/de/comp-lang-java/faq/
Meine Java-Seiten: http://www.geocities.com/marcoschmidt.geo/java.html
TSK
2004-07-30 10:29:08 UTC
Permalink
Post by Stefan Matthias Aust
Schon Paul Grahams provokanten Artikel
(http://www.paulgraham.com/gh.html) gelesen?
Nein. Jetzt ja.
Post by Stefan Matthias Aust
Hacker sind übrigens nach
der ursprünglichen Lisp-Tradition die außergewöhnlich guten wenn nicht
genialen Programmierer... die eben die schnell auf die Tasten
hämmerten, hacken... nicht zwielichtige Existenzen, die in die Rechner
anderer Leute einbrechen.
In der JavaLobby hängt man sich an der Bemerkung auf, dass ein guter
Hacker Python statt Java wählen würde oder anders ausgedrückt, eben
nicht freiwillig Java wählen würde. Und anders geschlossen, wer Java
wählt, kann kein guter Entwickler sein.
Paul hat in einem Artikel auch behauptet, dass C eine geniale Sprache
für Hacker sei.
Was bitteschön unterscheidet C von Java abgesehen von der Zeiger-
arithmetik ? Also wer Zeigerarithmetik beherrscht, ist ein Hacker ?
Post by Stefan Matthias Aust
Sicherlich provokant. Und ich möchte widersprechen - Python wäre für
mich keine Alternative - ich würde Ruby vorziehen wählen :)
Aber ich teile seine Einstellung, dass Programmiersprachen auch Filter
sind. Die Sprache ist eben nicht völlig egal. Zu welcher Sprache man
sich hingezogen fühlt, welche Community einem kompatibel erscheint, ist
ein wichtiger Aspekt. Sind Lisp-Programmierer überdurchschnittlich gut?
Ich kann es nicht mit Sicherheit sagen, aber es scheint mir so.
Hm, es gibt mehrere Aspekte von Sprachen. Ein Aspekt ist die
Mächtigkeit der Sprache und die Brillianz von dem, der sie benutzt.
Ein anderer ist die strukturelle Einfachheit, die Verständlichkeit
und der Entwickler, der sich bemüht, seine Gedankengänge verständ-
lich zu machen.

In "Writing Solid Code" gibt Steve Maguire folgenden Ratschlag
(sinngemäß):

Keep it simple & stupid. To the person who read your code it
must be absolutely obvious what you did have in your mind. He
can solve cross-word puzzles in his mind while he maunders
slightly bored through your code. Never use flashy or smart
things just for the fun of it.
Post by Stefan Matthias Aust
Gibt es visionäre und/oder geniale Java-Projekte? Nein, nicht einfach
nur erfolgreiche Projekte. Struts oder Tomcat sind erfolgreich, aber
nicht wirklich etwas neues. Gibt es etwas, wo man sagen kann, Wow, und
dann etwas später, man, den möchte ich kennenlernen, von dem möchte ich
lernen? Wenigestens etwas beeindruckendes? Spontan fällt mir nichts
ein, aber vielleicht liegt das an der Tageszeit. Bestimmt gibt es
etwas... es muss etwas geben...
Gegenfrage: Wieviele erfolgreiche und vor allem *größere* Open-Source
Projekte gibt es in Lisp ? In Java kann man jemanden damit erschlagen.

Provokante Gegenbehauptung: Durch die ganzen genialen Kniffe, die
ein einzelner Lisp-Programmierer erfindet (weil seine Sprache das
bietet), macht er seine Arbeit für andere, die ebenso genial sind,
aber anders denken und coden, undurchschaubar.

Für Übungszwecke und zum Lernen ist das toll, aber es ist
gleichzeitig das Todesurteil für jede "schicke" Sprache.

Grüße
Thorsten
--
Bitte Reply-To: unverändert verwenden; die Adresse ist gültig.
Frank Buss
2004-07-31 13:48:30 UTC
Permalink
Post by TSK
Gegenfrage: Wieviele erfolgreiche und vor allem *größere* Open-Source
Projekte gibt es in Lisp ? In Java kann man jemanden damit erschlagen.
wurden ja schon Beispiele genannt, wie Emacs. Auch Sourceforge listet
interessante Lisp-Projekte auf:

http://sourceforge.net/softwaremap/trove_list.php?form_cat=170

Aber auch große kommerzielle Projekte werden damit realisiert, wie Yahoo
Store:

http://www.paulgraham.com/avg.html
Post by TSK
Provokante Gegenbehauptung: Durch die ganzen genialen Kniffe, die
ein einzelner Lisp-Programmierer erfindet (weil seine Sprache das
bietet), macht er seine Arbeit für andere, die ebenso genial sind,
aber anders denken und coden, undurchschaubar.
das kann ich nicht bestätigen. Ich lerne zur Zeit Lisp und habe keine
Probleme, anderer Leute Code zu lesen, auch wenn ich ihn anders schreiben
würde. Lisp hat einige wenige Grundkonzepte und ist von der Syntax her sehr
einfach, daher kann man ein Lisp-Programm schnell lesen und verstehen.

Es stimmt zwar, daß man viele Dinge in Lisp bauen kann, die in anderen
Sprachen wie Java gar nicht anders als "Keep it simple & stupid" möglich
wären, aber das verbessert nur das Verständis und vermeidet auch
überflüssige Tipparbeit beim Schreiben.

Nehmen wir als Beispiel mal sowas einfaches wie das Vertauschen von
Variablenwerten. Habe ich in Java schon einige male geschrieben und ist
immer wieder dieselbe lästige Schreibarbeit:

int a = 1;
int b = 2;

int tmp = a;
a = b;
b = tmp;

Das ist "simple & stupid", aber man muß die Zeilen lesen und darüber
nachdenken, was die denn machen (wenn man es nicht kommentiert hat).

In Lisp kann man dafür ein Makro schreiben (muß man übrigens nicht, da es
das in Form von ROTATEF bereits allgemeiner gibt) :

(defmacro swap (x y)
`(let ((tmp ,x))
(setf ,x ,y)
(setf ,y tmp)))

dann sieht der code schon gleich viel selbsdokumentierender aus:

(setq a 1)
(setq b 2)

(swap a b)

Ich habe jetzt zwar einen kleinen genialen Kniff verwendet, aber das hilft
anderen Programmierern, sich in meinem Code besser zurechtzufinden, ich
kann schneller damit programmieren und die Programme werden kompakter und
weniger fehleranfällig.

In einer Sprache, die so ein hohes Abstraktionsniveau bietet, ist es
natürlich auch leicht möglich, darin unverständlichen und nicht wartbaren
Unsinn zu schreiben. Vielleicht sollten daher wirklich nur gute
Programmierer Lisp und andere fortgeschrittene Sprachen verwenden :-)
--
Frank Buß, ***@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Stefan Ram
2004-07-31 14:13:25 UTC
Permalink
Post by Frank Buss
Aber auch große kommerzielle Projekte werden damit realisiert, wie Yahoo
http://www.paulgraham.com/avg.html
"Yahoo Store" /wurde/ damit implementiert.

http://www.ai.mit.edu/~gregs/ll1-discuss-archive-html/msg02367.html
Post by Frank Buss
das kann ich nicht bestätigen. Ich lerne zur Zeit Lisp und habe keine
Probleme, anderer Leute Code zu lesen, auch wenn ich ihn anders schreiben
würde. Lisp hat einige wenige Grundkonzepte und ist von der Syntax her sehr
einfach, daher kann man ein Lisp-Programm schnell lesen und verstehen.
Was mich ziemlich irritiert ist die irreguläre Einrückung einiger
Leute in cll. Ich rücke nach einer öffnenden Klammer /immer/ um
eine bestimmte Tiefe ein (z.B. zwei Positionen) und dort wird
das in einer Liste mal mehr und mal weniger tief gemacht (z.B.
2 Positionen und dann 12). Ich habe gestern mal eine Liste aus cll
umformatiert, damit ich sie überhaupt lesen konnte:

( loop for y from -1 to 1.1 by 0.1 do
( loop for x from -2 to 1 by 0.04 do
( let*
( ( c 126)
( z ( complex x y ))
( a z ))
( loop
while ( < ( abs ( setq z ( + ( * z z ) a ))) 2 )
while ( > ( decf c ) 32 ))
( princ ( code-char c ))))
( format t "~%" ))

Diese Liste stammt wohl von Dir, und Dein Original ist:

(loop for y from -1 to 1.1 by 0.1 do
(loop for x from -2 to 1 by 0.04 do
(let* ((c 126)
(z (complex x y))
(a z))
(loop while (< (abs
(setq z (+ (* z z) a)))
2)
while (> (decf c) 32))
(princ (code-char c))))
(format t "~%"))
Frank Buss
2004-07-31 14:43:21 UTC
Permalink
Post by Stefan Ram
Was mich ziemlich irritiert ist die irreguläre Einrückung einiger
Leute in cll. Ich rücke nach einer öffnenden Klammer /immer/ um
eine bestimmte Tiefe ein (z.B. zwei Positionen) und dort wird
das in einer Liste mal mehr und mal weniger tief gemacht (z.B.
2 Positionen und dann 12).
ja, mit deinen Einrückungen ist das ja auch in Java so eine Sache und man
könnte dich wohl zu den Visionären zählen: immer gegen den Strom
schwimmen :-)
Post by Stefan Ram
Ich habe gestern mal eine Liste aus cll
( loop for y from -1 to 1.1 by 0.1 do
( loop for x from -2 to 1 by 0.04 do
( let*
( ( c 126)
( z ( complex x y ))
( a z ))
( loop
while ( < ( abs ( setq z ( + ( * z z ) a ))) 2 )
while ( > ( decf c ) 32 ))
( princ ( code-char c ))))
( format t "~%" ))
der Trick dabei besteht darin, die Klammern gar nicht mehr zu sehen und
nur noch anhand der Einrückungen den Aufbau des Programms zu verstehen.
Zitat von http://www.lisp.org/table/style.htm :

| Use proper indentation -- you should be able to understand the
| structure of your definitions without noticing the parentheses. In
| general, the way one indents a form is controlled by the first symbol
| of the form. In DEFUNs, for example, one puts the symbol DEFUN, the
| function name, and the argument list all on the same line. If the
| argument list is too long, one can break it at one of the lambda
| keywords. Following the argument list, one inserts a carriage return
| and lists the expressions in the body of the definition, with each form
| starting on its own line indented three spaces relative to the open
| parenthesis of the parent (in this case the DEFUN). This general style
| -- of putting all the significant elements of a form on a single line,
| followed by a carriage return and the indented body -- holds for many
| Lisp constructs. There are, of course, variations, such as keeping the
| first clause on the same line as the COND or CASE symbol, and the rules
| are relaxed in different ways to keep line lengths to a manageable
| size. If you find yourself having trouble fitting everything in even
| with line breaking and relaxing the rules, either your function names
| are too long or your code isn't very modular. You should perceive this
| as a signal that you need to break up your big definitions into smaller
| chunks, each with a clearly defined purpose, and possibly replace long
| function names with concise but apt shorter ones.

Ich lasse das immer von XEmacs mit der speziellen, aber mitgelieferten,
common-lisp-indent-function einrücken, was in den meisten Fällen zu
sinnvollen Resultaten führt. Ich versuche das mal zu erklären, so wie ich
Post by Stefan Ram
(loop for y from -1 to 1.1 by 0.1 do
(loop for x from -2 to 1 by 0.04 do
hier wird das loop so weit eingerückt, weil es eher zum davorliegenden
"for" passt (wobei das dann doch eigentlich noch zwei weitere Leerzeichen
eingerückt werden müsste?)
Post by Stefan Ram
(let* ((c 126)
(z (complex x y))
(a z))
diese Einückungen sind klar, denn jede einzelne Variablendefinition
gehört von der Ebene her auf dieselbe Höhe. Man könnte das auch so
schreiben, wenn man wollte:

(let*
((c 126)
(z (complex x y))
(a z))

der nachfolgende Rumpf der let*-Anweisung wird dagegen wieder weniger
eingerückt, da die Variablendefinition selber vorher sozusagen eine
eingerückte Einleitung war und das der Hauptteil ist, der aber dennoch
dem let* untergeordnet ist. Die Einrückungen beim "<" und "abs"
Post by Stefan Ram
(loop while (< (abs
(setq z (+ (* z z) a)))
2)
while (> (decf c) 32))
(princ (code-char c))))
jetzt kommt wieder dieselbe Ebene wie die x-Schleife des impliziten
progns der y-Schleife
Post by Stefan Ram
(format t "~%"))
--
Frank Buß, ***@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
TSK
2004-08-02 19:27:39 UTC
Permalink
Post by Frank Buss
Post by TSK
Gegenfrage: Wieviele erfolgreiche und vor allem *größere* Open-Source
Projekte gibt es in Lisp ? In Java kann man jemanden damit erschlagen.
wurden ja schon Beispiele genannt, wie Emacs.
Ok.
Post by Frank Buss
http://sourceforge.net/softwaremap/trove_list.php?form_cat=170
Allerdings sind viele dieser Projekte mehrsprachig (C,Java,Python).
Post by Frank Buss
Aber auch große kommerzielle Projekte werden damit realisiert, wie Yahoo
http://www.paulgraham.com/avg.html
Es gibt eine Diskussion über die Benutzerunfreundlichkeit des
Systems:
http://www.joelonsoftware.com/news/fog0000000322.html

Das System wurde 2003 in C++ und Perl neugeschrieben.
Post by Frank Buss
Post by TSK
Provokante Gegenbehauptung: Durch die ganzen genialen Kniffe, die
ein einzelner Lisp-Programmierer erfindet (weil seine Sprache das
bietet), macht er seine Arbeit für andere, die ebenso genial sind,
aber anders denken und coden, undurchschaubar.
das kann ich nicht bestätigen. Ich lerne zur Zeit Lisp und habe keine
Probleme, anderer Leute Code zu lesen, auch wenn ich ihn anders schreiben
würde. Lisp hat einige wenige Grundkonzepte und ist von der Syntax her sehr
einfach, daher kann man ein Lisp-Programm schnell lesen und verstehen.
Ich suche nach einer Erklärung, warum Lisp praktisch tot ist.
Ist es nur der "keine C-Syntax, keine imperative Sprache" Grund.
Und da Du Lisp lernst, kannst Du *alles* ohne Probleme lesen ? Auch
den Quelltext von <geniale Lisp-Applikation> ?
Ich sage ja auch nicht, dass ich Java total einfach lesen kann, wenn
es nur "Hello World" ist.
Post by Frank Buss
Es stimmt zwar, daß man viele Dinge in Lisp bauen kann, die in anderen
Sprachen wie Java gar nicht anders als "Keep it simple & stupid" möglich
wären, aber das verbessert nur das Verständis und vermeidet auch
überflüssige Tipparbeit beim Schreiben.
Nehmen wir als Beispiel mal sowas einfaches wie das Vertauschen von
Variablenwerten. Habe ich in Java schon einige male geschrieben und ist
[SWAP]
Ich habe jetzt zwar einen kleinen genialen Kniff verwendet, aber das hilft
anderen Programmierern, sich in meinem Code besser zurechtzufinden, ich
kann schneller damit programmieren und die Programme werden kompakter und
weniger fehleranfällig.
In einer Sprache, die so ein hohes Abstraktionsniveau bietet, ist es
natürlich auch leicht möglich, darin unverständlichen und nicht wartbaren
Unsinn zu schreiben.
Ein Beispiel, wie man ohne obskur zu sein, Probleme schaffen kann:
Bietet Lisp nicht unter anderem die Möglichkeit, Code zu schreiben,
der neuen Code produziert ? Das mag sehr elegant sein, wenn mehrere
ähnliche Funktionen produziert werden müssen, aber wie debuggt man
so ein Teil ? Wie arbeitet man sich in das Programm ein ?
Post by Frank Buss
Vielleicht sollten daher wirklich nur gute Programmierer Lisp
und andere fortgeschrittene Sprachen verwenden :-)
Ja, das Attribut "gut". Ist jemand "gut", wenn er schönen, eleganten
und schnellen Code schreibt, der aber den Haken hat, sehr schlecht
dokumentiert zu sein ?
Es gab hier doch schon einige Rants zu gräßlichem Stil....

Grüße
Thorsten
--
Bitte Reply-To: unverändert verwenden; die Adresse ist gültig.
Frank Buss
2004-08-02 22:25:31 UTC
Permalink
Post by TSK
Post by Frank Buss
wurden ja schon Beispiele genannt, wie Emacs.
Noch ein sehr umfangreiches Projekt:

http://maxima.sourceforge.net/
Post by TSK
Es gibt eine Diskussion über die Benutzerunfreundlichkeit des
http://www.joelonsoftware.com/news/fog0000000322.html
viel diskutiert wurde da ja nicht, wenn ich nichts übersehen habe, nur
ein Aspekt beschrieben, der nicht so gut ist.
Post by TSK
Das System wurde 2003 in C++ und Perl neugeschrieben.
Ja, wenn man dem hier vertrauen kann:

http://www.ai.mit.edu/~gregs/ll1-discuss-archive-html/msg02367.html

dann war der Grund, weil die Programmierer bei Yahoo Lisp nicht
verstanden haben (Yahoo hat das Store-Programm aufgekauft). Das ist
natürlich ein Argument dafür, in Lisp könnte man geniale Dinge
programmieren, die dann keiner mehr versteht.
Post by TSK
Ich suche nach einer Erklärung, warum Lisp praktisch tot ist.
Ist es nur der "keine C-Syntax, keine imperative Sprache" Grund.
Und da Du Lisp lernst, kannst Du *alles* ohne Probleme lesen ? Auch
den Quelltext von <geniale Lisp-Applikation> ?
Ich sage ja auch nicht, dass ich Java total einfach lesen kann, wenn
es nur "Hello World" ist.
war vielleicht was übertrieben von mir. Im Prinzip habe ich keine
Probleme Lisp-Code zu lesen, nur muß ich zur Zeit noch dauernd die
verwendeten Library-Funktionen nachschauen, da es davon sehr viele gibt.
Und wahrscheinlich trifft das auch nicht auf jeden Lisp-Code zu, denn
man muß natürlich auch das Problem dahinter verstanden haben. Ich würde
wahrscheinlich den Yahoo-Store in der Lisp-Version verstehen, aber ein
Lisp-Experten-System auf Prolog-Basis nicht, ohne mich vorher in die
zugrundeliegende Theorie eingearbeitet zu haben.

Ich denke daß die zu lösende Aufgabe in großem Umfang die
Implementierung bestimmt. Ist in Java ja auch so, daß es bei einer
Buchhaltung z.B. eine Klasse "Konto" gibt. In Lisp würde man dann auch
ähnliches wiederfinden, wobei zwar die Möglichkeiten größer sind, z.B.
als CLOS-Klasse oder einfach als Struktur, aber die Logik sollte in
jedem Fall erkennbar sein.
Post by TSK
Bietet Lisp nicht unter anderem die Möglichkeit, Code zu schreiben,
der neuen Code produziert ?
ja, genau das habe ich mit dem swap-Makro bereits gezeigt :-)
Post by TSK
Das mag sehr elegant sein, wenn mehrere
ähnliche Funktionen produziert werden müssen, aber wie debuggt man
so ein Teil ? Wie arbeitet man sich in das Programm ein ?
gut das du fragst, das ist einer der Hauptvorteile von Lisp gegenüber
anderen Sprachen: Man arbeitet interaktiv mit dem System. Im Falle des
Makros kann man also von der Kommandozeile einfach fragen, wie es denn
expandiert aussieht:

CL-USER> (macroexpand '(swap x y))
(LET ((TMP X)) (SETF X Y) (SETF Y TMP))

Man kann dieses Feature gar nicht hoch genug einschätzen. Als
Java-Programmierer ist man es gewohnt, ein Programm zu schreiben, es zu
compilieren und dann zu testen, ggf. per JUnit. In Lisp ist der
Entwicklungsprozess komplett anders: Man programmiert interaktiv in der
Umgebung seine Funktionen und Klassen, probiert die einfach mal mit
Testargumenten aus, baut sich per Makros Vereinfachungen, passt die
Funktionen wieder an und hat zum Schluss eine fertige Anwendung und
wundert sich, wie das so schnell ging.

Debugging kenne ich noch nicht so gut, ist aber prinzipiell mächtiger
als was in Java möglich ist. Lisp hat ein verallgemeinertes
Exception-Konzept als Java, aber das Java-Konzept ist als Teilmenge
enthalten, was ja auch nicht verwunderlich ist, da Guy Steele Lisp sehr
gut kann und mit an Scheme, einem Lisp-Dialekt, mitgearbeitet hat. Mit
diesen sogenannten Conditions ist es möglich, an der Stelle des
Auftretens der Condition weiterzumachen, was übergeordnete Handler
bestimmten können. Es wird also nicht zwangsläufig ein Stack-Unwinding
durchgeführt. Mehr dazu hier:

http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html
Post by TSK
Post by Frank Buss
Vielleicht sollten daher wirklich nur gute Programmierer Lisp
und andere fortgeschrittene Sprachen verwenden :-)
Ja, das Attribut "gut". Ist jemand "gut", wenn er schönen, eleganten
und schnellen Code schreibt, der aber den Haken hat, sehr schlecht
dokumentiert zu sein ?
Es gab hier doch schon einige Rants zu gräßlichem Stil....
Dokumentation kann zwar nicht schaden, aber guter Code sollte
selbstdokumentierend sein, also man sollte ihn wie ein Buch lesen
können. Schöner, eleganter Code hat meiner Meinung nach per Definition
diese Eigenschaft, sonst wäre er nicht schön und elegant.

Schnell ist meistens kein Problem und beschränkt sich auf wenige
Hotspots, die per Profiling herausfindbar sind (in Common Lisp gehört
übrigens die "time"-Funktion zur Library, mit der man einfach mal (time
(irgendwas)) aufrufen kann, ohne wie in Java umständlich mit
System.currentTimeMillies, Subtraktion und println arbeiten zu müssen).

Meine Erfahrung mit wesentlich komplizierteren Sprachen, wie C++, ist,
daß wenn "gute" Programmierer darin programmiert haben, ich den Code
auch verstehen kann, z.B. die Qt-Library. Negativbeispiel ist MFC, wo
mit Makros versucht wird, ein Meta-Klassenmodell in die Sprache
einzubringen, das so nicht vorgesehen ist und da C++ leider nicht so
flexibel wie Lisp ist, kann das nur schiefgehen. Qt geht per
Pre-Compiler den Weg, die Sprache direkt zu erweitern. In Lisp könnte
man dasselbe in Lisp direkt programmieren.

Fazit: Eine Erweiterung der Sprache, was in Lisp per Makros üblich ist,
kann zu leichter verständlichen Code führen, wenn es zu der zu lösenden
Aufgabe passt. Das richtig einzusetzen, damit jeder es sofort versteht,
macht auch einen guten Programmierer aus.
--
Frank Buß, ***@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Michael Borgwardt
2004-08-03 08:52:38 UTC
Permalink
Post by Frank Buss
Post by TSK
Ja, das Attribut "gut". Ist jemand "gut", wenn er schönen, eleganten
und schnellen Code schreibt, der aber den Haken hat, sehr schlecht
dokumentiert zu sein ?
Es gab hier doch schon einige Rants zu gräßlichem Stil....
Dokumentation kann zwar nicht schaden, aber guter Code sollte
selbstdokumentierend sein, also man sollte ihn wie ein Buch lesen
können.
Und dann ist ein Fehler drin, mangels Dokumentation können die
"Leser" nicht erkennen daß der Code sich nicht so verhält wie
beabsichtigt, schreiben Code der sich auf das fehlerhafte
Verhalten (und natürlich alle möglichen Implementationsdetails)
verläßt, und schon mußt Du für alle Zeiten Bug-kompatibel bleiben...

Ergo: Dokumentation ist ein *Muß*, kein "kann nicht schaden",
jedenfalls für Code auf den mehrere Leute aufsetzen.
Stefan Matthias Aust
2004-08-03 05:55:18 UTC
Permalink
Post by TSK
Ich suche nach einer Erklärung, warum Lisp praktisch tot ist.
Hier mein Versuch: a) Die allgemein bekannten, öffentlich verfügbaren
opensource Projekte werden von einer ganz besonderen Art von Entwicklern
geschrieben - meist Schüler oder Studenten, die einfach Zeit dafür
haben. Das ist vielleicht nur ein 5-Jahresabschnitt im "Leben eines
Entwicklers". Rechnen wir jetzt zurück, sind die Entwickler, die den
riesen Berg an opensource-Software entwickelt haben, der seit einigen
Jahren existiert, viel zu jung, um Lisp kennen gelernt zu haben.

b) Wer etwas neues sich selbst beibringen will, wird eher eine empfohle
Sprache wählen, die auch der "Kumpel" oder die "Community" benutzt, weil
er eh nichts anderes kennt oder aber bewußt diese wählt, um so bei
Fragen Ansprechpartner zu haben und für Projekte Mitstreiter zu finden.

c) Das "Management" sagt: Wo bitte sollte ich denn Lisp-Entwickler
bekommen, insbesondere billige Lisp-Entwickler. Das Prinzip von Angebot
und Nachfrage ist mir zu riskant, was jetzt nicht auf dem Markt im
Überfluss vorhanden ist, dass will ich auch lieber gar nicht einsetzen.
Ich will nur einen Hammer für all meine Nägel und auf keinen Fall für
eine Fehlentscheidung verantwortlich gemacht werden, also lege ich
lieber fest, was die anderen (insbesondere vieleicht IBM und Microsoft,
denn was die sagen, kann nicht falsch sein) machen.
Post by TSK
Bietet Lisp nicht unter anderem die Möglichkeit, Code zu schreiben,
der neuen Code produziert ? Das mag sehr elegant sein, wenn mehrere
ähnliche Funktionen produziert werden müssen, aber wie debuggt man
so ein Teil?
Mit einem Debugger, Tracer und Profiler.
Post by TSK
Wie arbeitet man sich in das Programm ein ?
Genauso wie sonst. Mal schaut sich den Code an, lässt ihn ablaufen,
hält ihn an spannenden Stellen an, untersucht diese, probiert Varianten.


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Jochen Theodorou
2004-08-03 08:28:38 UTC
Permalink
Stefan Matthias Aust schrieb:

so ganz nebenbei... hattest du nicht mal etwas ähnliches wie einen
Lispinterpreter in Java geschrieben? War glaube ich kein vollständiger,
aber ich suche trotzdem derzeit nach sowas. Scheme wäre auch ok, aber es
muss im Quellcode sein, da ich ein paar Modifikationen machen möchte.
Vielleicht hast du auch eine URL zu einem öffentlich zugänglichen. Bis
jetzt fand ich nur
jatha: http://sourceforge.net/projects/jatha/
jil: http://www.franz.com/support/documentation/6.2/doc/jil.htm
ohne Namen:
http://yama-linux.cc.kagoshima-u.ac.jp/~yamanoue/researches/java/Lisp/Lisp.html

allerdings weiss ich nciht, ob die was taugen

Gruss theo
Peter Sommerfeld
2004-08-03 10:47:41 UTC
Permalink
Post by Jochen Theodorou
so ganz nebenbei... hattest du nicht mal etwas ähnliches wie einen
Lispinterpreter in Java geschrieben? War glaube ich kein vollständiger,
aber ich suche trotzdem derzeit nach sowas. Scheme wäre auch ok, aber es
muss im Quellcode sein, da ich ein paar Modifikationen machen möchte.
Vielleicht hast du auch eine URL zu einem öffentlich zugänglichen.
http://www.gnu.org/software/kawa/

Gruss, Peter
Stefan Matthias Aust
2004-08-03 13:47:08 UTC
Permalink
Post by Jochen Theodorou
so ganz nebenbei... hattest du nicht mal etwas ähnliches wie einen
Lispinterpreter in Java geschrieben? War glaube ich kein vollständiger,
aber ich suche trotzdem derzeit nach sowas. Scheme wäre auch ok, aber es
muss im Quellcode sein, da ich ein paar Modifikationen machen möchte.
Ich hatte mich mit JScheme beschäftigt als es noch klein und handlich
war und SILK hieß. Außerdem hatte ich mal einen 4k mini-Interpreter
geschrieben, der aber zu nichts wirklich zu gebrauchen ist.

SISC ist wohl das vollständigste Scheme in Java. Armed Bear soll ein
relativ großes Subset von CommonLisp sein.

Warum übrigens gerade Lisp oder Scheme (und sind dir die Unterschiede
bewusst?)? Vielleicht passt eine andere Sprache noch besser? Ich kenne
da vielleicht einige :) Empfehlen könnte ich z.B. Pico ("Scheme for the
mere mortal"), dass es aber noch nicht für Java gibt. Das wäre so mein
Kandidat für eine Eclipse-Version...


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Markus Schaber
2004-08-03 14:35:56 UTC
Permalink
Hallo,

On Sat, 31 Jul 2004 13:48:30 +0000 (UTC)
Post by Frank Buss
Lisp hat einige wenige Grundkonzepte und ist von der
Syntax her sehr einfach,
Hmm, das trifft z. B. auf Brainfuck auch zu.
Post by Frank Buss
daher kann man ein Lisp-Programm schnell
lesen und verstehen.
Das trifft bei Brainfuck garantiert nicht zu.

Womit ich Deine Schlussfolgerung als widerlegt ansehe :-)
Post by Frank Buss
Nehmen wir als Beispiel mal sowas einfaches wie das Vertauschen von
Variablenwerten. Habe ich in Java schon einige male geschrieben und
[...]
Post by Frank Buss
int tmp = a;
a = b;
b = tmp;
[...]
Post by Frank Buss
(swap a b)
Ich denke, dass folgendes (z. B. in Python oder AFAIK auch in nice)
immer noch am lesbarsten ist:

a,b = b,a
Post by Frank Buss
In einer Sprache, die so ein hohes Abstraktionsniveau bietet, ist es
natürlich auch leicht möglich, darin unverständlichen und nicht
wartbaren Unsinn zu schreiben. Vielleicht sollten daher wirklich nur
gute Programmierer Lisp und andere fortgeschrittene Sprachen verwenden
:-)
Ich denke auch, dass es nicht schadet, dass man zuerst mit Basic und
dann mit Assembler arbeitet. Dann sollte eine funktionale und eine
logische Sprache kommen, und dann eine echte Objektorientierte (also
nicht C++/Java).

Gruss,
Markus
--
markus schaber | dipl. informatiker
logi-track ag | rennweg 14-16 | ch 8001 zürich
phone +41-43-888 62 52 | fax +41-43-888 62 53
mailto:***@logi-track.com | www.logi-track.com
Rainer Joswig
2004-08-03 13:49:53 UTC
Permalink
Post by TSK
Post by Stefan Matthias Aust
Schon Paul Grahams provokanten Artikel
(http://www.paulgraham.com/gh.html) gelesen?
Nein. Jetzt ja.
Post by Stefan Matthias Aust
Hacker sind übrigens nach
der ursprünglichen Lisp-Tradition die außergewöhnlich guten wenn nicht
genialen Programmierer... die eben die schnell auf die Tasten
hämmerten, hacken... nicht zwielichtige Existenzen, die in die Rechner
anderer Leute einbrechen.
In der JavaLobby hängt man sich an der Bemerkung auf, dass ein guter
Hacker Python statt Java wählen würde oder anders ausgedrückt, eben
nicht freiwillig Java wählen würde. Und anders geschlossen, wer Java
wählt, kann kein guter Entwickler sein.
Paul hat in einem Artikel auch behauptet, dass C eine geniale Sprache
für Hacker sei.
Was bitteschön unterscheidet C von Java abgesehen von der Zeiger-
arithmetik ? Also wer Zeigerarithmetik beherrscht, ist ein Hacker ?
Post by Stefan Matthias Aust
Sicherlich provokant. Und ich möchte widersprechen - Python wäre für
mich keine Alternative - ich würde Ruby vorziehen wählen :)
Aber ich teile seine Einstellung, dass Programmiersprachen auch Filter
sind. Die Sprache ist eben nicht völlig egal. Zu welcher Sprache man
sich hingezogen fühlt, welche Community einem kompatibel erscheint, ist
ein wichtiger Aspekt. Sind Lisp-Programmierer überdurchschnittlich gut?
Ich kann es nicht mit Sicherheit sagen, aber es scheint mir so.
Hm, es gibt mehrere Aspekte von Sprachen. Ein Aspekt ist die
Mächtigkeit der Sprache und die Brillianz von dem, der sie benutzt.
Ein anderer ist die strukturelle Einfachheit, die Verständlichkeit
und der Entwickler, der sich bemüht, seine Gedankengänge verständ-
lich zu machen.
In "Writing Solid Code" gibt Steve Maguire folgenden Ratschlag
Keep it simple & stupid. To the person who read your code it
must be absolutely obvious what you did have in your mind. He
can solve cross-word puzzles in his mind while he maunders
slightly bored through your code. Never use flashy or smart
things just for the fun of it.
Post by Stefan Matthias Aust
Gibt es visionäre und/oder geniale Java-Projekte? Nein, nicht einfach
nur erfolgreiche Projekte. Struts oder Tomcat sind erfolgreich, aber
nicht wirklich etwas neues. Gibt es etwas, wo man sagen kann, Wow, und
dann etwas später, man, den möchte ich kennenlernen, von dem möchte ich
lernen? Wenigestens etwas beeindruckendes? Spontan fällt mir nichts
ein, aber vielleicht liegt das an der Tageszeit. Bestimmt gibt es
etwas... es muss etwas geben...
Gegenfrage: Wieviele erfolgreiche und vor allem *größere* Open-Source
Projekte gibt es in Lisp ? In Java kann man jemanden damit erschlagen.
Open-Source-Projekte gibt/gab es in Lisp auch sehr viele. Ursprünglich
an den Universitäten. Aus dem Umfeld kommen sehr viele Einflüsse.
Zum Teil ist das aber schon zwanzig Jahre her. Der Anwendungsbereich
war oftmals 'KI' (oder was man so KI nennt/nannte). Daher wird der
typische
Entwickler kaum darüber stolpern, es sei denn er interessiert
sich für Expertensysteme, temporale Logik, 'Beweiser', etc.
Die Carnegie-Mellon-Universität hat mal vor Jahren Sources von
Projekten gesammelt (http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/0.html
und
http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/lang/lisp/0.html).
Da findet man einiges in Lisp. Aber eben keine Office-Suite oder
kein Content-Management-System.

In den letzten Jahren gibt es zwar wieder ein paar neue
Open-Source-Projekte
auch mit Lisp, aber das ist noch immer vergleichbar wenig. Das wird
sich auch nicht so schnell ändern.

Zum Stöbern bieten sich an:

http://www.cliki.net (Links to and resources for free software
implemented in Common Lisp and available on Unix-like systems)
und
http://www.common-lisp.net/projects.shtml

Aber auch Emacs und Xemacs haben inzwischen schon eine riesige
Menge an Lisp-Funktionalität angesammelt.
Z.B. sollten die XEmacs-Packages beträchtlichen Umfang bekommen haben:
http://www.xemacs.org/Develop/packages.html

Ausserdem gibt es noch eine ganze Reihe von Projekten in Scheme...
Post by TSK
Provokante Gegenbehauptung: Durch die ganzen genialen Kniffe, die
ein einzelner Lisp-Programmierer erfindet (weil seine Sprache das
bietet), macht er seine Arbeit für andere, die ebenso genial sind,
aber anders denken und coden, undurchschaubar.
Für Übungszwecke und zum Lernen ist das toll, aber es ist
gleichzeitig das Todesurteil für jede "schicke" Sprache.
Grüße
Thorsten
Stefan Matthias Aust
2004-08-03 13:58:50 UTC
Permalink
Post by Rainer Joswig
In den letzten Jahren gibt es zwar wieder ein paar neue
Open-Source-Projekte auch mit Lisp, aber das ist noch immer
vergleichbar wenig.
Interessant fand ich langband, ein Rewrite von Angband in CommonLisp
(eigentlich mehr, denn es ist gleich ein Generator für derartige Spiele,
von Angband gibt es wohl ein dutzend Varianten). Ein IMHO recht
komplexes, großes System aber eben deutlich kleiner als der C-Moloch.
Anband ist wohl das komplexeste rogue-like-Spiel.


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Jochen Theodorou
2004-07-30 11:44:19 UTC
Permalink
Post by Stefan Matthias Aust
Schon Paul Grahams provokanten Artikel
(http://www.paulgraham.com/gh.html) gelesen? Hacker sind übrigens nach
der ursprünglichen Lisp-Tradition die außergewöhnlich guten wenn nicht
genialen Programmierer... die eben die schnell auf die Tasten
hämmerten, hacken... nicht zwielichtige Existenzen, die in die Rechner
anderer Leute einbrechen.
In der JavaLobby hängt man sich an der Bemerkung auf, dass ein guter
Hacker Python statt Java wählen würde oder anders ausgedrückt, eben
nicht freiwillig Java wählen würde. Und anders geschlossen, wer Java
wählt, kann kein guter Entwickler sein.
Ok, was ist mit Java gemeint? Die Sprache selbst, die Plattform? Was ich
an Java genial finde ist die Plattform, eben weil ich mich nicht mit so
vielen Dingen rumärgern muss, denen man in anderen Sprachen unterliegt.
Und wie steht es dann mit Jython? Ich meine damit hätte man doch die
Vorteile der Javaplattform und die Vorteile der Sprache Python in einem,
oder nicht?

Wenn du dich an der inkonsistenz von Methodenbennenungen aufhängst, dann
kritisierst du aber nicht die Sprache selbst sondern eher die Plattform.
Und was geniale Projekte angeht... Nun ich finde zum Beispiel apt eine
gute Sache, aber der Code dazu ist furchtbar. Selbst nach Aussagen der
Leute von Debain sollte apt komplett neu geschrieben werden, das war
C++. Super finde ich GLib und GTK, weil es damit endlich unter C(++)
möglich ist einigermassen gescheite Programme zu schreiben ohne all zu
sehr auf die Plattformabhängigkeiten zu achten. Trotzdem ist
"Objektorientierte Programmierung" in C nicht unbedingt eine Freude. Ist
jetzt das Projekt Schrott, weil ich nichts von den Sprachen C und C++ halte?

Und wenn Java so schlecht ist, warum gibt es dann mit Batik etwas das
recht gut den SVG-Standard abdeckt und unter C nicht? Jetzt möge mir
niemand mit librsvg und wie sie alle heissen kommen. Die Unterstützen
alle sehr viele Features nicht und sind zum Teil nicht für alle
wichtigen Plattformen verfügbar.
Aber handelt es sich bei den obigen Sachen um das Ergebnis von Hackern?
Ich glaube eher nicht.
Ausserdem finde ich ein Projekt wie Eclipse auch sehr gut. Ist es
genial? Nicht unbedingt? Hat es ein genialer Hacker geschrieben? Glaube
ich auch nicht. Spontant kann ich kein einziges Projekt eines Hackers
nennen.

Es ist doch eher so, dass es bei den Produkten eines genialen Menschen
nicht darum geht das ein möglichst Umfangreiches Produkt zusammen kommt,
sondern dass jemand innerhalb weniger Zeilen ein schweres Problem löst.
Um als Beispiel zu sagen vielleicht das Berechnen der konvexen Hülle
einer 2d-Punktemenge O(nlogn) Vergleichen und nur konstant zusätzlichen
Speicheraufwand. Hat das was mit der Programmiersprache zu tun? Nein.

Dem wahren Hacker ist die Programmiersprache egal, denn die Idee ist
weit wichtiger, als die Unterstützung durch die Sprache. Natürlich kann
ich in Java nciht ohne weiteres eine Palletenrotation in der Grafikkarte
durchführen, natürlich kann ich in Phython keine Methoden überladen...
natürlich hat jede Sprache ihre Vor- und Nachteile und helfen mir oder
sind mir im Weg.

Ich habe zum Beispiel unter Assembler programmiert z.B. für den Pentium.
Warum, weil Pascal nicht schnell genug war, weil man so 3D-Operationen
in schnellen Pentiumbefehlen machen konnte... Im Prinzip reicht mir
Assembler für viele Algorithmen, für komplexe Programme aber nicht, denn
es ist zu schlecht strukturierbar. Mit Java habe ich endlich mal ein
gescheiteres Sichtbarkeitskonzept kennen gelernt und ist seit dem ein
sehr wichtiges Kriterium bei der Beurteilung einer Sprache für mich.
Dinge wie Objekte und Namespaces würde ich nur sehr ungerne wieder
aufgeben müssen. Gleichzeitig ist mir wichtig, dass die Sprache
möglichst einfach ist. Damit meine ich nicht nur, dass es nicht so viele
Schlüsselwörter gibt. Wichtig ist für mich dass die Sprache es mir
ermöglicht die Programme auch später noch verstehen zu können ohne dass
ich meinen genialen Gedanken, der zu dem Programm führte erstmal finden
muss.

Ich meine wenn ich da so an verschiedene Sprachen denke:

* Assembler ist mir zu unstrukturiert.
* Borland Pascal hat ein aufgesetztes OOP, kein wirkliches
Sichtbarkeitskonzept auf Prozedurebene
* Ada ist ein Spielkind der Compilerbauer, eine Sprache die deutlich zu
komplex geworden ist. OOP ist wirklich Teil der Sprache.
* Haskell ist so methematisch, dass man vor lauter Formeln leicht die
eigentlichen Programme aus dem Auge verliert. Gibt es dort
Sichtbarkeitskonzepte?
* Prolog hat auch keine Sichtbarkeitskonzepte, keine richtige
Strukturierung, ausserdem ist Auswertungsbedingt die Reihenfolge der
Klauseln wichtig, wird aber nur durch die Reihenfolge der Befehle bestimmt.
* Lisp/CLOS ist sicherlich einfach, aber auch hier fehlen mir die
Sichtbarkeitskonzepte. Strukturieren kann ich nur auf Listenebene... das
ist schade, denn die Idee von Lisp hat mir eigentlich immer ganz gut
gefallen. Letzlich konnte ich mich aber nie mit den Makros abfinden und
ständig über die Listenstrukturen informiert sein zu müssen kann auch
ganz schön nerven. Dann noch Mixins, fehlende sichtbarkeiten innerhalb
von Klassen, teilweise ungenügend spezifiziert....
* C kein OOP in der Sprache selbst, unzureichendes Sichtbarkeitskonzept,
die Sourcen verteilen sich willkürlich (je nach Programmierer
natürlich) in den Verzeichnissen, die Makros din ein notwendiges Übel.
* C++ hat letzlich ähnliche Probleme wie C. Auch wenn OOP in C++
deutlich besser ist als in C bleibt immernoch der Rest.
* C# scheint mir deutlich besser als C++ zu sein, aber die lieben Leute
von M$ haben ür mich ähnliche Fehler gemacht, wie die Leute von Ada.
Eine sprache wird nicht besser indem man einfach verschiedene Konzepte
in eine Sprache einfach reinpackt und zusieht wie der Programmierer
damit fertig wird.
* Ruby mehrere Module in einer Datei, load und require gefallen mir
überhaupt nicht, ein nachträgliches Verändern von Klassen sagt mir auch
nicht zu, desweiteren bin ich kein Fan von Mixins, vieles ist sehr
Gewöhnungsbedürftig wenn man nciht von Perl kommt.

Die obige Auflistung ist übrigens keinesfalls vollständig und vielleicht
tue ich der einen oder anderen Sprache auch ein wenig Unrecht, aber das
ist meine derzeitige Meinung. Ich hoffe ich habe wenigstens nichts all
zu falsches über diese Sprachen gesagt. Nach all dem schien mir
jedenfalls Java als Sprache nicht wirklich so schlecht zu sein und mit
groovy kann man vieles Ausgleichen. Leider hatte ich derzeit noch nicht
das Vergnügen Groovy ausreichend zu testen, sodass ich nicht wirklich
weiss was mich erwarten würde. Zumindest fühle ich mich derzeit nicht
von groovy so sehr abgeschreckt, wie von vielen anderen Sprachen.

Gruss theo
Stefan Matthias Aust
2004-07-30 13:13:51 UTC
Permalink
Post by Jochen Theodorou
Ok, was ist mit Java gemeint? Die Sprache selbst, die Plattform?
Immer wie es passt :) Nein, ich würde sagen: Sprache Java = Syntax von
Java + Standard-Bibliothek von Java. Java Plattform = Sprache +
Laufzeitumgebung, d.h. VM mit JIT, GC usw.
Post by Jochen Theodorou
Und wie steht es dann mit Jython? Ich meine damit hätte man doch die
Vorteile der Javaplattform und die Vorteile der Sprache Python in einem,
oder nicht?
Man hätte, würde sich das aber mit einem Performance-nachteil erkaufen,
der dadurch entsteht, dass die JVM keine gute Zielplattform für eine so
dynamische Sprache wie Python ist. Zudem sind bei der JVM-Plattform
eigentlich alle Sprachen außer Java sehr stiefmütterlich behandelt?
Wann wurde an Jython das letzte mal entwickelt? 2002, 2003? Niemand
scheint die Lust zu haben, jython auf den Stand von python zu bringen.

Der ursprüngliche Entwickler hat übrigens vorgestern IronPython
vorgestellt. Ein sehr effizientes Python (dank viel Knoff-Hoff) für
.NET. Jetzt arbeitet er im CLR-Team von Microsoft.

Eigentlich müsste man IronPython auch auf die JVM portieren können...
Post by Jochen Theodorou
Und wenn Java so schlecht ist, warum gibt es dann mit Batik etwas das
recht gut den SVG-Standard abdeckt und unter C nicht?
Ich dachte, die einzige vernünftige SVG-Implementierung ist von Adobe
(deren Plug-in für den IE) und die haben das höchstwahrscheinlich in C
oder C++ gemacht.
Post by Jochen Theodorou
Aber handelt es sich bei den obigen Sachen um das Ergebnis von Hackern?
Ich glaube eher nicht.
Ich glaube, einen "Hacker" im klassischen Sinne reizt die Umsetzung des
SVG-"Standards" und allgemein von W3C-"Standards" nicht sonderlich :)
Die Recommendations sind irgendwie alle in einem Stil geschrieben, der
es nicht einfach macht sie zu verstehen oder umzusetzen.
Post by Jochen Theodorou
Ausserdem finde ich ein Projekt wie Eclipse auch sehr gut. Ist es
genial? Nicht unbedingt? Hat es ein genialer Hacker geschrieben?
Einige. Die OTI-ler, die da beteiligt waren, sind schon außergewöhnlich
gut. Die ursprüngliche Leistung war aber eher VA4J als Eclipse und das
war auch nur der Versuch einer Portierung der Ideen aus Smalltalk auf
die Java-Welt.
Post by Jochen Theodorou
ich auch nicht. Spontant kann ich kein einziges Projekt eines Hackers
nennen.
Emacs würde mir einfallen. Rogue. Spacewars. Sketchpad.
Post by Jochen Theodorou
Dem wahren Hacker ist die Programmiersprache egal, denn die Idee ist
weit wichtiger, als die Unterstützung durch die Sprache.
Sehe ich anders. Kann ein Eskio von der Wüste träumen wenn in seiner
Sprache gar kein Begriff für eine wasserlose Sandwüste (nehme ich
einfach mal an ohne das zu wissen) existiert? Ich behaupte, er kann
nicht. Die Vorstellung wird somit von der Sprache beschränkt. Sich
durch eine ungenügende Sprache selbst zu beschränken, ist dumm. Und
Hacker sind nicht dumm... vermute ich mal. Wenn ich etwas in der Syntax
von Java hinschreibe, benutze ich Konzepte, die ich in Smalltalk gelernt
habe (und ärgere mich,d ass es so umständlich geht). Ich bilde mir ein,
es ist mein Vorteil, Smalltalk zu kennen. Daher sind mir die Sprachen
nicht egal, die ich kenne.
Post by Jochen Theodorou
Natürlich kann
ich in Java nciht ohne weiteres eine Palletenrotation in der Grafikkarte
durchführen, natürlich kann ich in Phython keine Methoden überladen...
natürlich hat jede Sprache ihre Vor- und Nachteile und helfen mir oder
sind mir im Weg.
Guck mal, du kennst die Idee einer Palettenrotation. Jemand, der nur
Java und trucolor-Bildschirme kennt, würde vielleicht gar nicht auf die
Idee kommen, dass Grafikkarten mit 256 Farbindizes da etwas bieten...
Post by Jochen Theodorou
* Lisp/CLOS ist sicherlich einfach, aber auch hier fehlen mir die
Sichtbarkeitskonzepte.
CommonLisp hat wohl eines der komplexesten Package-Konzepte, das man
sich denken kann. Deine Sichtbarkeitskonzepte gibt es dort.
Post by Jochen Theodorou
Strukturieren kann ich nur auf Listenebene...
Quatsch.
Post by Jochen Theodorou
Letzlich konnte ich mich aber nie mit den Makros abfinden und
ständig über die Listenstrukturen informiert sein zu müssen kann auch
ganz schön nerven.
Das musst du einfach so lange machen, bis es dir gefällt :)
Post by Jochen Theodorou
Dann noch Mixins, fehlende sichtbarkeiten innerhalb
von Klassen, teilweise ungenügend spezifiziert....
Äh? Gibt es in CommonLisp alles. Ach so, dir missfällt, dass es das
alles gibt? Du sagst ja auch, du magst keine Mixins bei Ruby.
Post by Jochen Theodorou
groovy kann man vieles Ausgleichen. Leider hatte ich derzeit noch nicht
das Vergnügen Groovy ausreichend zu testen, sodass ich nicht wirklich
weiss was mich erwarten würde. Zumindest fühle ich mich derzeit nicht
von groovy so sehr abgeschreckt, wie von vielen anderen Sprachen.
Bislang war es immer so, dass man auch direkt

throw new Error("...");

hätte hinschreiben können ... will sagen, das war mir noch zu buggy um
damit irgendwas anfangen zu können :)


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Peter Bruells
2004-07-30 13:13:34 UTC
Permalink
Post by Stefan Matthias Aust
Post by Jochen Theodorou
ich auch nicht. Spontant kann ich kein einziges Projekt eines
Hackers nennen.
Emacs würde mir einfallen. Rogue. Spacewars. Sketchpad.
Und nicht zu vergessen: TeX.

SCNR


Mal ehrlich: Zumindest die Denkweise "Es gibt kein gutes
Textsatzprogramm, also schreibe ich mich selbst eins", ist imho
hackertypisch.
Jochen Theodorou
2004-07-30 15:05:32 UTC
Permalink
[...]
Post by Stefan Matthias Aust
Post by Jochen Theodorou
Und wie steht es dann mit Jython? Ich meine damit hätte man doch die
Vorteile der Javaplattform und die Vorteile der Sprache Python in
einem, oder nicht?
Man hätte, würde sich das aber mit einem Performance-nachteil erkaufen,
der dadurch entsteht, dass die JVM keine gute Zielplattform für eine so
dynamische Sprache wie Python ist.
Du hast damit natürlich recht. Für mich besteht der Hauptvorteil von
Java in einer einigermassen plattformunabhänig machenden VM und einer
umfangreichen und standardisirten Bibliothek. Mono hätte das Potential
Java abzulösen, nur bin ich nicht sonderlich von M$s Verwicklung in die
Sache angetan. Scheint aber als müsste man auf kurz oder lang dieses
Risiko eingehen.
Post by Stefan Matthias Aust
Wann
wurde an Jython das letzte mal entwickelt? 2002, 2003? Niemand scheint
die Lust zu haben, jython auf den Stand von python zu bringen.
Nunja, die CVS-Version ist da schon etwas neurer.
Post by Stefan Matthias Aust
Der ursprüngliche Entwickler hat übrigens vorgestern IronPython
vorgestellt. Ein sehr effizientes Python (dank viel Knoff-Hoff) für
.NET. Jetzt arbeitet er im CLR-Team von Microsoft.
Eigentlich müsste man IronPython auch auf die JVM portieren können...
warum soll dass dann besser sein als jython?
Post by Stefan Matthias Aust
Post by Jochen Theodorou
Und wenn Java so schlecht ist, warum gibt es dann mit Batik etwas das
recht gut den SVG-Standard abdeckt und unter C nicht?
Ich dachte, die einzige vernünftige SVG-Implementierung ist von Adobe
(deren Plug-in für den IE) und die haben das höchstwahrscheinlich in C
oder C++ gemacht.
Kommt darauf an was du unter Vernünftig verstehst. Ich arbeite sehr oft
nicht unter Windows und wenn ich unter Widows arbeite fast nie mit dem
IE.... da benutze ich doch lieber Squirel. Das Plugin von Adobe ist
keine Alternative für mich.
Post by Stefan Matthias Aust
Post by Jochen Theodorou
Aber handelt es sich bei den obigen Sachen um das Ergebnis von
Hackern? Ich glaube eher nicht.
Ich glaube, einen "Hacker" im klassischen Sinne reizt die Umsetzung des
SVG-"Standards" und allgemein von W3C-"Standards" nicht sonderlich :)
Hätte ich auch nicht erwartet.
Post by Stefan Matthias Aust
Die Recommendations sind irgendwie alle in einem Stil geschrieben, der
es nicht einfach macht sie zu verstehen oder umzusetzen.
findest du? Ich eigentlich nicht.
Post by Stefan Matthias Aust
Post by Jochen Theodorou
Ausserdem finde ich ein Projekt wie Eclipse auch sehr gut. Ist es
genial? Nicht unbedingt? Hat es ein genialer Hacker geschrieben?
Einige. Die OTI-ler, die da beteiligt waren, sind schon außergewöhnlich
gut. Die ursprüngliche Leistung war aber eher VA4J als Eclipse und das
war auch nur der Versuch einer Portierung der Ideen aus Smalltalk auf
die Java-Welt.
Das weiss ich, deswegen habe ich das ja auch gefragt ;) eine gute Idee
aufzuwärmen macht einen doch nicht zum Hacker, oder?
Post by Stefan Matthias Aust
Post by Jochen Theodorou
ich auch nicht. Spontan kann ich kein einziges Projekt eines Hackers
nennen.
Emacs würde mir einfallen. Rogue. Spacewars. Sketchpad.
Emacs... naja. Für Rogue scheine ich einfach zu jung zu sein, sorry
SMA;) Und Sketchpad? mmh.. meinst du sowas
http://www.sun.com/960710/feature3/sketchpad.html

Mit Ideen ist das immer so eine Sache... wenn alle Welt sie benuntzt ist
es schwer deren Genialität zu erkennen. Wer findet denn heute Post-Its
noch genial? Oder die Benutzung von Fenster? Ich meine die wenigsten
werden heute die Newtonsche Himmelsmechanik als genial betrachten. Das
Rad war auch mal eine geniale Erfindung. Genial ist es wenn es
verblüfft, begeistert, in Erstaunen verstetzt. Wie soll etwas genial
sein, wenn es normal ist?
Genauso könnte in sehr vielen Projekte ein ziemlich genialer Code
schlummern, von dem niemand etwas weiss und so wird er entweder auf ewig
unbekannt bleiben, oder noch in vielen Jahren begeistern können ;)
Post by Stefan Matthias Aust
Post by Jochen Theodorou
Dem wahren Hacker ist die Programmiersprache egal, denn die Idee ist
weit wichtiger, als die Unterstützung durch die Sprache.
Sehe ich anders. Kann ein Eskio von der Wüste träumen wenn in seiner
Sprache gar kein Begriff für eine wasserlose Sandwüste (nehme ich
einfach mal an ohne das zu wissen) existiert? Ich behaupte, er kann
nicht. Die Vorstellung wird somit von der Sprache beschränkt.
Wenn ein Eskimo mal in einer wasserlosen Sandwüste war kann er davon
träumen auch wenn er keinen Begriff dafür in seiner Sprache hat. Wenn
ich jedoch niemals eine Beschreibung von einer wasserlosen Sandwüste
vernommen habe und auch niemals eine gesehen habe, dann kann ich auch
nicht von einer träumen, oder? Und ich eghe noch weiter indem ich
behaupte der Eskimo kann sich sehr wohl ein Bild von einer Wasserlosen
Sandwüste machen und vielleicht denkt er sogar es wäre das Paradies ;)
Wenn man eine unzureichende Sprache hat, dann erfindet man eine neue
oder ergänzt die Alte. Ich irgendwie muss eine Sprache ja auch
entstehen. Ich erinner mich bei solchen Dingen gerne an einen indischen
Methematiker, der 200 Jahre Mathematik nacherfinden musste, weil er eine
unzureichende Sprache hatte. Mit der Folge, dass seine Ideen zwar
teilweise benutzt werden, aber nicht folständig verstanden werden, weil
man plötzlich mit 2 mathematische Sprachen hat.... wenn mir nur sein
Name einfallen würde.. grml
Post by Stefan Matthias Aust
Sich
durch eine ungenügende Sprache selbst zu beschränken, ist dumm. Und
Hacker sind nicht dumm... vermute ich mal.
Das kommt weil eine Programmiersprache nicht gleich einer menschlichen
Sprache ist. Kann ich Klassen nutzen, wenn ich nur C habe? Ja. Kann ich
structs nutzen wenn ich nur Assembler habe? Ja. Ich will behaupten, dass
man diese Dinge nachbauen kann wenn man will. Das, was du mit
Beschränkung titulierst wage ich mit Unflexibiltät zu deuten.
Ein Hacker sollte doch mehr als nur eine Sprache kennen, oder?
Post by Stefan Matthias Aust
Wenn ich etwas in der Syntax
von Java hinschreibe, benutze ich Konzepte, die ich in Smalltalk gelernt
habe (und ärgere mich,d ass es so umständlich geht). Ich bilde mir ein,
es ist mein Vorteil, Smalltalk zu kennen. Daher sind mir die Sprachen
nicht egal, die ich kenne.
Davon war auch ncie die Rede. Es zwar vielleicht schlecht, aber es geht.
Post by Stefan Matthias Aust
Post by Jochen Theodorou
Natürlich kann
ich in Java nciht ohne weiteres eine Palletenrotation in der
Grafikkarte durchführen, natürlich kann ich in Phython keine Methoden
überladen... natürlich hat jede Sprache ihre Vor- und Nachteile und
helfen mir oder sind mir im Weg.
Guck mal, du kennst die Idee einer Palettenrotation. Jemand, der nur
Java und trucolor-Bildschirme kennt, würde vielleicht gar nicht auf die
Idee kommen, dass Grafikkarten mit 256 Farbindizes da etwas bieten...
und jemand der nur 2d-Grfikkarten kennt würde nie denken, dass es 3D
gibt? Sorry, das kann ich nicht gelten lassen.
Post by Stefan Matthias Aust
Post by Jochen Theodorou
* Lisp/CLOS ist sicherlich einfach, aber auch hier fehlen mir die
Sichtbarkeitskonzepte.
CommonLisp hat wohl eines der komplexesten Package-Konzepte, das man
sich denken kann. Deine Sichtbarkeitskonzepte gibt es dort.
Packges schon, notgedrungen, aber auch sowas wie private? Kann natrülich
sein, dass mir das einfach nie untergekommen ist.
Post by Stefan Matthias Aust
Post by Jochen Theodorou
Strukturieren kann ich nur auf Listenebene...
Quatsch.
Ohne Kommentar?
Post by Stefan Matthias Aust
Post by Jochen Theodorou
Letzlich konnte ich mich aber nie mit den Makros abfinden und ständig
über die Listenstrukturen informiert sein zu müssen kann auch ganz
schön nerven.
Das musst du einfach so lange machen, bis es dir gefällt :)
Demnach musst du Java auch nur solange machen bis es dir gefällt?
Post by Stefan Matthias Aust
Dann noch Mixins, fehlende sichtbarkeiten innerhalb
Post by Jochen Theodorou
von Klassen, teilweise ungenügend spezifiziert....
Äh? Gibt es in CommonLisp alles.
einschliesslich ungenügend spezifierter Funktionen, ja ;)
Post by Stefan Matthias Aust
Ach so, dir missfällt, dass es das
alles gibt? Du sagst ja auch, du magst keine Mixins bei Ruby.
Du magst Mixins, ich nicht. Ich meine viele C++ler finden auch
Mehrfachvererbung gut, ich halt nicht.

Gruss theo
Stefan Matthias Aust
2004-07-31 10:35:27 UTC
Permalink
Post by Jochen Theodorou
Post by Stefan Matthias Aust
Eigentlich müsste man IronPython auch auf die JVM portieren können...
warum soll dass dann besser sein als jython?
Bessere Optimierung durch Erfahrungen mit der Vorversion; aktueller
Pythonstand; aktuelles, vielleicht weitergeführtes Projekt.
Post by Jochen Theodorou
Post by Stefan Matthias Aust
Ich dachte, die einzige vernünftige SVG-Implementierung ist von Adobe
Kommt darauf an was du unter Vernünftig verstehst. Ich arbeite sehr oft
nicht unter Windows und wenn ich unter Widows arbeite fast nie mit dem
IE.... da benutze ich doch lieber Squirel. Das Plugin von Adobe ist
keine Alternative für mich.
Nun, ich nehme auch nicht den IE, andere Plugins habe ich nie
ausprobiert, für mich persönlich spielt SVG daher einfach gar keine Rolle.
Post by Jochen Theodorou
Emacs... naja. Für Rogue scheine ich einfach zu jung zu sein, sorry
SMA;) Und Sketchpad? mmh.. meinst du sowas
http://www.sun.com/960710/feature3/sketchpad.html
Ja. Emacs ist meines Wissen älter als Rogue. Aber Ken Arnold hat für
Rogue extra curses entwickelt, um einem 80x24-Terminal etwas wie eine
primitive Blockgrafik abzuringen. Ich finde, dass ist schon eine
Leistung :) Für Rogue siehe
http://www.the-underdogs.org/game.php?id=1624, aber das ist nicht das
Original, sondern eine moderne DOS-Version.
Post by Jochen Theodorou
Ich meine die wenigsten
werden heute die Newtonsche Himmelsmechanik als genial betrachten.
Die wurde ja (jedenfalls nach der landläufigen Meinung, frage mal die
Söhne des Äthers für eine Alternativmeinung) ewiger erfunden als mehr
entdeckt oder erkannt :)
Post by Jochen Theodorou
Wenn ein Eskimo mal in einer wasserlosen Sandwüste war kann er davon
träumen auch wenn er keinen Begriff dafür in seiner Sprache hat.
Ich behaupte, er kann dann nicht anders, als dafür einen Begriff zu
finden. Muss man etwas, um es begreifen zu können, erst bezeichnen?
Ich weiss es nicht.
Post by Jochen Theodorou
behaupte der Eskimo kann sich sehr wohl ein Bild von einer Wasserlosen
Sandwüste machen und vielleicht denkt er sogar es wäre das Paradies ;)
Es ist fremd, ungewohnt, heiß, vielleicht bedrohlich, also eher wohl die
Hölle...
Post by Jochen Theodorou
Das kommt weil eine Programmiersprache nicht gleich einer menschlichen
Sprache ist. Kann ich Klassen nutzen, wenn ich nur C habe? Ja.
Und ich behaupte: Nein. Du kannst das nur dann wissentlich, wenn du das
Konzept kennst. Um es zu kennen, musst du es erlernt haben, wahrschein
erklärt bekommen haben oder selbst erfahren, in jedem Fall war eine
Sprache beteiligt. Es besteht die Chance, dass du aus dem nichts -
kreativ - das Konzept selbst entwickelt hast, aber um dir dessen bewusst
zu sein, musst du wieder den Begriff dafür haben. Und das halte ich für
viel unwahrscheinlicher. Also ist die Sprache wichtig, denn so kannst
du schnell neue Ideen aufgreifen. Kennst du die andere Sprache dieser
Ideen nicht, bleiben sie dir verschlossen.
Post by Jochen Theodorou
und jemand der nur 2d-Grfikkarten kennt würde nie denken, dass es 3D
gibt? Sorry, das kann ich nicht gelten lassen.
Würde er 3D nicht aus dem "richtigen" Leben kennen, definitiv. Kannst
du dir eine 4te Dimension vorstellen? Oder gar die 11 oder 26, die die
String-Theorie postuliert? Die erste Reaktion wäre IMHO, alles quatsch.

Um auf die Grafik zurückzukommen. Ein durschschnittlicher
Spieleentwickler vor 20 Jahren hätte wahrscheinlich gesagt, Computer
schaffen es nie fotorealistische Geschichten in Echtzeit zu berechnen
und das für unmöglich gehalten. Nachdem wir alle Shrek gesehen haben
(und dafür natürlich Antz und so ein paar unbedeutende
Disney-Produktionen über lebendes Spielzeug und Insekten) können wir uns
das vielleicht eher vorstellen. Aber ich merke, mein Argument hinkt, da
es wenig mit Sprache sondern allgemein Vorstellungskraft zu tun hat.
Post by Jochen Theodorou
Packges schon, notgedrungen, aber auch sowas wie private? Kann natrülich
sein, dass mir das einfach nie untergekommen ist.
Was aus einem Package nicht exportiert wird, ist privat.
Post by Jochen Theodorou
Post by Stefan Matthias Aust
Post by Jochen Theodorou
Strukturieren kann ich nur auf Listenebene...
Quatsch.
Ohne Kommentar?
Ja.
Post by Jochen Theodorou
Post by Stefan Matthias Aust
Das musst du einfach so lange machen, bis es dir gefällt :)
Demnach musst du Java auch nur solange machen bis es dir gefällt?
Manchmal befürchte ich, diesen Punkt habe ich vor einiger Zeit überwunden :)


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Jochen Theodorou
2004-07-31 23:42:33 UTC
Permalink
[...]
Post by Stefan Matthias Aust
Post by Jochen Theodorou
behaupte der Eskimo kann sich sehr wohl ein Bild von einer Wasserlosen
Sandwüste machen und vielleicht denkt er sogar es wäre das Paradies ;)
Es ist fremd, ungewohnt, heiß, vielleicht bedrohlich, also eher wohl die
Hölle...
Nun wir können schwerlich einen imaginären Eskiom fragen.
Post by Stefan Matthias Aust
Post by Jochen Theodorou
Das kommt weil eine Programmiersprache nicht gleich einer menschlichen
Sprache ist. Kann ich Klassen nutzen, wenn ich nur C habe? Ja.
Und ich behaupte: Nein. Du kannst das nur dann wissentlich, wenn du das
Konzept kennst. Um es zu kennen, musst du es erlernt haben, wahrschein
erklärt bekommen haben oder selbst erfahren, in jedem Fall war eine
Sprache beteiligt.
Mag ja sein, aber muss das eine Programmiersprache sein? Und wer hat
diese Sprache denn entwickelt? Sie ist ja nicht vom Himmel gefallen.
Post by Stefan Matthias Aust
Es besteht die Chance, dass du aus dem nichts -
kreativ - das Konzept selbst entwickelt hast, aber um dir dessen bewusst
zu sein, musst du wieder den Begriff dafür haben.
Um mir bewusst zu sein, dass ich da jetzt Klassen habe ja. Um sie zu
nutzen, aber nein.
Post by Stefan Matthias Aust
Und das halte ich für viel unwahrscheinlicher.
Wir reden doch von Genies ;)
Post by Stefan Matthias Aust
Also ist die Sprache wichtig, denn so kannst
du schnell neue Ideen aufgreifen. Kennst du die andere Sprache dieser
Ideen nicht, bleiben sie dir verschlossen.
Um das mal klar zu stellen... es ist sicherlich gut verschiedene
Konzepte verschiedener Sprachen kennengelernt zu haben. Eine andere
Sprache sprechen zu können erweitert den Horizont und das gilt für
Programmiersprachen als auch für echte natürliche Sprachen.
Post by Stefan Matthias Aust
Post by Jochen Theodorou
und jemand der nur 2d-Grfikkarten kennt würde nie denken, dass es 3D
gibt? Sorry, das kann ich nicht gelten lassen.
Würde er 3D nicht aus dem "richtigen" Leben kennen, definitiv.
Ach... auf einmal zahlt das richtige Leben doch?
Post by Stefan Matthias Aust
Kannst
du dir eine 4te Dimension vorstellen? Oder gar die 11 oder 26, die die
String-Theorie postuliert? Die erste Reaktion wäre IMHO, alles quatsch.
Trotzdem haben Mathematiker und Physiker sich das ausgedacht.Die nötige
Sprache dazu haben sie erfunden... und jetzt?

[...]
Post by Stefan Matthias Aust
Post by Jochen Theodorou
Packges schon, notgedrungen, aber auch sowas wie private? Kann
natrülich sein, dass mir das einfach nie untergekommen ist.
Was aus einem Package nicht exportiert wird, ist privat.
Naja, ich würde es eher mit dem protected aus Java vergleichen,
allerdings ohne Rücksicht auf die Vererbung

Gruss theo
Wanja Gayk
2004-07-30 19:15:40 UTC
Permalink
Stefan Matthias Aust said...

[LISP]
Post by Stefan Matthias Aust
Post by Jochen Theodorou
ich auch nicht. Spontant kann ich kein einziges Projekt eines Hackers
nennen.
Emacs würde mir einfallen. Rogue. Spacewars. Sketchpad.
Weil ich grade so gut in Schwung bin, um eure Bandbreite mit etwas
humorigem zu verschwenden:

Zitat von einem gewissen "Simon":
"Emacs und Sendmail sind zwei tolle Betriebssysteme. Ihnen fehlen nur
zwei Dinge: Ein Mailserver und ein gescheiter Editor!"
Post by Stefan Matthias Aust
Guck mal, du kennst die Idee einer Palettenrotation. Jemand, der nur
Java und trucolor-Bildschirme kennt, würde vielleicht gar nicht auf die
Idee kommen, dass Grafikkarten mit 256 Farbindizes da etwas bieten...
Ack. Zu diesem "Back to the roots" denken muss man auch wieder zu
unorthodoxen Methoden neigen. IMO kommen viele etwas "verrückte" Ideen
von "Frsichlingen", die noch nicht so sehr geprägt sind.

Gib einem Menschen ohne viel Computererfahrung einen Stift und sage ihm,
er möge eine Oberfläche für ein Programm malen, das ein xy macht.
Er wird sich wohl schlecht artikulieren können, aber vielleicht hätte er
eine Abgefahrene Idee, wie z.B. Icons verschieben ohne auf Knopf zu
drücken: Die Icons wären wie Mühlensteine auf einem Brett und mit dem
Mauszeiger angefahren bewegen sie sich :-). Und je nach dem, wo man das
Teil platziert, ergibt sich eine andere Einstellung. Abakusmässig :-).
Okay, ist bestimmt unbenutzbar und kommt mir gerade so durch die
Gehirnwindungen geschossen, aber: auf so ne Idee kommt man nicht, wenn
man immer nur in Klickorgien denkt.

Gruß,
-Wanja-
--
"Gewisse Schriftsteller sagen von ihren Werken immer: 'Mein Buch, mein
Kommentar, meine Geschichte'. [..] Es wäre besser, wenn sie sagten:
'unser Buch, unser Kommentar, unsere Geschichte'; wenn man bedenkt, dass
das Gute darin mehr von anderen ist als von ihnen." [Blaise Pascal]
Wanja Gayk
2004-07-30 19:02:28 UTC
Permalink
Jochen Theodorou said...
Post by Jochen Theodorou
* Ada ist ein Spielkind der Compilerbauer, eine Sprache die deutlich zu
komplex geworden ist. OOP ist wirklich Teil der Sprache.
Da schiesst mir wieder ein netter Pun von meiner so geliebten "Real
programmers don't use Pascal" Seite in's Gedächnis:

| As you can tell, many of the world's Real Programmers work for the
| U.S. Government-- mainly the Defense Department. This is as it should
| be. Recently, however, a black cloud has formed on the Real Programmer
| horizon. It seems that some highly placed Quiche Eaters at the Defense
| Department decided that all Defense programs should be written in some
| grand unified language called "ADA" ((C), DoD). For a while, it seemed
| that ADA was destined to become a language that went against all the
| precepts of Real Programming-- a language with structure, a language
| with data types, strong typing, and semicolons. In short, a language
| designed to cripple the creativity of the typical Real Programmer.
| Fortunately, the language adopted by DoD had enough interesting
| features to make it approachable-- it's incredibly complex, includes
| methods for messing with the operating system and rearranging memory,
| and Edsger Dijkstra doesn't like it

[Quelle: http://www.pbm.com/~lindahl/real.programmers.html ]

Die Seite ist einfach köstlich :-)

Gruß,
-Wanja-
--
"Gewisse Schriftsteller sagen von ihren Werken immer: 'Mein Buch, mein
Kommentar, meine Geschichte'. [..] Es wäre besser, wenn sie sagten:
'unser Buch, unser Kommentar, unsere Geschichte'; wenn man bedenkt, dass
das Gute darin mehr von anderen ist als von ihnen." [Blaise Pascal]
Jochen Theodorou
2004-07-31 23:45:36 UTC
Permalink
Post by Wanja Gayk
Jochen Theodorou said...
Post by Jochen Theodorou
* Ada ist ein Spielkind der Compilerbauer, eine Sprache die deutlich zu
komplex geworden ist. OOP ist wirklich Teil der Sprache.
ups mir fällt gerade auf, dass da ein nicht verschluckt wurde von mir...
ich wollte natürlich sagen OOP ist *nicht* wirklich ein Teil der Sprache ;)

[...]
Post by Wanja Gayk
| it's incredibly complex, includes
| methods for messing with the operating system and rearranging memory,
| and Edsger Dijkstra doesn't like it
[Quelle: http://www.pbm.com/~lindahl/real.programmers.html ]
Die Seite ist einfach köstlich :-)
werde ich mir bei Gelegenheit unbedingt mal ansehen. Tja und wie hab ich
Dijkstra kennen gelernt? Natürlich mit einer Implementierung von ein
paar Algorithmen von ihm in Ada ;)

Gruss theo
Karsten Lentzsch
2004-07-30 12:46:02 UTC
Permalink
Stefan Matthias Aust schrieb etwas.
Mir fällt als Ex-Lisper und Ex-Smalltalker dazu ein:

Bespricht man solche Dinge nicht besser beim Frisör?
Ich finde die Aussagen so wertvoll wie folgende:

"Es gibt keine gute Gestaltung in Lisp und Smalltalk."

"In Ingalls' Arbeiten steckt weniger Saft als im
Satz von Feit-Thompson, dass Gruppen ungerader
Ordnung auflösbar sind."

"Alle Smalltalk-Pattern und -Klassen sind blass
gegen die Tonartwechsel in 'Tristan und Isolde'".

"Bei John Coltranes 'Dear Lord' haben mehr Menschen
geweint, als jemals über eine Smalltalk-Programm."

"Zwei Sätze von Rousseau haben die Welt mehr bewegt,
als alle angeblichen Programmiergenies zusammen.

"Meine Oma sieht mit Haarklammern besser aus
als jedes Lisp-Klammergebirge."

"Mozart hat sich geweigert Blockflöten zu blasen;
genial konnte er nur sein an Orgel, Piano und Viola."
(stimmt nicht)

"Ehre kriegt nur, wem Ehre gebührt *und* die
richtige Sprache spricht."

"3 + 4 = 7"

- Karsten
Stefan Matthias Aust
2004-07-30 13:21:09 UTC
Permalink
Post by Karsten Lentzsch
Bespricht man solche Dinge nicht besser beim Frisör?
Dies ist der Frisör.


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Stefan Matthias Aust
2004-07-30 13:27:53 UTC
Permalink
Post by Stefan Matthias Aust
Post by Karsten Lentzsch
Bespricht man solche Dinge nicht besser beim Frisör?
Dies ist der Frisör.
Will sagen: Diese Community besteht nicht nur aus Fragen und Antworten,
wie man man besten Layouts definiert. Das wäre langweilig. Es geht um
Spass. Um kontroverse Diskussionen, die Spass machen. Um das Bilden
einer Meinungen, vielleicht das Ändern einer Meinung. Es geht darum,
neues zu lernen (wie konnte ich nur TeX vergessen - zumindest hatte ich
heute schon mal Knuth erwähnt) oder andere Dinge kennenzulernen.
Vielleicht zu verstehen, wer warum wie denkt. Ach ja, und natürlich um
Spass an der Provokation.


bye
--
Stefan Matthias Aust // "Zweifel sind der Ansporn des Denkens..." -U
Peter Luschny
2004-07-30 14:04:43 UTC
Permalink
Post by Stefan Matthias Aust
Post by Karsten Lentzsch
Bespricht man solche Dinge nicht besser beim Frisör?
Dies ist der Frisör.
Yes. Und die Antwort ist:
Kein Genie würde jemals Programmierer. ;-)

Gruss Peter
Lesen Sie weiter auf narkive:
Loading...