Software engineering trends that annoy you

Author Topic: Software engineering trends that annoy you  (Read 31152 times)

i love ruby on rails!!!
how can you love ruby on rails. have you used it

How did you possibly conflate tech companies blindly following whatever Apple does with "blind Apple hatred?"

we are talking about software engineering right? "whatever apple does tech companies follow", what's wrong with that? Apple did a lot of good things in software engineering believe it or not. Be precise in what specifically annoys you instead of being vague, saying "Apple bad" doesn't mean anything and reflects some ignorance on the subject.

What the hell are you talking about

My post is clear enough

I'll admit I like the way Swift handles nullability, and Apple's cryptography library definitely outpaces Android, but if I wanted to develop an Apple app for one of my own personal projects, it would have a cost-to-entry of like 2000$ since you can only develop Apple apps on Apple devices, and you require a /subscription/ to do even some basic development tasks...
how can you love ruby on rails. have you used it
real
the proliferation of electronjs and every program pretending to be a standalone application but actually being a glorified version of chromium or webkit
computers may be faster but you should still aim to have optimized code damnit
That's the program manager special sauce right there lmao

Websites nagging you to download their massively bloated app whenever the browser version works perfectly fine.
Examples:
Twitter/X
Reddit
Imgur
Facebook
Alibaba

The Google Chrome app on my phone and all the cookie data and cache data for hundreds of websites is 559MB.
The Alibaba App is 507MB
The Uber Eats app is 313MB
The Paypal App is 303MB.
The Amazon Shopping app is 253MB


If an app doesn't explicitly benefit from device-level APIs such as biometrics or Face ID, I don't see why I should download it. Reddit specifically is a huge loving nag, sometimes even mandating you download the app and make an account.

The bloated apps I feel are crazy, for multi-platform apps, there used to just be one runtime installed per system, but now apps are packaging their own runtimes. The base install for a .NET MAUI app is like 150 MB because it has to ship a portable version of the .NET runtime with it.

modern softdev companies don't really allow edging in the break rooms anymore

Users entering [object Object] into random webforms.

we are talking about software engineering right? "whatever apple does tech companies follow", what's wrong with that? Apple did a lot of good things in software engineering believe it or not. Be precise in what specifically annoys you instead of being vague, saying "Apple bad" doesn't mean anything and reflects some ignorance on the subject.
I'm not sure where you are coming from. I never once suggested or implied Apple does not contributing anything to software engineering. It had nothing to do with that at all. You vehemently defending the company when I was directly critiquing every other company speaks a lot more how you view Apple than I do.

Be precise in what specifically annoys you instead of being vague, saying "Apple bad" doesn't mean anything and reflects some ignorance on the subject.
I understand that English may not be your first language, so please understand that when I say "no matter how stupid" both does not mean and is far removed from "this company only produces bad software and/or products and I hate it" or however you are interpreting it.

I'm not sure where you are coming from. I never once suggested or implied Apple does not contributing anything to software engineering. It had nothing to do with that at all. You vehemently defending the company when I was directly critiquing every other company speaks a lot more how you view Apple than I do.
I understand that English may not be your first language, so please understand that when I say "no matter how stupid" both does not mean and is far removed from "this company only produces bad software and/or products and I hate it" or however you are interpreting it.

I apologize for misunderstanding your post. Thank you for clarifying it; it's much clearer to me now.

the blind hate for electron apps in this thread is my pet peeve. Hating on electron because it's "bloated" and "uses a lot of memory" is an opinion only profoundly junior engineers who have never shipped anything can have. It is the kind thinking that only the "um ackshually" fresh newgrads can have because they chase extremely insignificant performance gains and try to hyperoptimize everything. They do not realize that engineering is a field of TRADEOFFS and PRAGMATISM and you actually have to cobble stuff together with a limited timeline. You can't just sit around and circlejerk about how you need sub-10mb binaries and all the code has to run in O(n) time, you NEED TO SHIP TO MAKE MONEY.

Let me clarify my position on electron/JS/webdev as a whole:

I think web applications are by far the best cross-platform UI system ever designed and the ability to create consistent and reactive UIs across ***every*** single platform is an advantage that far outweighs their performance.

My proof of this is that fact that engineering teams across the world have settled on it as the de facto standard for cross-platform development, entire industries have spawned overnight because of SPAs, and there has never been an era where more apps work on every platform.

The electron team and people who develop web browsers/engines (chrome, firefox, etc.) have made enormous strides in the safety, performance, and reliability of these platforms in the recent years. Javascript development is no longer a painful relic of multiple competing standards. HTML & CSS are the best they have ever been, it's literally only up from here and people who repeat the same tired old talking points that web dev sucks only do so because it's cool to do so.

To the people who still think web dev sucks as a UI creator: have you ever tried to create a UI using Qt? how about Swing? what about WPF or even the UI libraries in game engines such as Unity?

The fact of the matter is: all of those libraries suck, there has never been a consistently good UI platform for apps that need to run on ALL platforms. The only thing that ever came close was the web, and it's here to stay and just gets better and better.

