Zdroj obrázka: pixabay.com

Predtým, ako tu začnem studenú vojnu, medzi ľuďmi, ktorí používajú Rails (Ruby) a PHP, mi dovoľte povedať, že tu nie som, aby som diskutoval o tom, ktorý jazyk je lepší. Pre mňa alebo pre skúseného programátora by to bolo rovnaké. Je len otázkou pravdepodobnosti, kto preferuje, čo a čo je pre nich ľahké.

Na tomto blogu by som väčšinou diskutoval o dôležitosti obidvoch a o tom, ako sa navzájom líšia. Takže, ak ste novým v Rails aj PHP, potom by to mohol byť pre vás ideálny blog, ak si chcete vybrať jeden z nich. Začnime teda. Môžme?

Niektoré základné súvislosti

Na začiatok je PHP skriptovací jazyk, zatiaľ čo RAILS je webový vývojový rámec, ktorý je založený na skriptovacom jazyku Ruby. PHP je široko používaný programovací jazyk pre webové stránky ako Facebook, WordPress, Yahoo, Flickr a ešte viac. PHP je extrémne rýchle, n-krát stabilnejšie ako Rails a má dokonca väčšiu komunitu vývojárov, ktorí ju podporujú.

Koľajnice sú úplne založené na Ruby. Jeho použitie je mimoriadne jednoduché a začnite s tým. Prostredie v Ruby je veľmi automatizované. Ruby je skutočne úžasný jazyk. Na rozdiel od PHP je to skutočne objektovo orientované. Jeho kód je veľmi stručný a výkonný. Drahokamy (rozšírenia) vám umožňujú priškriabať potrebné funkcie. Po kódovaní v Ruby považujem kódovanie v PHP za dosť zdĺhavé.

Dobrý zlý a škaredý

  1. PHP

Moja rada je PHP, pretože používanie PHP na základnej úrovni je veľmi jednoduché, je tu veľa ľudí, ktorí vedia kopírovať / prilepiť nejaký šablónový kód, upravovať konfiguračné súbory a dokonca im môžu hovoriť programátori PHP, ktorí PHP poskytujú veľmi zlé meno, ktoré si nemyslím, že si to zaslúži.

Pre skutočného programátora nezáleží na tom, aký jazyk používa, ale na tom, čo kóduje a na čom záleží. Po naučení sa niekoľkých programovacích jazykov ste pochopili, že väčšina z nich je v skutočnosti veľmi podobná, zvyčajne je to odlišná syntax (najmä v ich základných mechanizmoch, dokonca aj pre odlišné programovacie paradigmy).

Prvé, čo by ste sa mali naučiť, je písanie čistého a čitateľného kódu a nie písanie príliš sofistikovaného kódu, pretože pre niekoho, kto nepozná špeciálne triky jazyka, je ťažšie ladiť a mätúce (s PHP môžete robiť všetky komplikované veci) veci nie sú pre ostatných programátorov zrejmé).

V porovnaní s PHP je Rails tiež nepriateľský, pokiaľ ide o chyby. S PHP to vyplivuje chyby vo vývoji a chybové správy skutočne dávajú zmysel. Spravidla sa stránka vykreslí, ale časť s chybou vám ukáže, na ktorom riadku sa vyskytla chyba a správa je užitočná. V Rails sa zvyčajne vyhodí celá aplikácia.

Je mi ľúto, že tu urazím niektorých ľudí, ale Ruby jednoducho nie je taký jednoduchý, ako sa učiť PHP. Vo všetkých ohľadoch je to mimoriadne silný jazyk. Rozhodol som sa používať Ruby jednoducho preto, že ako vývojár mám pocit, že je oveľa lepší jazyk ako PHP. Ale z hľadiska učenia to tak nie je. Ruby má veľa funkcií, ktoré jednoducho nie sú pre začiatočníka programátora jednoduché. Jedným z takýchto konceptov sú bloky, proci a lambdy, ktoré Rails používa veľmi intenzívne.

Klasický príklad Ruby on Rails, ktorý budem používať, je na vytvorenie formulára:

  1. KOĽAJNICA

Ruby je dynamické, imperatívne objektovo orientované programovanie. Je dynamicky napísaný, podobne ako v PHP, takže sa nemusíte obávať, že budete musieť deklarovať premenné. Koľajnice sú otvorené, pracujú na viacerých platformách a môžu byť zabudované do jazyka Hypertext Markup Language. Je to jazyk na vysokej úrovni. Ponúka dokonca zapuzdrenie dátových metód v objektoch.

Ruby má super pokročilé techniky manipulácie s reťazcami a textami, ktoré možno ľahko pripojiť k DB2, MySQL, Oracle a Sybase. Veľké programy napísané v Ruby sú ľahko udržiavateľné. Má čistú a ľahkú syntax, ktorá umožňuje novým vývojárom učiť sa Ruby veľmi rýchlo a ľahko. Má nielen schopnosť písať viacvláknové aplikácie s jednoduchým API, ale tiež ponúka pokročilú triedu polí a schopnosť písať externé knižnice v Ruby alebo C.

Ruby Umožňuje použitie „vyhradeného slova“ ako identifikátora, pokiaľ syntaktický analyzátor nevníma nejednoznačnosť. V porovnaní s PHP má Ruby mnoho bezpečnostných funkcií a silné spracovanie reťazcov.

Otázka desaťročia je teda … Vďaka všetkým týmto funkciám je Ruby lepšou perspektívou v porovnaní s PHP?

Bohužiaľ to nie je také čiernobiele a pri určovaní toho, či by sa na vývoj mali použiť PHP alebo rubíny na koľajniciach, prichádzajú do úvahy mnohé premenné.

Napríklad Ruby on Rails je oveľa zložitejší jazyk na nastavenie vývojového prostredia. V dôsledku toho tiché znalosti potrebné pre Ruby okamžite zvyšujú cenu na programovacom trhu v porovnaní s vývojom PHP. Vývojár PHP na druhej strane môže jednoducho použiť konvenčný balík ako WAMP, MAMP, aby získal nastavenie prostredia dev za menej ako 5 minút.

Keď som začal Ruby kódovať, Gems ma zmätil viac, ako pomohli, pretože tam bolo priveľa magií. Akonáhle som sa dozvedel, že by ste mohli (a mali by) čítať zdrojový kód drahokamov, bolo všetko oveľa zmysluplnejšie. Vzhľadom k zásuvnej povahe drahokamov a štandardom komunity môžu drahokamy dodať vašej aplikácii obrovské množstvo funkcií veľmi rýchlo.

Niektoré skvosty, bez ktorých nemôžem žiť: Vymyslieť (overenie - spracováva prihlasovacie údaje používateľov, prihlasovanie do spoločnosti, zabuduje pracovné toky s heslom a ešte oveľa viac), kancelársku kanceláriu (odovzdávanie súborov - odovzdávanie súborov dokonca aj odovzdávanie do S3, orezanie / opätovné vzorkovanie obrázkov), jednoduché Formulár robí formuláre neuveriteľne jednoduchými na štandardizáciu a renderovanie na webových stránkach.

PHP bolo navrhnuté ako hypertextový predprocesor, čo znamená, že sa vykonáva iba vtedy, keď existuje webová požiadavka. V porovnaní s Ruby, ktoré vedie proces. V Rails môžete ľahko nastaviť úlohy na pozadí pomocou Sidekiq alebo Resque. To tiež prispieva k schopnosti Rail ľahko meniť mierku. V našich aplikáciách presúvame veľa vecí, ktoré môžu spomaliť požiadavky, ako napríklad posielanie e-mailov používateľom do úloh na pozadí.

Teraz môže PHP vykonávať úlohy na pozadí pomocou Gearmanu, ale to nie je štandardizované - musíte nainštalovať rozšírenie PECL. V Ruby / Rails nie sú úlohy na pozadí problém. Len to spravíš.

Remorkér

Teraz, keď ste už veľa čítali o PHP a Rails, pozrime sa na ne. Poďme skontrolovať, ktorý z nich je na rovnakej úrovni, pokiaľ ide o využitie zdrojov a dokonca aj pokiaľ ide o výkon (rýchlosť).

Odporúčané kurzy

  • Online certifikačný kurz v režime Java Hibernate
  • Program na jar Java
  • Kurz certifikácie WordPress
  • Ruby Course

Využívanie zdrojov a rýchlosť

Pokiaľ ide o využitie pamäte, bude to zvyčajne Python> Ruby> PHP, čo samozrejme vedie k Django> Rails> PHP. Nielen pamäť, ale aj to má tendenciu držať surový rubín na koľajniciach oproti výkonu php. Tiež je potrebné poznamenať, že tu samozrejme neexistujú žiadne absolútne hodnoty. Existuje veľa scenárov použitia, v ktorých Ruby porazí Pythona v rukách. Myslím si však, že sa všetci môžeme zhodnúť, že Ruby a Python budú vždy poraziť PHP.

Moja vlastná skúsenosť spočíva v tom, že využitie pamäte Rails môže byť vysoké, najmä na 64-bitových počítačoch (minimum je okolo 95 - 100 MB s tenkým rozhraním ako web front-end). PHP má tendenciu sa používať s rôznymi vzormi, takže je trochu ťažké ho priamo porovnávať.

Ako už bolo povedané, je stále veľmi ľahké vytvoriť mizernú, pomalú a neefektívnu aplikáciu Django a štíhlu, rýchlu a efektívnu aplikáciu Rails alebo naopak. Zručnosti, vedomosti a skúsenosti so systémom, ktorý používate, pre jeho pamäť a výkonnosť znamenajú oveľa viac ako len samotný rámec.

Optimalizácia databázy, výber serverov a architektúry (nastavenia Apache vs. proxy pomocou nginx / lighttpd, atď.) A základné konštrukčné rozhodnutia pravdepodobne veľmi rýchlo prekonajú základné vlastnosti rámca.

Ak medzi Ruby a inými jazykmi spúšťate typické kritériá, Ruby stráca. Ruby by vám pravdepodobne nepomohol pri písaní aplikácie na spracovanie digitálneho signálu v reálnom čase alebo akéhokoľvek systému riadenia v reálnom čase. Ruby (s dnešnými virtuálnymi počítačmi) by sa pravdepodobne dusilo na počítači obmedzenom na zdroje, ako sú smartphony.

Pamätajte, že veľa spracovania vo vašich webových aplikáciách je v skutočnosti vykonávané softvérom vyvinutým v C. Napr. Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, veľa syntaktických knižníc, RMagick, TCP / IP, atď. Ruby. Ruby poskytuje lepidlo a obchodnú logiku.

Otázka znie „PREČO PHP?“

Teraz môžete hovoriť o PHP. PHP beží extrémne pomaly na serveri apache. Aj keď sa pokúsite spustiť stránku PHP aj bez skriptu, iba prázdnej stránky PHP, načítanie bude trvať približne 10-krát dlhšie v porovnaní s JSP alebo Java. Ale znova, otázkou milióna storočia je, že ak je to tak, tak prečo Facebook ešte neprekopal PHP? Dôvod, prečo sa Facebook neodsťahoval z PHP, je ten, že inžinieri spoločnosti Facebook dokázali obísť mnoho svojich nedostatkov kombináciou záplat na všetkých úrovniach zásobníka a vynikajúcej vnútornej disciplíny prostredníctvom konvencie a štýlu kódu.

Vyhýbajú sa najhorším atribútom jazyka a štýlu kódovania sa dôsledne presadzuje pomerne prísna kultúra kontroly kódu (nedodržanie tohto štýlu a „chodenie na kovboja“ písaním nedbalého kódu vedie k neľútostným výsmechom svojich rovesníkov). Manažment inžinierstva tu nikdy nemal mať silnú ruku; k tomu došlo z veľkej časti kvôli tomu, že kľúčoví interní technickí lídri jednoducho priviedli ostatných k sebe.

A Facebook samozrejme nepoužíva PHP. Jeho jadrom je aj C ++. Takže pre PHP použite nejaký druh vyrovnávacej pamäte operačného systému, ako je APC alebo eAccelerator, inak PHP musí analyzovať vaše súbory pri každej žiadosti. Pre všeobecné ladenie apache by ste mali urobiť nejaké googling, na pár vecí, ako je zakázanie súborov .htaccess, príde na myseľ, ale stále by to malo byť rýchlejšie ako JSP.

záver

Nakoniec si myslím, že hovorím, že ak prechádzate cez Rails, potom by ste sa cez Rails mali držať, pokiaľ nemáte v pláne založiť celý nový projekt založený na PHP a založiť spoločnosť s tým.

Odporúčané články

Tu je niekoľko článkov, ktoré vám pomôžu získať viac podrobností o systéme Rails vs PHP, takže stačí prejsť na odkaz.

  1. Úžasný sprievodca vývojom naučených železníc
  2. Ruby vs Ruby on Rails - Ktorý z nich je lepší?
  3. Ruby vs PHP - ktorá technológia je najlepšia?
  4. Top 10 najúžasnejších otázok na rozhovor s PHP pre skúsených

Kategórie: