RetroFed Forum
Your home away from modern life.
Software is slow because of bad design, not slow languages
Post Reply
AuthorMessage
hark lemmy.world hark@lemmy.world
Joined: 2023-06-17
#102 · Quote Reply

What if the language has a bad design?

14
heartSagan5 lemmy.zip heartSagan5@lemmy.zip
Joined: 2026-05-27
#103 · (edited) Quote Reply

There are NP problems and you should know how to assess them.

1
idriss lemmy.ml idriss@lemmy.ml
Joined: 2025-06-29
#104 · Quote Reply

[deleted]
5
Evotech lemmy.world Evotech@lemmy.world
Joined: 2023-10-11
#105 · Quote Reply

[deleted]

Optimising too early is the root of all evil or something like that

7
badmin lemmy.today badmin@lemmy.today
Joined: 2025-06-03
#106 · Quote Reply

muh io bound

🤣

If the DB is IO-bound, and "slow languages" don't matter because "IO bound", then show me the DB you're using implemented in a slow language.

It's hilarious how op is being this stupidly unaware, even within his stupid false argument which is provided as a supposed given.

How are people seriously engaging with this blog fart full of false premises and contradictions?

-2
danielfm123 lemmy.zip danielfm123@lemmy.zip
Joined: 2026-07-12
#107 · Quote Reply

Both matter...

8
whoisearth lemmy.ca whoisearth@lemmy.ca
Joined: 2023-07-03
#108 · Quote Reply

I wrote a program in Python to read some huge Json files. It took forever to finish. Turned out I could optimize it with some simple changes, which reduced 10 minutes to 10 seconds (not literally, just figurative) and made a difference in huge files only. Later I rewrote the program in Rust. And you know what happened? It was slower than the Python version. Only after understanding what I was d...

As an OPS guy you know what really grinds my gears? Developers not paying attention to shit like this.

We have a job in production that is a powershell script calling a powershell script calling a java applet. Now you may already be thinking "what is this abomination?" And you're right, but that java application is set to DEBUG. IN PRODUCTION. So every time it runs it generates 1gb of logs.

Do they fix it? No of course not because if it's not broken don't fix it. But Jesus Christ we have people developing without understanding fundamentals like "YOU DONT LEAVE DEBUG ON IN PRODUCTION".

2
thingsiplay lemmy.ml thingsiplay@lemmy.ml
Joined: 2026-01-09
#109 · Quote Reply

As an OPS guy you know what really grinds my gears? Developers not paying attention to shit like this. We have a job in production that is a powershell script calling a powershell script calling a java applet. Now you may already be thinking "what is this abomination?" And you're right, but that java application is set to DEBUG. IN PRODUCTION. So every time it runs it generates 1gb of logs. Do ...

I don't understand how this is even possible.

2
dylanTheDeveloper lemmy.world dylanTheDeveloper@lemmy.world
Joined: 2023-06-09
#110 · Quote Reply

You see, performance is rarely a talking point in retrospectives unless its egregious. If you say a piece of compute is struggling the solution is to always buy more compute. It is rare that anyone would think of optimization unless you're writing libraries.

Or if its employee facing only let it get slower and slower to the point where it takes a minute to update one record

4
whoisearth lemmy.ca whoisearth@lemmy.ca
Joined: 2023-07-03
#111 · Quote Reply

I don't understand how this is even possible.

People are dumb

2
Test_Tickles lemmy.world Test_Tickles@lemmy.world
Joined: 2023-07-04
#112 · Quote Reply

I was in a meeting with a senior software engineer, who makes a shit ton more than me. While sharing my screen he saw flame graph I had for one program I was working on. They asked "what is that?", I was taken back, and said it's for looking at which functions are taking more time. Then I was asked "where did you find it?" I was shell shocked, didn't know how to answer that. Similar things have...

Flame graphs have really only been a thing for the last decade or so. The free tooling for profiling code has been shitty and difficult to understand for most of my career. And most companies aren't willing to pay for it if the product runs "good enough". These days companies lock down their shit so tight that you can't even install an unapproved app no matter how free or useful.

