Kuvan lähde: pixabay.com

Joten ennen kuin aloitan kylmän sodan täällä Rails (Ruby): tä ja PHP: tä käyttävien ihmisten välillä, anna minun sanoa, etten ole täällä keskustelemassa siitä, mikä kieli on parempi. Minulle tai jokaiselle kokenut ohjelmoijalle, joko olisi sama. On vain kysymys todennäköisyydestä siitä, kuka suosii mitä ja mikä on heille helppoa.

Tässä blogissa keskustelen lähinnä molempien merkityksestä ja siitä, miten ne eroavat toisistaan. Joten, jos olet uusi Railsissä ja PHP: ssä, tämä voi olla täydellinen blogi sinulle, jos haluat valita jommankumman näistä. Joten aloitetaan. Voisimmeko?

Jotkut perustiedot

Aluksi PHP on komentosarjojen kieli, kun taas RAILS on web-kehityskehys, joka perustuu komentosarjojen kielelle Ruby. PHP on laajalti käytetty ohjelmointikieli verkkosivustoille, kuten Facebook, WordPress, Yahoo, Flickr ja jopa muut. PHP on erittäin nopea, n kertaa vakaampi kuin Rails ja jopa suuremmalla kehittäjäyhteisöllä on tukea sitä.

Rails perustuu täysin Rubyyn. Sitä on erittäin helppo käyttää ja aloittaa. Ympäristö Rubyssa on erittäin automatisoitu. Ruby on todella melko uskomaton kieli. Toisin kuin PHP, se on oikein olosuhteisiin suuntautunut alusta alkaen. Sen koodi on erittäin tiivis ja tehokas. Jalokivet (laajennukset) antavat sinun kiinnittää tarvittavat toiminnot. Rubyn koodauksen jälkeen PHP: n koodaus on mielestäni melko työlästä.

Hyvät pahat ja rumat

  1. PHP

Neuvoni on PHP, koska PHP: n käyttäminen perustasolla on erittäin helppoa, siellä on paljon ihmisiä, jotka tietävät kopioida / liittää jonkin mallikoodin, muokata kokoonpanotiedostoja ja jopa kutsua heitä itsensä PHP-ohjelmoijiksi, mikä antaa PHP: lle erittäin huono nimi, jota en mielestäni ansaitse.

Oikealle ohjelmoijalle ei ole oikeastaan ​​väliä mitä kieltä hän käyttää, vaan sillä, mitä hän koodaa ja millä tavalla hän koodaa. Kun olet oppinut muutaman ohjelmointikielen, ymmärrät useimmat niistä todellakin hyvin samankaltaisia, yleensä syntaksi on erilainen (etenkin niiden ydinmekanismissa, jopa erilaisille ohjelmointikäytännöille).

Ensinnäkin sinun tulisi oppia puhtaan ja luettavan koodin kirjoittaminen eikä liian hienostuneen koodin kirjoittaminen, koska sitä on vaikeampaa virheenkorjaukseen ja hämmentää joku, joka ei osaa kielen erityisiä temppuja (PHP: n avulla voit tehdä kaikenlaisia ​​hankalia juttuja, kaikki eivät ole ilmeisiä muille ohjelmoijille).

Verrattuna PHP: hen, Rails on myös epäystävällinen virheiden suhteen. PHP: n avulla se sylkee virheet kehittelyssäsi ja virheilmoitukset ovat todella järkeviä. Yleensä sivu hahmottuu, mutta osa virheestä näyttää sinulle, millä rivillä virhe ilmeni ja viesti on hyödyllinen. Rails-sovelluksessa tyypillisesti koko sovellus räjähtää.

Olen pahoillani loukkaamalla joitain täällä ihmisiä, mutta Ruby ei yksinkertaisesti ole yhtä suoraviivainen kuin PHP oppiakseen. Se on kaiken kaikkiaan erittäin voimakas kieli. Valitsen Rubyn käytön yksinkertaisesti siksi, että kehittäjänä mielestäni se on paljon parempi kieli kuin PHP. Mutta oppimisen kannalta ei ole. Rubylla on monia ominaisuuksia, joita aloittelevalle ohjelmoijalle ei yksinkertaisesti ole ymmärrettävää. Yksi tällainen käsite on lohkot, prokit ja lambdat, joita Rails käyttää runsaasti.

Klassinen esimerkki Ruby on Rails, jota aion käyttää lomakkeen luomiseen:

  1. RAILS

Ruby on dynaaminen, välttämätön olio-ohjelmointi. Se kirjoitetaan dynaamisesti, kuten PHP: ssä, joten sinun ei tarvitse huolehtia muuttujien ilmoittamisesta. Kiskot ovat avoimia, toimivia useilla alustoilla ja ne voidaan upottaa hypertekstin merkintäkielelle. Se on erittäin korkean tason kieli. Se tarjoaa jopa datamenetelmien kapseloinnin objektien sisällä.

