Képforrás: pixabay.com

Tehát, mielőtt itt kezdtem egy hidegháborút, a Rails (Ruby) -ot és a PHP-t használó emberek között, hadd mondjam el, hogy nem azért vagyok itt, hogy megvitassam, melyik nyelv jobb. Számomra, vagy bármely tapasztalt programozónak, ugyanaz lenne. Csak a valószínűség kérdése, hogy ki és mi kedveli őket számukra.

Ebben a blogban elsősorban mindkettő fontosságáról és arról, hogy mennyiben különböznek egymástól. Tehát, ha még nem ismeri a Rails és a PHP elemeit, akkor ez lehet a tökéletes blog az Ön számára, ha a kettő közül bármelyik közül egyet szeretne választani. Tehát kezdjük el. Vagy mi?

Néhány alapvető háttér

Először: a PHP egy szkriptnyelv, míg a RAILS egy webfejlesztési keret, amely a Ruby szkriptnyelvén alapul. A PHP széles körben használt programozási nyelv olyan webhelyek számára, mint a Facebook, WordPress, Yahoo, Flickr és még sok más. A PHP rendkívül gyors, n-szer stabilabb, mint a Rails, és még egy nagyobb fejlesztői közösséggel is támogatja.

A Rails teljes egészében a Rubyn alapul. Rendkívül egyszerű a használat és az indulás. A környezet a Ruby-ban nagyon automatizált. A Ruby valóban elég csodálatos nyelv. A PHP-vel ellentétben ez valójában objektum-orientált. Kódja nagyon tömör és erőteljes. A drágakövek (kiterjesztések) lehetővé teszik a szükséges funkciók rögzítését. A Ruby-on történő kódolás után a PHP-ben való kódolás meglehetősen unalmas.

A jó a rossz és a Csúf

  1. PHP

Azt tanácsolom, hogy PHP, mivel a PHP alapszintű használata nagyon egyszerű, nagyon sok ember van ott, akik tudják, hogy másolnak-e be egy sablonkódot, módosítják a konfigurációs fájlokat, sőt akár maguknak is hívhatják magukat PHP-programozóknak, ami a PHP-nek ad nagyon rossz név, amelyet szerintem nem érdemel meg.

Egy igazi programozó számára nem igazán számít, milyen nyelvet használ, hanem az, amit kódol, és az, ahogy kódolja. Néhány programozási nyelv megtanulása után megértette, hogy a legtöbb nyelv valójában nagyon hasonló, általában a szintaxis különbözik (főleg azok alapvető mechanizmusában, még a különböző programozási paradigmák esetén is).

Az első dolog, amit meg kell tanulnia, a tiszta és olvasható kód írása, és ne a túl kifinomult kód írása, mivel nehezebb hibakeresni és zavarónak lenni azok számára, akik nem ismerik a nyelv speciális trükköit (a PHP-vel mindenféle trükköt megtehetsz. cucc, nem minden egyértelmű a többi programozó számára).

A PHP-hez képest a Rails szintén barátságtalan, amikor hibákat mutat. A PHP használatával kiküszöböli a fejlesztési hibákat, és a hibaüzeneteknek valóban van értelme. Általában egy oldal jelenik meg, de a hibával rendelkező rész megmutatja, hogy melyik sorban történt a hiba, és az üzenet hasznos. A Rails esetében általában az egész alkalmazás felrobbant.

Sajnálom, hogy itt sértek néhány embert, de Ruby egyszerűen nem olyan egyszerű, mint a PHP. Mindenképpen rendkívül erőteljes nyelv. A Ruby használata egyszerűen azért van, mert fejlesztőként úgy érzem, hogy sokkal jobb nyelv, mint a PHP. De tanulási szempontból nem az. A Ruby számos olyan funkcióval rendelkezik, amelyek egyszerűen nem egyértelműek a kezdő programozók számára. Az egyik ilyen koncepció a blokkok, a próbatestek és a lambdák, amelyeket a Rails nagyon használ.

A klasszikus Ruby on Rails példát egy űrlap létrehozására használom:

  1. RAILS

A Ruby egy dinamikus, kötelező objektum-orientált programozás. Dinamikusan be van gépelve, mint a PHP-ben, így nem kell aggódnia a változók deklarálása miatt. A Rails nyílt forrású, több platformon működik, és beágyazható a hipertext jelölőnyelvébe. Nagyon magas szintű nyelv. Még az adatkezelési módszerek beágyazását is kínálja az objektumokba.

