Comments by "Anony Mousse" (@anon_y_mousse) on "Brodie Robertson"
channel.
-
218
-
63
-
49
-
48
-
48
-
47
-
40
-
40
-
38
-
35
-
30
-
27
-
27
-
26
-
25
-
25
-
24
-
23
-
22
-
21
-
19
-
19
-
17
-
17
-
17
-
17
-
17
-
15
-
14
-
14
-
14
-
14
-
14
-
13
-
13
-
If it only broke EAC, I'd say good, but as we all know, it wouldn't stop there, because every program that uses EAC wouldn't necessarily get an update. I don't know if EAC is implemented as a dynamic library which could easily be replaced, but I doubt it, and if this change in any way affected its ABI then it wouldn't matter. I guess it boils down to how good of a programmer are they. I'd wager abysmal, but then again I'm a pessimist. And since it didn't break just EAC, and since it's only 16k, and since a stable platform is a better platform, I'd say they need to go back and make it the default again.
13
-
11
-
11
-
11
-
Drew's point is actually a valid one. He's not telling them to innovate in making a completely new kernel, he's telling them to make something that copies Linux but as Rust. He's basically telling them to do what Rustaceans keep saying they want anyway, rewrite it in Rust. The other complaint that some of the kernel developers have had is also a valid one. They expect kernel developers to take time out of their busy schedules to help the Rustaceans essentially replace the kernel developers. The point about documentation is a valid one, even if I disagree that the kernel isn't well documented and ultimately irrelevant in light of the demands placed on the developers. Lina's complaint about object lifetimes basically boils down to, "the documentation doesn't tell me (which I still doubt) and I can't read the code (which I fully expect from someone that doesn't really know how to program)". If you don't know the language you're attempting to rewrite, then how the hell do you think you can rewrite it. Again, Drew's point comes to mind, attempt to replicate Linux using Rust, don't attempt a novel solution, and move forward from there. If they can't even do that, then they don't understand the kernel enough to contribute. I doubt anyone's programming chops when they bitch about code in the kernel having these supposed bugs with no link to a test replicating them. It sounds more like they're doing things wrong and then blaming the kernel developers. It's not on them to teach you how to write correct code.
10
-
10
-
10
-
9
-
9
-
9
-
9
-
9
-
9
-
9
-
9
-
9
-
9
-
8
-
8
-
8
-
8
-
8
-
8
-
8
-
8
-
8
-
8
-
8
-
8
-
8
-
8
-
8
-
8
-
8
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
My take, not that anyone will read it, but I still wish a new OS would crop up that combined the best aspects of both Windows and Linux. If someone were to read this I'm sure they'd disagree, but I think a lot of the original API design choices that Microsoft made were actually closer to good than Linux is even now. Even with source code in hand, I'd prefer that everything wasn't fully exposed to running programs. And I think the idea of having the GUI components implemented as part of the base OS API is a way better design, for so many reasons. However, some of the design choices of Linux were definitely better than Windows. Chief amongst those being the kernel separated from the majority of running components which allows the GUI to crash and not kill the whole OS. For that matter, I'm sure someone would want to remind me that Linux isn't an OS, but a kernel, and I'd say that's an irrelevant point because I want more of a base than just a kernel provides. And finally, if I ever get free time I may have to write it myself because surely no one else would.
5
-
5
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
If you want to understand why no one would push to maintain it, it's because Python as a language, whether 2 or 3, sucks. The changes in 3 are enough of an improvement and still similar enough in working that not many have problems updating code. Most of the problems really are with print, which is just F'd up. As for what you said about DOS, before my mom retired she worked for a company that still used DOS programs for their call center functionality. The company my dad worked for before he retired used DOS programs for their invoicing and shipping. The reasoning, as I understand it is, why pay to replace what still works. Sure, you could wind up with something better, and it might save you money in the long term, but the way industry keeps degrading as time goes on makes it far more likely that you'd wind up with something worse that would cost you way more money and you'd have to just go back to the old software anyway.
3
-
3
-
I personally dislike RISC architectures, but the competition is great and they are innovating more on product lines. So I'll use them, but I would prefer if a new platform would rise up to compete with both and be a more unified architecture. One of the reasons I like CISC better is because you can really pack instructions in the cache a lot better and it does have a noticeable speed increase on your system. Speed testing also proves that as they add more extensions the speed suffers when mixing modes a lot. That's why a lot of ARM devices still haven't fully gone 64-bit, and it's annoying as heck. If a new CISC architecture cropped up with 8 to 64 bit instructions baked in from the start, it would kill everything else. For that matter, I'd love to see the FPU be more integrated and work more similarly to the ALU. More registers, wider variety of sizes, and all usable whether we're talking about multimedia instructions or floating point. No more duality, and just be 64-bit on startup. It'd require a lot to get it going, but any of the larger chip makers could do it, if they had the testicular fortitude. No one will read this far, if they read this at all, but I'm sure people will disagree with this vehemently for one reason or another, if they respond at all.
3
-
3
-
3
-
3
-
I would say the reason to use a terminal file manager is because you can do everything that a GUI file manager can do, but you can use more keyboard shortcuts which is something a terminal user tends to like to do more. Along with the fact that you don't need to type a full file name out so you can very accurately select and delete/rename/move a file whereas from the terminal proper you'd have to either type it out fully or tab complete through potentially dozens of similarly named files. Now, from my shell I've got readline setup so I can hit tab, complete to the first match, then shift+tab to go back to the common root, type a few more characters then tab for more, wash, rinse, repeat as needed, but in some directories, usually things downloaded from others, it can be annoying. Especially if we're dealing with varying cases of file names.
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
Personally, even though I hate Rust, I don't care if they want it in the kernel. I won't be building my own kernels in the future anyway, not unless I write one myself anyhow. The more I read the source code for the compiler and runtime, the more I realize that if someone pushes a Rust job my way I'd rather go hungry than use it. I've never liked the design, it's horribly inconsistent, keywords being at different levels of abbreviation in a way that pains me, and the Java-esque use of access modifiers. The absolutely idiotic choice regarding mutability. The way macros are used, the bastardization of goto, break 'label; is disgusting. The sometimes functional, sometimes imperative design. The way match works. All of these bad design decisions, and more, annoy me on an individual basis, but add up to hatred. However, all of these complaints are merely about personal taste, so feel free to not care.
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
As time goes on, everything in the software industry gets more and more bloated. Even things written from scratch get that way. Take Rust for example, you download a gig or two that inflates as it gets built and builds other random projects and when all is said and done you've got 20gb of crap on your drive. Sure, you wouldn't distribute all of that for your program to work, and things you write in it won't need that much, but as a developer, you have to keep the equivalent of an entire operating system, and then some, around just to use a single language that isn't even very good. On the other hand, if you developed only C or C++, a system with a GUI can be installed that works well in 4gb or less, depending on how tight you want things, and you can get pretty dang tight with Linux.
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
If the government endorses it, then no one should touch it with a 100 foot pole. Since they denigrate C, that means it should be the only language anyone uses. I guess I'll just continue writing perfect code then. Of course, I run tests on my code with various static analyzers before it goes to production, and I have a debugger, though I've barely used it in the past 10 years. Although, I am fully willing to admit that I am unique, even if I hate that fact. It seems like everyone else has their brain screwed in the wrong way around these days, but especially any programmer that gets infected with Rust, Go and C#. I don't see such slavish pandering from developers using other languages. I am also fully willing to admit that people misunderstanding the reason for the situation we find ourselves in kind of make me a bit angry. It doesn't really help that even people with decades of experience can still act like total newbs because even they don't understand how the computer they're using actually works. I'm sure all of this will be dismissed as egocentric, but it's still correct, whether anyone wants to admit it. Not using available tools is a skill issue, and free and open source static analyzers that function far better than the Rust compiler has any hope of functioning do exist.
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
Press keys, the window manager accepts them and passes them along to the application with focus, if they're relevant. Press a global shortcut and the WM would handle it and send them nowhere else. No apps in focus, as in none open on a given desktop/workspace, then ignore them. No need for a keylogger being a security risk because it need not work if the OS properly segments input from what processes it. That's the solution, now whether anyone does it with what already exists or starts a new project is up to them, I guess. And if you're thinking about global shortcuts for common tasks, like ctrl+c to copy and ctrl+v to paste, message passing is the solution. A program sets up a message queue and gets input that way instead of needing to process keys directly itself, but that'd be more like how Windows works (or worked?, I haven't used it in 20 years and don't know if it still does). The GUI library could provide functionality like edit controls where keys could be requested directly.
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
@robonator2945 First, their servers are paid for by advertisers that only advertise with them because of content. Content creators earn them money, so their business model is one that they have created a public platform so that can happen. Second, I'm not in any way suggesting that the government control what they do, but rather prevent them from doing things that are wrong. Certainly you wouldn't say it's government overreach to prevent people from murdering. So why would you consider it government overreach to prevent people from suppressing others' rights in other ways? Third, does a person actually have the right to suppress others' rights when they're on private land? I would argue no. If you invite someone on to your property and decide you don't want them there, you ask them to leave, you don't shoot them in the head and yell at their corpse that you no longer want them there. If a guest says something you don't like, the same rule applies, you ask them to leave, you don't shoot them dead and say you hated what they were saying.
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
Something that not many people think about is that you don't need to register with any central authority to install Linux. You can install it on any device you want and no one need know. What's the market share in the server space? Somewhere in the 90-99% range? How many cell phones run Android? Forget GNU, it's irrelevant as you don't need it to have a working Linux install, but consider how many computers your average Linux user will have and most, if not all, will have it installed. So forgetting market share, solely for the sake of argument, most "normies" are lazy and if it's not installed by default, as in a pre-built, then most won't use it. What's more is most people are unwilling to find alternative programs for the things they use on a daily basis. Once people are used to things, they don't want to switch. Here I am 20 plus years later and I'm still using vim, but mostly because I can't figure out how to exit.
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
I find it interesting that the bugs they fixed were all relatively easy to fix, especially if you look at the code, but also they're the kind of bugs that should not have existed in the first place regardless of fuzz testing, but more extensively that you'd have to actually be malicious to make use of them, and for that matter that anyone is still fixing any bugs in X. It's kind of amazing too, how easy it was to follow along with this video because of how cleanly the code is laid out. I didn't already have a copy of the source for libXpm, and annoyingly it had some configuration that only happened when you `make`'d it, but once that was done it was super easy to trace through it by hand. The majority of problems occur in inner functions that the user can't access and are a direct result of not fully checking input before calling them. Also, ParseComment() still has a bug where it doesn't compare the characters read so far against the buffer's maximum size, which if you look in the generated header, XpmI.h, is set to BUFSIZ. There may be more, but that one was within the first 20 lines of the function. Also also, `git blame` is such a cool tool.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
@ancavalcanti92 Like I said, no one would get my point. First of all, the damages were in relation to the people who write the software. If you give away your code for free, when someone uses it in contravention of licensing terms, you don't suffer monetary damages. Second, in cases like this, breaking the licensing terms, for the farmers themselves, is perfectly valid, because as we've seen from prior case law, they have every right to do so with a piece of equipment they've bought. Taking it to a third party, i.e. not John Deere, would be perfectly reasonable and I'd recommend every farmer do that, for every repair.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
Not that anyone will see this, but yeah, we all get it, and some of us actually understand it, but it's easier saying/typing Wayland than typing out a full sentence to describe something. Laziness is part of why I'll never refer to the OS I use as GNU slash Linux even if I do use GNU software. Most of the rest of it being because, fuck GNU. I'm likely 100% alone in this, but I feel like the GPL has held us back far more than anything else. As for Wayland, I'm still annoyed with a lot of the decisions they've made, and the fact that instead of fixing an old project they just abandoned it to start a new one replete with mistakes made because they don't understand the decisions of their predecessors. However, as long as they fix all of their mistakes going forward and it reaches feature parity with X, I'll move over to it. If they don't, well, we'll just cross that bridge when we come to it. Let's just hope it's not an inevitability.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
Not that anyone will take this comment well, not that anyone will read this comment, not that I care, but programming languages shouldn't be used for configuration files. I've tried doing this in the past with my own programs, and I kind of hated configuring things that way, and I'm sure end users hate it more. Most people don't understand programming, even my fellow programmers often fail at this, so asking an end user to understand the configuration, which is already somewhat arcane, is asking too much. Further, Lua sucks.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
I know most will disagree with this, but since no one will read it anyway whatever, but the ideological purity tests relating to licensing is what has held open source back the most. It provided ammunition for the enemies of open source, such as Microsoft, and allowed them to run a very successful propagandistic campaign against it. As for Qt versus GTK, even as a KDE user, I still write GUI apps using GTK because I generally avoid C++. Not that I can't use it, but rather that I don't want to. A lot of the newer features, things added in C++17 and beyond, are features I definitely want in a programming language, but not the way they're implemented in C++. I love C, and use it for nearly every personal project, but eventually I'm hoping to move to my own language. I just need to acquire more free time to work on it.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
My thoughts, not that anyone will read them or care, is that it takes absolutely zero maintenance for code that was previously known to work if you never touch it or do anything with it. Not everyone can figure out how to use git to pull back in a piece of code to make a driver work for their old hardware, nor should a project maintainer expect them to. Yeah, compiling the kernel is somewhat complicated, but less so if you follow the instructions on how to get it compiled. So if they delete the code, they damn well better include instructions for any inexperienced users to know how to finagle git and pull the old code back in. They can make that an easier process and I hope they do. As for arguments about the old hardware being insecure, that's completely irrelevant considering the mitigations that can be made with regards to WiFi and the lack of range of these devices mean you'll probably use them next to the router and only in your own home anyway. Yeah, still potentially problem causing, but that's the risk anyone has to take when using older tech in any semi-serious manner. In short, it costs them more to delete this code and then accommodate for those that may still need it, either now or later, than it would to just leave it in place and never touch it, both in terms of them having to maintain instructions for how to bring it back or have a hassle from users that want it, as well as in terms of storage space and network bandwidth as the changes take up hidden space.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
I like your high intensity, and my suggestions on programming languages to learn would be C, not C++ or C# but pure C as well as BASIC, Pascal and LISP. Why those? For LISP, if you can more completely understand how things work in it, you can understand how to write better code overall, and if you translate things written in LISP to C, and don't use recursion, you'll be way better off. BASIC can teach you simplicity and doing something with very few resources. Pascal can show an alternative viewpoint on systems programming. If you were going to make a job out of it, I'd suggest assembly as well to learn how to think at a low level. Finally, a bonus suggestion just for fun, a language I probably can't say without being censored but I'll obscure it as BrainF***. It only has 8 instructions and you shouldn't use it in a serious manner, but who knows, you might find it fun to play with. In fact, if you disregard all the rest, just give BF a try, for fun.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
@dynfoxx It may not be GC on the level of Java, but it is GC. It's more or less a clone of C++'s most common style of GC. From a technical standpoint, it could be included in a kernel, but doing so will add the kind of overhead that shouldn't be in a kernel. Although it sounds like you disagree with that assessment.
I don't see how you can conclude that they provide safe concurrency either. With barely over a decade of testing I'd need to see a fairly conclusive set of tests to prove that.
As for the example, it wasn't meant as an example of known problems that Rust programmers have, although they very likely will, but rather as an example of how there are so many types of errors that they either don't or can't protect against and shouldn't be lulling newbies into a false sense of security by claiming they solve any class of errors.
On top of that, in a kernel you need guarantees of speed. If you keep bounds checking turned on then your code will run significantly slower in quite a few circumstances than code which isn't bounds checked. If you turn the feature off, you're no better than C. You can claim that features like lifetimes and ownership will make it better, but the implementation requires extra code there that also slows things down. The runtime of a kernel shouldn't be holding your hand if you develop for the kernel, you should be at least a good programmer to do such work if not a great one.
Of course, a lot of my opinion on this matter stems from the fact that I've worked with a lot of newbie programmers and I understand their psychology somewhat, and if you give a mouse a rope and tell them to hoist themself to the rafters, they'll very likely do so by their neck.
1
-
@dynfoxx It's not the same as calling free() in C. It's more like the methodology of C++, and yes, it is indeed extra overhead. If you implement your code in a library and interface it with other code, regardless of language, you can't have runtime checks of their correctness. There will also be certain checks for correctness that you can't perform in such a scenario even if you stipulate every expectation for code that calls yours, and yes even if the "client" in this scenario is also written in Rust.
The biggest reason for my complaints about Rust in this regard is how similar it functions to C++, except that the language designers have chosen all the methodology for how things will work, and lead everyone they can into believing the language is safe. For you to claim that you can merely bypass their decisions for how you should do things by declaring your code unsafe is absolutely wrong. Essentially, what you're saying is, use a pointless keyword that gives those who don't use it a false sense of security and just write it in C with a weird syntax.
You keep talking about C++ features in Rust but you're using exclusively the Rust names as though I have no idea how one or the other or both work and then you're claiming it doesn't work the way you and I both know it does. Have you ever used C++? Do you know of all the features it includes? Even just up to 11? If you're as staunch a Rustacean as you seem, I wouldn't expect you to keep up with 17, and certainly not the latest standard, but at least 11 which was the last standard before Rust was released.
1
-
@dynfoxx You still aren't understanding my argument here, but let's quibble over the details instead. Drop does more than you think, take a look at the assembly output sometime. That's a lot of overhead. I'm not even limiting this to FFI, even calling pre-compiled Rust from some other library is a potential problem. Part of my disagreement with unsafe code in Rust is the explicit labelling of that code as unsafe. There is no safe code in any programming language until it has been properly debugged and merely not crashing is not good enough, especially in kernel space. Whether you can bypass bounds checking wasn't the issue, because of course you can, but that's not the only way memory is accessed. I'm not sure why you brought up version 1.0 when I wasn't stipulating any particular version, just when it was first released, and the first version available was 0.1, which was released in 2012. That's not to say the creators of the language weren't toying with it earlier. After all, some people develop their own languages and toy with them for over a decade before making a public release.
1
-
@dynfoxx If it inlines it, which isn't a guarantee. If you were writing it in C, sure, it would be up to the programmer to get it right, but if they do, and multiple decades old code will be right due to debugging work, then it'll work more efficiently without the need for quasi-guarantees as it will already have been guaranteed for years.
How are logical issues merely an API issue? Any programmer can get those wrong at any level, no need to be an API implementer nor need it be down to how the API is used, both could be at fault as well, at the same time. Also, you and the Rust developers can't guarantee that bugs will be found and fixed in a timely manner any more than kernel developers already can, and bugs found in C code do actually get fixed.
Obviously the guarantees that the kernel already provides should be good enough, but introducing a new language requires checking everything all over again. I wouldn't want C++ being introduced any more than Rust or any other language of such complexity, and they did try C++ for a time and rejected it as I'm hoping they will for Rust. However, what the future holds on that we both definitely disagree.
As for an MTC on Godbolt, that'll have to wait until I'm finished moving. Something that I'm sure doesn't normally take this long, but it's exhausting when you can't take time off to do personal things.
1
-
@dynfoxx The point about bugs in C was that most of the C code is so old that it has already been debugged, whereas if any Rust code is added it'll require that process start anew.
As for guarantees, like I said, everything it already provides, whether that's dependent on any given language or not, as long as it keeps on truckin' as good as it always has. I've not run any tests as I don't use Windows, but I'd wager it is faster and more memory efficient than the Windows kernel. If Rust in the kernel works as well as the C code, I would definitely reevaluate my position on it, but I'd also have to audit such source myself before I'd trust it.
My main objection to it is not just that it isn't and can't possibly be as safe as they claim, but that it gives far too many newbies too much confidence that they can write kernel modules and there are far too many programmers that I wouldn't trust to write a clone of notepad let alone a kernel module. Hopefully you can at least understand that particular point of view, maybe even agree with it somewhat?
1
-
1
-
@dynfoxx If the tools catch the error, then you'll know where to look, but if they don't you'll think you know, and look at the "unsafe" bits and be very confused if those are the only parts that are correct. With C, not C++, since the entire program is deemed, by some but not all, to be unsafe, then you'll only know where to look by figuring out what it's doing wrong. If you apply such knowledge in a general manner, it would benefit you more as a Rust developer. Don't depend on the tools to do your job for you, in other words. Hopefully you'll influence others to be good or great programmers, even if they are using Rust.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
@michawhite7613 Social security is a waste because they don't properly invest the money. So you pay in X, get back X/4, if you're lucky, and they've gone from what should have been X+(1% to 3%) to actually being 0. If you instead didn't pay into SS and invested the money yourself you'd at least have X+1%, more if you know what you're doing. Defense spending and that of our intelligence organizations is largely wasted. Our military personnel get paid next to nothing while we spend billions on equipment that barely gets used. Our military is one of the largest in the world. Paying $10,000 for a hammer is clearly a waste, especially as it goes to funding the black budget that gets used to overthrow other countries and install different dictators who we later have to go in and either overthrow again or consider that country a loss. Property, income and inheritance taxes are all immoral, and were it not for a stolen amendment income taxes would be illegal and whether anyone is willing or capable of challenging the IRS on this, property and inheritance taxes are also illegal. What you're referring to with broccoli is a stupid analogy that seems to be referencing insurance. Money is fungible, and no valid health care should be denied. I don't think you understand the full breadth and scope of what the government does because they waste a LOT of money. Many of the organizations that we have shouldn't even exist and quite a few are redundant 10 times over. If you consider state governments and what they do, then the federal government is even duplicating a lot of their efforts too.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
@knoopx Can you really though? It kind of sounds like the same nonsense with the language used on Arduino's, which some refer to as C, and it isn't, and some refer to as C++, and it still isn't, or the "micro-"Python lie. Sure, having a pared down version of a language is neat, but less useful. And then once the uutils are on your device, how much room do you have for whatever project you were attempting? If you give me that nonsense about using a flash drive then you're not really using an embedded platform and you might as well use a Raspberry Pi. On the other hand, ToyBox exists and provides all these in less than the space of a floppy, and it was written by one man, and in C.
1
-
1
-
1
-
1
-
I never really bothered to look into how X handles keyboard input, so I definitely need to do that. It would've made sense, to me anyway, if keyboard input only went to the app that currently has focus. Which as I understand it is how Wayland does it. However, if you set a global shortcut, it would've made sense to have a registry of callbacks for functionality and to have the main program, whatever it is in such a system, deliver messages to the individual programs. Like say opening a private browsing window in your browser of choice. Each installed browser could register that they can handle that functionality and tell the system how, as in calling the program with certain flags, and the user could configure it with the whole system configuration app and tell it which browser to use when you input that shortcut. If the individual programs request specific keyboard shortcuts, then that either means that changing them in-app, if the app even allows that, would require that it send a message back to the system to refresh things. That's a complicated mess. Although, if every shortcut combo, regardless of global or local scope, merely sent a message to a callback function, say by treating the program while it's running as a server and passing it messages, then shortcuts could even be configured custom per app without the app even having to know what they are. If anyone knows how they both work and want to clear this up for me and maybe explain some reasoning behind whatever decisions they made, have at it.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
I haven't taken a job where I've had to use Windows in many years, and my knowledge of how Windows works is woefully out of date. If we were talking about 32-bit Windows, as in the Win32 API, then sure, I could do it, but I've had the leeway to opt out of any job that requires Windows and have thusly rejected them all. I realize that's a luxury that most can't afford, but I'd love it if businesses would stop forcing employees to use a particular system. I know, legacy software and whatever weird new software that requires Windows, but they should push for more adoption of Linux and open source in general instead of acquiescing to the demands of their vendors. That's not to say that I'm against closed source, but I feel like it's only really acceptable in a vanishingly narrow range of uses. As for religion, I've seen some good points brought up by others in this comment section as to why that would be a valid argument against using Windows or software in general from any company that actively supports causes that are antithetical to their personal beliefs.
1
-
1
-
1
-
1
-
1
-
1
-
@diadetediotedio6918 I'll have to start keeping a file then, because I keep seeing this toxic behavior, including from yourself on several occasions. Being a better programmer is only partly based in knowledge, a great deal comes from intelligence. If a person isn't intelligent enough to be in this profession, we shouldn't gloss over major details and expect them to do well or forget that results do matter. I don't care if someone wants to whine about gatekeeping, technical fields require it to keep the world from imploding. I wouldn't want a bridge designer who had no understanding of physics, and I don't want the politicians we have now who have no understanding of material degradation. Real people have died as a result of incompetence, in many fields. Making mistakes more difficult is a step in the right direction, but unfortunately, the methodology chosen was several steps in the wrong direction and the behavior from the community at large is several more. As for C++ programmers, I dislike most of them because they are elitist A-holes. They often look down on everybody. I have seen some negative behavior from fellow C coders, but it's mostly a reaction to the outright toxic behavior from the overwhelming majority of Rustaceans.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
@JacksonNick-j6i For UNIX and BSD, the reason is obvious if you study history: licensing. In UNIX's case it would've inhibited open software as well as doing nearly anything you want with it, and at the time lawsuits made BSD's future viability questionable. Before all of that was settled, Linux itself was viable, so people stuck with what they knew. The reason for newer programming languages is less obvious and the goals aren't always met. In general, we've had an absolute flood of newer programmers in recent years and the proposed solution for their education, which is lacking given the modern standards, is to write a toddler-proof language so they don't make mistakes. None of them have worked because you still need to get real work done and you can't baby-proof everything and hope to achieve everything, let alone at good speed. People will claim that Rust has or can, but it's a lie because the language only solves two potential problems and not very well since the syntax is worse than C++. If you want to write correct programs, the only solution is better education, not a new language. If you accept that truth, then the only reason becomes one of wanting better ergonomics. This is why more expert programmers use certain languages over others, but they're not necessarily for newbs. Of course, if you're a newb, then Rust is probably right up your alley. I choose to get work done instead and not being a newb I'll do so without bugs while not having a babysitter.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
As a Slackware user, I tend to not use the repos at all. I just download the source, build it, make a package of that, then use installpkg to install it. Makes it easy to uninstall if I feel so inclined and I've got a version I can archive for whatever purpose I see fit. If I used a Debian based distro, like a lot of Linux users seem to, I'd use apt first, then AppImage and FlatPak, and only as a last resort would I build from source. Although, I have had a few things that refused to build from source, such as FlatPak, most things are just a matter of satisfying dependencies.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
I'm all for adding tools, but they have to actually add something. Merely looking pretty isn't enough. Want colors? Well, for a good number of years ls has had --color=auto, which will disable color when piping, which is a good thing, and display it when directly to a terminal. Grep has been able to colorize matches for a while now and likewise disables that for piping, which again is a good thing. Want extra functionality? Well, that's a whole other ball of wax. I keep getting recommended to alternatives that either match the functionality of a pre-existing program but with a different way of operating. That's perfectly fine for someone who doesn't know how the old tools work, but it won't be a transferable skill and what's the point of writing new code that hasn't had 20 years of debugging work when the old program already works and has been debugged thoroughly. If someone wants to create an alternative, I say great, but add functionality and don't remove any. Programs like ripgrep irk me because they take away functionality while adding it. I don't care if they want to have different flags, that's fine, but not everything needs to be rewritten in Rust only to be missing functionality. If someone actually comes up with a cogent argument, I'd love to hear it. I doubt anyone will, and instead I await the vicious attacks from Rustaceans who refuse to be wrong.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
Well, you already know what my take will be before I've said it, but I'll say it anyway. Worrying about the future is a pasttime for some people and you'll never get them to stop and live in the moment. Any MFA that uses a cell phone in any capacity, but especially if it's an iOS or Android device, isn't going to be any more secure than having a single password, and it'll be more annoying if your device gets lost or stolen. Aside from that, it'll be annoying when you have to use it to authenticate twice. And if it's done through an app running on the same computer it will be basically the same as having one password anyway, only doubly annoying yet again. For now, if you can't afford an expensive solution that's highly cumbersome, just having two distinct passwords that you don't write down or use a password manager for, would be the safest and most secure method.
For me, I still don't have a GH account. Before Microsoft bought them I was roughly 75% against using them and roughly 90% after. When Copilot came about I was definitively in the 99.99999% no way, no how camp. Now with annoying MFA garbage that is still security theater, I'm in the 100% camp. If I ever open source any of my solo projects I'll have to rent a domain name and server space because I have the same concerns for GL that I had for GH before MS bought them.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
Aside from NetHogs, I already knew about everything you mentioned. Back when I still used Windows, like 20+ years ago, I used GVim because the terminal version of Vim on Windows sucked and had all kinds of weird problems. I'm sure it doesn't now, but I haven't used it in over 2 decades, so who knows. I haven't bothered to look at the source for ripgrep yet, but I can't use it because it doesn't correctly handle several parts of RE that I use on a regular basis. It's super fast, but it doesn't find what I'm looking for often. Truthfully, I find it's faster and easier to just use grep paired with find, because I can restrict what I'm searching for in a more complex way. Like searching shell scripts, but only when they're executable.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
I think a mix of both would be good. It kind of seems like a good argument for the way Windows has its various subsystems organized. Like the Win32 stuff is split up, with GDI and whatnot. Basically it would make Linux a bit more consistent overall, and if it were an API and designed right from the start, you could swap components on a whim like now, but it would look cleaner. Also, I think I get why people are so insane about tiling on desktops now, because when I need to move an app around, I don't bother clicking the title bar. Used to be that KDE had it setup so you'd hit alt, but now they allow you to customize the key, so I use the WinKey, hold that then click anywhere in the window and drag it wherever I want. Right click and I can resize it and it's super fast and easy.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
Well, I've said it before, you know it, I love KDE. I don't need tiling because I either open everything full screen or let kwin "tile" my terminals if I leave them at the default. However, I've been embracing tabs in vim so I've been full screening it more and using windows and tabs kind of works, but I've also been trying tiling shortcuts. I know, sounds counterintuitive, but if I become dependent on it I may install Bismuth. And I've said it before, I've got a global shortcut for every app I use on a daily basis.
Something that might help you with losing windows, consider each desktop/workspace as its own category. For me, I put YT tabs on D4 so no matter where I'm currently at I can navigate instantly to that window, and I put my music player on D12 so I can navigate to it instantly as well, but I also have media keys so I almost never go to D12 except to manually play a specific song in the list. I often forget to close it when I log out and it winds up on D1 later, but a simple Win+Ctrl+F12 and it's where it belongs.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
It's not just a skill issue, it's a knowledge issue too. There are tools that have existed for decades to do all that rustc can do and then some, but if you don't know they exist, your skill will languish. The thing that I really find weird about this is that Ridiculous Fish was one of the people I used to talk to on a regular basis on Yahoo chat. Back then he was working for Apple and used Objective C for nearly every project, he even wrote a chat client using it. I can't say that change is bad if it means growth, but here it just means swapping to a new language that they don't know any better than they did C++. They should've just stuck with C, and used the tools available if they were having skill issues, but whatever, I don't use Fish and probably never will. Still, I miss talking with most of those guys, even that weird Malaysian guy who for some reason loved Java.
1
-
1
-
1
-
1
-
1
-
1
-
As a C programmer, I'd say you're correct about it being relative. I would call C89 low level, C99 mid level and C11 and C17 both high level. Scripting language is a subjective term because any language can be interpreted or compiled and even in between. The difference would be in how it's commonly used. The majority of people use the default setup for Python which compiles it to a bytecode prior to running it through its VM. So it would be an in between language, as would Java. The majority of people compile C, C++, Pascal et al. before running them, so we tend to refer to them as compiled languages, but they don't have to be. TCC comes close to achieving in between status for C, though not quite. BASIC is a common example of interpreted, but as QB 4.5 and beyond show us, it too can be compiled.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
My root drive has 33gb used and that's for nearly every app I've installed, but that's traditional package management, mostly, and a very tiny amount of AppImages. Now, why do I say nearly? Because I've got some non-traditional package management as well, rust currently takes up 17gb, which is after wiping its entire folder and installing from scratch because it was up to 30gb last time around. And I've got a lot of source folders for software I've built myself, and for the most part generated a system package with dynamic linking and installed using the system package manager. I can't actually use FlatPak's on my system because I couldn't get it to build and haven't cared enough to try a second time. I'm not entirely sure how much space is actually eaten up by all the programs I use because they're all over the place, Games sorted into a separate directory, nearly everything else is in Downloads, but I've also got a lot of .iso's and random junk in there too. Just du'd it and 201gb in my Downloads folder with only 2.1gb of that in gcc. Though, this is a fresh clone because when fully built it was around 9gb.
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1