Bildekilde: pixabay.com

Så før jeg starter en kald krig her, mellom folk som bruker Rails (Ruby) og PHP, la meg fortelle deg at jeg ikke er her for å diskutere om hvilket språk som er bedre. Enten jeg, eller for en erfaren programmerer, vil være den samme. Det er bare et spørsmål om sannsynlighet for hvem som foretrekker hva og hva som er lett for dem.

I denne bloggen ville jeg stort sett diskutere viktigheten av dem begge og hvordan de skiller seg fra hverandre. Så hvis du er ukjent med Rails og PHP begge deler, kan dette være den perfekte bloggen for deg, hvis du vil velge en av de to. Så la oss komme i gang. Skal vi?

Noen grunnleggende bakgrunn

Til å begynne med er PHP et skriptspråk, mens RAILS er et rammeverk for nettutvikling, som er basert på skriptspråket Ruby. PHP er et mye brukt programmeringsspråk for nettsteder som Facebook, WordPress, Yahoo, Flickr og enda mer. PHP er ekstremt rask, n ganger mer stabil enn Rails og har til og med et større fellesskap av utviklere som støtter det.

Rails er fullt ut basert på Ruby. Det er ekstremt enkelt å bruke og komme i gang med. Miljø i Ruby er veldig automatisert. Ruby er egentlig ganske utrolig språk. I motsetning til PHP, er det virkelig objektorientert fra grunnen av. Koden er veldig kortfattet og kraftig. Gems (extensions) lar deg boltre deg på nødvendig funksjonalitet. Etter koding i Ruby synes jeg koding i PHP er ganske kjedelig.

Den gode den slemme og den stygge

  1. PHP

Mitt råd er PHP, fordi det er veldig enkelt å bruke PHP på det grunnleggende nivået, det er mange mennesker der som vet å kopiere / lime inn noen malkoder, endre konfigurasjonsfilene og de kan til og med kalle dem selv PHP-programmerere, som gir PHP en veldig dårlig navn som jeg ikke synes det fortjener.

For en ekte programmerer, spiller det ingen rolle hvilket språk han bruker, det er hva han koder og hvordan han koder som betyr noe. Etter å ha lært noen programmeringsspråk forstår du at de fleste av dem faktisk er veldig like, det er vanligvis syntaks som er annerledes (spesielt i kjernemekanismen deres, selv for forskjellige programmeringsparadigmer).

De første tingene du bør lære er å skrive ren og lesbar kode og ikke å skrive for sofistikert kode, siden det er vanskeligere å feilsøke og forvirre for noen som ikke kjenner de spesielle triksene til språket (med PHP kan du gjøre alle slags lure ting, ikke alle er åpenbare for andre programmerere).

Sammenlignet med PHP, er Rails også uvennlig når det gjelder feil. Med PHP vil det spytte ut feil på deg under utvikling, og feilmeldingene er faktisk fornuftige. Vanligvis vil en side gjengis, men delen med feilen viser deg hvilken linje feilen oppsto og meldingen er nyttig. I Rails blåser vanligvis hele appen opp.

Jeg beklager å fornærme noen mennesker her, men Ruby er rett og slett ikke så grei som PHP å lære. Det er i det hele tatt et ekstremt kraftig språk. Jeg velger å bruke Ruby ganske enkelt fordi jeg som utvikler føler at det er et mye bedre språk enn PHP. Men fra et læringsperspektiv er det ikke det. Ruby har mange funksjoner som ganske enkelt ikke er enkle for en nybegynner-programmerer å forstå. Et slikt konsept er blokker, procs og lambdas, som Rails bruker sterkt.

Det klassiske eksempelet Ruby on Rails jeg vil bruke er for å lage en form:

  1. RAILS

Ruby er en dynamisk, imperativ objektorientert programmering. Det er dynamisk skrevet, som i PHP, slik at du ikke trenger å bekymre deg for å måtte erklære variabler. Rails er åpen, fungerer på flere plattformer og kan integreres i Hypertext Markup Language. Det er et språk på veldig høyt nivå. Det tilbyr til og med innkapsling av datametoder i objekter.

