2018 yılında hala PHP öğrenmeye değer mi?

https://dev.to/mporam/is-php-relevant–1np

Dev.to platformunda Mike Oram tarafından yayınlanan “Is PHP relevant?” adlı yazının Türkçe çevirisidir.

Bana akademisyenler, iş başvurusu yapanlar hatta diğer geliştiriciler tarafından en sık sorulan sorulardan biri “Neden PHP öğretiyorsun?” hatta bazen “PHP ölü bir dil değil mi?” sorusudur.

En başından bu konuda gayet açık olayım. PHP ÖLÜ BİR DİL DEĞİLDİR.

2017 yılının aralık ayında, PHP internette server tarafında kullanılan programlama dillerinin %83’ünü oluşturuyordu. Bu sonucu PHP tabanlı WordPress gibi içerik yönetim sistemlerine borçluyuz, ama bu hazır içerik yönetim sistemlerini bu orandan çıkarsak dahi, PHP web’in %54’ünden fazlasına güç vermekte. Zaten, aşağıdaki grafiğe bakarsanız, PHP’nin market payı 2017 yılında gayet tutarlıymış hatta artış göstermiş.


Eylül ayında ‘IT endüstrisi için uygun’ yetenek ve teknolojiler hakkında bir blog yazısı yazmıştım. O blog yazısını yazdığım sırada, PHP ve Javascript iş pazarında açık ara aranan özelliklerdendi. Hala da böyledir. Tesadüfi olmayan bir şekilde, akademide en çok vakit ayırdığımız iki dil de PHP ve JavaScript’tir.

Şimdi, yeni programcılara en çok öğretilen diğer dillerin kullanım istatistiklerine bir göz atalım. Üniversiteler Java veya C’ye odaklanmaya yatkınlar. Bunun sonucunda bir çok girişim uygulamalarını bu dilleri kullanarak geliştirmekte. Tüm bu çabaların sonucunda Java server tarafındaki uygulamaların %2.5’una güç veriyor. C hiç bir yerde görülmemekle beraber, bazen üniversitelerde öğretilen ASP.NET %14.2 oranına ulaşabilmiş. Programlama workshoplarında en popüler olan Python, Ruby veya sunucu tabanlı JavaScript dillerinin hepsini birden topladığımıza, internettin sadece %1.2’sine güç verebilmişler. Sunucu taraflı JavaScript (node.js) en hızlı artan sunucu taraflı teknoloji olmasına rağmen halen az kullanılıyor ancak tabiiki öğrenilmeli. (Biz akademik takvimimizde Node.js öğretmeye 1 hafta ayırıyoruz)

Techrepublic kısa bir zaman önce 2018 yılında öğrenilmesi gereken “top” dilleri sıraladığı, PHP ve JavaScipt’in ilk 6 ya girdiği, PHP’nin 2017 yılında 9’unculuktan 6’ncılığa yükseldiği bir makale yayınladı.

Peki neden bir sürü kişi PHP’nin uygunsuz ya da ölü bir dil olduğunu iddia ediyor?

Bunun, benim gördüğüm iki ana nedeni var. Birincisi, bu geliştiriciler arasında dolaşıp duran bir söylentiden ibaret. PHP, ilk zamanlarında görece olarak yavaş, nereye gittiği belli olmayan ve bir sürü tutarsızlığa sahip bir dildi. Yıllar boyunca PHP bayağı bir gelişti, hatta 2009 yılında 5.3 sürümünün yayınlanmasından beri, eski şikayetlerin çoğu düzeltildi. En son sürüm (7.1) son derece hızlı, modern ve güçlü bir şekilde nesne yönelimliliğe odaklanan bir dildir.

İkincisi, PHP esnek ve “loosely typed” yani kesin tür belirtilmemiş bir dildir. Bu, metin editörünü açıp hızlı yazılım geliştirmeye olanak verse de, kolayca kötü kod üretmeye de yol açmakta. Yani kendi başarısının bir kurbanı olduğunu söyleyebilirsiniz. Ancak, düzgün bir şekil yazıldığında, ve DRY, SOLID ve MVC gibi (bizim de akademide öğrettiğimiz) metodolojiler kullanıldığında, PHP gerçekten güçlü, iyi bir çeşitliliğe sahip, bir çok şeyleri sunabilecek hızlı bir dildir.

Yani, PHP ölmedi. Her dilde olduğu gibi kendine özgü kusurları olsa da, bırakalım istatistikler bizim yerimize bu iddialara cevap versin.

Software development is fucked up.

Software development is crazy. Learning to a new technology is nightmare. There are plenty of new technologies and software libraries (React, Progressive Web Apps) flattered by companies unable to innovate because of their huge size, hiearchy and arrogance. A beginner who wants to learn newest development practices would be depressed due to information overload and cognitive dissonance of absurd technology production.

Big tech giants never care about inovation, ethics or social responsibility. A company is an institution to increase profits of owners (top %1). None of the companies want or promote change. Change is uncertainity and mostly resolves to decrease of profits. Tasks given to developers aim to protect current product and accepts no change. In a big company, if a person unveil the curtain over the epidemic idiocy is a trouble maker, he or she could get fired, mobbed, or shut up and be alienated to their own production.

Idiocy is epidemic, questioning is a sin. Why the fuck there gazillions of unlearnable libraries doing same thing and reinventing the wheel? Consider you want to create a little web app. Where you should start? They say to learn Fancy JavaScript MVC MVV MVVX etc. libraries or PHP frameworks. Let’s start with React. Despite it’s evil and fucking best practices arrogantly it’s everywhere. All tutorials are about React. You want to start to learn from a starter kit. here: https://github.com/kriasoft/react-starter-kit


What the hell are all the other things written there. Node.js, Express, GraphQL, React.js, Babel 6, PostCSS, Webpack, Browsersync Are you fucking crazy? And you tell “Complex web apps made easy” You are just dictating your own workflow and and laziness. The fucking documentation does not say any word about purpose or use cases, who will use? A library you created is tightly coupled with other libraries and downloading billions of libraries into your “node_components” folder, without even asking you.

A fucking app is “a self-contained program or piece of software designed to fulfil a particular purpose; an application, especially as downloaded by a user to a mobile device.” (Oxford 2015) A fucking purpose! A user! Not to masturbate and ejaculate your genius around the web. You have one job, you write software for people, accomplish their one need, not to solve all the fucking problems on the earth for everyone.

Do one thing, at one time, be fucking modest and solve a fucking problem.