Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: c# / c++ /c ?

  1. #11
    Das Leben ist der Lehrer Avatar von DoS
    Registriert seit
    18.08.2008
    Beiträge
    528

    Standard

    "Das ist allerdings noch keine Rechtfertigung mit Verallgemeinerungen um sich zu werfen "

    Ok, da war ich ungenau
    . Allerdings ist die Wahrscheinlichkeit dann (wenn mehrere Leute schon C&P nutzen) höher, dass man später auch C&P nutzt.

    "sind die Systeme heute so Leistungsfähig das es so oder so kaum ins Gewicht fällt"


    Da hast du bei Desktop PCs recht. Allerdings gibt es auch immer mehr Benutzer von Notebooks (lange Akkulaufzeit, einigermaßen großer Bildschirm 13/15 Zoll, einigermaßen leicht und schlechteren CPU) bzw. Netbooks. Ich denke schon, dass die Laufzeitübersetzung bei größeren Programmen etwas ausmacht.


    Balast hatte ich versucht mit dem unglücklichen Beispiel der Strings zu erklären. Strings (STL) machen einfach selber automatisch mehr gegenüber den Cstrings. Sind dadurch fehlerunanfälliger, aber auch perfomancetechnisch gesehen schlecher. Mit Balast meinte ich also automatische Prüfungen usw. die man nicht zwingend braucht, sondern nur das Leben erleichtern.


    "Das ist aber bei C/C++ meiner Auffassungsgabe nicht anders. "


    Doch^^, denn bei C/C++ lernt man viel genauer, wie das Interne funktioniert. Am Beispiel der Cstrings versteht man also, dass das in Wirklichkeit char-Arrays sind, die sich mit einer Nullterminierung abschließen.


    "Des weiteren lässt sich das dekompilieren mit verschiedenen Techniken zumindest erschweren"


    Ich denke du redest von Obfuscatoren u. a. . Das stimmt zwar, allerdings ist das noch lange nicht so schwer, wie bei C/C++.


    Mit freundlichen Grüßen

    DoS
    Legende: "Gruß" = kaum Zeit, "MfG." = durchschnittlich viel Zeit und "Mit freundlichen Grüßen" = viel Zeit
    gehabt beim Posten.


    Folgende Personen genießen meine Hochschätzung: BlackBerry, EBFE, DizzY_D, OpCodez, l0dsb und H4x0r007.

  2. #12
    Richard Stallman Avatar von Sawyer
    Registriert seit
    26.07.2008
    Beiträge
    2.037

    Standard

    Doch^^, denn bei C/C++ lernt man viel genauer, wie das Interne funktioniert. Am Beispiel der Cstrings versteht man also, dass das in Wirklichkeit char-Arrays sind, die sich mit einer Nullterminierung abschließen.
    Für mich ist es einfach nur unschlüssig wenn man behauptet so etwas lernt man bei .NET nicht. Es ist doch wohl klar das ein String intern mit einem Char Array arbeitet. Also für mich ist das reine Auslegungssache.

    MfG, Sawyer

  3. #13
    Capt'n Crunch Avatar von EpicByte
    Registriert seit
    06.12.2008
    Beiträge
    930

    Standard

    Sowas hab ich gesucht^^
    Ne geile Diskussion welche Programmiersprache besser ist

  4. #14
    Richard Stallman Avatar von Sawyer
    Registriert seit
    26.07.2008
    Beiträge
    2.037

    Standard

    Es ist nicht meine Absicht klar zustellen welche Sprache besser ist, ich betohne immer wieder das es nicht 'die beste Sprache' gibt. Es ist abhängig davon welche Dinge man Realisieren will.

    MfG, Sawyer

  5. #15
    Das Leben ist der Lehrer Avatar von DoS
    Registriert seit
    18.08.2008
    Beiträge
    528

    Standard

    Zitat Zitat von Sawyer Beitrag anzeigen
    Für mich ist es einfach nur unschlüssig wenn man behauptet so etwas lernt man bei .NET nicht. Es ist doch wohl klar das ein String intern mit einem Char Array arbeitet. Also für mich ist das reine Auslegungssache.
    Zum Beispiel hier http://openbook.galileocomputing.de/csharp/ wurde nirgendwo gesagt, dass ein String intern ein Char-Array ist. Habe das kurz überflogen und Google zu Hilfe genommen. Für dich ist das klar ( du hast ja auch C++ gelernt ) ,aber für Leute die nur .NET-Sprachen lernen nicht.

    Die anderen Dinge, die ich in meinem Post zuvor erwähnt habe, sind nun mal in C++ vorteilhafter.

    Für den Threadersteller: Grundlegend kann man sagen, dass C# durch das Framework einfach viel mehr fertige Funktionen hat, die man einfach nutzen kann. Bei C++ hingegen musst du mehr selbst machen.

    Man kann also mit C# schneller ein Programm realisieren. Mit C++ dauert das länger, aber man sieht unter Umständen besser, was intern passiert, da man das selber programmieren muss.
    Zudem kann man mit C/C++ etwas schnellere Programme schreiben. C# ist dafür allerdings unter Umständen fehlerunanfälliger. Außerdem ist dein Code in C++ ohne weiteres hinzutun nach der Kompilierung "sicherer" als in C#.

    In einer Liste halte ich fest:

    C/C++ Vorteile:
    -etwas schneller beim Laufen (Programm)
    -mehr Einblick in das Innere (unter Umständen)
    -Quellcode ist erst einmal sicherer
    -braucht kein Framework auf dem Computer
    -portabel

    C# Vorteile:
    -Schneller Programme schreiben
    -fehlerunanfälliger (unter Umständen, wobei C/C++ auch Strings aus der STL einbinden kann)
    - einigermaßen ~portabel auf Linux durch Mono (Ich schreibe das jetzt, weil ich schon weiß das Sawyer das sonst später sagt )

    Das ist soviel , wie ich jetzt mit Zähne zusammen Beißen an Negatives an C++ entbehren kann . Ich hoffe das Sawyer jetzt auch einigermaßen zufrieden ist .

    Falls jemand noch weitere Vorteile in einer Sprache sieht, so fühle er sich frei uns davon zu infomieren .

    Mit freundlichen Grüßen
    DoS

    Legende: "Gruß" = kaum Zeit, "MfG." = durchschnittlich viel Zeit und "Mit freundlichen Grüßen" = viel Zeit
    gehabt beim Posten.


    Folgende Personen genießen meine Hochschätzung: BlackBerry, EBFE, DizzY_D, OpCodez, l0dsb und H4x0r007.

  6. #16
    Capt'n Crunch Avatar von EpicByte
    Registriert seit
    06.12.2008
    Beiträge
    930

    Standard

    Thx für die Zusammenfassung

    @Sawyer:
    Hab ich falsch formuliert ich meinte eher welche für mich die bessere ist ;D

  7. #17
    Trojaner Avatar von BA2SER
    Registriert seit
    25.08.2009
    Beiträge
    78

    Standard

    ich habe mir das buch c++ in 21 tagen geholt

    is alles sehr gut erklärt
    Geändert von BA2SER (02.04.2010 um 17:43 Uhr)



    ph342 m3 1337 h4xX02 5k111Zz!!!!!!1 11

  8. #18
    Edelgas Avatar von krypt0n
    Registriert seit
    31.03.2010
    Beiträge
    247

    Standard

    Zitat Zitat von Sawyer Beitrag anzeigen
    Der Unterschied von C und C++ liegt in erster Linie darin, das C++ Objektorientierte ist (was es allerdings nicht aufzwingt). Natürlich liefert C++ auch viele neue Bibliotheken mit. Im Endeffekt kannst du gleich mit C++ anfangen.
    Es macht sehr wohl Sinn sich erstmal mit C zu beschäftigen. Wie du sagst basiert C++ auf C90 und ist dazu auch vollständig kompatibel. Trotzdem gibt es im Verständnis einige grundlegende Differenzen (unter anderem die Möglichkeit OO zu programmieren). Darum würde ich eher empfehlen sich erst einmal in C einzuarbeiten und nachher darauf aufbauend noch C++ zu lernen (respektive die Dinge, die C++ "mehr hat").

    Zitat Zitat von Sawyer Beitrag anzeigen
    Die .NET Technologie ist innerhalb der Szene noch eher schwach vertreten. Das liegt zum einen daran das es eine Interpretierte Programmiersprache ist, welche zur Ausführung eine Laufzeitumgebung benötigt. Manche sehen das als Nachteil, ich jedoch nicht. Die daraus Resultierenden Vorteile wie: Automatische Speicherverwaltung, Programmoptimierungen und Anpassung zur Zielplattform sind nur einige Vorteile die daraus Resultieren.
    Garbage collection hört sich anfangs gut an, ist aber meistens doch nicht so magisch wie man es sich vorgestellt hat.
    Die anderen Vorteile sind nicht wirkliche Vorteile, Optimierung hat man schon beim Compiler.

    Zitat Zitat von Sawyer Beitrag anzeigen
    Im Business der Softwareentwicklung ist .NET eine etablierte und häufig verwendende Plattform zur modernen Softwareentwicklung.
    Es stimmt, dass .NET Sprachen mittlerweile ziemlich oft genutzt/gefordert werden, doch ist C(++) noch immer DIE Sprache schlechthin. Dies fällt also als Grund weg.

    Zitat Zitat von Sawyer Beitrag anzeigen
    Die geringere Performance ist zwar rein theoretisch da, fällt aber in der Praxis heutzutage kaum mehr auf (dank JIT-Compiler). Außerdem sind die Systeme heute so Leistungsfähig das es so oder so kaum ins Gewicht fällt. Was du allerdings mit "Balast" meinst kann ich nicht nachvollziehen. Es ist zwar richtig das .NET mit einer Zwischensprache arbeitet, jedoch dient das nur zur allgemeinen Verständigung der .NET Programme unter sich und natürlich für den Compiler. Wenn man es genau nimmst stellt diese Zwischensprache die Befehle nur "vereinfacht" dar.
    Haha "theoretisch"... So einen Mist hab ich ja schon lange nicht mehr gelesen... Es ist zu 100% relevant, dass Applikationen in C# DEUTLICH (Ich schätze so Faktor 5) weniger schnell sind als Programme in C (C++ ist auch etwas langsamer als C AFAIK) und die Behauptung, dass dies keine Rolle spiele ist schlichtweg Unsinn. Es spielt also keine Rolle, wenn ein ZIP-Tool doppelt so lange braucht? Oder wenn ein Videocodec nur 720p anstatt 1080p unterstützt? Auserdem ist es genau der falsche Ansatz, langsame Sprachen mit der schnellen Hardware zu erklären...


    Zitat Zitat von Sawyer Beitrag anzeigen
    Das ist aber bei C/C++ meiner Auffassungsgabe nicht anders. Auch dort werden viele Klassen für Häufig benötigte Arbeiten mitgeliefert. Das ist bei .NET nicht anders.
    Meistens lernt man mit den Grundlagen von C/C++ gleich auch noch die absoluten Basics der Hardware und erhält tiefe einblicke in die Funktion des OS etc.

    Zitat Zitat von DoS Beitrag anzeigen
    C/C++ Vorteile:
    -etwas schneller beim Laufen (Programm) etwas ist wirklich untertrieben! C IST die schnellste Sprache nach ASM
    -mehr Einblick in das Innere (unter Umständen)
    -Quellcode ist erst einmal sicherer Auch C lässt sich dekompillieren nur ist der vom Compiler optimierte Code meistens unlesbar und extrem kompliziert
    -braucht kein Framework auf dem Computer
    -portabel Kannst gleich sagen, dass es auf (evt. beinahe) jedem System einen C Compiler gibt

    C# Vorteile:
    -Schneller Programme schreiben Nicht unbedingt - Ich finde C# nicht wirklich viel "einfacher" als C++
    -fehlerunanfälliger (unter Umständen, wobei C/C++ auch Strings aus der STL einbinden kann) verstehe ich nicht genau?!?
    - einigermaßen ~portabel auf Linux durch Mono (Ich schreibe das jetzt, weil ich schon weiß das Sawyer das sonst später sagt ) Mono als Argument für C# zu verwenden finde ich ziemlich dreisst. Nur weil Winzigweich zu faul war ihre Sprache auch auf alternativen Betriebsystemen lauffähig zu machen muss Novell das bezahlen...
    Wie ihr seht erachte ich C# als eine ziemlich sinnlose Sprache, von VB(.NET) fange ich lieber gar nicht an zu reden. Wenn du die Studentensprache schlechthin lernen willst guck dir JAVA an, sonst empfehle ich dir C und als Skriptsprache Python.
    You've been krypt0nized!

  9. #19
    Richard Stallman Avatar von Sawyer
    Registriert seit
    26.07.2008
    Beiträge
    2.037

    Standard

    Ich wollte damit nur sagen das bei Normalen Anwendungen kein Geschwindigkeitsnachteil festzustellen ist. Es ist sicherlich richtig das bestimmte Anwendungen Langsamer Ablaufen als ein Native Compiliertes, das will ich auch nicht abstreiten. Ich habe bei einigen Test zu dieser Frage gelesen, das der Geschwindigkeitsnachteil gegenüber C++ gerade einmal 10 % beträgt.

    Ich kann dazu nur sagen das die Geschwindigkeit nicht alles ausmacht. Ich habe auch mehrfach erwähnt das es mir nicht darum geht welche Sprache besser ist, sondern welche die eigenen Anforderungen erfüllt.

    MfG, Sawyer

Seite 2 von 2 ErsteErste 12

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •