Sollte ich mir die Mühe machen, etwas über kleine oder Nischensprachen zu lernen? [geschlossen]

22

Wenn Sie die Code-Golf-Fragen auf StackExchange durchsuchen , werden Sie eine Menge nicht standardmäßiger, aber realer Sprachen (z. B. keine Hirn-F * Ck-Sprachen) wie F # , Scala , R , J und Clojure bemerken . Wenn Sie ihre Websites besuchen, sehen einige der Sprachen interessant aus, um Probleme in einer beliebigen Sprache zu lösen, die Sie bereits verwenden.

Es gibt jedoch Kodierung in der Freizeit und Kodierung für Geld. Das, was der Wahrheit, die eine Sprache verwendet, am nächsten kommt, ist der TIOBE-Index , der keine der oben genannten Sprachen in den Top 10-15 auflistet. Was mich wundert, ob ich sie jemals benutzen werde.

Sollte ich mir überhaupt die Mühe machen, einige der kleinen Nischensprachen zu lernen? Es scheint nicht, dass ich Geld verdienen würde, und einige werden wahrscheinlich trotzdem scheitern.

TheLQ
quelle
4
Wenn Sie nur Geld verdienen möchten, warum stellen Sie diese Frage?
ChaosPandion
4
F # ist ab VS2010 eine erstklassige Sprache. Ich würde nicht sagen, dass es nicht dem Standard entspricht, und ich denke, es wird bald breite Akzeptanz finden.
Brian R. Bondy
8
Wenn Sie nur Geld verdienen möchten, sollten Sie sich von der Programmierung fernhalten. Wie wäre es, eine beliebte Schauspielerin zu werden?
P Shved
2
@TheLQ: Du willst Mainstream sein? Sie befürchten, irgendeinen Schritt zu unternehmen, von dem Sie nicht wissen, wie viel Geld das bringen wird, bevor Sie es tun? Dann geben Sie sich bitte auch mit dem Mainstreamgehalt zufrieden. Das ist alles, was Sie jemals mit Ihrer Mentalität bekommen werden, wenn überhaupt.
Ingo
1
Einige Nischensprachen könnten Sie produktiver machen und Ihnen so mehr Geld einbringen als die gängigen Sprachen.
Giorgio

Antworten:

25

Die Sapir-Whorf-Hypothese . Es besagt mehr oder weniger, dass das, woran Sie denken können, durch die Sprache, die Sie beschreiben können, begrenzt ist. Dies hat zur Folge, dass mehrsprachige Menschen in der Lage sind, auf eine Weise zu denken, die einsprachige Sprecher möglicherweise nicht können.

Viele Leute (ich eingeschlossen) denken, dass dies auch für die Programmierung gilt. Wenn Sie zum Beispiel Lisp lernen, lernen Sie eine völlig neue Art, über Probleme nachzudenken, die Sie auf C #, Java oder Python anwenden können. Je mehr Sprachparadigmen Sie gelernt haben, desto mehr Werkzeuge befinden sich in Ihrer mentalen Toolbox, unabhängig davon, welche Sprache Sie tatsächlich verwenden.

Fischtoaster
quelle
1
Genau. Zum Beispiel finde ich, dass in manchen Situationen eine rein funktionale Sprache einfach nicht ausreicht. Ich finde mich jedoch ständig dabei, funktionale Konzepte in Sprachen einzubringen, die funktionale Programmierung unterstützen (z. B. Javascript, c ++ 0x usw.).
Cam
4
Ich bin amüsiert darüber, dass die Leute weiterhin die Sapir-Whorf-Hypothese (die in der Linguistik größtenteils, wenn auch nicht völlig diskreditiert ist) als Analogie verwenden. Ich stimme dem Gefühl in Bezug auf die Programmierung definitiv zu, aber ich denke, dass eine andere Analogie besser gefunden werden sollte, wenn wir wollen, dass die Leute uns ernst nehmen.
Jonathan Sterling
1
Ich glaube der Hypothese nicht, sonst wären wir nie über das Grunzen hinausgegangen. Denken Sie auch beim Programmieren nicht, dass die Leute durch die Sprache eingeschränkt sind.
John Smith
24

Ich würde jede Sprache lernen, die mich mit Konzepten und Paradigmen vertraut macht, die ich noch nie gesehen habe. Das ist der Grund, warum ich haskell und scheme gelernt habe - sie haben mich in die Funktionsprogrammierung bzw. die meist funktionale Programmierung eingeführt. Ich hätte mich nicht weniger darum gekümmert, ob Schema und Haskell weit verbreitet waren, abgesehen davon, wie sich dies auf die verfügbaren Dokumentationen und Ressourcen auswirken würde.

Also im Grunde, wenn eine kleine Nische Sprache , die Sie neue Konzepte eingeführt und Paradigmen (vor allem denjenigen , die Sie in anderen Sprachen anwenden können), dann lernen , weg!

Andere Gründe, warum Sie eine 'kleine / Nischen'-Sprache lernen möchten:

  • Mit dieser Sprache können Sie ein bestimmtes (typisches) Problem "besser" lösen (schneller, mit einer besseren Lösung, portabler usw.) als mit jeder anderen Sprache

  • Mit der Sprache können Sie Probleme genauso gut lösen wie mit einer gängigen Sprache, aber sie hat einige coole Funktionen, die Ihnen gefallen (z. B. Clojure).

  • Sie möchten helfen, die Sprache zu entwickeln
Nocken
quelle
7

