19 điểm bởi GN⁺ 2024-05-23 | 5 bình luận | Chia sẻ qua WhatsApp
  • Một ngôn ngữ lập trình hiện đại, an toàn kiểu và an toàn khi chạy, được biên dịch sang Bash
    • Giúp viết script bằng cách xử lý nhiều lỗi và sai sót ngay trong quá trình biên dịch.
  • Các tính năng chính
    • Cú pháp hiện đại: Nhiều tính năng ngôn ngữ sẽ tạo cảm giác quen thuộc và có thể học nhanh hơn nhiều so với việc học Bash từ đầu.
    • An toàn khi chạy: Đây là một trong những thành phần quan trọng thường thiếu trong script shell thông thường, cho phép bắt được nhiều lỗi ngay tại thời điểm biên dịch.
    • An toàn kiểu: Mọi lệnh và hàm Bash có thể thất bại đều bắt buộc phải được xử lý theo một cách nào đó.
  • Có thể dùng như một giải pháp portable trên macOS và Linux.

Ý kiến của GN⁺

  • Ưu điểm của Amber
    • Tăng năng suất phát triển: Nhờ cú pháp hiện đại và tính an toàn kiểu, lập trình viên có thể viết script nhanh hơn và an toàn hơn.
    • Giảm lỗi: Có thể bắt được nhiều lỗi tại thời điểm biên dịch, từ đó giảm lỗi khi chạy.
  • Điểm cần cân nhắc
    • Đường cong học tập: Với những người vốn viết script Bash, có thể sẽ cần thời gian để làm quen với cú pháp và khái niệm mới.
    • Vấn đề tương thích: Có thể phát sinh vấn đề tương thích với một số script Bash cụ thể.
  • Các dự án tương tự
    • Fish Shell: Một ngôn ngữ/script shell khác cung cấp cú pháp thân thiện với người dùng và nhiều tính năng mạnh mẽ.
    • Zsh: Một shell cung cấp nhiều tính năng và plugin hơn Bash, được nhiều lập trình viên ưa chuộng.
  • Các điểm cần cân nhắc khi áp dụng công nghệ
    • Di chuyển script hiện có: Cần cân nhắc thời gian và công sức cần thiết để chuyển các script Bash hiện có sang Amber.
    • Hỗ trợ cộng đồng: Khi đưa vào một ngôn ngữ mới, điều quan trọng là phải kiểm tra mức độ hỗ trợ từ cộng đồng và tài liệu.

5 bình luận

 
cometkim 2024-05-27

Làm tôi nhớ đến Batsh ghê haha

 
kandk 2024-05-24

Cái này hay đấy!

 
coremaker 2024-05-24

Có lẽ dạng này nên được gọi là transpiler hơn là compiler.

 
secret3056 2024-05-24

Tôi cũng nghĩ vậy, nhưng có vẻ dạo này người ta đều gọi là trình biên dịch.
Ngay cả trình biên dịch TypeScript (?) cũng được gọi là tsc, nên...

 
GN⁺ 2024-05-23
Ý kiến trên Hacker News

Tóm tắt các bình luận trên Hacker News

  • Khả năng tương thích giữa Bash và POSIX sh

    • Sẽ tốt hơn nếu đây là công cụ tương thích với POSIX sh thay vì là công cụ để viết Bash. Giống như MJML dùng để viết email HTML, cần một công cụ giúp giảm bớt độ phức tạp của Bash.
  • Ý kiến về transpilation

    • Ý tưởng transpile sang Bash khá thú vị. Việc cài đặt đơn giản là một điểm cộng.
  • Xử lý subprocess và lỗi

    • Cần một cách tốt hơn để xử lý subprocess và lỗi. Cách hiện có trong tài liệu có vẻ chưa đủ. Không thấy đề cập đến việc truyền mã thoát của pipeline.
  • Các tác vụ DevOps phức tạp

    • Muốn dùng Bash để thực hiện các tác vụ DevOps phức tạp. Nhưng do hạn chế của Bash nên bất tiện khi phải dùng thêm các công cụ như jq, sed, awk. Một công cụ như Amber có thể sẽ giải quyết được vấn đề này.
  • Đầu ra của Amber

    • Đầu ra của Amber thiếu nhất quán và khó đọc. Đầu ra của hầu hết trình biên dịch vốn khó để con người đọc, nhưng Amber hiện vẫn chưa mang lại lợi ích đủ lớn để đánh đổi khả năng đọc hiểu.
  • Sử dụng trong hệ thống nhúng

    • Amber có vẻ sẽ hữu ích khi xử lý logic phức tạp trong hệ thống nhúng. Trong môi trường chỉ có thể dùng Bash, đây có thể là một lựa chọn tốt hơn.
  • Các vấn đề của Bash

    • Pipeline và subshell trong Bash chạy chậm. Ngay cả câu lệnh điều kiện đơn giản cũng bị chuyển thành dạng phức tạp. Ngoài ra còn có vấn đề tương thích phiên bản của các công cụ CLI bên ngoài. Việc không thể lồng mảng vào nhau thực ra không đúng.
  • Tầm quan trọng của việc học Bash

    • Học Bash là điều quan trọng. Thay vì học một giải pháp thay thế mới, có thể sẽ hiệu quả hơn nếu nắm vững những kiến thức cơ bản của Bash.
  • Vấn đề gọi chương trình bên ngoài

    • Việc gọi chương trình bên ngoài cho các tác vụ đơn giản là không hiệu quả. Sẽ tốt hơn nếu nó được biên dịch thành Bash thuần túy.
  • Sự nhầm lẫn với Amber Smalltalk

    • Có sự nhầm lẫn vì trùng tên với Amber Smalltalk. Một ngôn ngữ mới đang dùng cùng tên này.