POLL (Programmiersprachen)



  • SideWinder schrieb:

    rüdiger schrieb:

    Das ist absoluter Blödsinn den du da schreibst.

    Und das ist jetzt wohl deine 0815-Antwort? 😃

    0815-Antwort auf 0815-Side-Blödsinn

    rüdiger schrieb:

    1. handelt es sich bei dem Projekt um keine Entwicklung in einem wirtschaftlichen Umfeld, sondern um das Streben nach Perfektion. Daher ist es eh schwachsinnig irgend eine Vorstellung von Entwicklungskosten und co anzubringen.

    ...aber umbedingt an der Konfiguration beginnen - selbst ganz ohne Entwicklungskostendenken. Naja ich mische mich in euer Perfektionsprojekt nur ungern (dafür umso öfter :D) ein. Gehört auch im Rahmen des Threads nicht unbedingt dazu. Fakt bleibt: Projektplanung ist ein wichtiger Punkt in einem Projekt.

    Wer sagt überhaupt, das wir mit der Konfiguration angefangen haben? Ich glaube kaum, dass deine Kenntnisse der Interna dieses Projekts aussreichen um das wirklich beurteilen zu können.

    rüdiger schrieb:

    Und irgend wann lernst du sicher auch einmal, das 0815-Denken, 0815-Projekte, 0815-Programmiersprachen auch nur zu einem 0815-Gehalt führen und dass die Welt nicht hinter dem Tellerrand aufhört.

    Wenn man über Programmiersprachen redet muss man nunmal auch über 0815-Projekte reden. Sonst ist Prolog plötzlich die richtige Programmiersprache für eine MediaLibrary. Über ein 0815-Gehalt kommt man in erster Linie wenn man für Probleme die richtigen Lösungswege findet. Hier gilt es nunmal über den C++-Tellerrand hinauszuschauen. Ist C++ wirklich die beste Sprache wenn ich einen Pokerclient schreibe? Ist Java brauchbar für 3D-Programmierung? Ist mein Mini-/Riesen-Webportal wirklich mit EJB/PHP richtig bedient?

    Nein, man muss nicht über 0815-Projekte reden. Welche Programmiersprache und welche Werkzeuge die richtigen sind hängt vom Problem ab und ich schaffe mir kein künstliches 0815-Problem um dann zu sagen "hey, schaut die 0815-Lösung funktioniert. Also ist sie die beste". Außerdem schaue ich regelmäßig über den C++-Tellerrand. (Vermutlich deutlich öfters als du über deinen Java/C++-Tellerrand guckst). Ich habe hier auch nicht behauptet, dass C++ die beste Programmiersprache sei oder C++ gar für ein spezifisches Problem empfohlen.

    rüdiger schrieb:

    Und in der Realität), wird C++ sehr erfolgreich eingesetzt von sehr erfolgreichen Firmen, die damit sehr erfolgreich Geld machen, mit sehr realen und sehr erfolgreichen Produkten.

    Was genau willst du uns damit sagen? Full ACK auf jeden Fall.

    Das du nur rumtrollst.

    rüdiger schrieb:

    Wiederverwendbarkeit von Software ist einfach eine Frage, wie das in Firmen gehandhabt wird.

    Ich möchte die Anzahl der TCP-Socket-Bibliotheken für C++ nicht kennen *g*

    das sagt was aus?

    @this->that
    schein und sein. Wie willst du das beurteilen können? Das war ja auch das Ursprungsproblem des Threads aus dem dieser Thread entstanden ist.



  • SideWinder schrieb:

    finix schrieb:

    Aber gut, noch einmal: was meinst du mit "wesentlich objektorientierter (in Bezug auf Wiederverwendbarkeit)"?

    Steht doch bereits oben. Zum Beispiel kann ich von java.util.List ableiten wenn das sinnvoll ist, oder ich leite eine neue Implementation von java.util.LinkedList ab und verwende sie über das java.util.List-Interface. Bridge-Pattern sei dank.

    Das hat ja mal rein gar nichts mit dem Bridge-Pattern zu tun, sondern eher mit konsequenter Anwendung des OCP.


  • Mod

    Das du dich immer gleich persönlich angegriffen fühlst. Ich spendier' dir bei Gelegenheit mal ein Bier 🤡

    MfG SideWinder


  • Mod

    Apollon schrieb:

    Das hat ja mal rein gar nichts mit dem Bridge-Pattern zu tun, sondern eher mit konsequenter Anwendung des OCP.

    Warum hat das nichts mit dem Bridge-Pattern zu tun?

    MfG SideWinder



  • Wenn Du dir das Pattern nochmal anschaust, wirst Du erkennen, dass Abstraction eine Referenz auf Implementor haelt und die Aufrufe delegiert (aehnlich wie bei Strategy oder Object-Adapter). Desweiteren wirst Du erkennen, dass Du einer Referenz auf Abstraction eine RefinedAbstraction zuweisen kannst, welche wiederrum eine Referenz auf RefinedImplementor haelt. Dies geht in dem von dir beschriebenem Beispiel nicht. Vielmehr hast Du einfach nur die Vererbung beschrieben.

    In der STL wird uebrigens auch Abstraktion von der Implementierung getrennt (zumindest bei Containern bei denen es Sinn macht). Allerdings auf eine andere Art. Austauschbare Klassen bieten da gleiche Schnittstelle an und die Abstraktion geschieht im Kopf, anstatt im Code. Nachteil: Implementierung ist nicht zur Laufzeit austauschbar.



  • Hab jetzt den Thread nicht gelesen, aber das Resultat ist wirklich erstaunlich 😮 🤡



  • Ja, immer wieder erstaunlich was eine bestimmt Gruppierung hier im Forum bzgl. wöchlichem Flamewar leistet.



  • Artchi schrieb:

    Ja, immer wieder erstaunlich was eine bestimmt Gruppierung hier im Forum bzgl. wöchlichem Flamewar leistet.

    Du verwechselst Präferenzen mit Fakten. Die Statistiken, die hier manchmal über Job-Angebote und so gepostet werden, sind völlig unabhängig davon, ob hier 5% Java bevorzugen oder 95%. Das ändert diese Statistiken nicht.



  • Es wär ja besser, der Thread würde schnell versinken, aber...

    Java is für fleißige,
    C++ für faule Programmierer.

    ...

    :p

    c ya, cPanther



  • ajcPanther schrieb:

    Es wär ja besser, der Thread würde schnell versinken, aber...

    Java is für fleißige,
    C++ für faule Programmierer.

    ...

    :p

    c ya, cPanther

    Ich glaub ja eher umgekehrt 🤡



  • Ich glaub ja eher umgekehrt

    Nee 😃 , is schon bewusst so gewählt, Java fördert fleiß.

    c ya, cPanther



  • Apollon schrieb:

    SideWinder schrieb:

    finix schrieb:

    Aber gut, noch einmal: was meinst du mit "wesentlich objektorientierter (in Bezug auf Wiederverwendbarkeit)"?

    Steht doch bereits oben. Zum Beispiel kann ich von java.util.List ableiten wenn das sinnvoll ist, oder ich leite eine neue Implementation von java.util.LinkedList ab und verwende sie über das java.util.List-Interface. Bridge-Pattern sei dank.

    Das hat ja mal rein gar nichts mit dem Bridge-Pattern zu tun, sondern eher mit konsequenter Anwendung des OCP.

    bei vererbung von containerklasse ist sehr viel vorsicht angebracht: http://de.wikipedia.org/wiki/Liskovsches_Substitutionsprinzip
    bzwl. allgemein bei vererbung von implementation.

    nichtsdestotrotz finde ich, dass die stl hätte mehr objektorientiert designed werden können. besonders wie die streams aufgebaut sind, finde ich ganz schlimm. 🙄



  • mathik schrieb:

    nichtsdestotrotz finde ich, dass die stl hätte mehr objektorientiert designed werden können. besonders wie die streams aufgebaut sind, finde ich ganz schlimm. 🙄

    die sind nicht Objektorientiert?



  • Lustig, ich hätte ja einen Haufen Kritikpunkte an <iostream> anzubringen, aber der wäre mir bestimmt nicht soo bald eingefallen. 😉



  • rüdiger schrieb:

    mathik schrieb:

    nichtsdestotrotz finde ich, dass die stl hätte mehr objektorientiert designed werden können. besonders wie die streams aufgebaut sind, finde ich ganz schlimm. 🙄

    die sind nicht Objektorientiert?

    was heißt schon objektorientiert. nur weil es in einer klasse gepackt ist?

    versuch mal die streams in c++ und in java zu erweitern. in java wird das decorator-pattern angewandt, was die sache um einiges einfacher, intuitiver und flexibler macht.



  • mathik schrieb:

    rüdiger schrieb:

    mathik schrieb:

    nichtsdestotrotz finde ich, dass die stl hätte mehr objektorientiert designed werden können. besonders wie die streams aufgebaut sind, finde ich ganz schlimm. 🙄

    die sind nicht Objektorientiert?

    was heißt schon objektorientiert. nur weil es in einer klasse gepackt ist?

    versuch mal die streams in c++ und in java zu erweitern. in java wird das decorator-pattern angewandt, was die sache um einiges einfacher, intuitiver und flexibler macht.

    Jetzt sind wir wieder bei dem Problem mit der Definition von OOP. Also ja, ich halte sie für Objektorientiert, da man Signale an Objekte schickt. Außerdem wird ja sogar Vererbung benutzt. Aber gut "decorator-pattern" (was immer das seien mag), habe ich bisher in noch keiner Definition von Objektorientiert gehört. Aber du kannst mich ja sicher aufklären.

    btw. bei C++ kann man Streams mit Vererbung erweitern, also das hört sich zumindest ziemlich Objektorientiert an 😃

    nman schrieb:

    Lustig, ich hätte ja einen Haufen Kritikpunkte an <iostream> anzubringen, aber der wäre mir bestimmt nicht soo bald eingefallen. 😉

    Wenn es eine Bewertung für die "Objektorientiertheit" gäbe, wären die Streams vermutlich das Objektorientierteste an der ganzen Standard Library



  • mathik schrieb:

    nichtsdestotrotz finde ich, dass die stl hätte mehr objektorientiert designed werden können. besonders wie die streams aufgebaut sind, finde ich ganz schlimm. 🙄

    Wie schon meine vorredner sagten: die stream lib ist an anderen stellen nicht ganz so toll. Wobei man sagen muss, dass genau die objektorientiertheit an einigen stellen der lib das Bein bricht. thema templates+virtual(merkt man vorallem an der codecvt facet, die wär so cool, wenn man die funktionen mit back inserter iteratoren ansprechen könnte... stattdessen gibts an anderer stelle ne funktion, die nen size_t als maximal rückgabewert annimmt, und nen int zurückgibt kopf->wand).



  • rüdiger schrieb:

    mathik schrieb:

    rüdiger schrieb:

    mathik schrieb:

    nichtsdestotrotz finde ich, dass die stl hätte mehr objektorientiert designed werden können. besonders wie die streams aufgebaut sind, finde ich ganz schlimm. 🙄

    die sind nicht Objektorientiert?

    was heißt schon objektorientiert. nur weil es in einer klasse gepackt ist?

    versuch mal die streams in c++ und in java zu erweitern. in java wird das decorator-pattern angewandt, was die sache um einiges einfacher, intuitiver und flexibler macht.

    Jetzt sind wir wieder bei dem Problem mit der Definition von OOP. Also ja, ich halte sie für Objektorientiert, da man Signale an Objekte schickt. Außerdem wird ja sogar Vererbung benutzt. Aber gut "decorator-pattern" (was immer das seien mag), habe ich bisher in noch keiner Definition von Objektorientiert gehört. Aber du kannst mich ja sicher aufklären.

    btw. bei C++ kann man Streams mit Vererbung erweitern, also das hört sich zumindest ziemlich Objektorientiert an 😃

    nman schrieb:

    Lustig, ich hätte ja einen Haufen Kritikpunkte an <iostream> anzubringen, aber der wäre mir bestimmt nicht soo bald eingefallen. 😉

    Wenn es eine Bewertung für die "Objektorientiertheit" gäbe, wären die Streams vermutlich das Objektorientierteste an der ganzen Standard Library

    von design patterns muss eigentlich jeder schon mal was gehört haben, wenn er den anspruch erwägen will, objektorientiert programmieren zu können. ich meine ich hätte hier im c++-magazin auch eine einführung dazu gesehen.

    zum thema vererbung: es ist ein sehr mächtiges werkzeug in OO, das aber viel zu oft falsch angewandt wird, was zu schwer wartbaren spaghetticode führt. dazu sind folgende artikel lesenswert:
    http://de.wikipedia.org/wiki/Liskovsches_Substitutionsprinzip
    http://www.javaworld.com/javaworld/jw-08-2003/jw-0801-toolbox.html



  • rüdiger wird sicherlich wissen, was design-patterns sind. Ihm ging es um das decorator-pattern speziell. Mir würde jetzt auch nicht einfallen, was das Pattern macht (kann man aber nachschlagen, deshalb nicht so schlimm). Ich bezweifel aber, das man alle Java- und C#-Techniken (oh man, ich habe das Wort Java benutzt, das gibt Krieg) auf C++ übertragen und somit kennen muß. Denn genauso kann es umgekehrt sein: erzähl mal einem Java-/C#-Programmierer was von Hardcore-C++-Designtechniken. Der wird dich mit staunenden und unwissenden Augen anschauen. Aber das ist nicht schlimm, weil er nunmal kein C++ programmiert.


  • Mod

    Artchi schrieb:

    rüdiger wird sicherlich wissen, was design-patterns sind. Ihm ging es um das decorator-pattern speziell. Mir würde jetzt auch nicht einfallen, was das Pattern macht (kann man aber nachschlagen, deshalb nicht so schlimm). Ich bezweifel aber, das man alle Java- und C#-Techniken (oh man, ich habe das Wort Java benutzt, das gibt Krieg) auf C++ übertragen und somit kennen muß. Denn genauso kann es umgekehrt sein: erzähl mal einem Java-/C#-Programmierer was von Hardcore-C++-Designtechniken. Der wird dich mit staunenden und unwissenden Augen anschauen. Aber das ist nicht schlimm, weil er nunmal kein C++ programmiert.

    Design Patterns sind doch nicht abhängig von Java. Das du mit generischer C++-Hardcore-Programmierung einen Java-Prgogrammierer (der so gar nicht programmieren kann) beeindrucken kannst, klar. Aber alles was objektorientiert ist (und somit in beiden Sprachen möglich sein sollte) kennen auch Programmierer beider Sprachen.

    MfG SideWinder


Anmelden zum Antworten