# Amber - Bash로 컴파일되는 프로그래밍 언어

> Clean Markdown view of GeekNews topic #14947. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=14947](https://news.hada.io/topic?id=14947)
- GeekNews Markdown: [https://news.hada.io/topic/14947.md](https://news.hada.io/topic/14947.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-05-23T08:39:36+09:00
- Updated: 2024-05-23T08:39:36+09:00
- Original source: [amber-lang.com](https://amber-lang.com/)
- Points: 19
- Comments: 5

## Topic Body

- Bash로 컴파일되는 현대적이고 타입 안전하며 런타임 안전한 프로그래밍 언어  
  - 컴파일 과정에서 많은 버그와 실수를 처리하여 스크립트를 작성할 수 있게 도와줌.  
- **주요 기능**  
  - **현대적 문법**: 많은 언어 기능이 친숙하게 느껴질 것이며, Bash를 처음부터 배우는 것보다 훨씬 빠르게 익힐 수 있음.  
  - **런타임 안전성**: 일반적인 셸 스크립트에서 누락된 주요 구성 요소 중 하나로, 컴파일 시점에 많은 버그를 잡을 수 있음.  
  - **타입 안전성**: 실패할 수 있는 모든 Bash 명령어와 함수는 반드시 어떤 방식으로든 처리해야 함.  
- macOS와 Linux에서 포터블 솔루션으로 사용 가능.  
  
### GN⁺의 의견  
  
- **Amber의 장점**  
  - **개발 생산성 향상**: 현대적 문법과 타입 안전성 덕분에 개발자가 더 빠르고 안전하게 스크립트를 작성할 수 있음.  
  - **버그 감소**: 컴파일 시점에 많은 버그를 잡을 수 있어, 런타임 오류를 줄일 수 있음.  
- **고려사항**  
  - **학습 곡선**: 기존 Bash 스크립트 작성자에게는 새로운 문법과 개념을 익히는 데 시간이 필요할 수 있음.  
  - **호환성 문제**: 특정 Bash 스크립트와의 호환성 문제가 발생할 수 있음.  
- **비슷한 프로젝트**  
  - **Fish Shell**: 사용자 친화적인 문법과 강력한 기능을 제공하는 또 다른 셸 스크립팅 언어임.  
  - **Zsh**: Bash보다 더 많은 기능과 플러그인을 제공하는 셸로, 많은 개발자들이 선호함.  
- **기술 도입 시 고려사항**  
  - **기존 스크립트의 마이그레이션**: 기존 Bash 스크립트를 Amber로 마이그레이션하는 데 필요한 시간과 노력을 고려해야 함.  
  - **커뮤니티 지원**: 새로운 언어 도입 시 커뮤니티와 문서의 지원이 얼마나 잘 되어 있는지 확인하는 것이 중요함.

## Comments



### Comment 25635

- Author: cometkim
- Created: 2024-05-27T17:27:03+09:00
- Points: 1

Batsh가 떠오르네요 ㅎㅎ

### Comment 25528

- Author: kandk
- Created: 2024-05-24T11:07:50+09:00
- Points: 1

이거 좋네요!

### Comment 25523

- Author: coremaker
- Created: 2024-05-24T09:57:29+09:00
- Points: 1

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

### Comment 25541

- Author: secret3056
- Created: 2024-05-24T14:06:24+09:00
- Points: 1
- Parent comment: 25523
- Depth: 1

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

### Comment 25484

- Author: neo
- Created: 2024-05-23T08:39:36+09:00
- Points: 2

###### [Hacker News 의견](https://news.ycombinator.com/item?id=40431835) 
##### 해커뉴스 댓글 모음 요약

- **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와 이름이 같아서 혼동이 있었음. 새로운 언어가 같은 이름을 사용하고 있음.
