Utilizzare il potenziale di un linguaggio di programmazione

2008-12-16 | Tags: , , ,

La volta scorsa ho affrontato il discorso del risolvere un problema in maniera logica, affidandosi cioè al ragionamento ed alla soluzione dei problemi in maniera rigorosa, per mezzo di processi logici e non semplicemente facendo codice come se in trans.

Purtuttavia, non basta semplicemente essere delle menti brillanti (anche se aiuta molto in questo lavoro), bisogna anche essere padroni del linguaggio di programmazione che poi si andrà ad utilizzare per realizzare il software. Solo in questo modo si avrà la possibilità di sfruttare il potenziale intrinseco del linguaggio; solo in questo modo si eviterà di perdere tempo a scrivere codice che fa esattamente quello che fa una funzione built-in del linguaggio.

In genere consiglio di concentrarsi su di un linguaggio, di impararlo bene e poi di passare ad altri. Diffida da chi dice di conoscere tanti linguaggio di programmazione, il più delle volte sa solo le cose basilari, ma è ben lontano dal conoscerlo veramente (ovviamente a volte ci sono delle eccezioni, ndr.)

Ad esempio, sfruttando tutto il potenziale di PHP, come è possibile implementare la funzione di cui parlavo la volta scorsa, quella per calcolare la somma di tutti i numeri interi compresi tra due interi?

Un metodo molto semplice è scriverla così com’è, e cioè:

Nulla da ridire nel fare in questo modo; d’altronde la funzione è già, molto probabilmente, il ragionamento matematico più rapido per arrivare alla soluzione, col minimo dispendio di energia.

Tuttavia, conoscendo la potenza di PHP si è in grado di arrivare allo stesso risultato con due semplici operazioni, che possono anche essere eseguite in un unica riga di codice; come un unico blocco di istruzione.

Ci sono due funzioni che, se opportunamente utilizzate, la prima è in grado di creare un array di valori compresi tra due interi (questi ultimi compresi). La seconda è capace di fare la somma di tutti i valori di un array. Stiamo parlando della funzione range() e della funzione array_sum().

Per eseguire la stessa operazione di cui sopra, utilizzando queste due funzioni built-in in PHP, scriveremo semplicemente:

Un risparmio in termine di codice, sicuramente.

Entrambi le soluzione sono eleganti: l’una dal punto di vista Matematico; l’altra dal punto di vista del Codice. Tuttavia, anche in questo caso, lo sviluppatore valuterà quali delle due bellezze deve avere la priorità.

La maturità di uno sviluppatore dovrebbe tenere in considerazione alcune cose. Fare una iterazione per valori che vanno da uno ad un milione, solo per sommare tali valori, sicuramente dovrebbe prediligere la bellezza Matematica. Mentre per valori intervalli relativamente trascurabili, la bellezza del Codice potrebbe risultare la migliore scelta; anche in funzione del numero di operazioni che il computer deve eseguire.

  1. 1 trackbacks
    1. 2008-12-16 - diggita.it