Proszę podpowiedz mi: kiedy komercyjnie użyłbyś pythona zamiast ruby w sytuacji, gdy znasz oba języki i powiązane z nimi frameworki?
Najbardziej racjonalne powody do użycia Pythona jakie do tej pory widziałem to:
- Programowanie asynchronicznych serwerów (tornado/asyncio) trzymających połączenie z klientem do długotrwałej wymiany danych (np. gry)
- Gdy większość aplikacji to panel admina (django, django-cms) o niezbyt wygórowanych wymaganiach.
- Gdy po stronie backendu jest bardzo dużo obliczeń (numpy) + jakieś specjalistyczne liby nltk lub coś bardziej akademickiego.
- Gdy dużo jest zadań związanych z przetwarzaniem grafiki i multimediów np. Open CV.
- Gdy platforma hostingowa nie obsługuje Ruby, np. GAE (przynajmniej tak było kiedyś)
- Do wystawiania lekkiego api (flask/pyramid) np. dla grubego klienta pisanego w javascript.
Kolega chyba bardziej nakierowany na pythona niż na rubiego… Obecnie Ruby ma tylko słabe wsparcie (brak gemów, lub słabe gemy) dla GUI, grafiki.
Odpowiadając na część twoich pytań:
Ad 2) w ruby jest rails-admin
Ad 5) równie dobrze masz hostingi, które nie obsługują pythona, więc to nie jest powód
Ad 6) api w rubym postawić możesz sobie na czymś lekkim sinatra czy inny microframework np. roda.
Poprzez to pytanie, gdzie programista Ruby użyłby język python mogę stwierdzić jakie mocne obszary ma python w webdevelopmencie. Na chwilę obecną widzę, że python choć jako język do zadań wszelakich to w webówce nie odgrywa jakiejś znaczącej roli. Fakt są w nim projekty, ale równie dobrze większa część z nich mogłaby byc pisana w innych językach.
Mnie interesuje kompromis między czasem, a jakością. Jeśli język X umożliwia mi wykonania projektu lepiej i tym samym szybciej niż rozwiązania, które dotychczas znam to uważam, że warto go poznać i używać.
Jako osoba ktora pracuje jako Ruby’iowiec a wczesniej pracowala ponad 2 lata w firmie nastawionej dorzucam swoje 3 grosze
- Do tych zastosowac lepszym pomyslem jest node. Tornado jest fajnym rozwiazaniem - problemem w ekosystemie Pythona beda dodatkowe biblioteki ktore juz asynchroniczne nie sa.
- W Rubym tez mam takie rozwiazania
- Jesli chodzi o zastosowania w nauce / akademickie etc tu moze bym rozwazal - ekosystem tych rozwiazan w Pythonie jest zdecydowanie lepszy. (Sporo bym oddal za implementacje pandas dla Ruby’iego http://pandas.pydata.org)
- Co lepsze oferuje Python w tej materii ?
- GAE nie wspiera Ruby’iego. IMHO GAE to niespecjalnie racjonalne rozwiazanie w ogole zamykajace developerow w pewnym ekosystemie z roznymi ograniczeniami i wybranym przez Google zestawie narzedzi (np Redis’a wciaz tam nie ma za to jest memcache z nie do konca okreslona wielkoscia pamieci)
- Popieram wafcia - tutaj Python nie ma zadnej przewagi
Lepiej to lepiej, a szybciej to szybciej. To nie są pojęcia tożsame, ani jedno nie wynika z drugiego.
Pewnie wzialbym pod uwage dostepnosc programistow danej technologii na rynku.