it-swarm-pt.tech

Por que aprender Perl, Python, Ruby se a empresa está usando C ++, C # ou Java como a linguagem do aplicativo?

Gostaria de saber por que um C++, C #, Java quer aprender uma linguagem dinâmica?

Supondo que a empresa não mude sua principal linguagem de desenvolvimento de C++/C #/Java para uma dinâmica, que utilidade existe para uma linguagem dinâmica?

Que tarefas auxiliares podem ser executadas pelas linguagens dinâmicas mais rapidamente ou melhor após apenas alguns dias de aprendizado do que com a linguagem estática que você usa há vários anos?

Atualizar

Depois de ver as primeiras respostas, fica claro que existem dois problemas. Meu principal interesse seria algo justificável para o empregador como despesa. Ou seja, estou procurando justificativas para o empregador financiar o aprendizado de uma linguagem dinâmica. Além do óbvio que o funcionário terá uma visão mais ampla, os empregadores geralmente procuram algum benefício "real".

66
szabgab

Muitas vezes, surge uma tarefa rápida que não faz parte do software principal que você está desenvolvendo. Às vezes, a tarefa é única, ou seja, compare esse arquivo com o banco de dados e deixe-me saber as diferenças. É muito mais fácil fazer a análise de texto no Perl/Ruby/Python do que em Java ou C # (parcialmente porque é muito mais fácil usar expressões regulares). Provavelmente levará muito menos tempo para analisar o arquivo de texto usando Perl/Ruby/Python (ou talvez vbscript cringe e carregá-lo no banco de dados do que seria necessário para criar um programa Java/C # para faça ou faça à mão.

Além disso, devido à facilidade com que a maioria dos idiomas dinâmicos analisa o texto, eles são ótimos para geração de código. Certifique-se de que seu projeto final deve estar em C #/Java/Transact SQL, mas em vez de cortar e colar 100 vezes, encontrar erros e cortar e colar outras 100 vezes, muitas vezes (mas nem sempre) é mais fácil usar apenas um gerador de código.

Um exemplo recente no trabalho é que precisamos obter dados de um sistema contábil em nosso sistema contábil. O sistema tem um formato de importação, mas o sistema antigo tinha um formato completamente diferente (largura fixa, embora algumas coisas precisassem ser correspondidas). A tarefa não é criar um programa para migrar os dados repetidamente. É colocar os dados em nosso sistema e mantê-los no futuro. Portanto, mesmo sendo uma loja em C # e SQL Server, usei Python para converter os dados no formato que pode ser importado pelo nosso aplicativo. Por fim, não importa se eu usei python, é importante que os dados estejam no sistema. Meu chefe ficou bastante impressionado.

Onde muitas vezes vejo as linguagens dinâmicas usadas para o teste. É muito mais fácil criar um programa Python/Perl/Ruby para vincular a um serviço da Web e lançar alguns dados contra ele do que criar o programa Java equivalente. Você também pode usar python para acessar programas de linha de comando, gerar uma tonelada de dados de teste de lixo (mas ainda válidos), etc. com bastante facilidade.

A outra coisa em que as linguagens dinâmicas são grandes é a geração de código. Criando o código C #/C++/Java. Alguns exemplos a seguir:

A primeira tarefa de geração de código que vejo frequentemente são as pessoas que usam linguagens dinâmicas para manter constantes no sistema. Em vez de codificar manualmente várias enumerações, uma linguagem dinâmica pode ser usada para analisar facilmente um arquivo de texto e criar o código Java/C # com as enumerações.

O SQL é um jogo totalmente diferente, mas geralmente você obtém melhor desempenho cortando e colando 100 vezes, em vez de tentar executar uma função (devido ao cache de planos de execução ou ao colocar lógica complicada em uma função, fazendo com que você vá linha por linha em vez de em um conjunto). De fato, é bastante útil usar a definição de tabela para criar determinados procedimentos armazenados automaticamente.

