I linguaggi di programmazione "personalizzabili" sono ampiamente utilizzati rispetto a quelli non "personalizzabili"?

1

Le lingue sono molto personalizzabili, come Python (vedi ad esempio goto in Python , leggero controllo del tipo di Python ) e Javascript (vedi jQuery per un esempio di questo) più ampiamente usato rispetto alle lingue che non possono essere personalizzate molto?

    
posta Abbafei 18.03.2011 - 03:30
fonte

4 risposte

1

Queste lingue sono adatte per la prototipazione rapida e per piccoli progetti. Quindi sono popolari nello sviluppo web. Ma in un grande progetto, l'uso di tali lingue aumenta solo la complessità. Perché non puoi mai essere sicuro del tipo con cui stai lavorando in una determinata porzione di codice.

    
risposta data 18.03.2011 - 23:38
fonte
0

I linguaggi personalizzabili sono ampiamente usati, possono o non possono essere. Ma sicuramente resteranno in giro per molto tempo.

Il concetto di sopravvivenza è un termine chiamato "evoluzione". Non puoi mai risolvere i problemi che potresti affrontare in futuro proprio ora. Ci sono molte ragioni per questo. Penso che sia fondamentalmente perché non possiamo anticipare quali problemi potremmo cercare di risolvere in futuro. Non sappiamo nemmeno che tipo di problema saranno. Non sappiamo quanto saranno complessi. Quindi l'unico modo per garantire la sopravvivenza a lungo termine è aprire la porta per "Estensibilità". Ci sono molte lingue che aprono le porte all '"estensibilità". Il modo in cui aprono le porte per l'estensibilità è diverso.

Penso che parli dal punto di vista di un semplice laico. La maggior parte delle persone confonde le librerie e le trucchi di sintassi esistenti come estensibilità. Che non è vero La famiglia di lingue Lisp dispone di macro per risolvere questo problema, è possibile creare facilmente una piega DSL ed estendere la lingua nel modo desiderato. Tuttavia, il costo che si paga è scrivere la lingua in una sintassi omoiconica, che spesso non va giù con molte persone.

Nell'arena dei linguaggi di scripting, Perl sta emergendo come linguaggio molto estensibile e personalizzabile in questi giorni. Moduli come Devel :: Declare, Moose, Moosex :: 'sugar', Try :: Tiny e altri stanno rendendo l'estensibilità del linguaggio molto semplice. Questo è il vero aspetto della personalizzazione e dell'estensibilità. Perl 6 è più personalizzabile nei termini in cui la grammatica stessa è modificabile !!! Il vantaggio di questo genere di cose se dopo qualche tempo si arriva a conoscere qualcosa di più potente e migliore si può fare con più potenza e sintassi alternativa si può facilmente farlo senza rovinare il core dell'interprete e rompere la compatibilità all'indietro. Dopo tutto è solo un plugin di sintassi, sarà lì finché ne avrai bisogno. Poi, quando arrivano le nuove cose, puoi passare alle sole modifiche al codice che sono istruzioni di importazione. Questo tipo di linguaggi si bloccheranno per molto tempo perché combinano potenza, flessibilità e rapidità di sviluppo in un unico ombrello, essendo allo stesso tempo estensibili ed evolutivi.

D'altra parte puoi vedere chiaramente cosa succede quando un tale livello di estensibilità è assente. La sintassi diventa molto fragile, qualsiasi cosa tu provi a fare per cambiarla rompe la compatibilità all'indietro e mantenere la grammatica e farla crescere nel tempo richiede molto tempo. C ++ e Java sono testimoni di queste cose. Seguiranno presto molti altri linguaggi di scripting.

Python è un ottimo linguaggio nel senso che è semplice, facilmente leggibile e mantenibile. Ma è difficilmente personalizzabile ed estensibile nel "senso vero". I suoi poteri si trovano altrove. È facile da imparare e alcuni ottimi framework web sono là fuori per aiutare le persone che stanno pianificando di diventare grandi in quella zona.

Le lingue estendibili e personalizzabili potrebbero non essere ampiamente utilizzate, ma dureranno sicuramente a lungo.

    
risposta data 18.03.2011 - 04:09
fonte
0

Non sono sicuro che un linguaggio di programmazione possa essere "personalizzabile" nel senso pieno di quella parola. Quello di cui parli ha più a che fare con le caratteristiche offerte da una lingua e se queste sono abbastanza "potenti" da permetterti di emulare cose da altre lingue. Quindi per chiedere se questa categoria vaga è più popolare dell'alternativa.

Bene, dal momento che C ++, Java e il resto del genere C / Simula sono i più popolari, suppongo che la risposta sia no. Il che non vuol dire che quelle lingue non abbiano abilità simili in alcuni aspetti, ma quei linguaggi dinamici tendono a renderlo un po 'più facile da estendere con nuove funzionalità. Allo stesso modo, mentre Python, Ruby e altri linguaggi dinamici sono molto popolari nello spazio web, il linguaggio MOST estensibile, Lisp, continua ad avere all'incirca la stessa popolarità relativa che ha sempre avuto.

Per essere chiari, penso che molte idee sbagliate stiano fluttuando nelle altre risposte. Un linguaggio non deve essere dinamico o pericoloso per essere estensibile. Haskell è probabilmente la lingua più potente di cui sono a conoscenza, oltre al Lisp, e anche il linguaggio più tipizzato. La combinazione di Haskell di programmazione funzionale con tipizzazione dedotta e generica significa che le funzioni possono essere molto generali ma anche tempo di compilazione imposta per tipi corretti e utilizzo sicuro. Essere in grado di configurare un goto in Python è accurato, o usare il metodo-concatenamento per agire come un mini-linguaggio in JQuery è davvero intelligente, ma in un linguaggio abbastanza potente non hai nemmeno bisogno di quei costrutti.

    
risposta data 18.03.2011 - 23:56
fonte
0

Il Lisp è probabilmente il linguaggio di programmazione mainstream più "personalizzabile" disponibile - utilizzando macro, è possibile modificare completamente la sintassi e aggiungere funzionalità linguistiche. Dai un'occhiata a Common Lisp - è stato standardizzato nel 1984 e da allora ha aggiunto un sistema avanzato orientato agli oggetti ( CLOS ) insieme a innumerevoli altre funzioni principali e secondarie. Java, d'altra parte, è quasi "non personalizzabile" come si può ottenere - non si ha altra scelta che usare la sua particolare forma di programmazione orientata agli oggetti e come tale (non si ottiene nemmeno un sovraccarico dell'operatore) . Se vuoi una funzione linguistica, devi incrociare le dita e aspettare anni per la prossima versione della lingua che verrà fuori.

Ora, guarda l' indice TIOBE . Java è classificato come la lingua numero 1, mentre tutti i dialetti lisp insieme si classificano come numero 15. Dopo Java sono C, C ++ e C #, tutti altamente non personalizzabili.

Quindi no, le lingue personalizzabili non sono più popolari.

(1) Suppongo che intenda qualcosa sulla falsariga del supporto per metaprogramming e altri modi per estendere il linguaggio. Python non è particolarmente personalizzabile in questo senso.

    
risposta data 18.03.2011 - 23:59
fonte

Leggi altre domande sui tag