-
Notifications
You must be signed in to change notification settings - Fork 14
Various stuff #182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
Mte90
wants to merge
15
commits into
main
Choose a base branch
from
stuff
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Various stuff #182
Changes from all commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
75bf0a6
feat(editor): kate
Mte90 88e510f
feat(doc): awesome in sidebar
Mte90 d575ad5
feat(doc): awesome in examples
Mte90 32e64de
feat(doc): bshchk
Mte90 9fef4df
feat(doc): bash/amber
Mte90 fd94449
feat(faq): a new page
Mte90 3cc629c
feat(faq): footer/header
Mte90 48b8814
feat(faq): press
Mte90 e4e0654
feat(faq): press
Mte90 1cee64e
feat(faq): press
Mte90 7182d34
Update docs/nightly-alpha/getting_started/faq.md
Mte90 71d4eb8
Update docs/nightly-alpha/getting_started/faq.md
Mte90 ac27e49
Revise Amber feature comparison in FAQ
Mte90 5063415
Update faq.md
Mte90 b7b66b0
Add Zine section with Paged Out #8 link
Mte90 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,5 @@ | ||
| > WARNING: Experimental standard library is used here. The full documentation covering it will be created soon as it get's more stable. | ||
|
|
||
| Here, you’ll find a collection of practical scripts designed to help you quickly grasp the fundamentals and advanced features of the Amber programming language. Whether you are new to programming or an experienced developer, these examples will guide you through. | ||
|
|
||
| Also check out [Awesome Amber](https://github.com/amber-lang/awesome-amberlang) - a curated list of awesome Amber tools, libraries, and resources. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,109 @@ | ||
| # FAQ | ||
|
|
||
| ## Who is Amber for? | ||
|
|
||
| Amber is aimed at developers who need the power of a modern programming language while staying within the ubiquitous Bash environment. It is especially useful for: | ||
| - System administrators automating complex tasks. | ||
| - DevOps engineers writing portable scripts. | ||
| - Developers who want type‑safety and richer abstractions without abandoning the shell. | ||
|
|
||
| ## Why not Python? | ||
|
|
||
| Python excels at many domains, but it requires a separate runtime and often incurs additional deployment overhead. Amber compiles directly to Bash, so you can: | ||
| - Leverage existing shell tooling and pipelines. | ||
| - Deploy a single script without installing a language interpreter. | ||
| - Benefit from Bash‑native features (process substitution, job control) while enjoying high‑level syntax and safety. | ||
|
|
||
| ## Why not write Bash directly? | ||
|
|
||
| Pure Bash scripts lack static type checking, modular imports, and modern language constructs. Amber provides: | ||
| - A type system that catches errors early. | ||
| - Structured imports and modules for better code organization. | ||
| - Built‑in helpers (e.g., safe string interpolation, automatic error handling) that reduce boilerplate. | ||
|
|
||
| ## How does Amber compare to other languages? | ||
|
|
||
| | Feature | Amber | Bash | Python | | ||
| |---|---|---|---| | ||
| | Compiles to Bash | ✅ | ✅ | ❌ | | ||
| | Static typing | ✅ | ❌ | ✅ | | ||
| | Native shell integration | ✅ | ✅ | ❌ | | ||
| | Learning curve | Low | Moderate | Moderate | | ||
|
|
||
| Amber fills a niche between lightweight shell scripting and full‑featured high‑level languages. | ||
|
|
||
| ## Is Amber production‑ready? | ||
|
|
||
| Amber is under active development. The **nightly** provides the latest features and improvements, but may contain breaking changes. For production workloads, we recommend using the latest stable release (e.g., `0.5.x`) rather than the nightly build. | ||
|
|
||
| ## Can I use Amber for system scripts? | ||
|
|
||
| Yes. Amber is designed for exactly that purpose. It can replace many typical Bash one‑liners and larger maintenance scripts, offering better readability, safety, and testability while still running on any POSIX‑compatible system. | ||
|
|
||
| ## What shells does Amber support? | ||
|
|
||
| Currently, Amber targets **Bash** versions 3.2 through 5.3. We actively test across: | ||
| - Linux (GNU bash 3.2-5.3) | ||
| - macOS (bash 3.2) | ||
|
|
||
| The compiled code is highly portable and will run on any system with the target shell installed. | ||
|
|
||
| ## Can Amber compile to other shells like Zsh or POSIX sh? | ||
|
|
||
| Yes, this is actively being developed. Amber currently targets Bash as its primary shell, but we're working on mechanisms to allow targeting different shells. For now, you can use Amber's built-in features that have equivalents in POSIX shell, and we're working on a target configuration that will let you specify the target shell. | ||
|
|
||
| ## Why not just use an LLM to write scripts? | ||
|
|
||
| LLMs can generate scripts, but they come with their own challenges: | ||
| - Scripts may only work on your machine with your specific Bash version | ||
| - No type safety or compile-time error checking | ||
| - Security concerns with AI-generated code | ||
|
|
||
| Amber provides the ease of writing with a modern syntax while ensuring your scripts work reliably across different environments. | ||
|
|
||
| ## Is Amber better than Python for shell tasks? | ||
|
|
||
| It depends on your needs: | ||
|
|
||
| | Consider Amber if... | Consider Python if... | | ||
| |---------------------|----------------------| | ||
| | You need maximum portability (only Bash required) | You need external dependencies (pip packages) | | ||
| | Your scripts should run on any Unix-like system | You control the strict deployment environment | | ||
| | You want type safety in shell scripting | You need complex data structures or pip dependencies | | ||
| | You prefer Bash-native features | You need complex APIs or specific integration with other technologies | | ||
|
|
||
| Many users use Amber for system administration and DevOps tasks where portability matters, and Python for application development where ecosystem matters more. | ||
|
|
||
| ## Can I use Amber for CI/CD pipelines? | ||
|
|
||
| Absolutely! Amber shines in CI/CD because: | ||
| - Only Bash is required (pre-installed on all CI runners) | ||
| - Type safety catches errors before they reach production | ||
| - Scripts compile to clean, readable Bash | ||
| - *Bshchk* validation ensures dependencies exist | ||
| - The compiler itself can be installed via various methods (bin, brew, pip, etc.) | ||
|
|
||
| We even use Amber to generate parts of our own documentation! | ||
|
|
||
| ## How does Amber handle error cases? | ||
|
|
||
| Amber enforces explicit error handling at compile time. If a function can fail, Amber will not compile your code unless you handle both success and failure cases, either by displaying an error message or failing silently. This prevents the "silent failure" problem common in Bash scripts where commands fail but execution continues as if nothing happened. | ||
|
|
||
| ## Can Amber generate Bash that ShellCheck would accept? | ||
|
|
||
| Yes! Our focus on clean Bash generation means the compiled code follows ShellCheck (not yet at 100%) best practices. We're also working on integrating ShellCheck into our CI pipeline to ensure the generated code maintain high quality standards. | ||
|
|
||
| ## Is Amber suitable for beginners? | ||
|
|
||
| Yes, Amber is designed to be approachable: | ||
| - Syntax similar to JavaScript/Python/Rust (familiar to most developers) | ||
| - Type system catches common mistakes early | ||
| - Built-in functions reduce boilerplate | ||
| - Documentation includes many examples | ||
| - The compiler provides helpful error messages | ||
|
|
||
| Many users start with Amber to learn scripting concepts before moving to more complex languages. | ||
|
|
||
| ## Why was Amber created? | ||
|
|
||
| The project started as a PhD research topic, focusing on making Bash scripting safer and more maintainable. It gained community interest and evolved into a full project. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| # Press | ||
|
|
||
| Amber has attracted attention from various media outlets and community platforms, highlighting its innovative approach to compiling to Bash and its growing ecosystem. | ||
|
|
||
| ## Articles | ||
|
|
||
| - [Amber compiles to Bash – Hackaday (May 2024)](https://hackaday.com/2024/05/22/amber-compiles-to-bash/) – An overview of Amber’s design and its ability to generate Bash scripts. | ||
| - [Bash via transpiler – Hackaday (Feb 2026)](https://hackaday.com/2026/02/12/bash-via-transpiler/) – Discusses Amber as a modern transpiler targeting Bash. | ||
|
|
||
| ## Zine | ||
|
|
||
| - [Paged Out #8](https://pagedout.institute/?page=issues.php) - A 1-page article about Amber | ||
|
|
||
| ## Conference talks | ||
|
|
||
| - [FOSDEM 2026 – Amber: Bash Transpiler (talk slides)](https://fosdem.org/2026/schedule/event/GGLZS9-amber-lang-bash-transpiler/) – Presentation at FOSDEM with slide deck hosted at https://mte90.tech/Talk-Amber/. |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This explanation of nightly is not so suitable the question (Is Amber production‑ready)