3 ms·
> is cleanly single-threaded And here I immediately lost my interest. Anything that cannot do real concurrency is a toy in my book. There's no excuse for a l
by crabbone 4y ago
> is cleanly single-threaded
And here I immediately lost my interest. Anything that cannot do real concurrency is a toy in my book. There's no excuse for a language developed for practical computers in 21'st century to not be able to utilize concurrency which is practically built into every existing computer.
- giraffe_lady 4y agoMaybe you should reread that sentence bc I don't think it says what you think it says.
- crabbone 4y ago[flagged]
- tmtvl 4y agoThen it's a good thing those words were preceded by: > It has a good concurrency system
- crabbone 4y agoIt has none. When code isn't executed concurrently, that's not concurrency. There's idiotic fashion to call unrelated things "concurrency", but it's the same as calling various soy drinks "milk". It just adds confusion for no reason. This language has zero concurrency. It has some mechanism to randomly / unpredictably execute bits of different functions in succession: this is worthless, but has nothing to do with concurrency.
- shadytrees 4y agoI think you're using concurrency in a non-traditional sense https://stackoverflow.com/questions/1050222/what-is-the-difference-between-concurrency-and-parallelism https://stackoverflow.com/questions/1050222/what-is-the-diff... and I also think you're being a little bit uncharitable
- crabbone 4y agoReally? You are going to quote StackOverflow for an expert opinion? Why should anyone care about what that site users have to say? "Concurrent" means that something happens at the same time. It's that easy. The use of the word you refer to is a marketing trick used to bait you and switch the products before you pay. It's used by people who want to justify the existence of a worthless tool by pretending it has something to do with the one you really want. Very similar to "vegan cheese", which is really not a cheese in any way, but it's sold to you labeled as "cheese" because you wanted cheese, not ground cashew nuts.
- c-cube 4y agoYou're wrong on all points :-) Vegan cheese is not named this way to trick you, it's for vegans who want something functionally similar to cheese. Same goes for oat milk and the likes, they're used _like_ milk, in coffee, etc. Concurrency can mean doing several things that are interleaved, even if they're not literally running on multiple cores. Otherwise, you literally couldn't have concurrent network connections because the NIC only sends one packet at a time. Similarly, fibers, promises, etc. are valid implementations of concurrency as they're running different, unrelated strands of logic in an interleaved fashion.
- crabbone 4y agoI'm not a vegan, so the vegan "cheese" isn't named like this to trick me. It's named like this to trick vegans. Apart from that, there are organizations that act on behalf and to protect consumers' rights. Some of that goes against false advertisement. This is why, for example, products that aren't meant for children or puppies aren't allowed to have children or puppies on the packaging, or the reason why it would be illegal for different products to have packaging that inflates the perceived amount of good that you buy by essentially, selling you air. This is also the reason that in many countries vegan "cheese" is not allowed to be called "cheese" in advertisements on on the packaging. Same goes for vegan "milk" and similar products. It doesn't have to be about vegan products, it was just a convenient example. In some countries "crab" sticks are only allowed to be called that if they actually contain some crustacean meat. Or products aren't allowed to be called "juice" if they have less than a certain % of actual juice in them and so on. "Concurrency" in languages like Janet is exactly the same thing. It is false advertisement. You pay with the lost ability to debug and to predict code execution path for nothing, whereas that would've been the price you might have wanted to pay for executing code concurrently. That's swindling. Most likely unintentional in the case of the people working on Janet, but for you, as a user, it makes little difference.
- jlokier 4y agoYou misread the sentence. Janet supports full parallel execution on multiple CPU cores using native operating system threads, while using clean and fast single-threaded data structures by default on each thread.