Welche Sprache für kleines Cross-Platform-Programm?

Fallwrrk

Urgestein
Thread Starter
Mitglied seit
11.12.2011
Beiträge
5.638
Ort
NRW
Mojn zsamm!

Ich realisiere derzeit mit zwei Bekannten ein Projekt, bei welchem wir jetzt endlich Zeit haben daran zu arbeiten. Benötigt wird damit neben einer Webseite auch eine mobile App für Android, sowie ein Desktop-Programm für Windows, Linux und OS X. Da ich für den "einfachen" Teil der Webentwicklung zuständig bin, das heißt Webauftritt des Projekts etc., bin ich relativ unausgelastet und wahrscheinlich auch weit vor den Jungs fertig. Daher kann ich den beiden Jungs natürlich auch Arbeit abnehmen.

Die Beiden sind leider Gottes nur Android-Entwickler, beherrschen also nur Java. Deswegen war vorerst die Idee, dass auch die Desktop-Programme mit Java realisiert werden. Aber allein schon die Tatsache, dass man unter jedem der drei Systeme (Linux mal ausgenommen, da dort ja sowieso) Java explizit installieren muss, finde ich die Idee weniger geil, vor allem da das Desktop-Programm kein riesiges Konstrukt werden wird. Extra dafür Java installieren, das wäre zu viel des Guten.

Nach ein paar Unterhaltungen haben wir uns jetzt geeinigt, dass die Desktop-Anwendung unter einer Sprache laufen wird, die alle drei Systeme von Haus aus unterstützen (bzw. unter Tux auf den gängigen Distros) bzw. mit wenigen Libs lauffähig wird. Ich möchte also auf einem frisch installierten OS einen USB-Stick mit dem Programm einstecken und sofort starten können. Leider sind wir uns bezüglich der eingesetzten Sprache unsicher. Bei jedem der drei Systeme ist leider etwas anderes üblich (C# + .NET, Python, ObjC), was die Sache nicht leichter macht.

Als Linux-User tendiere ich sehr zu Python, besonders da ich auch unter Windows schon gute Python-Programme gesehen habe (siehe Dropbox). Allerdings bin ich mir unsicher, wie die Situation unter OS X aussieht.

Die meiste Magik wird im Hintergrund statt finden. Das GUI wird recht klein sein und wahrscheinlich auch nur einmal im Jahr begutachtet werden. Dennoch möchte ich natürlich nicht nur wegen dem Projekt eine neue Sprache lernen, weswegen sich mit der Sprache später auch andere schöne Dinge realisieren lassen sollten, an denen man seinen Spaß hat. Ob die Sprache "einfach" ist oder nicht ist relativ unwichtig. Wär natürlich recht nett, aber das ist kein Kriterium.

Über ein wenig Beratung + Begründung würde ich mich sehr freuen.

mfg Marcel
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Und wenn ihr einfach die 3 schon genannten Sprachen benutzt?
Für die Java Entwickler sollte auch C# kein Problem sein, die Unterschiede sind minimal.
Mit Grundkenntnissen aus C++ und Java/C# kann man sich auch in ObjC ganz gut einarbeiten.
Zu Phyton kann ich allerdings nichts sagen.
 
Zuletzt bearbeitet:
Das ist ja das Problem, wir wollen nicht drei verschiedene Sprachen einsetzen, sondern, wenn möglich nur eine. Und die Frage war, welche. ;)

Und Python hat nicht mehr viel mit den C-Sprachen / Java zu tun. ;)
 
Also wenn phyton das kann was du brauchst, und wenn Java zu aufwändig ist, dann steht die Entscheidung doch schon fest?!
 
Ja, aber es wird jetzt wohl nicht Python, sondern C++, was aber daran liegt, dass ich soeben jemanden gefunden habe, der sich sehr gut mit C++ auskennt.
 
Ein C++-Programm unter Windows, Linux und MacOS zum laufen zu bekommen könnte interessant werden, müsste man es nicht für jede Plattform anpassen oder teilweise neu schreiben?
Mit C++ kenne ich mich, von einigen Gehversuchen abgesehen, nicht aus.
Ich bin auch kein großer Freund von JRE auf Desktops, aber könnte hier nicht alles unter Java laufen?
Die Android-App, die Webseite und auch der Client auf dem Desktop?
Andererseits bestünde die Möglichkeit Jython einzusetzen, wenn einem Python mehr liegt, jedoch Java-Lbraries benutzt werden sollen.
 
C++ ist schon toll solangs eine Consolenanwendung bleibt ;) aber wenns was mit grafischer Oberfläche werden soll, sollte man was neueres benutzen :)
 
Ich bin auch kein großer Freund von JRE auf Desktops, aber könnte hier nicht alles unter Java laufen?

Das war die Idee der beiden Androidler, aber solange man die benötigten Java-Bibliotheken nicht einfach mit dem Programm mitliefern kann, wird das nichts. Der DAU bekommt es halt leider nicht gebacken noch vorher Java zu installieren und der halbwegs Erfahrene sieht es nicht ein wegen einem 1 MB großen Programm das komplette Java-JRE zu installieren. Und da es zu lange dauert bei jedem OS die empfohlene Sprache zu nutzen, was dann in C#, ObjC, Python UND Java enden würde, muss für den Desktop C++ her. Ne andere Idee hab ich leider nicht.
 
Java wäre aber hierfür die beste Lösung, vor allem auch mithilfe von Ecplise was meiner Meinung nach eine sehr gute Entwicklungsumgebung ist.
Mich würde aber interessieren als was ihr euch letztendlich entschieden habt.
 
Da ich jemanden gefunden habe, der jede Sprache beherrscht, die ein C im Namen hat, läuft auf jedem der drei Systeme dann die bevorzugte Sprache des Programms, also C# auf Windows, Python auf Tux und Objective C auf'm Mac. Das Programm ist nicht so groß, dass das kontraproduktiv sein würde. Java ist weiterhin keine Alternative, besonders nicht unter Windows. Ich kann dem DAU, der nichtmal weiß, wie er die XY-Toolbar wieder deinstalliert, nachdem er bei der Installation von irgendeinem Optimizer nur auf "Weiter" geballtert hat, nicht sagen, dass er erst dies und das noch installieren muss, bevor unser Programm rennt. Damit sind die Meisten leider Gottes überfordert.

mfg Marcel
 
Ich würde allerdings schon davon ausgehen, dass die meisten eine JRE auf dem Rechner haben. Da gibts doch auch nix zu können, webinstaller durchlaufen lassen und fertig..
 
Haben die Wenigsten. Thema hat sich aber ohnehin erledigt. Das neue Feature von Pushbullet, also die synchronisierte Zwischenablage, das war unser Vorhaben. Wir waren also eh zu langsam. ;)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh