Eignet sich Python für mein Projekt?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten

Eignet sich Python für mein Projekt?

Ja
1
14%
Nein
4
57%
Keine Ahnung
2
29%
 
Insgesamt abgegebene Stimmen: 7
final will
User
Beiträge: 2
Registriert: Mittwoch 30. Mai 2012, 19:54

Hi.

Ich würde gerne wissen, ob Python für meine Projekte geeignet ist.

Ich darf nicht genau sagen, was ich programmieren will, da es noch geheim gehalten werden muss. Aber es ist vergleichbar mit einem Dateimanager, Browser oder Datenbankklienten.

1. Am wichtigsten ist, dass die Software ohne Anpassungen unter jedem OS läuft. D.h. wenn ich es unter Linux schreibe, soll es ohne weiteren Aufwand unter Windows, Android, iPhone laufen.

2. Es soll eine grafische Oberfläche haben.

3. Es wäre toll, wenn man es über den Browser, wie ein Java Applett nutzen könnte. Also so, dass man die Software auch in einem Browserfenster sieht und nutzen kann.

Allerdings ist dies kein muss.

4. Da das Projekt später sehr große Ausmaße annehmen wird, rentiert sich C oder C++, wegen dem großen Potential, das ausgeschöpf werden kann. Jedoch ist es unter diesen Sprachen schwieriger, sie an die verschiedenen OS anzupassen. Darum will ich zuerst unter Python entwickeln, mit relativ wenig Aufwand die Basis auf jedem OS zur Verfügung stellen und dann, wenn ich Geld mit den Projekten gemacht habe, auf C oder C++ umsteigen. Haltet ihr diese Strategie für gut?

5. Eignet sich vielleicht doch Java besser?

6. Das Projekt soll Open Source werden. Da sollte Python doch eine gute Wahl sein?

MfG
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Für iPhone kannst du nur AFAIK Objective-C verwenden und für Android Java.

Da fällt Python raus.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
final will
User
Beiträge: 2
Registriert: Mittwoch 30. Mai 2012, 19:54

Danke. Android ist ein wichtiger Markt. Nun tendiere ich wieder zu Java. Aber vielleicht ignoriere ich Android auch einfach und konzentriere mich auf den Desktopbereich. Darum hätte ich trotzdem gerne weitere Meinungen.
lunar

@final will: Du hast über Dein Projekt nur verraten, dass es irgendwie überall laufen soll, und das ist ehrlich gesagt ein bisschen arg wenig, um Dir spezifische Hinweise geben zu können.

Man kann mithin nur allgemeine Hinweise geben, und Dir sagen, dass C und C++ mit den richtigen Bibliotheken auch plattformunabhängig sind, das Verteilen durch die Notwendigkeit des Kompilierens allerdings aufwendiger ist, dass eine graphische Oberfläche für alle Plattformen sehr schwierig zu implementieren ist, weil Mobiltelefone andere Anforderungen und Bedienkonzepte haben als normale PCs, und dass iOS und Android andere Kernsprachen haben, so dass es auch schwierig wird, alle Systeme überhaupt mit derselben Sprache zu bedienen. Es gibt ohnehin kein GUI-Framework, dass auch allen genannten Plattformen ausreichend gut unterstützt wird.

Ich würde pauschal C# ins Spiel bringen, da Du damit Anwendung unter Windows, Linux, OS X, iOS und Android entwickeln und betreiben kannst, allerdings musst Du für die iOS- und Android-Portierungen zahlen. Zudem musst Du mindestens die Oberfläche für wirklich jedes System separat anpassen, da WPF und Winforms nur unter Windows vernünftig laufen, Gtk# wiederum nur unter Linux, und Cocoa ohnehin nur für iOS und OS X existiert.

Es bliebe Dir also die Möglichkeit einer Webanwendung, den HTML5 und Javascript kann jedes der genannten Systeme. Dafür musst Du auf die Integration ins System verzichten, und Dich mit den - relativ mageren - Schnittstellen der Browser zufrieden geben.

Aber das wusstest Du sicherlich alles auch ohne diesen Beitrag. Zumindest solltest Du es, wenn Du überhaupt solche Projekte planen willst.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ich denke es ist wenig sinnvoll, sich bei einem *so großem* Projekt mit so allgemeinen Punkten, dazu noch welche, die gar nichts mit der Frage zu tun haben, eine fundierte Meinung durch eine Umfrage zu holen ;-)

Generell kann man die Punkte 1 und 2 mit "Ja" beantworten, *aber*: OS unabhängig hängt immer auch vom Problem und der Abstraktionstiefe ab. Bei extremen nativen OS spezifischen Zugriffen (die bei einem Dateimanager ggf. vorkommen könnten), ist das aber eher keine Frage der Programmiersprache, sondern eben des Problems ans sich. Ansonsten ist Python schon stark Plattform unabhängig.

Punkt 3 ist mit Python quasi nicht möglich.

Die Argumentation von 4 kapiere ich nicht!

Und Frage 5 ist doch irgend wie komplett am Thema vorbei... evtl. ist ja auch C# besser!?! Das können wir doch anhand der spärlichen Infos kaum beurteilen.

Am besten bei einem so gigantischen Projekt ist doch die Sprache, die Du beherrschst, respektive die, die Du am besten beherrschst ;-)

Punkt 6 hat eigentlich auch nichts mit der Sprache an sich zu tun!
(Wenn das Projekt noch geheim sein muss, wieso soll es dann OS werden?)

Ich denke Du müsstest Dir erst einmal klarer um die Kernanforderungen werden. Versuche diese nach "Muss" und "kann" zu trennen und dann in den Gruppen ggf. noch nach Wichtigkeit zu bewerten. Danach kann man mal anfangen eine Matrix mit in Frage kommenden Sprachen auszufüllen...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

Ich bin ja versucht zu sagen dass *alle* genannten Punkte von keiner Programmiersprache erfüllt werden.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Wenn du eine brauchbare Oberfläche haben willst musst du die den Platformen entsprechend anpassen, damit brauchst du unterschiedliche Oberflächen für Desktop, iOS und Android, wenn es gut sein soll kommt man imho nicht umhin die GUI auch an Windows, OS X und eine konkrete Linux Distribution/Desktopumgebung anzupassen.

Je nachdem was du machst bleibt dir gar nichts anderes übrig als für iOS und Android Objective-C und Java zu verwenden, die Leistung und Stromversorgung ist da nunmal begrenzt. Browser wären wahrscheinlich definitiv so ein Fall.

C# könnte da eine Möglichkeit sein aber es könnte auch durchaus sein dass keine Sprache alle Anforderungen abdeckt.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ich würde nach der folgenden Strategie vorgehen: wenn du dir nicht selber beantworten kannst, ob eine Sprache für "alle" Betriebssysteme geeignet ist, dann solltest du dich auf ein einziges OS beschränken. Am besten eins mit dem du schon gearbeitet hast und mit einer Programmiersprache die du beherrscht. Andernfalls ist das ganze Projekt eigentlich gleich zum scheitern verurteilt, da du dich auf zu Nebenschauplätzen verzettelst.
Das Leben ist wie ein Tennisball.
Drache
User
Beiträge: 51
Registriert: Montag 29. November 2010, 21:51
Wohnort: Berlin
Kontaktdaten:

jbs hat geschrieben:Für iPhone kannst du nur AFAIK Objective-C verwenden und für Android Java.

Da fällt Python raus.
Für Android kann man schon Python benutzen, als Gui kommt dann HTML + Javascript in frage.
http://code.google.com/p/android-scripting/

Hast du dir mal http://phonegap.com/ angeschaut ?

Gruss
Drache
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

