Laufen die Programme die man mit Linux programmiert denn eigentlich auch auf Windows und umgekehrt? Ich habe demnächst Python-Programmierung in der Schule!?

8 Antworten

Programmieren heißt ja erst einmal nur, dass man eine Quellcode erstellt und dann wohl auch in eine "elektronische" Form bringt.
Da ergibt sich schon die erste Hürde. Auch wenn die Texte in einem "Windows-Editor" genauso aussehen, wie in einem "Linux--Editoren". Die Dateien sind nicht identisch.
Unixoide (Unix, Linux, BSD ... ) verwenden am Zeilenende immer nur den Code 0dHex.

Microsoft hat sich bereits mit dem MS-DOS von dieser lange vorher angewendeten Form getrennt und packt zusätzlich das Zeichen 0aHex an das Ende.
Darüber stolpern die meisten Compiler aber auch Interpreter für Script-Sprachen.
Das ist aber, wenn man es weiß, das geringste Problem.

Es gibt aber auch andere Dinge, die beim Programmieren beachtet werden müssen.
Weniger bei mathematischen oder logischen Operationen. Sobald aber Dateien bearbeitet werden sollen, gibt es Unterschiede. Da sind die Zugriffsrechte, Windows kennt keine Links, keine User-ID usw. .
Da muss man sich schon unterschiedlichen Code ausdenken, so dass es auch in der gleichen Programmiersprache für die gleiche Aufgabe doch unterschiedlichen Code geben muss.

Das Programmieren (besser das Editieren) unter Linux ist außerdem wesentlich einfacher. Text markieren mit der Maus und irgendwo wieder einfügen, auch mit der Maus und seinen 3 Tasten. Kein <Strg><C> und dann wieder <Strg><V>. AUch hier wieder eine Extrawurst von Microsoft, denn unter unix-Systemen war <Strg><C> für "Beenden" der Standard.
Wer in C unter Windows programmieren muss, kann schon verzweifeln. Alle Dateien haben den gleichen Namen, die Erweiterungen wie .c , .obj , .hex , .define usw. werden z.B. im Explorer nicht angezeigt, dafür das, was sich Microsoft dafür ausgedacht hat. Wenn es das Scheiz-Wort noch nicht gäbe, hier es unbedingt gebracht.

Woher ich das weiß:Berufserfahrung
  • Python läuft sowohl auf Linux als auch auf Windows.
  • Es ist wichtig, dass du keine plattformspezifische Programmierung vornimmst. Denn dann hilft dir eine plattformunabhängige Sprache auch nicht weiter.
  • Python wird interpretiert. Den Interpreter gibt es für alle gängigen Plattformen
  • Wenn du Compiler-Sprachen nutzt (z. B. C) benötigst du einen Cross-Compiler.

Nein ein Linux-Programm wird nicht direkt unter Windows laufen und eine Windows-Exe auch nicht unter Linux.

Für Linux gibt es Wine womit man einige Windows-Programme zum laufen bekommt - wie stabil und ob die laufen hängt aber von verschiedensten Faktoren ab. Welche Tools es gibt damit Linux-Programme unter Windows laufen weiß ich nicht.

Mit Python erstellst du in der Regel keine Binärdatei die direkt ausgeführt wird sondern du erstellst ein Script - das ist und bleibt eine Textdatei die vom Python-Interpreter eingelesen und ausgeführt wird. Da es diesen Python-Interpreter als Progamm für Linux, OSX, Windows, ... gibt kann ein Python-Script auf allem Plattformen laufen.

Das ist eben der Unterschied zwischen Kompilersprachen wie zB C++ die ausführbare Binärdateien (Programme) erstellen und Interpretersprachen wie Python bei denen der Quelltext weitergegeben, eingelesen und ausgeführt wird.

Allerdings hängt auch das wieder von dir ab... Wenn du nicht ein paar Kleinigkeiten wie zB das Bilden von Pfaden so machst, dass es für alle Systeme passt dann kann ein solches Script auch nur auf einem System laufen denn /tmp gibt es nicht auf Windows und C:\Temp gibt es nicht unter OSX oder Linux. Das ist natürlich nicht das einzige auf das man achten muss aber das griffigste Beispiel!

Woher ich das weiß:Berufserfahrung – Softwareentwickler f. Web, Win. & Linux (seit 2001)

Hallo

Laufen die Programme die man mit Linux programmiert denn eigentlich auch auf Windows und umgekehrt?

Wenn man sie so schreibt das sie es tun und sie auf dem jeweiligen Zielsystem kompiliert, dann geht das selbstverständlich.

Ich habe demnächst Python-Programmierung in der Schule!?

Das ist ja "nur" eine Scriptsprache und die Scriptdateien*.py laufen natürlich auf jedem Betriebssystem auf dem es auch den dazugehörigen Interpreter (hier Python) gibt.

Linuxhase

Woher ich das weiß:eigene Erfahrung – Ich benutze seit 2007 Linux und habe LPIC101 und LPIC102

Es kommt weniger darauf an, unter welchem Betriebssystem Du programmiert, sondern für welche(s) Betriebssystem(e) Du programmierst.

Allerdings sollte man nicht nicht der Illusion hingeben, dass man sowas "nebenbei" realisiert. Man muss die Besonderheiten der Betriebssysteme kennen und vor allem die Erwartungen des Nutzers an das "Look'n'Feel" erfüllen, welches wiederum von genutzten Betriebssystem geprägt ist.