Python die geeignete Sprache?

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
highend
User
Beiträge: 5
Registriert: Freitag 7. Dezember 2012, 00:04

Hallo,

ich hatte eine Idee für ein Projekt...
Die Resourcen (Geld) sind knapp, Zeit ist genug vorhanden, der Wille zu lernen sowieso.

Erfahrung mit Python habe ich nicht, bisher nur mit Scriptsprachen (AutoHotkey, Autoit) gearbeitet (+ SQL).

Was ich am Ende brauche ist eine Applikation, die auf einem Managed Server laufen soll (Linux). Sie soll Anfragen einer App (Android, iOS) entgegennehmen und mit den enthaltenen Informationen Datenbankeinträge lesen + schreiben (vermutlich eine MySQL DB).

Wenn diese Idee zünden sollte, könnte die Anzahl der der gleichzeitig zugreifenden Apps durchaus höher sein (100+ / Sekunde). Dabei ist die Menge der zu verarbeitenden Informationen eher klein.

Wäre Python für diesen Zweck eine geeignete Sprache oder wäre es sinnvoller, sich nach etwas anderem umzusehen (C++ / Java)?

Danke im voraus für eure Meinungen...
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

100+ Requests/Sekunde sind nicht besonders viel, Python kommt damit leicht zurecht.
the more they change the more they stay the same
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

die Frage ist sehr pauschal...

Wie viele Request du bearbeiten kannst hängt ja auch maßgeblich vom Server und der Leistungsfähigkeit der Hardware ab. Und wie und was Python mit den Daten machen soll

Wenn eine DB im Hintergrund werkelt kommt es noch drauf, wie viel SQL Abfragen pro Request laufen und wie viel Power der DB-Server hat (viel RAM hilft immer viel ;-) ).

Grundsätzlich ist nginx + gunicorn + Python Webframework (Django, Flask, ...) aber schon ein ziemlich potentes Gespann.

Gruß, noisefloor
highend
User
Beiträge: 5
Registriert: Freitag 7. Dezember 2012, 00:04

Vielen Dank für eure Antworten!
die Frage ist sehr pauschal...
Absicht, ich bin gerade erst auf die Idee gekommen :)

An der Hardware soll es später nicht scheitern, zum Testen wird eine skalierbare JiffyBox herangezogen um später auf 1, ... x Managed Server umzuziehen (wenn nötig mit dediziertem, auf dem nur die Datenbank läuft).

Dann ordere ich mir mal die nötige Einstiegslektüre :)
Benutzeravatar
pixewakb
User
Beiträge: 1411
Registriert: Sonntag 24. April 2011, 19:43

Android-Apps sind in Java, iOS-Apps sind in Objective-C geschrieben.

Python ist im Apps-Bereich nicht konkurrenzfähig und das leider aus einem simplen Grund: Apps für Smartphones kannst Du mit Kivy (m. E.) entwickeln, schau dir die Python-Apps an, die es im jeweiligen Appstore gibt. Da ist das Problem, dass die Smartphone-Betriebssysteme nicht auf Python setzen und somit die App selbst Python mitbringen muss.

Für kleine Apps kommen so schon mal gerne 20 MB zusammen. Native Apps erledigen eine vergleichbare Aufgabe mit vielleicht 1, 2, 3 MB (Download-Größe). Du hast nichts von der Sprache geschrieben, in der du deine Smartphone-App programmieren willst oder ich habe die Sprache nicht erkannt.
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

@pixewakb: der TE hat nach der Serverkomponente gefragt, nicht nach der Programmierung einer Client App.

Gruß, noisefloor
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

@highend: Ergänzung - und wenn du mal so richtig richtig viele Requests / Sekunde bearbeiten musst, gibt es noch das Tornado Webframework. Tornado + nginx schafft angeblich 8000+ Requests pro Sekunde.

Gruß, noisefloor
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

noisefloor hat geschrieben:Ergänzung - und wenn du mal so richtig richtig viele Requests / Sekunde bearbeiten musst, gibt es noch das Tornado Webframework. Tornado + nginx schafft angeblich 8000+ Requests pro Sekunde.
Tornado soll relativ 'ineffizient' sein http://blog.kgriffs.com/2012/12/12/geve ... marks.html, http://nichol.as/benchmark-of-python-web-servers. Natürlich ist das noch immer ziemlich gut. Wie repräsentativ die Benchmarks sind kann ich nicht sagen, dazu kenne ich mich zu wenig aus.

Persönlich finde ich gevent auch ungeschlagen von der API.
the more they change the more they stay the same
highend
User
Beiträge: 5
Registriert: Freitag 7. Dezember 2012, 00:04

Danke für die zusätzlichen Hinweise, hab sie mal für's spätere Lesen in die Bookmarkliste mit aufgenommen...

