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
Eignet sich Python für mein Projekt?
Für iPhone kannst du nur AFAIK Objective-C verwenden und für Android Java.
Da fällt Python raus.
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]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
-
- 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.
@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.
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.
- 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...

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
assert encoding_kapiert
Ich bin ja versucht zu sagen dass *alle* genannten Punkte von keiner Programmiersprache erfüllt werden.
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.
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.
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.
Für Android kann man schon Python benutzen, als Gui kommt dann HTML + Javascript in frage.jbs hat geschrieben:Für iPhone kannst du nur AFAIK Objective-C verwenden und für Android Java.
Da fällt Python raus.
http://code.google.com/p/android-scripting/
Hast du dir mal http://phonegap.com/ angeschaut ?
Gruss
Drache
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.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.
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
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?
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?
Außer Du möchtest bei unserer alten Tante Post online frankieren. Da geht nix ohne Java-Plugin. Nicht einmal mit dem icedtea-plugin.Leonidas hat geschrieben:Inzwischen denke ich auch nicht, dass viele überhaupt ein Java-Plugin im Browser haben. Braucht man ja auch nie.
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
)

- framp
- User
- Beiträge: 52
- Registriert: Samstag 9. Oktober 2010, 22:16
- Wohnort: bei Stuttgart
- Kontaktdaten:
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.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.
HTML?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.
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.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?