If you complain that modern software is slow (it is), then its because people are NOT using low level APIs like Vulkan, that forces you to think about how to most effectively utilize the hardware. Its because people don't want to know how anything works, and load up on a mountain of dependencies and run everything in a garbage collected virtual machine in a browser.
for some definition of "people" .. isn't the detail at the low level sort of overwhelming on modern cards?
Lots of people argue that slow shitty software is good enough, because its not worth spending time, energy and money doing things right. I dont agree with this, but its consistent argument: Money and time is more important then software that runs well. At least then you have made a choice about your priorities.
I would love to learn a new low-level API for better performance, but I really don’t think the time I spent learning Vulkan to benefit of the same performance I could have using OpenGL worth it.
I will make an update to the article this week to make a clearer explanation, thank you for your comment.
Consider every software security update to be a bridge falling down, due to incompetence.
In this case, the fault isn't so much individual incompetence, as collective incompetence of the field. The ecosystem is toxic, as are conventional practices, as are market incentives. Individuals might be incompetent on top of that, but the situation is nigh impossible for competent ones as well.
And there are no professional engineer licenses to pull, nor few individuals to send to jail.
Essentially, your current OS requires you to have absolute faith in any software that runs on your behalf. If it goes rogue, or gets confused, almost anything you could do to sabotage yourself... it can do in milliseconds.
On the other hand, if the OS didn't have that requirement, and instead let you choose what files to open, and enforced your decisions, you wouldn't have to trust your software at all.
From the point of a GUI user, they wouldn't see any difference in behavior. File Open still works like always, but the logic behind the scenes is slightly different.
Command line usage, that's a tougher nut to crack. There needs to be a standard way of defining what files you're passing on the command line.
We could stop blaming everything but the OS... but we likely won't. 8(
The concern is that the field of software can't seem to build a bridge when it needs to.
As the article itself says, the doomsaying should be taken with a grain of salt. There are problems, and the best thing to do is improve your code, and encourage your team to focus on performance, security, etc. Lead by example. Adding bureaucracy never fixed anything, and wastes so much time money and opportunity in the process.
And reliably. I’ve been banging this drum for a while, the castle is built on quicksand.
As general purpose software makes its way into cars, and ever more critical system start running JavaScript on non-realtime Linux with buggy drivers.
we will eventually have some kind of software caused catastrophe and then regulation will come down on us like a metric ton of bricks.
Eh, I disagree. Software engineering allows for failure where the cost of failure is low. So your mail app stops working and you have to restart it, who cares, so long as you get some neat new features faster that on the whole make your life better?
In parts of the industry where failure is costly, like medical or aviation, we operate differently.
Speed and correctness are antithetical generally, and different parts of the industry accept different trade-offs based on their risk tolerance.
The goal isn't to build something that operates perfectly at all costs, the goal is to develop systems that operate as well as they need to given external constraints.
[edit] The truth is we wouldn't have 1/10th of the cool shit we have today if we demanded absolute perfection from things that just didn't need it because we're a "profession."
Yes, some tools were much snappier on much crappier hardware, but they also lacked features, including safety and collaborative ones.
We have so many more people using computer devices and the internet now. We have to account for them to some extent and a lot of libraries do that for us, but it does make them heavier.
I’d say yes software has gotten fat and slow in a lot places, but also immensely more capable and more reusable.
A significant percentage (majority?) of those devices and internet connections are low powered and slow compared to what most readers here are using
Those heavy libraries can often exclude those users simply because they can't adequately run the fancy features those libraries provide
There's a balance here that I think we, as an industry, are not managing well
If you want a multiplatform graphics API, you should use a library which implements such API on top of these native OS-specific APIs.
I have good experience with that one: http://diligentgraphics.com/diligent-engine/ I’ve used it couple times on Windows with D3D12 backend, and on Linux with GLES 3.1 backend.
Typical software approach- instead of fixing the fundamental problem, just put a plaster on top. That’s how we deal with everything. Thats why our industry can’t be trusted.
It’s technically possible to force these two companies to implement a shared API, but hard to do, and “Vulkan API Support Act of 2024” sounds a bit weird, IMO.
Uhm what?
I am very pissed when I see software “engineers” more concerned about a vim configuration than thinking why their shell profile takes three to four full seconds to load.I really wish the gaming space on phones weren't such a radioactive wasteland
E.g.: https://tftcentral.co.uk/news/asus-announced-rog-swift-pg32u...
Azure deployment pipelines are still slow as molasses. That hasn't changed.
People used to think I was a conspiracy theorist for suggesting this. Yet it's clear as crystal that the incentives in the monetary system itself are set up this way. Can you think of a more powerful incentive than money to drive behavior?