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

Fun story! Performance is often highly unintuitive, and even counterintuitive (e.g. going from C++ to Python). Very much an art as well as a science.

Crazy how many stories like this I’ve heard of how doing performance work helped people uncover bugs and/or hidden assumptions about their systems.


It doesn't come off as unintuitive by my read. They had a bug that led to a massive performance regression. Rewriting the code didn't have that bug so it led to a performance improvement.

They found that they had fewer bugs in Python so they continued with it.


I think a lot of people (especially those who are only peripherally involved in development, like management) don't really consider performance regressions at all when thinking about how to get software to go faster.

Meanwhile my experience has been that whenever there has been a performance issue severe enough to actually matter, it's often been the result of some kind of performance bug, not so much language, runtime, or even algorithm choices for that matter.

Hence whenever the topic of how to improve performance comes up, I always, always insist that we profile first.


My experience has been that performance bugs show up in lots of places and I'm very lucky when it's just a bug. The far more painful performance issues are language and runtime limitations.

But, of course, profiling is always step one.


The leadership and product direction work are at least as hard as the code work. Astral/uv has absolutely proven this, otherwise Python wouldn't be a boneyard for build tools.

Projects - including forks - fail all the time because the leadership/product direction on a project goes missing despite the tech still being viable, which is why people are concerned about these people being locked up inside OpenAI. Successfully forking is much easier said than done.


I had a lot of trouble convincing people that a correct Python package manager was even possible. uv proved it was possible and won people over with speed.

I had a sketched out design for a correct package manager in 2018 but when I talked to people about it I couldn't get any interest in it. I think the brilliant idea that uv had that I missed was that it can't be written in Python because if is written in Python developers are going to corrupt its environment sooner or later and you lose your correctness.

I think that now that people are used to uv it won't be that hard to develop a competitor and get people to switch.


Not necessarily UB, but absolutely "spooky action" nondeterministic race conditions that make things difficult to understand.

> The problem is that Python was meant for scripting not properly designed software system engineering.

What something was meant to do has never, ever stopped people. People find creative ways to use tools in unintended ways all the time. It's what we do.

We can call this dumb or get misanthropic about it, or we can try to understand why people all over the world choose to use Python in "weird" ways, and what this tells us about the way people relate to computing.


100%. The thing I'm currently working on has been a pain probably 80% because the work was underspecified and didn't take a bunch of legacy concerns into account and probably 20% because of nature of the code itself.

If it was better specified I'd be done already, but instead I've had to go back and forth with multiple people multiple times about what they actually wanted, and what legacy stuff is worth fixing and not, and how to coordinate some dependent changes.

Most of this work has been the oft-derided "soft skills" that I keep hearing software engineers don't need.


This is gonna rankle folks who like one or the other, but they're basically the same language. When it comes to languages that run on the same VM, Erlang and Elixir are very close together. They aren't nearly as far apart as say, Java and Clojure.

Elixir adds a few things (a lisp-style macro system, protocols, UTF-8 as the default string type, a builtin build tool, streams) but Elixir is not a huge departure from Erlang in the way that Clojure is a huge departure from Java.

By far the biggest things you're going to learn when you learn either one are going to be the BEAM runtime itself and the OTP libraries, which both Elixir and Erlang have in common.


> I can't even dev elixir on my N100 minipc, it's too demanding.

Isn't the N100 a quad core machine? It can't run Elixir?


It can but it feels very sluggish developing in my ide of choice (vscode). I also miss having a debugger which is nonnegotiable for me.


You can (and should) always handle whatever errors you actually want to and are able handle, so if that means catching a lot of them and forwarding them to a model, that's not a problem.

The benefit comes mainly from what happens when you encounter unknown errors or errors that you can't handle or errors that would get you into an invalid state. It's normal in BEAM languages to handle the errors you want to/can handle and let the runtime deal with the other transient/unknown errors to restart the process into a known good state.

The big point really is preventing state corruption, so the types of patterns the BEAM encourages will go a long way toward preventing you from accidentally ending up in some kind of unknown zombie state with your model, like for example if your model or control plane think they are connected to each other but actually aren't. That kind of thing.

Happy to clarify more if this sounds strange.


It doesn't sound strange, it actually sounds sane and what everyone should be doing.

At the same time, I can't imagine the last time I had a random exception I didn't think about in prod, but I guess that's the whole point of the BEAM, just don't think about it at all.

I might take a stab at Elixir, the concepts seem interesting and the syntax looks to be up my alley.


Here was my recent pitch on why I like Elixir: https://news.ycombinator.com/item?id=45896313


It's a cult. Really. This is a stock devoid of any connection to reality, fundamentals, products, anything. All that matters is that Musk is on the nameplate. Do not bet against the ability of people in a cult to remain irrational in the face of overwhelming evidence. Do not touch the cult.


It's a bit more than just his name. It's the statements he makes, that turn out to not be true.


If it's a cult why BlackRock is heavily invested in TSLA? Should not be they more rational (e. g. look at P/E ratio and other financial stats).


With entities like BlackRock. There is always on which part of money they manage they are simple followers. Index funds simply follow indexes. They can not decide not to invest according to set out rules.

And when you get to active management, those managers might not either be that good. And it works as long as market keeps going up.


Maybe they think they can ride the cult and get out faster than the cultists when necessary?


If you have to explain the pronunciation of the name of your tool in the first sentence, you've already lost.



Funny, I had a job where everyone called it "N-Jinx", so I said that at another job and everyone looked at me like an idiot.


Huh? Guess you do learn something new everyday - I've been calling it that for ever too but apparently it is "engine-x" ... (thanks to you, I guess I won't sound like an idiot any more, to some ;).


I was in a group who began pronouncing the dashes in command-line options as "tack" and they said it was military lingo, but I cannot now find any connection to dash, hyphen, "minus", or Morse code "dah".


Tack is short for tackline, a length of line used to delimit messages encoded with flags in the days before shipboard radio communications.

Military and civil emergency communications use alternative pronunciations where clarity and brevity are critical.


Ooh! I do this! I got it from Darren Kitchen from Hak5! I have no idea where or why he did it though.


Lots of counterexamples to that one.


No.


English, dammit...


sudo? gnu? mate? debian? ubuntu? suse?


Oo Boon Too

I was born and raised amongst the rednecks of the southern US and still, someone saying “uh-BUN-too” sounds so silly


Wait, how are you supposed to say mate?


Mah-tay


WHAT D:



lol, no thank you


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

Search: