Neue Programmiersprache für Anfänger

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ganz nett? Also mir tuts beim lesen fast physisch weh, das ist wie LOLCODE, nur eben nicht mehr lustig.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Leonidas hat geschrieben:Ganz nett? Also mir tuts beim lesen fast physisch weh, das ist wie LOLCODE, nur eben nicht mehr lustig.
Hm vielleicht ist es psychologisch auch von Vorteil, wenn das ne Fremdsprache ist. Dann begreift man das eher als "Code" - im Sinne von codiert - und analysiert das nicht :twisted:

@pudeldestodes:
Nein, ich sehe das aehnlich wie str1442, aber nicht im Sinne von schoener (aber ich bin mir sicher, dass er damit auch nicht auf 'cooler' raus wollte), sondern vor allem im Sinne von geeigneter. Englisch hat sich aufgrund seiner Verbreitung in technischen Bereichen in den Fachbegriffen einfach festgesetzt - vllt auch weil die Wortschoepfungen aufgeschlossener sind als andere Sprachen - und gleichzeitig neue ausgebildet, d.h. du kannst Sachverhalte in Englisch besser und praeziser beschreiben, weil die Fachbegriffe vorhanden und in Benutzung sind. Ob das daran liegt, dass Englisch 'einfacher' ist, lass ich mal unkommentiert, das sollen uns Linguisten erzaehlen - wo sind die denn nur? Sind doch sonst so vertreten.

Na wenn das kein sinniger Post war .... :roll:
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ist es wirklich egal, ob deutsch oder englisch oder eine andere Sprache als Basis für die Befehlswörter benutzt wird? Ich würde sagen, nein. Bei diesem Beispiel muss ich deutlich mehr Vokabeln lernen:

Code: Alles auswählen

qzatal ba afqoltabo [cobata hotlux] [
    xoqlot wetoqitlao cobata [wetoqitlao hotlux qzatal cobata hotlux]
]
Dafür gibt es jetzt keinen Streit mehr, ob `ba` besser passt oder als `zha`, da komplett ein Sprachgefühl fehlt. Vielleicht wussten die Kulturen mit einer Bildersprache doch mehr als wir. Wäre es vielleicht einfacher, in ägyptischen Hieroglyphen (also visuell) zu programmieren? Die Forschung ging ja mal eine Zeit in diese Richtung, aber durchgesetzt hat's sich auch nicht...

Stefan
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Du kannst in jeder Sprache alles machen. ... Fremdsprachen sind wichtig, aber wir müssen jetzt wirklich nicht so tun, als könnte man alles schöne/interessante nur mit anderen Sprachen erreichen.
Was anderes hab ich auch nie behauptet (wobei ich deutlich besser formulieren hätte können :? - "klingt" war eigentlich nicht konkret auf den Klang bezogen, sondern auf die Konstruktion mittels Deutsch... ich schreibs ja jetzt sowieso in aller Ausführlichkeit). Natürlich, solang man nur Wörter austauschen muss ist es relativ egal welche Sprache man nun benutzt. Aber das ist eben nicht alles. Die Befehlswörter von Teuton sind allerdings nicht die besten. "zurück" für return? Das ist nicht die eigentliche Aussage. "Rückgabe" wäre besser gewesen. raise -> behandle? yield -> ergibt? usw. Deswegen fand ich es suboptimal.

Der Rest meiner Aussage weniger auf die speziellen Befehlswörter von Teuton denn auf das Programmieren mit einer Sprache allgemein, nicht auf die speziellen Wortersetzungen von Teuton.

Wenn ich mit einem Objekt agiere, tue ich das nur über seine Attribute. Dennoch muss ich die Attribute logisch einordnen können, deswegen muss ich ihnen Namen geben, genau wie dem Objekt selbst auch. Ein Attribut ist wieder selbst ein Objekt, aber jedes Objekt kann man logisch in eine andere Kategorie stecken: Ist es eine Fähigkeit des Objektes? Ist es eine pure Information? Sind es abstraktere Konzepte, die sich nicht konkret auf eine Aufgabe beziehen und deswegen universell erkennbar sein müssen, entweder eine Nummer oder eine Gruppe von *gleichartigen* Objekten (-> Liste)? Oder ist eine Gruppierung andersartiger Objekte, die sich nicht verändert (-> Tupel als C-struct Äquivalent)?

Anhand dieser Kriterien muss ich die entsprechenden Objekte und ihre Relationen untereinander möglichst gut benennen. Bei gleichartigen Konzepten oder bei Verweis auf ein bestimmtes Konzept sollte das sofort und ohne Vernebelung am Namen allein ersichtlich sein, die Dokumentation sollte die entsprechenden Begriffe auch verwenden. Das funktioniert dann am besten, wenn ich genügend Wörter habe, die das Konzept direkt beschreiben, ohne das ich andauernd irgendwas der verwendeten natürlichen Sprache wegen irgendwie umbauen und / oder beschreiben muss.

Beispiel im re Modul: "Try to apply the pattern at the start of the string, returning a match object, or None if no match was found." ist die Dokumentation für re.match(). Wie übersetze ich das direkt ins Deutsche? "Versuche das Muster am Anfang der Zeichenkette anzuwenden, gebe ein Übereinstimmungsobjekt zurück - oder das Null Objekt, wenn keine Übereinstimmung gefunden wurde." Wie heißt dann die Funktion? Direkt übersetzt, "stimmt_überein" (oder "übereinstimmen", was sich aber dann noch weniger nach Methode anhört als das obige "ausführen" von sma (Inkonsistenz beginnt, zu erscheinen, sollte man eine Sprache mit mit diesen Konventionen für Standardnamen erstellen) und "übereinstimmung" fällt flach denn das könnte auch ein Datenattribut sein und Verwirrung stiften wäre schlecht). Das ist in der Form auch wieder unpassend. Nun könnte ich versuchen, dafür etwas besseres zu finden, während meine Match Klasse immer noch Übereinstimmung heißt (was ja recht gut passt). Aber was nehme ich anstatt? Ich könnte jetzt "stimmt_überein_mit" benutzen, und schon habe ich ein nettes Füllwort eingeführt, das nur aus dem Grund da ist, weil die Sprache es eigentlich verlangt. Es trägt gar nichts dazu bei, das Konzept auszudrücken. Und ich bin mir ziemlich sicher: je weiter man das treibt, desto inkonsistenter wird die Namensgebung. Also entweder versuchen irgendwie eine Regelung einzuführen, das dann irgendein heruntergeregeltes Deutsch ist, oder damit umgehen. Das war jetzt nicht das beste Beispiel, aber naja.

Englisch lässt sich mit weniger Aufwand zusammenbauen und man kann präziser formulieren. Speziell in der Programmierung, auch, aber nicht nur, der vielen Fachbegriffe wegen.

Ich halte Englisch nicht für überlegen oder Deutsch für dumpf; ich rede und schreibe sehr gerne in beiden Sprachen. Nur ist imho Englisch für diesen speziellen Zweck geeigneter. Und aufgrund der Präzision erlebe ich auch viele Diskussionen in englischen Foren (nicht nur Programmierungsforen) als eben das: präziser, auf den Punkt gebrachter.

@sma:

Ich lese deine (sehr lehrreichen) Beiträge immer sehr gerne, wird Zeit das ich mich mal dafür bedanke: Also, Danke! :)
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Wieso "übereinstimmen"? Sinniger fände ich "treffen". Die Funktion `triff()` liefert dann ein `Treffer`-Objekt zurück. Das ist prägnant und passt IMHO genauso.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Str1442, danke. Es macht mir Spaß, derartige Artikel zu schreiben, aber ein Dankeschön freut mich immer und drängt mich mehr, mal einen Blog aus diesen Artikeln zu füllen.

Bei einer Übersetzung ist glaube ich der Trick, dass man nicht die Wörter übersetzen darf, sondern schauen muss, dass man den Sinn trifft. Genau im Englischen zum Teil Wörter komplett umdefiniert werden (ich nutze wirklich eine Mole oder einen Kater, um in Java Web-Anwendungen zu bauen?) muss man sich das auch im Deutschen trauen.

Variante 1 (noch nahe an dem Original): Versuch das Muster auf den Anfang der Zeichenkette anzuwenden und antworte mit einem "Treffer"-Objekt oder mit "nichts", wenn das Muster nicht passt.

Variante 2 (näher an der Funktion, IMHO): Antworte mit einem "Treffer"-Objekt, wenn das Muster zum Anfang der Zeichenkette passt. Antworte andernfalls "nichts".

Code: Alles auswählen

wenn treffer ist vergleiche muster zeichenkette [
    schreibe ["Habe" gruppe 1 treffer "gefunden"]
]
Stefan
pudeldestodes
User
Beiträge: 65
Registriert: Samstag 9. Juni 2007, 23:45

str1442 hat geschrieben: Was anderes hab ich auch nie behauptet
Ich habe ein wenig wild um mich getreten und mich eigentlich nur an dem einen Wort "generell" aufgehängt. Ich bin ein wenig gereizt, was diese Übersetzungssachen angeht, weil ich in meinem Umfeld dauernd mit elitären "Übersetzung = blöd"-Leuten zu tun habe und dann kommt manchmal auch ein nicht zu 100% passender Beitrag heraus. Nicht persönlich nehmen :)
problembär

Perl bietet übrigens einen sog. Code-Filter, mit dem man Perls Syntax komplett ummodelieren kann.

Damian Conway, einer der angesehensten Perl-Autoren, hat damit das Modul "Lingua::Romana::Perligata " erstellt, mit dem man Perl-Code in Latein schreiben kann.

Das nur mal an alle Spaßbremser und Bedenkenträger hier, die (wie fast immer hier) sagen, "das ist doch blöd", wenn mal einer eine Idee hat.

Gruß
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

problembär hat geschrieben:Das nur mal an alle Spaßbremser und Bedenkenträger hier, die (wie fast immer hier) sagen, "das ist doch blöd", wenn mal einer eine Idee hat.
Python 2.x hat das doch auch. Kannst ja gerne Lingua::Romana::Perligata portieren
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

@problembär: Wenn es nur auch praktische Relevanz hätte ... ;)
Antworten