Wer nimmt C++ für Webseiten?



  • Artchi schrieb:

    Ja ja, ewig unser Forentroll Vista, der immer mit seiner Anti-C++-Propaganda für Erheiterung sorgt.

    Du gehst einem mächtig auf den Sack!

    Das ist schon ein sehr emotionales Thema für dich. 😃 👍



  • internet-freak schrieb:

    Wer nimmt C++ für Webseiten?

    die frage sollte eher lauten: 'warum sollte man c++ für webentwicklung nehmen?'
    spontan fallen mir nur nachteile ein:
    1. c++ code muss compiliert werden. bei den traditionellen sprachen für die webentwicklung schiebt man einfach die source-codes auf den server und die seiten sind sofort verfügbar.
    2. bugs im c++ code können den server crashen. dagegen laufen php, servlets, asp und dergleichen in einer 'sandbox', was wesentlich ungefährlicher für den server ist.
    🙂

    Diese Nachteile sind nicht spezifisch für die Webprogrammierung. Die gelten für alle Programme. Trotzdem werden "normale" Applikationen nicht immer mit interpretierten Sprachen geschrieben. Warum ist wohl z. B. Mysql nicht mit einer Skriptsprache geschrieben worden?

    Wenn ich schnell mal ein Programm schreibe um z. B. eine Textdatei zu konvertieren oder andere kleine Utilities zu erstellen, dann bevorzuge ich Perl. Für größere Projekte bevorzuge ich eine richtige Programmiersprache, die nativen Code erzeugt und damit resourcenschonender und schneller sind. Diese Aussgage gilt nicht nur für eine Programmgattung, wie z. B. Webprogrammierung, sondern ich halte das grundsätzlich so.

    Man mag einwenden, daß eine Webapplikation von mehreren Anwendern benutzt wird. Wenn eine Desktopapplikation abstürzt, ist das möglicherweise weniger schlimm (Wobei es mich als Anwender schon ärgert, wenn meine mühsam erfassten Daten einfach im Nirvana verschwinden). Aber gerade im Serverbereich sollte man sparsamer mit Resourcen umgehen. Die Desktopmaschinen haben heute mehr Rechenleistung, als ich für normales Arbeiten eigentlich brauche. Da kann ich mir eher erlauben, mal ein wenig Leistung zu verschwenden. Dennoch haben sich gerade dort die Skriptsprachen nicht durchgesetzt.

    Tntnet ist nicht dafür gedacht, mal schnell eine Homepage zu erstellen, sondern richtige Webapplikationen. Da spielt es keine so große Rolle mehr, ob ich hin und wieder mal den Compiler anwerfen muß oder es gleich ausführen kann. Wichtiger sind da leistungsfähige Sprachfeatures, die es mir erlauben, meinen Code wartbar zu strukturieren. Und das bietet mir beispielsweise C++. Dieses "schnell mal was hinschmieren und mal probieren ob es geht", was bei Skriptsprachen naheliegend ist, verbraucht letzten Endes mehr Arbeitszeit, als Compilerläufe und produziert deutlich schlechtere Programme.



  • Um noch mal auf die ursprüngliche Frage zurück zu kommen: Wer nimmt C++ für Webseiten? Gibt es "in der freien Wildbahn" bedeutende Web-Anwendungen, die in C++ realisiert sind? Wenn ja, wo sind sie?



  • Das wird dir hier keiner richtig beantworten können. Denn mit "bedeutend" meinst du sicherlich "bekannt"? Laut Bjarne Stroustrup arbeitet Amazon.com im Hintergrund mit C++. Und wenn ich mir so die Teilnehmerliste des ISO-C++-Komitees anschaue, ist dort hin und wieder ein Amazon.com-Mitarbeiter namens Gary Powell mit dabei. Der wird sicherlich nicht bei den Komitee-Meetings dabei sein, wenn Amazon intern keine C++-Projekte am Laufen haben. Und sicherlich wird sich Bjarne Stroustrup das mit Amazon nicht aus den Fingern gesaugt haben, wenn er mal ebend auf einem Meeting mit einem Amazon-Mitarbeiter reden kann.

    http://www.research.att.com/~bs/applications.html

    Aber ob und wo wirklich C++ auf den Webauftritten mitwirkt, kann man doch nicht sagen, solange die Firmen es nicht bekannt geben. Die C++-basierten Webseiten haben ja keine Dateiendung a la index.php.

    Und was irgendwo Inhouse für C++-Webanwendungen laufen, kann man noch weniger sagen. Da aber z.B. ATL Server laut Mailinglisten Einsatz findet, gibt es da sehr wohl Web-Anwendungen auf C++-Basis.



  • Ich verwende C++ für Webseiten und zwar als ISAPI-DLLs für den IIS6.0 und Apache. Als Programmiersoftware verwende ich den BCB6.0. Da der BCB auch ein Debuggtool für Web-Anwendungen mitliefert ist das Debuggen genau wie bei jeder anderen Anwendung auch. Natürlich besteht der Quellcode nicht zu 100% aus C++, da die Seiten ja prinzipiell als HTML im Browser zu sehen sind und somit nur das "Füllen" der Seite vor dem Anzeigen mit C++/Borland-Mitteln gemacht werden muß. Außerdem wird teilweise Javascript innerhalb der HTML-Seiten verwendet. Da die Anwendung auch an Kunden verkauft wird ist es sehr von Vorteil, dass der Quellcode nicht einsehbar ist und somit keiner in der Programmierung "rumpfuschen" kann. Nachteil ist allerdings, daß mit dem BCB nur Web-Anwendungen für Windows-basierte System möglich sind.



  • tfa schrieb:

    Um noch mal auf die ursprüngliche Frage zurück zu kommen: Wer nimmt C++ für Webseiten? Gibt es "in der freien Wildbahn" bedeutende Web-Anwendungen, die in C++ realisiert sind? Wenn ja, wo sind sie?

    Eine Referenz kann ich dir nennen: auf der aktuellen Wikipedia-DVD ist ein offline-reader auf Tntnet-Basis. Da läuft tntnet als Webserver auf dem lokalen Rechner um auf die Daten der DVD zugreifen zu können.



  • Auf der offiziellen Wikipedia-DVD? 😮 👍
    Übrigens, deine tntnet-Website finde ich etwas unvorteilhaft. Gibt es keine Demos online zum ausprobieren? Sind zwar Beispiel-Codes bei, aber wenn man das Ergebnis sehen würde, wäre das schon genial. Bei Witty kann man alle Demos auch online ausprobieren. Könnte sich tntnet vielleicht etwas daran orientieren?



  • Linnea schrieb:

    Ich verwende C++ für Webseiten und zwar als ISAPI-DLLs für den IIS6.0 und Apache.
    [...]
    Nachteil ist allerdings, daß mit dem BCB nur Web-Anwendungen für Windows-basierte System möglich sind.

    Sind es Inhouse-/Individual-Projekte oder kann die Ergebnisse jeder kaufen?

    Übrigens, als Nachteil ist es nur, wenn der Kunde auch eine Unix/Linux-Variante haben will. Wenn aber ein Kunde eh auf MS-Technik/-Produkte setzt, ist es kein Nachteil. Alles eine Sache der Nachfrage.



  • Kann nicht sein, die Wikipedia DVD gibt es für Windows, tntnet nur für Linux und so.



  • Artchi schrieb:

    Sind es Inhouse-/Individual-Projekte oder kann die Ergebnisse jeder kaufen?

    Naja, jeder wahrscheinlich nicht, da es halt doch einen speziellen Bereich abdeckt und nicht jeder Privatmensch schafft sich z.B. ein Grundwasserüberwachungsnetzwerk an. Es ist halt so, dass an der Web-Anwendung noch Gerätetechnik mit dran hängt und das wär für den Otto-Normal-Verbraucher etwas übertrieben und wahrscheinlich auch teuer.



  • Artchi schrieb:

    Das wird dir hier keiner richtig beantworten können. Denn mit "bedeutend" meinst du sicherlich "bekannt"? Laut Bjarne Stroustrup arbeitet Amazon.com im Hintergrund mit C++. Und wenn ich mir so die Teilnehmerliste des ISO-C++-Komitees anschaue, ist dort hin und wieder ein Amazon.com-Mitarbeiter namens Gary Powell mit dabei. Der wird sicherlich nicht bei den Komitee-Meetings dabei sein, wenn Amazon intern keine C++-Projekte am Laufen haben. Und sicherlich wird sich Bjarne Stroustrup das mit Amazon nicht aus den Fingern gesaugt haben, wenn er mal ebend auf einem Meeting mit einem Amazon-Mitarbeiter reden kann.

    http://www.research.att.com/~bs/applications.html

    Aber ob und wo wirklich C++ auf den Webauftritten mitwirkt, kann man doch nicht sagen, solange die Firmen es nicht bekannt geben. Die C++-basierten Webseiten haben ja keine Dateiendung a la index.php.

    Und was irgendwo Inhouse für C++-Webanwendungen laufen, kann man noch weniger sagen. Da aber z.B. ATL Server laut Mailinglisten Einsatz findet, gibt es da sehr wohl Web-Anwendungen auf C++-Basis.

    Amazon ist vielleicht auch kein wirklich gutes Beispiel für eine C++-Webanwendung, nachdem Amazon irgendwie eh alles quer durch die Bank verwendet. Soweit ich weiß wird ja nach wie vor gesagt, dass z.B. das Frontend in Perl implementiert ist, teilweise soll man auch Servlets auf einem JBoss finden.



  • Linnea schrieb:

    Artchi schrieb:

    Sind es Inhouse-/Individual-Projekte oder kann die Ergebnisse jeder kaufen?

    Naja, jeder wahrscheinlich nicht, da es halt doch einen speziellen Bereich abdeckt und nicht jeder Privatmensch schafft sich z.B. ein Grundwasserüberwachungsnetzwerk an. Es ist halt so, dass an der Web-Anwendung noch Gerätetechnik mit dran hängt und das wär für den Otto-Normal-Verbraucher etwas übertrieben und wahrscheinlich auch teuer.

    Das ist mir klar. Nicht jeder kann auch was mit Excel anfangen. Trotzdem kann und darf jeder Excel kaufen. Wenn es aber eine Individual-Software ist, kann sie nicht jeder kaufen. Weil sie nur der Auftraggeber benutzen darf.

    Man sollte schon wissen, wie die Lizenz zur eigenen Software aussieht... :p Also, kann sie nun jeder kaufen? Sieht so aus.



  • dsfsawiwidsj schrieb:

    Amazon ist vielleicht auch kein wirklich gutes Beispiel für eine C++-Webanwendung, nachdem Amazon irgendwie eh alles quer durch die Bank verwendet. Soweit ich weiß wird ja nach wie vor gesagt, dass z.B. das Frontend in Perl implementiert ist, teilweise soll man auch Servlets auf einem JBoss finden.

    Yo, wenns nicht 100% C++ ist, ist C++ irrelevant. Ist klar.

    Bsp.: Adobes Lightroom ist zu 60% C++ und 40% LUA (für den Workflow). Was sagt uns das? das vieles heute mit Scriptsprachen gemacht wird, aber auf C++ nicht verzichtet werden kann. Wenn LUA C++ ersetzen könnte, wäre Lightroom sicherlich zu 100% in LUA entwickelt. Dem ist aber nicht so!

    Genauso sehe ich es bei Amazon: wenn zur Weihnachtszeit 1000 Bestellungen pro Sekunde eingehen (wie von Amazon im TV gesagt), wird es seinen Grund haben, das die noch C++ einsetzen. Nimm mal bei Amazon den C++-Anteil weg! Wären dann noch 1000 Bestellungen pro Sekunde möglich? Ich denke nicht! Sonst hätte man sicherlich kein C++ genommen. Also ist die Web-Anwendungen sehr wohl auch in C++ entwickelt. Wer meint, eine Web-Anwendung besteht ausschliesslich aus der Erzeugung von HTML, ist ganz schön kleingeistig und denkt nicht darüber nach, was eigentlich Amazon wirklich ausmacht: Waren suchen, ansehen und bestellen! Halt ein Shop-System! Das HTML ist nur Mittel zum Zweck. Hätte auch ein 3270-Terminalemulation gereicht um Amazon zu entwickeln... um es mal krass darzustellen.



  • tntnet schrieb:

    Trotzdem werden "normale" Applikationen nicht immer mit interpretierten Sprachen geschrieben. Warum ist wohl z. B. Mysql nicht mit einer Skriptsprache geschrieben worden?

    reine, nur-interpretierte, skriptsprachen sind nicht so toll für rechenintensive anwendungen, wobei das bei einem DBMS eher weniger wichtiger zu sein scheint (und für webapplikationen übrigens auch nicht):
    --> http://java-source.net/open-source/database-engines

    tntnet schrieb:

    Tntnet ist nicht dafür gedacht, mal schnell eine Homepage zu erstellen, sondern richtige Webapplikationen. Da spielt es keine so große Rolle mehr, ob ich hin und wieder mal den Compiler anwerfen muß oder es gleich ausführen kann. Wichtiger sind da leistungsfähige Sprachfeatures, die es mir erlauben, meinen Code wartbar zu strukturieren. Und das bietet mir beispielsweise C++.

    skriptsprachen (und gerade diese!) haben leistungsfähige sprachfeatures und riesige libraries für alle erdenklichen wünsche. man kann mit skriptsprachen sehr wohl strukturierten und wartbaren code schreiben. es stimmt nicht, dass skriptsprachen nur für quick'n'dirty hacks taugen. du darfst heutige scriptsprachen nicht mit dem 'commodore-basic' der 80'er jahre verwechseln.
    🙂



  • scripting-fan schrieb:

    reine, nur-interpretierte, skriptsprachen sind nicht so toll für rechenintensive anwendungen, wobei das bei einem DBMS eher weniger wichtiger zu sein scheint (und für webapplikationen übrigens auch nicht):
    --> http://java-source.net/open-source/database-engines

    Sorry, aber das halte ich für wenig repräsentativ. Ich kann auch eine DBMS in PHP skripten, wenn ich langeweile habe. Deshalb ist es immer noch nicht performant. Gerade bei RDBMS ist die Performance ein extrem(!) ausschlaggebendes Kriterium. Die Datenbank selbst muss schließlich Abfragen optimieren, und das kann sie schlecht machen, wenn ihr eigener Code der Flaschenhals ist.

    Wenn man allerdings nur eine kleine Webseite betreibt, ist die Performance natürlich zweitrangig. Deshalb ist sie aber nicht automatisch beim übergeordneten System irrelevant!



  • árn[y]ék schrieb:

    Gerade bei RDBMS ist die Performance ein extrem(!) ausschlaggebendes Kriterium. Die Datenbank selbst muss schließlich Abfragen optimieren, und das kann sie schlecht machen, wenn ihr eigener Code der Flaschenhals ist.

    bei 'ner datenbankanwendung gibt's viele flaschenhälse. angefangen bei der leistungsfähigkeit von file- und betriebssystem über schlechtes dantenbankdesign bis hin zu übermässig komplexen abfragen. ich glaube nicht, dass die wahl 'compilersprache' oder 'skriptsprache' eine so grosse rolle spielt. ich kann mich aber auch täuschen.
    🙂



  • Artchi schrieb:

    dsfsawiwidsj schrieb:

    Amazon ist vielleicht auch kein wirklich gutes Beispiel für eine C++-Webanwendung, nachdem Amazon irgendwie eh alles quer durch die Bank verwendet. Soweit ich weiß wird ja nach wie vor gesagt, dass z.B. das Frontend in Perl implementiert ist, teilweise soll man auch Servlets auf einem JBoss finden.

    Yo, wenns nicht 100% C++ ist, ist C++ irrelevant. Ist klar.

    Bsp.: Adobes Lightroom ist zu 60% C++ und 40% LUA (für den Workflow). Was sagt uns das? das vieles heute mit Scriptsprachen gemacht wird, aber auf C++ nicht verzichtet werden kann. Wenn LUA C++ ersetzen könnte, wäre Lightroom sicherlich zu 100% in LUA entwickelt. Dem ist aber nicht so!

    Genauso sehe ich es bei Amazon: wenn zur Weihnachtszeit 1000 Bestellungen pro Sekunde eingehen (wie von Amazon im TV gesagt), wird es seinen Grund haben, das die noch C++ einsetzen. Nimm mal bei Amazon den C++-Anteil weg! Wären dann noch 1000 Bestellungen pro Sekunde möglich? Ich denke nicht! Sonst hätte man sicherlich kein C++ genommen. Also ist die Web-Anwendungen sehr wohl auch in C++ entwickelt. Wer meint, eine Web-Anwendung besteht ausschliesslich aus der Erzeugung von HTML, ist ganz schön kleingeistig und denkt nicht darüber nach, was eigentlich Amazon wirklich ausmacht: Waren suchen, ansehen und bestellen! Halt ein Shop-System! Das HTML ist nur Mittel zum Zweck. Hätte auch ein 3270-Terminalemulation gereicht um Amazon zu entwickeln... um es mal krass darzustellen.

    Dieses Thema hatten wir schonmal:

    tfa schrieb:

    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/

    Insgesamt finde ich die hier gebrachten Beispiele nicht gerade überzeugend: Eine Internet-Handelsplattform, die u.a. Legacy-Code in C++ (nach Hörensagen) verwendet. Einen Offline-Reader würde ich auch nicht unbedingt als Paradebeispiel für eine Webapplikation ansehen wollen. Oder gibt es den auch Online? Irgendeinen Grund muss es also geben, warum z.B. Wikipedia in einer vermeindlich langsamen und ressourcenhungrigen Skriptsprache und nicht im schnellen C++ entwickelt. Im Zweifel Entwicklerperformance wertvoller als Prozessorzyklen.



  • Artchi schrieb:

    dsfsawiwidsj schrieb:

    Amazon ist vielleicht auch kein wirklich gutes Beispiel für eine C++-Webanwendung, nachdem Amazon irgendwie eh alles quer durch die Bank verwendet. Soweit ich weiß wird ja nach wie vor gesagt, dass z.B. das Frontend in Perl implementiert ist, teilweise soll man auch Servlets auf einem JBoss finden.

    Yo, wenns nicht 100% C++ ist, ist C++ irrelevant. Ist klar.

    Bsp.: Adobes Lightroom ist zu 60% C++ und 40% LUA (für den Workflow). Was sagt uns das? das vieles heute mit Scriptsprachen gemacht wird, aber auf C++ nicht verzichtet werden kann. Wenn LUA C++ ersetzen könnte, wäre Lightroom sicherlich zu 100% in LUA entwickelt. Dem ist aber nicht so!

    Genauso sehe ich es bei Amazon: wenn zur Weihnachtszeit 1000 Bestellungen pro Sekunde eingehen (wie von Amazon im TV gesagt), wird es seinen Grund haben, das die noch C++ einsetzen. Nimm mal bei Amazon den C++-Anteil weg! Wären dann noch 1000 Bestellungen pro Sekunde möglich? Ich denke nicht! Sonst hätte man sicherlich kein C++ genommen. Also ist die Web-Anwendungen sehr wohl auch in C++ entwickelt. Wer meint, eine Web-Anwendung besteht ausschliesslich aus der Erzeugung von HTML, ist ganz schön kleingeistig und denkt nicht darüber nach, was eigentlich Amazon wirklich ausmacht: Waren suchen, ansehen und bestellen! Halt ein Shop-System! Das HTML ist nur Mittel zum Zweck. Hätte auch ein 3270-Terminalemulation gereicht um Amazon zu entwickeln... um es mal krass darzustellen.

    Ich weiß ehrlich gesagt überhaupt nicht, warum du gleich so schnippisch reagierst. Meine Aussage war lediglich, dass Amazon kein perfektes Beispiel für eine C++-Webanwendung ist, was ja auch stimmt, ohne dass ich dabei auch nur im geringsten erwähnt hätte, dass C++ deswegen dafür ungeignet ist, warum also gleich so reagieren?

    Übrigens dein Beispiel zu Adobe Lightroom zeigt uns nur, dass die Leute verzweifelt nach Alternativen zu C++ suchen, weil sie es einfach Leid sind mit derartig verkorksten Sprachen zu programmieren? (Sorry gleich mal an alle anderen C++-Programmierer, die sich dadurch angegriffen fühlen, aber Artchis unangemessenes Verhalten hier nervt mich einfach ..)



  • zet schrieb:

    Kann nicht sein, die Wikipedia DVD gibt es für Windows, tntnet nur für Linux und so.

    Na gut. Wenn es nicht sein kann, dann wirst Du wohl recht haben. Oder du liest z. B. http://de.wikipedia.org/wiki/Wikipedia:DVD oder http://www.pro-linux.de/news/2007/12031.html.

    scripting-fan schrieb:

    skriptsprachen (und gerade diese!) haben leistungsfähige sprachfeatures und riesige libraries für alle erdenklichen wünsche. man kann mit skriptsprachen sehr wohl strukturierten und wartbaren code schreiben. es stimmt nicht, dass skriptsprachen nur für quick'n'dirty hacks taugen. du darfst heutige scriptsprachen nicht mit dem 'commodore-basic' der 80'er jahre verwechseln.
    🙂

    Ich habe nicht behauptet, dass Skriptsprachen nur für quick'n'dirty Hacks taugen, obwohl die Sprachen häufig dazu verleiten.

    Meinst Du, "normale" Programmiersprachen hätten keine leistungsfähigen Sprachfeatures? Ich denke doch, dass gerade C++ sehr leistungsfähige Sprachfeatures hat. Und ich wollte die Möglichkeit schaffen, diese leistungsfähigen Sprachfeatures auch im Web zu nutzen. Sicher ist die Standardbibliothek nicht so umfangreich, wie beispielsweise von PHP. Das ist sicher ein Nachteil. Dessen muss man sich bewusst sein.

    Aber natürlich lassen sich mit Skriptsprachen auch leistungsfähige und gut strukturierte Applikationen schreiben. Dennoch werden viele Programme nicht in Skriptsprachen entwickelt. Das hat gute Gründe. Ich wundere mich nur, warum diese Gründe für Webapplikationen nicht gelten sollen.



  • tntnet schrieb:

    Dennoch werden viele Programme nicht in Skriptsprachen entwickelt. Das hat gute Gründe. Ich wundere mich nur, warum diese Gründe für Webapplikationen nicht gelten sollen.

    ich denke, es liegt einfach daran, dass die vorteile überwiegen und die nachteile vernachlässigbar sind. skriptsprachen-codes sind z.b. in hohem masse plattformunabhängig. es ist meistens unerheblich (oder mit minimalsten anpassungen verbunden), ob ich meine php-codes unter einem apachen ausführen lasse, der auf einer sun/win/bsd/whatever-box läuft. nicht so mit kompilierten codes. läuft nicht z.b. dein tntnet-system nur unter linux?
    btw, es gibt auch sowas: http://www.softintegration.com/
    das wäre vielleicht auch nicht schlecht, wenn man webapplication unbedingt in C schreiben will.
    🙂


Anmelden zum Antworten