PHP ne vale la pena

PHP nel 2024 – Ne vale la pena? Pro e Contro

Molti vi risponderanno di no. Php è vecchio e fa schifo. Hanno ragione? Hanno torto? In questo articolo, voglio farvi ragionare un po’ su cosa significhi imparare un linguaggio di programmazione, e sul perchè sceglierne uno piuttosto che un altro.

Perchè imparare un nuovo linguaggio

Innanzi tutto, è importante chiedersi: perchè vorrei imparare un linguaggio di programmazione in particolare?

È perchè avete intenzione di affrontare un progetto in particolare? O perchè volete affinare il vostro curriculum con qualche parolona che suona un botto techie? O, magari, perchè avete puntato un’azienda che lavora con quello stack di linguaggi, e dovete impararne almeno uno. Molti di voi, probabilmente, ne vogliono imparare uno perchè si stanno addentrando solo ora nel mondo della programmazione professionale.

Ecco, in tutti questi casi, è importante investire il proprio tempo in qualcosa che valga la pena.

Per il curriculum

Sì, le aziende li vedono così i curricula.

In questo caso, ci sono un’infinità di scelte possibili, e – onestamente – vi dovreste concentrare su un solo linguaggio in particolare, magari uno di quelli che in questo momento specifico stuzzicano i genitali del mercato del lavoro.

Date un’occhiata su google, cercate “most requested programming languages” o roba del genere e starete a cavallo.

In generale, comunque, i linguaggi più richiesti:

  • Sono relativamente vecchi, e quindi richiedono un livello di expertise considerevole, o quanto meno una buona dose di ore investite nello studio convenzionale (almeno per un junior)

Oppure:

  • Sono relativamente giovani, e quindi non avranno una community sufficientemente sviluppata e, se ne hanno una, magari i problemi che sono sorti agli altri utenti non saranno proprio tutti quelli che sorgeranno a voi

Comunque, ad oggi, se vi butterete su Javascript, Python, Java, PHP e C/C++, non fareste un errore.

Per l’azienda che avete puntato

Esatto, le corporation sono, tutte, sostanzialmente così

In questo caso, c’è poco da fare. Date un’occhiata alle posizioni aperte e noterete che – generalmente – le aziende scrivono proprio sulle loro offerte di lavoro il linguaggio a cui sono interessate. Per la maggior parte, vengono ricercate figure junior, quindi se non credete di rientrare in questa categoria (a parte che non so perchè stiate leggendo questo articolo, in tal caso), dovreste semplicemente approfondire la vostra conoscenza del linguaggio che usate più di frequente e magari sviluppare qualche software da poter flexare al colloquio.

Se volete farvi inquadrare come junior, comunque, è una buona idea prepararvi per bene per un ipotetico colloquio tecnico per il linguaggio che serve all’azienda. Non studiate solo il linguaggio in generale, ma anche i frameworks e le librerie più utilizzate, per lo più vi serviranno quelle.

Comunque, anche in questo caso, i linguaggi su cui mi focalizzerei di più sono Python, Java, Javascript, C/C++ e PHP.

Vi state addentrando nel mondo della programmazione

Il setup a due schermi è fondamentale. E uno schermo è dedicato a YouTube.

Se state imparando solo ora, ci sono vari consigli dai quali potreste trarre qualche giovamento. Non piacere, solo giovamento. Già, la vita è una merda.

  • Imparate un po’ le basi: anzi, imparatele bene. In qualsiasi linguaggio vi vogliate addentrare, una volta imparate le basi, ve le porterete dietro per tutta la vita, in qualsiasi linguaggio. Un po’ come per… beh, in realtà, tutto il resto delle cose al mondo;
  • Studiate qualcosa che potete fare da soli: bello imparare a programmare in COBOL, o in BASIC. Ma le possibilità di sviluppare qualcosa di realmente utile è… scarsa, ad essere eufemistici. Buttatevi su Javascript e PHP, che con un po’ di HTML e CSS vi daranno un sacco di gioie. Oppure Python. Se avete anche un Raspberry Pi, ci potete fare i miracoli e togliervi un sacco di soddisfazioni.
  • Scrivete software: pare banale, ma non lo fa quasi nessuno. SCRIVETE SOFTWARE! Non serve che sia il nuovo TikTok o le nuove DirectX, va bene anche un calendario o un software per prendere appunti. O una di quelle figate di The Coding Train (o roba simile). O qualsiasi altra cosa. Scrivere un programma completo è sempre un’ottimo esercizio, e imparerete di più così che a fare gli esercizi o a vedere un tutorial.

E insomma… PHP?

Eh… insomma, PHP.

Esatto, è un elefante

Beh che dire di PHP. È un elefante, proprio come il suo logo.

È vecchio, macchinoso, molte delle funzioni standard sono incongruenti e hanno nomi impronunciabili e impossibili da memorizzare.

È come una cassetta degli attrezzi, dove tutto sembra sbagliato. Cioè, magari c’è un martello, ma ha due punte. Certo, potete battere con il piatto della testa, ma le punte a che servono? Oppure delle pinze, ma solo quelle a pappagallo. Belle, per carità, anche utili, ma non sono proprio pinze.

Ecco, questo è quello che si prova a sviluppare in PHP, ma davvero finisce tutto qui?

I pro

Meglio questo, vero?
  • Si rinnova in continuazione: è vero che è vecchio, ma php è uno di quei linguaggi che vengono usati ancora oggi, tutti i giorni da milioni di sviluppatori in tutto il mondo. E questo fa sì che si rinnovi piuttosto in fretta. Gli aggiornamenti sono numerosi, veloci, e – quasi sempre, almeno – retro-compatibili.
  • Community: la community ha decine di anni, è espertissima e generalmente sempre aperta a dare consigli e aiutare i nuovi sviluppatori. StackOverflow è ricco di soluzioni, e le domande hanno risposte davvero veloci
  • La documentazione: è fantastica. La documentazione di PHP è pazzesca, ogni singola funzionalità è perfettamente documentata, con esempi e contributi della community. Se la paragonate a quella di jQuery, ad esempio, questa è un orgasmo. E quella di jQuery è una di quelle fatte meglio.
  • È molto utilizzato: anche se dire così è un po’ troppo poco. PHP è alla base del 77% dei siti web del pianeta1. Chances are che se volete cominciare a lavorare, all’inizio non entrerete nè in Google nè in Amazon nè in Meta. La maggior parte delle aziende, in un modo o nell’altro, avrà bisogno di un sito web convenzionale, HTML, CSS, js e PHP.
  • Velocità: anche se sembra strano, PHP è il linguaggio open-source più veloce. Non di tanto, ma sicuramente più di Python e di ASP. E, visto che viene usato per lo più per il web development, si può tranquillamente dire che è il più veloce in quell’ambito, a parte Java (ma davvero volete impelagarvi in JAVA??)

I contro

Dove non arrivano le stock, arriva l’ia
  • Fa schifo: è macchinoso, contorto, concettualmente vecchio e brutto da vedere scritto. Sembra sempre che qualcosa si stia rompendo sotto i vostri occhi, e probabilmente è così.
  • Non è stato progettato per l’OOP: e si vede, però c’è da dire che non lo sono stati neanche Java e C++. Però in PHP la programmazione a oggetti proprio non viene naturale. Almeno per me, ha tipi primitivi e tantissime funzioni sono chiaramente state sviluppate con la programmazione procedurale in mente.
  • È facilissimo produrre errori: può sembrare banale, ma questo è un rischio di sicurezza concreto. E, probabilmente, è dovuto al fatto che ha restrizioni meno stringenti di altri linguaggi (e quindi molti sviluppatori faranno molte cazzate, non necessariamente voi). Il codice php spazzatura è ovunque, anche in prodotti che dovrebbero essere ottimi.
  • Ti fa diventare matto: magari questo è solo un mio problema, ma perchè per comparare due stringhe usi strcmp e per comparare due sottostringhe substr_compare? Non potevano chiamarli con una sintassi simile? O il famoso problema dei needle and haystack2. Perchè non è sempre uguale e devo guardare ogni volta la documentazione per ricordarmi se in quella specifica funzione devo mettere prima il needle o lo haystack?

Conclusioni

Questa sarà la vostra faccia

Parliamoci chiari, PHP è un elefante, pesante, difficile da imparare e noioso nella sintassi, brutto e disordinato, incoerente e prono a errori, specialmente di sicurezza, è nato come linguaggio di templating e (onestamente) non è il massimo neanche a fare quello. Però, allo stesso tempo, questi difetti – per come la vedo io – possono anche essere pregi.

La difficoltà ad impararlo ti spinge ad approfondire le meccaniche della programmazione in generale, e la bruttezza e il disordine intrinseci ti portano ad organizzare per bene il codice (altrimenti non lo potresti leggere neanche tu). È nato come linguaggio di templating, e infatti si può usare benissimo per integrarsi facilmente con qualsiasi tipologia di documento (web e non, a differenza di quanto si possa pensare).

Lascia tantissime libertà allo sviluppatore che, poco dopo essersi addentrato nelle meccaniche del linguaggio, si accorgerà che deve fare le cose per bene, o rischierà ripercussioni dolorose. Questo lo spingerà a migliorarsi (o, per lo meno, si spera XD).

Nel complesso, apprendere un linguaggio come questo ha dei vantaggi innegabili, primo fra tutti il fatto che ti permetterà di metterti a lavoro subito, anche con progetti a basso budget, o in aziende dove farti le ossa. Inoltre, non dimentichiamo quello che abbiamo detto prima. È pur sempre il linguaggio più usato di internet, e la stragrande maggioranza delle API è REST in PHP, quindi a un certo punto della vostra vita vi ci dovrete interfacciare per forza.

In conclusione: SÌ, PHP vale la pena nel 2024, e credo che sarà così ancora per molto tempo.

  1. Fonte: https://w3techs.com/technologies/details/pl-php ↩︎
  2. needle e haystack sono i termini usati per indicare l’oggetto da cercare (needle) e l’oggetto in cui cercarlo (haystack) ↩︎