Mam zamiar w niedalekiej przyszłości obrócić się troszeczkę w stronę aplikacji internetowych. Stoję teraz przed dość poważnym problemem: wybrać do tego Ruby on Rails czy Python'a?
Jakie macie doświadczenie w tych językach i co możecie polecić a co nie i dlaczego?
Jak wygląda rynek pracy w tym segmencie? Czy Python nie jest troszkę hmm przestarzały? :) Składniowo są z tego co widzę podobne, przy czym w RoR dość irytująco prezentują się BEGIN END'Y jednakże czytałem, że pisze się w nich bardzo przyjemnie. Coś możecie na ten temat powiedzieć?
Python to nie tylko web. Python jest też dość szeroko używany w zastosowaniach naukowych i jako język do pisania skryptów. Ruby niekoniecznie.
To jest tak:
- Pythona nie lubię przez off-side rule (składnia przez wcięcia)
- słowo kluczowe
begin
w Rubym pojawia się naprawdę rzadko (prawie nigdy)
Python jest bardziej językiem do pisania aplikacji (a przynajmniej tak go się IMHO stosuje):
- lokalnych
- naukowych/inżynieryjnych
Czyli jak napisał @Shalom.
Natomiast Ruby stosuje się:
- aplikacje CLI (Pythona też, ale jakoś Thor czy Rake znacznie bardziej mi przypadają do gustu jeśli chodzi o pisanie CLI)
- web (RoR i Sinatra, praktycznie większość frameworków się wzoruje na tych 2, wyjątkiem jest np. Meteor, ale to inna sprawa)
- DevOps (Chef i Puppet)
- przetwarzanie tekstu (Perl for human beings)
Dodatkowo takie narzędzia jak Pip, Composer, etc. pojawiły się na bazie popularności RubyGems i Bundlera (wcześniej był Maven, ale praca z nim wciąż nie jest tak łatwa jak z Bundlerem). Tak samo z frameworkami do testowania. Aktualnie wzorują się albo na JUnit (Java) albo na RSpec (Ruby, osobiście jednak wolę MiniTest, które też oferuje podobną składnię).
Oprócz tego w Rubym powstało wiele narzędzi ułatwiających pracę:
- Cucumber (i Gherkin)
- Hub - nakładka na Gita
- CoffeeScript - bootstrap był napisany w Rubym
- Sprockets
- Sass/SCSS
- Compass (co wynika z powyższego)
- Haml i Slim
- etc.
Witcher napisał(a):
Czy Python nie jest troszkę hmm przestarzały? :)
Dobre sobie. C# ma już 14 lat, czy nie jest przestarzały? :D
Cały czas się rozwija i rozwijał, więc nie jest. Python 1.0 może i jest troszkę przestarzały :D
Witcher napisał(a):
Składniowo są z tego co widzę podobne
Na pierwszy rzut oka tak, ale jak się wgłębisz w składnię to już nie bardzo (np. patrz standardowe gettery i settery).
winerfresh napisał(a):
Python jest bardziej językiem do pisania aplikacji (a przynajmniej tak go się IMHO stosuje):
- lokalnych
- naukowych
Ja tam większość zleceń na Pythona widzę pod Django (czyli do aplikacji webowych). A Python w zastosowaniach użytkowych to może być skryptowanie Blendera ;) Generatory siatek, eksportery/importery modeli, łączenie siatek itd. Byłem w firmie, która Pythona używa do diagnostyki maszyny za wiele wiele euro ;) Rozwijana w Pythonie jest aplikacja przydatna dla inżynierów obsługujących tę maszynę przemysłową.