Glauben Sie, dass GAE allein ausreicht, um Python über Ruby zu lernen? [geschlossen]

12

Denken Sie angesichts der Tatsache, dass Sie sich nicht mit dem Einrichten / Kaufen eines Servers oder dem Kaufen einer Domain befassen müssen, dass eine Tatsache allein ausreicht, um eine über die andere zu wählen?

Ich möchte nicht unbedingt mit Google App Engine arbeiten, ich finde es nur praktisch, wenn es um Hosting / Umgebung / etc geht. und ich frage mich, ob das ein guter Grund ist, Python zu lernen.

Auf jeden Fall suche ich keine Debatte zwischen Python und Ruby, sondern mehr über Google App Engine und ob sein Wert ausreicht, um die Sprache zu bestimmen, die Sie lernen sollten.

qnoid
quelle
4
Google App Engine für diejenigen von uns, die TLA-Anforderungen haben. Beachten Sie, dass Sie auch Java verwenden können.
Robert Harvey
:) Ich habe bereits Java und Objective-C zu bewältigen. Denken Sie nicht, dass das gleichzeitige Lernen von Ruby und Python das beste Verhältnis von Zeit zu Wert ist: P
qnoid
Ich denke, Sie werden feststellen, dass Sie, sobald Sie Python gelernt haben, Ruby ziemlich leicht lernen können - sie gehören zur selben Linie.
Marcel Lamothe

Antworten:

16

Nein. Google App Engine bietet eine kostenlose / kostengünstige Infrastruktur für das Hosten von Python-Anwendungen, aber Ruby hat praktisch das gleiche mit Heroku (und Heroku hat viel weniger Einschränkungen als GAE). Lesen Sie sich vor der Verwendung von GAE die von Google auf der Plattform geltenden Einschränkungen genau durch. Viele davon können erhebliche Hindernisse für das angestrebte Ziel darstellen. Der Blog-Beitrag von Carlos Ble befasst sich eingehender mit den zahlreichen Einschränkungen, die ihm auferlegt wurden , aber ich gebe Ihnen einen kurzen Überblick:

  • Nur Python 2.7 ohne kompilierte Erweiterungen (schwerwiegender Leistungseinbruch)
  • 30 Sekunden Anforderungszeitlimit (so viel zum einfachen Hochladen großer Dateien) und 10 Sekunden Zeitlimit für externe Anforderungen (so dass Sie keine langsamen APIs von Ihrer App abfragen können)
  • BigTable ist Steinzeit; Keine "LIKE" -Operatoren in Ihrer Abfrage und keine einzelne Abfrage können mehr als 1.000 Datensätze zurückgeben
  • Memcache hat eine maximale Wertgröße von 1 MB
  • Sowohl BigTable als auch Memcache sterben in der Regel so häufig, dass es produktiv ist, Code in Ihre Anwendung zu integrieren, um ihre Fehler zu umgehen

Für ein sehr kleines Projekt ist GAE in Ordnung. Wenn Sie jedoch etwas in mittlerer oder großer Größe bauen, müssen Sie sich der Einschränkungen bewusst sein, die Ihren Fortschritt behindern können.

Weitere Informationen zu möglichen Kontingenten und Einschränkungen finden Sie in den GAE-Dokumenten:

Siehe auch diese Antwort zu Stack Overflow: /programming//a/3068371/189079

Dolch
quelle
4
Wie macht das BigTable stoneage, LIKE ist eine teure Option, und die Rückgabe eines Limits von 1000 ist eine gute Idee. Hört sich so an, als würden Sie Ihre zuvor skalierte SQL-Datenbank faul missbrauchen?
Sa93
Beeinflussen die Beschränkungen nicht nur das freie Kontingent?
@ sa93 Ich benutze definitiv keine LIKE-Abfragen. In einer von mir erstellten Anwendung wird jedoch eine Abfrage verwendet, die mehr als 1000 Ergebnisse zurückgibt (das Abfrageergebnis ist stark zwischengespeichert, keine Sorge), und ich bin froh, dass ich nicht mehrere Abfragen ausführen und das Ergebnis dann verketten muss Daten vor dem Senden an die Caching-Ebene.
Dirk
@ BakerKawesa Nicht sicher. Muss das erforschen. Google hat möglicherweise seine Richtlinien geändert.
Dirk
11

Wenn Sie für Google App Engine entwickeln möchten, sollten Sie unbedingt Python lernen (Java ist ebenfalls eine Option, aber die Leute hinter GAE scheinen Pythonisten zu sein).

Beachten Sie, dass das Schreiben von Inhalten in Python nicht bedeutet, dass Sie Google App Engine kostenlos erhalten. Es gibt mehrere Personen, einschließlich Personen bei Google, die ihre Projekte nach GAE "portieren" mussten ( RSSmeme ist ein weiteres Beispiel), obwohl sie in Python geschrieben sind.

Dies liegt daran, dass GAE über eigene Einschränkungen und eine spezielle Umgebung verfügt: Beispielsweise haben Sie keinen Zugriff auf Dinge wie MySQL, Threading oder lokalen Dateispeicher. In den allgemeinen FAQ zu GAE werden einige dieser "Macken" angesprochen.


quelle
7

Gut. Die Ruby-Community hat http://heroku.com/ Kostenlose Kontingente sind nicht so groß wie die von Google, aber man kann traditionelle Persistenzmechanismen verwenden. So ist es viel einfacher, später auf Ihre eigene Infrastruktur zu migrieren (oder eine eigenständige App auf Heroku zu verschieben).

Andrew Андрей Листочкин
quelle
6

Sicher warum nicht? Sowohl Ruby als auch Python sind sehr fähige Sprachen, es kommt also nur auf das an, was Sie speziell suchen.

Wenn Sie mit GAE arbeiten möchten und eine Sprache lernen müssen, kann es sich auch um Python handeln.

Adam Lear
quelle
Und warum nicht Java?
Joshua Partogi
@jpartogi Die Frage über Python vs Ruby gestellt. Java könnte auch eine gute Wahl sein.
Adam Lear