Ruby i Python jsou na vrcholu hierarchie programovacích jazyků na vysoké úrovni. Přebírají správu paměti. Abstrahují hardwarové detaily nízké úrovně. Jejich filozofie se však výrazně liší. Člověk staví svobodu do popředí. Další je jasnost.

Volba mezi nimi často závisí na tom, co si na svém kódu ceníte nejvíce: výrazná flexibilita nebo přísná čitelnost.

Filozofie čitelnosti versus expresivita

Ruby byl vytvořen na základě základní myšlenky dělat z programování zábavu pro vývojáře. Předpokládá, že kód píší lidé a čtou stroje. V důsledku toho Ruby nabízí několik syntaktických způsobů, jak vyřešit stejný problém. Smyčku můžete napsat tak či onak. Řádky můžete formátovat různě podle nálady. Tato flexibilita snižuje standardní kód, ale zvyšuje kognitivní zátěž. Nový vývojář, který čte váš kód, se může divit, který z deseti možných idiomů Ruby jste si vybrali a proč.

Python zaujímá opačnou pozici. Na čitelnosti záleží. Ukládá jediný, zřejmý způsob, jak věci dělat. Jazyk nenabádá k chytrým trikům. Upřednostňuje explicitní konstrukce před implicitními. Tato jednotnost usnadňuje rychlé skenování Pythonu. Urychluje nástup nových členů týmu. Recenze kódu se stávají méně o hádkách o stylu a více o logice.

“Měl by existovat jeden, nejlépe pouze jeden zřejmý způsob, jak to udělat.” — Zen Python

To neznamená, že Python je nudný. To znamená, že je předvídatelný. Ruby je kreativní. Python je disciplinovaný.

Dominance ve vývoji webu

Pokud se podíváte na to, kde se tyto jazyky používají ve výrobě, rozdíl bude zřejmý. Ruby on Rails změnil web. Zavedl pojem „dohoda místo konfigurace“. Vývojáři mohli spustit funkční webovou aplikaci během několika minut. Ruby se stala synonymem pro rychlé vytváření webových prototypů. Startupům se to líbilo. Komunita se kolem něj shromáždila.

Python také pohání web. Django a Flask jsou robustní frameworky. Ale hlavní reputací Pythonu nejsou požadavky HTTP. Jde o data.

Data, AI a Scientific Computing

Python tiše kolonizoval vědu. Analýza dat, Umělá inteligence a Scientific Computing jsou pevnosti Pythonu. V těchto oblastech dominují knihovny jako NumPy, Pandas a TensorFlow. Proč? Protože výhoda čitelnosti Pythonu se projeví při manipulaci s daty. Když zpracováváte miliony řetězců nebo trénujete neuronové sítě, potřebujete kód, který neskrývá logiku za syntaktický cukr.

Ruby má své místo na akademické půdě. Ale to je specializovaný nástroj. Ekosystém prostě není tak hustý. Pokud je vaším cílem strojové učení, Python je výchozí volbou. Pokud je vaším cílem škálovatelný webový backend, fungují obě možnosti, ale váha komunity se posouvá směrem k Ruby pro čistě webové aplikace a směrem k Pythonu pro aplikace náročné na data.

Jaký jazyk mám použít?

Rozhodnutí není, který jazyk je lepší. Spočívá v souladu s úkoly.

  • Vyberte Ruby, pokud si ceníte štěstí vývojáře a flexibilní syntaxe. Pokud vytváříte webovou aplikaci od nuly a chcete framework, který vám nebude překážet, Ruby on Rails zůstává silnou volbou. Ekosystém podporuje flexibilní rozvoj (agilní).
  • Vyberte Python, pokud potřebujete propojit vývoj webu s datovou vědou. Ať už váš projekt zahrnuje intenzivní výpočty, modely umělé inteligence nebo složité kanály pro zpracování dat, knihovny Pythonu jsou na špičkové úrovni. Jeho konzistentní styl se lépe prosazuje ve velkých, různorodých týmech.

Oba jazyky jsou vyspělé. Oba jsou podporováni obrovskými komunitami.