Bildkälla: pixabay.com

Så innan jag startar ett kallt krig här, mellan människor som använder Rails (Ruby) och PHP, låt mig säga att jag inte är här för att diskutera om vilket språk som är bättre. För mig eller för någon erfaren programmerare skulle antingen vara samma sak. Det är bara en fråga om sannolikhet för vem som föredrar vad och vad som är lätt för dem.

I den här bloggen skulle jag mest diskutera om båda viktigheten och hur de skiljer sig från varandra. Så om du är ny inom Rails och PHP båda, kan detta vara den perfekta bloggen för dig, om du vill välja en av någon av de två. Så låt oss komma igång. Ska vi?

Lite grundläggande bakgrund

Till att börja med är PHP ett skriptspråk, medan RAILS är ett webbutvecklingsram som är baserat på skriptspråket Ruby. PHP är ett vanligt använt programmeringsspråk för webbplatser som Facebook, WordPress, Yahoo, Flickr och ännu mer. PHP är extremt snabbt, n gånger mer stabilt än Rails och har till och med en större gemenskap av utvecklare som stöder det.

Rails är helt baserat på Ruby. Det är extremt lätt att använda och komma igång med. Miljön i Ruby är mycket automatiserad. Ruby är egentligen ganska fantastiskt språk. Till skillnad från PHP är det verkligen objektorienterat från grunden. Dess kod är mycket kortfattad och kraftfull. Ädelstenar (tillägg) gör det möjligt för dig att lösa på den nödvändiga funktionaliteten. Efter kodning i Ruby tycker jag att kodning i PHP är ganska tråkig.

Den gode den onde och den fule

  1. PHP

Mitt råd är PHP, eftersom det är väldigt enkelt att använda PHP på grundnivå, det finns många människor där som vet att kopiera / klistra in någon mallkod, ändra konfigurationsfilerna och de kan till och med kalla dem själv PHP-programmerare, vilket ger PHP en mycket dåligt namn som jag inte tycker att det förtjänar.

För en riktig programmerare spelar det ingen roll vilket språk han använder, det är vad han kodar och hur han koder som betyder något. Efter att ha lärt dig några programmeringsspråk förstår du att de flesta av dem är väldigt lika, det är vanligtvis syntaxen som är annorlunda (särskilt i deras kärnmekanism, även för olika programmeringsparadigm).

Första saker du bör lära dig är att skriva ren och läsbar kod och att inte skriva för sofistikerad kod, eftersom det är svårare att felsöka och förvirra för någon som inte känner till språkets speciella trick (med PHP kan du göra alla slags knepiga grejer, inte alla är uppenbara för andra programmerare).

Jämfört med PHP är Rails också ovänlig när det gäller fel. Med PHP kommer det att skada ut fel på dig under utveckling och felmeddelandena är verkligen vettiga. Vanligtvis kommer en sida att visas men delen med felet visar dig, vilken rad felet inträffade och meddelandet är användbart. I Rails blåser vanligtvis hela appen upp.

Jag är ledsen att förolämpa vissa människor här, men Ruby är helt enkelt inte så enkel som PHP att lära sig. Det är på alla sätt ett oerhört kraftfullt språk. Jag väljer att använda Ruby helt enkelt för att jag som utvecklare tycker att det är ett mycket bättre språk än PHP. Men ur ett lärande perspektiv är det inte. Ruby har många funktioner som helt enkelt inte är enkla för en nybörjare att förstå. Ett sådant koncept är block, procs och lambdas, som Rails använder mycket.

Det klassiska Ruby on Rails-exemplet som jag kommer att använda är för att skapa en form:

  1. Rails

Ruby är en dynamisk, nödvändig objektorienterad programmering. Den är dynamiskt typ, som i PHP, så du behöver inte oroa dig för att behöva deklarera variabler. Rails är öppet, fungerar på flera plattformar och kan inbäddas i Hypertext Markup Language. Det är ett mycket högt språk. Det erbjuder till och med kapsling av datametoder inom objekt.

Ruby har superavancerade strängar och textmanipuleringstekniker kan enkelt anslutas till DB2, MySQL, Oracle och Sybase. Stora program skrivna i Ruby är lätt att underhålla. Den har ren och enkel syntax som gör det möjligt för nya utvecklare att lära sig Ruby mycket snabbt och enkelt. Det har inte bara förmågan att skriva multigängade applikationer med ett enkelt API utan erbjuder också avancerad matrisklass och förmågan att skriva externa bibliotek i Ruby eller C.

Ruby Tillåter att "reserverat ord" används som en identifierare så länge som parsaren inte uppfattar en tvetydighet. Jämfört med PHP har Ruby många säkerhetsfunktioner och kraftfull stränghantering.

Så frågan om decenniet är … Med alla dessa funktioner gör det Ruby till ett bättre perspektiv jämfört med PHP?

Tyvärr är det inte så svartvitt, och många variabler spelar in när man bestämmer om PHP eller rubin på skenor ska användas för att utvecklas med.

Till exempel är Ruby on Rails ett mycket mer komplicerat språk att skapa en utvecklingsmiljö i. Följaktligen höjer den tysta kunskapen som krävs för Ruby omedelbart priset på programmeringsmarknaden jämfört med PHP-utvecklingen. En PHP-utvecklare kan å andra sidan helt enkelt använda ett konventionellt paket som WAMP, MAMP för att få sin dev-miljöinstallation på mindre än 5 minuter.

När jag började koda i Ruby, förvirrade Gems mig mer än de hjälpte eftersom det var för mycket 'magi. När jag lärde mig att du kunde (och borde) bara läsa källkoden för juveler, gjorde allt så mycket mer meningsfullt. På grund av den insticksbara karaktären av ädelstenar och gemenskapens standarder, kan ädelstenar ge din applikation en enorm mängd funktioner mycket snabbt.

