C# nativ kompilieren?
-
Th69 schrieb:
Dann schreib dir doch deine eigene Sprache, welche alle Vorteile vereint -)
Na klar. Ich hab ja auch sonst nichts zu tun. Und danach erstell ich mir mein eigenes Betriebssystem, das besser ist als eine ideale Kombination aus Windows und Linux.
Th69 schrieb:
Der Vorteil bei Bytecode ist nun mal die bessere Portierbarkeit
Klar, aber bei C++ beschwert sich ja auch keiner, dass es keinen Bytecode erstellt. Somit sind native Anwendungen an sich erstmal nicht "unbeliebt". Ich möchte meine nativen Anwendungen aber gern in einer sauberen Sprache schreiben. Und C# ist ich, was Programmiersprachen angeht, mein absoluter Favorit. Aber dafür gibt's eben leider keine Implemntierung für reine Windows-Anwendungen.
Th69 schrieb:
Aber evtl. könntest du dir ja mal .NETZ http://madebits.com/netz/index.php anschauen...
Das ist aber nur ein Komprimierungstool für die mit .NET erstellten Exen und Dlls. Auch das hat nichts damit zu tun, die Programme irgendwie unabhängig vom Framework laufen zu lassen. (Soweit ich das sehe.)
-
Dann musst du wohl oder übel D nehmen.
-
Schau dir mal http://www.remotesoft.com/linker/ an. Kostet halt leider ein paar Euro...
-
@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.
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.