Anzeige:
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 15 von 33

Thema: c < c++ < c# ?

  1. #1
    Registrierter Benutzer
    Registriert seit
    28.05.2003
    Beiträge
    161

    c < c++ < c# ?

    Hi All!

    Ich habe jetzt schon mehrmals gelesen, dass C# als Sprache zitiert wurde, die aus den Problemen der Vorgaenger C++ und Java gelernt habe, und dass dies dem Fortschritt, den C++ ueber C erzielt habe, aehlich sei. Ich habe grundlegende C Kenntnisse, kenne aber keine der anderen Sprachen.

    1) Kann C# als Ersatz fuer C gesehen werden?

    2) Waere meine Zeit besser damit verbracht, C# zu lernen statt C oder C++?

    3) Gibt es fuer Linux schon zuverlaessige C#-Compiler?

    Waere echt dankbar fuer einen kurzen Ueberblick. Wenn Ihr ein paar Links habt, um so besser. (Google hat nicht wirklich geholfen: jede Menge Artikel ueber die verschiedenen Sprachen, aber wenig, das im Detail vergleicht.)

    Danke!

    Samsara
    Interface design
    whohas - wer hat's im Repository? Debian? Fedora? Gentoo? ...?
    Hardware compatibility list - das Original mit bereits 3000 Einträgen
    It ain't a hack if it ain't dirty.

  2. #2
    Registrierter Benutzer Avatar von Berufspenner
    Registriert seit
    30.03.2002
    Ort
    Hamburg
    Beiträge
    567
    Hi

    1. Nein. C und C# sind eher nicht so gut zu vergleichen. C# ist der Versuch von MS Java nach zuarmen. Die Syntax soll der von Java auch sehr, sehr ähnlich sein.

    2. Wieso sollen wir entscheiden, was du lernen solltst/willst? C ist und bleibt sehr wichtig für die systemnahe Entwicklung. C++ bietet den Konfor einer modernen oop Sprache und Javas Vorteil ist die ach so oft geprädigte Systemunabhägigkeit. Ehrlich gesagt würde ich bei diesen drei Sprachen C# links liegen lassen.

    3. Guck mal hier:
    http://go-mono.com/

    http://216.239.39.104/search?q=cache...hl=de&ie=UTF-8
    http://www.fh-wedel.de/~si/seminare/...rp/csharp4.htm
    http://216.239.39.104/search?q=cache...hl=de&ie=UTF-8


    Cu
    André
    C und C++

  3. #3
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    C# hat zugegebenermassen an einigen Stellen aus den auch in Java Vorhandenen Problemen gelernt. Aber es ist nicht wirklich plattformunabhängig und wird - wie Java auch - in einer VM ausgeführt.

    Deshalb würde ich - wenn du schon C kannst - eher C++ (ist schnell) oder Java (ist bequem und plattformunabhängig) lernen - wenn überhaupt.

    C# ist sicher kein C- sondern ein Java-Ersatz. C braucht man ja immer noch für Sachen wie Kernels und Orte, wo es aufs Tempo ankommt.
    Sowohl C# als auch Java bieten etwa dasselbe - mit dem Unterschied dass Java Plattformunabhängig ist, was man von C# - oder besser .NET - nicht sagen kann.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  4. #4
    Registrierter Benutzer
    Registriert seit
    01.08.2001
    Beiträge
    57
    Moin,

    @ peschmae:
    Verstehe ich dich richtig, C++ ist langsamer als C?

    @ samsara:

    Du mußt wirklich selber wissen, was du lernen willst. Ich habe den Eindruck, daß zur Zeit Java sehr stark gefragt ist. Aber, wie gesagt, ist nur mein Eindruck.

  5. #5
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    Original geschrieben von kehj

    @ peschmae:
    Verstehe ich dich richtig, C++ ist langsamer als C?
    Das kann man so nicht sagen,wenn muß man Implementierungen vergleichen,nicht die Sprache.
    Hier ist ein Vergleich vom gcc und icc interessant ist in diesem Zusammenhang der OOPack Benchmark.
    http://www.coyotegulch.com/reviews/i...cc_bench2.html

    C++ Implementierungen haben auf jedenfall das Potenzial C Implementierungen im Speed zu schlagen,Bsp zb. string und I/O Operationen.

  6. #6
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Meine Meinung dazu: JAVVVVVVVVVVVVAAAAAAAAAAAAAAAAAAAAAAAA!

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  7. #7
    Registrierter Benutzer Avatar von tuxipuxi
    Registriert seit
    30.08.2002
    Beiträge
    667
    Original geschrieben von bischi
    Meine Meinung dazu: JAVVVVVVVVVVVVAAAAAAAAAAAAAAAAAAAAAAAA!

    MfG Bischi
    hm, mit der einstellung kannst du echt nicht reich werden.
    da sitzt du bei "die quiz show", hast 3 antwortmoeglichkeiten, aber du erfindest dir eine 4. ... so kannst du nicht gewinnen.

  8. #8
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Original geschrieben von kehj
    @ peschmae:
    Verstehe ich dich richtig, C++ ist langsamer als C?
    Das habe ich nie Behauptet!

    Allerdings ist C - vorausgesetzt der Code ist gut - wohl tendenziell etwas schneller. Vorausgesetzt auch natürlich du verwendest Compiler die "gleich gut" optimieren...
    C++ und damit die Objektorientierung erzeugen natürlich tendenzeill schon einen gewissen Overhead - kommt natürlich auch darauf an wie du das einsetzt und so

    Aber ich denke dass es - wenn der Unterschied überhaupt messbar ist - für einen "normalen" Programmierer irrelevant ist.

    @ samsara:

    Du mußt wirklich selber wissen, was du lernen willst. Ich habe den Eindruck, daß zur Zeit Java sehr stark gefragt ist. Aber, wie gesagt, ist nur mein Eindruck.
    Java hat schon was für sich

    Auch weil die Compiler-Fehlermeldungen sehr aussagekräftig sind und die GC + n haufen Prüfungen einige Fehler eliminieren

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  9. #9
    Registrierter Benutzer
    Registriert seit
    28.07.2003
    Beiträge
    27
    Original geschrieben von wraith
    C++ Implementierungen haben auf jedenfall das Potenzial C Implementierungen im Speed zu schlagen,Bsp zb. string und I/O Operationen.
    Die Frage stelle ich aus reinem technischen Interesse.

    C ist sozusagen eine Untermenge von C++. Die ganzen Sachen die C++ von C unterscheiden sind die OOP Dingem, und einige andere Dinge von denn ich gehört habe. Die müssten doch nur Overhead bringen oder ??

    Wäre cool wenn du deine Aussage oben näher erläutern kannst.

    mfg peecee

  10. #10
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Das ist eine Optimierungsfrage im Sinne von:
    Wieviele Leute optimieren heute noch die IO-Funktionen von C bzw wieviele die von C++ und wie gut machen die das

    [offtopic]
    Das war auch eines der Argumente die Ceisserers XAwt-Gcj-Port entgegengestellt wurden. Schliesslich würde der Gtk-Port eh viel besser optimiert da von mehr Leuten benötigt und werde deshalb auch viel schneller als der auf XLib basierende.

    Was ich dann wiederum nicht wirklich glauben kann - angesichts der lausigen Performance von Gtk2 (die wohl mit den vielen neuen Features (Antialiasing, etc) zusammenhängt)
    [/offtopic]

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  11. #11
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182
    Der Grund warum ich mich da so quergestellt habe, ist, dass auf jeden Fall GTK2 bei der Verwendung nativer Widgets um einiges schneller ist und das ist auch klasse!
    Wenn man aber in Betracht zieht, dass eigentlich 90% aller neu geschriebenen Applicationen Lightweight-Toolkit benutzen (nicht nur SWING), so ist die Performance nativer Widgets ehen vernachlässigbar.

    Um was es hier geht ist nur eines: Geschwindigkeit primitiver Zeichenoperationen.

    Und da ist GTK2, egal wie optimiert, immer langsamer als Xawt! GTK2 fügt erstens das ganze Widget-Handling hinzu, dass sowieso nicht notwendig wäre, das AWT selbst layoutet. Außerdem stellt GDK immer einen zusätzlichen Layer dar, und das bremst halt.


    mfg
    Geändert von Lin728 (19-08-2017 um 18:02 Uhr)

  12. #12
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    Original geschrieben von peecee
    C ist sozusagen eine Untermenge von C++.
    Das stimmt nicht ganz,ist aber für die weitere Betrachtung unerheblich.

    Die ganzen Sachen die C++ von C unterscheiden sind die OOP Dingem, und einige andere Dinge von denn ich gehört habe. Die müssten doch nur Overhead bringen oder ??
    Es kann Overhead bringen,muß aber nicht,und jetzt muß man auch unterscheiden welche Art von Overhead,Größe oder Speed.
    Der meiste Overhead wird in der Größe stecken,aber das ist kein Nachteil.
    Bsp. string Handling:
    Nahezu jede C string Operation muß die Länge des String zur Laufzeit berechnen O(n),um überhaupt arbeiten zu können,bei std::string ist das eine O(1) Operation.
    Klar Overhead,Größe.

    I/O Operationen:
    printf muß immer zur Laufzeit den Formatstring parsen,bei cout wird die Typprüfung zur Compilezeit gemacht.

    Dazu noch ein Kommentar von Scott Meyers.
    In fact, one can reasonably hope to discover an iostream implementation that's faster than stdio, because iostreams determine the types of their operands during compilation, while stdio functions typically parse a format string at runtime
    Leider sind (komischerweise),heutige iostream Implementierungen langsamer wie stdio.

    Bsp: Generische Sortierfunktionen:
    qsort bekommt einen Zeiger auf die Vergleichsfunktion übergeben,der zu sortierende Typ ist zur Compiletime unbekannt,und die Funktion wird als Zeiger übergeben,kein Inlining möglich.
    std::sort erwartet sein Sortierkriterium als Objekt -> Typprüfung zur Compiletime,Inlining möglich.
    Dazu kannst du auch ein kleines Bsp schreiben,je größer das zu sortierende Feld ist,umso mehr stinkt qsort ab (Faktor 10 ist nicht ungewöhlich).

  13. #13
    Registrierter Benutzer
    Registriert seit
    28.05.2003
    Beiträge
    161
    Dank an alle. Meine Fragen sind damit beantwortet. Dass es letzten Endes bei mir liegt, ist schon klar!

    Danke,

    Samsara
    Interface design
    whohas - wer hat's im Repository? Debian? Fedora? Gentoo? ...?
    Hardware compatibility list - das Original mit bereits 3000 Einträgen
    It ain't a hack if it ain't dirty.

  14. #14
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549

    Re: Stellungnahme...

    Original geschrieben von ceisserer
    @pschmae:
    GTK2 selbst ist nicht langsam, ich weiß auch nicht, warum der GTK2-port von SWT so lahmt. Sehr viele nutzer dürften sich daran stoßen, schau mal unter bugs bei eclipse, welcher "bug" die meisten Votes hat. *selbst voten!*
    Ich beharre darauf dass GTK2 auch langsam ist. Eclipse bzw SWT kommt dann noch dazu. Bei mir kommt die Maus richtig ins stottern wenn ich mal Gnome2 mit Antialiasing starte. Ohne gehts einigermassen - ist aber viel langsamer als es Gnome 1.4 war.

    Selbiges gilt auch für GTK2-Apps wie Gthumb - auch das ist recht langsam und der Bildaufbau unzuverlässig.


    So, jetzt hab ich euch eigentlich wieder alles vollgemüllt mit zeugs das da gar nicht reinpasst, sorry.
    Dasselbe für mich

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  15. #15
    Registrierter Benutzer
    Registriert seit
    21.10.2002
    Beiträge
    53
    2) Waere meine Zeit besser damit verbracht, C# zu lernen statt C oder C++? :

    nein und ja
    lern was du willst

    aber c# ersetzt nicht c, c ist eine machtvolle programmiersprache, die, wie ich glaube, NIE vergessen wird! C/C++ wird immer aktuell sein
    Slackware 8.1
    C/C++ OpenGL lover
    Java2 learner

Lesezeichen

Berechtigungen

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