Hacker News new | past | comments | ask | show | jobs | submit | runevault's comments login

Do you really think LoC does not impact maintainability? How much depends on language and adjacent tooling for things like refactors, but the larger a code base the harder it is to maintain in general.


Watching c# eat f# features as someone who has dabbled in f# lightly for over a decade has been wild. And supposedly DU's are in the works but multiple years out.

Though one thing I doubt c# ever gets that I love when I'm writing f# is pipeline operators. I love the way they read, from object/collection being worked on and then a list of operations being run on it in order from left to right (or you can do right to left if you need to for some particular reason).


The amount of optimizations, specifically around using stack allocated objects, .net has seen in recent years is amazing.

Another one beyond all the span stuff (though related) that got added in dotnet 9 was AlternateLookup for stuff like dictionary and HashSet where you create a stack allocated object that lets you use stack related objects to compare.

Simple example, if you have a dictionary you are building and you're parsing a json file, you can use spans and compare those directly into the dictionary without having to allocate new strings until you know it is a distinct value. (Yes I know you can just use the inbuilt json library, this was just he simplest example of the idea I could think of to get the point across).


Package managers are such an odd thing from a social perspective.

You'll see cases like NPM and to a lesser degree Cargo where projects have hefty dependency graphs because it is so easy to just pull in one more dependency, but on the other side you have C++ that has conan and vcpkg but the opinions on them are so mixed people rely on other methods like cmake fetch package instead.

I appreciate having tools that let me pull in what I need when I need it, but the dependency explosion is real and I dunno how to have one without the other.


If you require end users (and possibly libraries? IDK) to manually specify every transitive dependency of a dependency (but not hard-code/vendor it), this should act as a forcing function to reduce transitive dependency explosion in libraries (because it would degrade user experience). I'm not sure if users should have to update every dependency by hand (this discourages updates which can cause security bugs to persist, but automatic updates makes supply-chain attacks easier; AUR helpers generally diff PKGBUILDs before committing them, which partly protects against PKGBUILD but not source attacks, and even distros did not protect against the xz attack).

Another factor is that updating C++ compilers/stdlib tends to break older libraries; I'm not sure if this is any less the case in Rust (unclear? I mostly get trouble with C dependencies) or Python (old Numpy does not supply wheels for newer Python, and ruamel.yaml has some errors on newer Python: https://sourceforge.net/p/ruamel-yaml/tickets/476/).


This is optimizing for the wrong metric, IMO. If I look at the dependency tree of a fairly hefty project in rust, mostly what I see is the same amount of code as an equivalent project in C/C++, just split into multiple packages instead of bundled up into one source tree. Which ironically means packages tend to be able to pull in the minimal amount of excess code through transitive dependencies. All that you'll do with this kind of incentive is push packages into effectively vendoring their dependencies again.


This reminds me of this article https://wiki.alopex.li/LetsBeRealAboutDependencies

It's incredible how much stuff some C projects vendor


To the best of my knowledge (I only dabble in Rust) there aren't often too many breaks unless code accidentally relied on soundness bugs which Rust makes 0 promise of retaining to keep code working.


Unless I missed Unity sorting a ton of stuff out, I assume they're going to have to sell themselves off for parts at some point after the runtime fee fiasco that was supposed to make them profitable lead to developers being angry or outright leaving the ecosystem. My assumption if that happens unless the DOJ gets involved for some reason is MS buys it for this reason.


Unity isn't really worth 9 billion imo.

I would like MS to buy them out and FOSS the engine. Maybe if they split the ad business off into its own thing.

Unity feels like a bizarre almost abusing business relationship. They can change the terms of service at will.

The licensing is confusing. Billy is a freelancer. He makes a small game for his friend company. His friends company raises a funding round.

Depending on how much money is raised, Unity is going to call Billy up and extort him to upgrade to a higher license tier.

I don't particularly like Godot, but every few months I try and learn it again.

The game engine landscape is like picking the least worst option.

All that to be fair, Unity provided a high quality game engine for effectively nothing for over a decade to the vast majority of its users. It's time to pay the piper.


Windows 11 is insane to me now. Latest update pressing the button to bring up the power options (power off sleep etc) takes like 1-1.5 seconds from button press for the menu options to come up.


I’m just so done with Windows, it is complete garbage now and I don’t use that term loosely, I’ve been using it since Windows 3.1.

Chrome removed ublock origin for me today and I thought to myself why am I even on this OS anymore? What’s keeping me here? Decided to use the outrage over that to just make a clean break from Windows too.

I installed Ubuntu tonight, but this time I’m sticking with it. It already feels so good to have the software behave in a way that makes sense and isn’t some dark pattern meant to harm me and extract value somehow from me.


Ubuntu isn't what it used to be, unfortunately. I'm pretty much in love with Aurora [1] nowadays. It's an immutable distro (for a smartphone-like upgrade experience) based on Fedora and KDE, rock solid, sane defaults, a good selection of dev tools, proper nvidia support if you want it, and it feels really snap!

[1] https://getaurora.dev/


Just curious, what do you think Aurora itself does better than regular fedora kde?


I haven't used plain Fedora much, but Aurora just 'feels' more coherent, polished and stable than other distro's I have used in recent years. I tend to notice bugs/rough edges in all of them, but Aurora somehow just works. Having a strictly fixed core allows it to be fine-tuned better, I guess? Or perhaps it's just in my head. :-)

All non-core software is provided by Flathub (through the Discover app) and Brew (for cli apps). Both have worked flawlessly for me as well.


Mint and/or Fedora, depending on how new your software needs to be.

Ubuntu pushing snaps like MS was the last straw.


I already split time. I have an old Dell laptop running Ubuntu that I do a lot of types of dev on plus general browsing (I'm actually on it right now). I use Windows for games and gamedev, though as I use Godot for gamedev I could pretty easily do that on Linux as well.


It also pisses me off, but I am not paying for Apple prices on personal devices, and since Slackware 2.0 back in 1995, that there is always something that makes me waste weekends on GNU/Linux, so Windows it is.


You want to escape slow UI and bad corporate rulers... and you chose Ubuntu?!

Dude... Mint, Arch / Manjaro, Void, even Alpine is better. Plenty of good and very lean+mean options out there.

Ubuntu is the Windows of the Linux world. Has been for several years now.

Try looking up what Canonical did and still does with the Snap store.


It's not just the OS itself, where some of the slowness can at least be explained by the silo-ed nature of development and the large amount of moving parts. But even when MS gives a small-ish team free reign and a fresh start, the software is just agonizingly slow and buggy.

An example: new PowerToys https://github.com/microsoft/PowerToys/

The FancyZones "window snap" UI takes upwards of half a second to activate when dragging a window and the Zone Editor is at around 5s. All in all it is only very slightly less buggy than 3rd party tiling WMs like komorebic.

The PowerToysRun utility input is extremely variable, takes between 1 and 20(!) seconds. A lot of the plugins shipped with it simply don't work or have no suggestions/hints once you enter their prefix. The search relies on WindowsSearch, which is about 500x slower than https://github.com/sharkdp/fd and has not improved since Win7. Who cares, nobody ever searches for files, right? As a whole, PTRun is simply worse than https://github.com/Flow-Launcher/Flow.Launcher which uses the same UI kit as far as I can see. WTF?


The most frustrating thing with PowerToys is trying to remap keys (like caps lock to Ctrl). It feels like it's done by intercepting the keypress at runtime in the app rather than being configured at the system level, so if you happen to, say, hit your new Ctrl key when the CPU is pegged, it'll revert back to caps lock and then also get stuck. So you have to go into PowerToys to unbind the key, turn off caps lock, then rebind it.

There's another app that does this in the registry I think, but I keep forgetting the name of it.


The registry method is Ctrl2Cap by SysInternals.

https://learn.microsoft.com/en-us/sysinternals/downloads/ctr...

It's the first thing I download whenever I'm setting up a new Windows machine.


My understanding is he uses AI summons/etc so he's not one of the git gud crowd who believes if you don't beat it straight you suck.


This is a thing I've been wondering about for a while. How many people are exploring the general design space of safety, but from the ground up, so that they aren't tied to the set of design decisions Rust made? At one point MS had Verona but I have not heard anything about it in years so no clue if it is still actively being worked on/explored.

Rust is a good language IMO, but the industry cannot just stop there and decide this is good enough. Even with ideas like editions, there's a level of breakage Rust isn't going to do.


I actually use a VS Code plugin for this called Dendron. It is in the same vein as Obsidian or Notion, markdown based, and just runs in VSC. Very handy and since plain text works wonderfully in a git repository.


I always think of this as the programmer version of "No one got fired for choosing IBM." that was a common phrase about executives back in the day. Do the thing that you can just point to "experts" and blame them.


That is a helpful comparison. I guess it is risk aversion at the core. At some point risk aversion becomes abdication of decision making to others, which seems broken in roles that are specifically hired for making decisions, but that’s even more true of executives.


I completely agree with you, mind I feel the same way about the people who the original comment was talking about. They are paid the big bucks to decide how to spend money to optimize the company.


Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: