The ABS programming language

abs-lang.org

73 points by gjvc 2 days ago


OskarS - 2 days ago

The superpower of shell scripting languages is not just that it's easy to run external processes, it's also that you can run them extremely flexibly: chain them into pipelines, run them in background, redirecting streams, process substitution, etc. These kinds of things is why "just use Python or whatever!" is not always a great answer to "shell scripting sucks" (which it does, I agree). I mean, you CAN do all those things in Python, but it's a huge pain in the ass to write compared to the dedicated syntax of shell scripting.

If the developers of ABS are reading this, it would be great some examples of that kind of thing to the homepage. Like, how would you do `curl <url> | grep something | sort | uniq | tee output.txt`? What about process substitution? What about redirecting stderr to stdout? And, the biggest problem with shell scripting is escaping problems, how does ABS handle that? Can you run a command with an array of strings as argument instead of having the shell split on (unescaped and unquoted) spaces?

niutech - 2 days ago

What's the rationale? We have many well established cross-platform shell languages, like PowerShell, Perl, Python, AWK. What does ABS do better than them?

frou_dh - 2 days ago

Not sure I like `command` failing silently, i.e. having to remember to check the .ok property. Most guidelines for writing sh/bash scripts arrive at using "set -e" mode unless you have a good reason not to. So when designing a new language, why not flip the default?

__alexs - 2 days ago

"joy of shell scripting" feels like something only someone who has never done any shell scripting would say. Shell is a horrendous excuse for a programming language that is truly one of the hardest things to deliver working software in.

Gabrys1 - 2 days ago

I'm normally very skeptical about new languages, but this one, actually looks very very promising!

At places it looks like plain old PHP without the need for <?, in other I can see some goodies from JS with a bit of Python sprinkled as well.

It really looks like the author gave it a proper thought! Good job!

tpoacher - 2 days ago

Personal nitpick, but whenever I see a project trying to promote itself by actively bashing (no pun intended) the current solution in its tagline, no-matter how catchy the tagline, my gut feeling is to avoid it without spending much time to evaluate the offering.

I'm much more receptive to projects telling me how they're good, rather than how the competitor is bad.

ThomasCloarec - 2 days ago

This looks interesting! The syntax seems clean and the built-in concurrency features are quite appealing. Has anyone used this in production?

gritzko - 2 days ago

Next objective absh?

munchlax - 2 days ago

I can see the intent of the logo but it looks like it's missing a left eye.

webdevver - 2 days ago

Altogether Brilliantly Splendid

IshKebab - 2 days ago

> Bring back the joy of shell scripting.

There was joy?

Seriously though, this actually doesn't look half bad. The problem is you can easily achieve the same thing in basically any standard scripting language (Typescript, Python, etc.) just by replacing backticks with a function call.

Actually in Typescript you can use tagged string so it could just be one extra character if you want:

  let result = x`ls -l`;
Is saving that one character worth using a niche language?
djmips - 2 days ago

Oh boy another meaning mapped onto ABS!