TL;DR
- José Valim은 수천 개 애플리케이션이 의존하는 프로그래밍 언어 Elixir를 설계하고 유지하려면 변경을 절제하고 경계를 명확히 해야 한다고 설명함.
- Rails에서 겪은 동시성 버그가 함수형 프로그래밍과 Erlang, BEAM으로 이어졌으며, 불변성·동시성·분산 시스템에 대한 관점이 Elixir 설계에 영향을 줌.
- Elixir를 웹 전용 언어로 확장하는 대신, Phoenix와 Numerical Elixir 같은 커뮤니티 프로젝트가 언어 위에 구축될 수 있도록 확장성을 중시함.
- Tidewave는 Rails와 Phoenix 애플리케이션의 프레임워크 맥락을 코딩 에이전트에 제공하며, 문서와 명확한 오류 메시지가 AI 지원 개발에서 가치 있는 자원임을 보여줌.
- AI는 오픈소스 기여와 의존성·SDK·언어 선택에 영향을 주지만, 프로그래밍 언어는 계속 인간을 중심으로 설계해야 한다는 관점임.
유지보수 가능한 소프트웨어와 프로그래밍 언어
- José Valim은 유지보수 가능한 소프트웨어를 좋은 회의장 와이파이에 비유하며, 경계와 움직이는 부분을 머릿속에 담을 수 있는 소프트웨어를 선호함.
- 수천 개 애플리케이션이 의존하는 언어를 유지하는 일은 애플리케이션 유지보수와 다르며, 언어 설계자는 사용자의 변경 부담을 줄이기 위해 변화에 더 큰 절제가 필요함.
- 문제 위에 해결책을 덧붙이는 방식과 근본 문제가 사라지도록 설계하는 방식을 구분함.
Elixir의 기원과 확장성
- Rails Core 팀에서 일하던 중 발생한 동시성 버그를 계기로 소프트웨어의 다른 접근법을 찾기 시작했고, 함수형 프로그래밍을 거쳐 Erlang과 BEAM에 이르렀음.
- 불변성, 동시성, 분산 시스템에 관한 Erlang과 BEAM의 아이디어가 소프트웨어에 대한 관점을 바꿈.
- Elixir를 웹 전용 언어로 만들기보다 개발자가 새로운 영역으로 확장할 수 있는 구성 요소를 제공하는 데 집중함.
- Phoenix와 Numerical Elixir 같은 프로젝트가 언어 자체를 계속 확장하지 않고도 커뮤니티에서 구축될 수 있도록 설계함.
- 시간이 지나면서 언어 자체를 바꾸는 일보다 생태계가 언어 위에서 구축되도록 돕는 일에 더 많은 노력을 기울임.
Tidewave와 코딩 에이전트의 맥락
- Tidewave는 Rails와 Phoenix 애플리케이션을 코딩 에이전트와 연결하고, 개발자가 이미 활용하는 프레임워크 정보를 에이전트에 제공함.
- José는 프로그래밍 언어가 계속 인간을 중심으로 최적화되어야 한다고 보며, 인간에게 유용한 기능이 에이전트에도 도움이 되는 경우가 많다고 설명함.
- Elixir가 오랫동안 중시해 온 일급 문서화, HexDocs, Markdown, 검색 가능한 패키지 문서가 AI 지원 개발과 잘 맞아떨어짐.
- 문서와 명확한 오류 메시지가 코딩 에이전트에 예상 밖으로 중요한 자원이 됨.
AI와 오픈소스 유지보수
- AI 지원 기여가 늘고 있으며, AI가 생성한 응답은 기여자와 유지보수자 사이의 인간적 관계를 흐트러뜨릴 수 있음.
- Robby와 José는 코딩 에이전트가 생태계 사이에서 아이디어를 가져오는 일을 쉽게 만들어 애플리케이션을 다시 작성하거나 대형 SDK에 의존하는 기존 선택을 바꿀 수 있는지 논의함.
- 참고 자료: Elixir, Dashbit, Tidewave, Phoenix Framework, Erlang, Hex, HexDocs, Numerical Elixir, Nx, Isaac Asimov의 *Foundation*, Frank Herbert의 *Dune*.
- undercover-ci.com
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요