C Runtime Environment wie bei Java
-
Hi.
Gibt es eine Lösung, wie man C oder auch C++ Programme, wie in Java auf einer RE laufen lassen kann, um plattformunabhängigkeit zu erreichen?
Wenn es dies nicht gibt, was spricht dagegen, was dafür?
Ich sehe es als eine Lösung, um endlich von den vielen Sprachen wegzukommen und sich nur noch auf eine Sprache zu konzentrieren, weil man so speziell Java eliminieren könnte, dessen Hauptargument die RE ist.
Zudem könnten Programme sofort auf jedem OS eingesetzt werden, könnten polulär werden, bis eine Community eine OS spezifische Version entwickelt. Plattformunabhängigkeit ist demnach ein Vorreiterfunktion, mit der man zuerst ein OS erschließt, bis man erweiterte Software nachentwickelt.
Was denkt ihr?
-
Du hast falsche Vorstellungen, was Plattformunabhaengigkeit bedeutet.
-
Komisch, meine C und C++ Programme laufen auf allen mir bekannten Plattformen. Auf einigen davon gibt es jedoch kein Java. Da muss bei mir wohl was kaputt sein.
-
SeppJ schrieb:
Komisch, meine C und C++ Programme laufen auf allen mir bekannten Plattformen. Auf einigen davon gibt es jedoch kein Java. Da muss bei mir wohl was kaputt sein.
Interessant. Laufen diese auch auf der Platform Java?
-
Shade Of Mine schrieb:
Interessant. Laufen diese auch auf der Platform Java?
Touchée.
SeppJ schrieb:
Komisch, meine C und C++ Programme laufen auf allen mir bekannten nativen Plattformen.
FTFM.
(Der Begriff gefällt mir nicht. Wie sagt man, wenn man eine Plattform meint, die keine virtuelle Maschine ist?)
-
Was ich nur wissen will ist, ob es eine plattformunabhängige RE, wie unter Java gibt und was dafür und dagegen sprechen würde.
Zu Ehren von C und C++ sei noch gesagt, dass ihr Code überall kompiliert werden kann und auch für fast jedes OS kompiliert werden kann und dadurch auch plattformunabhängig ist.
-
SeppJ schrieb:
(Der Begriff gefällt mir nicht. Wie sagt man, wenn man eine Plattform meint, die keine virtuelle Maschine ist?)
Es gibt nicht wirklich einen relevanten Unterschied zwischen einer "nativen" Plattform und einer Virtuellen Maschine. uU willst du Betriebssystem sagen?
Java Anwendungen laufen uebrigens auf keinem mir bekannten Betriebssystem. Ich doppel klicke die jar Datei aber es geht immer nur WinRAR auf
-
Wirtbetriebssystem.
-
Namenloser Held schrieb:
Was ich nur wissen will ist, ob es eine plattformunabhängige RE, wie unter Java gibt und was dafür und dagegen sprechen würde.
Falls du es noch nicht verstanden hast:
Java ist eine Plattform.
Deshalb sind Java Programme nicht plattformunabhaengig. Es gibt die Plattform Java aber fuer einige Betriebssysteme.Du koenntest zB C++ Programme fuer die Plattform Java kompilieren.
-
Ich geh mal bis zum Beweis des Gegenteils davon aus, dass wir es mit einem Troll zu tun haben.
-
Naja, C und C++ Runtimes benötigen für gewöhnlich ein Betriebssystem und einen CPU-Befehlssatz (spezielle Fälle außen vorgelassen!)
Theoretisch würde also hier folgendes entscheidend sein: du brauchst entweder eine virtuelle Maschine oder einen Emulator für die Programme. Und VMs und Emulatoren gibt es ja viele. Und dann auch ein Betriebssystem.
Es gibt aber keinen Standard.
-
Meine eigentliche Idee ist es ja, dass ich eine Software schreiben will, aber mich nicht um die Anpassung an die Betriebssysteme kümmern will, sondern gleic überall präsent sein will.
Eine VM wäre für Endbenutzer zu umständlich. Der User soll klicken und sein Fenster sehen.
-
@Namenloser Held
Das Problem ist nicht, dass C und C++ nicht Platformunabhängig wären. Das war auch das, was SeppJ dir sagen wollte. De facto gibt es für sehr viel mehr Platformen C und C++ Compiler, als es Javaunterstützung gibt. Der Unterschied ist, dass C und C++ keine GUI, keinen Sound etc. kennen. Aber offensichtlich kannst du ja nicht mal programmieren, sonst wüsstest du das. Damit sollte man vielleicht anfangen bevor man Software entwickeln will.
-
Man kann es zumindest zu JavaScript kompilieren und JavaScript läuft ja auch auf einer plattformunabhängigen VM. https://github.com/kripken/emscripten
-
Artchi schrieb:
Naja, C und C++ Runtimes benötigen für gewöhnlich ein Betriebssystem und einen CPU-Befehlssatz (spezielle Fälle außen vorgelassen!)
Eigentlich gar nicht so sehr. Der Standard ist mit Absicht sehr abstrakt geschrieben. Er kommt in gewissen Bereichen einem Binärrechner entgegen und die Dateioperationen der Standardbibliothek sind auch schon ziemlich konkret, aber die ganze Grundfunktionalität kann im Prinzip jede Turingmaschine. Daher sind streng standardkonforme Programme zwar nicht so spannend anzusehen, können aber spannende Sachen berechnen.
Und wenn man sich auf die Möglichkeiten einer freestanding implementation beschränkt, kann sogar der Toaster diese spannenden Sachen berechnen.