Ruby har superavanserte strenger, og tekstmanipuleringsteknikker kan enkelt kobles til DB2, MySQL, Oracle og Sybase. Store programmer skrevet i Ruby er lett å vedlikeholde. Den har ren og enkel syntaks som lar nye utviklere lære Ruby veldig raskt og enkelt. Det har ikke bare muligheten til å skrive flertrådede applikasjoner med et enkelt API, men tilbyr også avansert matriseklasse og muligheten til å skrive eksterne biblioteker i Ruby eller C.

Ruby Lar "reservert ord" brukes som en identifikator så lenge analysatoren ikke oppfatter en tvetydighet. Sammenlignet med PHP, har Ruby mange sikkerhetsfunksjoner og kraftig strenghåndtering.

Så spørsmålet om tiåret er … Med alle disse funksjonene, gjør det Ruby til et bedre perspektiv sammenlignet med PHP?

Dessverre er det ikke så svart og hvitt, og mange variabler kommer inn i bildet når du bestemmer om PHP eller rubin på skinner skal brukes til å utvikle seg med.

For eksempel er Ruby on Rails et mye mer sammensatt språk å sette opp et utviklingsmiljø i. Følgelig vil den stilltiende kunnskapen som kreves for Ruby umiddelbart øke prisen i programmeringsmarkedet sammenlignet med PHP-utvikling. En PHP-utvikler kan derimot ganske enkelt bruke en konvensjonell pakke som WAMP, MAMP for å få oppsettet av miljøet på mindre enn 5 minutter.

Da jeg begynte å kode i Ruby, forvirret Gems meg mer enn de hjalp fordi det var for mye 'magi. Når jeg fikk vite at du bare kunne (og burde) lese kildekoden for perler, gjorde alt så mye mer fornuftig. På grunn av den pluggbare naturen til edelstener og samfunnets standarder, kan edelstener gi applikasjonen din en enorm mengde funksjonalitet veldig raskt.

Noen perler som jeg ikke kan leve uten: Devise (autentisering - håndterer brukerpålogginger, sosialt på, glemmer passordarbeid og så mye mer), Paperclip (filopplasting - til og med håndterer opplasting til S3, beskjæring av bilder / re-sampling), Simple Skjema gjør skjemaer utrolig enkle å standardisere og gjengi på nettsteder.

PHP ble designet som en forhåndsprosessor for hypertekst, noe som betyr at den bare kjøres når det er en nettforespørsel. Sammenlignet med Ruby, som kjører en prosess. I Rails kan du enkelt sette opp bakgrunnsjobber ved å bruke Sidekiq eller Resque. Dette øker også Rails muligheter til å skalere enkelt. I applikasjonene våre flytter vi mange ting som kan bremse forespørsler som å sende brukere til bakgrunnsjobber.

Nå kan PHP gjøre bakgrunnsjobber ved hjelp av Gearman, men det er ikke standardisert - du må installere PECL-utvidelsen. I Ruby / Rails er bakgrunnsjobber ikke noe problem. Du gjør det bare.

Dragkampen

Nå som du har lest om mye om PHP og Rails, la en sammenligning se på dem. La oss sjekke hvilken som er på nivå med hensyn til bruk av ressurser og til og med når det gjelder ytelse (hastighet).

Anbefalte kurs

  • Online sertifiseringskurs i Java Dvalemodus
  • Program på Java Spring
  • WordPress sertifiseringskurs
  • Ruby Course

Ressursbruk og hastighet

Når det gjelder minnebruk vil det vanligvis være Python> Ruby> PHP, som selvfølgelig fører til Django> Rails> PHP. Ikke bare minne, men det har også en tendens til å holde seg til rå rubin på skinner vs php-ytelse. Også noe som er verdt å merke seg her er at det selvfølgelig ikke er noen absolutter her. Det er mange bruksscenarier der Ruby vil slå Python, nedover. Jeg tror vi alle kan være enige om at Ruby og Python alltid vil slå PHP.

Min egen erfaring er at Rails-minnebruken kan være høy, spesielt på 64-biters maskiner (minimum er rundt 95-100 MB med så tynt som nettfronten). PHP har en tendens til å brukes med forskjellige mønstre, så det er litt vanskelig å sammenligne direkte.

Når det er sagt, er det fremdeles veldig enkelt å lage en crappy, treg og ineffektiv Django-applikasjon og en mager, rask og effektiv Rails-applikasjon, eller omvendt. Dyktighet, kunnskap og ekspertise med systemet du bruker vil gjøre mye mer for dets minne og ytelsesfotavtrykk enn bare selve rammen.

Databaseoptimaliseringer, servervalg og arkitekturer (Apache vs. proxyoppsett ved bruk av nginx / lighttpd, etc.), og grunnleggende designvedtak vil sannsynligvis overvelde rammeverkets iboende egenskaper.

Hvis du kjører typiske benchmarks mellom Ruby og andre språk, taper Ruby. Ruby ville sannsynligvis ikke tjent deg godt i å skrive en sanntidsbehandlingsapplikasjon for digital signal, eller noen form for sanntidsstyringssystem. Ruby (med dagens VM-er) vil sannsynligvis kvele på en ressursbegrenset datamaskin som smarttelefoner.

Husk at mye av behandlingen på webapplikasjonene dine faktisk gjøres av programvare utviklet i C. f.eks. Apache, Tynn, Nginx, SQLite, MySQL, PostgreSQL, mange parsingbiblioteker, RMagick, TCP / IP, etc. er C-programmer som brukes av Rubin. Ruby gir limet og forretningslogikken.

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

La oss nå snakke om PHP. PHP kjører ekstremt tregt på apache-serveren. Selv om du prøver å kjøre en PHP-side selv uten noe skript, bare en tom php-side, vil det fortsatt ta omtrent 10 ganger mer tid å laste sammenlignet med JSPs eller Java. Men igjen, spørsmålet om et million århundre er at hvis det er tilfelle, hvorfor har Facebook da ikke grøftet PHP ennå? Årsaken til at Facebook ikke har migrert bort fra PHP, er fordi Facebooks ingeniører har klart å jobbe rundt mange av sine feil gjennom en kombinasjon av lapper på alle nivåer i stabelen og utmerket intern disiplin via kodekonvensjon og stil.

De verste egenskapene til språket unngås, og kodestilen håndheves stivt gjennom en ganske stram kodekontrollkultur (hvis man ikke holder seg til stilen og “går på cowboy” ved å skrive slurvete koder, resulterer det i en grufull håp fra ens kolleger). Ingeniørledelse har aldri måttet ta en sterk hånd her; Dette oppsto i stor grad på grunn av viktige interne tekniske ledere som bare korrelerte alle andre sammen.

Og Facebook bruker ikke bare PHP selvfølgelig. Det inkluderer også C ++ som kjernen. Så for PHP bruk en slags opkodecache som APC eller eAccelerator ellers må PHP analysere filene dine på hver forespørsel. For generell apache-tuning bør du gjøre noen googler, et par ting som å deaktivere .htaccess-filer kommer til tankene, men det bør fremdeles være raskere enn JSP.

Konklusjon

Så til slutt antar jeg hva jeg sier er hvis du er igjennom Rails, enn du burde holde deg gjennom Rails så lenge du ikke planlegger å starte et helt nytt prosjekt basert på PHP og starte et selskap sammen med det.

Anbefalte artikler

Her er noen artikler som hjelper deg å få mer detaljert informasjon om Rails vs PHP, så bare gå gjennom lenken.

  1. Fantastisk guide for å lære rails utvikling
  2. Ruby vs Ruby On Rails - Hvilken er bedre?
  3. Ruby vs PHP-Hvilken teknologi er best?
  4. Topp 10 mest fantastiske PHP-intervjuspørsmål for erfarne