Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "developer joys"
-
WASM was a mistake. I just wanted to learn C++ and have fast code on the web. Everyone praised it. No one mentioned that it would double or quadruple my development time. That it would cause me to curse repeatedly at the screen until I wanted to harm myself.
The problem was never C++, which was a respectable if long-winded language. No no no. The problem was the lack of support for 'objects' or 'arrays' as parameters or return types. Anything of any complexity lives on one giant Float32Array which must surely bring a look of disgust from every programmer on this muddy rock. That is, one single array variable that you re-use for EVERYTHING.
Have a color? Throw it on the array. 10 floats in an object? Push it on the array - and split off the two bools via dependency injection (why do I have 3-4 line function parameter lists?!). Have an image with 1,000,000 floats? Drop it in the array. Want to return an array? Provide a malloc ptr into the code and write to it, then read from that location in JS after running the function, modifying the array as a side effect.
My- hahaha, my web worker has two images it's working with, calculations for all the planets, sun and moon in the solar system, and bunch of other calculations I wanted offloaded from the main thread... they all live in ONE GIANT ARRAY. LMFAO.If I want to find an element? I have to know exactly where to look or else, good luck finding it among the millions of numbers on that thing.
And of course, if you work with these, you put them in loops. Then you can have the joys of off-by-one errors that not only result in bad results in the returned array, but inexplicable errors in which code you haven't even touched suddenly has bad values. I've had entire functions suddenly explode with random errors because I accidentally overwrote the wrong section of that float array. Not like, the variable the function was using was wrong. No. WASM acted like the function didn't even exist and it didn't know why. Because, somehow, the function ALSO lived on that Float32Array.
And because you're using WASM to be fast, you're typically trying to overwrite things that do O(N) operations or more. NO ONE is going to use this return a + b. One off functions just aren't worth programming in WASM. Worst of all, debugging this is often a matter of writing print and console.log statements everywhere, to try and 'eat' the whole array at once to find out what portion got corrupted or is broke. Or comment out your code line by line to see what in forsaken 9 circles of coding hell caused your problem. It's like debugging blind in a strange and overgrown forest of code that you don't even recognize because most of it is there to satisfy the needs of WASM.
And because it takes so long to debug, it takes a massively long time to create things, and by the time you're done, the dependent package you're building for has 'moved on' and find you suddenly need to update a bunch of crap when you're not even finished. All of this, purely because of a horribly designed technology.
And do they have sympathy for you for forcing you to update all this stuff? No. They don't owe you sympathy, and god forbid they give you any. You are a developer and so it is your duty to suffer - for some kind of karma.
I wanted to love WASM, but screw that thing, it's horrible errors and most of all, the WASM heap32.7 -
The joys of being the sole developer and sysadmin of a service with hundreds of thousands of users.
Just spent a couple hours with my family. In that time half the infrastructure died and the service became unstable.
Best of all is that I seem to be the only one getting this so called "java.net.UnknownHostException: System error" exception.2 -
The joys of your last day at work, lots of cake and no work to do. As of Monday I will be a proper developer!2
-
The joys of bring a Fullstack developer..
Sometimes beings junior Fullstack developer I find myself in tricky situations.
This past week I was invited to a meeting with all the front-end developers where we were presenting our software when a 500error popped up...( I was day dreaming looking out the window watching two birds hop around)Then I heard one developer ask what the problem was and another quickly replied "backend problem"... Still half asleep and deep in my new found interest in birds I blurted out "maybe the front-end is not sending the request properly".... Immediately the room fell silent... this sent a chill down my spine and I was brought back to reality, I looked round the room and everyone was staring at me like I insulted their mothers... I tried to make a joke of it but saying "Sorry I forgot this was a front-end meeting"... The lead architect who for some reason was also present then said "at least someone sees things differently"... And everyone laughed (although I'm not sure how sincere their laughs were).1 -
When you marvel at your code creation and the beauty of your envisionment only to be painfully whittled down as your boss tells you to change it all, because he doesn't like how the code looks. Joys of being a junior developer!1
-
The joys of being a multi-project, multi-language developer! You think you'll juggle a couple of balls, but suddenly you're in a full-blown circus act, with chainsaws, flaming torches, and a monkey on your back yelling "more features!"
In the morning, you're all TypeScript: "Yes, of course, types make everything more reliable!" By lunch, you're neck-deep in Python and realize types are a vague suggestion at best, leaving you guessing like some bug-squashing mystic. And then just when you’ve finally wrapped your head around that context switch, FastAPI starts demanding things that make you wonder, "Why can’t we all just get along and be JavaScript?"
Oh, and don’t even get me started on syntax. One minute it’s req.body this and express.json() that. The next, Python’s just there with a smug look, saying, "Indentation is my thing, deal with it!" And don’t look now, because meanwhile, Stripe’s trying to barge in with a million webhooks, payment statuses, and event types like “connect” and “payment,” each a subtle bomb to blow up your error logs.
Of course, every language has its "elegant" way of handling errors—which, translated, means fifty shades of “Why isn’t this working?” in different flavors! But hey, at least the machines can’t see us crying through the screen.11