3
entwine programming.dev entwine@programming.dev
Joined: 2025-08-31
#113 · Quote Reply

[deleted]

I hate these kinds of comments that have no other purpose than to sling shit and start arguments.

Since this is a programming community (and giving you the benefit of the doubt, I assume you're not a vibe coder), you know your argument is nonsense. Writing something in Python doesn't automatically make it slow or use a lot of RAM or whatever. Synapse is shitty because Synapse is shitty. You can write slow and inefficient software in any language, and it feels really tedious to type this out because it's obvious and common sense.

15
thevoidzero lemmy.world thevoidzero@lemmy.world
Joined: 2024-01-25
#114 · Quote Reply

Flame graphs have really only been a thing for the last decade or so. The free tooling for profiling code has been shitty and difficult to understand for most of my career. And most companies aren't willing to pay for it if the product runs "good enough". These days companies lock down their shit so tight that you can't even install an unapproved app no matter how free or useful.

I think that's true for many tools. Programming tools are the one thing that has most advancement because so many programmer are there to improve on them. And even if you don't use it, not knowing about it completely makes it a bit odd. Although most tools I have used to make flamegraph were as easy as just running the program as a argument to another program that tracks the function calls.

1
thevoidzero lemmy.world thevoidzero@lemmy.world
Joined: 2024-01-25
#115 · Quote Reply

You see, performance is rarely a talking point in retrospectives unless its egregious. If you say a piece of compute is struggling the solution is to always buy more compute. It is rare that anyone would think of optimization unless you're writing libraries.

I think that's one of the problem with people that are only of a "finish this task cheaply for now" mind.

Having something run in 0.1 second vs 1 second is fine when a user is running it for one thing. So they consider it good or instantaneous. And later they have to do it for 1000 other things, and they don't think that saving time in that "instantaneous result" there would save so much more time. They just go "it's 1000 of these so it takes time". I've found functions that open a db file, read one entry and close it. Then that function is called for each entry they have to read later. In a preprocessing step where they know all the entries they need beforehand. And even the data tyoe to store it is nor preallocated, they just append it on every data read; again on a fixed number of entries they need.

I understand performance not being the most important thing, but I'd expect least a basic understanding of design that has unnecessary processing.

1
ExLisper lemmy.curiana.net ExLisper@lemmy.curiana.net
Joined: 2025-03-22
#116 · Quote Reply

Had the same experience when I was testing zed. Was thinking it would be a lot better since it's written in rust but there wasn't any difference in memory/CPU usage between it and VSCodium, which is electron app.

Even nvim will eat up about 5GB of RAM when used as an IDE. MCP alone will use that much of RAM independent of the editor.

0
Snaffy programming.dev Snaffy@programming.dev
Joined: 2025-03-23
#117 · Quote Reply

Too many abstraction layers

3
Kangae_Hishiryo scribe.disroot.org Kangae_Hishiryo@scribe.disroot.org
Joined: 2026-04-13
#118 · Quote Reply

Is slow because of both. Using bad languages is one form of bad design itself, in fact.

-1
Kangae_Hishiryo scribe.disroot.org Kangae_Hishiryo@scribe.disroot.org
Joined: 2026-04-13
#119 · Quote Reply

Web development and using browser renderers for GUIs is one of my most hated aspects of modern software. 🤢

Electron should have never existed and should be cometeñy banned, yeah

3
Kangae_Hishiryo scribe.disroot.org Kangae_Hishiryo@scribe.disroot.org
Joined: 2026-04-13
#120 · Quote Reply

I once did some testing comparing very simple apps built with Tauri (using system webview) and native library and the difference in memory usage was not that big. I'm looking now at a simple PDF viewer in GTK and it's using 120MB. My app written in Tauri is using 150MB. In theory native apps will use less memory when you run a lot of them at the same time but if you check the size of native Lin...

I've done tests like that too, and I can't agree with you.

Plus, GTK is a bad comparison. One of the worst native toolkits, if not the worst one along with any and all immediate mode ones.

1
NotMyOldRedditName lemmy.world NotMyOldRedditName@lemmy.world
Joined: 2023-08-24
#121 · (edited) Quote Reply

I was in a meeting with a senior software engineer, who makes a shit ton more than me. While sharing my screen he saw flame graph I had for one program I was working on. They asked "what is that?", I was taken back, and said it's for looking at which functions are taking more time. Then I was asked "where did you find it?" I was shell shocked, didn't know how to answer that. Similar things have...

Ive used them to help a lot in the past, but they often didnt give enough detail. Like I would know the area something was a problem, but pinpointing exactly what it was was still up to me, and would take some time. It worked but it could have been better.

Turns out there was a library you can add which adds that extra missing detail, and with that it was possible to highlight the exact issue. Wish id known about that sooner. That was on me though.

1
HereIAm lemmy.world HereIAm@lemmy.world
Joined: 2024-02-19
#122 · Quote Reply

[deleted]

I don't think you're making the kind of argument you intended to make. Those are two different programs with two different development teams behind them. The design behind them (the literal thing the article is talking about) are likely completely different from each other. Comparing the languages based on two different implementations of the same spec is a bit more than disingenuous. If you want to actually compare you need to recreate the same implementation as closely as feasible. Something like this https://youtu.be/WB7v-ezqcJM

5
anticurrent sh.itjust.works anticurrent@sh.itjust.works
Joined: 2024-02-16
#123 · Quote Reply

I hate these kinds of comments that have no other purpose than to sling shit and start arguments. Since this is a programming community (and giving you the benefit of the doubt, I assume you're not a vibe coder), you know your argument is nonsense. Writing something in Python doesn't automatically make it slow or use a lot of RAM or whatever. Synapse is shitty because Synapse is shitty. You can...

You can write slow and inefficient software in any language

Yes, but you can't write snappy fast software in any language, high level languages like python, lua and php carry alot of overhead from the get go, because of dynamic typing, heavy abstractions, and heavy garbage collectors.

1
idriss lemmy.ml idriss@lemmy.ml
Joined: 2025-06-29
#124 · Quote Reply

I hate these kinds of comments that have no other purpose than to sling shit and start arguments. Since this is a programming community (and giving you the benefit of the doubt, I assume you're not a vibe coder), you know your argument is nonsense. Writing something in Python doesn't automatically make it slow or use a lot of RAM or whatever. Synapse is shitty because Synapse is shitty. You can...
[deleted]
-5
idriss lemmy.ml idriss@lemmy.ml
Joined: 2025-06-29
#125 · Quote Reply

I don't think you're making the kind of argument you intended to make. Those are two different programs with two different development teams behind them. The design behind them (the literal thing the article is talking about) are likely completely different from each other. Comparing the languages based on two different implementations of the same spec is a bit more than disingenuous. If you wa...
[deleted]
-5
ExLisper lemmy.curiana.net ExLisper@lemmy.curiana.net
Joined: 2025-03-22
#126 · Quote Reply

From what I remember, Vscode has quite a fair bit of native code in various areas to make it perform better. So it may not be the representative Electron app for comparison.

Electron is also the worst web based toolkit out there. Solutions that use system webviews instead of running whole Chrome are much lighter.

1
ExLisper lemmy.curiana.net ExLisper@lemmy.curiana.net
Joined: 2025-03-22
#127 · Quote Reply

I've done tests like that too, and I can't agree with you. Plus, GTK is a bad comparison. One of the worst native toolkits, if not the worst one along with any and all immediate mode ones.

I've also compared native Rust library (egui? don't remember exactly) with Tauri and the difference wasn't that big. What did you compare? As I said, native solutions should use less memory if you run a lot of them at the same time as they will load shared libraries only once. So I guess if you run KDE and start single Qt app it will look better than running single Qt app under Awesome WM or cosmos.

2
Kangae_Hishiryo scribe.disroot.org Kangae_Hishiryo@scribe.disroot.org
Joined: 2026-04-13
#128 · (edited) Quote Reply

I've also compared native Rust library (egui? don't remember exactly) with Tauri and the difference wasn't that big. What did you compare? As I said, native solutions should use less memory if you run a lot of them at the same time as they will load shared libraries only once. So I guess if you run KDE and start single Qt app it will look better than running single Qt app under Awesome WM or cosmos.

I compared one single Qt app (QOwnNotes) with one single similar Tauri app (I don't remember the name, I was trying apps because I was looking for something extensible that wasn't Electron-based as Logseq). It was a huge difference for me, at least, more or less 100 MB, and for what I knew, it was not that badly programmed.

And for me, with only 16 GB lf RAM and an Intel Xeon v4 (12C/24T @ 2.20 GHz max) it's even more noticeable, specially because I work in multimedia (music production and sound design) and I have to use a browser and a communications app all the time because I need to research stuff and communicate with some peers and my clients (the very few times I have clients).

Every byte counts, even if you have lots of memory and a huge processor and GPU. Thinking that "1 MB is not that much" is what has led us to this crysis. We should make any and all possible optimizations to be able to ship featureful software that's not overbloated (Suckless dickheads can suck my ass).

1
Buddahriffic lemmy.world Buddahriffic@lemmy.world
Joined: 2023-06-30
#129 · Quote Reply

Nah, software is slow because it runs a web engine for GUI.

I'd say a bit of both. People who are fine with having a DOM worth of overhead don't give me much confidence they are selecting algorithms well, which can absolutely affect performance and efficiency regardless of what language they are written in.

Hell, even with the optimal data structures and algorithms selected, how you set them up can make a huge difference.

Like I once had essentially a data translator that, in order to be generic, used keys in a dictionary to replace the hardcoded data structure that needed to be updated any time the spec changed, even if we didn't care about the new values.

The first version used an array of dictionaries and was slow as fuck. Each line of data would get its own dictionary and just parsing the data into this scheme took a couple minutes IIRC. Since the data was guaranteed to have the same keys each line (we were worried about changes between versions, not lines), I changed it to a dictionary of arrays, where each line would have the same index across the dicts, and it brought parse time down to several seconds. Huge difference even though big O notation would have simplified to the same expression for the two methods.

But if you pick something with a worse big O expression, it gets worse on a whole other level.

1
Buddahriffic lemmy.world Buddahriffic@lemmy.world
Joined: 2023-06-30
#130 · Quote Reply

What does that even mean? I make GUIs in web technologies, I make GUIs in godot, I make GUIs in bevy, I make GUIs in flutter, etc etc. Blink uses Skia. Flutter uses Skia. Is skia just bad? What are you even saying? What is slow about web tech, really? To me performance is almost always bad engineering choices like not understanding or handling I/O.

The issue is that any time you add another generic layer, it involves another layer of loops for "handle everything" tasks and lookups for "handle this specific thing" tasks. A native app could set a bunch of values for properties by changing them in a single function accessing a single data structure. You might have a single function that does the same thing using frameworks, but that function is potentially going to use accessor functions to reach down each layer to set those values where they matter plus could need to do a bunch of transformations as it traverses each layer (or maybe that's done on the render side).

So then you add a bunch of caching to improve these common scenarios and balloon memory usage, which was already inflated because those layers also need memory to store their data structures.

And these things get worse as they scale, so small scale tests still look snappy and hide how much things can grind to a crawl when it needs to handle the large or normal scale. Not to mention, if you don't have a speedy version to compare to, you might just think that it makes sense for this process to take a couple minutes because it has millions of things to do (despite running on hardware that can do billions of things per second).

1
BlackVenom lemmy.world BlackVenom@lemmy.world
Joined: 2023-06-23
#131 · Quote Reply

What if the language has a bad design?

Then use it poorly and it's a double negative.

5
qarbone lemmy.world qarbone@lemmy.world
Joined: 2023-08-02
#132 · Quote Reply

Then use it poorly and it's a double negative.

Every method just returns an empty string. Runs fast as hell. Just don't expect it to do anything.

1
Post Reply Page 3 of 3   Goto page « First 1, 2, 3
Back to top