symlink.ch
Wissen Vernetzt - deutsche News für die Welt
 
symlink.ch
FAQ
Mission
Über uns
Richtlinien

Moderation
Einstellungen
Story einsenden

Suchen & Index
Ruhmeshalle
Statistiken
Umfragen

Redaktion
Themen
Partner
Planet

XML | RDF | RSS
PDA | WAP | IRC
Symbar für Opera
Symbar für Mozilla

Freunde
Benutzergruppen
LUG Switzerland
LUG Vorarlberg
LUGen in DE
SIUG
CCCZH
Organisationen
Wilhelm Tux
FSF Europe
Events
LinuxDay Dornbirn
BBA Schweiz
CoSin in Bremgarten AG
VCFe in München
Menschen
maol
Flupp
Ventilator
dawn
gumbo
krümelmonster
XTaran
maradong
tuxedo

 
Neue Features für C# (update)
Veröffentlicht durch tbf am Freitag 08. November, 23:56
Aus der immer-hinten-anbauen Abteilung
Programmieren Auf der Mono-Liste wird gerade ein ZDNet-Artikel diskutiert, laut dem Microsoft plant in der kommende Version des Visual Studio C# um einige leckere Features wie Templates und anonyme Funktionen anzureichern.

Bei C# scheint man das Erfolgsrezept der Sprache fortzusetzen und weiteren syntaktischen Zucker einzubauen. So wird man "Generics" - eine Variante der aus ADA und C++ bekannten Templates unterstützen (btw: "Hallo Sun, wo bleibt Java 1.5?"). Ausserdem sollen, wie es sich für jede sinnvolle Programmiersprache gehört, anonyme Funktionen (aka. "lambda" oder "sub") eingebaut werden. Bei all dieser oberflächlichen Politur scheint man sich nicht auf den letzten (und meinem Eindruck nach realistischen) Benchmarkergebnissen auszuruhen und feilt weiter an der excellenten Ausführungsgeschwindigkeit: So sind die Templates nicht nur per Parserhack implementiert, sondern beruhen - wie aus informierten Kreisen verlautet - auf Erweiterungen des CIL-Befehlssatzes. Ob die erwähnte Unterstützung von "Iteratoren" auf ähnlichem Niveau arbeitet, war nicht in Erfahrung zu bringen. Eine derartige Interpretation ist aber naheliegend, da die .NET-Umgebung bereits ein IEnumerable-Interface vorsieht und dieses intensiv - teilweise sogar durch Sprachkonstrukte wie "foreach" unterstützt - verwendet wird. Absolut unklar bleibt, was der Artikel mit den sogenannten "partial types" beschreiben will.

Bei einigen dürfte jetzt sicher eine grosse 23 aufblinken: "Erst anfüttern und dann properitär erweitern". Dieser Befürchtung ist aber entgegenzusetzen, dass wohlinformierte Kreise, die beschriebenden Änderungen allesamt auf dem Weg ECMA wissen.

Update: Auf dem Mono IRC-Channel wurde gerade ein Link zu einem fundierterem Artikel auf Got Dot Net gepostet. Dieser Seite gibt's die Orginal Powerpoint-Präsi, Beispielcode und eine FAQ.

MySQL AB und Nusphere rauchen Friedenspfeife | Druckausgabe | ADSL über Freileitungen: Swisscom testet  >

 

 
symlink.ch Login
Login:

Passwort:

extrahierte Links
  • ZDNet
  • Heise
  • Sun
  • Benchmarkergebnissen
  • IEnumerable-Interface
  • ECMA
  • fundierterem Artikel
  • Got Dot Net
  • Orginal Powerpoint-Präsi
  • Beispielcode
  • FAQ
  • Mono
  • ZDNet-Artikel
  • Microsoft
  • Mehr zu Programmieren
  • Auch von tbf
  • Diese Diskussion wurde archiviert. Es können keine neuen Kommentare abgegeben werden.
    Etwa kein Interesse? (Score:1)
    Von IM Feigling am Saturday 09. November, 16:33 MEW (#1)
    (User #983 Info)
    Nun nimmt es mich aber wunder, dass hier noch immer kein Kommentar abgegeben wurde, dabei enthält dieser Artikel doch so ziemlich alle Reizwörter, die momentan "in" sind...

    Nee - Spass beiseite. Aber ich hätte schon gedacht, dass sich für C# (zumal es Mono gibt, und wir somit zumindest eine Alternative zu .NET haben) mehr von euch interessieren würden. Aber anscheinend wird C# von einem Großteil der der Community absichtlich ignoriert, weil es "von M$ kommt". Hey Leute - C# könnte der legitime Nachfolger von Java werden, weil es endlich die Anforderungen erfüllt, die Java nie erfüllen konnte!

    Und noch was: Nur weil C# von M$ kommt, dürfen wir es nicht riskieren, irgendwann zu den Dinos zu gehören. Dann hätte die Studie nämlich doch recht, wenn es da heisst: "Unix will become a back-end, legacy OS platform by 2003/2004", und das will doch keiner von uns, oder? Also zeigt wenigsten euer (wenn auch nur repräsentatives) Interesse an C# und Mono, und macht ein paar comments =)

    --
    Herr Spion - Telefon!

    Re:Etwa kein Interesse? (Score:0)
    Von Anonymer Feigling am Sunday 10. November, 11:16 MEW (#6)
    C# könnte der legitime Nachfolger von Java werden, weil es endlich die Anforderungen erfüllt, die Java nie erfüllen konnte Welche denn? Etwa Plattformunabhängigkeit?
    Re:Etwa kein Interesse? (Score:1)
    Von tbf am Monday 11. November, 09:06 MEW (#8)
    (User #21 Info) http://taschenorakel.de/
    Na dann blicken wir den Fakten mal ins Auge: Plattformunabhängigkeit ist vor allem eine Forderung aus dem Desktopbereich, denn dieser galt Anfang der Neunziger, bevor Microsoft alle übertölpet hat, als wahnsinnig lukrativ (wer errinnert sich heute noch an OS/2, OpenStep, OpenWindows, IRIX, GEOS, ...), war in der Folge dann auch ebenso heterogen. Die Java-Plattform wurde daraufhin auch vor allem entwickelt, um dem Mangel an Desktop-Applikationen für Solaris abhilfe zu verschaffen. Belege: Werbemittel von 1995, die ersten Beispielapplikationen für Java, die Gewichtung der Klassen in Java 1.0 usw.

    Wie wir aber alle wissen, ist Java auf dem Desktop grandios gescheitert. Zum Glück für Java war man schnell in der Lage, Java auf den durchs Internet boomenden Servermarkt anzupassen: In den Boomjahren zählte vor allem Rapid-Development, was Java mit Sicherheit leistet. Desweitern muss man schon arg risikofreudig sein, Resourcen auf einem Internetserver manuell zu verwalten (so wie es C/C++ fordert, setzt man keinen Garbage-Collector ein). Plattformunabhängigkeit hingegen ist für Serverapplikationen nun wirklich kein Killerargument: Wer seriös plant wird kaum sehr häufig die Serverplattform wechseln, ein homogenes Serverumfeld aufbauen. Zudem ist man auf Serverseite - solange Server != Mainframe - immer mit einer POSIX-kompatiblen Umgebung konfrontiert sein: Sprich sauber gehackte C, C++, Perl, Shell-Programme sind plattformunabhängig. Da auch Javaapps nur plattformunabhängig sind, wenn sie klar nach den extrem restriktiven Pure-Java Restriktionen gehackt sind (was kaum eine Javaapp erfüllt), frage ich: So what?

    Re:Etwa kein Interesse? (Score:2)
    Von P2501 am Monday 11. November, 10:09 MEW (#9)
    (User #31 Info) http://www.p2501.ch/

    Etwas seltsame Argumentation. Die Killerfeatures von Java sind doch die Binärkompatibilität (bietet keine Compilersprache), sowie die Sandbox bei Applets (bietet keine andere Interpretersprache ausser C#). Rein von der Sprache her ist Java zwar interessant, aber eben doch nur eine Sprache unter vielen. Gleiches gilt für C#. Wenn also C# der Nachfolger von Java sein soll, muss es in mindestens einem der oben genannten Bereiche Java übertreffen. Sonst ist es nur eine weitere, von Microsoft gehypte Sprache.


    Kurzer Benchmark Mono CLR, Sun JVM, MS CLR (Score:1)
    Von h2o am Saturday 09. November, 17:52 MEW (#2)
    (User #487 Info) http://www.numlock.ch
    Wie's der Zufall so will, habe ich gerade einen einfachen Geschwindigkeitsvergleich zwischen den aktuellsten Versionen der Mono CLR, der Sun JVM und der MS CLR auf Linux und Windows XP gemacht.

    Die Resultate sind zwar nicht repräsentativ für den allgemeinen Einsatz der verschiedenen Laufzeitumgebungen, sondern messen nur die Geschwindigkeit der Ausgabe auf die System-Konsole. Bezüglich dieser spezifischen Aufgabe zeigt sich allerdings ein anderes Bild der Leistungen als im Pet Shop Benchmarktest.
    Re:Kurzer Benchmark Mono CLR, Sun JVM, MS CLR (Score:1)
    Von tbf am Saturday 09. November, 19:24 MEW (#3)
    (User #21 Info) http://taschenorakel.de/
    Heh. Der Test ist wirklich extrem rudimentär... Hast Du die Ausgabe der Programme in eine Datei oder gar nach /dev/null umgeleitet? Sonst ist dies vorallem ein Test der Terminalemulationen von Linux und Windows XP. Das die von Windows XP lahm ist, ist bekannt.

    Um zu begründen, wie ich darauf komme, dass die Petshop-Ergebnisse wohl begründet sind: Ich habe auf Arbeit mittlerweile etliche zehntausend Zeilen C#-Code produziert und die Geschindigkeit dieses (unoptimierten) Codes war bisher nahezu immer über alle Erwartungen hinaus erfreulich... Im Gegensatz dazu war von mir produzierter Java-Code immer unerwartet langsam... Evtl. bin ich ja zu doof für Java, oder Java mag meinen Programmierstil nicht. Alles jedenfalls Dinge, die mich gegenüber Java -- so revolutionäre es wahr -- eine kritische Position einnehmen lassen.

    Ausserdem ist die Java-VM nicht OpenSource. Im Gegensatz zur Mono-VM. Selbst der Zugriff auf das aufgrund der Lizenz vollkommen nutzlosen Rotor erfolgt diskrimierungsfreier, als der Zugriff auf Sun's VM-Code:


    Re:Kurzer Benchmark Mono CLR, Sun JVM, MS CLR (Score:1)
    Von h2o am Saturday 09. November, 20:55 MEW (#4)
    (User #487 Info) http://www.numlock.ch
    Heh. Der Test ist wirklich extrem rudimentär

    In der Tat! Ich habe mir nicht die Zeit genommen, ein umfangreiches, mehr oder weniger repräsentatives Benchmark-Framework zu schreiben.

    Hast Du die Ausgabe der Programme in eine Datei oder gar nach /dev/null umgeleitet?

    Nein, direkt auf die Konsole geschrieben.

    Sonst ist dies vorallem ein Test der Terminalemulationen von Linux und Windows XP

    Das ist es nicht, dazu sind die gemessenen Unterschiede zwischen den einzelnen REs auf den jeweiligen Plattformen zu gross. Es handelt sich aber, wie im Disclaimer (siehe Conclusions) vermerkt, um einen sehr spezifischen Test. Also keinerlei Ansprüche auf Repräsentativität (vgl. auch Fussnote [2]). Es geht auch nicht um einen allgemeinen Vergleich zwischen Windows XP und Linux bezüglich der Leistungsfähigkeit der REs.

    Einige Resultate (immer in Bezug auf diesen spezifischen Test!) finde ich trotz der beschränkten Aussagekraft noch interessant, z.B. dass Mono besser abschgeschnitten hat als die MS CLR. Ich habe einen "Home-Run" der MS CLR erwartet.

    Oder auch die recht unterschiedliche Dateigrösse des CIL Codes, je nachdem, ob mit dem .NET Compiler oder mit dem Mono Compiler generiert. Die Ursache müsste man allerdings noch untersuchen (siehe letzter Punkt der Conclusions).

    Bei meiner (informellen) Evaluation von VS.NET vor einiger Zeit hatte ich eigentlich auch einen guten Gesamteindruck von der Performance der MS CLR erhalten. Meine kleine C#-GUI-Applikation schien wesentlich schneller zu laufen als bei Java-Applikationen mit Swing üblich (qualitativer Eindruck, gemessen habe ich es nicht). Vermutlich ist das aber weniger ein Punkt zu Gunsten der MS CLR als zu Ungunsten von Swing. Java-GUI-Applikationen, die das native
    Standard Widget Toolkit
    von IBM verwenden, habe ich subjektiv ebenfalls als einiges schneller empfunden als typische Swing-Applikationen.

    Ich würde Benchmark-Resultate stets mit Vorsicht geniessen und von Verallgemeinerungen absehen, ausser sie seien vertretbar.
    Re:Kurzer Benchmark Mono CLR, Sun JVM, MS CLR (Score:1)
    Von tbf am Sunday 10. November, 01:12 MEW (#5)
    (User #21 Info) http://taschenorakel.de/
    Den Unterschied zwischen dem Bytecode von Mono und VS.NET würde ich vorallem in Compilerbugs vermuten: Soweit ich mitbekommen habe ist das C#->CIL-Mapping nämlich recht genau festgelegt. Die Geschwindigkeitsvorteile Monos sind unter u.U. durch fehlende Features, bei dem kurzen Code vielleicht aber auch dem Umstand geschuldet, das Mono in C und .NET in C++ geschrieben ist - oder dem gerüchteweiser mittlerweile recht gutem Optimizer des gcc...

    Ich hab' unter anderem mittlerweile eine in C#-gehackte GUI-App an der Backe, runde 60.000 Zeilen. Das Verückte: Unerwarteter Weise sind einige Teile des (rechenintensiven) Programms sogar schneller als die Counterparts der in Delphi gehackten Vorgängerapplikation. Realistischerweise tippe ich bei den Gründen aber vor allem auf Programmierfehler in der Delphi-Implementierung.

    realistischer benchmark??????? (Score:0)
    Von Anonymer Feigling am Sunday 10. November, 11:18 MEW (#7)
    lies mal das hier

    Linux User Group Schweiz
    Durchsuche symlink.ch:  

    Never be led astray onto the path of virtue.
    trash.net

    Anfang | Story einsenden | ältere Features | alte Umfragen | FAQ | Autoren | Einstellungen