Czy uważasz, że sam GAE wystarczy, aby uzasadnić naukę Pythona nad Ruby? [Zamknięte]

12

Biorąc pod uwagę fakt, że nie musisz angażować się w konfigurowanie / kupowanie serwera, a nawet kupowanie domeny, czy uważasz, że sam ten fakt wystarczy, aby wybrać jedną z drugiej?

Niekoniecznie chcę pracować z Google App Engine, po prostu uważam, że jest to wygodne, jeśli chodzi o hosting / środowisko / itp. i zastanawiam się, czy to wystarczający powód do nauki Pythona.

W każdym razie nie szukam debaty między pythonem a rubinem, ale bardziej na temat Google App Engine i tego, czy jego wartość jest wystarczająca, aby dyktować język, którego powinieneś się nauczyć.

qnoid
źródło
4
Google App Engine dla tych z nas, którzy są zakwestionowani przez TLA. Pamiętaj, że możesz także używać Java.
Robert Harvey
:) Mam już Java i Objective-C, z którymi mogę sobie poradzić. Nie myśl, że jednoczesne uczenie się ruby ​​i pythona to najlepszy stosunek czasu do wartości: P
qnoid
Myślę, że przekonasz się, że kiedy nauczysz się języka Python, możesz dość łatwo nauczyć się Ruby - są w tej samej linii.
Marcel Lamothe

Odpowiedzi:

16

Nie. Google App Engine zapewnia bezpłatną / tanią infrastrukturę do hostowania aplikacji Python, ale Ruby ma praktycznie to samo z Heroku (a Heroku ma o wiele mniej ograniczeń niż GAE). Przed użyciem GAE przeczytaj uważnie informacje o ograniczeniach nakładanych przez Google na platformę, z których wiele może stanowić znaczącą przeszkodę w osiągnięciu celu, który chcesz osiągnąć. Wpis na blogu Carlosa Ble'a jest o wiele bardziej szczegółowy na temat wielu ograniczeń, na które wpadł, ale dam ci szybki przegląd:

  • Python 2.7 tylko bez skompilowanych rozszerzeń (duży spadek wydajności)
  • 30 sekundowy limit czasu żądania (tyle w przypadku łatwego przesyłania dużych plików) i 10 sekundowy limit czasu żądania zewnętrznego (więc nie możesz zapytać wolnych API z aplikacji)
  • BigTable to epoka kamienia; w zapytaniu nie ma operatorów „LIKE” i żadne pojedyncze zapytanie nie może zwrócić więcej niż 1000 rekordów
  • Pamięć podręczna ma maksymalną wartość 1 MB
  • Zarówno BigTable, jak i Memcache zwykle giną na tyle szybko, że produktywne jest umieszczanie kodu w aplikacji, aby obejść ich awarie

W przypadku bardzo małego projektu GAE jest w porządku; ale jeśli budujesz coś w rozmiarze średnim lub dużym, pamiętaj o ograniczeniach, które mogą utrudniać ci postęp.

Aby uzyskać więcej informacji na temat rodzajów limitów i ograniczeń, które możesz mieć do czynienia, zapoznaj się z dokumentami GAE:

Zobacz także tę odpowiedź na temat przepełnienia stosu: /programming//a/3068371/189079

sztylet
źródło
4
Jak to sprawia, że ​​BigTable jest kamizelką, LIKE to drogi wybór, a zwrócenie limitu 1000 to dobry pomysł. Wygląda na to, że nadużywacie swojej przegniłej bazy danych SQL, skalowanej wcześniej?
sa93
Czy ograniczenia nie wpływają tylko na darmowy przydział?
@ sa93 Zdecydowanie nie używam zapytań typu LIKE. Jednak jedna aplikacja, którą zbudowałem, korzysta z zapytania, które zwraca ponad 1000 wyników (wynik zapytania jest mocno buforowany, nie martw się) i cieszę się, że nie muszę radzić sobie z uruchamianiem wielu zapytań, a następnie łączeniem wyniku dane przed wysłaniem do warstwy pamięci podręcznej.
dirk
@BakerKawesa Nie jestem pewien. Musisz to zbadać. Google mógł zmienić swoje zasady.
dirk
11

Jeśli chcesz opracować dla Google App Engine, na pewno chcesz nauczyć się języka Python (Java jest również opcją, ale ludzie odpowiedzialni za GAE wydają się być Pythonistami).

Należy pamiętać, że napisanie czegoś w Pythonie nie oznacza, że ​​otrzymujesz Google App Engine za darmo. Istnieje kilka osób, w tym Google, które musiały „przenieść” swoje projekty do GAE ( RSSmeme to kolejny przykład), nawet jeśli są napisane w Pythonie.

Wynika to z faktu, że GAE ma swoje własne ograniczenia i wyspecjalizowane środowisko: na przykład nie masz dostępu do takich rzeczy jak MySQL, wątki lub lokalna pamięć plików. Ogólne FAQ dla GAE dotyka kilka z tych „dziwactw”.


źródło
7

Dobrze. Społeczność Ruby ma http://heroku.com/ Bezpłatne kwoty nie są tak duże jak Google, ale można użyć tradycyjnych mechanizmów utrzymywania. O wiele łatwiej jest później migrować do własnej infrastruktury (lub przenieść samodzielną aplikację do Heroku).

Andrew Андрей Листочкин
źródło
6

Jasne, czemu nie? Zarówno Ruby, jak i Python są bardzo sprawnymi językami, więc sprowadza się to do tego, czego konkretnie szukasz.

Jeśli chcesz pracować z GAE i musisz nauczyć się języka, równie dobrze może to być Python.

Adam Lear
źródło
A dlaczego nie Java?
Joshua Partogi,
@jpartogi Pytanie zadane na temat Python vs Ruby. Java może być również dobrym wyborem.
Adam Lear