Como é trabalhar em um projeto real usando muitas linguagens de programação ao mesmo tempo?

Recentemente, trabalhei em um projeto que exigia alternar entre Objective-C, PHP e JavaScript. Uma das grandes coisas a se notar é que a maioria das linguagens de programação modernas usa sintaxe semelhante ao C. Isso realmente facilita o salto entre idiomas. Os maiores problemas são os problemas mais específicos do idioma, como “@” String “” e “[object callThisMethod]” no Obj-C. Às vezes, você adiciona essas coisas ao codificar em outros idiomas e, às vezes, esquece-as ao voltar. Esse é o maior problema do uso de vários idiomas. Enquanto trabalhava com os idiomas listados acima, eu também estava aprendendo Haskell e Scala. Na verdade, era mais difícil alternar entre os estilos de Programação Funcional e Imperativo / OO do que alternar entre idiomas.

O mais importante a se perceber é que a maioria das linguagens tem os mesmos conceitos básicos: loop / iteração, if-else, variáveis ​​e funções, operadores e alguma forma de encapsulamento (como módulos, classes, estruturas, etc.). Na maioria das linguagens baseadas em C, esses conceitos geralmente usam sintaxe e estrutura semelhantes. O alto grau de semelhança entre esses idiomas é o que facilita o aprendizado e o salto. A verdadeira dificuldade é quando você muda para um paradigma de programação diferente, como pular de Java para Haskell.

Eu trabalhei na MatrixSMS (uma empresa de marketing móvel) há 2 anos, o sistema usa Python (torcido) como daemon de processamento de mensagens e PHP na interface para cobrança, etc. em Python, mas necessário em PHP) e em PHP, em vez de funcionar principalmente, primeiro digitaremos def. 🙂

Acabei de terminar um contrato de mais de 2 anos em que estávamos usando 3 idiomas diferentes c ++, unrealscript e actionscript. Na maior parte, tínhamos pessoas diferentes em idiomas diferentes, para que cada pessoa pudesse concentrar melhor seus esforços. Mas, devido ao pequeno número de pessoas no projeto, acabamos com sobreposição. E acabamos com maneiras diferentes de interagir com os idiomas. Felizmente, as diferenças eram pequenas, mas olhando para trás agora, eu definitivamente me certificaria de que fizemos um trabalho melhor na definição de padrões.

Como alguém que trabalha rotineiramente em vários idiomas ao mesmo tempo, embora em projetos diferentes, também tenho problemas semelhantes ao que Joseph Freemind menciona em seu post. Ponto-e-vírgula no eol e zero vs uma matriz indexada tornam a vida interessante. Toda vez que troco de idioma, preciso gastar alguns minutos reunindo meus pensamentos para obter a sintaxe do idioma atual definida em minha cabeça. E tento o meu melhor para não ter que mudar de um lado para o outro. Eu codifico em grandes pedaços para cada idioma, se puder.

É um lugar comum na programação web. No código do front-end, você precisa de HTML, CSS, JavaScript; no back-end, você precisa de pelo menos um idioma do lado do servidor. Além disso, você geralmente precisa de um banco de dados, SQL ou NoSQL. Embora algumas empresas separem o front end e o back end dos diferentes programadores, isso pode ser feito por uma pessoa.

É bastante normal em muitos campos.

Atualmente, estou trabalhando em um aplicativo híbrido Obj-C / Swift, ocasionalmente uso a sintaxe Swift no código Obj-C, mas, curiosamente, nunca o contrário. Eu acho que meu cérebro está atualmente configurado com Swift como padrão.

Também trabalhei em híbridos Perl / AppleScripy (sim, uma combinação estranha), nunca me misturei, esses dois são muito diferentes.

Realmente não é grande coisa, e bastante normal em muitas situações.