Pony 프로그래밍 언어를 사용한 경험은 무엇입니까?


최상의 답변

저는 Wallaroo Labs (www.wallaroolabs.com)의 프로그래머입니다. Pony를 사용하여 데이터 처리 프레임 워크 인 Wallaroo를 구축했습니다. 저는 또한 Pony 컴파일러 작업에도 참여하고 있습니다.

Pony는 Wallaroo 작업을위한 훌륭한 언어였습니다. 유형 시스템은 널 포인터 오류와 같은 문제를 제거하므로 프로그램이 컴파일되면 충돌하지 않을 것이라고 확신 할 수 있습니다. 참조 기능은 프로그램의 동시 부분에 데이터 경쟁이 없음을 보장합니다. 컴파일러는 빠른 코드를 생성하고 행위자 별 가비지 수집기는 예측 가능한 짧은 지연 시간을 제공합니다. 이러한 모든 요소를 ​​함께 사용하여 예상대로 작동하는 대규모 소프트웨어를 구축 할 수있었습니다.

포니는 유형 검사 및 참조 기능 검사로 인해 초보자에게 약간 위협적 일 수 있습니다. 대부분의 Pony 프로그래머는 언어를 사용하기 시작할 때 어느 정도 이러한 문제로 어려움을 겪고 있으며 소규모 단일 행위자 프로그램의 경우 지나치게 번거롭게 보일 수 있습니다. 그러나 프로그램의 크기와 복잡성이 증가함에 따라 이러한 것들은 가치가 있습니다. 유형 시스템은 객체가 예상 유형이 아니기 때문에 프로그램이 충돌하지 않도록 보장합니다. 참조 기능은 테스트에서 포착하기 어렵고 디버그하기 매우 힘든 데이터 경쟁을 제거합니다. 당신이 fizz-buzz를 작성할 때 이러한 것들을 반드시 인식하지는 않을 것이지만, 비즈니스가 기반으로하는 복잡한 소프트웨어 시스템의 종류를 구축 할 때 성공과 실패의 차이입니다.

Pony는 다정하다고 생각합니다. 스팟은 대규모 이벤트 기반 애플리케이션입니다. 앞서 언급했듯이 유형 시스템과 참조 기능은 복잡성을 관리하는 데 도움이되며 Pony는 이벤트 기반 아키텍처에 적합한 액터 시스템을 기반으로합니다. Node.js 또는 Erlang / Elixir와 같은 것을 사용할 수있는 위치에 잘 맞지만 형식 안전성과 네이티브 실행의 이점을 얻을 수 있습니다.

언어는 여전히 새로운 것이므로 표준 라이브러리는 다음과 같습니다. 다른 언어와 비교할 때 매우 적습니다. 한편으로는 포니가 프로젝트에 적합하지 않다는 의미 일 수 있습니다. 다른 한편으로는 사람들이 기여할 수있는 기회가 많다는 것을 의미합니다.

포니는 다양한 배경을 가진 자원 봉사자들에 의해 활발하게 개발되고 있으므로 누군가 때문에 버려 질 위험이 없습니다. 프로젝트를 그만두거나 새 직장을 얻습니다. 이렇게하면 한 사람이나 회사에서 관리하는 언어에 대한 장기적인 전망이 향상됩니다.

업데이트하는 문서 가 있습니다. 때때로 Pony를 확인하는 데 관심이있는 사람들에게 관련 포인트가 있다고 생각합니다. 중요하다고 생각되는 사항을 다룹니다.

일반적으로 포니 경험에 매우 만족했으며 사람들이 시간을내어 확인하는 것이 좋습니다.

답변

Pony는 Erlang (및 Elixir)의 모든 문제에 대한 해답이라고 생각합니다. 대부분 이러한 언어는 내부적으로 모든 변수를 복사 할 필요없이 진정한 동시 언어를 구축 할 수 있다는 사실을 사람들이 깨닫기 전에 설계되었습니다. (개발자 친화적 인 동시성을 끌어 내기 위해) 모든 것이 불변해야 할 필요가 있습니다. 이러한 새로운 아이디어는 Pony를 C ++만큼 빠르게 만들었지 만 잠재적으로 Erlang만큼 강력했습니다. 나에게 그것은 얼랭의 정말 미래적인 버전처럼 보인다. 얼랭을 처음부터 재발 명해야한다면 누군가가 오늘 할 수있는 일이다. Rust도 비슷하지만, (허가 시스템과 함께) 그러한 아이디어의 더 원시적 인 구현을 주장합니다. Rust에서는 여전히 쓰레드와 다른 시스템 수준의 프로세스 관리에 대해 항상 생각해야합니다. 현대 언어는 정말로 당신을 위해 정렬되어야합니다. 또는 Rust는 시스템 수준의 프로그래밍 언어이고 Pony는 그보다 한 단계 높은 수준이지만 여전히 정말 빠르다고 말하는 것이 더 공평합니다.

안타깝게도 JP Morgan의 일부 바보 IT 관리자가 서비스를 거부했기 때문입니다. 작년에 Causality와의 계약 ( https://www.linkedin.com/pulse/end-causality-constantine-goulimis 에서 자세히 알아보기)-원래 언어를 개발하던 회사가 파산했고 최고의 사람들은 계속해서 다른 회사에서 일했습니다.

전체 Pony 이야기 뒤에있는 주요 두뇌는 정말 똑똑한 CS 담당자 Sylvan Clebsch였습니다. 나는 그의 비디오를 보았고, 그는 실제로 이것을 뽑아 낼 수있었습니다 (보다 현대적인 프로그래밍 언어 디자인 아이디어를 기반으로 구축 된 “Erlang v2″플랫폼 만들기).

Sylvan과 Causality를 인수 한 사람들 그저 일에 달려 있지 않습니다.

전체 프로젝트에서 더 이상 뛰어난 것은 없습니다. 그들이 프로젝트를 인수했을 때 가장 먼저 한 일은 SJW 헛소리 문서 인 행동 강령을 게시하는 것이 었습니다. 당신이 그들의 작은 그룹의 일부가되기 전에 그들의 멍청한 좌파 이데올로기를 준수해야하는 모든 방법을 지정합니다.

이것은 말 그대로 특정 시장 상황으로 인해 더 나쁜 솔루션이 승리 한 기술 개발 시대 중 하나입니다. 다른 때는 닷컴 버블에서 수십억 달러를 벌어 들인 Sun이 Java가 설계되지 않은 모든 종류의 문제에 대한 솔루션으로 Java를 판매했을 때였습니다.

어쨌든 저는 그렇지 않다고 생각합니다. 여기저기서 작은 코드 조각을 제외하고는 실제로 프로덕션에 사용되었지만 전체 시스템은 아닙니다. Sylvan과 소수의 원본 작성자가 전체 언어 (및 나중에 분산 된 플랫폼)를 상상 한 것을 실제로 제공하는 것과는 거리가 멀기 때문에 올바르게 사용됩니다. 할 수 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다