Rozterki programistyczne czyli Python versus Ruby (on Rails)

1

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ć?

0

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.

1

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.
0
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ą.

1 użytkowników online, w tym zalogowanych: 0, gości: 1