Konzept von .NET und C++



  • gastbeobachter schrieb:

    dot schrieb:

    [...]

    Gut, hoffentlich hast du mitgekriegt, dass deine Aussage:
    > Gerade für richtig große Serveranwendungen wie z.B. Facebook ist das wichtig, weil dort kostet jeder Takt Geld...

    Genau dem Gegenteil des Status Quo entspricht.

    Ich dachte zumindest mein erster Link würde das Gegenteil zeigen, denn WoW ist immerhin eine der größten Serveranwendungen die ich kenne. Ich find das Interview leider nimmer, aber es gab da eben irgendwo ein sehr interessantes Interview mit einem Software Engineer von ArenaNet und der hat da erzählt dass die ihre besten Optimization Gurus interessanterweise nicht auf den Game Client, sondern auf die Server angesetzt haben und die dort teilweise in Assembler rumhacken. Eben genau weil es sich finanziell auszahlt...

    Rat mal in was facebook diese neue VM gecodet haben wird. Und der Grund wieso facebook all den Aufwand betreibt ist ja trotzdem unverändert: Weil der normale Kram nicht schnell genug ist. Performance ist gerade bei den ganz großen Webanwendungen also eben doch nicht nebensächlich. Und genau das ist ja meine ursprüngliche Aussage...

    Ansonsten kannst du ja einfach auch mal hier schauen was google so für Leute sucht: http://www.google.com/intl/en/jobs/search/index.html# 😉



  • 314159265358979 schrieb:

    Ich sag dir, was dagegen spricht: Alle wollen größere Standard-Lib, aber niemand submittet einen Proposal. Das Standard-Kommitee hat explizit nach High-Level Elementen gefragt, wie XML, Unicode, HTTP, etc. etc.
    Traurig, aber wahr.

    Kein Wunder. Ein "Kommitee", Konsortium oder sonstwas ist einfach schneckenlahm. Sowohl hinter Java als auch hinter .NET stecken grosse Unternehmen. Und so ist auch die Bibliothek gross mit allen möglichen Krempel drin. Hinter C++ steckt kein Unternehmen, dass Interesse daran haben könnte, möglichst viele Anwendungsbereiche mit möglichst wenig Aufwand abzudecken.



  • gastbeobachter schrieb:

    dot schrieb:

    [...]

    Gut, hoffentlich hast du mitgekriegt, dass deine Aussage:
    > Gerade für richtig große Serveranwendungen wie z.B. Facebook ist das wichtig, weil dort kostet jeder Takt Geld...

    Genau dem Gegenteil des Status Quo entspricht.

    Von C++ verabschiedet Facebook sich übrigens wieder, in Zukunft läuft deren PHP Code in einer eigenen VM: https://www.facebook.com/note.php?note_id=10150415177928920&hn=2

    Das Ziel war es auch nicht c++ code zu generieren, sondern Binaries, dabei war C++ nur ein umweg und jetzt generiert man die binaries direkt, aber scheinbar nur deswegen, weil es schneller ist, von 8s auf 5s runter. Entsprechen widerlegst du deine "Genau dem Gegenteil des Status Quo enspricht.", Performance ist bei Servern extrem wichtig. Bei der Masse mit der Facebook, Twitter, Google etc. umgehen, ist das eine Entscheidung zwischen guter Rentabilität und Pleite, denn sie haben nunmal kaum andere Kosten. Google bezahlt seine Mitarbeiter sehr gut, weil sie nicht viel vom Kuchen ausmachen, auch bei facebook sind das massige Kosten und wenn die sagen, dass reines php nur 0.2x der Performance hat, bedeutet das 5mal die Kosten.

    Kann man auch an einigen Stellen nachlesen z.B.

    http://www.businessweek.com/the_thread/techbeat/archives/2009/09/facebook_climbs.html schrieb:

    That’s a huge amount of traffic to support, and the site’s accumulating stockpile of photos, videos, and other content requires an ever greater number of expensive servers. This was a serious problem for Facebook as recently as March, when my colleague Spencer Ante reported that it was seeking $100 million in debt financing directly related to server costs.

    Da kannst du mehr lesen was deren kosten sind nur beim Storm und "Facilities"
    http://www.datacenterknowledge.com/archives/2010/09/16/facebook-50-million-a-year-on-data-centers/

    Facebook 2009 gerade 1000 Angestellte erreicht und "As of April 2011, Facebook has over 2000 employees, and offices in 15 countries", die Kosten bei den Angestellten haben sich also verdoppelt in 2 Jahren, die Server Anzahl verdoppelt sich alle 6 Monate:
    http://downloadsquad.switched.com/2010/06/29/facebook-doubles-its-server-count-from-30-000-to-60-000-in-just-6-months/
    Wenn sie 5mal langsammere Seiten haben, brauchen sie statt 60000 dann eher 300000 Server.

    Irgendwann ist Performance bei jedem Server kritisch, oder bist du hier noch nicht lange genug um zu wissen, dass die Suche hier mal aus diesem Grund scheinbar ausgeschaltet war?
    Eine Suche ist teuer, um genau zu sein kostet sie http://news.bbc.co.uk/2/hi/7823387.stm
    und Google limitiert dich nicht, ganz im Gegenteil, jetzt hast du sogar beim Tippen live resultate, das sind nun pro Buchstabe die Kosten die mal beim Suchen entstanden und Google hat extreme Bestreben was du manchmal in Projekten wie Snappy sehen kannst.

    Ein Grund weshalb z.B. IBM so teure Server verkaufen kann, ist dass du ihre Softwarelizens dazu bekommst. Der Server mag dich 5mal soviel kosten wie eine Linux Kiste (IBM verbaut sogar mehr CPUs als du nutzt, sodass du irgendwann mal ein "update" kaufen kannst, ohne dass jemand vorbeikommen muss, weil die Margen so irrsinnig sind), ist aber dank hochoptimierter Datenbanken usw. Kosteneffektiver. Es gibt sehr viele Engineers die nichts anderes machen als zu optimieren. Firmen wie z.B. Intel haben ihre eigenen Compiler und auch Support Engineers die von Kunde zu Kunde fliegen und deren Server mit deren eigenen Tools auf trap bringen.
    Selbst bei Java gab es neben der SE auch eine Server Edition (ich glaube das wurde mal in Hotspot Compiler/VM umbenannt?) und die Server versionen waren immer besser (und damals auch Teuer), weil die Kunden nunmal lieber ihren Fortran/C++ code behalten, wenn die Kosten bei den Servern niedriger sind.

    Es geht immer um kosten, und eine Server Software wird einmal geschrieben, aber irre oft benutzt. Eine schlecht optimierte Software setzt sich nicht durch, entsprechend macht man es entweder am besten, oder garnicht, irgendwas dazwischen gibt es nur, wenn es Gratis angeboten wird.



  • Das ist das Ende von C++ schrieb:

    Die STL ist lachhaft winzig.

    Erst jetzt wurde Multithreading in den Standard aufgenommen. Daran sieht man schon wie völlig veraltet das ganze Konzept ist. Damit meine ich das Konzept, dass man nichts zahlen muss was man nicht benötigt. Ist ja wunderbar für irgendwelche µC-Frickler, geht aber an den Anforderungen einer Desktop- oder Serversoftware (nun auch Mobile dank hoher Rechenleistung) vorbei.

    Für C++ und die STL hätte es schon vor 10-15 Jahren zwei Ausprägungen geben müssen. Einmal Highlevel mit allen Annehmlichkeiten eines richtigen Frameworks und einmal Lowlevel für die Toasterprogrammierer.

    Die Sprache ist gut, das drumherum eine Katastrophe.

    Du hast keine Ahnung. C++ ist eine Katastrophe. Die Sprache hat soviel Müll von C übernommen, der mit neuem Müll kombiniert wurde, dass sie total fehleranfällig ist, siehe z.B. die ganzen Verkrampfungen die für Safe bool gemacht werden müssen http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Safe_bool. Das einzige Argument, dass für C++ spricht, ist die Geschwindigkeit.





  • Haben sie ja auch nur 20 Jahre daür gebraucht, um das zu fixen.
    Haben sie das auch gefixt, oder compiliert das immer noch?

    int main()
    {
    	bool b = static_cast<int>(.9f);
    }
    

    Oder das?

    int main()
    {
    	int i;
    	switch(i){
    		while(i) 
    		default:
    		case 9:
    		static_cast<int>("muh",.9f);
    	}	
    }
    


  • sorry schrieb:

    Haben sie ja auch nur 20 Jahre daür gebraucht, um das zu fixen.
    Haben sie das auch gefixt, oder compiliert das immer noch?

    int main()
    {
    	bool b = static_cast<int>(.9f);
    }
    

    Oder das?

    int main()
    {
    	int i;
    	switch(i){
    		while(i) 
    		default:
    		case 9:
    		static_cast<int>("muh",.9f);
    	}	
    }
    

    Ja, aber genau sowas schreiben nur Vollidioten und fliegen hochkant raus. Das ist nicht ein "Bug", dass ist einfach Crap Code. Wer sowas schreibt kann einfach kein C++- das ist alles.



  • sorry schrieb:

    oder compiliert das immer noch?

    Ja. Was willst du ändern? Kein Cast von float nach int möglich? Quatsch. Keine implizite Konvertierung von int nach bool? Ja, wäre zumindest denkbar.

    Dein switch Beispiel hat übrigens UB da i nicht initialisiert ist, aber das lassen wir mal.
    Man könnte es natürlich so definieren, dass jedes case seinen eigenen Scope bekommt und dazwischen kein Code stehen darf. Dann hätte man aber irgendwie das Schöne am C++ switch umgehauen, da kann ich ja auch gleich if-else nutzen, da jetzt alle switch Vorteile weg sind. Und das alles nur um irgendwelche Konstrukte zu vermeiden, deren Vorkommen in der echten Welt wohl mehr als unwahrscheinlich sind?* Nein, ich denke nicht.

    * Also so einen Fehler habe ich wirklich noch nie gemacht, geschweige denn dass ich davon gehört hätte. Und es springt ja auch sofort ins Auge.



  • cooky451 schrieb:

    sorry schrieb:

    oder compiliert das immer noch?

    Ja. Was willst du ändern? Kein Cast von float nach int möglich? Quatsch.

    Oh man... 🙄

    Dein switch Beispiel hat übrigens UB da i nicht initialisiert ist, aber das lassen wir mal.

    Überleg mal

    Man könnte es natürlich so definieren, dass jedes case seinen eigenen Scope bekommt und dazwischen kein Code stehen darf.

    Nein, du hast ja garnichts an dem Code verstanden.

    Hacker schrieb:

    Ja, aber genau sowas schreiben nur Vollidioten und fliegen hochkant raus. Das ist nicht ein "Bug", dass ist einfach Crap Code. Wer sowas schreibt kann einfach kein C++- das ist alles.

    Den Komma Fehler findet man häufiger als du denkst, manchmal auch nur durch Copy&Paste, hab ich sogar schon in der Firma in der ich arbeite gesehen, wenn auch nicht so extrem, aber hochkant fliegt deswegen keiner raus.

    Das Problem ist doch, dass hier immer wieder so tolle Sachen angepriesen werden, dass man soviele Fehler mit C++ schon zur Kompilezeit finden kann, aber eigentlich komplimiert eine ganze Menge Müll mit C++ und oft ist das nicht so offensichtlich wie im meinem übertriebenen Beispiel.



  • hipster schrieb:

    Wenn sie 5mal langsammere Seiten haben, brauchen sie statt 60000 dann eher 300000 Server.

    Vermutlich deutlich mehr. Das Wachstum ist ja in den seltensten Fällen linear. Du brauchst dann ja immer so etwas wie einen Locking-Server, extra Datenbank-Server, zusätzliche Backups/Absicherungen, etc. Und auch wenn ein Server nichts kostet. 5mal mehr Server bedeuten ja in dem Fall mehrere neue Rechenzentren und da sehen die Kosten gleich ganz anders aus. Allein schon vom zusätzlichen Personal.

    Und wenn man dem Alexandrescu bei GoingNative zuhört, dann scheint Facebook ja massiv C++ einzusetzen. Ob sie C++ als Zwischensprache für PHP einsetzen hat damit ja wenig zu tun. Da ist es ja nur eine Zwischensprache. Die neue VM wird sicher in C++ geschrieben.

    C++ wird schon seit 20 Jahren regelmäßig für tot erklärt (Einige Firmen haben ja ganze Marketingabteilungen beauftragt und Millionen ausgegeben, um das zu vermitteln). Mal ist es die fehlende VirtualMachine oder die zu kleine Standardbibliothek. Aber komischerweise bleibt C++ eine der wichtigsten Sprachen.

    Und ja, es gibt Schwachstellen in der Sprache. Aber jede Sprache hat Schwachstellen. Sicher hat C++ viel Blödsinn von C geerbt aber wenn C++ nicht so massiv C kompatibel gewesen wäre, dann hätte es sich eben niemals durchgesetzt. Und wie sagte eine weise Person einst "There are only two kinds of languages: the ones people complain about and the ones nobody uses." (Bjarne Stroustrup).



  • cooky451 schrieb:

    http://stackoverflow.com/questions/6242768/is-the-safe-bool-idiom-obsolete-in-c11

    Wer solche Verkrampfungen schreibt ("Reusable Solution"), sollte geschlagen werden. Derjenige konzentriert sich nicht mehr auf die Aufgabe und erhebt die Sprache selbst zum zentralen Inhalt seiner Tätigkeit.

    Ist leider ziemlich verbreitet mit C++ aber man kann es vermeiden.



  • sorry schrieb:

    Oh man... 🙄
    Überleg mal
    Nein, du hast ja garnichts an dem Code verstanden.

    Ja, ja das sind Argumente die einsichtig sind. Du hast natürlich völlig recht. 👍



  • cooky451 schrieb:

    sorry schrieb:

    Oh man... 🙄
    Überleg mal
    Nein, du hast ja garnichts an dem Code verstanden.

    Ja, ja das sind Argumente die einsichtig sind. Du hast natürlich völlig recht. 👍

    Erwartest du, dass ich auf deine "Argumente" eingehe, wenn sie vollkommen an dem vorbeigehen, was ich geschrieben hab. 🙄

    rüdiger schrieb:

    "There are only two kinds of languages: the ones people complain about and the ones nobody uses." (Bjarne Stroustrup).

    http://www.c-plusplus.net/forum/298131



  • Was ich mit "hochkant rausfliegen" meine ist, dass man aus dem Genre hochkant rausfliegt. Wenn du allen ernstes im Forum sowas postest.



  • sorry schrieb:

    Erwartest du, dass ich auf deine "Argumente" eingehe, wenn sie vollkommen an dem vorbeigehen, was ich geschrieben hab. 🙄

    Du wünschst dir wohl offensichtlich, dass das was du da geschrieben hast, nicht kompiliert. Ich habe erklärt, warum es Sinn machen kann, dass es genau so kompiliert. Anstatt also dumme Kommentare von dir zu geben, könntest du ja mal eine Definition vorschlagen, so wie du sie haben möchtest.



  • Hacker schrieb:

    Was ich mit "hochkant rausfliegen" meine ist, dass man aus dem Genre hochkant rausfliegt. Wenn du allen ernstes im Forum sowas postest.

    Aus dem Genre "C++ Fanboys" raus? Da will ich garnicht drin sein. Ich bin im Genre "Ich programmiere schon Jahre lang mit C++ und weiß, was man damit alles anstellen kann und durfte schon einige Bugs von anderen Leuten fixen, die in anderen Sprachen noch nicht mal kompiliert hätten." hustbaer ist nicht der einzige, der sowas http://www.c-plusplus.net/forum/299379 findet. Ich hab sogar schon schlimmeres gefunden.

    cooky451 schrieb:

    sorry schrieb:

    Erwartest du, dass ich auf deine "Argumente" eingehe, wenn sie vollkommen an dem vorbeigehen, was ich geschrieben hab. 🙄

    Du wünschst dir wohl offensichtlich, dass das was du da geschrieben hast, nicht kompiliert. Ich habe erklärt, warum es Sinn machen kann, dass es genau so kompiliert. Anstatt also dumme Kommentare von dir zu geben, könntest du ja mal eine Definition vorschlagen, so wie du sie haben möchtest.

    Lass gut sein, du erklärst nur das falsche. Mit deinem ersten Satz

    cooky451 schrieb:

    Was willst du ändern? Kein Cast von float nach int möglich?

    hast du dich schon disqualifiziert.



  • sorry schrieb:

    hast du dich schon disqualifiziert.

    Wie süß ihm gehen die Argumente aus und jetzt macht er einen auf Unantastbar. 🕶



  • sorry sorry schrieb:

    sorry schrieb:

    hast du dich schon disqualifiziert.

    Wie süß ihm gehen die Argumente aus und jetzt macht er einen auf Unantastbar. 🕶

    PI, bist du das?



  • Spinnst du?



  • 314159265358979 schrieb:

    Spinnst du?

    Was denn? Du benutzt doch auch so oft "süß". 😃


Anmelden zum Antworten