Welcher Sprache gehört die Zukunft?



  • CStoll schrieb:

    Ich bezweifle sehr stark, daß die Eigenschaften "basiert auf C-Syntax" irgendetwas über die Zukunftsfähigkeit einer Sprache aussagt

    Über die Mainstream-Akzeptanz aber schon. Wobei mich schon mal interessieren würde, woher das eigentlich, auch historisch, kommt.



  • Bashar schrieb:

    Über die Mainstream-Akzeptanz aber schon.

    Das wird sich auch wieder legen 😃 (spätestens wenn die Computer lernen, menschliche Sprache zu verstehen)

    Wobei mich schon mal interessieren würde, woher das eigentlich, auch historisch, kommt.

    C hat eine klare Programmstruktur und ist nebenbei standardisiert (letzteres können Basic und Pascal nicht von sich behaupten).
    (und hier im Forum sind nicht C-basierte Sprachen ohnehin seltener anzutreffen)



  • Da viele Mainstream-Sprachen auf C-Syntax basieren, denke ich auch, das es ein Erfolgsfaktor ist. Das ist so, wie eigentlich jedes neue Auto eigentlich immer gleich zu bedienen ist (von Details abgesehen). Wenn jemand ein Auto rausbringt, das zwar sehr einfach aber total anders zu bedienen ist, wird dem Auto im Mainstream kein Erfolg zukommmen.

    Ich habe schon von VB'lern gehört, die Java gelernt haben, danach selbst über die VB-Syntax gelacht haben. Auch wenn Java eine C-Syntax hat, am Ende fanden sie es effizienter zum Tippen. Warum muß ich BEGIN oder END tippen, wenn es auch ein kruzes { und } tut? Klar, die Klammern sind super kryptisch. Die Tilde bei Desctructoren ist auch nicht gerade sprechend... aber nach dem man ein paar Dtors geschrieben hat, ist es völlig wurscht ob es eine Tilde ist.



  • Artchi schrieb:

    Warum muß ich BEGIN oder END tippen, wenn es auch ein kruzes { und } tut? Klar, die Klammern sind super kryptisch. Die Tilde bei Desctructoren ist auch nicht gerade sprechend... aber nach dem man ein paar Dtors geschrieben hat, ist es völlig wurscht ob es eine Tilde ist.

    Die Tilde oder die Klammern kann man sich wenigstens irgendwann merken. Wenn ich von C++ nach VB.NET komme, rätsel ich immer wieder rum, wann es nun "MustInherit" und "MustOverride" (abstract) oder wann "Shared" und "Static" (static) heisst, wie Konstruktoren und Finalizer heissen oder warum zum Henker ich einer Property, die nur einen Getter besitzt, "ReadOnly" beifügen muss, obwohl das ein Blinder mit Filzbrille sehen würde.

    Solange Programme geschrieben werden, glaube ich nicht dass das gesprochene Wort zum Vorbild einer Programmiersprache gereichen kann 😉



  • Hallo

    Also die Syntax von C++ fand ich schon immer gut. Früher mit Pascal und Basic da bekam man ja fast das Kotzen. Da sehe ich kein Problem. Ich schaue mir gerade c# an und muss sagen, dass ich die c++-ähnliche Syntax sehr schätze.

    chrische



  • Bashar schrieb:

    CStoll schrieb:

    Ich bezweifle sehr stark, daß die Eigenschaften "basiert auf C-Syntax" irgendetwas über die Zukunftsfähigkeit einer Sprache aussagt

    Über die Mainstream-Akzeptanz aber schon. Wobei mich schon mal interessieren würde, woher das eigentlich, auch historisch, kommt.

    Das ist wirklich nicht ganz verständlich. Die Syntax von C ist wirklich nicht einleuchtend. Liegt aber vermutlich daran, das C so populär geworden ist und es einfach jeder kennt. Das zieht natürlich weitere Kreise. Aber im Grunde ist die C-Syntax beschissen und die Syntax von C++ ... (<-- sparen wir uns das mal lieber ;))

    Aber wenigstens sind heutige Sprachen nicht nach Fortran-Syntax modelliert 👍 (Ich sag nur IF(IF.EQ.0)THENTHEN=0 oder DOI=1,3 :D).

    Was ich von ADA bisher gesehen habe fand ich nicht schlecht. Aber auch Python und Ruby haben ja gute Ansätze zur Lesbarkeit (okay, Python hat einige Rückschläge mit ihren ... (<-- Lieblings Schimpfwort hier einfügen) Unterstrich-Frickel-Geschichten).



  • @Artchi: Die schwierigste Umstellung beim Programmieren war bei mir der Wechsel von C64 Basic auf QBasic (und später auf Pascal), weil da die komplette Programmstruktur anders aufgebaut war. Pascal, C (und Nachkommen) und Visual Basic unterscheiden sich zwar in den verwendeten Schlüsselwörtern und einigen weiteren Details, aber die prinzipielle Struktur der Programme bleibt ähnlich (und imo könnte man auf syntaktischer Ebene fast problemlos zwischen C und Pascal übersetzen).

    LordJaxom schrieb:

    Solange Programme geschrieben werden, glaube ich nicht dass das gesprochene Wort zum Vorbild einer Programmiersprache gereichen kann 😉

    Wer sagt denn, daß Programme auch in Zukunft geschrieben werden? Irgendwann werden wir sie dem Computer diktieren 😉 (und dann lässt sich "Begin" wieder einfacher aussprechen als "geschweifte Klammer auf" :D)

    PS: Für den Fachprogrammierer sind Sprachen wie C++, Pascal, Java interessant, weil man dort recht direkt beschreiben kann, was passieren soll. Für Endanwender dürften problemorientierte Sprachen wichtiger sein (ein Ingenieur will dem Computer nur sagen, WAS er machen soll, ohne sich über das WIE Gedanken machen zu müssen.



  • CStoll schrieb:

    Wer sagt denn, daß Programme auch in Zukunft geschrieben werden?

    Nun, ich nicht. Ich sagte nur "solange sie geschrieben werden" 😃



  • CStoll schrieb:

    Irgendwann werden wir sie dem Computer diktieren 😉

    Ist das nicht super-unpraktisch?



  • Mit C++ sicher... Ausser die Erkennung ist intelligent und man muss nicht jede Klammer einzeln einsprechen 😉 .



  • Walli schrieb:

    Mit C++ sicher... Ausser die Erkennung ist intelligent und man muss nicht jede Klammer einzeln einsprechen 😉 .

    Ich kanns mir allgemein nicht vorstellen.



  • Das ist wirklich nicht ganz verständlich. Die Syntax von C ist wirklich nicht einleuchtend. Liegt aber vermutlich daran, das C so populär geworden ist und es einfach jeder kennt. Das zieht natürlich weitere Kreise. Aber im Grunde ist die C-Syntax beschissen und die Syntax von C++ ... (<-- sparen wir uns das mal lieber )

    Ich finde die Syntax von C und C++ extrem einleuchtend. Nennt mal ein richtiges Beispiel wo die Syntax total unintuitiv sein soll. Verwechslungsgefahr ist kein Argument, da dies bei allem besteht und total subjektiv ist. Anfängerunfreundlich ist auch kein Argument, da dies wieder bei allem besteht und ebenfalls subjektiv ist.

    Ich habe zuerst in Pascal programmiert und dann in C++. Damals fand ich es super nicht mehr begin und end schreiben zu müssen, sondern einfach { }.

    Das einzige was ich nicht verstehe ist, dass man einige Operatoren als friends definieren muss, aber andere als normale Klassenmethoden belassen kann. Wieso wurde nicht einfach alle Operatoren als Methoden definiert, die sich so wie erwartet verhalten (also wozu der Unterschied zwischen Ops als friend und Ops als Methoden)?



  • DEvent schrieb:

    Ich finde die Syntax von C und C++ extrem einleuchtend. Nennt mal ein richtiges Beispiel wo die Syntax total unintuitiv sein soll.

    vector<vector<int>> foo;
    


  • Tim schrieb:

    DEvent schrieb:

    Ich finde die Syntax von C und C++ extrem einleuchtend. Nennt mal ein richtiges Beispiel wo die Syntax total unintuitiv sein soll.

    vector<vector<int>> foo;
    

    Ich nehme an, du hast absichtlich nicht

    vector<vector<int> > foo;
    

    geschrieben.

    Viel krasser ist doch sowas:

    void (*signal(int, void (*)(int))(int);
    


  • CStoll schrieb:

    Bashar schrieb:

    Über die Mainstream-Akzeptanz aber schon.

    Das wird sich auch wieder legen 😃 (spätestens wenn die Computer lernen, menschliche Sprache zu verstehen)

    Wobei mich schon mal interessieren würde, woher das eigentlich, auch historisch, kommt.

    C hat eine klare Programmstruktur und ist nebenbei standardisiert (letzteres können Basic und Pascal nicht von sich behaupten).
    (und hier im Forum sind nicht C-basierte Sprachen ohnehin seltener anzutreffen)

    Die Standardisierung kann ich nicht als Argument gelten lassen. Das wird heute als wichtig wahrgenommen, aber früher (sagen wir ca. 1995) haben die Leute sich nen Borland Compiler geschnappt und nach Herzenslust in der conio.h und sonstwo irgendwelche Funktionen zusammengesucht, oder gleich mit Visual C++ angefangen irgendwelche Fenster zusammenzuklicken. Von void main will ich gar nicht anfangen. Die Nachwehen dieser Zeit spürt man heute noch.
    Von der Programmstruktur her ist Pascal doch wohl deutlich klarer. Und zu Zeiten von Turbo Pascal war Pascal auch deutlich beliebter, ich erinnere mich an so manche Diskussion mit uneinsichtigen Pascallern 😉 Aber ganz plötzlich hieß es überall C++ (gemeint war meistens C). Also ich würde vermuten, dass C mit C++ und dem OOP-Hype angeschwemmt wurde. Dazu kommt der Coolness-Faktor durch die Unix-Guru-Aura, die C manchmal verbreitet. Einen Obfuscated-Pascal-Contest würde ich mir jedenfalls ziemlich langweilig vorstellen. (Alles auf PCs bezogen natürlich, die Unixer machen schon immer C, das ist klar.)



  • Mr. N schrieb:

    Tim schrieb:

    DEvent schrieb:

    Ich finde die Syntax von C und C++ extrem einleuchtend. Nennt mal ein richtiges Beispiel wo die Syntax total unintuitiv sein soll.

    vector<vector<int>> foo;
    

    Ich nehme an, du hast absichtlich nicht

    vector<vector<int> > foo;
    

    geschrieben.

    Du bist aber ein ganz schlaues Kerlchen 😉



  • Mr. N schrieb:

    Viel krasser ist doch sowas:

    void (*signal(int, void (*)(int))(int);
    

    gewohnheitssache.
    für einen, der oft mit function pointers rumfummelt, ist sowas gut lesbar.
    viel schlimmer finde ich:

    a << b;
    

    in C und sprachen mit C-ähnlicher syntax wie z.b. Java ist das einfach bitweises schieben, also kein grosses rätsel.
    in C++ aber kann es alles mögliche sein 😞



  • Tim schrieb:

    Du bist aber ein ganz schlaues Kerlchen 😉

    Das ist aber auch nicht wirklich prinzipbedingt oder beabsichtigt und wird in C++0x gefixt. Ich würde mal behaupten dass es uns hier schwer fallen wird, unintuitive Merkmale der Syntax von C++ zu finden, da die meisten C++ wahrscheinlich sogar träumen oder so 😉 Man neigt doch immer dazu, die eigene Sprache zu verteidigen.



  • Bashar schrieb:

    Tim schrieb:

    Du bist aber ein ganz schlaues Kerlchen 😉

    Das ist aber auch nicht wirklich prinzipbedingt oder beabsichtigt und wird in C++0x gefixt. Ich würde mal behaupten dass es uns hier schwer fallen wird, unintuitive Merkmale der Syntax von C++ zu finden, da die meisten C++ wahrscheinlich sogar träumen oder so 😉 Man neigt doch immer dazu, die eigene Sprache zu verteidigen.

    An Lisp ist zum Beispiel

    setf
    

    unintuitiv. 🙂



  • Mr. N schrieb:

    An Lisp ist zum Beispiel

    setf
    

    unintuitiv. 🙂

    Troll :p


Anmelden zum Antworten