Cosa guida l'adozione, o meno, dei nuovi linguaggi di programmazione? [chiuso]

12

Mi piacerebbe davvero concentrarmi sul perché alcuni nuovi linguaggi di programmazione sono adottati nel mainstream e altri rimangono relativamente di nicchia. Mi piacerebbe sapere cose come casi d'uso specifici, compatibilità con le versioni precedenti o alcune nuove funzionalità, difficoltà di implementazione semplice o complessa. Esempi specifici sarebbero apprezzati, ma non lasciamoci prendere dall'esatta definizione di "mainstream" o "nicchia" qui.

    
posta DeadMG 10.07.2011 - 23:05
fonte

5 risposte

18

Se qualcuno lo sapesse davvero, sarebbero persone molto ricche.

Detto questo, ecco la mia ipotesi:

Disponibilità

BASIC è un linguaggio piccolo e terribile fornito con (tutti?) i PC quando sono usciti per la prima volta. L'Apple II (il computer predefinito per molte scuole superiori) e l'ATARI 400/800 (il primo computer di casa super economico) sono entrambi forniti con BASIC.

Se avessi una macchina UNIX (sistema AT & T V o Berkeley) avevi C. Se volevi programmare la macchina, è quello che dovevi usare.

EDIT : con l'avvento e l'ubiquità della rete, questo requisito si trasforma in:

  1. Quante distribuzioni Linux impacchettano una copia recente e quanto bene la mantengono aggiornata? Le librerie di terze parti sono disponibili per l'installazione?
  2. Si installa facilmente in Windows (XP | Vista | 7,8 ...)?
  3. Le piattaforme Mac / iOS sono coperte?
  4. Può essere installato senza problemi su Unix legacy?
  5. E una volta installato, quanto è facile accedere alle librerie di terze parti e può essere aggiornato facilmente?

Facilità di transizione

Java è un buon esempio qui. Se conoscessi la programmazione in C, Java non era un salto molto avanti, eppure forniva molte delle funzionalità di cui C mancava e C ++ non era in grado di fornire in modo pulito.

C ++ per ovvi motivi è stato un facile passo avanti da C, ed è stato facile vendere alla gestione come un "migliorato" C. Il C ++ ha avuto il vantaggio di essere compatibile con la maggior parte del codice C legacy esistente.

Perl era una fusione di C, awk, sed e altre utilità Unix in un unico pacchetto. Prima della sua apparizione, la maggior parte dell'amministrazione del sistema veniva eseguita tramite script di shell che incollavano tutto insieme in modo insoddisfacente. Portare tutto sotto un unico processo con le strutture dati e il controllo di un linguaggio simile a C è stata una manna dal cielo.

Riempie un bisogno

C è decollato perché ti ha permesso di produrre efficienze da vicino al montaggio senza impantanarti nel mondo di assemblaggio specifico per le macchine, difficile da gestire.

FORTRAN è decollato perché ha consentito di tradurre facilmente le idee matematiche in codice senza dover perdersi nei dettagli della macchina.

Allo stesso modo per LISP e manipolazione simbolica.

Python nasce dall'esigenza di un Perl "migliore". (Sono di parte qui, quindi non dirò di più.)

PHP era essenzialmente il BASIC per il web - era installato di default su molti server web, ed era facile hackerare insieme qualcosa di utile velocemente.

Advocacy, base utente, codice contribuito

Ammettiamolo, Haskell non sarebbe popolare tanto quanto lo è per un linguaggio non in produzione se non fosse per l'instancabile difesa dei suoi sviluppatori e della base di utenti.

Molte lingue hanno un culto della personalità dietro il creatore / i della lingua, e tutti noi sappiamo chi sono.

FORTRAN ha serie enormi di codice matematico stabilito e controllato; lo stesso per Java e per i sistemi web / system-integration / MVC; lo stesso per Perl e CPAN; uguale per T E X e gestione dei documenti; ecc.

Il Fattore

Per qualche motivo alcune lingue sembrano avere la giusta quantità di nuove , con un cenno sufficiente al vecchio , con un modo che sembra facile o necessario. Cioè, fa il suo caso. E chi sa come succede?