Rubyssa on erittäin edistykselliset merkkijono- ja tekstinmuokkaustekniikat, jotka voidaan helposti yhdistää DB2: een, MySQL: ään, Oracliin ja Sybaseen. Suuret Ruby-ohjelmat ovat helposti ylläpidettäviä. Siinä on puhdas ja helppo syntaksi, jonka avulla uudet kehittäjät voivat oppia Rubyn nopeasti ja helposti. Se ei vain kyky kirjoittaa monisäikeisiä sovelluksia yksinkertaisella API: lla, mutta tarjoaa myös edistyneen ryhmäluokan ja kyvyn kirjoittaa ulkoisia kirjastoja Ruby- tai C-kirjaimissa.

Ruby Sallii ”varatun sanan” käyttämisen tunnisteena niin kauan kuin jäsentäjä ei havaitse epäselvyyttä. Verrattuna PHP: hen, Rubylla on monia suojausominaisuuksia ja tehokas merkkijonojen käsittely.

Joten, vuosikymmenen kysymys on… Onko se kaikki nämä ominaisuudet tekevät Rubyista paremman perspektiivin verrattuna PHP: hen?

Valitettavasti se ei ole niin mustavalkoinen, ja monet muuttujat tulevat peliin määritettäessä, olisiko PHP: tä vai ruby ​​raiteilla käytettävä kehitykseen.

Esimerkiksi Ruby on Rails on paljon monimutkaisempi kieli kehitysympäristön määrittämiseen. Tämän seurauksena Rubyn vaadittava hiljainen tieto nostaa ohjelmointimarkkinoiden hinnan välittömästi PHP-kehitykseen verrattuna. Toisaalta PHP-kehittäjä voi yksinkertaisesti käyttää tavanomaista pakettia, kuten WAMP, MAMP, saadakseen dev-ympäristönsä asennukseen alle 5 minuutissa.

Kun aloin koodauksen Rubyssa, Gems sekoitti minua enemmän kuin he auttoivat, koska taikuutta oli liikaa. Kun sain tietää, että voisit (ja pitäisi) vain lukea jalokivien lähdekoodia, kaikella oli paljon enemmän järkeä. Helmien liitettävyyden ja yhteisön standardien takia helmet voivat antaa sovelluksellesi valtavan määrän toiminnallisuutta erittäin nopeasti.

Joitakin jalokiviä, joista en voi elää ilman: Devise (todennus - käsittelee käyttäjän kirjautumiset, sosiaalinen sisäänkirjautuminen, unohtaa salasanan työnkulut ja niin edelleen), Paperclip (tiedostojen lähettäminen - jopa käsittelee lataamista S3: een, kuvan rajaus / uudelleennäytteet), yksinkertainen Lomake tekee lomakkeista uskomattoman helppoja standardisoida ja tuottaa verkkosivustoilla.

PHP suunniteltiin hypertekstin esiprosessoriksi, mikä tarkoittaa, että se suoritetaan vain, kun Web-pyyntö on. Verrattuna Rubyn kanssa, joka johtaa prosessia. Rails-sovelluksessa voit helposti määrittää taustatyöt Sidekiq- tai Resque-toiminnolla. Tämä lisää myös Railin kykyä skaalata helposti. Sovelluksissamme siirrämme paljon asioita, jotka voivat hidastaa pyyntöjä, kuten käyttäjien lähettäminen sähköpostitse taustatyöhön.

Nyt PHP voi tehdä taustatyöt Gearmanilla, mutta se ei ole standardisoitu - sinun on asennettava PECL-laajennus. Ruby / Rails-sovelluksessa taustatyöt eivät ole ongelma. Sinä vain teet sen.

Sodan hinaaja

Nyt kun olet lukenut paljon PHP: stä ja Railsistä, anna heidän vertailla niitä. Tarkistetaan, mikä on yhtä suuri resurssien käytön ja jopa suorituskyvyn (nopeuden) suhteen.

Suositellut kurssit

  • Online-varmennuskurssi Java-hibernatessa
  • Ohjelma Java Keväällä
  • WordPress-sertifiointikurssi
  • Ruby-kurssi

Resurssien käyttö ja nopeus

Muistin käytöstä tulee yleensä Python> Ruby> PHP, mikä tietenkin johtaa Djangoon> Rails> PHP. Ei vain muisti, mutta myös taipumus pitää raaka rubiini kiskoilla vs php suorituskykyä. Tässä huomionarvoista on myös se, että täällä ei tietenkään ole absoluutioita. On paljon käyttötapahtumia, joissa Ruby voittaa Pythonin, kädet alas. Uskon, että voimme kaikki olla yhtä mieltä siitä, että Ruby ja Python kuitenkin voittavat PHP: n.

