Scripter o programmatore?

Giovedì 29 Gennaio 2009 - 10:02

di Cesare Lamanna

Scripting

Ehmmm… non vorrei scatenare una guerra, con tutta sincerità vi assicuro che fino a due giorni fa ignoravo che potesse essere argomento di flame o cose simili :). Esiste o non esiste una differenza di fondo tra linguaggi di scripting e linguaggi di programmazione? E se sì, quel è? È addirittura possibilire stabilire delle gerarchie?

Due giorni fa, infatti, ho letto questo post con cui Jeff Atwood riprendeva le considerazioni svolte da Larry Wall (il creatore di Perl) in un vecchio intervento intitolato “Programming is Hard, Let’s Go Scripting“.

Aggiungo solo il commento di Simon Willison…

Che tristezza! Non posso credere che la falsa distinzione tra “scripting” e “programmazione” sia ancora oggetto di discussione.

…e vi passo la palla.

Tags:

Categoria: Scripting | Permalink

Commenti

1

Secondo me la scatenerai ;)
Comunque io mi sento entrambe le cose. Fino a due anni fa, forse, poteva esserci una distinzione e una categoria si credeva superiore all’altra… ma ora, gli scripter, grazie a MooTools,JQuery e compagnia bella, hanno imparato a creare architetture sofisticate e object oriented e non si limitano piu a controllare ’se il campo è vuoto o è una data corretta ;) ‘ …

Il concetto di classi, di estensioni, di layout, i pattern MVC largamente diffuso, ora porta a un nuovo ilvello di perfezione gli sviluppatori e a un’integrazione e fusione del termine scripter in programmatore e viceversa.

Nunzio

# - postato da Nunzio Fiore - 29 Gennaio 2009 - 11:09

2

Scripter da l’idea di qualcosa di più semplice, anche se non lo è proprio..

In finale la differenza sostanziale è che negli script manca la fase di compilazione, e questo li rende più immediati (teoricamente), e forse nel collettivo più semplici.. Io mi considero Sviluppatore, e sono contento :)

# - postato da lloyd27 - 29 Gennaio 2009 - 11:17

3

Una volta - tanti anni fa - i linguaggi di programmazione erano compilati e i linguaggi di scripting erano interpretati.

Oggi mi sembra che la differnza tra compilazione e interpretazione non è più così tanto importante.
Infine, dal punto di vista funzionale, non vedo differenze tra programma e script.

# - postato da Xavier - 29 Gennaio 2009 - 11:20

4

La differenza è praticamente nulla, anche se in realtà i linguaggi di programmazione hanno sempre introdotto nuovi concetti (vedi OOP) che poco dopo sono stati implementati anche da quelli di scripting.

Non credo che sia un argomento di troppa rilevanza.

# - postato da Luca - 29 Gennaio 2009 - 11:39

5

A mio parere la differenza non esiste già da tempo.

# - postato da Mike - 29 Gennaio 2009 - 11:52

6

Beh, allora si potrebbe aggiungere anche la figura del coder di markup ….

# - postato da Antonio - 29 Gennaio 2009 - 13:21

7

La differenza c’è e come, ma non è la stessa differenza che passa da programma a script.

Non è che se il mio codice va compilato allora sono più figo del tuo che viene eseguito in runtime!

La differenza tra le 2 categorie va presa sotto l’occhio del linguaggio ad alto o a basso livello.

Spiego per chi non lo sappesse: Più il livello è basso e più è difficile poiché richiede un conoscienza del funzionamento della macchina più approfondita.

In questo contesto però (se ho capito bene), si “etichetta” con scripter tutti coloro che si limitano ad usare il linguaggio con le sue funzioni “base” senza sfruttare al massimo il suo potenziale.

Prendendo come esempio javascript, si può essere programmatori o scripter di questo linguaggio anche se rimane a tutti gli effetti soltanto uno script. C’è chi si limita a far aprire un pop-up, e chi ci ha costruito un framework come mootools o JQuery.

Penso sia questa la differenza

# - postato da MetalSho - 29 Gennaio 2009 - 18:54

8

Se devo rispondere a bruciapelo, io direi che proprio uguali non sono.
Tuttavia ci tante sfumature di entrambe le figure che si interscambiano tranquillamente, mentre altre sfumature le differenziano di anni luce.

Bella discussione, ma è difficile esaurirla in pochi commenti :)

# - postato da Luigi - 29 Gennaio 2009 - 18:56

9

Developer level One:

String oop= req.getParameter(”oop”);
User user = new User(oop);
if (user.isGeek())
hash.put(user.getId(),user);
else
user.dispose();

Developer level two:

try{

User user = new User(req.getParameter(”oop”));
user.isGeek() ? hash.put(user.getId(),user); : user.dispose();
} catch(GeekException e){
e.printStackTrace();
}

——————————————

Scripter level one:

function isNull(nomeForm){

if (nomeForm.nome.value==null)
return true;
if (nomeForm.nome.value==”")
return true;

return false;
}

Scripter level twp:

var FormChecker = new Class({
‘version’: ‘0.0.2′,

Implements: [Events, Options],

options: {
id: ‘’,
form:'’,
mandatory:null,
},

initialize: function(options) {

this.setOptions(options);
this.id = this.options.id;
this.form = this.options.form;
this.mandatory = this.options.mandatory;
this.hash = new Hash();
},

someElsIsNull: function(){
var check = false;
mandatory.each(function(elem, index){
check = check || $defined(elem.get(’value’));
if (check)
this.hash.include(el.id,el);
}.bind(this));
return this.hash;
}

});

var formCheck = new FormCheck({”id”:”checker”,”form”:$(’myForm’),”mandatory”:[$(’nome’),$(’cognome’)]});
var checkHash = formCheck.someElsIsNull();

—————–
D1=doh
D2=Uhu
S1=doh
S2=uhu
D2+S2=Rock’n Roll Baby

# - postato da Nunzio Fiore - 29 Gennaio 2009 - 20:42

10

un bravo sviluppatore sa sia programmare che creare script. :)

# - postato da Paolo - 29 Gennaio 2009 - 20:46

11

java è interpretato quindi la compilazione o interpretazione non c’entra.
A mio avviso la differenza non c’è: un linguaggio di scripting è pensato per essere efficace anche in un utilizzo elementare (vedi un pop up di javascript) ma cio non toglie che lo si possa usare in maniera articolata per creare prodotti complessi; un linguaggio di programmazione è pensato per essere efficace se utilizzato in maniera complessa ma cio non toglie che lo si posso sare in manierea elementare (vedi una printf di “hello word… ma a che servirebbe?). La differenza è forse solo il target a cui è rivolto e quindi è fatta dagli utilizzatori ma a livello tecnico non c’è.

# - postato da fasgiu - 30 Gennaio 2009 - 08:37

12

A mio parere una differenza c’è, ma non è tanto sostanziale esteriormente, bensì interiormente. Quello che voglio dire è che usando una qualsiasi tecnologia di scripting, quale sia anche python o perl, non si fa altro che istruire in qualche modo l’interprete, che a sua volta permetterà il dialogo con la macchina. Con la programmazione “vera e propria” invece, la creazione di codice che va perfettamente a diventare codice macchina, il chè richiede un approccio leggermente diverso da parte del programmatore. Questo magari è venuto a mancare con i nuovi linguaggi di alto livello. Se pensiamo al linguaggio ASM, o più semplicemente al caro C/C++, linguaggio principe della programmazione, e lo mettiamo a confronto con un linguaggio di scripting, veniamo subito a dei riscontri: fondamentalmente il C permette di avere un controllo molto più profondo a livello diretto con la memoria, e persino il BIOS. Questo è chiaramente un pro, ma anche un contro perchè ci vuole abilità del programmatore. Nello scripting invece, anche se parte di tutto ciò è possibile, di norma ci si deve preoccupare sempre meno della gestione della memoria o di altri aspetti. Il punto dove voglio arrivare è che, comunque, anche se ormai la differenza è molto ma molto sottile, in linea di massima c’è sempre. (A mio parere :-))

Saluti,
Francesco

# - postato da P. Francesco - 30 Gennaio 2009 - 09:46

13

Una volta mi è stato insegnato che un linguaggio di programmazione è un linguaggio autosufficiente, nel senso che ha tutto quello che serve per creare programmi pienamente operativi (non importa se interpretato o compilato, se ad alto o a basso livello).
Un linguaggio di scripting è un linguaggio che può soltanto manipolare le risorse messe a disposizione dall’ambiente che lo “ospita” (un browser, un’applicazione, un server web, ecc.).
Oggi credo che la differenza sia molto meno marcata.
Ad esempio, C# o VB.NET sono considerati linguaggi di programmazione, ma a rigore non sono così autosufficienti in quanto non fanno altro che manipolare classi e risorse messe a disposizione dal .NET Framework.
Diciamo che la tendenza attuale è di avvicinare i linguaggi di programmazione sempre più verso lo scripting.

# - postato da Andrea - 31 Gennaio 2009 - 17:42

14

La distinzione programmatore / scripter è accademica e poco utile. Sarebbe meglio orientarsi sempre più a sviluppare codici con la massima portabilità! Codici che possano girare su piattaforme e sistemi diversi. Quindi sempre più difficile un approccio con linguaggi di basso livello…

# - postato da Logico - 01 Febbraio 2009 - 22:12

Inserisci il tuo commento:





(puoi usare i seguenti tag HTML per formattare il testo -
a href, b, i, br/, p, strong, em, ul, ol, li, blockquote, pre):

 

Anteprima del commento