Pourquoi quelqu'un développerait-il son propre langage pour l'utiliser uniquement dans cette entreprise alors que vous avez XY d'autres langages qui peuvent vous aider avec leurs bibliothèques, leur logique, etc.? N'est-il pas beaucoup plus simple de suivre le courant avec autre chose que de développer votre propre langue?
programming-languages
Josip Ivic
la source
la source
Réponses:
Il est beaucoup plus facile à comprendre lorsque vous réalisez que c'est souvent le produit d'un long processus et non pas simplement de quelqu'un qui dit "nous voulons créer un nouveau langage".
Cela commence généralement par l'idée qu'un problème peut être résolu en utilisant un langage simple spécifique au domaine. L'intention est souvent d'avoir des non-experts qui utilisent ce langage, il est donc simple et manque souvent de fonctionnalités telles que la frappe forte et les modules.
Jusqu'ici tout va bien. Mais ensuite, les gens commencent à frapper des problèmes qui ne peuvent pas être résolus par la langue. De nouvelles "fonctionnalités" sont donc ajoutées lentement pour résoudre ces problèmes. Et comme le processus est lent et les fonctionnalités peu fréquentes, il n'y a aucune motivation à concevoir correctement ces nouvelles fonctionnalités, tant que les problèmes sont résolus.
Au fil du temps, le nouveau langage acquiert des fonctionnalités qui le transforment d'un langage spécifique à un domaine simple à un langage à usage général "complexe", souvent avec des sémantiques conflictuelles et déroutantes et des règles de syntaxe difficiles à suivre.
Et au moment où les gens réalisent qu'ils ont créé une bête aussi massive, il est déjà trop tard pour la tuer et la remplacer par un langage correctement conçu.
Il y a quelques langues qui ont évolué comme celui - ci qui ne sont pas liés à des sociétés spécifiques toux JavaScript toux PHP toux .
la source
Bien sûr, mais pour suivre cela d'une manière absurde, nous serions tous en train d'écrire tout en assembleur si personne ne développait de nouveaux langages.
Parfois, il n'y a pas de flux. De nouvelles langues viennent à exister parce que quelqu'un a une démangeaison à gratter, que ce soit un amateur de langues qui veut juste inventer quelque chose de nouveau ou une entreprise avec un besoin non satisfait par ce qui existe déjà.
C'est exactement ce qui s'est produit lorsque John Backus a proposé le système de traduction de formules mathématiques IBM en 1953. Il voulait un moyen plus facile pour les utilisateurs scientifiques de spécifier des formules mathématiques qu'en les écrivant en assembleur. Ce produit propriétaire est devenu le premier langage de programmation qui n'était pas assemblé, et vous le connaissez sous le nom de Fortran.
Là où Fortran a été le premier à emprunter cette voie, Erlang en est à peu près le porte-affiche. Ericsson voulait améliorer la façon dont le logiciel pour ses commutateurs téléphoniques a été développé et a inventé un langage pour le prototypage avec des fonctionnalités spécifiques à leurs besoins. Lorsque je l'ai exploré pour la première fois, j'ai retenu qu'il a été développé par des personnes ayant un réel problème à résoudre qui n'aurait pas été bien desservi par aucune des autres langues disponibles en 1986. Erlang est resté un produit propriétaire exclusif comme votre collègue a rencontré jusqu'à ce qu'il soit open source plus d'une décennie plus tard, et maintenant c'est un langage courant.
Go et Scala sont des langues relativement jeunes dans le grand schéma des choses, et il est tout à fait possible que la langue utilisée dans l'entreprise de votre collègue soit antérieure aux deux. Ce qu'il doit faire, c'est se renseigner sur son histoire, pourquoi elle est née et pourquoi elle continue d'être utilisée.
J'ai passé la décennie entre 2003 et 2013 à travailler pour une entreprise qui a largement utilisé un environnement spécifique à l'industrie qui comprenait son propre langage qui a ses racines à la fin des années 1970. Alors que certaines langues plus récentes auraient pu être des remplacements plus appropriés (et des crochets pour eux ont été greffés au fil du temps), cette industrie y avait investi suffisamment et un énorme corpus de code éprouvé qu'il n'y avait tout simplement pas de bonne analyse de rentabilisation pour passer à autre chose.
la source
Je l'ai déjà vu auparavant. Ça ne marche jamais bien. Certaines personnes ont un complexe «pas inventé ici». Cela fait généralement courir une entreprise en réinventant la roue.
Pensez-y. Cette nouvelle langue se casse probablement tout le temps. Entre un analyseur, un compilateur, une machine virtuelle, un éditeur de liens, peu importe ... Il y a maintenant des milliers de bogues avec lesquels les gens perdront des heures à déboguer des problèmes aléatoires. Tout pour ce dont ils pensent avoir besoin que d'autres langues n'ont pas.
C / C ++ est utilisé pour écrire des systèmes d'exploitation comme, vous savez, tous. Et pourtant, quelqu'un pensait avoir besoin de quelque chose de différent.
la source