Zdroj obrázku: pixabay.com

Než začnu zde studenou válku, mezi lidmi používajícími Rails (Ruby) a PHP, dovolte mi říct, že nejsem zde, abych debatoval o tom, který jazyk je lepší. Pro mě nebo pro každého zkušeného programátora by to bylo stejné. Je jen otázkou pravděpodobnosti, kdo dává přednost tomu, co a co je pro ně snadné.

V tomto blogu bych většinou diskutoval o důležitosti obou a o tom, jak se vzájemně liší. Takže pokud jste nováčkem v Rails a PHP, pak by to mohl být perfektní blog pro vás, pokud si chcete vybrat jeden z těchto dvou. Začněme tedy. Můžeme?

Některé základní pozadí

Pro začátek je PHP skriptovací jazyk, zatímco RAILS je webový vývojový rámec, který je založen na skriptovacím jazyce Ruby. PHP je široce používaný programovací jazyk pro weby jako Facebook, WordPress, Yahoo, Flickr a další. PHP je extrémně rychlé, nkrát stabilnější než Rails a má dokonce větší komunitu vývojářů, kteří ji podporují.

Rails je plně založen na Ruby. Použití je velmi snadné a začít s ním. Prostředí v Ruby je velmi automatizované. Ruby je opravdu úžasný jazyk. Na rozdíl od PHP je to opravdu objektově orientované. Jeho kód je velmi stručný a výkonný. Drahokamy (rozšíření) vám umožňují přišroubovat potřebné funkce. Po kódování v Ruby je kódování v PHP docela únavné.

Hodný zlý a ošklivý

  1. PHP

Moje rada je PHP, protože používání PHP na základní úrovni je velmi snadné, existuje spousta lidí, kteří vědí, že zkopírují / vloží nějaký kód šablony, upraví konfigurační soubory a dokonce jim mohou říkat sami programátoři PHP, což dává PHP velmi špatné jméno, které si nemyslím, že si to zaslouží.

Pro skutečného programátora nezáleží na tom, jaký jazyk používá, ale na tom, co kóduje a na čem záleží. Poté, co se naučíte několik programovacích jazyků, pochopíte, že většina z nich je ve skutečnosti velmi podobná, je to obvykle syntax, která je odlišná (zejména v jejich základním mechanismu, dokonce i pro odlišné programovací paradigma).

První věcí, kterou byste se měli naučit, je psaní čistého a čitelného kódu, a nikoliv psaní příliš sofistikovaného kódu, protože je obtížnější ladit a matoucí pro někoho, kdo nezná speciální triky jazyka (s PHP můžete dělat všechny obtížné věci) věci, ne všechny jsou zřejmé ostatním programátorům).

Ve srovnání s PHP je Rails také nepřátelský, pokud jde o chyby. S PHP to vyprší chyby ve vývoji a chybové zprávy skutečně dávají smysl. Obvykle se stránka vykreslí, ale část s chybou vám ukáže, na kterém řádku došlo k chybě a zpráva je užitečná. V Rails obvykle celá aplikace vybuchne.

Je mi líto, že jsem tu urazil některé lidi, ale Ruby prostě není tak jednoduchý jako učení se PHP. Je to v každém případě velmi silný jazyk. Rozhodl jsem se použít Ruby jednoduše proto, že jako vývojář mám pocit, že je to mnohem lepší jazyk než PHP. Ale z pohledu učení to tak není. Ruby má mnoho funkcí, které pro začínajícího programátora jednoduše nerozumí. Jedním takovým konceptem jsou bloky, proci a lambdy, které Rails používá velmi intenzivně.

Klasický příklad Ruby on Rails, který budu používat, je pro vytvoření formuláře:

  1. ŽELEZNICE

Ruby je dynamické, imperativní objektově orientované programování. Je dynamicky psaný, jako v PHP, takže se nemusíte starat o deklaraci proměnných. Rails je otevřený zdroj, pracuje na více platformách a může být vložen do Hypertext Markup Language. Je to jazyk na vysoké úrovni. Nabízí dokonce zapouzdření datových metod v objektech.