final will hat geschrieben:Danke. Android ist ein wichtiger Markt. Nun tendiere ich wieder zu Java. Aber vielleicht ignoriere ich Android auch einfach und konzentriere mich auf den Desktopbereich. Darum hätte ich trotzdem gerne weitere Meinungen.
Na wenn du es in Java implementierst, geht es wiederrum auf iOS nicht. Und mit C und C++ wirst du auch mit dem Android NDK und dem iOS SDK immer noch eigenen Code schreiben müssen.

Ich schließe mich BlackJack an: Eine Sprache die das alles abdeckt gibt es eher nicht. Vielleicht am ehesten noch C#, mit den kostenpflichtigen Tools von Ximian für iOS und Android.

Und Java-Applets stinken, das will man auch gar nicht haben. Inzwischen denke ich auch nicht, dass viele überhaupt ein Java-Plugin im Browser haben. Braucht man ja auch nie.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mpathy
User
Beiträge: 48
Registriert: Montag 17. September 2007, 12:29

Du kannst schon in Python Apps für Android, iPhone sowie die drei großen Betriebsysteme schreiben:
http://kivy.org/#home

"Kivy is running on Linux, Windows, MacOSX, Android and IOS. You can run the same Python code on all supported platforms."

Weiß aber nicht wie stabil das aktuell ist und hab auch noch keinen Quellcode von größeren Projekten gesehen.
Will mir das ganze aber demnächst mal antun! Hat damit schon jemand gearbeitet?
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Leonidas hat geschrieben:Inzwischen denke ich auch nicht, dass viele überhaupt ein Java-Plugin im Browser haben. Braucht man ja auch nie.
Außer Du möchtest bei unserer alten Tante Post online frankieren. Da geht nix ohne Java-Plugin. Nicht einmal mit dem icedtea-plugin.
Werden also schon ein paar Leute sein, die nicht nur "ein" sondern sogar "das" Java-Plugin verwenden (müssen).

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
lunar

@mutetella: Post… ehrlich, das ist so 1900 ;)
Benutzeravatar
framp
User
Beiträge: 52
Registriert: Samstag 9. Oktober 2010, 22:16
Wohnort: bei Stuttgart
Kontaktdaten:

final will hat geschrieben:1. Am wichtigsten ist, dass die Software ohne Anpassungen unter jedem OS läuft. D.h. wenn ich es unter Linux schreibe, soll es ohne weiteren Aufwand unter Windows, Android, iPhone laufen.
Ist das eine ClientAnwendung ist es schwierig. Hast Du eine Serveranwendung ... da gehen viele Leute dem 'LaufÜberall' Problem dadurch aus dem weg, dass die HMTL Seiten erzeugen. Das ist aber mit beliebigen Programmiersprachen möglich. Muss nicht Python sein.
2. Es soll eine grafische Oberfläche haben.
HTML?
3. Es wäre toll, wenn man es über den Browser, wie ein Java Applett nutzen könnte. Also so, dass man die Software auch in einem Browserfenster sieht und nutzen kann.
HTML?
4. Da das Projekt später sehr große Ausmaße annehmen wird, rentiert sich C oder C++, wegen dem großen Potential, das ausgeschöpf werden kann. Jedoch ist es unter diesen Sprachen schwieriger, sie an die verschiedenen OS anzupassen. Darum will ich zuerst unter Python entwickeln, mit relativ wenig Aufwand die Basis auf jedem OS zur Verfügung stellen und dann, wenn ich Geld mit den Projekten gemacht habe, auf C oder C++ umsteigen. Haltet ihr diese Strategie für gut?

5. Eignet sich vielleicht doch Java besser?
Du bringst hier C++, Java und Python in die Diskussion. Damit kannst Du Dein Ziel immer erreichen. Allerdings hängt der Aufwand und die Antwort extrem davon ab ob Du eine Client- oder Serveranwendung bauen willst. In jeder Sprache kann ich sagen 'Ich liebe Dich'. Wenn ich das über den Kanal tun muss ist English 'I love you' angeraten (Server). Wenn ich mich aber regelmäßig in Frankreich aufhalte würde ich 'Je t'aime' (Client) bevorzugen.
Antworten