Hacker Newsnew | past | comments | ask | show | jobs | submit | brooke2k's commentslogin

I think for a lot of people (me included) Discord isn't just a chat service like WhatsApp but more of a "home base" where you can hang out with all your friends, make new friends, share media, chat, play games together, stream games to each other, etc.

In the gaming sphere it's so universally used that all the friends you've ever made while gaming are on it, as well as all your chat history, and the entire history of whatever server you met them on. And if you want to make new friends, say to play a particular game, it's incredibly easy to find the official game server and start talking to people and forming lobbies with them.

My main friend group in particular has a server that we've had running since we were teenagers (all in our mid-20s now) which is a central place for all of the conversations we've ever had, all of the pictures we've ever sent each other, all the videos we've ever shared, and so on. That's something I search back through frequently looking for stuff we talked about years ago.

So I'm not saying it's impossible to move, but understand that it would require:

- Intentionally separating from the entire gaming sphere, making it so, so much harder to make new friends or talk to people. - Getting every single one of your friends that you play games with to agree to downloading and signing up for this new service (in my case that would be approx. a dozen people) - Accepting that this huge repository of history will be wiped out when moving to the new service (I suppose you could always log back in and scroll through it, but it's at least _harder_ to access, and is separated from all your new history)

On top of this, every time I've looked for capable alternatives to Discord I've come up empty-handed. Nothing else, as far as I can tell supports free servers, the ability to be in multiple servers, text chat divided into separate channels, optional threaded communication, voice chat joinable at any time with customizable audio setup (voice gate, push-to-talk, etc), game streaming from the voice chat at any time, and some "friend" system so that DMs and private calls can be made with each other. And even if I found one, then again I can't express enough that in the gaming sphere effectively _zero_ people use it or even know what it is.

Anyways, I'm not saying that nothing could make me abandon Discord, I'm just saying that doing so is a tremendous effort, and the result at the end will be a significantly worse online social life. So not a mild inconvienence.


>Accepting that this huge repository of history will be wiped out when moving to the new service (I suppose you could always log back in and scroll through it, but it's at least harder to access, and is separated from all your new history)

This is true, but one needs to regularly back this up elsewhere if you care about it. If you're not in control of it, it can go away in an instant; Discord could one day decide to ban your server or anything else, and then it's gone.


this is very much a nitpick, but I wouldn't call throwing an exception in the constructor a good use of static typing. sure, it's using a separate type, but the guarantees are enforced at runtime

I wouldn't call it a good use of static typing, but I'd call it a good use of object-oriented programming.

This is one of the really key ideas behind OOP that tends to get overlooked. A constructor's job is to produce a semantically valid instance of a class. You do the validation during construction so that the rest of the codebase can safely assume that if it can get its hands on a Foo, it's a valid Foo.


Given that the compiler can't enforce that users only enter valid data at compile time, the next best thing is enforcing that when they do enter invalid data, the program won't produce an `Email` object from it, and thus all `Email` objects and their contents can be assumed to be valid.

This is all pretty language-specific and I think people may end up talking past each other.

Like, my preferred alternative is not "return an invalid Email object" but "return a sum type representing either an Email or an Error", because I like languages with sum types and pattern matching and all the cultural aspects those tend to imply.

But if you are writing Python or Java, that might look like "throw an exception in the constructor". And that is still better than "return an Email that isn't actually an email".


Ah yeah, I guess I assumed by the use of the term "contructor" that GP meant a language like Python or Java, and in some cases it can difficult to prevent misuse by making an unsafe constructor private and only providing a public safe contructor that returns a sum type.

I definitely agree returning a sum type is ideal.


I agree and for several reasons.

If you have onerous validation on the constructor, you will run into extremely obvious problems during testing. You just want a jungle, but you also need the ape and the banana.


What big external dependencies do you need for a parser?

`String -> Result<Email, Error>` shouldn't need any other parameters?

But you should ideally still have some simple field-wise constructor (whatever that means, it's language-dependent) anyways, the function from String would delegate to that after either extracting all of the necessary components or returning/throwing an error.


FWIW, Rider has very good support for keybindings - I can't vouch for vim bindings directly but their emacs keybinding scheme is brilliant, IMO it's the next closest thing to working from Emacs itself. So I'm guessing the vim bindings support is similarly fantastic.

I spent ages trying to get Emacs to work well with C# stuff, because I can't stand using IDEs that don't have some sort of emacs-style keybinding support, but eventually I bit the bullet and started using Rider and honestly it's been amazing and worked seamlessly with everything I've thrown at it (especially Godot). Highly recommended.


I find personally that this is the biggest advantage of Rust for the kind of code I write. Memory safety is great and all, but an aggressive GC would do just fine for what I tend to work on.

But the culture around Rust is such that libraries on average tend to be of much higher quality - more correct, better APIs, more assumptions encoded into the type system rather than punted to runtime, etc.


This is shared with languages from ALGOL linage like Ada, Object Pascal, Modula-2 and others.

Hence why from C culture point of view they used to be referred to as programming with straightjacket.

An insight into this be read on books like "The School of Niklaus Wirth" or "Building High Integrity Applications with SPARK".


that's not been my experience at all. I've found that Godot works exceptionally well with C#, and I've felt zero pressure to use GDScript. It integrates really well with Rider too, which is the C# IDE I use. Even when there's places online that use GDScript examples, they tend to translate pretty much directly 1:1 to C#.


Rider seems neat, and I'd be happy to purchase a license, but subscription only? No thank you.


Visual studio 2026 offers a one time perpetual license for $500. It's not advertised at all and the hyperlink to it seems to shift constantly. I think if more people knew about this option, VS would have a significantly better reputation around here. $500 isn't cheap but it's a one time deal. If I hadn't discovered this I'd probably be looking for other options too.


I'm confused, does that help me with Rider?


wow, this release looks really cool! this part especially:

> With the new LibGodot, you can now embed the engine directly into your own applications. Instead of running Godot as a separate executable, you can control startup, manage the engine loop, and integrate it seamlessly into custom workflows.

it might seem like a small thing but the IoC setup of Godot makes it really annoying to build certain game infrastructure (specifically in my case, automated testing) because everything is beholden to the main engine loop, to the node tree getting mounted, etc. being able to take control of that and have the engine run under your own terms is super cool.

that being said, I'll probably wait for a couple versions before trying it out on my game since I'm sure it's not exactly battle-tested yet


> I'll probably wait for a couple versions before trying it out on my game since I'm sure it's not exactly battle-tested yet

Who better to do the battle-testing?


Indeed. If a test runner embedding the Godot engine is now feasible on paper a proof of concept implementation seems deserved: if there are fatal bugs or limitations they will be eventually corrected (sooner if properly discovered, reported and discussed), and if there are none the new technology is "battle-tested" enough.


maybe I'm just dumb but a lot of these elements don't seem to work? the "..." buttons don't open any flyout, the dropdown doesn't open up...

otherwise looks cool though


Hey! A lot of the UI on the theme preview site and on railsui.com isn’t fully functional. It’s mostly there to show the design and layout of the components, not the underlying logic. The railsui gem itself has more complete, working components and pages.


I think there's a consequence difference between the IDE being sure enough that a std::move is warranted to issue a lint, versus the compiler being 100% provably certain that inserting a move won't cause any issues.


Sure, but by the sound of the article, the compiler won't do the right thing?

Effectively, I'm a c++ novice, should I ever sprinkle move (under the constraints of the article)? Or will the compiler figure it out correctly for me and I can write my code without caring about this.


> 11 one. 2025 is when it got real: we announced a formal end to Plasma’s X11 session in early 2027.

Really hoping they delay this. I love KDE but this would force me to abandon it :(


You have a year to open and comment on Wayland bugs for them to get fixed


I don't have many issues with wayland itself, the problem is that I frequently use software that doesn't support wayland or has buggy wayland support. In some instances, I can file bugs with the maintainers of that software, but sometimes (especially with older games) you are just stuck with something that wasn't designed for wayland and there's not much to do about it. Xwayland helps sometimes, but it can only do so much.

To be clear, I don't want or expect KDE to have full first-class X11 support forever. But right now, I can launch an X11 KDE session that's pretty janky and doesn't support things like HiDPI properly and etc if I need to get something running. If they remove that, then I'm unfortunately forced to move elsewhere.


Having a job that requires Windows is not what I would call self-inflicted.


That is besides the point. In that case it is self-inflicted by the company choosing to depend on it.


Until recently (<10 years ago) Windows and native Windows apps (like Office) were the norm in most companies. Almost all employees knew how to use Windows. Re-training all was difficult. Now, with mostly web-apps for most non-IT employees it is a realistic change, but I am still not sure corporations will want to run without Active Directory and Crowdstrike.


True. It is a would inflicted by your employer in that case. Maybe you could find a different one that doesn’t inflict such wounds.


What a bubble you exist in. I'm self-employed and my entire suite of software is either windows or apple only and I have 'been a pc' for nearly thirty years and have pc hardware that fulfills all my requirements and can't run apple software.

I'm eyeing up a shift to apple when my current hardware fails me, but it's impossible for me to just go Linux.


You are a digital serf, dependent on the good will and love of a lord that gives you access in exchange for a tax.

I really wish free(libre) tools existed that allowed you to do your work. Hopefully they will in the future, I am sure someone has tried/is trying to build them.


I think in your situation I'd use a Mac just because they don't show you a bunch of advertising bullshit all the time, but I do understand the overall point: a lot of software simply doesn't exist on Linux.

Wine is getting better and better, but it's still not perfect yet. I am so wishing that they figure out a way to get modern MS Office working, and then I feel like a lot of people's only reasons for staying on Windows would suddenly disappear.


I don't get the advertising thing - I don't see any at all on Windows 10?


I don’t have a windows computer so I am going with I have seen in Youtube, but people have said that Windows 11 has been adding ads to explorer and start.


> I'm self-employed and my entire suite of software is either windows or apple only

Sounds like we're back to self-inflicted then? If you're self-employed supposedly that software suite was your decision.


I mean there are literally no good Linux alternatives, but sure?


sounds like a bubble


Perhaps, but I'm not judging other people in theirs...


The job should give you Windows Enterprise with the correct group policies that disable most of the enshittification. Otherwise it’s self-inflicted.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: