Show newer

re: C++ & Rust 

@amiloradovsky@functional.cafe

That's not what I meant. In rust unsafe code is not about the type checks, it's about ownership checks. I'll never turn off type checks, since, unlike ownership checks, they have no cons (and it'll certainly not make my life easier if I did). There is no need to turn off type checks when implementing an efficient intrusive linked list.
Rust's narrative is that the borrow checker is like the type system - universally applicable and superior abstraction framework. I simply disagree with that. It's more like a design pattern as I mentioned, it has pros and cons, and should be optional and better integrated with the language as an optional feature. The mandate of the borrow checker feels as tyrannical to me as that of virtual inheritance in the OOP languages, from the perspective of ergonomics (in many other ways it's certainly not as bad).

@newt

re: C++ & Rust 

@amiloradovsky@functional.cafe

That's the usual justification for unsafe blocks. I think if the constraints are good fit for the use case, the players will have no incentive to switch to anything, and that's the only way to ensure safety, otherwise nothing will stop them, not to mention that unsafe is not the easy mode, it's the hard mode. Wood carving with a sharper knife is better, not because it can't cut you, but because you are less likely to make mistakes when everything is going smoothly.

The better language would have better primitives to allow the programmer to impose constraints where it matters and relax them where it doesn't. And yes I'll say the same about purity or immutability: applied across the board they are insufficient, and allowing exceptions diminishes their value, compared to them being optional.

Another common argument is that it's easier to pay attention to and keep track of unsafe blocks. IMO it isn't. If you break invariants, anything can go haywire anywhere at any time with no indication to any specific unsafe block. There is no mechanical process of ensuring integrity. At the end of the day people ensure it. You can create a super safe virtual machine, that as far as the processor or the kernel or any other "overseer" are concerned has no errors, but people can still make internal logic errors causing undefined behaviour worse than jumping to a random address.

Rust's borrow checker is cool, I like it and can't wait until a better version of it is implemented as a c++ library or two.

@newt

@mathlover Whoever made the claim should provide the proof, show in the repo. You don't get to make baseless speculative claims on FOSS software.

There were some clients, like tusky, that blocked gab on the client side, and people went on a holy crusade against everyone that didn't do that, but that's pretty much it, when it comes to hard coded blocks.
github.com/tootsuite/mastodon/

re: C++ & Rust 

@amiloradovsky@functional.cafe

Didn't mean marketed in a full on marketing industry sense, just culturally, we often tend to oversell unfinished R&D. It was presented in every c++ related conference, claimed to be both fast and safe (as fast and safer) and to have finally solved the memory management problem for good, by breaking the shackles of c++ legacy. It was not explained as something between c++ and a garbage collected functional language, which might be its fallback now. Speed/efficiency is one of the most important things in this context. It is indeed dependent on the data structures, that's why I was very disappointed to find out that there is no way to implement certain (even memory safe) data structures in safe rust efficiently, not because I want to write my own intrusive doubly linked list, but because trying to solve a problem with safe rust I will never arrive at the next such data structure that might fit the problem perfectly. I still have to revert to abstractions of c/c++ to conceive of this structure and then go back and see if I can wedge it into rust with unsafe code. In my eyes this makes rust a failure from the very "cost/overhead of abstractions" point of view you're referring to: the cost of safe rust is the optimal data structure for my problem (potentially).

In a more relaxed context, talking about social aspects, and ways people write code, I'd argue that the ease of writing decent code is more important. If the compiler is a huge PITA, people would be more inclined to override it with unsafe code or otherwise work around it (turn a memory error into a logic error, dangling pointer into an invalid index/id). You don't want this kind of rules to be enforced from top to bottom, like "you'll be fired if I see unsafe code", especially since there are legitimate use cases. You want simple rules that you can trust people to follow (even under pressure), and a higher level language or a coding guideline fit this role much better than a mechanical borrow checker, which you have to struggle to understand sometimes. C++ compiler can give you hard time as well, but it's all optional (aside form very simple core derived from C, arguably the simplest language) meaning someone in your "team" has conceived the rules that are imposed in specific context and you can "discuss" it with them humanely, at least in theory.

@newt

re: C++ & Rust 

@amiloradovsky@functional.cafe @newt Rust was an experiment, but, as is usual for our industry, heavily marketed as heavenly manna way before it was ready. While showing some promising result, all in all the experiment failed to achieve it's ultimate goal of being a faster and safer language, and solving memory management once and for all. It just proved to be yet another design pattern that has both advantages and disadvantages. IMO in future c++ (and other languages that have memory/resource management) will have features to support this design pattern even better, while rust will get stuck as a perfect solution for no longer relevant problems.

@valleyforge That makes no sense, axiom do not require proofs, they are simply chosen. Godel proved that for any chosen of axioms (of sufficient complexity) there is no machine (mechanical process) that can prove/disprove all possible theorems. There might be a mechanical process that can prove a finite set of useful theorems however, and we might be able to continually expand this finite set by choosing new axioms. The result is equivalent to Turing's on the halting problem. The opposing ambition was the god machine, whether they realized it at the time or not.

@zens@merveilles.town The proprietary software is just as bad. The problem isn't that everyone is dumb, it is that no one is solving your particular problem. The proprietary software establishes the international monopoly, dictates a virtual natural habitat for the user base, and then free software tries to compete with it in the market of possible monopolies. But there is no one size that fits all. There shouldn't be 10 different linux distros competing for world dominance in desktop market, there should be 10 of em per state/city, each fit for its own purpose, adhering to objectively set quality standards, offered directly to general public by local professionals under warranty. For this to happen everyone involved in the industry needs to freaking grow a spine and start establishing real businesses that provide real services, even if it means putting themselves in a risky exploitable positions, instead of exploiting their customers.
@praxeology

Prioritizing mechanical thinking, functional programming languages are primitive and inexpressive, at their extremes resembling assembly.

@fikran @SeanAloysiusOBrien Not sure about history myself, they are to withdraw from the disputed territories, Nagorno-Karabagh (and surrounding regions), which by most of international community is recognized as territory of Azerbaijan occupied by Armenia. Russians at the same time will enter these territories as peacekeepers.

@fikran @SeanAloysiusOBrien technically (internationally recognized) Azerbaijan's territory was considered occupied, so it was taken back. From the same perspective no Armenian territory was occupied. Russian forces however are to be deployed in Azerbaijan's territory now, and stay there for at least 5 years. This is strange, since Russia is considered pro-Armenian (military ally, has a base there, often narratively on same side), but hopefully the narrative of victory will hold, and there will be no further escalations.

@SeanAloysiusOBrien @fikran There is unrest, but no military coup or takeover. Angry mob broke into the parliament and vandalized it a bit, until police showed up. They mostly peacefully left the building then, but stayed on the main square demanding answers/retribution/whatever, not particularly organized.

Some key territories were already lost, and the Armenian leadership in the disputed territory asked for help, cause the situation was dire. That's why prime minister signed the agreement. What's strange is why Azerbaijan, supposedly winning, agreed on the deployment of Russian forces in the region. It could be related to the Russian helicopter they accidentally shot down in Armenian territory (not disputed territory), issuing an official apology few hours before the agreement was signed. Now Russia will likely assume full control over the situation, no military coup or takeover can realistically change that, only the intervention of another world power with another agenda. Armenia alone can't continue the war, but the opposition will use this opportunity to undermine the current government in every way they can.

re: trolley problems 

@machado My point applies to all interpretations of the problem.
How is it that you know that either the workers or the bystander will have to die, and both the workers and the bystander (or anyone else that might be involved) are uninformed and entirely powerless? Did you cut their only communication lines? Seal all the possible escape routes? How did you absolutely ensure their chances of survival to be nil, or somehow exactly equivalent, all dependent on this single lever?
How did you find this exact number of people, and accurately predict, that before a willing or otherwise diseased donor is found they will all die, unless at this very second you butcher another person of all of their organs, which will, by a miracle alignment of all stars and planets, save them all. Or are you suggesting to preemptively butcher people, to always have enough organs "in stock", and sell the meat as well, cause why not at that point?
The problem is much more fundamentally flawed than you think, and there are people who are either convinced that majority should always be chosen, or that there is no clear choice, without questioning the premise which is in no way natural and most certainly orchestrated. I've yet to read an example that doesn't make its author look like that puppet from saw (though I haven't watched the movies).

There are situations where we are forced to make uninformed choices, but those are just that, we make them and we face the consequences. There is no right or wrong in that regard. The trolley problem is not uninformed however, it requires us to be informed to a degree only possible if we are the orchestrator, or being manipulated by the orchestrator.

@amiloradovsky@functional.cafe

re: random thought, not computers 

@amiloradovsky@functional.cafe The biological cloning thing in pop culture never made sense to me either. From what I understand you'd just get a baby at best, and that age gap by itself already invalidates most dilemmas, even if you have a perfect plan to raise them exactly the same way. Legally They become equivalent to children. If the clone is made at conception it's just twins. If too many are made at conception it's just a degeneracy. It doesn't work however you try to slice it. To raise all the usual dilemmas an electromagnetic copy would make more sense, but that's in the realm of the fantastical.

Now I will address the real reason for my reply, the trolley problem, which I hate even even more than you, since to me it's nefarious and not just waste of time. My conviction is that the situation is only possible if orchestrated by a perpetrator, who is not mentioned, and therefore assumed to be acceptable. To convince someone to accept the dichotomy (not even choose a stance) in this context is to convince them to allow themselves to be manipulated by such perpetrators, instead of challenging them. If you do find yourself is similar dilemma your first conclusion should be that whoever is conveying you the information is trying to manipulate you. I advice, when presented with the trolley problem, to relentlessly pressure the presenter in accusatory manner (did you tie those people to the rail? how do you know they are there then? you have a surveillance system in place and yet didn't prevent this situation? if they compromised the surveillance system, how do I know they didn't compromise the lever? are you in cahoots with them?) and enjoy their frustration.

@machado

@chris @freemo About everything at all times, nobody is anything. We must resits out primitive mind's tendency to eliminate dimensions, such as context and time.

@georgia first statement make's sense, the rest I confuse. We are apart in a sense that we cannot understand a lot of the world, and we can understand each other best. Hubristic is to assume to be privy to some grand notion of "nature"/god that is everything, in a way deprecating natural(aptly named) science. All of this completely unrelated to my original point though.

@urusan

@georgia I do not understand what you are saying, so I'm just going to use your sentence as another example. This is not a common sense use, so my definition does not even apply. With nature = everything, what you wrote makes no sense, unless of course again being natural means being according to god's will (which I'm privy to as the prophet). The former makes your second sentence arbitrary and the latter makes it contradictory.

@urusan

@urusan I have no idea what you are going on about, no offence, but it sounds like a religious babble to me. Can you address what I wrote, or are you advocating to not use the word nature at all?

To reiterate and elaborate: your definition of the word is meaningless. The only meaningful definition is that it is what is not conscious/willful, or in some sense related to such as words are flexible. The distinction is as important as the distinction between any other two meaningful words, because language.

Examples:
It is human nature to be hungry.

Your definition (nature = everything):
It is human everything to be hungry.
Or simply, Humans get hungry. The use of word nature was pointless.

My definition (nature = not will):
It is human not will to be hungry.
Or rephrasing a bit, humans do not hunger by choice. The word expressed a clear meaning.

The only interpretation I got when pressing people on this is nature = everything = god's will:
It is human god's will to be hungry, that is, humans are hungry by god's will, that is someone with some sort of an appetite disorder is not human. Does that sound like a good interpretation of the original statement?

This new Gaia religion, teaching nature = everything (= god's will as that's the only way to not make the word completely meaningless), is in no way different from any other, and this is what you preach, while most normal people have an intuitive understanding of the word far superior to you conceptions.

@georgia

@urusan nature = everything is a meaningless definition for the word, unless you make it equivalent to the very god's will you detest so much, in which case it's simply misleading and uncommon. The only meaningful definition is that nature is what we consciously/willfully are not.
@georgia

@ostechnix Software marketing strikes again!

Headline: I'm gonna replace Qt just you watch!

First paragraph: Need moneys.

Further reading: Sorry guys I'm just a debug tool for gamedevs, utilizing programming techniques that have been proven to be inferior for any non-trivial GUI before I was born.

You used to be a cute humble little tool dear imgui -_-

Show older
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.