Warum hat C++ so eine aufwendige Syntax?



  • Artchi schrieb:

    Und weiterhin ist Amazon.com laut Bjarne Stroustrup in C++ programmiert (bevor jemand sagt, der hat sich das aus den Fingern gesaugt: nein, Amazon.com hat selbst einen Mitarbeiter namens Gary Powell in den ISO-C++-Meetings sitzen). Wer noch behauptet, C++ sei z.B. für Web ungeeignet, ist ein Ignorant.

    Hast Du da eventuell eine unabhänge Quelle? Einfach zu behaupten, "Bjarne hat gesagt, das sei so, und außerdem gibt's da 'n Typn bei Amazon in irgendwelchen C++-Meetings sitzt" finde ich ziemlich dünn.

    Vor allem, wie alt ist diese Aussage? Amazon ist seit 1995 im Web [1], damals steckte die Webtechnologie noch in den Kinderschuhen. Seinerzeit war es naheliegend, C++ zu nehmen (gab ja nix anderes, damals :D). Aber die Welt entwickelt sich weiter. Es ist sicherlich nicht einfach, so ein riesen System umzubauen. Ein anderes "Web-basiertes" Unternehmen -- ebay -- hat es geschafft [2]. Das war früher auch in C++ implementiert [3].

    (Übrigens werden von Amazon seit einiger Zeit auch Webservices angeboten [4], die eine Vielzahl verschiedene Programmiersprachen unterstützt [5].)

    tfa

    [1] http://de.wikipedia.org/wiki/Amazon.com
    [2] http://java.com/en/ebay7.jsp?_trksid=m37
    [3] http://www.addsimplicity.com/downloads/eBaySDForum2006-11-29.pdf
    [4] http://www.amazon.com/gp/browse.html?node=3435361
    [5] http://www.regdeveloper.co.uk/2007/04/15/amazon_vogels_webservices/



  • tfa schrieb:

    [1] http://de.wikipedia.org/wiki/Amazon.com

    da steht:

    Amazon setzt eine auf Perl und HTML::Mason basierende Architektur ein.
    

    also irgendwer schwindelt jetzt. Bjarne oder Wiki?



  • Undertaker schrieb:

    tfa schrieb:

    [1] http://de.wikipedia.org/wiki/Amazon.com

    da steht:

    Amazon setzt eine auf Perl und HTML::Mason basierende Architektur ein.
    

    also irgendwer schwindelt jetzt. Bjarne oder Wiki?

    Hm, gute Frage. Wikipedia gibt leider auch keine Quelle an. Im englischen Artikel steht auch nichts darüber...
    Könnte auch ein Gemisch aus beidem sein.



  • Undertaker schrieb:

    ebay früher auch mal, aber ich glaub' die haben umgerüstet auf was anderes.

    Ja, auf Java.

    Undertaker schrieb:

    ...und, ich glaube, google macht auch noch viel mit C++.

    Google hat in jüngster Zeit aber sicher mehr Interesse an Java. Man bedenke nur beispielsweise GWT (ein Ajax-Web-Framework für Java) oder Guice (ein IoC-Container für Java). Außerdem war Google mit einigen Sessions auch auf der JavaOne vertreten. Ist ja noch nicht so lange aus, dass Google und Sun eine Partnerschaft geschlossen haben um die Software des jeweils anderen mitzuverteilen.

    Artchi schrieb:

    Witty (geniale Ajax-Programmierung in C++) und ATL Server (Web und WebServices) von Microsoft, neben tntnet, belegen das es da was gibt. Sogar von einem namhaften Hersteller.
    [...]
    Wer noch behauptet, C++ sei z.B. für Web ungeeignet, ist ein Ignorant.

    Wenn du hier ernsthaft diesen "tntnet-Server" mit z.B. dem Apache HTTP-Server, Apache Tomcat oder auch dem IIS vergleichen willst, dann bist du hier der Ignorant. Auch schon allein Aussagen wie "von einem namhaften Hersteller" oder "das es da was gibt" zeigt ja, dass du auch selber einsiehst, dass C++ im Webbereich armselig ist, denn ein einziger namhafter Hersteller ist gar nichts (schon gar nicht, wenn der sowieso auf ein ganz anderes Pferd setzt) und das es da was gibt ist ja wirklich sehr beruhigend. Man ignoriert halt einfach, dass man in etwa 10 Jahre hinter dem Stand der Technik ist, was Webprogrammierung betrifft, (dieses Witty mal ausgenommen) wenn man C++ einsetzt ..



  • tfa schrieb:

    Hm, gute Frage. Wikipedia gibt leider auch keine Quelle an. Im englischen Artikel steht auch nichts darüber...
    Könnte auch ein Gemisch aus beidem sein.

    http://www.masonhq.com/?AmazonDotCom



  • dsfdfg schrieb:

    ...GWT (ein Ajax-Web-Framework für Java) oder Guice (ein IoC-Container für Java)....

    Iiiiiih !!!! Externe Libs !!!!

    😉

    Gruß,

    Simon2.



  • Simon2 schrieb:

    dsfdfg schrieb:

    ...GWT (ein Ajax-Web-Framework für Java) oder Guice (ein IoC-Container für Java)....

    Iiiiiih !!!! Externe Libs !!!!

    ...und noch nicht mal in C geschrieben 👎
    😉



  • dsfdfg schrieb:

    Wenn du hier ernsthaft diesen "tntnet-Server" mit z.B. dem Apache HTTP-Server, Apache Tomcat oder auch dem IIS vergleichen willst, dann bist du hier der Ignorant. Auch schon allein Aussagen wie "von einem namhaften Hersteller" oder "das es da was gibt" zeigt ja, dass du auch selber einsiehst, dass C++ im Webbereich armselig ist, denn ein einziger namhafter Hersteller ist gar nichts (schon gar nicht, wenn der sowieso auf ein ganz anderes Pferd setzt) und das es da was gibt ist ja wirklich sehr beruhigend. Man ignoriert halt einfach, dass man in etwa 10 Jahre hinter dem Stand der Technik ist, was Webprogrammierung betrifft, (dieses Witty mal ausgenommen) wenn man C++ einsetzt ..

    Offensichtlich akzeptierst Du, daß man zumindest mit Witty moderne Webapplikationen mit C++ schreiben kann. Damit widersprichst Du Dich doch selbst. Damit ist C++ doch eine geeignete Plattform für das Web. Ich persönlich bin der Meinung, daß auch mein tntnet dafür geeignet ist, aber das soll jeder für sich entscheiden.

    Übrigens habe ich selbst aus dem Frust der schlechten Performance der aktuellen Webtechnologien - vor allen Dingen von HTML::Mason angefangen, Tntnet zu schreiben. Die Syntax und einige Konzepte habe ich aus HTML::Mason. Prima System aber ein typischer Vertreter dieser modernen System, die aus viel CPU-Verbrauch eine passable Leistung holen.



  • Wie GWT ist nicht in der Java-Standardlib drin? Muß ich ne JAR hinzufügen? 😮 Also das geht ja garnicht! Java ist ja voll ein paar jahre hinter der Webtechnik hinterher, wenn die Java-Stdlib kein AJAX drin hat. Nö, also... das ist ja voll doof. Bin total von Java enttäuscht. 😞



  • Außerdem war Google mit einigen Sessions auch auf der JavaOne vertreten.

    Ja und? Google hatte auch das ISO-C++-Meeting in England gesponsert. Und jetzt?

    Wenn du hier ernsthaft diesen "tntnet-Server" mit z.B. dem Apache HTTP-Server, Apache Tomcat oder auch dem IIS vergleichen willst, dann bist du hier der Ignorant.

    klar, und der Apache HTTP-Server und IIS sind in Java programmiert? Und nicht etwa in C repektive C++? Ganz davon abgesehen, das die Dinger in C und C++ entwickelt sind, weißt du anscheinend nicht, das ATL Server den IIS benötigt, da ATL Server "nur" ein Framework und kein Server in dem Sinne ist. Informier dich also, bevor du ATL Server in Konkurrenz zum IIS stellst.



  • dsfdfg schrieb:

    Wenn du hier ernsthaft diesen "tntnet-Server" mit z.B. dem Apache HTTP-Server, Apache Tomcat oder auch dem IIS vergleichen willst

    Und kannst du das auch als registrierter Forumsuser sagen? Ich meine nur... so anonym kann ich jeden beleidigen (dabei meine ich nicht mal mich, sondern tntnet). Aber hol mal deinen echten langjährigen bekannten Forumsaccount raus und schreib das nochmal. Dann mal schauen...



  • Simon2 schrieb:

    (kleiner "Abzug in der B-Note": Inwieweit hat ein "interface" weniger Zustand als eine analoge abstrakte Klasse ?)

    damit meinte ich, dass eine abstrakte klasse zustände und methoden, die diese ändern, implementieren kann. da man aber kein reines abstraktes objekt konstruieren kann, sondern lediglich über eine abstrakte klasse in funktion eines interfaces auf ein konkretes objekt zugreifen kann, ist das ganze aber wohl eher ne interpretationsfrage.



  • thordk schrieb:

    Simon2 schrieb:

    (kleiner "Abzug in der B-Note": Inwieweit hat ein "interface" weniger Zustand als eine analoge abstrakte Klasse ?)

    damit meinte ich, dass eine abstrakte klasse zustände und methoden, die diese ändern, implementieren kann. da man aber kein reines abstraktes objekt konstruieren kann, sondern lediglich über eine abstrakte klasse in funktion eines interfaces auf ein konkretes objekt zugreifen kann, ist das ganze aber wohl eher ne interpretationsfrage.

    Ach so.

    Nun, eine abstrakte Klasse in C++ ist ja eben auch ein komplexeres Konstrukt mit sehr viel mehr Möglichkeiten als ein Java-Interface. Die Abbildung von Interfaces ist halt nur eine Möglichkeit, abstrakte Klassen einzusetzen. Das kann ich aber nicht als Gegenargument gegen C++, abstrakte Klassen, ... sehen, denn schließlich ist eine geeignet designte abstrakte Klasse ebenso "statusfrei" wie ein Java-IF.

    Gruß,

    Simon2.



  • Artchi schrieb:

    Wie GWT ist nicht in der Java-Standardlib drin? Muß ich ne JAR hinzufügen? 😮 Also das geht ja garnicht! Java ist ja voll ein paar jahre hinter der Webtechnik hinterher, wenn die Java-Stdlib kein AJAX drin hat. Nö, also... das ist ja voll doof. Bin total von Java enttäuscht. 😞

    Ihr seid wirklich einfach nur kindisch. Irgendwie, sei es auch noch so lächerlich, kann man sich halt immer aus der Diskussion winden. Als ob Java-Programmierer per se keine externen Bibliotheken verwenden würden. Wirklich kritisieren muss man an C++ ja nur, dass es mit sämtlichen externen C++-Bibliotheken, die man so kennt, nur das nachholt was irgendwie durch einen JSR abgedeckt ist (und selbst das kann es nicht nachholen). Java bietet beispielsweise einen Standard für Persistenz von Objekten, man kann aber natürlich auch "proprietäre" APIs von Hibernate oder Toplink einsetzen. C++ hat garkeine vergleichbare Lösung dafür (Da fällt mir diesbezüglich noch eine weiter Beteiligung von Google an einem Java Framework ein: http://www.infoq.com/news/2007/03/hibernate-shards).

    Artchi schrieb:

    klar, und der Apache HTTP-Server und IIS sind in Java programmiert? Und nicht etwa in C repektive C++?

    Einfach nur lächerlich. Es ist ja quasi ein ungeschriebenes Gesetz unter Programmierern, dass man nur Software benutzen darf, die in ihrer favorisierten Sprache entwickelt wurde. Im Umkehrschluss darfst du aber natürlich auch nichts mehr bei eBay kaufen oder verkaufen, bzw. E-Banking ist ab sofort auch für dich gestrichen. Du könntest dir ja einfach einen Filter mit AdBlock einrichten, der dich nur noch auf Seiten browsen lässt, die "/cgi-bin/" in der URL haben. 👍 Übrigens setze ich selber nur Jetty und Tomcat als Webserver ein und ja, die sind in Java implementiert.

    Artchi schrieb:

    [...] weißt du anscheinend nicht, das ATL Server den IIS benötigt, da ATL Server "nur" ein Framework und kein Server in dem Sinne ist. Informier dich also, bevor du ATL Server in Konkurrenz zum IIS stellst.

    Normalerweise hasse ich es ja solche Sprüche abzulassen, aber: Wer lesen kann, ist klar im Vorteil. Ich konnte bisher auf jeden Fall noch immer nicht einmal den Ausdruck "ATL" in meiner Antwort entdecken. Wie du also darauf schließt, dass ich ATL mit IIS vergleiche, ist mir einfach unvorstellbar. 🙄 Ich überlasse es dir ATL und z.B. ASP.NET zu vergleichen ...



  • Artchi schrieb:

    Und kannst du das auch als registrierter Forumsuser sagen? Ich meine nur... so anonym kann ich jeden beleidigen (dabei meine ich nicht mal mich, sondern tntnet). Aber hol mal deinen echten langjährigen bekannten Forumsaccount raus und schreib das nochmal. Dann mal schauen...

    Ich kann auch ohne langjährigen Forumsaccount sagen, dass ich in der Dokumentation nicht entdecken konnte, wie man z.B. einen Cluster von "tntnet-Servern" einrichtet. Mich würde auch interessieren, wie man Remote-Debugging bei diesem Server macht? Gibt es einen Load Balancer für diesen Server? Es war übrigens auch keine Beleidigung von mir (das interpretierst du wohl wieder rein, nur weil dir meine Meinung nicht gefällt), aber allein ist man nunmal "machtlos" im Vergleich zur Community von Apache oder dem IIS Team von Microsoft, ..

    tntnet schrieb:

    Offensichtlich akzeptierst Du, daß man zumindest mit Witty moderne Webapplikationen mit C++ schreiben kann. Damit widersprichst Du Dich doch selbst. Damit ist C++ doch eine geeignete Plattform für das Web. Ich persönlich bin der Meinung, daß auch mein tntnet dafür geeignet ist, aber das soll jeder für sich entscheiden.

    Ich habe Witty ausgenommen, weil ich nicht alles über einen Kamm scheren wollte. Aber bitte, wenn du unbedingt Kritik forderst: Würd mich interessieren, wie du einen Designer für ein Webfrontend mit Witty finden willst, denn der muss ja anscheinend C++ beherrschen. 🙄 Views hat man in Java schon seit ~7-8 Jahren ausgelagert. Mittlerweile geht es ja soweit, dass man von Dreamweaver generierten Code beinahe 1:1 übernehmen kann. In C++ wird das vielleicht in 10 Jahren möglich sein. Außerdem gehört zu einer wirklichen Plattform für eine Webanwendung mehr als nur das Frontend.



  • dsfdfg schrieb:

    Einfach nur lächerlich. Es ist ja quasi ein ungeschriebenes Gesetz unter Programmierern, dass man nur Software benutzen darf, die in ihrer favorisierten Sprache entwickelt wurde.

    Nein, der Punkt ist: du hast dich gerade lächerlich gemacht.
    C++ ist zu nichts gut, aber die Software auf denen wir täglich unsere Welt aufbauen sind größtenteils in C++ geschrieben.

    Deshalb ist C/C++ ungeeignet für irgendetwas. Wir schreiben deshalb Programme in PHP die auf einem Apache laufen und mit einem Browser angesteuert werden.

    Und sowohl PHP, Apache als auch die meisten Browser sind in C/C++ implementiert. Dazu noch die OS auf denen wir arbeiten. Die Mail Clients mit denen wir unsere Spamfilter und die Virenscanner so richtig ausreizen können.

    Wo man hinschaut: C/C++ 😉

    Definitiv eine nutzlose Sprache.



  • Shade Of Mine schrieb:

    dsfdfg schrieb:

    Einfach nur lächerlich. Es ist ja quasi ein ungeschriebenes Gesetz unter Programmierern, dass man nur Software benutzen darf, die in ihrer favorisierten Sprache entwickelt wurde.

    Nein, der Punkt ist: du hast dich gerade lächerlich gemacht.
    C++ ist zu nichts gut, aber die Software auf denen wir täglich unsere Welt aufbauen sind größtenteils in C++ geschrieben.

    Deshalb ist C/C++ ungeeignet für irgendetwas. Wir schreiben deshalb Programme in PHP die auf einem Apache laufen und mit einem Browser angesteuert werden.

    Und sowohl PHP, Apache als auch die meisten Browser sind in C/C++ implementiert. Dazu noch die OS auf denen wir arbeiten. Die Mail Clients mit denen wir unsere Spamfilter und die Virenscanner so richtig ausreizen können.

    Wo man hinschaut: C/C++ 😉

    Definitiv eine nutzlose Sprache.

    Das habe ich nicht gesagt bzw. du hast mich vielleicht falsch verstanden (ironie-Tags haben gefehlt). Ich finde es lächerlich, dass ich als Java-Programmierer keinen Server benutzen dürfte, der in C oder C++ implementiert ist. Ich wäre ein Ignorant, wenn ich behaupten würde, dass ich nur Java-Software einsetze bzw. nur auf Java setze. Die JVM ist ja schließlich auch nicht in Java implementiert. 🙄

    Ich wüsste nicht, warum ich überhaupt den Wunsch haben sollte, C++ für Webanwendungen einsetzen zu können?



  • dsfdfg schrieb:

    Ich wüsste nicht, warum ich überhaupt den Wunsch haben sollte, C++ für Webanwendungen einsetzen zu können?

    Anders formuliert: Was kritisiert ihr denn an den jetztigen Lösungen, so dass ihr unbedingt meint C++ sei als "Plattform" für Webanwendungen ideal?



  • Zu Amazon:
    Es kann doch sehr gut sein, dass Amazon C++, Perl und Mason einsetzt. Perl bietet einem die Möglichkeit in C(++) geschriebene Module zu verwenden und ebenso ist es möglich innerhalb von C(++) Perl als Skriptsprache einzubinden.



  • dsfdfg schrieb:

    Ich wüsste nicht, warum ich überhaupt den Wunsch haben sollte, C++ für Webanwendungen einsetzen zu können?

    Die Leute tun es bereits: C++/CLI mit ASP.NET läßt grüßen.

    Klar schreibst du nicht jedes kleine PHP Script in C++. Aber ich hatte mal einen Job wo ich mir C++ gewünscht habe. Ging leider nicht wegen der bestehenden Strukturen - aber es ging um COM Interop auf dem Server mit speziellen Anwendung auf dem Server. Wir haben das in PHP hingebogen - aber mit C++ wäre der Teil der Anwendung deutlich schneller fertig geworden und deutlich performanter gelaufen.

    Also sag niemals nie.


Anmelden zum Antworten