Jeśli przeglądasz pytania dotyczące kodu golfowego na StackExchange , zauważysz mnóstwo niestandardowych, ale rzeczywistych języków (np. Nie dla f * ck) takich jak F # , Scala , R , J i Clojure . Odwiedzając ich witryny, niektóre języki wyglądają interesująco, rozwiązując problemy w dowolnym języku, którego już używasz.
Jednak kodowanie odbywa się w wolnym czasie, a kodowanie dla pieniędzy. Prawdą, która nam najbardziej odpowiada na temat tego, kto używa języka, jest Indeks TIOBE , który nie wymienia żadnego z powyższych języków w pierwszej dziesiątce. Co mnie zastanawia, czy kiedykolwiek ich użyję.
Czy powinienem nawet zadać sobie trud nauki niektórych małych języków niszowych? Nie wydaje mi się, że zarabiałbym pieniądze, a niektóre i tak prawdopodobnie poniosą porażkę.
źródło
Odpowiedzi:
Hipoteza Sapira-Whorfa . Mówi mniej więcej, że to, o czym możesz myśleć, jest ograniczone tym, co znasz język. Konsekwencją tego jest to, że ludzie wielojęzyczni są w stanie myśleć w sposób, którego nie potrafią mówić osoby posługujące się jednym językiem.
Wiele osób (w tym ja) uważa, że dotyczy to również programowania. Na przykład nauka Lisp uczy zupełnie nowego sposobu myślenia o problemach, które możesz zastosować do C #, Java lub Python. Im więcej paradygmatów językowych nauczyłeś się, tym więcej narzędzi będzie w twoim mentalnym zestawie narzędzi, niezależnie od tego, jakiego języka faktycznie używasz.
źródło
Nauczyłbym się każdego języka, który wprowadza mnie w koncepcje i paradygmaty, których nigdy wcześniej nie widziałem. Właśnie dlatego nauczyłem się haskell i schematu - wprowadzili mnie odpowiednio do programowania funkcji i programowania głównie funkcjonalnego. Nie przejmowałbym się mniej, czy schemat i haskell były szeroko stosowane, poza tym, jak wpłynęłoby to na dostępną dokumentację i zasoby.
Zasadniczo, jeśli mały niszowy język zapozna Cię z nowymi koncepcjami i paradygmatami (zwłaszcza tymi, które możesz zastosować w innych językach), to ucz się dalej!
Inne powody, dla których możesz chcieć nauczyć się „małego / niszowego” języka:
Język pozwala lepiej „rozwiązać” konkretny (rodzaj) problemu (szybciej, z lepszym rozwiązaniem, bardziej przenośnie itp.) Niż jakikolwiek inny język
Język pozwala rozwiązywać problemy tak samo jak popularny język, ale ma kilka fajnych funkcji, które lubisz (np. Clojure)
źródło
Używam Clojure (jednego z „języków niszowych”, o którym wspominasz) i odkryłem, że było to bardzo wartościowe doświadczenie.
Osobiście zwracałbym ograniczoną uwagę na takie rzeczy, jak TIOBE - tak naprawdę nie mówią zbyt wiele poza tym, co było popularne w przeszłości. Przydatne może, jeśli chcesz utrzymać pracę przy starych systemach, a mniej, jeśli chcesz się uczyć i poszerzać swoje horyzonty.
źródło
Powodem do nauki niszowego języka jest rzadko oczekiwanie, że użyjesz go bezpośrednio (dla pieniędzy lub w inny sposób). Zwykle jest to nauka nowego aspektu lub stylu programowania. Takie postępowanie może uczynić cię lepszym (i tak, prawdopodobnie bardziej wartościowym) programistą, nawet jeśli nigdy nie używasz tego języka do tworzenia kodu „produkcyjnego”.
źródło
Mówiąc jako profesjonalny programista w niszowym języku , można zarabiać na życie. Są jednak wady i zalety.
Rzeczy trudniejsze:
Rzeczy, które są łatwiejsze:
Rzeczy, które są po prostu :
Ogólnie rzecz biorąc, jeśli twoją karierą jest twoja troska, nigdy nie powinieneś być kucykiem, głównym nurtem ani niszą.
źródło
Obecnie uczę się Ruby, używając go do rozwiązywania problemów z Project Euler , tylko dlatego, że większość dnia spędzam na programowaniu w C lub PHP (a czasem C #) i chcę poszerzyć swoje horyzonty. Jak dotąd naprawdę otworzyłem oczy na to, co można zrobić. Nawet jeśli nigdy nie wykorzystam go do jakiejkolwiek „prawdziwej” pracy, uważam, że czas poświęcony na naukę o tym się opłaci.
źródło
Zgadzam się ze wszystkimi wymienionymi punktami. Kolejną motywacją do nauki języka niszowego jest możliwość, że pewnego dnia język ten stanie się bardzo popularny. W tej sytuacji Twoja wczesna inwestycja w język może dać ci wskazówki do pracy nad wpływowymi ramami i elementami języka, które mogą być bardzo poszukiwane w przyszłości.
Jeśli język stanie się popularny, będziesz już w nim biegły, a zatem będziesz bardzo poszukiwany.
Niskie prawdopodobieństwo, potencjalnie wysokie nagrody.
źródło
Jak już powiedzieli inni, nauka języka niszowego tylko dlatego, że jest to język niszowy, nie ma większego sensu. Często jednak języki niszowe zgłębiają koncepcję głębiej / głębiej niż języki głównego nurtu mogą sobie pozwolić lub chcą.
A czasami języki niszowe istniały daleko, znacznie dłużej niż którykolwiek z głównych języków - na myśl przychodzą języki Smalltalk, Prolog i Lisp. Mogą nie być popularne, ale też nie znikają.
źródło