It won’t be open source. Who’s gonna sue Russia for license violation?
It won’t be open source. Who’s gonna sue Russia for license violation?
Smh, it’s spelt vim
by the way
There are a few libraries we’re using that stopped being developed after Angular ~9-10 and one we use extensively with breaking changes between 10-12. Updating to 8 wasn’t too bad but for some reason Angular’s update tool didn’t actually do anything so I had to update the package.json manually and fix stuff by hand (luckily the only change was fixed with a bulk find/replace)
To me at least angular makes a bit more sense than React’s way of doing things does. React tries to be functional with its components and yet it seems like they end up basically trying to mimic classes with useState and useEffect. To me Angular’s class-based approach makes a bit more sense (though I am primarily interested in backend development more than frontend so that could be why)
It does kind of fall into a lot of the traps of Object-Oriented programming though so I can see why a lot of people don’t like it
Don’t come at me like that 😭
You know neovim can use the exact same LSPs (Language Server Protocol) for intellisense as VS Code right? There’s intellisense, git integration, code-aware navigation, etc. Neovim can be everything VS code is (they’re both just text editors with plugins), except Neovim can be configured down to each navigation key so it’s possible to be way more efficient in Neovim. It’s also faster and more memory edficient efficient because it isn’t a text editor built on top of a whole browser engine like VS Code is.
I use a Neovim setup at home (I haven’t figured out how to use debugger plugins with Neovim and the backend I work on is big enough that print debugging endpoints would drive me insane) and I can assure you I have never given variable names one letter unless I’m dealing with coordinates (x, y, z) or loops (i, j) and usually in the latter scenario I’ll rename the variable to something that makes more sense. Also, we don’t do it to seem hardcore, it’s because there are actual developer efficiency benefits to it like the ones I listed above.
By your own logic you “can’t be bothered” to learn how to edit a single config file on a text editor that has existed in some form for almost 50 years (vi). Stop making strawman arguments.
My bad, that’s on me, it looks like the C++ libraries I found use either templates or boost’s reflection. There might be a way to do it with macros/metaprogramming but I’m not good enough at C/C++ to know.
I’m learning rust and C at the same time and was mixing up rust’s features with C’s. Rust’s answer to reflection is largely compile-time macros/attributes and I mistakenly assumed C’s attributes worked similarly since they have the same name.
See my other comment for more detials but it kind of destroys the type safety of the language. In Java for example, it lets you modify private/protected fields and call private/protected methods.
It’s also slower than accessing a field normally since you need to do a string lookup (but slightly faster than a hashmap/dictionary) so if you use it over a large enough list it’ll cause slowdowns.
Most use cases for it in Java/C# revolve around testing, serialization, and dynamic filtering/sorting. And most of those cases can be handled more safely using macros/attributes (EDIT: and templates as well, though those are also pretty painful to deal with) because that gets handled at compile-time in C/C++.
It’s pretty cool when you use it right but it’s also really easy to shoot yourself in the foot with, even by C++ standards. For example, in other languages (I’m coming from Java/C# which both have it) it lets you access private/protected fields and methods when you normally wouldn’t be able to.
There’s also a noticeable performance penalty over large lists because you’re searching for the field with a string instead of directly accessing it.
For the times it is necessary (usually serialization-adjacent or dynamic filtering/sorting in a table) to use reflection, it’s faster at runtime than converting an object to a dictionary/hashmap. However, 99% of time it’s a bad call.
There’s a pretty big difference though. To my understanding enable_if happens at compile time, while reflection typically happens at runtime. Using the latter would cause a pretty big performance impact over a (large) list of data.
The dev who owned the branding for forge (LexManos) is infamously abrasive and rude to others to the point where the forge community was slowly falling apart because new people didn’t want to be involved with him. The rest of the team decided to rebrand to NeoForge and continue without him.
That’s definitely true but at the same time why do people have to cause fights in the first place, they’re all part of a community for a game they enjoy playing :(
I also agree with you on the sodium license change, it’s definitely the most reasonable of the ones I listed since the dev seemed to be getting maintainer burn-out and had some bad experiences with other people in the MC modding community. I don’t really like the idea of it not being OSS though because the key strength of that is not being tied to a single maintainer or group.
Modpacks still have attribution but they likely have attribution to the fork. The fork will have attribution in the source code somewhere but most MC players aren’t likely to actually look at the GitHub repo, so they’ll only see the fork’s name.
The lead developer changed the license to a much less permissive one because of drama surrounding being credited in modpacks. The dev thinks there are forks that exist solely to sidestep crediting the original mod, I’m not up to date enough on Minecraft modding lore to know if this is true or not.
I’m pretty sure there’s also a fork that branches off of the last GPL commit but I forget what it’s called.
It was, the company that bought out Audacity added a bunch of telemetry to it
Audacity was the first one I thought of.
Or MultiMC, PolyMC, the Sodium mod, or the original Minecraft Forge.
(Minecraft community devs need to stop having drama lmao)
25565 also gets a decent amount of malicious traffic because of Minecraft though. I’d recommend switching the port to something different at the very least. When I hosted a server for the first time on 25565 my router pretty immediately gave me warnings about attempted network traffic coming from Europe/Asia when I (and everyone I gave the IP to) live in the US.
TypeScript is still built on JavaScript, all numbers are IEEE-754 doubles 🙃
Edit: Actually I lied, there are BigInts which are arbitrarily precise integers but I don’t think there’s a way to make them unsigned. There also might be a byte-array object that stores uint8 values but I’m not completely sure if I’m remembering that correctly.
The way I was taught was that you usually start off with only an interface and then implementing classes, and then once you have multiple similar implementations it could then make sense to move the common logic into an abstract class that doesn’t get exposed outside of the package
You’re not wrong but it’s not like it’s unprecedented. North Korea already does this with Red Star OS. It’s just Linux with a bunch of spyware and government tracking/surveillance on top (edit: it’s also definitely not open source)