Dovrei preoccuparmi di imparare su lingue piccole o di nicchia? [chiuso]

21

Se sfogli le domande sul codice golf su StackExchange , noti una tonnellata di non standard ma reale (ad es. non brain-f * ck) lingue come F # , Scala , R , J e Clojure . Visitando i loro siti web, alcune delle lingue sembrano interessanti problemi di risoluzione in qualsiasi lingua sia già in uso.

Tuttavia c'è del codice nel tempo libero e nella codifica per soldi. La cosa più vicina alla verità su chi usa una lingua è l' indice TIOBE , che non elenca nessuna delle lingue sopra elencate nei primi 10-15. Il che mi fa chiedere se li userò mai.

Dovrei anche preoccuparmi di imparare alcune delle piccole lingue di nicchia? Non sembra che farei soldi, e alcuni probabilmente falliranno comunque.

    
posta TheLQ 12.09.2010 - 18:10
fonte

8 risposte

25

Ipotesi di Sapir-Whorf . Si afferma, più o meno, che ciò che si può pensare è limitato da ciò che si ha il linguaggio da descrivere. La conseguenza di ciò è che le persone multi-lingue sono in grado di pensare in modi che i parlanti di una sola lingua potrebbero non essere in grado di fare.

Molte persone (me compreso) ritengono che ciò sia vero anche per la programmazione. Learning Lisp, ad esempio, ti insegna un modo completamente nuovo di pensare ai problemi che puoi applicare a C # o Java o Python. Più paradigmi linguistici hai appreso, più strumenti saranno nella tua casella degli strumenti mentali, indipendentemente dalla lingua che stai effettivamente utilizzando.

    
risposta data 12.09.2010 - 18:34
fonte
24

Imparerei qualsiasi linguaggio che mi introduca a concetti e paradigmi che non ho mai visto prima. Ecco perché ho imparato haskell e schema - mi hanno introdotto rispettivamente alla programmazione delle funzioni e alla programmazione per lo più funzionale. Non mi sarebbe importato di meno se lo schema e l'haskell fossero ampiamente usati, a parte il modo in cui ciò avrebbe influito sulla documentazione e le risorse disponibili.

In pratica, se un linguaggio di nicchia ti introduce a nuovi concetti e paradigmi (in particolare quelli che puoi applicare ad altre lingue), quindi impara!

Per altri motivi potresti voler imparare una lingua "piccola / di nicchia":

  • Il linguaggio ti permette di risolvere un particolare (tipo di) problema "migliore" (più veloce, con una soluzione migliore, più portabile, ecc.) rispetto a qualsiasi altra lingua

  • Il linguaggio ti consente di risolvere problemi altrettanto bene quanto un linguaggio popolare, ma ha alcune funzioni interessanti che ti piacciono (ad esempio clojure)

  • Vuoi aiutare a sviluppare la lingua
risposta data 12.09.2010 - 18:16
fonte
7

Bene, sto usando Clojure (una delle "lingue di nicchia" che citi) e ho scoperto che è stata un'esperienza molto utile.

  • Mi ha reso molto più produttivo (rispetto a Java e C # che ho utilizzato principalmente in precedenza). Mentre gestisco la mia attività, la produttività è uguale a :-), quindi in questo senso Clojure è già riuscita, almeno dal mio punto di vista.
  • Ho appreso nuove tecniche che mi hanno reso uno sviluppatore migliore (in particolare sulla concorrenza, la programmazione funzionale, l'astrazione, la metaprogrammazione, ecc.). Anche se tornassi a scrivere Java, potrei comunque fare buon uso di questa conoscenza
  • È stato davvero piacevole imparare una nuova lingua molto diversa da qualsiasi altra cosa che ho fatto prima. Se ti piace davvero quello che fai, ne vale la pena.
  • Poiché si tratta di una lingua JVM, non importa se il set di librerie è relativamente piccolo perché si ottiene comunque l'accesso all'intero set di librerie nell'ecosistema Java / JVM. Questo è un vantaggio grande per le lingue che girano sulla JVM (lo stesso vale per Scala)

Personalmente, presterei poca attenzione a cose come TIOBE - in realtà non ti dicono molto oltre ciò che è stato popolare in passato. Utile forse se vuoi un lavoro mantenendo i vecchi sistemi, meno se vuoi imparare e ampliare i tuoi orizzonti.

    
risposta data 10.06.2011 - 02:34
fonte
4

La ragione per studiare una lingua di nicchia è raramente l'aspettativa che la userai direttamente (per soldi o altro). Di solito è per imparare qualche nuovo aspetto o stile di programmazione. È probabile che questo ti renda un programmatore migliore (e sì, probabilmente più prezioso), anche se non usi mai quel linguaggio per produrre codice "di produzione".

    
risposta data 12.09.2010 - 18:18
fonte
4

Parlando come sviluppatore professionista in una lingua di nicchia , è possibile guadagnarsi da vivere Ci sono aspetti positivi e negativi, però.

Le cose più difficili:

  • La ricerca di un lavoro richiede più tempo
  • È più probabile che i lavori ti richiedano di spostare
  • Avrai poco rispetto dai programmatori tradizionali (e quindi, maggiore resistenza).

Le cose più facili:

  • Il piccolo pool di programmatori fa competere per lavori più facili
  • Puoi conoscere ogni programmatore di significato nel tuo campo
  • Sviluppare una reputazione è più facile che nel mainstream

Cose che sono :

  • Pay tende ad essere più variabile, dal momento che ci sono pochi standard
  • Viene dedicato molto tempo alla formazione degli altri sui punti di forza e di debolezza della tua nicchia

Nel complesso, se la tua carriera è la tua preoccupazione, non dovresti mai essere un pony one-trick, mainstream o di nicchia.

    
risposta data 20.09.2010 - 05:08
fonte
2

Attualmente sto imparando Ruby usandolo per risolvere i problemi Project Euler , solo perché trascorro gran parte della mia giornata di programmazione in C o in PHP (e talvolta C #) e voglio allargare i miei orizzonti. Finora mi ha davvero aperto gli occhi su cosa si può fare. Anche se non lo uso mai per un lavoro "reale", ritengo che valga la pena dedicare del tempo a scoprirlo.

    
risposta data 18.09.2010 - 02:19
fonte
1

Concorda con tutti i punti citati. Un'altra motivazione per l'apprendimento di una lingua di nicchia è la possibilità che la lingua diventerà un giorno molto popolare. In questa situazione, il tuo investimento iniziale nella lingua potrebbe darti dei lead nel lavoro su strutture influenti e elementi del linguaggio che potrebbero essere molto richiesti in futuro.

Se la lingua diventa popolare, ne avrai già una buona conoscenza e quindi la domanda sarà molto alta.

Probabilità bassa, premi potenzialmente alti.

    
risposta data 12.09.2010 - 19:02
fonte
1

Come altri hanno quasi detto, imparare una lingua di nicchia solo perché è una lingua di nicchia non ha molto senso. Spesso, però, le lingue di nicchia esplorano un concetto più approfondito / più profondo di quanto le lingue tradizionali possano permettersi o desiderare.

E a volte le lingue di nicchia sono state molto più lunghe di tutte le lingue tradizionali - Smalltalk, Prolog e le lingue Lisp ti vengono in mente. Potrebbero non essere popolari, ma non stanno neanche scomparendo.

    
risposta data 17.09.2010 - 21:38
fonte

Leggi altre domande sui tag