Ruby má super pokročilé techniky manipulace s řetězci a textem, které lze snadno připojit k produktům DB2, MySQL, Oracle a Sybase. Velké programy napsané v Ruby lze snadno udržovat. Má čistou a snadnou syntaxi, která umožňuje novým vývojářům naučit se Ruby velmi rychle a snadno. Má nejen schopnost psát vícevláknové aplikace s jednoduchým API, ale také nabízí pokročilé třídy pole a schopnost psát externí knihovny v Ruby nebo C.

Ruby Umožňuje použití „vyhrazeného slova“ jako identifikátoru, pokud parser nevnímá dvojznačnost. Ve srovnání s PHP má Ruby mnoho bezpečnostních funkcí a silné zpracování řetězců.

Otázka desetiletí je tedy … Se všemi těmito vlastnostmi dělá Ruby lepší perspektivu ve srovnání s PHP?

Bohužel to není tak černé a bílé a při určování toho, zda by se měl použít PHP nebo rubín na kolejích, by se mělo použít mnoho proměnných.

Například Ruby on Rails je mnohem složitějším jazykem pro nastavení vývojového prostředí. V důsledku toho tiché znalosti potřebné pro Ruby okamžitě zvyšují cenu na programovacím trhu ve srovnání s vývojem PHP. Vývojář PHP na druhé straně může jednoduše použít konvenční balíček, jako je WAMP, MAMP, aby získal nastavení dev prostředí za méně než 5 minut.

Když jsem začal Ruby kódovat, Gems mě zmatil víc, než pomohli, protože tam bylo příliš mnoho magie. Jakmile jsem se dozvěděl, že byste mohli (a měli) jen číst zdrojový kód pro drahokamy, všechno to dávalo mnohem větší smysl. Vzhledem k zásuvné povaze drahokamů a standardům komunity mohou drahokamy dát vaší aplikaci obrovské množství funkcí velmi rychle.

Některé drahokamy, bez kterých nemůžu žít: Vymyslet (autentizace - zpracovává přihlašování uživatelů, sociální přihlášení, zapomenout na pracovní toky s heslem a ještě mnohem více), kancelářské sponky (nahrávání souborů - dokonce zpracovává odesílání do S3, ořezávání obrázků / opakované vzorkování), jednoduché Formulář dělá formuláře neuvěřitelně jednoduché standardizovat a vykreslit na webových stránkách.

PHP bylo navrženo jako hypertextový předprocesor, což znamená, že se provádí pouze v případě požadavku na web. Ve srovnání s Ruby, který provádí proces. V Rails můžete snadno nastavit úlohy na pozadí pomocí Sidekiq nebo Resque. To také zvyšuje schopnost Railu snadno upravovat měřítko. V našich aplikacích přesouváme spoustu věcí, které mohou zpomalit požadavky, jako je posílání e-mailů uživatelům na pozadí.

Nyní může PHP provádět úlohy na pozadí pomocí Gearmanu, ale to není standardizované - musíte nainstalovat rozšíření PECL. V Ruby / Rails nejsou úlohy na pozadí problémem. Prostě to uděláš.

Tug of War

Nyní, když jste četli mnoho o PHP a Rails, nechte se na ně podívat. Podívejme se, který z nich je na stejné úrovni, pokud jde o využití zdrojů a dokonce i o výkon (rychlost).

Doporučené kurzy

  • Online certifikační kurz Java Hibernace
  • Program na Java Spring
  • Kurz certifikace WordPress
  • Ruby Course

Využití zdrojů a rychlost

Pokud jde o využití paměti, bude to obecně Python> Ruby> PHP, což samozřejmě vede k Django> Rails> PHP. Nejen paměť, ale také tendence držet surový rubín na kolejích vs. výkon php. Také zde stojí za zmínku, že zde samozřejmě neexistují absolutní hodnoty. Existuje spousta scénářů použití, ve kterých Ruby porazí Pythona, ruce dolů. Myslím, že se všichni můžeme shodnout, že Ruby a Python však vždy porazí PHP.

Moje vlastní zkušenost je taková, že využití paměti Rails může být vysoké, zejména na 64bitových strojích (minimum je kolem 95 - 100 MB s tenkým rozhraním jako webový front-end). PHP má tendenci být používány s různými vzory, takže je trochu obtížné přímo srovnávat.

Jak již bylo řečeno, je stále velmi snadné vytvořit mizernou, pomalou a neefektivní aplikaci Django a štíhlou, rychlou a efektivní aplikaci Rails nebo naopak. Dovednosti, znalosti a zkušenosti se systémem, který používáte, budou pro jeho paměť a výkonnost mnohem přínosnější než samotný rámec.

Optimalizace databází, výběr serverů a architektury (nastavení Apache vs. proxy pomocí nginx / lighttpd atd.) A základní návrhová rozhodnutí pravděpodobně rychle překonají vlastní vlastnosti rámce.

Pokud mezi Ruby a jinými jazyky spouštíte typické měřítka, Ruby prohraje. Ruby vám pravděpodobně nebude dobře sloužit při psaní aplikace pro zpracování digitálního signálu v reálném čase nebo jakéhokoli systému pro řízení v reálném čase. Ruby (s dnešními virtuálními počítači) by se pravděpodobně dusil počítač s omezenými zdroji, jako jsou smartphony.

Nezapomeňte, že hodně zpracování vašich webových aplikací je ve skutečnosti prováděno softwarem vyvinutým v C. Např. Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, mnoho syntaktických knihoven, RMagick, TCP / IP atd. Jsou programy C používané Rubín. Ruby poskytuje lepidlo a obchodní logiku.

Otázka zní: „Proč tedy PHP?“

Nyní můžeme mluvit o PHP. PHP běží na serveru Apache extrémně pomalu. I když se pokusíte spustit stránku PHP i bez jakéhokoli skriptu, pouze prázdnou stránku php, načítání bude trvat asi 10krát déle ve srovnání s JSP nebo Java. Ale znovu, otázkou milionu století je, že pokud tomu tak je, tak proč Facebook ještě nekopal PHP? Důvodem, proč Facebook neunikl z PHP, je to, že inženýři Facebooku dokázali obejít mnoho svých nedostatků pomocí kombinace záplat na všech úrovních zásobníku a vynikající interní disciplíny pomocí konvence a stylu kódu.

Nejhorším atributům jazyka je zabráněno a styl kódování je přísně vynucován poměrně těsnou kulturou kontroly kódu (nedodržení stylu a „jít kovbojem“ psaním nedbalého kódu vede k nelítostným výsměchu ze strany kolegů). Inženýrské řízení zde nikdy nemělo mít silnou ruku; k tomu došlo z velké části kvůli tomu, že klíčoví interní techničtí vůdci jen tak nějak koronovali ostatní.

A Facebook samozřejmě nepoužívá PHP. Jeho jádro také zahrnuje C ++. Takže pro PHP použijte nějaký druh paměti cache pro operační kód, jako je APC nebo eAccelerator, jinak PHP musí analyzovat vaše soubory na každém požadavku. Pro obecné vyladění apache byste měli udělat nějaké googling, přijde na mysl několik věcí, jako je zakázání souborů .htaccess, ale stále by mělo být rychlejší než JSP.

Závěr

Nakonec si myslím, že říkám, že pokud postupujete přes Rails, měli byste se přes Rails držet, pokud neplánujete zahájit celý nový projekt založený na PHP a založit společnost s tím.

Doporučené články

Zde je několik článků, které vám pomohou získat více podrobností o Rails vs PHP, takže stačí projít odkaz.

  1. Úžasný průvodce vývojem Learn Rails
  2. Ruby vs Ruby On Rails - Který z nich je lepší?
  3. Technologie Ruby vs PHP - která technologie je nejlepší?
  4. Top 10 nejúžasnějších dotazů na rozhovor s PHP pro zkušené

Kategorie: