Welche Programmiersprache für ein Programm, welches für jedes Betriebssystem funktioniert?

8 Antworten

C. Punkt. :)

Selbst C++-Compiler sind rar gesäht, verglichen mit der großen Anzahl an C-Compilern.

Ich schreibe meine Software immer als (wahlweise statisch oder dynamisch linkbare) Bibliothek in C90.

Dazu gibt es immer ein C++ Interface, ganz schick mit RAII und ziemlich bleeding Edge. (Meistens so C++17, neuerdings immer C++20.)

Damit läuft die Software auf jedem Rechner seit Anfang der 90er Jahre, und wenn sie jemand auf einem modernen Win / Lin / Mac nutzen will, gibt es ein supermodernes C++ Interface.

Von da an ist es immer sehr einfach eine Python, Ruby, Perl, wasauchimmer-Schnittstelle zu bauen.

Aber C ist die ABSOLUTE Grundlage von allem, wenn es um portabilität geht. Da kommt man einfach nicht drum rum. :)

Woher ich das weiß:Berufserfahrung

sigterm  05.06.2021, 22:04

Nachtrag: Ich kann die ganzen Leute hier nicht verstehen, die Java, C#, Python oder JavaScript schreiben.

Es geht um PORTABILITÄT, und keine dieser Sprachen ist wirklich portabel!

Die Anzahl der Plattformen, für die eine JVM verfügbar ist, kann man an einer einzigen Hand abzählen. Für C# reicht eine halbe Hand.

Alles andere sind nur halb unterstützte Proof-Of-Concept Knickeier, mit denen man nicht wirklich langfristig etwas auf die beine stellen können wird.

Und Python und JavaScript ... dazu sag ich gar nichts!

Es ging dem Fragensteller um absolute Portabilität und das geht ausschließlich nur mit C. Wenn man sich auf moderne, große, fette Plattformen beschränkt, vielleicht gerade mal noch so C++.

Aber alles andere ist Quark. :)

1

Spontan fallen mir ein: C#, C/C++, Java, JavaScript, PHP, Perl
Von PHP und Perl kann ich aber nur abraten.
Für C# gibt es noch keine offizielle UI, die auf allen Geräten laufen soll, die ist gerade in Arbeit und heißt MAUI. Alternativ gibt's aber ASP.NET Core für's Web oder Drittanbieter-Frameworks, oder Du baust unterschiedliche UI je Ziel-Gerät.
Und C/C++ läuft zwar überall, aber auch nur auf dem Papier. Du musst jederzeit beachten, dass es verschiedene Systeme gibt, das ist bei anderen Sprachen einfacher.


Palladin007  05.06.2021, 21:37

PS:

C# kann so kompiliert werden, dass es das verwendete .NET-Framework plus Runtime selber mit bringt. Das macht das Programm natürlich größer, dafür hast Du alle Vorteile, ohne dass etwas installiert werden muss.

Davon würde ich es aber erst abhängig machen, wenn das notwendig oder gefordert ist.

Vergleichbares geht mit Java, JavaScript, PHP und Perl glaub nicht.

0

Javascript kann jedes Gerät mit einem Browser und somit wohl auch jedes mit einem komerziellen Betriebssystem.

Woher ich das weiß:Berufserfahrung – Programmierer

Name11Unbekannt 
Fragesteller
 05.06.2021, 19:59

Also ich wollte jetzt eher ein Programm schreiben, welches man auf den PC installieren und somit auch ohne Internetverbindung verwenden kann.

0
Ecaflip  05.06.2021, 20:01
@Name11Unbekannt

Natürlich kann man das auch lokal aufrufen. Dazu einfach das Skript in ein sonst leeres HTML einbinden. Wenn möglich, dann ist es vermutlich noch besser mit Node.js o.ä., was z.B. auf Android und Windows möglich ist, aber vermutlich nicht auf allen Betriebssystemen.

1
Ecaflip  05.06.2021, 21:11
@Name11Unbekannt

Ganz auf das, was du programmieren willst. Bei Client-Server-Systemen musst du entsprechend zwei oder Sachen ausführen und ggf. auch laufen lassen. Für Spiele solltest du z.B. noch den Spielstand speichern und laden etc.

0

Als Binärcode, also als ausführbares Programm, ohne eine VM zu verwenden wie Java? Nein. Das liegt aber nicht an der Programmiersprache: verschiedene Betriebssysteme haben verschiedene Formate für ausführbare Programme und verschiedene Schnittstellen für Programme, um Funktionen wie Ein- und Ausgabe anzubieten. Und da sind wir noch gar nicht bei der Tatsache, dass es verschiedene Prozessorarchitekturen mit entsprechenden Befehlssätzen gibt.

Als Sourcecode? Das geht in vielen Sprachen, sofern man bei der Entwicklung aufpasst.

Es gibt keine Programmiersprache bei der exakt der selbe Code für PCs und Handys funktioniert. Eine Sprache, die auf jedem PC(Windows, MacOs, Linux, Raspberry Pi) läuft ist Python. Wenn du eine GUI-App schreiben willst kann ich dir PyQt empfehlen. Zudem hat Python den Vorteil dass es sehr einfach zu lernen ist. Wenn du schon in C++/Java o.ä. programmieren kannst, dann kannst du Python sehr schnell lernen

Woher ich das weiß:eigene Erfahrung

Name11Unbekannt 
Fragesteller
 05.06.2021, 20:08

Ahh stimmt daran habe ich kann nicht gedacht. Reichen Grundkenntnisse in Python aus um direkt auch mit PyQt zu programmieren?

0
havefunidont  05.06.2021, 20:13
@Name11Unbekannt

Da bin ich mir nicht sicher, aber Tkinter (Python Library) kann man als Anfänger schnell lernen. Du kannst mit Tkinter alle möglichen Anwendungen erstellen, die du auch mit PyQt erstellen könntest, dafür dauert es aber mit Tkinter länger.

0
Palladin007  05.06.2021, 21:31
Es gibt keine Programmiersprache bei der exakt der selbe Code für PCs und Handys funktioniert.

Würde ich so pauschal nicht sagen, das hängt von den Anforderungen ab.

Microsoft von .NET versucht's z.B. mit Metadaten zu lösen, indem jederzeit aus den Metadaten heraus klar ist, welcher Code wo läuft bzw. wo nicht. So kann man eine Code-Basis schreiben und für die Stellen, wo man je Gerät spezifisch arbeiten muss, gibt's ebenfalls entsprechende Möglichkeiten.
Man hat also eine Codebasis für alles.
Mit UI ist das noch so 'ne Sache, das Framework, mit dem das auch möglich sein soll (MAUI) ist noch in Arbeit, soll dieses oder anfang nächstes Jahr fertig werden.

2