Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

JavaScript procedurale o OOP?

Link copiato negli appunti

Per chi proviene, come me, dalla programmazione OOP JavaScript può risultare per alcuni versi traumatico. Mancando di parole riservate come class, extends, private, public e protected ed essendo di fatto un linguaggio "class-free", JavaScript richiede un notevole sforzo per essere apprezzato come linguaggio OOP, o meglio, come linguaggio per lo meno basato sugli oggetti.

Ho iniziato la mia avventura scrivendo codice procedurale e solo dopo aver studiato a fondo numerosi manuali e tutorial (come JavaScript. The good parts di Douglas Crockford e Professional JavaScript for web developers di Nicholas Zakas, le cui idee sono di fatto confluite nella libreria YUI) sono migrato progressivamente verso un codice OOP.

Sinceramente, anche se riconosco gli indubbi vantaggi di un codice OOP, non mi sento di dover bollare come programmatori di serie B chi in JavaScript assume un approccio procedurale, e questo per diverse ragioni:

  • JavaScript conferisce un immenso potere alla proprietà  prototype. Per chi viene da un linguaggio OOP classico, questa proprietà  risulta difficile da comprendere, data la sua natura dinamica.
  • La bontà  del codice deriva in gran parte dal tipo di algoritmo usato. In tal senso, un algoritmo efficace può rendere un codice procedurale performante quasi quanto un codice OOP.
  • L'adozione di un approccio procedurale o OOP dovrebbe essere stabilita in base al tipo di progetto e alle caratteristiche che vi si vogliono aggiungere. Per esempio, se in un sito l'unico effetto che vogliamo ottenere è quello di avere le righe di tabella con colori alternati, usare un approccio OOP risulterebbe quanto meno ridondante

In sintesi, è sempre bene tenere a mente cosa vogliamo ottenere e come. Al limite, possiamo considerare l'approccio procedurale come propedeutico a quello OOP, ossia come una fase di transizione verso una migliore scrittura del codice. Sicuramente, dividere i due approcci in base ad una superiorità  dell'uno sull'altro porterebbe ad una nuova "guerra di religione" in cui non ci sarebbero né vinti né vincitori.

Ti consigliamo anche