Devo me preocupar em aprender sobre idiomas pequenos ou de nicho? [fechadas]

22

Se você pesquisar as perguntas sobre códigos de golfe no StackExchange , verá uma tonelada de idiomas não padronizados, mas do mundo real (por exemplo, não brain-f * ck) como F # , Scala , R , J e Clojure . Visitando seus sites, alguns dos idiomas parecem interessantes para solucionar problemas em qualquer idioma que você já esteja usando.

No entanto, há codificação no tempo livre e codificação por dinheiro. A coisa mais próxima que temos da verdade sobre quem usa um idioma é o Índice TIOBE , que lista nenhum dos idiomas acima nos 10 a 15 principais. O que me faz pensar se vou usá-los.

Eu deveria me preocupar em aprender alguns dos pequenos idiomas de nicho? Não parece que eu estaria ganhando dinheiro, e alguns provavelmente irão falhar de qualquer maneira.

TheLQ
fonte
4
Se você só gosta de ganhar dinheiro, por que está fazendo essa pergunta?
ChaosPandion
4
F # é uma linguagem de primeira classe a partir do VS2010. Eu não diria que não é padrão e acho que ganhará ampla adoção em breve.
Brian R. Bondy
8
Se tudo o que você quer é apenas ganhar dinheiro, é melhor ficar de fora da programação. Que tal se tornar uma atriz popular?
usar o seguinte comando
2
@TheLQ: Você quer ser mainstream? Você tem medo de dar qualquer passo que não sabe quanto dinheiro trará antes de fazê-lo? Então, por favor, também esteja satisfeito com o pagamento convencional. Isso é tudo o que você terá com sua mentalidade, se é que o fará.
Ingo
1
Alguns idiomas de nicho podem torná-lo mais produtivo, permitindo ganhar mais dinheiro do que os idiomas comuns.
Giorgio

Respostas:

25

A hipótese de Sapir-Whorf . Afirma, mais ou menos, que o que você pode pensar é limitado pelo que você tem o idioma para descrever. A conseqüência disso é que as pessoas multilíngues são capazes de pensar de maneiras que os falantes de um único idioma podem não ser capazes.

Muitas pessoas (inclusive eu) acham que isso também se aplica à programação. O aprendizado do Lisp, por exemplo, ensina uma maneira totalmente nova de pensar sobre os problemas que você pode aplicar ao C # ou Java ou Python. Quanto mais paradigmas de linguagem você aprendeu, mais ferramentas estarão em sua caixa de ferramentas mental, independentemente do idioma que você está realmente usando.

Fishtoaster
fonte
1
Exatamente. Por exemplo, acho que, em algumas situações, uma linguagem puramente funcional simplesmente não é suficiente. No entanto, eu constantemente me pego usando conceitos funcionais em linguagens que suportam programação funcional (por exemplo, javascript, c ++ 0x, etc).
Cam
4
Estou divertido que as pessoas continuem usando a hipótese de Sapir-Whorf (em grande parte, embora não totalmente desacreditada em Lingüística) como analogia. Eu definitivamente concordo com o sentimento em relação à programação, mas acho que é melhor encontrar uma analogia diferente se quisermos que as pessoas nos levem a sério.
Jonathan Sterling
1
Não acredito na hipótese, caso contrário, nunca teríamos ido além dos grunhidos. Da mesma forma para a programação, não pense que as pessoas são limitadas pela linguagem.
John Smith
24

Eu aprenderia qualquer linguagem que me apresentasse conceitos e paradigmas que nunca vi antes. Foi por isso que aprendi haskell e esquema - eles me apresentaram a programação de funções e a programação principalmente funcional, respectivamente. Eu não teria me importado menos se o esquema e o haskell fossem amplamente usados, além de como isso afetaria a documentação e os recursos disponíveis.

Então, basicamente, se uma pequena linguagem de nicho lhe apresentar novos conceitos e paradigmas (especialmente aqueles que você pode aplicar a outras línguas), aprenda!

Outras razões pelas quais você pode querer aprender um idioma 'pequeno / de nicho':

  • O idioma permite que você resolva um problema específico (tipo de) 'melhor' (mais rápido, com uma solução melhor, mais portável, etc.) do que qualquer outro idioma

  • O idioma permite que você resolva problemas tão bem quanto um idioma popular, mas possui alguns recursos interessantes que você gosta (por exemplo, clojure)

  • Você quer ajudar a desenvolver a linguagem