A Ruby rendkívül fejlett karakterlánc- és szövegmanipulációs technikákkal könnyen csatlakoztatható a DB2, MySQL, Oracle és Sybase rendszerekhez. A Ruby-ban írt nagy programok könnyen karbantarthatók. Tiszta és egyszerű szintaxisú, amely lehetővé teszi az új fejlesztők számára, hogy a Rubint nagyon gyorsan és egyszerűen megtanulják. Nemcsak képes többszálú alkalmazások írására egy egyszerű API-val, hanem fejlett tömbosztályt is kínál, valamint külső könyvtárak írását Ruby vagy C-ben.

Ruby Lehetővé teszi a „fenntartott szó” azonosítóként történő használatát, mindaddig, amíg az elemző nem érzékel kétértelműséget. A PHP-hez képest a Ruby számos biztonsági funkcióval és hatékony karakterlánckezeléssel rendelkezik.

Tehát az évtized kérdése: Mindezekkel a tulajdonságokkal jobban néz ki a Ruby a PHP-hez képest?

Sajnos ez nem annyira fekete-fehér, és sok változó játszik szerepet annak meghatározásában, hogy a PHP-t vagy a sínen lévő rubint kell-e használni a fejlődéshez.

Például a Ruby on Rails sokkal bonyolultabb nyelv, amellyel a fejlesztési környezetet fel lehet állítani. Következésképpen a Rubyhoz szükséges hallgatólagos tudás azonnal felveszi az árat a programozási piacon, mint a PHP fejlesztése. Másrészről a PHP fejlesztő egyszerűen használhat olyan hagyományos csomagokat, mint a WAMP, MAMP, hogy kevesebb, mint 5 perc alatt állítsák be dev környezeti beállításukat.

Amikor elkezdtem a Ruby-ban kódolni, Gems jobban megzavart engem, mint amennyit segítettek, mert túl sok a mágia. Miután megtudtam, hogy elolvashatja (és meg is kellene) a drágakövek forráskódját, mindennek sokkal értelmesebb lett. A drágakövek dugaszolható jellege és a közösség szabványai miatt a drágakövek rendkívül gyorsan rendkívüli funkcionalitást biztosíthatnak alkalmazásának.

Néhány drágakő, amelyek nélkül nem élhetek: Devise (hitelesítés - kezeli a felhasználói bejelentkezést, társadalmi bejelentkezést, elfelejti a jelszavakkal kapcsolatos munkafolyamatokat és még sok minden mást), gemkapocs (fájlfeltöltések - akár kezeli az S3-as feltöltést, képkivágás / újramintavétel), egyszerű Az űrlap hihetetlenül egyszerűvé teszi a weboldalak szabványosítását és megjelenítését.

A PHP-t hipertext előfeldolgozóként tervezték, ami azt jelenti, hogy csak akkor fut, ha van webes kérés. Összehasonlítva a Ruby-val, amely egy folyamatot futtat. A Rails alkalmazásban a háttérfeladatokat könnyen beállíthatja a Sidekiq vagy a Resque használatával. Ez növeli a Rail könnyű méretezési képességét is. Alkalmazásainkban sok olyan dolgot áthelyezünk, amelyek lelassíthatják a kéréseket, például a felhasználók e-mailben történő elküldését háttérmunkákra.

A PHP mostantól háttérmunkákat végezhet a Gearman segítségével, de ez nincs szabványosítva - telepítenie kell a PECL kiterjesztést. A Ruby / Rails alkalmazásban a háttérmunkák nem jelent problémát. Csak csinálod.

A háború vontatója

Most, hogy sokat olvasott a PHP-ről és a Rails-ről, nézzük meg összehasonlításunkat. Ellenőrizzük, hogy melyik egyenlő az erőforrások felhasználása és akár a teljesítmény (sebesség) szempontjából is.

Ajánlott tanfolyamok

  • Online tanúsító tanfolyam a Java hibernátumban
  • Program a Java Spring-en
  • WordPress tanúsító tanfolyam
  • Ruby pálya

Erőforrás-felhasználás és -sebesség

A memóriahasználat szempontjából általában Python> Ruby> PHP, ami természetesen a Django> Rails> PHP-hez vezet. Nemcsak a memória, hanem a sínekben lévő nyers rubin és a php teljesítmény szempontjából is. Ugyancsak érdemes itt megjegyezni, hogy természetesen itt nincs abszolút. Rengeteg olyan felhasználási forgatókönyv, amelyben Ruby legyőzi a Python-ot. Azt hiszem, mindannyian egyetértünk abban, hogy a Ruby és a Python mindig legyőzi a PHP-t.

Saját tapasztalatom szerint a Rails memóriafelhasználása magas lehet, különösen 64 bites gépeken (minimálisan körülbelül 95-100 MB, olyan vékony, mint a webes front-end). A PHP-t általában különböző mintákkal használják, így egy kicsit nehéz összehasonlítani.

Ennek ellenére nagyon könnyű elkészíteni egy szúrós, lassú és nem hatékony Django alkalmazást, valamint egy karcsú, gyors és hatékony Rails alkalmazást, vagy fordítva. A használt rendszerrel kapcsolatos készségek, ismeretek és kompetencia sokkal többet tesznek a memória és a teljesítmény lábnyomáért, mint maga a keret.

Adatbázis-optimalizálás, szerverválasztás és architektúra (Apache vs. proxybeállítások az nginx / lighttpd használatával stb.), És az alapvető tervezési döntések valószínűleg elég gyorsan megsemmisítik a keretrendszer jellemzőit.

Ha tipikus referenciaértékeket futtat Ruby és más nyelvek között, akkor Ruby veszít. A Ruby valószínűleg nem szolgálná jól a valós idejű digitális jelfeldolgozó alkalmazás vagy bármilyen valós idejű vezérlőrendszer megírásában. A Ruby (a mai virtuális gépekkel) valószínűleg elfojt egy erőforrás-korlátozott számítógépen, például okostelefonokon.

Ne feledje, hogy a webes alkalmazások feldolgozásának nagy részét a C-ben kifejlesztett szoftver végzi, pl. Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, sok elemző könyvtár, RMagick, TCP / IP stb. Rubin. A Ruby biztosítja a ragasztót és az üzleti logikát.

A kérdés: „MIÉRT akkor a PHP?”

Most beszéljünk a PHP-ről. A PHP rendkívül lassan fut az apache szerveren. Még ha meg is próbál egy PHP oldalt futtatni bármilyen szkript nélkül, csak egy üres php oldalt, még mindig tízszer több időbe telik a betöltés, összehasonlítva a JSP-kel vagy a Java-val. De ismét a millió évszázad kérdése az, hogy ha ez így van, akkor miért nem mélyítette el a Facebook a PHP-t? A Facebook nem tolódott el a PHP-től azért, mert a Facebook mérnökeinek sok hibájára sikerült megoldania a verem minden szintjén található javításokat és a kiváló belső fegyelem kombinációját a kódszabályok és stílusok révén.

A nyelv legrosszabb tulajdonságai elkerülhetők, és a kódolási stílust szigorúan ellenőrzik a kód-áttekintés kultúráján keresztül (ha nem tartja be a stílust és a „haladó cowboy” hanyag kód írásával az egymás felesleges gúnyolódását eredményezi). A mérnöki vezetésnek soha nem kellett erõsen kezét vennie; ez nagyrészt annak köszönhető, hogy a kulcsfontosságú belső műszaki vezetők egyszerűen mindenki másokat beillesztettek.

És a Facebook természetesen nem csak a PHP-t használja. Magában foglalja a C ++ -ot is. Tehát a PHP-hez használjon valamilyen opód-gyorsítótárat, például APC-t vagy eAccelerator-t, különben a PHP-nek mindegyik kérésre el kell végeznie a fájlok elemzését. Az általános apache hangoláshoz meg kell tennie néhány googlálást, és emlékezetbe kerül néhány olyan dolog, mint a .htaccess fájlok letiltása, ám ennek gyorsabbnak kell lennie, mint a JSP-nek.

Következtetés

Tehát végül azt hiszem, hogy azt mondom, hogy ha végigmened a Rails-en, akkor a Rails-en keresztül kellene ragaszkodnod, mindaddig, amíg nem tervezel egy teljesen új PHP alapú projekt elindítását, és ezzel együtt vállalkozás indítását.

Ajánlott cikkek

Íme néhány cikk, amelyek segítenek a Rails vs PHP részletesebb ismertetésében, ezért csak keresse meg a linket.

  1. Csodálatos útmutató a Learn Rails fejlesztéshez
  2. Ruby vs Ruby On Rails- Melyik a jobb?
  3. Ruby vs PHP - melyik technológia a legjobb?
  4. A 10 legfélelmetesebb PHP interjú kérdése a tapasztalt személyek számára

Kategória: