19P by neo 2달전 | favorite | 댓글 5개
  • 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와 이름이 같아서 혼동이 있었음. 새로운 언어가 같은 이름을 사용하고 있음.

Batsh가 떠오르네요 ㅎㅎ

이거 좋네요!

이런 형태는 컴파일러라기 보다 트렌스파일러라고 해야하는 것 같기도 합니다.

저도 그렇게 생각하는데, 요즘은 다 컴파일러라고 부르나봅니다.
타입스크립트 컴파일러(?)도 tsc라고 부르고...