Ad ogni modo, questa è la mia ipotesi migliore per capire perché alcuni lo fanno. Per quanto riguarda il motivo per cui alcuni non ... beh, se non soddisfano i criteri di cui sopra, questo è probabilmente il motivo per cui hanno fallito.

    
risposta data 10.07.2011 - 23:41
fonte
11

Le lingue diventano popolari perché hanno un vantaggio rispetto alle lingue esistenti in un'area che è necessaria.

Java

  • Gestione automatica della memoria (confronta con C ++ e C)
  • Lingua / API incorporate in Threading
  • Viene eseguito su una macchina virtuale (ciò significa che gli sviluppatori possono utilizzare Windows su macchine di sviluppo per testare e distribuire l'applicazione senza modifiche su Linux / Unix).
  • La programmazione di rete è molto più semplice rispetto ai linguaggi più popolari (C ++ e C) e Java è stato rilasciato quando Internet ha iniziato ad essere popolare.

PHP

  • Semplificato lo sviluppo web
  • Supporto integrato per la connessione ai database MySQL
  • Non è necessaria alcuna compilazione ed è stato facile includere gli script direttamente nei file HTML.

JavaScript

  • La solo lingua per i browser web.
  • I browser Web sono sempre più utilizzati come thin client (applicazioni Web).
  • Codice mobile: facile da implementare e nessuna installazione

Objective-C

  • La lingua per l'ambiente Mac OS X e iPhone. E iPhone ha avuto un enorme successo.

Rubino

  • Insieme a Ruby on Rails - un framework web, reso molto più semplice lo sviluppo web su larga scala con MVC.

C #

  • La lingua per gli ambienti Windows negli ultimi dieci anni. Quasi tutte le API Microsoft sono facili da usare con C # e.g. Winforms e WPF e WCF.

ActionScript

  • La lingua solo per Addobe Flash / Flex, che ha avuto un enorme successo per i contenuti multimediali su Internet e cose che JavaScript non è stato in grado di gestire.

Erlang

  • Concorrenza e amp; Tolleranza ai guasti - Erlang disponeva di un modello unico per realizzare sistemi di tolleranza agli errori di concorrenza e strutture. Iniziato per essere utile per il settore delle telecomunicazioni, in seguito open source e ottenere interesse da grandi aziende di Internet che hanno anche bisogno di tolleranza d'errore.
risposta data 10.07.2011 - 23:36
fonte
5

Sarò cinico: denaro e in arrivo, marketing.

Non è un caso che C # sia supportato da Microsoft, Java da Oracle e Objective C di Apple. Solo Google's Go non è stato davvero revocato finora.

Ovviamente i soldi non sono l'unica ragione, ma avere delle tasche profonde aiuta sicuramente a mettere la tua lingua sul mercato.

    
risposta data 11.07.2011 - 09:29
fonte
3

Da un lato è il marketing, più precisamente presentazioni, blog, ecc. È importante avere caratteristiche che i programmatori mainstream possano riguardare e vedere i benefici rispetto a ciò che sanno (Java vs. C ++ - garbage collector vs. gestione della memoria). Ultimo, ma non meno importante, avere una bassa barriera di accesso: esempi, buone documentazioni, installazione senza interruzioni, buona comunità e supporto, sviluppo vivace.

    
risposta data 10.07.2011 - 23:20
fonte
1

Quasi tutte le lingue avevano programmi di risoluzione dei problemi non banali, reali, scritti usando molto presto nella loro vita.

Unix è stato scritto in C, quindi erano gli strumenti su Unix, quando C era molto giovane e in continua evoluzione.

Anaconda (il programma di installazione di RedHat) è stato scritto in Python quando Python era giovane e non aveva la popolarità di oggi.

Questi sono ciò che posso ricordare in modo offensivo. Questo elenco potrebbe toccare ciascuna delle lingue che è sopravvissuta agli anni della sua formazione.

Quindi, l'adozione su larga scala nelle università può aiutare la longevità di una lingua. Java è molto popolare nelle università come lingua di insegnamento. In una certa misura, Lisp e i dialetti di Lisp godono anche di questo stato.

    
risposta data 11.07.2011 - 01:39
fonte

Leggi altre domande sui tag