C# nativ kompilieren?



  • @Sharph:
    Deine Frustration entspringt nur aus dem Umstand, dass du die Realität verweigerst.
    Es gibt halt keinen praktikablen Weg C# Programme "nativ" zu compilieren.
    Thema erledingt.

    Nächste Frage?



  • Sharph schrieb:

    Und ich finds irgendwie blöd: Will man native Programme, muss man sich mit Frickel-C++ rumärgern. Will man die gute Sprache, kann man keine nativen Anwendungen schreiben.

    => Delphi.

    Sharph schrieb:

    An sich gibt es in der Sprachbeschreibung selbst ja nichts, was für die eine oder andere Art der ausführbaren Datei prädestiniert ist.

    Doch; Java und C# erwarten einen GC, und für einen solchen sind Managed Environments per se besser geeignet. C++ hat außerdem jede Menge Features, die in einer sicheren Umgebung nicht umsetzbar sind. In C++/CLI und C# wird das durch die Abgrenzung von "unsafe code" umgangen.



  • Will man native Programme, muss man sich mit Frickel-C++ rumärgern.

    Nein, es gibt viele Alternativen.

    Doch; Java und C# erwarten einen GC, und für einen solchen sind Managed Environments per se besser geeignet.

    Es gibt auch native Compiler fuer Lisp und Scheme oder die nach C uebersetzen. Diese erwarten auch einen GC. Python soll auch eine recht kleine runtime haben und direkt in die executable mit einbinden.



  • Sharph schrieb:

    Rhombicosidodecahedron schrieb:

    Sharph schrieb:

    Ich will C#-Code nativ kompilieren.

    nGen.exe

    Oh, ich hasse das! Wann immer nach einer Möglichkeit gefragt wird, wie man .NET-Anwendungen ohne Framework benutzen kann, kommt irgendein Depp mit ngen.

    Vor dem Flamen bitte lesen. Die Antwort nGen.exe wurde auf das native Kompilieren gegeben. Der Part "ohne Framework" wurde separat beantwortet. Es wird in der Antwort in keinster Weise behauptet, dass man mit nGen eine Anwendung ohne installiertem Framework laufen lassen kann.



  • knivil schrieb:

    Doch; Java und C# erwarten einen GC, und für einen solchen sind Managed Environments per se besser geeignet.

    Es gibt auch native Compiler fuer Lisp und Scheme oder die nach C uebersetzen. Diese erwarten auch einen GC.

    Es gibt auch GCs für C++, und ich sagte nicht "vorausgesetzt", sondern "per se besser geeignet".



  • digitalmars schrieb:

    Dann musst du wohl oder übel D nehmen. 😞

    D? Das benutzt doch keiner.

    Herb schrieb:

    Schau dir mal http://www.remotesoft.com/linker/ an. Kostet halt leider ein paar Euro...

    Und wenn ich mir das Ding gekauft habe und es funktioniert, lad ich euch alle zur Feier des Tages zu einem Kurzurlaub nach Florida ein.

    hustbaer schrieb:

    @Sharph:
    Deine Frustration entspringt nur aus dem Umstand, dass du die Realität verweigerst.
    Es gibt halt keinen praktikablen Weg C# Programme "nativ" zu compilieren.
    Thema erledingt.

    Nächste Frage?

    Wenn das so gesagt worden wäre, dann wär das ja in Ordnung gewesen. Ich hab mich nur über die Erwähnung von ngen aufgeregt, weil das immer als die Lösung präsentiert wird.

    audacia schrieb:

    => Delphi.

    Klassenatribute per default public? Ich bitte dich.

    knivil schrieb:

    Nein, es gibt viele Alternativen.

    Sag mal noch'n paar (echte) Alternativen zu C++, die qualitativ an C# heranreichen. Aber bitte nicht so'n Zeug wie Python: "Eine Variable muss nicht deklariert werden, sondern wird einfach benutzt." Kotz würg! 😡

    Knuddlbaer schrieb:

    Vor dem Flamen bitte lesen. Die Antwort nGen.exe wurde auf das native Kompilieren gegeben. Der Part "ohne Framework" wurde separat beantwortet. Es wird in der Antwort in keinster Weise behauptet, dass man mit nGen eine Anwendung ohne installiertem Framework laufen lassen kann.

    Also ungefähr so, als würde jemand fragen:
    "Wie komme ich am schnellsten von Berlin nach Moskau. Aber ohne Flugzeug, da wird mir immer schlecht."
    Und ich antworte dann in folgender Weise:

    Wie komme ich am schnellsten von Berlin nach Moskau.

    Mit dem Flugzeug.

    Und wenn er sich dann aufregt, dass er schon gesagt hat, dass Flugzeuge ausgeschlossen sind, antworte ich: "Vor dem Flamen bitte lesen. Die Antwort mit dem Flugzeug wurde auf die generelle Frage gegeben, wie man am schnellsten nach Moskau kommt. Ich hab in keiner Weise behauptet, dass das auch auf dich zutrifft."



  • Du bist viel zu emotional und verschliesst dir selbst die Tuer zu grossartigen Ideen.Das Konzept von dynamisch typisierten Sprachen ist halt so. Werte haben einen Typ, Variablen nicht.



  • knivil schrieb:

    Du bist viel emotional und verschliesst dich selbst grossartigen Ideen.Das Konzept von dynamisch typisierten Sprachen ist halt so. Werte haben einen Typ, Variablen nicht.

    Nenn mir bitte einen Vorteil dieser Praxis. Ich nenn dir mal einen Nachteil:

    int meineTolleZahl = 5;
    
    meinetolleZahl = 8; // Kompilerfehler: Variable unbekannt
                        // (weil ich mich verschrieben habe)
    
    meineTolleZahl = 5;
    
    meinetolleZahl = 8; // Viel Spaß beim Fehlersuchen,
                        // wenn das Programm etwas größer ist
    


  • Scripte, deswegen auch Scriptsprache ... dynamische Inhalte, anpassbare Anwendungen ... genutzet von vielen Spielen. Auch fuehrt das Lesen einer noch nicht vorhandenen Variable zum Fehler. Und da Variablen nunmal benutzt werden um Inhalte zu speichern, damit man sie spaeter wieder lesen kann, ist dein Beispiel nicht ganz so schlimm. Er faellt auf. Groesse ist nur ein Problem bei Spagetthie-Code. Auch wird von manchen case sensitivity als eher unguenstig angesehen. (Quelle finde ich grad net wieder)



  • knivil schrieb:

    Scriptsprachen ...

    😕



  • Sag mal noch'n paar (echte) Alternativen zu C++, die qualitativ an C# heranreichen

    Es gibt einige Alternativen die qualitativ mit C# vergleichbar sind, bloss sind die z.T. ganz anders zu programmieren.
    Nur ein paar Beispiele: diverse LISP Dialekte und Abarten, ADA, Eiffel.

    Eiffel ist sogar recht ähnlich (sprich: imperativ), bloss verwendet es eine "Pascal-artige" Syntax (Wörter statt Sonderzeichen), was viele abschreckt. Der grösste Nachteil ist wohl die geringe Verbreitung, und alles was sich daraus ergibt: die sehr lückenhafte Standard-Library, die z.T. nicht ganz ausgereiften Tools, kleinere Community etc.

    Dafür kann es "nativ" compiliert werden, und kommt ohne riesen Framework aus.

    EDIT: ADA ist natürlich auch imperativ 😉 /EDIT



  • Sharph schrieb:

    audacia schrieb:

    => Delphi.

    Klassenatribute per default public? Ich bitte dich.

    Netter Versuch 😉



  • audacia schrieb:

    Sharph schrieb:

    audacia schrieb:

    => Delphi.

    Klassenatribute per default public? Ich bitte dich.

    Netter Versuch 😉

    Was soll das heißen? Ist es nicht so, dass bei Delphi die Attribute public sind, wenn man nichts anderes angibt?



  • Omg, super Auswahlkriterium fuer die Beurteilung einer Programmiersprache ... Sorry, aber ich glaube du laesst nichts zu, was nicht C# von der Syntax ist ...



  • knivil schrieb:

    Omg, super Auswahlkriterium fuer die Beurteilung einer Programmiersprache

    Na klar. Stell dir mal vor, bei deiner Hose wäre der Reißverschluß per default nicht da.

    knivil schrieb:

    ... Sorry, aber ich glaube du laesst nichts zu, was nicht C# von der Syntax ist ...

    Du hast es erfasst. 👍

    Evaluation EvaluateLanguage(Language language)
    {
        return LanguageIsCSharp(language)
            ? Evaluation.Good
            : Evaluation.Shit;
    }
    


  • Sharph schrieb:

    knivil schrieb:

    Omg, super Auswahlkriterium fuer die Beurteilung einer Programmiersprache

    Na klar. Stell dir mal vor, bei deiner Hose wäre der Reißverschluß per default nicht da.

    IMO unpassender Vergleich.
    Eher passend: per Default offen.
    Und oh-hah, das ist er in vielen Geschäften.
    Und ne Hose anziehen mit Reissverschluss zu is auch recht schwer.
    Naja, ich sehe schon, der Vergleich hinkt immer noch gewaltig 😃



  • hustbaer schrieb:

    IMO unpassender Vergleich.
    Eher passend: per Default offen.

    Nein, nein, der Vergleich passt schon. Auf und zu machen kann man den Reißverschluss ja immer wieder. Also eher vergleichbar mit einer umstellbaren Variable. Will man aber den Reißverschluss an- oder abmachen, muss man die ganze Hose umnähen, so wie man bei einer Klasse die Definition ändern und neu kompilieren muss.


  • Administrator

    Aber trotzdem, so ein Auswahlkriterium? Dann gibst du halt immer explizit an, was für eine Sichtbarkeit du haben willst. Mache ich übrigens bei C# auch so, ich verlasse mich nie auf die Standardsichtbarkeit. Ist meiner Meinung nach auch leserlicher wenn man es immer explizit angibt. Gut, das ist allerding subjektiv.

    Aber die PERFEKTE Sprache gibt es sowieso nicht. Wenn du eine Sprache wegen eines klitze kleinen Fehlers gleich komplett ausschliesst, dann könntest du sicher auch C# ausschliessen, da wenn du wirklich objektiv bist, du sicher auch etwas an C# findest, was dich stört. Oh, moment, du hast ja sogar bereits was gefunden ... 😃

    Grüssli



  • Sharph schrieb:

    hustbaer schrieb:

    IMO unpassender Vergleich.
    Eher passend: per Default offen.

    Nein, nein, der Vergleich passt schon. Auf und zu machen kann man den Reißverschluss ja immer wieder. Also eher vergleichbar mit einer umstellbaren Variable. Will man aber den Reißverschluss an- oder abmachen, muss man die ganze Hose umnähen, so wie man bei einer Klasse die Definition ändern und neu kompilieren muss.

    rofl
    Nein nein, der Vergleich passt nicht.



  • hustbaer schrieb:

    Nein nein, der Vergleich passt nicht.

    Toll. Nur dass ich meine Aussage begründet habe, du deine aber nicht.


Anmelden zum Antworten