I predict the future will have OSs implementing some kind of electron-like environment inside the OS so that all of these apps won't have to ship with a chrome binary, but we are already at the point where HTML & CSS is the UI platform and most complaints have been addressed or are in the pipeline of being addressed.
when programmers take the speed/capacity of modern hardware for granted. why is there like 5 seconds of latency half the time when I'm menuing around my TV. Why does your stuffty little mod manager have Chromium embedded into it.
the only exception to my point is TVs, why the forget do all of them have such stuffty god damn processors. I have never bought a ""smart"" TV that functions without significant input lag or crashing. In this case, I think running an entire OS on the thing is overengineering and it should only display what the inputs are giving it. I want my TVs dumb as a brick
« Last Edit: March 15, 2024, 04:45:31 PM by Aide33 »

...
this isn't wrong, but electron apps are also legitimately bloated. it feels like we've taken the improvements in CPU speed and memory cost for granted, even if it was for a good reason. those hardware improvements arent necessarily going to continue forever - at some point we will run up against physical limits, so programmers should be more responsible about performance. the need to ship fast is often in conflict with writing performant software

the only exception to my point is TVs, why the forget do all of them have such stuffty god damn processors. I have never bought a ""smart"" TV that functions without significant input lag or crashing. In this case, I think running an entire OS on the thing is overengineering and it should only display what the inputs are giving it. I want my TVs dumb as a brick
nah but I do like having a netflix/amazon prime/emby/etc app right on the TV.
i have to imagine they develop the OS on dev machines that perform much better than the TVs themselves
they might also be writing OSes that are used by many different TV models with different hardware

I do web development, i love react and stuff like that (especially svelte baby hell yeah baby) (also preact is good if you're really a fan of the react model but want Faster). I agree with aide that it's definitely the best Run Everywhere solution. ultimately ease of development is an important trait, leads to more maintainable software with fewer bugs. like you may think modern software is buggy but if facebook had to make their website in C it would not be capable of the kinds of widespread sociological influence that it is because you just wouldn't be able to use it

although there definitely is a problem with developers (in general, but as a web dev myself i feel entitled to say that it's especially bad in this field) simply not caring about software quality and performance and resource management. a degree of performance issues is caused simply by the use of these higher level languages which hide a lot of it from you, but i would venture to say that most of it is just because devs don't care enough. lack of unit (or other forms of automated) testing is like a forgetin epidemic. there's almost none anywhere. trying to find an employer that cares about it is a pipe dream these days. including it on his little list is the only good thing joel spolsky ever did for the software industry (and contributing to the founding of stack exchange was one of his worst)

electron is bad in the way that it's like, a single runtime, but every single application has its own instance of it. that's just loving stupid. like we knew better in the 90s. there's no real excuse. otherwise however it's a pretty good way to develop a piece of desktop software that's trivially multiplatform. as long as you care. but if you don't care, then it doesn't really matter what you use to make it, it's gonna suck anyway. but for this reason I generally just advocate for making websites. everyone can use whatever runtime they want and frankly you can do just about anything. I feel like the number of things you genuinely can't do in a browser that you can with a piece of desktop software is pretty low and mostly nonessential
« Last Edit: March 15, 2024, 11:23:11 PM by Foxscotch »

With what Microsoft is doing with new Teams and their WebView2 runtime--is that still cross-platform? I actually didn't mind that upgrade--the upgrade from Outlook to new Outlook was really good too.

Websites nagging you to download their massively bloated app whenever the browser version works perfectly fine.
Examples:
Twitter/X
Reddit
Imgur
Facebook
Alibaba
twitter and tumblr are the ones that piss me off the most, especially because even though i have the app installed, they won't always open links in the app. reddit just gets on my nerves when sometimes the page won't work at all due to the "reddit works best in the app!" popup

the blind hate for electron apps in this thread is my pet peeve. Hating on electron because it's "bloated" and "uses a lot of memory" is an opinion only profoundly junior engineers who have never shipped anything can have.
Because those applications are bloated and do use a lot of memory. All the electron-based apps running on my system right now consume at least 300 MB of memory each.
I don't think that's entirely the fault of the end developers though because Electron itself is the issue, namely every app spinning up its own Chromium instance.

Does a rendering engine and an HTML, CSS, and a JS interpreter/JIT compiler use 300 MB of memory? I highly doubt it. If by chance they do, then I think it's high time to supersede these old standards.

The only thing that ever came close was the web, and it's here to stay and just gets better and better.
Idk one of the things keeping me far away from web development is the constant cyclical fad of new frameworks to solve the never-ending issues of web development - largely caused by the shortcomings of Javascript.

although there definitely is a problem with developers (in general, but as a web dev myself i feel entitled to say that it's especially bad in this field) simply not caring about software quality and performance and resource management. a degree of performance issues is caused simply by the use of these higher level languages which hide a lot of it from you, but i would venture to say that most of it is just because devs don't care enough.
I'm gonna play devil's advocate and say that if I was working as a web developer in an environment where the only thing that my manager/boss/employer cares about is getting a product to launch as quick as possible (especially with how cutthroat it is now) I probably wouldn't care much about performance either.
I think the only way around this is to change the tools and standards that can perform better in that kind of industry.

If even the best JS interpreters and HTML+CSS renderers are too slow then it's probably an issue with the languages themselves and we should start looking for a new replacement.
Maybe a scripting and a markup language that are quicker to parse and interpret? What about having them be compiled to bytecode and binary formats? Who knows.