Ohjelmointi

Miksi kehittäjät rakastavat ja vihaavat PHP: tä

PHP, kunnioitettava palvelinpuolen komentosarjakieli, on kuuluisa käytöstä verkkokehityksessä. Rasmus Lerdorf julkaisi sen ensimmäisen kerran vuonna 1995, ja sitä ovat hyödyntäneet WordPressin ja Facebookin kaltaiset. W3Techsin mukaan sitä on käytetty 82 prosentissa verkkosivustoista, joiden palvelinpuolen ohjelmointikieli tunnetaan. Kieli on hieman Java: n jälkeen PyPL Popularity of Programming Language -indeksissä, ja se on kuudenneksi kilpailevassa Tiobe-indeksissä. Tehokas päivitys, PHP 7, on määrä suorittaa vuonna 2015.

Kuten kaikilla tekniikoilla, sillä on kuitenkin myös harrastajia ja bashereita. Tästä syystä puolustajat vannovat PHP: tä ja miksi jotkut toisinajattelijat saattavat vannoa sen.

Hyvä: Se on suosittu ja helppo oppia

"PHP on ylivoimaisesti suosituin verkkokehityskieli", sanoo PHP-työkalutoimittaja Zend Technologiesin toimitusjohtaja Andi Gutmans. Josh Lockhart, uusien mediakampanjoiden web-kehittäjä ja kirjailija, painottavat PHP: n pientä oppimiskäyrää, helppoa käyttöönottoa ja nopeaa kehitystoimintaa. "PHP on yksi helpoimmista ja helpoimmin käytettävissä olevista web-ohjelmointikielistä", Lockhart sanoo. "Se on asennettu suurimmalle osalle palvelimia (mukaan lukien useimmat jaetut hosting-suunnitelmat). Se on suhteellisen helppo oppia erinomaisen online-dokumentaation ja ajantasaisten online-resurssien ansiosta."

Hyvä: Työtehtäviä Web-kehittäjille

"PHP auttaa sinua ansaitsemaan rahaa ja löytämään työpaikan" palvelinpuolen verkossa, Gutmans sanoi. Nopea haku Dice.com -tekniikan työpaikkasivustolta viime viikolla löysi 3366 PHP: hen liittyvää työpaikkaa. Tämä kalpenee verrattuna 17 418 Java-työhön ja Perliin (4300 työpaikkaa) ja Pythoniin (5429 työpaikkaa), mutta se oli enemmän kuin Ruby (2973 työpaikkaa) ja jopa Objective-C (985 työpaikkaa). Lockhart näkee PHP: n yhtenä yleisimmin käytetyistä kielistä, vaikka se onkin hieman vähemmän trendikäs kuin kielet, kuten Ruby, Python, Go ja Rust.

Hyvä: Se kehittyy edelleen

Kielellä on modernit ominaisuudet, kuten sulkemiset ja nimitilat, sekä suorituskyky ja modernit kehykset. Kuten Gutmans toteaa, "Jotkut ihmiset, jotka haluavat siirtyä pois, eivät välttämättä ole koulutettuja siitä, mitä PHP tarjoaa." Kehittäjät, Lockhart sanoo, tunnustavat, että PHP on tehokas nykyaikaisilla ominaisuuksilla ja asianmukaisella olio-ohjelmointimallilla. Tulossa on versio 7, joka on asetettu tarjoamaan dramaattisia suorituskyvyn parannuksia sovelluksissa. Lockhart panee merkille Facebookin PHP-parannukset, mukaan lukien HHVM-virtuaalikone ja Hack-kieli.

Huono: Valitukset suunnittelusta, keskittymisen puute

"Lähes jokainen PHP: n ominaisuus on jotenkin rikki", sanoo bloggaaja Eevee julkaisussa "PHP: Fractal of bad design", joka on kielen vastainen vuosi 2012. Eevee menee peukalo alas kielen lisäksi myös kehykseen ja ekosysteemiin. Bloggaajan mukaan kieli on ennustettavissa ja johdonmukainen, mutta se on täynnä yllätyksiä ja on epäjohdonmukaista. Kritiikin joukossa PHP: tä kutsutaan läpinäkymättömäksi, eikä siinä ole oletusarvoisesti pinon jälkiä, ja se on monimutkaisen heikon kirjoittamisen sattuessa. "Selvää suunnittelufilosofiaa ei ole. Aikaisen PHP: n inspiroi Perl; valtava stdlib, jossa on" out "-parametrit, on C: ltä; OO osat on suunniteltu kuten C ++ ja Java. "

Lockhart tunnustaa Eeveen PHO-vastaisen saarnan olevan "hyperbolinen totuuden ytimen kanssa". Vaikka PHP: n puolestapuhuja, Lockhart oli tarpeeksi armollinen luetellakseen kritiikkiä, kun häneltä kysyttiin:

  • Kieli on epäjohdonmukainen, erityisesti funktioiden nimet ja argumenttien järjestys. "Tämä on kuitenkin helppo oppia, joten se ei ole kovin suuri huolenaihe."
  • PHP: llä on edelleen paljon vanhoja matkatavaroita, kuten globaaleja, maagisia lainauksia jne. "Nämä huonot käytännöt karsitaan hitaasti kielestä, mutta kunnes ne ovat poissa, ne auttavat tietämättömiä kehittäjiä jatkamaan huonoja käytäntöjä."
  • PHP ei ole yhtä keskittynyt kuin muut kielet, minkä Lockhart pitää sen kehittämässä "paloittain pitkään, usein komitean toimesta".
$config[zx-auto] not found$config[zx-overlay] not found