GN⁺: Amber - Bash로 컴파일되는 프로그래밍 언어
(amber-lang.com)- Bash로 컴파일되는 현대적이고 타입 안전하며 런타임 안전한 프로그래밍 언어
- 컴파일 과정에서 많은 버그와 실수를 처리하여 스크립트를 작성할 수 있게 도와줌.
-
주요 기능
- 현대적 문법: 많은 언어 기능이 친숙하게 느껴질 것이며, Bash를 처음부터 배우는 것보다 훨씬 빠르게 익힐 수 있음.
- 런타임 안전성: 일반적인 셸 스크립트에서 누락된 주요 구성 요소 중 하나로, 컴파일 시점에 많은 버그를 잡을 수 있음.
- 타입 안전성: 실패할 수 있는 모든 Bash 명령어와 함수는 반드시 어떤 방식으로든 처리해야 함.
- macOS와 Linux에서 포터블 솔루션으로 사용 가능.
GN⁺의 의견
-
Amber의 장점
- 개발 생산성 향상: 현대적 문법과 타입 안전성 덕분에 개발자가 더 빠르고 안전하게 스크립트를 작성할 수 있음.
- 버그 감소: 컴파일 시점에 많은 버그를 잡을 수 있어, 런타임 오류를 줄일 수 있음.
-
고려사항
- 학습 곡선: 기존 Bash 스크립트 작성자에게는 새로운 문법과 개념을 익히는 데 시간이 필요할 수 있음.
- 호환성 문제: 특정 Bash 스크립트와의 호환성 문제가 발생할 수 있음.
-
비슷한 프로젝트
- Fish Shell: 사용자 친화적인 문법과 강력한 기능을 제공하는 또 다른 셸 스크립팅 언어임.
- Zsh: Bash보다 더 많은 기능과 플러그인을 제공하는 셸로, 많은 개발자들이 선호함.
-
기술 도입 시 고려사항
- 기존 스크립트의 마이그레이션: 기존 Bash 스크립트를 Amber로 마이그레이션하는 데 필요한 시간과 노력을 고려해야 함.
- 커뮤니티 지원: 새로운 언어 도입 시 커뮤니티와 문서의 지원이 얼마나 잘 되어 있는지 확인하는 것이 중요함.
Hacker News 의견
해커뉴스 댓글 모음 요약
-
Bash와 POSIX sh의 호환성
- Bash를 작성하는 도구가 아니라 POSIX sh와 호환되는 도구였으면 좋겠음. MJML이 HTML 이메일을 작성하는 것처럼, Bash의 복잡성을 줄여주는 도구가 필요함.
-
Transpilation에 대한 의견
- Bash를 transpile하는 아이디어가 흥미로움. 설치 과정이 간단해서 좋음.
-
서브프로세스와 실패 처리
- 서브프로세스와 실패 처리에 대한 더 나은 방법이 필요함. 현재 문서에 있는 방법은 부족해 보임. 파이프의 종료 코드 전파에 대한 언급이 없음.
-
복잡한 DevOps 작업
- Bash를 사용해 복잡한 DevOps 작업을 하고 싶음. 하지만 Bash의 한계 때문에 jq, sed, awk 같은 도구를 함께 사용해야 하는 불편함이 있음. Amber 같은 도구가 이 문제를 해결할 수 있을 것 같음.
-
Amber의 출력물
- Amber의 출력물이 일관성이 없고 가독성이 떨어짐. 대부분의 컴파일러 출력물은 사람이 읽기 어렵지만, Amber는 아직 가독성을 희생할 만한 이점을 제공하지 않음.
-
임베디드 시스템에서의 사용
- 임베디드 시스템에서 복잡한 로직을 처리할 때 Amber가 유용할 것 같음. Bash만 사용할 수 있는 환경에서 더 나은 대안이 될 수 있음.
-
Bash의 문제점
- Bash에서 파이프라인과 서브쉘이 느림. 간단한 조건문도 복잡하게 변환됨. 외부 CLI 도구의 버전 호환성 문제도 있음. 배열을 중첩할 수 없다는 것은 사실이 아님.
-
Bash 학습의 중요성
- Bash를 배우는 것이 중요함. 새로운 대안을 배우기보다는 Bash의 기본을 배우는 것이 더 효율적일 수 있음.
-
외부 프로그램 호출 문제
- 간단한 작업에 외부 프로그램을 호출하는 것은 비효율적임. 순수 Bash로 컴파일되었으면 좋겠음.
-
Amber Smalltalk와의 혼동
- Amber Smalltalk와 이름이 같아서 혼동이 있었음. 새로운 언어가 같은 이름을 사용하고 있음.