Cam
fonte
7

Bem, eu estou usando o Clojure (um dos "idiomas de nicho" que você mencionou) e descobri que foi uma experiência muito interessante.

  • Isso me tornou muito mais produtivo (vs. Java e C # que eu costumava usar anteriormente). Como administro meu próprio negócio, a produtividade é igual a dinheiro :-). Nesse sentido, Clojure já conseguiu, pelo menos da minha perspectiva.
  • Aprendi novas técnicas que me tornaram um desenvolvedor melhor (principalmente em relação à concorrência, programação funcional, abstração, metaprogramação etc.). Mesmo se eu voltasse a escrever Java, ainda poderia fazer bom uso desse conhecimento
  • Foi realmente agradável aprender um novo idioma muito diferente de tudo o que fiz antes. Se você realmente gosta do que faz, vale a pena por si só.
  • Por ser uma linguagem JVM, não importa se o conjunto de bibliotecas é relativamente pequeno porque você ainda obtém acesso a todo o conjunto de bibliotecas no ecossistema Java / JVM. Essa é uma grande vantagem para idiomas executados na JVM (o mesmo se aplica ao Scala)

Pessoalmente, prestaria atenção limitada a coisas como TIOBE - elas realmente não dizem muito além do que era popular no passado. Útil, talvez, se você deseja um emprego mantendo sistemas antigos, menos se deseja aprender e ampliar seus horizontes.

Mikera
fonte
4

O motivo de estudar um idioma de nicho raramente é a expectativa de que você o use diretamente (por dinheiro ou de outra forma). Geralmente é para aprender algum novo aspecto ou estilo de programação. Isso provavelmente o tornará um programador melhor (e sim, provavelmente mais valioso), mesmo que você nunca use essa linguagem para produzir código de "produção".

Jerry Coffin
fonte
4

Falando como desenvolvedor profissional em um idioma de nicho , é possível ganhar a vida. Existem vantagens e desvantagens, no entanto.

Coisas que são mais difíceis:

  • Encontrar um emprego leva mais tempo
  • É mais provável que os trabalhos exijam a mudança
  • Você terá pouco respeito dos programadores convencionais (e, portanto, mais resistência).

Coisas que são mais fáceis:

  • O pequeno grupo de programadores facilita a competição por empregos
  • Você pode conhecer todos os programadores importantes em seu campo
  • Desenvolver uma reputação é mais fácil do que no mainstream

Coisas que apenas são :

  • O salário tende a ser mais variável, pois existem poucos padrões
  • Muito tempo é gasto em educar os outros sobre os pontos fortes e fracos do seu nicho

No geral, se uma carreira é sua preocupação, você nunca deve ser um pônei de um truque, mainstream ou nicho.

Joe Z
fonte
2

Atualmente, estou aprendendo Ruby usando-o para resolver problemas do Project Euler , apenas porque passo a maior parte do dia programando em C ou PHP (e algumas vezes em C #) e quero ampliar meus horizontes. Até agora, isso realmente abriu meus olhos para o que pode ser feito. Mesmo que nunca o use para qualquer trabalho "real", acredito que o tempo gasto aprendendo sobre ele valerá a pena.

tcrosley
fonte
+1 para o euler do projeto. Eu fiz o mesmo, enquanto eu estava aprendendo python
1

Concorde com todos os pontos mencionados. Outra motivação para aprender um idioma de nicho é a possibilidade de que um dia se torne muito popular. Nessa situação, seu investimento inicial no idioma pode fornecer pistas para o trabalho em estruturas influentes e elementos do idioma que possam estar em alta demanda no futuro.

Se o idioma se tornar popular, você já estará qualificado e, portanto, estará em alta demanda.

Baixa probabilidade, recompensas potencialmente altas.

MM01
fonte
2
Pessoalmente, sempre tentarei aprender conceitos em vez de idiomas ... espaço limitado no cérebro, se você entende o que quero dizer.
ChaosPandion
1

Como outros já disseram, aprender um idioma de nicho apenas porque é um idioma de nicho não faz muito sentido. Muitas vezes, porém, as linguagens de nicho exploram um conceito mais / mais profundamente do que as linguagens convencionais podem ou querem.

E, às vezes, os idiomas de nicho já existem há muito, muito mais tempo do que qualquer um dos idiomas principais - os idiomas Smalltalk, Prolog e Lisp saltam à mente. Eles podem não ser populares, mas também não estão desaparecendo.

Frank Shearar
fonte