← Back to context

Comment by dang

1 day ago

I wonder what a program written in that language looks like.

Slang? The IDE looked like Turbo C++ of old (blue, text based interface). Shortcuts are weird, so you need to remap keys to get sane defaults.

Probably the most unique feature is that the language supports spaces in identifiers. So you'd have variables like "Option Portfolio Risk" or functions like "Calculate Estimated PnL". Visually obviously different from Python, but it gave me Pythonic vibes.

It's also nice that it supports preconditions, so you can specify the valid range of arguments etc. It has some kind of OOP support but tbh it felt bolted on (understandably).

But the most value adding, IMHO, is the DevEx and deep integration with SecDb. Say what you want about the DOS-like IDE and the old (20+ years old for sure, maybe 30+) language, but you can deploy your code SO easily into production, with guardrails in place.

Out of curiosity, I implemented a toy language (thanks to Robert Nystrom's Crafting Interpreters) that supports spaces in identifiers (https://github.com/rayfdj/gaul-lang) as well. Makes for an interesting weekend coding project, and it helps me understand more the tradeoffs that Slang designers must have gone through.

  •    fn Calculate Portfolio Risk(Initial Investment, Risk Factor) {
          let My Very Special Adjustment = 0.95
          Initial Investment * Risk Factor * My Very   Special Adjustment
      }
    

    that is so cool; this is actually something i've been looking for a long time

    and jam karet looks interesting; `if input ~= "yes"` made me smile.

    i also liked the keyword replacement for multiple languages as well, that could be super usefull for children learning programming i'd think!

    • Thank you for the kind words! I had great fun implementing it. Robert Nystrom is such a hero for writing Crafting Interpreters.