Nun, ich benutze Clojure (eine der "Nischensprachen", die Sie erwähnen) und fand, dass es eine sehr lohnende Erfahrung war.

  • Es hat mich viel produktiver gemacht (im Vergleich zu Java und C #, die ich vorher hauptsächlich verwendet habe). Da ich mein eigenes Geschäft führe, ist Produktivität gleich Geld :-) In diesem Sinne ist Clojure zumindest aus meiner Sicht bereits erfolgreich.
  • Ich habe neue Techniken gelernt, die mich zu einem besseren Entwickler gemacht haben (insbesondere in Bezug auf Parallelität, funktionale Programmierung, Abstraktion, Metaprogrammierung usw.). Selbst wenn ich wieder Java schreiben würde, könnte ich dieses Wissen gut gebrauchen
  • Es hat wirklich Spaß gemacht, eine andere Sprache zu lernen als alles, was ich zuvor getan habe. Wenn Ihnen das, was Sie tun, tatsächlich Spaß macht, lohnt es sich für sich.
  • Da es sich um eine JVM-Sprache handelt, spielt es keine Rolle, ob der Bibliotheksbestand relativ klein ist, da Sie weiterhin Zugriff auf den gesamten Bibliotheksbestand im Java / JVM-Ökosystem erhalten. Dies ist ein großer Vorteil für Sprachen, die auf der JVM ausgeführt werden (dasselbe gilt für Scala).

Ich persönlich schenke Dingen wie TIOBE nur begrenzte Aufmerksamkeit - sie erzählen nicht wirklich viel über das hinaus, was in der Vergangenheit populär war. Nützlich, wenn Sie alte Systeme warten möchten, weniger, wenn Sie lernen und Ihren Horizont erweitern möchten.

mikera
quelle
4

Der Grund, eine Nischensprache zu lernen, ist selten die Erwartung, dass Sie sie direkt verwenden (für Geld oder auf andere Weise). In der Regel geht es darum, einen neuen Aspekt oder Programmierstil zu erlernen. Dies macht Sie wahrscheinlich zu einem besseren (und ja, wahrscheinlich wertvolleren) Programmierer, selbst wenn Sie diese Sprache niemals verwenden, um "Produktions" -Code zu erstellen.

Jerry Sarg
quelle
4

Als professioneller Entwickler in einer Nischensprache zu sprechen , ist es möglich, seinen Lebensunterhalt zu verdienen. Es gibt jedoch Vor- und Nachteile.

Dinge, die schwerer sind:

  • Einen Job zu finden dauert länger
  • Jobs erfordern mit größerer Wahrscheinlichkeit einen Umzug
  • Sie werden von den Mainstream-Programmierern wenig Respekt bekommen (und daher mehr Widerstand).

Dinge die einfacher sind:

  • Der kleine Pool an Programmierern erleichtert den Wettbewerb um Jobs
  • Sie können jeden Programmierer von Bedeutung auf Ihrem Gebiet kennen
  • Einen guten Ruf aufzubauen ist einfacher als im Mainstream

Dinge, die einfach sind :

  • Die Bezahlung ist tendenziell variabler, da es nur wenige Standards gibt
  • Es wird viel Zeit darauf verwendet, andere über Stärken und Schwächen Ihrer Nische aufzuklären

Wenn eine Karriere Ihr Anliegen ist, sollten Sie niemals ein One-Trick-Pony, ein Mainstream oder eine Nische sein.

Joe Z
quelle
2

Momentan lerne ich Ruby, indem ich es zur Lösung von Project Euler- Problemen verwende, nur weil ich den größten Teil meines Programmiertages in C oder PHP (und manchmal in C #) verbringe und meinen Horizont erweitern möchte. Bisher hat es mir wirklich die Augen geöffnet, was getan werden kann. Auch wenn ich es nie für eine "echte" Arbeit verwende, glaube ich, dass sich die aufgewendete Zeit zum Lernen lohnen wird.

Tcrosley
quelle
+1 für Projekt Euler. Ich habe dasselbe gemacht, während ich Python lernte
1

Stimmen Sie allen genannten Punkten zu. Eine weitere Motivation für das Erlernen einer Nischensprache ist die Möglichkeit, dass die Sprache eines Tages sehr beliebt wird. In dieser Situation kann Ihre frühe Investition in die Sprache dazu führen, dass Sie an einflussreichen Frameworks und Elementen der Sprache arbeiten, die in Zukunft möglicherweise stark nachgefragt werden.

Wenn die Sprache populär wird, sind Sie bereits in der Lage, sie zu beherrschen, und daher sind Sie sehr gefragt.

Geringe Wahrscheinlichkeit, möglicherweise hohe Belohnungen.

MM01
quelle
2
Persönlich werde ich immer versuchen, Konzepte anstatt Sprachen zu lernen ... begrenzter Hirnraum, wenn Sie wissen, was ich meine.
ChaosPandion
1

Wie andere beinahe gesagt haben, macht es wenig Sinn, eine Nischensprache zu lernen, nur weil es eine Nischensprache ist. Oft erforschen Nischensprachen ein Konzept jedoch weiter oder tiefer, als es sich Mainstream-Sprachen leisten können oder wollen.

Und manchmal gibt es Nischensprachen, die viel länger sind als alle gängigen Sprachen - Smalltalk, Prolog und die Lisp-Sprachen. Sie mögen nicht beliebt sein, aber sie verschwinden auch nicht.

Frank Shearar
quelle