Oma kokemukseni on, että Rails-muistin käyttö voi olla suurta, etenkin 64-bittisissä koneissa (minimi on noin 95-100 Mt yhtä ohut kuin web-käyttöliittymä). PHP: tä käytetään yleensä eri kuvioiden kanssa, joten sitä on vähän vaikea vertailla suoraan.

Tästä huolimatta on silti erittäin helppoa tehdä crappy, hidas ja tehoton Django-sovellus sekä laiha, nopea ja tehokas Rails-sovellus tai päinvastoin. Taito, tietämys ja asiantuntemus käyttämäsi järjestelmässä tekevät paljon enemmän muistista ja suorituskyvystä kuin pelkästään kehys.

Tietokannan optimoinnit, palvelinvalinnat ja arkkitehtuurit (Apache vs. välityspalvelimen asetukset käyttämällä nginx / lighttpd-ohjelmaa jne.), Ja perustavanlaatuiset suunnittelupäätökset todennäköisesti ylikuormittavat kehyksen ominaispiirteet melko nopeasti.

Jos suoritat tyypillisiä vertailuarvoja Rubyn ja muiden kielten välillä, Ruby häviää. Ruby ei todennäköisesti palvele sinua hyvin kirjoittamalla reaaliaikaista digitaalista signaalinkäsittelysovellusta tai muuta reaaliaikaista ohjausjärjestelmää. Ruby (nykypäivän VM: n kanssa) todennäköisesti tukehtuu resurssirajoitettuun tietokoneeseen, kuten älypuhelimiin.

Muista, että suuri osa web-sovellusten prosessoinnista tapahtuu C: ssä kehitettyjen ohjelmistojen avulla. Esimerkiksi Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, monet jäsentämiskirjastokoko, RMagick, TCP / IP jne. Ovat C-ohjelmia, joita käyttää Rubiini. Ruby tarjoaa liiman ja liiketoimintalogiikan.

Kysymys on ”MIKSI PHP sitten?”

Nyt puhutaan PHP: stä. PHP toimii erittäin hitaasti apache-palvelimella. Vaikka yrität ajaa PHP-sivua edes ilman mitään komentosarjoja, vain tyhjää php-sivua, vie silti 10 kertaa enemmän aikaa lataamiseen verrattuna JSP- tai Java-tiedostoihin. Mutta jälleen kerran, miljoonan vuosisadan kysymys on, että jos niin on, niin miksi Facebook ei ole vielä upottanut PHP: tä? Syynä siihen, että Facebook ei ole siirtynyt pois PHP: stä, on se, että Facebookin insinöörit ovat onnistuneet kiertämään monia sen virheistä yhdistämällä paikkoja kaikilla pinon tasoilla ja erinomaisen sisäisen kurinalaisuuden koodikokoelman ja tyylin avulla.

Kielen pahimmat ominaisuudet vältetään ja koodaustapa pannaan jäykästi täytäntöön melko tiukalla koodikatselmuskulttuurilla (tyylin noudattamatta jättäminen ja “menemästä cowboya” kirjoittamalla huolimaton koodi johtaa ikävyttömään pilkkaamiseen). Suunnittelujohdon ei ole koskaan tarvinnut ottaa vahvaa käsiä täällä; tämä johtui suurelta osin siitä, että keskeiset sisäiset tekniset johtajat vain kiinnittivät kaikkia muita mukanaan.

Ja Facebook ei tietenkään käytä vain PHP: tä. Sen ytimenä on myös C ++. Joten, PHP: lle, käytä jonkinlaista opcode-välimuistia, kuten APC tai eAccelerator, muuten PHP: n on jäsentää tiedostosi jokaisesta pyynnöstä. Yleisessä apachen virityksessä sinun tulisi tehdä googling, mielessä on muutama asia, kuten .htaccess-tiedostojen poistaminen käytöstä, mutta sen pitäisi silti olla nopeampaa kuin JSP.

johtopäätös

Joten lopulta luulen, että sanon, että jos kuljet läpi Railsin, sinun pitäisi pysyä läpi Railsin niin kauan kuin et aio käynnistää kokonaan uutta PHP-pohjaista projektia ja perustaa sen mukana yritys.

Suositellut artikkelit

Tässä on artikkeleita, jotka auttavat sinua saamaan lisätietoja Rails vs PHP -sovelluksesta, joten käy vain linkin läpi.

  1. Amazing Guide for Rails -kehityksen opas
  2. Ruby vs Ruby On Rails- Kumpi on parempi?
  3. Ruby vs PHP - mikä tekniikka on paras?
  4. Kymmenen komeinta PHP-haastattelukysymystä kokeneille