Live data from Hacker News

The Senegal Programming Language

github.com

11–20 of 80 posts

Re: The Senegal Programming Language

#11
post #10

I'm not sure I'm a fan of the 'Enhance' concept[0]. It seems to be similar to prototype Pollution in JavaScript[1] which is generally considered bad practice. I can't tell, is `Enhance` scoped to the current context? Or does it affect all of that type throughout the rest of the program? [0] https://lang-senegal.web.app/docs/enhance [1] https://portswigger.net/daily-swig/prototype-pollution-the-d...

The "enhance" seem to be monkey patching, which is a common practice in dynamic languages. Prototype pollution is when malicious people use monkey patching to introduce vulnerabilities.

There are non-malicious issues related to prototype pollution. The most recent that comes to mind are packages overwriting each other. How do you handle two enhances that add the same function name? In JavaScript the second overwrites the first, which can cause issues if the functions do different things.

Re: The Senegal Programming Language

#12
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 that deserve a swing.

Re: The Senegal Programming Language

#13

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…

I'm working on one! It's not ready to be shown off yet, but I outlined the core ideas here: https://www.brandons.me/blog/the-bagel-language

Re: The Senegal Programming Language

#14
post #3

Earlier quoted context omitted.

I have the same question. The documentation does a good job presenting the language, but not the motive or sweet spot use case.

There's a Discord where you can probably get the answer to your question: https://discord.gg/9dq6YB2

Official Discords/Slacks for programming languages should be considered an antipattern - especially if they end up replacing documentation or a discussion group.

It's as if the new generation of developers doesn't realize the difference between transient conversations (which is what happens on Discord/Slack) and creating knowledge (which needs to be persistent and searchable, neither of which is afforded by aforementioned chat services).

Re: The Senegal Programming Language

#16

Earlier quoted context omitted.

There's a Discord where you can probably get the answer to your question: https://discord.gg/9dq6YB2

Official Discords/Slacks for programming languages should be considered an antipattern - especially if they end up replacing documentation or a discussion group. It's as if the new generation of developers doesn't realize the difference between transient conversations (which is what happens on Discord/Slack) and creating knowledge (which needs to be persistent and searchable, neither of which is afforded by aforement…

Did programming language projects utilize IRC channels in the past?

Re: The Senegal Programming Language

#17

Earlier quoted context omitted.

Official Discords/Slacks for programming languages should be considered an antipattern - especially if they end up replacing documentation or a discussion group. It's as if the new generation of developers doesn't realize the difference between transient conversations (which is what happens on Discord/Slack) and creating knowledge (which needs to be persistent and searchable, neither of which is afforded by aforement…

Did programming language projects utilize IRC channels in the past?

They did. Some software tooling still does. It's still an antipattern if it replaces documentation.

This applies to communities in general (on-line and off-line). Knowledge needs to be captured outside of the minds of select participants. It's e.g. why, in our local Hackerspace, I always insisted on the rule that anything said on IRC (or later, Telegram) is non-binding - the only things that matter are ones decided on the mailing group or documented on the wiki. To do otherwise is to force out everyone who can't keep pace with the common chat.

Re: The Senegal Programming Language

#18

Earlier quoted context omitted.

There's a Discord where you can probably get the answer to your question: https://discord.gg/9dq6YB2

Official Discords/Slacks for programming languages should be considered an antipattern - especially if they end up replacing documentation or a discussion group. It's as if the new generation of developers doesn't realize the difference between transient conversations (which is what happens on Discord/Slack) and creating knowledge (which needs to be persistent and searchable, neither of which is afforded by aforement…

The above are persistent and searchable, unless you're using the free version of Slack which sets a limit on persistence

But regardless, my experience is that once languages reach a critical mass they do get real documentation in a more browsable format. And I think Discord is a totally valid temporary solution for documentation, and a totally valid replacement for discussion groups.

Re: The Senegal Programming Language

#20
Small suggestion: The 'docs' link in the README should link directly to /docs rather than a place that shows less than where I came from.

Reading through the docs I was wondering 'why' as mentioned in another comment. I hoped to find it in the concurrency section and was disappointed to see that it's only single-thread async:

> Coroutines are light-weight thread-like objects allowing you to write asynchronous non-blocking code as well as handle errors in Senegal. The key difference between threads and coroutines is that a program with threads runs several threads concurrently, whereas coroutines run a single coroutine and cooperatively. A coroutine is not paused so that control can be given to another unless and until you tell it to.

There still was a section about C interfacing, but many languages do that. In the end, it seems to be about syntax which is the least interesting thing about a language. What can a new language do that an existing one doesn't do well? If it's a hobby project that's well and good. Only wasn't clear what the intentions/target is from the too brief README.

Post reply on HN