Vissa ädelstenar som jag inte kan leva utan: Devise (autentisering - hanterar användarinloggningar, socialt tecken på, glöm lösenordsarbetsflöden och så mycket mer), Paperclip (filuppladdningar - även hanterar uppladdning till S3, bildskärning / omprovning), Simple Form gör former otroligt enkla att standardisera och återge på webbplatser.

PHP designades som en förprocessor för hypertekst, vilket innebär att den endast körs när det finns en webbegäran. Jämfört med Ruby, som kör en process. I Rails kan du enkelt ställa in bakgrundsjobb med Sidekiq eller Resque. Detta ökar också Rails förmåga att enkelt skala. I våra applikationer flyttar vi mycket saker som kan bromsa förfrågningar som e-post till användare till bakgrundsjobb.

Nu kan PHP göra bakgrundsjobb med Gearman men det är inte standardiserat - du måste installera PECL-förlängningen. I Ruby / Rails är bakgrundsjobb inte ett problem. Du gör det bara.

Dragkampen

Nu när du har läst om mycket om PHP och Rails, låt en jämförelse titta på dem. Låt oss kontrollera vilken som är i nivå när det gäller att använda resurser och även när det gäller prestanda (hastighet).

Rekommenderade kurser

  • Online-certifieringskurs i Java-viloläge
  • Program på Java Spring
  • WordPress-certifieringskurs
  • Ruby Course

Resursanvändning och hastighet

När det gäller minnesanvändning kommer det i allmänhet att vara Python> Ruby> PHP, vilket naturligtvis leder till Django> Rails> PHP. Inte bara minne utan det tenderar också att hålla fast vid rå rubin på skenor vs php-prestanda. Något som är värt att notera här är naturligtvis att det inte finns några absolutiteter här. Det finns många användarscenarier där Ruby kommer att slå Python, nedåt. Jag tror att vi alla kan vara överens om att Ruby och Python alltid kommer att slå PHP.

Min egen erfarenhet är att Rails-minnesanvändningen kan vara hög, speciellt på 64-bitars maskiner (minimum är cirka 95-100 MB med så tunn som front-end på webben). PHP brukar användas med olika mönster så det är lite svårt att jämföra direkt.

Med det sagt är det fortfarande väldigt enkelt att skapa en skit, långsam och ineffektiv Django-applikation och en smal, snabb och effektiv Rails-applikation eller vice versa. Färdighet, kunskap och expertis med det system du använder kommer att göra mycket mer för dess minne och prestanda fotavtryck än bara själva ramverket.

Databasoptimeringar, serverval och arkitekturer (Apache kontra proxyinställningar med nginx / lighttpd, etc.) och grundläggande designbeslut kommer sannolikt att överväldra ramverkets inneboende egenskaper ganska snabbt.

Om du kör typiska riktmärken mellan Ruby och andra språk förlorar Ruby. Ruby skulle förmodligen inte tjäna dig bra när du skriver en realtidsapplikation för digital signalbehandling eller någon form av kontrollsystem i realtid. Ruby (med dagens VM) skulle förmodligen kvävas på en resursbegränsad dator som smartphones.

Kom ihåg att mycket av behandlingen på dina webbapplikationer faktiskt görs av mjukvara utvecklad i C. t.ex. Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, många analysbibliotek, RMagick, TCP / IP, etc. är C-program som används av Rubin. Ruby tillhandahåller limet och affärslogiken.

Frågan är "VARFÖR PHP då?"

Låt oss nu prata om PHP. PHP kör extremt långsamt på apache-servern. Även om du försöker köra en PHP-sida även utan något skript, bara en tom php-sida, kommer det fortfarande att ta 10 gånger mer tid att ladda jämför med JSPs eller Java. Men återigen är frågan om ett miljoner århundrade att om det är så, varför har inte Facebook dumpt PHP än? Anledningen till att Facebook inte har migrerat bort från PHP beror på att Facebook: s ingenjörer har lyckats arbeta runt många av sina brister genom en kombination av patchar på alla nivåer i stacken och utmärkt intern disciplin via kodkonvention och stil.

Språkets sämsta attribut undviks och kodningsstilen upprätthålls styvt genom en ganska snäv kulturkodgranskning (om man inte följer stilen och "gå cowboy" genom att skriva slarvig kod resulterar det i ett lidenskapligt hårav från ens kamrater). Ingenjörsledning har aldrig varit tvungen att ta en stark hand här; detta uppstod till stor del på grund av att de viktigaste interna tekniska ledarna bara korrigerade alla andra.

Och Facebook använder naturligtvis inte bara PHP. Det innehåller också C ++ som kärna. Så för PHP använder du någon form av opcode-cache som APC eller eAccelerator annars måste PHP analysera dina filer på varje begäran. För allmän apache-inställning bör du göra en del googling, några saker som att inaktivera .htaccess-filer kommer att tänka på men det bör fortfarande vara snabbare än JSP.

Slutsats

Så i slutändan antar jag vad jag säger är om du går igenom Rails, än du borde hålla igenom Rails så länge du inte planerar att starta ett helt nytt projekt baserat på PHP och starta ett företag tillsammans med det.

Rekommenderade artiklar

Här är några artiklar som hjälper dig att få mer information om Rails vs PHP så bara gå igenom länken.

  1. Fantastisk guide för utveckling av Rails
  2. Ruby vs Ruby On Rails - Vilken är bättre?
  3. Ruby vs PHP-Vilken teknik är bäst?
  4. Topp 10 mest fantastiska PHP-intervjufrågor för erfarna

Kategori: