라이브러리, 논리 등을 도울 수있는 XY 다른 언어가있을 때 누군가 자신의 언어를 개발하여 회사 내에서만 사용하는 이유는 무엇입니까? 자신의 언어를 개발하는 것보다 다른 방법으로 흐름을 진행하는 것이 훨씬 간단하지 않습니까?
라이브러리, 논리 등을 도울 수있는 XY 다른 언어가있을 때 누군가 자신의 언어를 개발하여 회사 내에서만 사용하는 이유는 무엇입니까? 자신의 언어를 개발하는 것보다 다른 방법으로 흐름을 진행하는 것이 훨씬 간단하지 않습니까?
답변:
"새로운 언어를 만들고 싶다"고 말하는 사람이 아니라 오랜 과정의 결과물이라는 것을 알면 이해하기가 훨씬 쉽습니다.
일반적으로 간단한 도메인 별 언어를 사용하여 일부 문제를 해결할 수 있다는 아이디어로 시작합니다. 비전문가가이 언어를 사용하도록 의도하는 경우가 많으므로 간단하고 강력한 타이핑 및 모듈과 같은 기능이 부족한 경우가 많습니다.
여태까지는 그런대로 잘됐다. 그러나 사람들은 언어로는 해결할 수없는 문제에 부딪 치기 시작합니다. 따라서 이러한 문제를 해결하기 위해 새로운 "기능"이 천천히 추가됩니다. 프로세스가 느리고 기능이 자주 발생하지 않기 때문에 문제가 해결되는 한 새로운 기능을 올바르게 설계하려는 동기는 없습니다.
새로운 언어는 시간이 지남에 따라 단순한 도메인 별 언어에서 복잡한 "일반적인"목적 언어로 전환되는 기능을 얻습니다.
그리고 사람들이 그렇게 거대한 짐승을 만들었다는 것을 깨달았을 때, 이미 그것을 죽이고 그것을 제대로 설계된 언어로 대체하기에는 너무 늦었습니다.
특정 회사의 결합되지 않은이 같은 진화 몇 가지 언어가 있습니다 기침 자바 스크립트 기침 PHP의 기침 .
자신의 언어를 개발하는 것보다 다른 방법으로 흐름을 진행하는 것이 훨씬 간단하지 않습니까?
물론, 터무니없는 말로 그것을 따르기 위해, 아무도 새로운 언어를 개발하지 않으면 우리는 모두 모아서 모든 것을 쓸 것입니다.
때때로 흐름이 없습니다. 새로운 무언가를 발명하려는 언어 애호가이든 이미 존재하는 것에 부합하지 않는 회사가 있든, 누군가가 처음부터 가려움증을 느끼기 때문에 새로운 언어가 존재하게됩니다.
John Backus 가 1953 년에 IBM 수학 공식 번역 시스템 을 제안했을 때 이런 일이 일어났습니다 . 그는 과학 사용자가 수학 공식을 조립식으로 작성하는 것보다 더 쉽게 지정할 수있는 방법을 원했습니다. 이 독점 제품은 어셈블리가 아닌 최초의 프로그래밍 언어가되었으며이를 Fortran이라고합니다.
포트란이 처음으로 그 길을 갔던 곳에서 얼랭은 그 노선의 포스터 아이가 될 것입니다. Ericsson은 전화 스위치 용 소프트웨어가 개발되는 방식을 개선하고자했으며, 필요한 기능을 갖춘 프로토 타이핑 언어를 개발했습니다. 처음 살펴 보았을 때 실제로 해결해야 할 문제는 1986 년에 사용 가능한 다른 언어로는 제대로 처리되지 않은 문제를 해결하기 위해 개발 된 것입니다. Erlang은 10 년이 지난 후 오픈 소스가 될 때까지 동료가 만났고 이제는 주류 언어입니다.
Go와 Scala는 모두 대단한 체계에서 비교적 젊은 언어이며 동료 회사에서 사용되는 언어가 둘 다를 능가 할 수 있습니다. 그가해야 할 일은 역사, 존재 이유 및 계속 사용되는 이유에 대해 묻는 것입니다.
저는 2003 년에서 2013 년 사이에 1970 년 후반에 뿌리를두고있는 고유 언어를 포함한 산업별 환경을 광범위하게 사용하는 회사에서 일하면서 10 년을 보냈습니다. 일부 새로운 언어는 대체하기에 더 적합한 대체물이었으며 (시간이 지남에 따라 갈고리가 접목 되었음), 해당 산업에는 그에 대한 충분한 투자가 있었으며 단순히 좋은 비즈니스 사례가 아닌 입증 된 코드가 많이있었습니다. 다른 것으로 전환하십시오.
나는 이것을 전에 보았다. 결코 잘 작동하지 않습니다. 어떤 사람들은 "여기서 발명하지 않았습니다"콤플렉스를 가지고 있습니다. 일반적으로 회사는 바퀴를 재발 명합니다.
생각 해봐 이 새로운 언어는 아마도 항상 깨집니다. 파서, 컴파일러, VM, 링커 등 무엇이든간에 사람들이 무작위 문제를 디버깅하는 데 많은 시간을 허비하는 수천 가지 버그가 있습니다. 다른 언어에는없는 것이 필요하다고 생각하는 것에 대한 모든 것.
C / C ++는 모든 운영 체제를 작성하는 데 사용됩니다. 그러나 누군가는 다른 무언가가 필요하다고 생각했습니다.