@pixewakb
Natürlich sollen die Apps nicht in Python geschrieben werden, es ging hier ausschließlich um das Backend. Die Apps werden später in C# geschrieben und von Visual Studio entsprechend für die Zielsysteme ausgeworfen.
BlackJack

@highend: Apps für Android und iOS in C#? Weil die Sprache für beide Zielplattformen gleich ungeeignet ist‽ :twisted:
highend
User
Beiträge: 5
Registriert: Freitag 7. Dezember 2012, 00:04

BlackJack

@highend: Wenn man *eine* API für die verschiedenen Plattformen hat, bedeutet das Abstriche machen zu müssen wo sich die Plattformen so weit unterscheiden das es nicht sinnvoll abstrahierbar ist. Das da für alle drei Plattformen was von „runs natively“ steht ist, nun ja, Propaganda, denn bei Android läuft ein ARM-Binary nicht auf jedem Endgerät und den Bytecode plus .NET-Laufzeitumgebung (läuft *die* auf jedem Android-Gerät?) als „nativ“ zu bezeichnen ist doch recht abenteuerlich. Ausserdem dürfte so eine Anwendung nicht gerade klein sein. Android „nativ“ wäre etwas für die JVM. .NET ist auf Android und iOS eher ein Fremdkörper.
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

@BlackJack

So schwarz sieht die Welt der Crossplatform-App-Entwicklung aber nicht aus. Aus persoenliche Anschauung und einem Gespraech mit dem Entwickler weiss ich, dass zB die https://itunes.apple.com/de/app/auto-mo ... 44729?mt=8 in Qt/QML geschrieben ist. Und er war sehr angetan. Ich habe nur ein bisschen auf dem Blackberry darauf gespielt, und es war schon wirklich sehr gut.

Ist es 100% statt 98%? Bestimmt. Aber das reicht ja fuer die meisten Apps.
Benutzeravatar
pixewakb
User
Beiträge: 1411
Registriert: Sonntag 24. April 2011, 19:43

Die App ist 50.3 MB groß!? Leser von auto motor und sport sind definitiv hart im Nehmen.

Python-Apps - ich habe das heute nachgesehen - schaffen mit Kivy unter der Haube locker ihre 15 MB und wir reden über nichts Anspruchsvolles, Interessantes oder irgendwie Beeindruckendes. Das sind Größen, wo ich an mein Datenvolumen erinnert werde. Denke nicht, dass es konkurrenzfähig ist.
highend
User
Beiträge: 5
Registriert: Freitag 7. Dezember 2012, 00:04

Per WLAN app installieren und auch nur über WLAN updaten... Ansonsten sind auf Android Apps wie z.B. Evernote auch schon bei ~25 MB. Tut mir leid, aber ich seh da für den Endanwender kein Problem (dem es im Regelfall auch völlig schnurz ist, worin ein App geschrieben ist, hauptsache sie läuft und sieht noch halbwegs schick aus). Ist doch bei den Metro Apps unter Windows keinen Deut anders.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

pixewakb hat geschrieben:Die App ist 50.3 MB groß!? Leser von auto motor und sport sind definitiv hart im Nehmen.
Ich weiß nicht was du für Apps auf dem Handy hast, bei mir sind die meisten Apps 30MiB+, einige sogar gut über 120MiB. Die Meisten Google Apps (vorinstalliert) sind auch um die 100MiB. Persönlich stört mich das nicht einmal obwohl ich nur 8GiB Speicher hab, wobei dafür schon einiges für das OS draufgeht.
the more they change the more they stay the same
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

50.3MB sind doch gar nichts. Allein durch Fonts und Grafiken die man für unterschiedliche iOS Devices mehrfach in unterschiedlichen Auflösungen braucht verbraucht man recht schnell so einiges an Speicher. Je nach Design spielt es da keine Rolle mehr welche Sprache man verwendet. Mal abgesehen davon dass das normalen Nutzern völlig egal ist wie groß irgendwelche Apps sind. Das einzige was zählt ist ob man unter das Limit kommt über dem man Apps nur über Wifi laden kann.

Xamarin ist anders als z.B. Kivy durchaus etabliert und kein ungewöhnlicher oder fragwürdiger Weg Apps zu entwickeln, sofern man es sich leisten kann.
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

@ pixewakb Hast du dieses C64-Android-Telefon, oder wieso flippst du wegen ~50Mb so aus? Lass das Faktor zwei so gross sein wie andere Apps (SPIEGEL zB) - na und? Dafuer bekommst du eine weitgehend einheitliche Anwendung fuer diverse Plattformen. Wenn ich die Wahl habe zwischen ein paar Ewiggestrigen, die wegen ein paar MB aufgeregte News-Group-Beitraege ueber UUCP absetzen, und Heerscharen von Nutzern, die ich sonst nur fuer viel mehr Geld erreichen koennte - ich weiss, was ich waehle.... YMMV, Assembler ist ja auch was schoenes...
Antworten