해당 회사를 위해 특별히 설계된 학습 프로그래밍 언어 [닫기]


10

라이브러리, 논리 등을 도울 수있는 XY 다른 언어가있을 때 누군가 자신의 언어를 개발하여 회사 내에서만 사용하는 이유는 무엇입니까? 자신의 언어를 개발하는 것보다 다른 방법으로 흐름을 진행하는 것이 훨씬 간단하지 않습니까?


6
우리가 야생에서 가지고있는 상당히 많은 "새로운"언어는 "이전"언어를 위해 설계된 라이브러리를 사용할 수 있습니다. 따라서 새로운 언어를 사용한다고해서 lib 지원이
없어지

3
왜 드래그 레이싱을하기 위해 드래그 스터를 제작하겠습니까?
candied_orange

3
또는 실제로 프로그래밍 언어를 만든 이유와 합리적인 이유를 조사하십시오. 어떤 사람들은 당신이 자신의 언어를 만들 때까지 당신이 진짜 컴퓨터 과학자가 아니라고 생각합니다. 이것은 총 가루를 만들 때까지 (그리고 집의 작은 부분을 날려 버릴 때까지) 실제 화학 엔지니어가 아닌 것과 비슷합니다.
candied_orange

4
Erlang은 또한 이런 식으로 태어났습니다. 제가 실수하지 않으면 처음에는 Ericsson에서 내부 용으로 개발했습니다.
조르지오

3
회사를 위해 특별히 고안된 언어는 어리석은 반면, 회사가 처한 문제 영역을 위해 특별히 고안된 언어는 때로는 매우 유용 할 수 있습니다. 언어의 디자인과 아키텍처가 문제 영역을 훨씬 더 쉽게 해결 / 표현하게 해주는 것으로 제한 될 때, 때로는 범용 프로그래밍에 유용하기 때문에 전자보다는 후자가 있다는 것을 알고 있습니다.
거짓말 라이언

답변:


25

"새로운 언어를 만들고 싶다"고 말하는 사람이 아니라 오랜 과정의 결과물이라는 것을 알면 이해하기가 훨씬 쉽습니다.

일반적으로 간단한 도메인 별 언어를 사용하여 일부 문제를 해결할 수 있다는 아이디어로 시작합니다. 비전문가가이 언어를 사용하도록 의도하는 경우가 많으므로 간단하고 강력한 타이핑 및 모듈과 같은 기능이 부족한 경우가 많습니다.

여태까지는 그런대로 잘됐다. 그러나 사람들은 언어로는 해결할 수없는 문제에 부딪 치기 시작합니다. 따라서 이러한 문제를 해결하기 위해 새로운 "기능"이 천천히 추가됩니다. 프로세스가 느리고 기능이 자주 발생하지 않기 때문에 문제가 해결되는 한 새로운 기능을 올바르게 설계하려는 동기는 없습니다.

새로운 언어는 시간이 지남에 따라 단순한 도메인 별 언어에서 복잡한 "일반적인"목적 언어로 전환되는 기능을 얻습니다.

그리고 사람들이 그렇게 거대한 짐승을 만들었다는 것을 깨달았을 때, 이미 그것을 죽이고 그것을 제대로 설계된 언어로 대체하기에는 너무 늦었습니다.

특정 회사의 결합되지 않은이 같은 진화 몇 가지 언어가 있습니다 기침 자바 스크립트 기침 PHP의 기침 .


10
훌륭한 답변이며 JavaScript에는 문제가 있지만 PHP와 같은 문장에 넣는 것이 공정하다고 생각하지 않습니다. "우리는 빌과 테드를 우리 동네에서 쫓아 내야합니다. 그들은 범죄자입니다!" 그러나 Bill (자바 스크립트)은 jaywalker이고 Ted (PHP)는 연쇄 살인범입니다.
TheCatWhisperer

12
@TheCatWhisperer 동의하지 않습니다. JavaScript는 PHP만큼 나쁘거나 더 나쁩니다. JavaScript를 사용하거나 변환해야하므로 PHP는 무시해도됩니다.
Euphoric

2
그것은 가장 유효한 포인트입니다.
TheCatWhisperer

1
@Euphoric WASM을 기다리겠습니다 . 아마도 장면이 바뀔 것입니다 ...
Kroltan

WASM의 경우 @Kroltan +1!
CraigR8806

15

자신의 언어를 개발하는 것보다 다른 방법으로 흐름을 진행하는 것이 훨씬 간단하지 않습니까?

물론, 터무니없는 말로 그것을 따르기 위해, 아무도 새로운 언어를 개발하지 않으면 우리는 모두 모아서 모든 것을 쓸 것입니다.

때때로 흐름이 없습니다. 새로운 무언가를 발명하려는 언어 애호가이든 이미 존재하는 것에 부합하지 않는 회사가 있든, 누군가가 처음부터 가려움증을 느끼기 때문에 새로운 언어가 존재하게됩니다.

John Backus 가 1953 년에 IBM 수학 공식 번역 시스템 을 제안했을 때 이런 일이 일어났습니다 . 그는 과학 사용자가 수학 공식을 조립식으로 작성하는 것보다 더 쉽게 지정할 수있는 방법을 원했습니다. 이 독점 제품은 어셈블리가 아닌 최초의 프로그래밍 언어가되었으며이를 Fortran이라고합니다.

포트란이 처음으로 그 길을 갔던 곳에서 얼랭은 그 노선의 포스터 아이가 될 것입니다. Ericsson은 전화 스위치 용 소프트웨어가 개발되는 방식을 개선하고자했으며, 필요한 기능을 갖춘 프로토 타이핑 언어를 개발했습니다. 처음 살펴 보았을 때 실제로 해결해야 할 문제는 1986 년에 사용 가능한 다른 언어로는 제대로 처리되지 않은 문제를 해결하기 위해 개발 된 것입니다. Erlang은 10 년이 지난 후 오픈 소스가 될 때까지 동료가 만났고 이제는 주류 언어입니다.

Go와 Scala는 모두 대단한 체계에서 비교적 젊은 언어이며 동료 회사에서 사용되는 언어가 둘 다를 능가 할 수 있습니다. 그가해야 할 일은 역사, 존재 이유 및 계속 사용되는 이유에 대해 묻는 것입니다.

저는 2003 년에서 2013 년 사이에 1970 년 후반에 뿌리를두고있는 고유 언어를 포함한 산업별 환경을 광범위하게 사용하는 회사에서 일하면서 10 년을 보냈습니다. 일부 새로운 언어는 대체하기에 더 적합한 대체물이었으며 (시간이 지남에 따라 갈고리가 접목 되었음), 해당 산업에는 그에 대한 충분한 투자가 있었으며 단순히 좋은 비즈니스 사례가 아닌 입증 된 코드가 많이있었습니다. 다른 것으로 전환하십시오.


-1

나는 이것을 전에 보았다. 결코 잘 작동하지 않습니다. 어떤 사람들은 "여기서 발명하지 않았습니다"콤플렉스를 가지고 있습니다. 일반적으로 회사는 바퀴를 재발 명합니다.

생각 해봐 이 새로운 언어는 아마도 항상 깨집니다. 파서, 컴파일러, VM, 링커 등 무엇이든간에 사람들이 무작위 문제를 디버깅하는 데 많은 시간을 허비하는 수천 가지 버그가 있습니다. 다른 언어에는없는 것이 필요하다고 생각하는 것에 대한 모든 것.

C / C ++는 모든 운영 체제를 작성하는 데 사용됩니다. 그러나 누군가는 다른 무언가가 필요하다고 생각했습니다.


7
분명히 당신은 코 틀린을 본 적이 없습니다. 또는 그 문제에 대한 Javascript 또는 C #. Fog Creek Software는 수년간 와사비 (VB 기반)라는 자체 프로그래밍 언어를 사용했습니다 ( 기술 부채가 결국에는이를 따라 잡았습니다 ). 따라서 분명히 작동하는 경우가 있습니다.
Robert Harvey

1
내가 기억할 수있는 한, C #은 Microsoft가 비준수 Java 구현을 만들려고 시도한 후 태어 났으며 Sun에 의해 고소되어 없어졌습니다. cnet.com/news/sun-microsoft-settle-java-suit Java를 더 이상 호출 할 수 없으므로 처음에는 Java와 매우 유사한 고유 한 언어를 개발했습니다.
Giorgio

1
"이 새로운 언어는 아마도 항상 고장날 것입니다."– 언어 디자인으로 인해 전체 응용 프로그램 버그를 피할 수 있다면, 이는 허용 가능한 트레이드 오프가 될 수 있습니다
Eric

16
C에 대해 들어 본 적이 있습니까? 보고 된 바에 따르면 단일 컴퓨터의 단일 운영 체제 용으로 자체 개발되었습니다. 왜 K & R이 PL / 1, BCPL 또는 Algol 68과 같은 운영 체제를 작성하는 데 사용 된 것으로 입증 된 것을 사용하지 않았습니까?
idrougge
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.