Billedkilde: pixabay.com

Så før jeg starter en kold krig her, mellem folk, der bruger Rails (Ruby) og PHP, så lad mig fortælle dig, at jeg ikke er her for at diskutere, om hvilket sprog der er bedre. For mig eller for enhver erfaren programmør ville begge være det samme. Det er bare et spørgsmål om sandsynlighed for, hvem der foretrækker hvad og hvad der er let for dem.

I denne blog vil jeg for det meste diskutere om vigtigheden af ​​dem begge, og hvordan de adskiller sig fra hinanden. Så hvis du er ny på både Rails og PHP, kan dette være den perfekte blog for dig, hvis du vil vælge en fra en af ​​de to. Så lad os komme i gang. Skal vi?

Lidt grundlæggende baggrund

Til at begynde med er PHP et scriptingsprog, mens RAILS er en ramme for webudvikling, der er baseret på scriptingsproget Ruby. PHP er et meget brugt programmeringssprog til websteder som Facebook, WordPress, Yahoo, Flickr og endnu mere. PHP er ekstremt hurtig, n gange mere stabil end Rails og har endda et større samfund af udviklere til at støtte det.

Rails er fuldt ud baseret på Ruby. Det er ekstremt let at bruge og komme i gang med. Miljø i Ruby er meget automatiseret. Ruby er virkelig et helt fantastisk sprog. I modsætning til PHP er det virkelig objektorienteret fra bunden af. Dens kode er meget kortfattet og kraftfuld. Ædelstene (udvidelser) giver dig mulighed for at boltre på den nødvendige funktionalitet. Efter kodning i Ruby finder jeg kodning i PHP temmelig kedelig.

Det gode, det dårlige og det grimme

  1. PHP

Mit råd er PHP, fordi det er meget let at bruge PHP på det grundlæggende niveau, der er en masse mennesker der, der ved at kopiere / indsætte en skabelonkode, ændre konfigurationsfilerne, og de kan endda kalde dem selv PHP-programmerere, der giver PHP en meget dårligt navn, som jeg ikke synes, det fortjener.

For en ægte programmør betyder det ikke rigtig, hvilket sprog han bruger, det er hvad han koder og den måde, han koder på, der betyder noget. Efter at have læst få programmeringssprog forstår du, at de fleste af dem faktisk er meget ens, det er normalt den syntaks, der er anderledes (især i deres kernemekanisme, selv for forskellige programmeringsparadigmer).

De første ting, du skal lære, er at skrive ren og læsbar kode og ikke at skrive for sofistikeret kode, da det er sværere at fejlsøge og forvirrende for nogen, der ikke kender sprogets specielle tricks (med PHP kan du gøre alle slags vanskelige ting, ikke alle er indlysende for andre programmerere).

Sammenlignet med PHP er Rails også uvenlig, når det kommer til fejl. Med PHP vil det spytte ud fejl på dig under udvikling, og fejlmeddelelserne giver faktisk mening. En side gengives typisk, men den del med fejlen viser dig, hvilken linje fejlen opstod, og meddelelsen er nyttig. I Rails blæser typisk hele appen op.

Jeg er ked af at fornærme nogle mennesker her, men Ruby er simpelthen ikke så ligetil som PHP at lære. Det er på alle måder et ekstremt magtfuldt sprog. Jeg vælger at bruge Ruby, simpelthen fordi jeg som udvikler føler, at det er et meget bedre sprog end PHP. Men fra et læringsperspektiv er det ikke. Ruby har mange funktioner, der simpelthen ikke er lige for en begyndende programmør at forstå. Et sådant koncept er blokke, procs og lambdas, som Rails bruger stærkt.

Det klassiske eksempel på Ruby on Rails, jeg vil bruge, er til at oprette en form:

  1. skinner

Ruby er en dynamisk, imperativ objektorienteret programmering. Det er dynamisk indtastet, ligesom i PHP, så du behøver ikke at bekymre dig om at skulle erklære variabler. Rails er åben sourced, fungerer på flere platforme og kan integreres i Hypertext Markup Language. Det er et meget højt sprog. Det tilbyder endda indkapsling af datametoder inden for objekter.

Ruby har superavancerede strenge, og tekstmanipulationsteknikker kan let forbindes til DB2, MySQL, Oracle og Sybase. Store programmer skrevet i Ruby er let at vedligeholde. Det har ren og nem syntaks, der giver nye udviklere mulighed for at lære Ruby meget hurtigt og nemt. Det har ikke kun muligheden for at skrive multetrådede applikationer med et simpelt API, men tilbyder også avanceret array-klasse og muligheden for at skrive eksterne biblioteker i Ruby eller C.

Ruby Tillader, at "reserveret ord" bruges som en identifikator, så længe parseren ikke opfatter en tvetydighed. Sammenlignet med PHP har Ruby mange sikkerhedsfunktioner og kraftig strenghåndtering.

Så spørgsmålet om årtiet er … Med alle disse funktioner gør det Ruby til et bedre perspektiv sammenlignet med PHP?

Desværre er det ikke så sort / hvidt, og mange variabler kommer i spil, når man afgør om PHP eller rubin på skinner skal bruges til at udvikle sig med.

For eksempel er Ruby on Rails et meget mere komplekst sprog at opsætte et udviklingsmiljø i. Følgelig hæver den stiltiende viden, der kræves til Ruby, straks prisen på programmeringsmarkedet sammenlignet med PHP-udvikling. En PHP-udvikler på den anden side kan blot bruge en konventionel pakke som WAMP, MAMP for at få deres dev-miljøopsætning på mindre end 5 minutter.

Da jeg begyndte at kode i Ruby, forvirrede Gems mig mere, end de hjalp, fordi der var for meget 'magi. Når jeg fandt ud af, at du bare kunne (og burde) læse kildekoden for perler, gjorde alt så meget mere mening. På grund af den indbyggede natur af perler og samfundets standarder, kan perler give din applikation en enorm mængde funktionalitet meget hurtigt.

Nogle perler, som jeg ikke kan leve uden: Devise (autentificering - håndterer brugerlogins, socialt login, glemme adgangskode-arbejdsgange og så meget mere), Paperclip (fil uploads - endda håndterer upload til S3, beskæring af billede / re-sampling), Simple Form gør formularer utroligt enkle at standardisere og gengive på websteder.

PHP blev designet som en hypertekstfor-processor, hvilket betyder, at den kun udføres, når der er en internetanmodning. Sammenlignet med Ruby, der kører en proces. I Rails kan du nemt konfigurere baggrundsjob ved hjælp af Sidekiq eller Resque. Dette tilføjer også jernbanens evne til let skalering. I vores applikationer flytter vi en masse ting, der kan bremse forespørgsler som at e-maile brugere til baggrundsjob.

Nu kan PHP udføre baggrundsopgaver ved hjælp af Gearman, men det er ikke standardiseret - du skal installere PECL-udvidelsen. I Ruby / Rails er baggrundsjob ikke et problem. Du gør det bare.

Tug of War

Nu hvor du har læst meget om PHP og Rails, så lad en sammenligning se på dem. Lad os kontrollere, hvilken der er på niveau med hensyn til brug af ressourcer og endda med hensyn til ydelse (hastighed).

Anbefalede kurser

  • Online certificeringskursus i Java-dvaletilstand
  • Program på Java Spring
  • WordPress-certificeringskursus
  • Ruby Course

Ressourceforbrug og hastighed

Med hensyn til hukommelsesforbrug vil det generelt være Python> Ruby> PHP, hvilket naturligvis fører til Django> Rails> PHP. Ikke kun hukommelse, men det har også en tendens til at holde på for rå rubin på skinner vs php-ydeevne. Også noget, der er værd at bemærke her, er, at der selvfølgelig ikke er nogen absolutes her. Der er masser af brugsscenarier, hvor Ruby vil slå Python med hænderne ned. Jeg tror, ​​vi alle kan være enige om, at Ruby og Python altid vil slå PHP.

Min egen oplevelse er, at brugen af ​​Rails-hukommelse kan være høj, især på 64 bit-maskiner (minimum er omkring 95-100 MB med så tyndt som web-frontend). PHP har en tendens til at blive brugt med forskellige mønstre, så det er lidt vanskeligt at sammenligne direkte.

Når det er sagt, er det stadig meget let at lave en crappy, langsom og ineffektiv Django-applikation og en mager, hurtig og effektiv Rails-applikation, eller omvendt. Dygtighed, viden og ekspertise med det system, du bruger, vil gøre langt mere for dets hukommelse og ydeevne end af selve rammen.

Databasoptimeringer, servervalg og arkitekturer (Apache versus proxyopsætninger ved hjælp af nginx / lighttpd osv.) Og grundlæggende designbeslutninger vil sandsynligvis overvælde rammets iboende egenskaber ret hurtigt.

Hvis du kører typiske benchmarks mellem Ruby og andre sprog, mister Ruby. Ruby ville sandsynligvis ikke tjene dig godt ved at skrive en realtid digital signalbehandlingsapplikation eller nogen form for realtidskontrolsystem. Ruby (med nutidens VM'er) ville sandsynligvis kvæle på en ressourcebegrænset computer som smartphones.

Husk, at meget af behandlingen på dine webapplikationer faktisk udføres af software, der er udviklet i C. f.eks. Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, mange parsing-biblioteker, RMagick, TCP / IP osv. Er C-programmer, der bruges af Rubin. Ruby leverer limet og forretningslogikken.

Spørgsmålet er "HVORFOR PHP da?"

Lad os nu tale om PHP. PHP kører ekstremt langsomt på apache-serveren. Selv hvis du prøver at køre en PHP-side selv uden noget script, bare en tom php-side, vil det stadig tage 10 gange mere tid at indlæse sammenlignet med JSPs eller Java. Men igen, spørgsmålet om et million århundrede er, at hvis det er tilfældet, hvorfor har Facebook da ikke grøftet PHP endnu? Årsagen til at Facebook ikke er migreret væk fra PHP er fordi Facebooks ingeniører har formået at arbejde omkring mange af dens mangler gennem en kombination af patches på alle niveauer i stakken og fremragende intern disciplin via kodekonvention og stil.

Sprogets værste attributter undgås, og kodestilen håndhæves stift gennem en temmelig stram kultur for kodevurdering (hvis man ikke overholder stilen og ”går i cowboy” ved at skrive slurvet kode resulterer det i en gruløs hågelighed fra ens kolleger). Ingeniørledelse har aldrig været nødt til at tage en stærk hånd her; dette opstod hovedsageligt på grund af vigtige interne tekniske ledere, som bare slags korrelerede alle andre sammen.

Og Facebook bruger naturligvis ikke bare PHP. Det inkluderer også C ++ som kernen. Så til PHP skal du bruge en slags opcode-cache som APC eller eAccelerator, ellers skal PHP analysere dine filer på hver anmodning. Ved generel apache-tuning skal du foretage nogle googling, et par ting som deaktivering af .htaccess-filer kommer til at tænke på, men det skal stadig være hurtigere end JSP.

Konklusion

Så i sidste ende gætte jeg, hvad jeg siger, hvis du er igennem Rails, end du skulle holde fast ved Rails, så længe du ikke planlægger at starte et helt nyt projekt baseret på PHP og starte et firma sammen med det.

Anbefalede artikler

Her er nogle artikler, der hjælper dig med at få mere detaljeret information om Rails vs PHP, så bare gå gennem linket.

  1. Fantastisk guide til Learn Rails-udvikling
  2. Ruby vs Ruby On Rails - Hvilken er bedre?
  3. Ruby vs PHP-Hvilken teknologi er bedst?
  4. Top 10 mest fantastiske PHP-interviewspørgsmål til erfarne

Kategori: