Izvor slike: pixabay.com

Dakle, prije nego što ovdje počnem hladni rat, između ljudi koji koriste Rails (Ruby) i PHP, kažem vam da nisam ovdje da bih raspravljao o tome koji je jezik bolji. Za mene ili bilo kojeg iskusnog programera bilo bi isto. Samo je stvar volje oko toga tko preferira što i šta im je lako.

U ovom blogu uglavnom bih raspravljao o važnosti njih dvoje i kako se oni međusobno razlikuju. Dakle, ako ste novi za Rails i PHP, onda bi ovo mogao biti savršen blog za vas, ako želite odabrati jedan od oba. Pa započnimo. Hoćemo li?

Neka osnovna podloga

Za početak, PHP je skriptni jezik, dok je RAILS okvir za web razvoj, koji se temelji na skriptnom jeziku Ruby. PHP je široko korišten programski jezik za web stranice poput Facebook, WordPress, Yahoo, Flickr i još više. PHP je izuzetno brz, n puta stabilniji od Rails-a, a čak ima i veću zajednicu programera koja ga podržava.

Rails se u potpunosti temelji na Rubyju. Izuzetno je jednostavan za korištenje i započnite. Okoliš u Rubyju je vrlo automatiziran. Ruby je doista nevjerojatan jezik. Za razliku od PHP-a, objekt je stvarno orijentiran od temelja. Njegov je kod vrlo sažet i moćan. Drago kamenje (proširenja) omogućuju vam da privučete potrebnu funkcionalnost. Nakon kodiranja u Rubyju, kodiranje u PHP-u smatram prilično zamornim.

Dobro, loše i ružno

  1. PHP

Moj savjet je PHP, jer je korištenje PHP-a na osnovnoj razini vrlo jednostavno, tamo ima puno ljudi koji znaju kopirati / zalijepiti neki kôd predloška, ​​mijenjati konfiguracijske datoteke i čak ih možda nazivati ​​i PHP programerima, što daje PHP-u jako loše ime koje mislim da ne zaslužuje.

Za istinskog programera zapravo nije važno koji jezik koristi, ono što on kodira i način na koji kodira je važno. Nakon što naučite nekoliko programskih jezika, shvatite da je većina njih zapravo vrlo slična, obično je sintaksa različita (posebno u njihovom osnovnom mehanizmu, čak i za različite programske paradigme).

Prvo što biste trebali naučiti je pisanje čistog i čitljivog koda, a ne pisanje previše sofisticiranog koda, jer je teže uklanjanje pogrešaka i zbunjujuće za one koji ne znaju posebne trikove jezika (s PHP-om možete učiniti sve sitne stvari, a nisu svi očigledni drugim programerima).

U usporedbi s PHP-om, Rails je također neprijatan kada je u pitanju pogreške. S PHP-om će ispljunuti pogreške kod vas u razvoju i poruke o pogreškama zapravo imaju smisla. Stranica će obično prikazivati, ali dio s pogreškom prikazat će vam, u kojem se retku desila pogreška i poruka je korisna. U Tračnicama se obično raznese cijela aplikacija.

Žao mi je što ovdje vrijeđam neke ljude, ali Ruby jednostavno nije tako jednostavno kao PHP za učenje. Po svoj je namjeri izuzetno moćan jezik. Odlučim se koristiti Ruby jednostavno zato što kao programer smatram da je to puno bolji jezik od PHP-a. Ali iz perspektive učenja, nije. Ruby ima mnogo značajki koje programeru početniku jednostavno nije jednostavno. Jedan takav koncept su blokovi, profili i lambde, koje Rails intenzivno koristi.

Klasični primjer Ruby on Rails koji ću upotrijebiti za kreiranje obrasca:

  1. tračnice

Ruby je dinamično, imperativno objektno orijentirano programiranje. Unosi se dinamički, kao u PHP-u, tako da se ne morate brinuti oko deklariranja varijabli. Tračnice su otvorene, rade na više platformi i mogu se ugraditi u Hypertext Markup Language. To je jezik vrlo visoke razine. Čak nudi inkapsulaciju metoda podataka unutar objekata.

Ruby ima super napredne tehnike manipulacije stringom i tekstom koje se lako mogu povezati sa DB2, MySQL, Oracle i Sybase. Veliki programi napisani u Rubyju lako su održavani. Ima čistu i jednostavnu sintaksu koja omogućuje novim programerima da brzo i lako nauče Ruby. Ne samo da može pisati višeslojne aplikacije jednostavnim API-jem, već nudi i naprednu klasu polja i mogućnost pisanja vanjskih biblioteka u Ruby ili C.

Ruby Omogućuje da se "rezervirana riječ" koristi kao identifikator sve dok parser ne primijeti dvosmislenost. U usporedbi s PHP-om, Ruby ima mnogo sigurnosnih značajki i moćno rukovanje stringovima.

Dakle, pitanje desetljeća je … Uz sve te značajke, čini li Ruby boljom perspektivom u usporedbi s PHP-om?

Nažalost, nije sve tako crno-bijelo, a mnoge varijable dolaze u obzir prilikom određivanja treba li PHP ili rubin na tračnicama koristiti za razvoj.

Na primjer, Ruby on Rails mnogo je složeniji jezik za postavljanje razvojnog okruženja. Prema tome, prešutno znanje potrebno za Rubyja odmah podiže cijenu na programskom tržištu u odnosu na razvoj PHP-a. PHP programer s druge strane može jednostavno koristiti konvencionalni paket kao što je WAMP, MAMP da bi se postavilo dev okruženje za manje od 5 minuta.

Kad sam počeo kodirati u Ruby, Gems me zbunio više nego što su pomogli jer je bilo previše 'čarolije. Jednom kada sam saznao da možete (i trebali) samo pročitati izvorni kod dragulja, sve je imalo puno više smisla. Zbog prirode dragulja i standardima zajednice, dragulji mogu vašoj aplikaciji pružiti ogromnu količinu funkcionalnosti vrlo brzo.

Neke dragulje bez kojih ne mogu živjeti: Osmislite (provjera autentičnosti - rukuje korisničkim podacima, društvenim prijavljivanjem, zaboravi tijek rada s lozinkom i još mnogo toga), papirnim klipom (prijenos datoteka - čak i rukovanje prijenosom na S3, obrezivanje / ponovno uzorkovanje), jednostavno Obrazac čini obrasce nevjerojatno jednostavnim za standardizaciju i prikaz na web stranicama.

PHP je zamišljen kao pretprocesor hiperteksta, što znači da se izvršava samo kad postoji web zahtjev. U usporedbi s Ruby, koja vodi proces. U tračnicama možete jednostavno postaviti pozadinske zadatke koristeći Sidekiq ili Resque. Tome se dodaje i sposobnost Raila da lako mjeri. U našim aplikacijama premještamo mnogo stvari koje mogu usporiti zahtjeve poput slanja e-pošte korisnicima u pozadinske poslove.

Sad, PHP može raditi pozadinske poslove pomoću Gearmana, ali to nije standardizirano - morate instalirati PECL ekstenziju. U Ruby / Rails, pozadinski poslovi nisu problem. Jednostavno to učinite.

Vučni rat

Sada kada ste pročitali puno o PHP-u i Railsima, pogledajte usporedbu. Provjerimo koji je od njih u pogledu upotrebe resursa, pa čak i u pogledu performansi (brzine).

Preporučeni tečajevi

  • Online tečaj certifikacije u hibernaciji Jave
  • Program na proljeće Java
  • WordPress tečaj za certifikaciju
  • Ruby Course

Upotreba resursa i brzina

Što se tiče memorije, obično će to biti Python> Ruby> PHP, što naravno vodi do Django> Rails> PHP. Ne samo memorija, već i zadržana za sirovi rubin na tračnicama u odnosu na performanse php-a. Ovdje također valja spomenuti i to da, naravno, ovdje nema apsolutnih. Puno je scenarija upotrebe u kojima će Ruby pobijediti Pythona, spuštenim rukama. Mislim da se svi možemo složiti da će Ruby i Python uvijek pobijediti PHP.

Moje iskustvo je da potrošnja Rails-ove memorije može biti velika, posebno na 64-bitnim strojevima (minimalno je oko 95-100 MB s tankim poput web-prednjeg dijela). PHP se obično koristi s različitim obrascima, pa je malo teško izravno usporediti.

Kao što je rečeno, još uvijek je jednostavno napraviti lukavu, sporu i neučinkovitu aplikaciju Django i mršavu, brzu i učinkovitu aplikaciju Rails, ili obrnuto. Vještina, znanje i stručnost sa sustavom koji koristite učinit će mnogo više za njegovo pamćenje i performanse nego samo sam okvir.

Optimizacije baze podataka, izbor poslužitelja i arhitekture (Apache vs proxy postavke pomoću nginx / lighttpd itd.) I temeljne dizajnerske odluke vjerojatno će prilično brzo nadvladati svojstvene karakteristike okvira.

Ako između Ruby i drugih jezika pokrenete uobičajena mjerila, Ruby gubi. Ruby vam vjerojatno ne bi dobro poslužio u pisanju aplikacije za digitalnu obradu signala u stvarnom vremenu ili bilo kojeg drugog sustava kontrole u stvarnom vremenu. Ruby (s današnjim VM-ovima) vjerojatno bi se ugušio na računalu s ograničenim resursima, poput pametnih telefona.

Zapamtite da mnogo obrade vaših web aplikacija zapravo obavlja softver razvijen u C. Na primjer, Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, mnoge biblioteke za raščlanjivanje, RMagick, TCP / IP itd. Su C programi koje koristi Rubin. Ruby pruža ljepilo i poslovnu logiku.

Pitanje je "ZAŠTO PHP onda?"

Sada razgovarajmo o PHP-u. PHP radi iznimno sporo na apache poslužitelju. Čak i ako pokušate pokrenuti PHP stranicu čak i bez skripte, samo praznu php stranicu, i dalje će trebati 10 puta više vremena za učitavanje u usporedbi s JSP-om ili Javom. Ali opet, pitanje milijun stoljeća je da ako je to tako, zašto onda Facebook još nije odustao od PHP-a? Razlog zbog kojeg se Facebook nije migrirao od PHP-a je taj što su Facebookovi inženjeri uspjeli riješiti mnoge njegove nedostatke kroz kombinaciju zakrpa na svim razinama sloga i izvrsnu internu disciplinu putem kodeksa i stila.

Izbjegavaju se najgori atributi jezika, a stil kodiranja kruto se provodi kroz prilično usku kulturu pregleda koda (ukoliko se ne pridržavaju stila i "ide kaubojem" pisanjem neurednog koda rezultira bezobzirnim podsmijehom svojih vršnjaka). Inženjerski menadžment ovdje nikad nije morao poduzeti snažne ruke; do toga je došlo uglavnom zbog ključnih internih tehničkih vođa, koje su svojevrsno gnjavile sa svima drugima.

A Facebook naravno ne koristi samo PHP. Također uključuje C ++ kao svoju jezgru. Dakle, za PHP koristite neku vrstu predmemorije koda kao APC ili eAccelerator u suprotnom PHP mora raščlaniti vaše datoteke na svaki zahtjev. Za opće podešavanje apachea trebali biste napraviti neke google, par stvari poput onemogućivanja .htaccess datoteka pada na pamet, ali i dalje bi trebao biti brži od JSP-a.

Zaključak

Na kraju, valjda, ono što govorim je ako prođete kroz Rails, nego biste trebali krenuti putem Rails-a sve dok ne planirate pokrenuti cijeli novi projekt temeljen na PHP-u i pokrenuti tvrtku zajedno s njim.

Preporučeni članci

Evo nekoliko članaka koji će vam pomoći da saznate više detalja o Rails vs PHP, pa samo prođite vezu.

  1. Nevjerojatan vodič za razvoj učenja tračnica
  2. Ruby vs Ruby On Trails - Koji je bolji?
  3. Ruby vs PHP-Koja je tehnologija najbolja?
  4. 10 najboljih pitanja za iskusne PHP intervjue za iskusne osobe

Kategorija: