Ist C# so gut?



  • asc schrieb:

    GPC schrieb:

    Ich habe natürlich stark überspitzt. Aber Silverlight riecht schon etwas komisch und so wie es momentan aussieht, läuft - auch bei MS - alles auf HTML5 + JS hinaus.

    Nur kann HTML5+JS nicht Alles, zudem ist es noch kein verabschiedeter Standard. Und zu guter letzt gilt JS unter vielen Programmierern nicht unbedingt als sinnvolle Sprache. Und SL hat einige Vorteile für Firmen (Nicht nur wegen Ähnlichkeiten zu WPF und einer Sprache als Basis).

    Ich habe ganz ehrlich so gut wie keine Ahnung von Webprogrammierung, insofern weiß ich nicht wie und wo HTML5 + JS hinterherhinkt. Dass es das tut, war aber zu erwarten, es ist ja noch ganz am Anfang.. sozusagen vor dem "Start"-Feld 🙂

    Ach ja, bzgl. des eigentlichen Threadthemas:

    Ich mag C# auch sehr gerne, wünsche mir aber wie µ weniger "Gleichheitskonzepte" und etwas mehr Power für die Generics. Das sind aber keine echten Probleme für mich, insofern bin ich sehr zufrieden damit 🙂



  • Ich erweitere die Frage mal ein wenig: Was wünscht ihr euch für die zukünftige Entwicklung von C# oder sollte nun langsam mal Schluss sein mit Spracherweiterungen?



  • µ schrieb:

    Ich erweitere die Frage mal ein wenig: Was wünscht ihr euch für die zukünftige Entwicklung von C# oder sollte nun langsam mal Schluss sein mit Spracherweiterungen?

    Antwort von Radio Eriwan: "Im Prinzip ja, aber ..."

    C# macht keine Spracherweiterung, sondern eher eine Sprachreduzierung. Es werden einzelne Dinge der Compiler in Bibliotheken von .Net verschoben. Spracherweiterungen finden dann nur in diesen .Net-Bibliotheken statt.

    Ich finde das Konzept sehr gut. Ausser mit den GUI-Teilen hat man auch keine grossen Anpassungsprobleme. Alle eigenen Berechnungsmodule sind nahezu unverändert von C oder C++ übernehmbar. An dieser Stelle gibt es lobenswerterweise keinen Bruch!



  • Wie geht das in C# eigentlich mit Callbacks? Muss ich wie in Java immer ein Interface implementieren z.B. für "ButtonListener" oder kann ich auch wie in C++ einfach Funktionen oder Methoden binden?



  • Dafür gibts in C# Delegates. Google-Treffer: http://onjava.com/pub/a/onjava/2003/05/21/delegates.html



  • C# erscheint mir schon ziemlich gut. Es gibt anonyme Funktionen, Reflection, Generics, und z.T. Typ-Inferenz.
    Ich bin kein C#-Spezialist, aber diese Sprache folgt anscheinend dem Trend, dass immer mehr funktionale Features in OO-Sprachen einfließen.
    Ich frage mich nur, warum man dann nicht gleich eine funktionale Sprache benutzt.
    Das hat sich wohl auch MS gefragt, und F# entwickelt mit viel OCaml-"Inspiration".
    F# ist eine Multi-Paradigmen-Sprache mit weniger aufwändig zu tippender Syntax, in der man so wie in C# programmieren kann, wenn man will (bis auf andere Syntax).
    Man kann aber auch richtig funktionale Sachen schreiben.

    C# ist gut, ich finde MS sollte da weniger dran herumbasteln.
    F# ist die neue Sprache, da kann gebastelt werden, ohne dass eine allzu große Code-Basis plötzlich nicht mehr kompiliert.
    Ich wünsche mir persönlich, dass F# irgendwann C# ablöst, das soll aber keine Kriegs-Erklärung sein. 🙂



  • alf42red schrieb:

    Ich bin kein C#-Spezialist, aber diese Sprache folgt anscheinend dem Trend, dass immer mehr funktionale Features in OO-Sprachen einfließen.
    Ich frage mich nur, warum man dann nicht gleich eine funktionale Sprache benutzt.

    These -> Antithese -> Synthese

    Imperativ/OO -> Funktional -> C#

    Extreme sind meistens schlecht.



  • µ schrieb:

    These -> Antithese -> Synthese

    Deutschlehrermüll.

    These: Horoskope funktionieren.
    Antithese: Horoskope funktionieren nicht.
    Synthese: ???

    These: 1 ist keine Primzahl.
    Antithese: 1 ist eine Primzahl.
    Synthese: ???

    µ schrieb:

    Extreme sind meistens schlecht.

    Wahrheit und Falschheit sind schon was Tolles.

    C# finde ich fein. Aber ich sehe C# nicht als Synthese, sondern als strategische Waffe.



  • Da F# das gleiche Klassen-System wie C# implementiert, ist es nicht so extrem wie z.B. Haskell, und nicht nur funktional!
    Techniken wie Currying und Pattern-matching kann man auch in C# benutzen, das ist aber syntaktisch aufwändiger.
    Vielleicht ist F# wirklich nur eine vereinfachte Syntax für nützliche C#-Konzepte.

    Oder gibt es wirklich C#-Konzepte, die in F# grausig aussehen?
    Ich kenne keine, aber so lange kenne ich C# auch noch nicht.



  • alf42red schrieb:

    Da F# das gleiche Klassen-System wie C# implementiert, ist es nicht so extrem wie z.B. Haskell, und nicht nur funktional!
    Techniken wie Currying und Pattern-matching kann man auch in C# benutzen, das ist aber syntaktisch aufwändiger.
    Vielleicht ist F# wirklich nur eine vereinfachte Syntax für nützliche C#-Konzepte.

    Oder gibt es wirklich C#-Konzepte, die in F# grausig aussehen?
    Ich kenne keine, aber so lange kenne ich C# auch noch nicht.

    Alles wird zu bit daher ist alles nur vereinfachte Syntax von binär. Es geht eigentlich auch nicht um die Syntax Schönheit, sondern eher, dass du solche Konzepte als Sprachelemente hast oder als Framework implementiert werden muss.

    Sonst würde ich allgemein raten, mehr sich mit den Sachen zu beschäftigen bevor man sein Münd in irgendeine Form aufmacht. Typeinferenz ist in F# wesentlich mächtiger als in C#, sie funktioniert nicht nur lokal.



  • volkard schrieb:

    ...

    Du gibst ganz schön viel Widerstand. Fühle mich geehrt 😉



  • Da war doch etwas interessantes:

    volkard schrieb:

    sondern als strategische Waffe.

    Bitte erläutern, falls andere Gründe als Java vermutet werden.



  • µ schrieb:

    volkard schrieb:

    ...

    Du gibst ganz schön viel Widerstand. Fühle mich geehrt 😉

    Nein. Der Widerstand ist nicht gegen Dich persönlich.
    Er ist nur gegen Wünschelruten und Hypes.



  • Irgendwie lustig in Sachen Programmierung: Strategische Waffen und Widerstand! 🤡 Sind wir gegen wen im Krieg und wer ist unser Verbündeter im Kampf gegen das Böse? 😕



  • Zeus schrieb:

    Sonst würde ich allgemein raten, mehr sich mit den Sachen zu beschäftigen bevor man sein Münd in irgendeine Form aufmacht. Typeinferenz ist in F# wesentlich mächtiger als in C#, sie funktioniert nicht nur lokal.

    Inwiefern widerspricht das seinen Aussagen?


Anmelden zum Antworten