Krajem decembra sam stao pred okupljene inženjere Bal Laba i objavio — “Nadalje više nećemo raditi PHP i podržavaćemo samo Javu.”

Za kompaniju koja je prethodne 3 godine podjednako gradila sa PHP-om i Javom, i ima veliki broj izuzetnih PHP inženjera, ovo je u najmanju ruku bilo veliko iznenađenje za tim. Ova odluka nalaže obrazloženje i može doprineti uvek prisutnoj PHP vs. Java diskusiji.

Java — lingua franca big data sveta

Prvo moramo sagledati organizacijski kontekst pre nego što uronimo u tehničke razloge. Tokom prošle godine u Bal Labu smo se sve više fokusirali na projekte zasnovane na skalabilnosti i near-realtime procesiranju i, najvažnije, big data analitici.

Kako se Java (i JVM jezici poput Scale) uspostavljaju kao lingua franca za big data, to nam daje vrlo smislen i direktan razlog da promenimo platformu sa kojom radimo.

PHP je izgubio oštricu

Zašto smo uopšte radili sa PHP-om? U ranim fazama je delovalo da PHP ima svoje prednosti nad Javom u brzom “UI driven application developmentu“.

Nažalost, moje je mišljenje da je Java, u kombinaciji sa frejmvorcima poput Springa, AngularJSa i Twitter Bootstrapom, uspešno prevazišla svoja ograničenja kada je u pitanju brzo i lako građenje veb aplikacija.

Spring je ispred Laravela ili Codeignitera

Postoje brojni prvoklasni frejmvorci za Javu, kao što su Spring, Jersey, Play i Spark (sjajan projekat, pogledajte ako niste). Spring je jasan izbor kada je potrebno razvijati kompleksne aplikacije.

Ako pogledate ogroman broj podržanih tehnologija i izvanredan kvalitet dokumentacije Springa biće vam jasno da je Spring daleko ispred Laravela i sve manje aktuelnog CodeIgnitera.

Odsustvo izvanrednog frejmvorka uporedivog sa Springom smatram najvećim neuspehom PHP zajednice. Ovih dana čak i mali veb startapi zahtevaju više od čistog ORM-a i MVC-a.

Frejmvorci kao organizacijski alati

Kako organizacije rastu tako frejmvorci postaju sve kritičnija karika u lancu razvoja softvera. Dobro definisani, naširoko korišćeni i dobro dokumentovani frejmvorci poput Springa su ključni za rastuće organizacije zato što im dozvoljavaju da usvoje zajednički set standarda za razvoj.

Naše iskustvo je da smo uspeli da on-boardujemo čak i diplomce ili PHP inženjere tako da su bili produktivni uz sjajne rezultate sa Javom za manje od dva meseca, uz naše interne treninge i posebnu “boot” aplikaciju za Spring.

Nijedan PHP inženjer nije povređen tokom ovog procesa!

Na kraju moram da kažem da se nijedna odluka ove vrste ne može doneti bez razmišljanja o inženjerima; utoliko pre od strane nekoga poput mene ko i sam svaki dan piše kod. Kada sam objavio novost učinio sam kristalno jasnim to da će svi PHP inženjeri biti glatko prebačeni na Javu.

Ujedno sam i savršeno siguran da svaki pojedinačni inženjer u organizaciji može da lako obavi tu tranziciju pošto inače ne bismo ni bili zajedno u timu.

Programerske platforme su samo alati, i sjajni inženjeri lako mogu da izaberu najbolji alat za posao pred njima. Pitanje nije toliko da li je PHP bolji od Jave, već pre to koji je najbolji alat za nas u Bal Labu za ovu fazu naše evolucije.