Syntax im C-Stil == Schlecht?
-
Die Syntax ist zu umfangreich und komplex. Schlüsselwörter an sich finde ich schon sehr problematisch, daher kommen auch ständig die foreach-Diskussionen (uä).
C++ fügt der Syntax noch mal enorm viel hinzu. Das ist alles sehr komplex und umfangreich.
Am coolsten sind eh Programmiersprachen, bei denen der Quelltext gleich einem Datenform entspricht (zB Lisp)
-
kingruedi schrieb:
Die Syntax ist zu umfangreich und komplex. Schlüsselwörter an sich finde ich schon sehr problematisch, daher kommen auch ständig die foreach-Diskussionen (uä).
C++ fügt der Syntax noch mal enorm viel hinzu. Das ist alles sehr komplex und umfangreich.
Am coolsten sind eh Programmiersprachen, bei denen der Quelltext gleich einer Datenform entspricht (zB Lisp)
Einer Datenform? Was genau meinst du damit? In Lisp ist ja alles eine Liste... oder so. Habe da nie einen Vorteil sehen können, war nur saumäßig unübersichtlich. Was bringt einem das?
Und warum sind Keywords so schlecht? Wenn eine Sprache komplex und umfangreich ist, dann hilft einem die Syntax da doch auch nicht gegen, oder? (Über Lisp weiß ich fast nichts.)
-
Der Vorteil ist ganz einfach, dass du den Quellcode wie normale Daten bearbeiten kannst. Wenn du dadrin keinen Vorteil sehen kannst, dann kann ich dir auch nicht helfen
-
Jo, das schon, nur ist das imho eher ein technischer Aspekt. Mir geht es ausschließlich um die Syntax. Sowas wäre in C++ o.ä. wohl nicht möglich.
-
gogno schrieb:
Jo, das schon, nur ist das imho eher ein technischer Aspekt. Mir geht es ausschließlich um die Syntax. Sowas wäre in C++ o.ä. wohl nicht möglich.
genau deshalb geht es um die syntax: die syntax von lisp erlaubt dir sachen, die in c++ ziemlich ausarten würden. (zum schreiben eines lisp-interpreters, zum beispiel.)
-
Wieso fühl ich mich jetzt nur unangenehm an XSLT erinnert?
-
sarfuan schrieb:
Wieso fühl ich mich jetzt nur unangenehm an XSLT erinnert?
Das unangenehme an XSLT ist doch nur XML.
@gogno
aber das ist ja eine fundamentale Sache für die Syntax.
-
Was ich damit sagen wollte ist, dass solche Features nicht in solche Sprachen wie C++ passen. Da fehlen dann übersichtliche Syntax und Performance.
Kann aber auch Quatsch sein.
-
JBeni schrieb:
Einer der Vergleiche die immer wieder gerne gezeigt werden.
Pascal (übersichtlich):Function StringToUppercase(Zeile: String): String; type Kleinbuchstaben = ['a'..'z']; var temp: String; i : Byte; begin temp:=zeile; for i:=1 to Length(zeile) do if zeile[i] in Kleinbuchstaben then temp[i]:=chr(ord(temp[i])-32); StringToUppercase:=temp; end;
und C (weniger übersichtlich, aber immernoch verständlich):
char * StringToUpper(char * zeile) { static char temp [256]; int i; for (i=0; zeile[i]!=0 && i<256; i++) if (zeile[i]>='a' && zeile[i]<='z') temp[i]=(char) zeile[i]-32; else temp[i]=zeile[i]; temp[i]=0; return temp; }
Und noch die C++-Version:
std::transform(str.begin(), str.end(), str.begin(), std::tolower);
irgendwie wirkt die auch mich am kompaktesten.
-
Jester: Ist nicht standardkonform.
-
Du hast einfach nur nochmal einen Funktionsaufruf drum herum gebastelt und diesen als schönere Syntax dargestellt. Ich nehme an, das war nicht deine Absicht. Du wolltest dich sicherlich mit uns darüber unterhalten, wie std::transform und std::tolower intern syntaktisch gut aussehen.
-
Wie kommt die achso so tolle Pascalversion mit z.B. ä, ö und ü klar?
-
kingruedi schrieb:
sarfuan schrieb:
Wieso fühl ich mich jetzt nur unangenehm an XSLT erinnert?
Das unangenehme an XSLT ist doch nur XML.
Ich denke du stehst auf Sprachen, deren Quellcode einer Datenform entsprechen?
-
nman schrieb:
Schon alleine deswegen, weil sie viel Ballast und syntaktischen Müll mit sich bringt.
eher das gegenteil davon stimmt.
nman schrieb:
Und dann natürlich noch deswegen.
die finden es bestimmt witzig, sowas im nachhinein zu behaupten....oder vielleicht ist es denen auch peinlich, aber bestimmt waren sie damals ziemlich überzeugt davon und stolz auf das, was sie gebastelt haben.
nman schrieb:
for(;P("\n"),R--;P("|"))for(e=C;e--;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
probier's mal mit aussagekräftigen variablennamen und mach nicht alles in eine zeile. wenn du das nicht hinbekommst, dan frag mal im ansi-c forum ob dir das einer umschreibt.
btw: c ist eine art portable assemblersprache. asm-sprachen sind eh' etwas kryptisch. c-compiler lassen sich leicht auf/für die verschiedensten prozessoren portieren. klar ist aus user-sicht die syntax vieler anderer sprachen angenehmer, aber viele low-level sachen gehen halt nicht damit. ...und wer für z.b. .NET entwickelt und c-syntax nicht leiden kann, der kann dafür ja auch visual bräsig nehmen.
-
net: *plonk* Ich habe ja schon viele dämliche Posts von Dir gelesen, aber dass Du offenbar nichtmal bemerkt hast, dass das aus der "C&Humor?"-Sektion stammt überrascht sogar mich. (Entweder das, oder Du trollst einfach auf Teufel komm raus, beides spricht nicht für Dich.)
-
sarfuan: Datenform-Quellcode ist ja wohl nicht das einzige Kriterium zur Beurteilung einer Sprache. Oder glaubst Du, dass jeder Anhänger von eher minimalistischen Sprachen auf Brainfuck steht?
-
scnr schrieb:
Jester: Ist nicht standardkonform.
Das ist die miserable C-Version von JBeni auch nicht.
-
nman schrieb:
(Entweder das, oder Du trollst einfach auf Teufel komm raus, beides spricht nicht für Dich.)
ich glaube auch langsam, dass wir beiden sind hier die einzigen "registered trolls" sind...
-
nman schrieb:
sarfuan: Datenform-Quellcode ist ja wohl nicht das einzige Kriterium zur Beurteilung einer Sprache. Oder glaubst Du, dass jeder Anhänger von eher minimalistischen Sprachen auf Brainfuck steht?
Brainfuck ist nicht ernst gemeint, XML dagegen schon. Ein kleiner aber feiner Unterschied
-
sarfuan schrieb:
Brainfuck ist nicht ernst gemeint, XML dagegen schon. Ein kleiner aber feiner Unterschied
Sagt wer? :p
Naja, wenn das Datenformat murks ist, dann hilft das natürlich alles nichts :p