Live data from Hacker News

The Senegal Programming Language

github.com

61–70 of 80 posts

Re: The Senegal Programming Language

#61
post #56
post #32

Earlier quoted context omitted.

> Senegal is compiled and Wren is interpreted Senegal seems to use a bytecode interpreter: https://github.com/SenegalLang/Senegal/blob/22fe863ad234e43a...

I'm curious about what they mean by "Fast single-pass compiler". Maybe it's the compiler to bytecode?

Almost certainly. Lua’s source => bytecode compiler also fits that description.

Re: The Senegal Programming Language

#63
post #6

As always, all languages, especially the new one, should have a "why" section. Small caveat: maybe it's still under construction and the person that posted it just found it too early. But once you're ready to show it to the world, please include the why! Note that anything is valid in the "why", even "just for fun" or "because I could". For now there is: > Senegal is a powerful, small-but-fast, concurrent, class-base…

Surely this is the responsibility of the person posting this on HN, not the person who put the code on github. The owner of this repo owes absolutely nothing to random commenters on HN.

Re: The Senegal Programming Language

#64
post #59

Earlier quoted context omitted.

Also picking a name that can easily and unambiguously searched on is a big plus.

That's true, though many languages don't respect that (Go, Java, Rust).

Rust and especially Go have no excuse. Java is old enough that "SEO" wasn't much a priority back then.

Re: The Senegal Programming Language

#66
post #6

As always, all languages, especially the new one, should have a "why" section. Small caveat: maybe it's still under construction and the person that posted it just found it too early. But once you're ready to show it to the world, please include the why! Note that anything is valid in the "why", even "just for fun" or "because I could". For now there is: > Senegal is a powerful, small-but-fast, concurrent, class-base…

Surely this is the responsibility of the person posting this on HN, not the person who put the code on github. The owner of this repo owes absolutely nothing to random commenters on HN.

As I've said:

> maybe it's still under construction and the person that posted it just found it too early. But once you're ready to show it to the world, please include the why!

So I don't think we disagree here.

> The owner of this repo owes absolutely nothing to random commenters on HN.

It's not about "owing" anything to anyone, it's about giving useful feedback. If the language has no way to do IO, and nowhere it says that it's a feature, I would have included the lack of IO in my feedback. The author is free to ignore my feedback, just like I'm free to give constructive feedback.

Re: The Senegal Programming Language

#68
post #54

so many new programming languages come out that are almost identical to existing ones. Where's the crazy ideas (aside from the esoteric languages, which are different because they're intentionally difficult). I'd love to see more entries in the areas other than OO or procedural languages (or even just a variation on those, like an actor-model language). There's so many ideas in the programming language theory space t…

And not less ideas that could improve usability of existing ones, like conditionals, loops and self-reference in object literals, { if (cond) set {a: 1}, for (x of values) set {[x.name]: x}, b: thisob.x, c: {d: thisob.c}, } enhanced data transfer, dest.{a, b, [key]} = src default values, var x = arg ?? 1 optionality and mandatoryness, var x = f?(…)?.info![key] ?? " " scope objects and flow control in these, function…

We can get rid of the var and let keywords if we embrace single assignment like Erlang.

Re: The Senegal Programming Language

#70
post #58
post #33

Earlier quoted context omitted.

The function vs procedure difference reminds me of VBA actually. In VBA, functions can return values and subs can't. That always made sense to me. VBA has it's issues, but there are some good qualities.

That's how I learned programming at the university. A function returns something, a procedure doesn't. Koka has something a bit like that with typed effects https://koka-lang.github.io/koka/doc/index.html .

This is one of the big things I love about Haskell. Its way of making effects explicit and easy to spot in the function signature always struck me as insanely useful for exactly those reasons (though, obviously, it goes a step further where every function always has to return something, even if it is an effect or an effected state). In retrospect, I wish Rust had adopted something like this since it took a lot of inspiration from Haskell anyways, but I am very glad that there are people like you out there that are trying to remind people of this insanely useful concept of making effects more explicit!

Wish you all the best with Bagel!

Post reply on HN