É sempre melhor comprar um gerador de código. Mas mesmo se você não o fizer, é mais divertido gastar tempo cortando/colando ou é mais divertido criar um script Perl/Python/Ruby uma vez e depois gerar esse código? Se você levar horas para codificar manualmente algo, mas menos tempo para criar um gerador de código, mesmo que você o use depois de economizar tempo e, portanto, dinheiro. Se você demorar mais para criar um gerador de código do que o necessário para entregar o código uma vez, mas você sabe que precisará atualizá-lo mais de uma vez, ainda pode fazer sentido. Se você precisar de 2 horas para entregar o código, 4 horas para fazer o gerador, mas você sabe que precisará entregar o trabalho equivalente ao código outras 5 ou 6 vezes, do que obviamente é melhor criar o gerador.

Além disso, algumas coisas são mais fáceis com linguagens dinâmicas que Java/C #/C/C++. Em particular, expressões regulares vêm à mente. Se você começar a usar expressões regulares no Perl e perceber o valor delas, poderá repentinamente começar a usar a biblioteca de expressões regulares Java se ainda não o fez antes. Se você tiver, pode haver algo mais.

Vou deixar você com um último exemplo de uma tarefa que seria ótima para uma linguagem dinâmica. Meu colega de trabalho teve que pegar um diretório cheio de arquivos e gravá-los em vários CDs para vários clientes. Havia alguns clientes, mas muitos arquivos, e você tinha que procurá-los para ver o que eram. Ele fez essa tarefa manualmente ... Um programa Java/C # economizaria tempo, mas por uma vez e com toda a sobrecarga de desenvolvimento não vale a pena. No entanto, dar um tapa em algo juntos no Perl/Python/Ruby provavelmente valeria a pena. Ele passou várias horas fazendo isso. Levaria menos de um para criar o script Python para inspecionar cada arquivo, corresponder a qual cliente ele vai e depois mover o arquivo para o local apropriado ..... Novamente, não faz parte do trabalho padrão. Mas a tarefa surgiu como uma única. É melhor fazer você mesmo, gastar uma quantidade maior de tempo para fazer o Java/C # executar a tarefa ou gastar uma quantidade muito menor de tempo fazendo isso em Python/Perl/Ruby. Se você estiver usando C ou C++, o ponto é ainda mais dramático devido às preocupações extras da programação em C ou C++ (ponteiros, sem verificação de limites de matriz, etc.).

81
Cervo

Deixe-me virar sua pergunta de cabeça para baixo, perguntando qual é a utilidade de um falante de inglês americano para aprender outro idioma.

Os idiomas em que falamos (e aqueles em que programamos) informam a maneira como pensamos. Isso pode acontecer em um nível fundamental, como c ++ versus javascript versus LISP, ou em um nível de implementação, no qual uma construção Ruby fornece um momento eureka para uma solução em seu "trabalho real".

Falando em seu trabalho de verdade, se o mercado vai para o sul e seu empregador decide "dimensioná-lo", como você se compara a um cara que é flexível porque ele é um software escrito em dezenas de idiomas, em vez de seu número limitado exposição? Todas as coisas são iguais, acho que a resposta é clara.

Finalmente, você programa para viver porque adora programar ... certo?

21
Pete Michaud

Eu não acho que alguém tenha mencionado isso ainda. Aprender um novo idioma pode ser divertido! Certamente essa é uma razão suficientemente boa para tentar algo novo.

14
epochwolf

Eu principalmente programo em Java e C #, mas uso linguagens dinâmicas (Ruby/Perl) para oferecer suporte a uma implantação mais suave, iniciando tarefas do SO, relatórios automatizados, algumas análises de log etc.

Após um curto período de tempo aprendendo e experimentando Ruby ou Perl, você poderá escrever alguns scripts de manipulação de expressões regulares que podem alterar os formatos de dados ou obter informações dos logs. Um exemplo de um pequeno script Ruby/Perl que poderia ser escrito rapidamente seria um script para analisar um arquivo de log muito grande e relatar apenas alguns eventos de interesse em um formato legível por humanos ou em um formato csv.

Além disso, ter experiência com uma variedade de linguagens de programação diferentes deve ajudá-lo a pensar em novas maneiras de resolver problemas em linguagens mais estruturadas, como Java, C++ e C #.

9
Alex B

Um grande motivo para aprender Perl ou Ruby é ajudá-lo a automatizar qualquer tarefa complicada que você precise executar várias vezes.

Ou, se você precisar analisar o conteúdo dos arquivos de log e precisar de mais recursos do que os disponíveis usando grep, sed, etc.

Também usando outros idiomas, por exemplo Ruby, que não possui muito "custo de configuração", permitirá que você protótipo de ideias rapidamente antes de implementá-las em C++, Java etc.

HTH

felicidades,

Roubar

7
Rob Wells

Você espera trabalhar para esta empresa para sempre? Se você estiver sempre no mercado de trabalho, talvez alguns empregadores em potencial estejam cientes do paradoxo do Python .

5
Chris Upchurch

m bom jogador de hóquei joga onde está o Puck. Um grande jogador de hóquei joga onde o Puck estará. - Wayne Gretzky

Nossa indústria está sempre mudando. Nenhum idioma pode ser mainstream para sempre. Para mim, Java, C++, .Net é onde o Puck está agora. E python, Ruby, Perl é onde o Puck vai estar. Decida por si mesmo se você quer ser bom ou ótimo!

5
liangzan

Paul Graham publicou um artigo há vários anos sobre por que Python melhoraram Java. ( http://www.paulgraham.com/ pypar.html )

Basicamente, independentemente de o novo idioma ser relevante para a metodologia atual da empresa, aprender um novo idioma significa aprender novas idéias. Alguém que está disposto a aprender uma língua que não é considerada "classe executiva" significa que ele está interessado em programação, além de apenas receber um salário.

Para citar o site de Paulo:

E as pessoas não aprendem Python porque isso lhes dará um emprego; elas aprendem porque realmente gostam de programar e não estão satisfeitas com os idiomas que já conhecem).

O que os torna exatamente o tipo de programador que as empresas devem contratar. Daí o que, por falta de um nome melhor, chamarei o paradoxo Python: se uma empresa optar por escrever seu software em uma linguagem comparativamente esotérica, poderá contratar melhores programadores , porque eles atraem apenas aqueles que se importam o suficiente para aprender e, para os programadores, o paradoxo é ainda mais pronunciado: a linguagem a aprender, se você deseja conseguir um bom emprego, é uma linguagem que as pessoas não aprendem apenas a aprender. arrume um emprego.

Se um empregador estiver disposto a pagar pelo custo de aprender um novo idioma, é provável que as pessoas que se ofereceram para aprender (supondo que não seja uma aula obrigatória) sejam as mesmas que já estão no "caminho acelerado".

5
crystalattice

Quando eu aprendi Python pela primeira vez, trabalhei em uma loja Java. Ocasionalmente, eu teria que executar tarefas sérias de processamento de texto que eram muito mais fáceis de executar com scripts rápidos Python do que com programas Java. Por exemplo, se eu tivesse que analisar um arquivo CSV complexo e descobrir qual das suas linhas correspondia às do nosso banco de dados Oracle, isso seria muito mais fácil do que com o Java Python.

Mais do que isso, descobri que o aprendizado Python me fez um programador Java muito melhor; tendo aprendido muitos dos mesmos conceitos em outro idioma, sinto que os entendo muito melhor. E quanto ao que torna o Python mais fácil que o Java, você pode verificar esta pergunta: Java -> Python?

4
Eli Courtwright

Edit: Eu escrevi isso antes de ler a atualização da pergunta original. Veja minha outra resposta para obter uma resposta melhor à pergunta atualizada. Vou deixar isso como um aviso contra ser a arma mais rápida do oeste =)

Há mais de uma década, quando eu estava aprendendo as maneiras do Computador, os Velhos Sábios de Barba explicaram como C e C++ são as ferramentas da indústria. Ninguém usava Pascal e apenas os imprudentes arriscavam suas empresas com montadoras.

E, é claro, ninguém sequer mencionaria a coisa horrível e lenta e feia chamada Java. Não será uma ferramenta para negócios sérios.

Então. Hum. Substitua os idiomas na história acima e talvez você possa prever o futuro. Talvez você não possa. O ponto é: Java não será a última linguagem de programação de todos os tempos e você provavelmente também trocará de empregador. O futuro está cobrando 24 horas por dia. Prepare-se.

Aprender novos idiomas é bom para você. Além disso, em alguns casos, pode oferecer direitos de se gabar por um longo tempo. Meu primeiro curso universitário foi em Scheme. Então, quando as pessoas falam comigo sobre o novo idioma do dia , minha resposta é algo como "Funções de primeira classe? Isso é o século passado".

E, é claro, você obtém mais coisas feitas com uma linguagem de alto nível.

3
Antti Rasinen

Para responder à pergunta atualizada, é um problema de galinha/ovo. A melhor maneira de justificar uma despesa é mostrar como ela reduz um custo em outro lugar. Por isso, pode ser necessário gastar algum tempo extra/pessoal para aprender algo primeiro para criar algum tipo de protótipo funcional.

Mostre a seu chefe uma demonstração como "ei, eu fiz isso, e isso me poupa muito tempo [ou, melhor ainda, tanto quanto $$], imagine se todos pudessem usar isso quanto dinheiro economizaríamos"

e depois que eles concordarem, explique como é alguma outra tecnologia e que vale a pena gastar mais treinamento e treinamento para outras pessoas sobre como fazê-lo melhor.

2
John Gardner

Aprender um novo idioma é um processo de longo prazo. Em alguns dias, você aprenderá o básico, sim. Mas! Como você provavelmente sabe, a aplicabilidade prática real de qualquer idioma está ligada à biblioteca padrão e outros componentes disponíveis. Aprender a usar de maneira eficiente requer muita experiência prática.

Talvez o único benefício imediato a curto prazo seja que os desenvolvedores aprendam a distinguir as unhas que precisam de um martelo Python/Perl/Ruby. E, se forem úteis, poderão estudar um pouco mais (online, talvez!) E tornar-se verdadeiros especialistas.

Os benefícios a longo prazo são mais fáceis de imaginar:

  1. O funcionário se torna um desenvolvedor melhor. Melhor desenvolvedor => melhor qualidade. Vivemos hoje em uma economia do conhecimento. É mais sensato investir nos cérebros que já funcionam para você.

  2. É mais fácil se adaptar quando o próximo grande idioma surgir. É muito provável que o NBL tenha muitos dos recursos presentes nas linguagens de script atuais: funções de primeira classe, fechamentos, fluxos/geradores, etc.

  3. Novas possibilidades de mercado e capacidade de responder mais rapidamente. Mesmo se você não estiver escrevendo Python, outras pessoas estão. Seus clientes? Outro fornecedor no projeto? Talvez um componente crítico tenha sido escrito em alguma outra língua? Vai custar dinheiro e tempo, se você não tiver pessoas que possam entender o código e fazer interface com ele.

  4. Recrutamento. Se a sua empresa tem uma reputação de ensinar coisas novas e interessantes para as pessoas, será mais fácil recrutar as pessoas mais importantes. Todos está executando Java/C #/C++. Não é uma maneira muito eficaz de se diferenciar no mercado de trabalho.

2
Antti Rasinen

Dado o foco crescente na execução de linguagens dinâmicas (da-vinci vm etc.) na JVM e o número crescente de linguagens dinâmicas que são executadas nela (JRuby, Grrovy, Jython), acho que os casos de uso estão apenas aumentando. Alguns dos cenários que achei realmente beneficiados são

  1. Prototipagem - use o RoR ou Grails para criar protótipos rápidos com a vantagem de poder executá-lo no servidor de aplicativos padrão e (talvez) reutilizar os serviços existentes etc.

  2. Testing - testes de unidade certos muito mais rapidamente em linguagens dinâmicas

  3. Script de teste de desempenho/automação - algumas dessas ferramentas estão começando a permitir o uso da linguagem dinâmica padrão de escolha para escrever os scripts de teste em vez das linguagens de script proprietárias. Um benefício colateral pode ser a capacidade de reutilizar algum código de teste de unidade que você já escreveu.

1
mataal

Eu acho que os principais benefícios das linguagens dinâmicas podem ser resumidos em

  1. Desenvolvimento rápido
  2. Cola

O curto tempo de ciclo de projeto-código-teste torna as linguagens dinâmicas ideais para prototipagem, ferramentas e scripts únicos rápidos e sujos. IMHO, os dois últimos podem causar um enorme impacto na produtividade de um programador. Surpreende-me quantas pessoas vasculham as coisas manualmente, em vez de criar uma ferramenta para fazer isso por elas. Eu acho que é porque eles não têm algo como Perl em suas caixas de ferramentas.

A capacidade de interagir com praticamente qualquer coisa (outros programas ou idiomas, bancos de dados etc.) facilita reutilizar o trabalho existente e automatizar tarefas que, de outra forma, precisariam ser feitas manualmente.

1
Michael Carman

Muitas vezes, descobri que aprender outro idioma, especialmente um idioma de tipo dinâmico, pode ensinar coisas sobre outros idiomas e torná-lo um programador melhor em geral. Aprender Ruby, por exemplo, ensinará a programação orientada a objetos de maneiras Java não acontece e vice-versa. Em suma, acredito que é melhor ser um programador bem-arredondado do que preso em um idioma único, tornando-o mais valioso para as empresas/clientes em que trabalha.

1
Mike Farmer

Descobri que quanto mais brinco com Ruby, melhor eu entendo C #.

1) Ao alternar entre essas linguagens, cada uma delas tem suas próprias construções e filosofias por trás dos problemas que eles tentam resolver. Isso o ajudará a encontrar o ferramenta certa para o trabalho ou o domínio de um problema.

2) O papel do compilador (ou intérprete para alguns idiomas) se torna mais proeminente. Por que o sistema de tipos do Ruby difere do sistema .Net/C #? Quais problemas cada um deles resolve? Você perceberá em um nível inferior as construções do compilador e sua influência na linguagem

3) Alternar entre Ruby e C # realmente me ajudou a entender Design Patterns melhor. Sugiro realmente implementar padrões de design comuns em uma linguagem como C # e depois em uma linguagem como Ruby: Isso muitas vezes me ajudava a ver através da cerimônia do compilador a filosofia de um padrão específico.

4) Um diferente comunidade. C #, Java, Ruby, Python, etc, todos têm comunidades diferentes que podem ajudar a envolver suas habilidades. É uma ótima maneira de levar seu ofício para o próximo nível.

5) Por último, mas não menos importante, porque novos idiomas são divertidos :)

1
Jimmy Lyke

Aprender algo com um sistema flexível OOP, como LISP ou Perl (consulte Moose)) permitirá expandir e entender melhor seus pensamentos sobre engenharia de software. Idealmente, todo idioma tem uma faceta exclusiva (seja seja CLOS ou alguma outra técnica) que aprimore, amplie e amplie suas habilidades como programador.

1
jshirley

confira as respostas para este tópico:

https://stackoverflow.com/questions/76364/what-is-the-single-most-effective-thing-you-did-to-improve-your-programming-ski#84112

Aprender novos idiomas é manter a mente aberta e aprender novas maneiras de fazer as coisas.

1
Jean

Não tenho certeza se é isso que você está procurando, mas escrevemos nosso aplicativo principal com Java na pequena empresa em que trabalho, mas usei python para escrever scripts menores rapidamente Software de backup, scripts temporários para manipular dados e enviar resultados. Às vezes parece mais fácil sentar com python e escrever um script rápido do que mexer com classes e outras coisas em Java.

Os scripts temporários que não estão por aí não precisam de muito tempo de design desperdiçado.

E eu sou preguiçoso, mas é bom aprender o máximo que puder e, claro, ver quais recursos existem em outros idiomas. Saber mais nunca te machuca em futuras mudanças de carreira :)

1
Arthur Thomas

É tudo uma questão de ampliar seus horizontes como desenvolvedor. Se você se limitar a apenas linguagens de tipo forte, talvez não seja o melhor programador possível.

Quanto às tarefas, Python/Lua/Ruby/Perl são ótimas para pequenas tarefas simples, como encontrar alguns arquivos e renomeá-los. Eles também funcionam muito bem quando combinados com uma estrutura (por exemplo, Rails, Django, Lua para Windows) para desenvolver aplicativos simples rapidamente. Inferno, a 37Signals é baseada na criação de aplicativos simples, mas muito úteis, em Ruby no Rails.

1
Ed Schwehm

Eles são úteis para o "Quick Hack", que consiste em preencher uma lacuna no idioma principal para uma correção rápida (e potencialmente suja) mais rapidamente do que seria necessário para desenvolver o mesmo no idioma principal. Um exemplo: um script simples no Perl para passar por um arquivo de texto grande e substituir todas as instâncias de um endereço de e-mail por outro é trivial, com um tempo gasto no intervalo de 10 minutos. Hackear um aplicativo de console para fazer o mesmo no seu idioma principal levaria vários deles.

Você também tem o benefício de que se expor a idiomas adicionais amplia suas habilidades e aprender a atacar problemas de uma perspectiva de idiomas diferentes pode ser tão valioso quanto o próprio idioma.

Por fim, as linguagens de script são muito úteis no campo da extensão. Tome LUA como um exemplo. Você pode inserir um intérprete lua em seu aplicativo com muito pouca sobrecarga e agora tem uma maneira de criar uma funcionalidade de script avançada que pode ser exposta aos usuários finais ou alterada e distribuída rapidamente sem a necessidade de uma reconstrução de todo o aplicativo. Isso é usado com grande efeito em muitos jogos, principalmente no World of Warcraft.

1
Wolfwyrd

Se tudo o que você tem é um martelo, todo problema começa a parecer um prego.

Há momentos em que ter uma chave de fenda ou alicate torna um problema complicado trivial.

Ninguém pergunta a empreiteiros, carpinteiros, etc, "Por que aprender a usar uma chave de fenda se eu já tenho um martelo?". Realmente bons empreiteiros/carpinteiros têm toneladas de ferramentas e sabem como usá-las bem. Todos os programadores devem estar fazendo a mesma coisa, aprendendo a usar novas ferramentas e usá-las bem.

Porém, antes de usarmos qualquer ferramenta elétrica, vamos falar um pouco sobre segurança na loja. Certifique-se de ler, entender e seguir todas as regras de segurança que acompanham suas ferramentas elétricas. Fazer isso reduzirá bastante o risco de ferimentos pessoais. E lembre-se: não há regra mais importante do que usá-los: óculos de segurança - Norm

1
John Gardner

Pessoalmente, trabalho em um aplicativo Java, mas não consegui sobreviver sem o Perl para alguns scripts de suporte.

Eu tenho scripts para mudar rapidamente o que estou apontando, scripts para executar scripts de construção, scripts para coletar dados e comparar coisas.

Claro que eu poderia fazer tudo isso com Java, ou talvez scripts Shell (também tenho alguns deles), mas quem deseja compilar uma classe (certificando-se de que o caminho da classe esteja definido etc) quando você só precisa de algo rápido e sujo. O conhecimento de uma linguagem de script pode remover 90% das tarefas manuais chatas/repetitivas.

1
shelfoo

Não diga ao seu empregador que deseja aprender Ruby. Diga a ele que você deseja aprender sobre o estado da arte em tecnologias de estrutura da web. acontece que os mais quentes são Django e Ruby no Rails.

1
ykaganovich

Linguagens dinâmicas são fantásticas para criar idéias de prototipagem. Geralmente, por motivos de desempenho, eles não funcionam para soluções ou produtos permanentes. Mas, com linguagens como Python, que permitem incorporar C/C++/Java padrão nelas ou vice-versa, você pode acelerar os bits realmente críticos, mas deixá-los colados com a flexibilidade de uma dinâmica língua.

... e assim você obtém o melhor dos dois mundos. Se você precisar justificar isso em termos de por que mais pessoas devem aprender essas linguagens, basta indicar muito mais rápido que você pode desenvolver o mesmo software e quão mais robusta é a solução (porque, na minha experiência, depurar/corrigir problemas em linguagens dinâmicas, consideravelmente mais fácil!).

0
Jon Cage

Teste.

Geralmente, é mais rápido e fácil testar seu aplicativo C #/Java usando uma linguagem dinâmica. Você pode fazer testes exploratórios no Prompt interativo e criar rapidamente scripts de teste automatizados.

0
Ryan

Você também deve considerar aprender uma linguagem de programação funcional como o Scala. Tem muitas das vantagens do Ruby, incluindo uma sintaxe concisa e recursos poderosos como fechamentos. Mas ele compila para arquivos de classe Java e se integra perfeitamente a uma pilha Java, Java $ ===, o que pode facilitar muito a engolição por seu empregador).

O Scala não é digitado dinamicamente, mas seu recurso de "conversão implícita" oferece muitos, talvez até todos os benefícios da digitação dinâmica, mantendo muitas das vantagens da digitação estática.

0
sanity

Para trabalho após o trabalho, para trabalhos freelancers ... :) e final, para programar o mais alfabetizado possível ...;)

0
vaske

Conhecer grep e Ruby tornou possível refinar um problema e verificar a correção para um problema envolvendo toneladas de Java exceções em alguns servidores de produção. Porque Juntei a solução em Ruby, foi feita (projetada, implementada, testada, executada, corrigida por erro, executada, aprimorada, analisada) em uma tarde em vez de alguns dias.Eu poderia ter resolvido o mesmo problema usando uma solução totalmente Java ou uma solução C #, mas provavelmente teria me levado mais tempo.

O conhecimento de idiomas dinâmicos também às vezes leva a soluções mais simples em idiomas menos dinâmicos. Em Ruby, Perl ou python, você apenas procura intuitivamente matrizes associativas (hashes, dicionários, qualquer que seja o Word que deseja usar) para as coisas mais pequenas, nas quais você pode ser tentado a criar uma hierarquia de classes complexa em uma linguagem tipicamente estática quando o problema não exige isso necessariamente.

Além disso, você pode conectar a maioria das linguagens de script à maioria dos tempos de execução. Portanto, não precisa ser um ou outro.

0
JasonTrue

Os idiomas dinâmicos são uma maneira diferente de pensar e, às vezes, as práticas que você aprende de um idioma dinâmico ou funcional podem ser transferidas para os idiomas mais estaticamente tipificados, mas se você não tiver tempo para aprender idiomas diferentes, nunca terá o benefício de ter um sabia como pensar quando você está codificando.

0
sontek

O "benefício real" que um empregador pode ver é um programador melhor que pode implementar soluções mais rapidamente; no entanto, você não poderá fornecer números concretos para justificar a despesa e o empregador provavelmente fará com que você trabalhe com o que ganha dinheiro agora, em vez de trabalhar com coisas que melhoram o futuro.

O único momento em que você pode obter treinamento com a moeda do empregador é quando ele percebe a necessidade e é mais barato do que contratar uma nova pessoa que já tenha esse conjunto de habilidades.

0
Dan

Questões filosóficas à parte, eu sei que obtive valor ao escrever scripts rápidos e sujos Ruby para solucionar problemas de força bruta que Java era muito grande No ano passado, eu tinha três estruturas de diretórios separadas, mais ou menos iguais, mas com muitas diferenças entre os arquivos (o cliente não tinha ouvido falar em controle de versão e deixarei o resto à sua imaginação). .

Seria necessário muito esforço para escrever um analisador em Java, mas em Ruby eu tinha um trabalhando em cerca de 40 minutos.

0
Jim Kiley

Freqüentemente, linguagens de dinâmica (especialmente python e lua) são incorporadas em programas para adicionar uma funcionalidade mais semelhante a plug-in e porque são linguagens de alto nível que facilitam a adição de determinado comportamento, onde um idioma de nível baixo/médio não é necessário.

Lua carece especificamente de todas as chamadas de sistema de baixo nível porque foi projetada para facilitar o uso para adicionar funcionalidade ao programa, não como uma linguagem de programação geral.

0
Christian P.

Não incomode seu empregador, gaste ~ $ 40 em um livro, faça o download de algum software e dedique algum tempo todos os dias para ler/fazer exercícios. Em pouco tempo você será treinado :)

0
none

Outros já explicaram por que aprender mais idiomas o torna um programador melhor.

Quanto a convencer seu chefe de que vale a pena, isso provavelmente é apenas a cultura da sua empresa. Alguns lugares fazem da carreira e do progresso de habilidades uma política (subir ou sair), alguns locais valorizam isso, mas deixam a iniciativa do funcionário, e alguns lugares são muito focados nos resultados finais.

Se você tiver que explicar por que aprender um idioma é uma coisa boa para o seu chefe, meu conselho seria permanecer no trabalho apenas o tempo necessário, depois ir para casa e estudar coisas novas por conta própria.

0
magpulse