Mine is that the useState hook is an actual plague on the entire React ecosystem. Regardless of your opinions of React, if you wanna use something then use it right.

Rust is a fusion of the worst parts from Javascript and c++.

The entire modern web tech stack should be thrown in a dumpster, ignited with gasoline, and blown up with a nuke for good measure.

HTML/TeX/etc are real programming languages that just happen to be declarative as opposed to imperative.

AI will actually kill the fuck out of us, even if it is just a stochlastic parrot.

You should not be using AI at all. https://survey.stackoverflow.co/2026/ai

Not a programmer, but I hate softwares that use python, why the fuck it requires 10 million dependencies to function?

Rust is the easiest programming language to learn.

Granted, I'm autistic, but still. I found it far more intuitive than JavaScript or Python.

Bonus: HTML and JavaScript are evil and I hate webpages that use it. Thats pretty much all of them, to be fair, but markdown websites do exist and I love them

People who use smart phones are idiots.

Unit tests are overrated to the point of being harmful. They have their place, but that place is certainly not "the base of the testing pyramid". They are useful for a very specific type of "units" - and using them anywhere else just messes things up.

I remember on Reddit several years ago I said that automatic bitlocker is the curse of installing W11 on a laptop.

I got down voted so hard. One comment even said you should be thankful because encrypting by default should be the norm.

But yet if I add any thunderbolt device to my windows before I boot it, it requires me to input my 25 character bitlocker key... that's hosted online within my Microsoft account.

Bitlocker enabling by default without user input is horrible. Hosting the keys online is also horrible. It could be so easy to socal engineer into your Microsoft account.

Email does not matter as much as people think it does. People like to suggest that others should switch to Proton or Tuta. There are some benefits to doing that. For example, Proton and Tuta are zero knowledge encrypted. Tuta is completely powered by renewables, and it supports contacts integration on Android.

However, some people say that those services give you real email privacy. They don't. Proton uses the same protocol that everyone else is using. Tuta sort of does their own thing, but it is interoperable with all email services. Unless you are emailing people within the same service, it is not end to end encrypted. You could use PGP. I think most people would not open your email or respond to you, though.

In my mind, email is old school and a fairly low priority for privacy enthusiasts. You are welcome to switch to those services. And like I said, there are some benefits. If you think, however, that using those services is going to give you real email privacy, you are unfortunately mistaken.

Cloud computing is the biggest breach of privacy out there that we've adopted whole hearted.

About ten years ago I said that aircraft carriers are becoming increasingly irrelevant as missile and drone technology proliferates and develop.

Everyone who indents code with 4 spaces also eats children.

systemd does a lot of things very right and a mayor reason that linux is in a way better place than 15 years ago. 27 unmaintained tools are not better than one that is professionally developed.

OOP dogma isn't just bad, it's actively harmful. OOP leads to unnecessary boilerplate. Any boilerplate that is not absolutely necessary is noise and bad. Full stop.

Private (Getters/setters): Strictly not a necessity in any sense of the word.

Short functions everywhere.

Short files everywhere.

I prefer to see the steps of execution that are actually happening in the real world on hardware. Not an ivory tower of code that happens to execute.

if you're making a user-facing program, you should always design with the possibility that it will be run on some truly dogshit hardware and you should make sure that they still have a good experience. good computer hardware is a luxury on the world scale, even before the rampocalypse

related, but the answer to the question "who still uses {x} these days?" is almost always way, wayyyy more people than you think

React is a plague. useState and all the other use hooks.

Choosing cattle over pets is often a mistake. Yes, even cloud-based cattle.

Node.js TS is great

If there are spelling mistakes in your codebase, that’s a huge smell

If you are getting paid for engineering software, your labour should be licenced in an appropriate jurisdiction, and you should be liable to losing said licence if you do shit job.

  • C++ is an awful language overall.

  • Linus is just some guy with good programming skills and not an authority over anything tech.

  • ~~There aren't any good text editors in the wild. VSCode is awful apart from extension support. Kate is close to being perfect but lack of extensions are pulling it back. Vim, Helix, Emacs, NeoVim are all flex toys.~~ nvm just tried zed with AI disabled

  • AI bad

What makes you think C++ is awful?

Don't most people who use it try to avoid like 90% of the core language features

Upvoting because I disagree with every word of what you wrote.

That's the point lol

Linus is just some guy with good programming skills

I somewhat agree. Most celebrated personalities in tech aren't programming geniuses - they were in the right area at the right time and had some luck. Zuckerberg is a good example.

I think kernel maintainers and rendering engines (browsers and others) have a higher base skill level. Like some web developers are clever and some are stupid, but I don't think there are stupid kernel maintainers.

The thing with Linus is that he's been involved, and at the pointy end, for decades. You or I may not agree with him on every issue, but you can acknowledge that he has experience and he has connections.

I have massive respect for the guy. He did so much for the open source community. But for some reason everything he says is interpreted as inarguable truth by most tech guys.

For example his opinions on AI are pure trash and bootlickery. Which is fine anyone can think anything. We just have to think for ourselves a little.

I agree that everyone needs to think for themselves, absolutely.

However, I struggle with this and it's kind of what I'm getting at:

his opinions on AI are pure trash and bootlickery

Firstly, you'll be hard pressed to find someone who hate's AI more than me. It literally keeps me awake at night. I hate the environmental impact. I hate the people it's enriching. I hate the work it's stealing. I don't often use the word "hate" but it really does apply here.

That said, I always try to defer to the opinions of people with more experience than me, and as regards kernel maintenance and Linus, that's certainly true.

You've probably heard of the Dunning-Kruger effect. I know a bit about code, a bit about FOSS, a bit about linux, AI, and communities. So it's easy to underestimate the yawning chasm of experience and knowledge between myself and Linus.

That doesn't mean we have to blindly accept the opinions of others (I honestly haven't accepted Linus' opinion myself), but I'm aware of the profound discrepancy between my opinion and his and it concerns me.

All that aside, is it possible to acknowledge that something is the correct course of action even if it's not the ideal? I haven't been following the Linus / AI thing, but as I understand it a project like that kinda has to allow AI bug reports because threat actors will certainly be using AI to find exploitable bugs.

https://pivot-to-ai.com/2026/10/14/linux-kernel-goes-full-ai-slop-code-hides-chatbot-commits/

https://www.phoronix.com/news/Linux-Foundation-25p-AI-Slop

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=14c897740388216acd59477a382de327d5e27ba4

My argument against Linus would be that the non-LLM tooling is auditable and known. I know I can trust all the tooling below it and only read your code, but with LLMs they are explicitly trying to replicate good looking code and can generate a ton of it, so it becomes incredibly difficult to actually audit.

Again this is part of the discussion about Linus decisions which has been had ad-nauseum.

With the greatest respect, responding to this comment would be to engage in a discussion of whether Linus is right in this particular instance. I'm not willing to do that because I'm sure that's a conversation that's been had a billion times.

I was / am happy to talk about how we injest the opinions of experts in a more general way.

it gets down to whether experts are experts at everything. Linus is not an expert at anything outside of kernel maintenance. His opinions on whether we should use LLMs are null and void considering the massive effect on the planet. It'd be like if a nuclear engineer said we should be building more nuclear bombs for everyone to use, just so they could use nuclear engineer more freely. Like, their opinions about nuclear energy might be fine, but their opinions that have an effect on the entire planet are completely wack.

That's a really good point. There's loads of examples of this, like doctors don't give good nutrition advice, et cetera.

He doesn't really need any latitude to offer an opinion on whether these tools should be used on the Linux kernel.

Whether you should use an LLM to plan your shopping list, or understand your toddlers behavior, is not something you should listen to Linus about.

injest

Could you be serious, though?

Zed sucks in many of the ways that modern editors suck.

Autocompleting on characters that appear in code, and autocompleting in a way that overwrites the code you have already written are two incredibly stupid decisions that put a mark over any tool that adopts any one of them.

But then, Zed almost working, but in a way that still sucks was enough to motivate me into setting my Emacs properly, in a way that doesn't suck. So Zed gave me a good editor.

Zed is actually a pretty good editor IMO. Miles ahead of Code at least

I thought zed was just a slop focused Code fork like Cursor?

Not a slop fork, they wrote their own rust graphics compositor, 10/10 will shill until they go shit heel

It really is remarkably better than Code. Single-window, multi-repo, multi-worktree support? Not a problem. Want a closer look at the diff? Why stop there, you can maximize every single panel. The Git integration is also so much better, no extensions required. Lots more stuff is integrated, yet less setup is required and somehow it is still much faster than Code.

You can really tell that a ton of thought went into this IDE

I’ve not even gone that deep with it, just writing code to keep my trash can purring along. It’s smoooth, responsive, everything is intuitive, and the language server support is 🤌

Nope. It’s written from scratch in rust. Not a fork at all.

If you do not want the AI, gram editor is a fork that works well

Linus is just some guy with good programming skills and not an authority over anything tech.

Isn't he the authority that approves what gets into the kernel? Or used to be at least.

I like Nano :)

Well yes obviously; Nano is perfection but is normally left out to give the other text editors a chance.

I find it so weird that vi and/or vim is included (at least what I have seen so far) everywhere but not nano.
vi is so not intuitive

Give micro a shot

What makes it better/different?

Just try it

Found the differences and am intrigued.
Now I'd just need to unlearn some muscle memory ;)

That information about text editors is out of date - we now have Zed. Just ignore the "AI integration" bs, it's entirely optional

Right now I use Helix and I'm trying to decide whether to switch to Zed. Because it almost looks like a better editor at this point, except its configuration is not as declarative as I'd like and its AI service uses a bunch of closed providers.

Do they collect data though? This is important. If not I might give it a shot.

And also when you don't use AI, can you disable all AI UI features.

It’s opt-out telemetry sadly. I’ve been tempted to make a PR to make it op-in

Zed is totally open source, and the AI "features" are optional. When you set it up - at least when I did - it's one checkbox to disable. I don't remember about the telemetry you will have to have a look, I'm usually ok with that myself.

I came from VSCode and haven't found anything I miss. I especially don't miss the poor performance of VSCode, Zed is extremely lightweight!

I miss C# support, but I also think vscode's solution for that was shit too

VSCode is like the worst fauxpen source ever.

Unrelated, but I absolutely adore your pfp.

Thanks!

I wouldn't say that vscode is awful. It's not good though. Even while being the best.

To add: jetbrains IDEs are awful

Yeah bloated privacy nightmares.

based

Agree with half of that. C++ is last century stuff and should be replaced. Any new code in C and C++ is immediately a vulnerability.

Atleast C is easy to understand which makes it easier to find and fix vulnerabilities. C++ feels like it's duct tape holding it together.

C is easy to understand and find vulns? AI is uncovering decades of vulns in C code that humans hadn't seen since the code's inception. And they aren't logic errors but memory management errors. Not a single day goes by without a CVE in a C/C++ project about memory management.

Both languages are walking vulnerabilities.

Embedded programmer here: C/C++ is not going away any time soon. Rust just isn't ready yet (on microcontrollers anyway)

PHP sucks and every attempt at defending it is pathetic.

I get warm and fuzzy feelings that people here are not even talking about it. Perhaps I should follow that trend.

Functional is better than object orientated programming

Firefox is a good browser

If a browser does not support unlock origin it is worthless. So Firefox wins by all opponents willfully exiting the race

Firefox is good, Mozilla is bad

You know what, I’ve been a Firefox user since the days of beta Phoenix. I’ve expressed your view for years now - Firefox was great, but held back by a commercial org that want led fancy SF offices, fancy SF compensation etc.

But I tried out Helium a little while ago and in truth, I’m not sure Firefox is all that good these days. Helium is basically ungoogled-chromium + extension support + super lean UI.

The upside is that you no longer have to contend with sites that have given up on Firefox testing. The downside is manifest v3. But all in all, I find it a better browser. Firefox is so busy telling its story, and finding revenue, that it just seems to have left behind product market fit.

Mozilla has totally lost their way. But using any chromium-based browser is still bowing down to Google’s near monopolistic control over web ‘standards’.

Using the blink engine, even in a ungoogled browser, still gives google power and is immoral.

It is though

It's the only non chrome browser

How about the KDE ones?

There's niche WebKit browsers too, like Epiphany. Also Ladybird in development, but that went full AI slop AFAIK.

Safari? I'm not suggesting you use it, but it does exist.

We don't acknowledge the existence of proprietary blobs here

I’d care if they had a Linux version

Well, there are forks of firefox like floorp, zen, waterfox, etc. but i guess they might still count as firefox, because they are forks and not built from the ground up, only using the gecko engine from firefox.

Calling them forks is, in most cases, wildly too generous. They are derivatives of Firefox. They develop and maintain a few features, but they ar completely dependent on upstream for general progress.

This would not cause the reaction in the picture lol.

Firefox has single-digit market share.

https://en.wikipedia.org/wiki/Usage_share_of_web_browsers

Single digit can be 0, 1 or 9,9%.
10% market share wouldnt be half bad. ¯\_(ツ)_/¯

(PS: I didnt read the link because I don't care enough. I use it, and am fine with it)

Yeah maybe not here but sometimes I feel like it

Where? On the Chrome/Brave subreddit? :p

No need to go to reddit, there's enough trolls here saying Firefox is trash and to use brave instead.

Y'know like, the guys saying accessibility features are trash no one wants to use because they use local AI models.

Talk to any normie that knows what a browser is, and you'll discover that many people think firefox is bad (and then some of them will also proceed to glaze brave because they never saw what uBlock origin can do...)

Using LLMs are not the same as using intellisense or compilers and there are a myriad number of reasons not to use it that could fill an entire book and I will look down on any company or freelance developer that uses it.

Yes I'll fight Linus over this and yes I'll be right.

Fight me (Not literally) LLMs used to give garbage output but nowadays they are actually good and if given in the hands of right person, it can increase the productivity.

You might say productivity increases but salary dosent but that is a mangement issue and does not make LLMs bad.

Isn't this the most common layman's opinion?

It's also the opinion of people who don't make a habit of drinking the special koolaid.

It's the most common internet opinion, but IRL people use it without a second thought, and will get annoyed if you call them out on it.

EDIT: I don't think this post was talking about laymen to begin with.

There's a reason.

Yup, and I don't care about that reason. It's still an irresponsible technology.

I dunno, I see a lot of people defending Linus even on Lemmy.

It as in LLMs or it as in intellisense?

Most likely LLMs. Most people only warn against intellisense for initially learning coding, or if they work in academia.

Why would anybody be against intellisense? Even for those use cases, it's helpful. (Excluding the code completion from LLMs included ofc)

Not sure tbh, but they exist 😅

Current AI tools are excellent productivity and quality enhancers, but only for people who are willing to adjust their workflows and guide it to give good quality output.

The damage is done by Capitalism running the AI industry and the over financialization of the market.

Don't be anti AI, be anti unregulated Capitalism.

I am anti commercial capitalistic LLMs which, coincidentally is ALL of them.
"B-But Axo the open weigh—!" They are NOT open, it's the equivalent of giving you the executable of M$ Edge or a Windows ISO and calling it open, fuck this shit

Work has forced us all to adopt it, so everyone did. It was either that or suddenly be the slowest person at work, which eventually gets you canned. People will evangelize all day long about how they refuse to use AI, how it’s dog shit, etc. Meanwhile I’ve managed to dial in my AI workflow so that it never deviates from our code standards, it never tries to invent its own components or styles, and I still manage to review it with experienced human eyes. It’s the reason I can start my work day at 10:30am, walk away from my desk at 4:30pm and still be well ahead of schedule. I’ve malicious-compliance’d the fuck out of my job, it has made my life easier, and I don’t give a fuck what some nerd still devoted to the “art of code” says. We live in a capitalist hellscape and I’m a survivalist.

With all of that said, I’d still wipe this capitalist shithole fever dream of a tool off the planet because I’m tired of data centers and AI companies fucking up the entire industry, the planet, and people’s lives. I’ve already witnessed firsthand what it did to my industry and I’m lucky to even still have a job (especially one that pays as well as it does—it helps to be in the industry just shy of 20 years).

I agree on their usefulness but as long as you don't use local and open LLMs you are unfortunately part of the ecosystem that does the damage. Luckily open models are catching on and hopefully some reliable companies take up on this business model.

I can't wait for the crash, so that we can get more sustainable AI and access to the hardware to run it.

Won't happen unfortunately. Unless you want to run a 1U with 6 GPU, requiring a custom water-cooling system, and which sips like 10kW/h of electricity while idle. It's all integrated hardware born to be trash. The ram, cpu and GPU won't be usable on consumer hardware without hard modifications.

1 of those GPUs can probably run 90% of what a small team would need, so you don't need the full thing.

That's about 600w of draw and 150w idle. Or about the same as a 5090. You don't need exotic power or cooling for that.

We also don't need frontier models. The type of models that run on $5000 Mac studios can do today what the frontier models did 1 year ago.

We just need the Mac studio class hardware to come back to $2000 where it used to be.

Also, do not underestimate the ability of Chinese BGA rework shops from being able to salvage AI chips and install them on board that will fit in standard hardware. They proved they could do it with the Crypto only chips, they will figure it out for the AI chips if the supply is there.

The main reason these units use water cooling is for deployment density.

Local models are only months behind. The primary utility of comically large networks is a wider search space for the tiny fraction of weights that really matter.

but only for people who are willing to adjust their workflows and guide it to give good quality output

... and competent enough to actually evaluate the output properly.

Instead they spend a lot of money to push the fairy tale how anyone can now code without having a clue.

Why not both? Both is good

Yeah on one hand the field of evolutionary algorithms is fascinating and I can see potential. But on the other hand it's being run into the ground by people forcing it into everything. It's also not human-readable so people might think they know what they're getting but really don't because of the black box nature of it.

The billionaire tech bros are making money hand over fist without the need for advertisers subsidizing them, and interrupting users all over the world. Little secret...the users know products exist and will go out and seek those products when it is necessary to do so. This activity leads to learning about more products through the ancient art of "browsing".

Getters and setters are ridiculous

I don't like working with them any more than you do, but they're necessary to enforce read/write-level security. Without them, there'd be no differentiation between reading a variable and writing variable from an external class, which kinda defeats the point.

From a development standpoint, they're an extra hurdle to clear. From a security standpoint, they're a necessary evil.

Moreso correctness, not security. In the end, your user is shooting themselves in their foot, if they mutate a variable that they shouldn't, and by making the variable private and only offering a getter, we document that.

Having said that, there's also big differences between languages and paradigms, though.
In object-oriented / garbage-collected languages, you often pass around references to an object into so many places that you need to code defensively versus your own codebase. That's why getters/setters were taught religiously during the height of OOP.

In other paradigms, you often just have one place that uses an object and then you can ...simply not shoot yourself in the foot there. When you control both the definition and the access, you don't need to protect yourself from yourself. In particular, you would probably think twice before mutating an object anyways.

Damn, I was gonna disagree but you bring up some good points.

I really need to get into functional programming.

Functional programming is definitely worth a look in this regard as well, but what really drove this home for me is Rust.

Its ownership+borrowing concept is exactly that, it enforces that you've got one place where an object is managed and in particular mutating can only be done in at most one place.
Obviously, there's also ways to get out of that, in case you do want some memory managed centrally, but it just isn't the default.

That's why people invented properties / auto generated getter/setter - in at least 95% of cases they are just busywork.

YES

Oh my god. I'm not the only one who thinks this!

Java and JavaScript are blights and should never be used.

Tabs are better than spaces

I think text editors should handle it and convert between the two when convenient.

LOL, like a bytecode? write once, read whicheverway

Want to know something horrendous? Odin, my current favorite language, recommends mixing tabs and spaces in their style guide.

What's worse, their justification actually makes sense.

I used to do this and it absolutely makes sense. However, I've shifted to tabs only and have removed the need for alignment with newlines.

That's how it's always supposed to be. Tabs for indent, spaces for alignment. Languages that do not support this are trash

Another unpopular opinion: this alignment style looks terrible and wastes space. If you want alignment just start the parameters in a new line.

Fuck... They are right. This makes a lot of sense.

Now I have to share this with everyone at work.

Does that rule have autoformatting support? If not it's a time waster anytime the parameters get refactored. I'm firmly in the camp of "machines do my formatting"

Tab chars are better than spaces AND the correct tab width is 2 spaces

Tab chars are better, no opinion on the width but if you use the chars, everyone can do what they want

I don't see why an IDE can't convert e.g. 4 width spaces to 50% visual width for those that prefer 2 spaces. That way the code doesn't need changing, and everyone still enjoys their own personal width preferences

I use 8-wide tabs. I also keep lines under 80 characters

No, I don't use Java. How did you know?

I was on board with the first guy, but this is going too far. We should compromise between the 2- and 4-spaces camp, and we settle on 3 spaces.

Lets make it incremental instead: 1 space for first ident, 2 space for second, 3 space for third... 🙃

@Humanius @danhab99
Formating is so 1990.
Modern would be to store Program code as database. Formating and UX of program code would be separated and an IDE would show Program code in the user preferred way.
But every Developer: "Hey modern way to store structured Data, you are wrong for my Work."

#structureddata #developer #conservatives #notonmywatch #codeformatting

Imagine a programming language not compiling because of spaces.

Isn't that Python's whole paradigm?

That's the joke.

Not quite a programming language, but Makefiles have to be indented with tabs...

Ooh... good one, but any good IDE and/or source control will convert tabs to spaces anyway.

Any good IDE and source control should convert spaces to tabs. QED

Sometimes we have to use them, but Java and C# sucks hard as languages.

That putting more and more cutting edge technology in our daily computing, that can only be manufactured by a few multi-trillion-dollar-fabs, is a good thing. Not in a politically unstable world like we currently have. And this will not get better the next 50 years, with climate change. Our computing is good enough, we should focus on making it more accessible.

React is absolute trash and people should stop using it

Svelte, baby, svelte

I dont think that's an unpopular opinion

No single letter variable names. Yes I also mean the i in for loops you see in tutorials. Write out "index" or give it a more descriptive name. Doing the typing isn't the hard part of programming, nor the most time consuming, so making it take a teeny tiny bit longer by having longer variable names is more than worth the value of variables the effortlessly describe themselves.

line length is not that big of a problem anymore, we're not on CRTs, people are regularly developing with 4k monitors, we don't need to limit to 40 character lines but even still if you can't possibly think of a way to break up that long of a line and the only thing you can think of to make it shorter is using over-acronymized variable names then you've already lost the plot somewhere

I'll only agree for advanced for loops and not the basic C style ones. Also if you are iterating over coords like XYZ or UV you can use those variables as single letters too.

I disagree when it comes to standardized single-letter variable names. They're invaluable when writing dense code for games or other math-heavy applications and you learn to recognize them very quickly.

So i for index in loops (and j, k for nested loops, but you're almost always doing something wrong if you need them); x, y, z for position and h, w for size; r, g, b, a for color data, etc - you'll immediately know what the variable is for at a glance even though it's a single character.

Another benefit is that having related variables be the same character width keeps code visually aligned, which helps with readability.

I can concede that in games programming (which I'm not a game dev so I often forget about) x, y, and z coordinates are a valid exception.

I would disagree about w and h for width and height, typing them out feels like i for index

I worry about the phrase, "you'll immediately know what the variable is for at a glance even though it's a single character"

how often have you heard developers say that something is simple and it's just because they wrote it? maybe it is obvious, but if it were more verbose it would be just as obvious but without any possibility of misunderstanding

and even if it's obvious now there's no guarantee a future developer doesn't pull that variable out and mutate it or do something else with it, and maybe they should change it at that point but the effort to have it verbosely named from the start is miniscule

I do really disagree here. Name lengths should be proportional to the size of their scope.

If your function has 1 line, your local variables should almost all have 1 letter.

agree to disagree

I agree. Short, nonsensical, meaningless, artificial variable names make me think the person writing the code is a dinosaur from when they still had punch cards. Get with the times.

I am still not convinced vim does much of anything for your productivity.

How dare you? I can absolutely assure you that it completely ruins mine.

I use VIM keybindings in intellij, and have done so for 10 years. There is no reason for me to be quicker or more productive than anyone without VIM. It's just a preference.

Shun the non-believer! Shun!

Charlieeeeeee!

Yeah! Emacs has always been the superior editor!

It does but not because it's vim or about any features really. It does for me personally only because I'm so used to it, most of the tasks like search, highlight, open diff, list compile errors, follow function calls etc work without mental load. Any editor will do that for you if you customize/memorize common hotkeys for your use case.

It really doesn't. The time you spend learning it and setting your config will never pay off and even after you do these things the time it saves you is negligible. I can use Zed and have 90% what Neovim offers me, it even has really good vim motions. Picking them up for productivity is a bad reason to do it.

I really liked a talk by TJ titled (Neo)Vim Made Me a Better Software Developer. The reason he uses it - is because it was basically a playground where he could play around with his code and get instant feedback as he's the "customer".

I can relate to this. Neovim is really extensible and minimal by default. This encourages 2 things:

  1. To live close to your code. You really get an understanding of all of the underlying tools related to your development environment and it gives you control to make it as minimal as you want it. There's wayy less abstractions on top to simplify stuff for you. When I was a beginner using Webstorm or whatever I had no clue what a LSP was. Git? Just use built in GUI why bother learning commands? Terminal? Why would I need that? Ripgrep? Treesitter?
  2. To play around, customize, build stuff. There's lots of API's and you can change a lot in the editor. I made Neovim my main markdown editor with a few tweaks in my config. It's minimal and I like it. Wayyy better than Obsidian.

And at the end of the day it's kinda fun. It makes writing code more more enjoyable as you always end up learning how to navigate your code base more efficiently. Like a game almost :)

It's pretty useful for text editing, but for any more serious code work I prefer to use an actual IDE.

As far as software development, Vim seems to me like an excellent solution for an irrelevant problem (typing speed).

Also, it's great that it's lightweight, but I bought the entire RAM and I'm going to use the entire RAM :P

Do other editors let you save multiple sessions? Where you can open up any large project exactly where you left off, every tab, split, window, layout, and file already in your buffer for all of your projects or just the last one you were working on?

If not, this feature has saved me a lot of set up time. It's been a long time since I used anything else.

I feel like vscode and pycharm both do that out of the box?

Before my big monitor broke I had pycharm split into four panes for the backend project and 3 for the frontend. It was nice.

Sublime Text does. Even unsaved buffers.

Zed does it i think, JetBrain's IDEs do it too, Sublime text too and maybe Emacs?

People (such as myself) make the argument that it does a better job because it's focused more on reading code than writing it since you don't start in the "write" mode like in most editors.

I would say the choice of text editor shouldn't make a difference in productivity so long as it doesn't actively get in your way too often (looking at you, poorly implemented autopairs) and it supports the relevant LSP and debugging protocols.

PHP is not only for the web/short lived scripts

A good programmer doesn't need the internet.

AI bad

Printers and fax machines are completely outmoded and should be removed from every environment.

You can pry my printer from my cold dead hands! It's a craft tool and belongs in every shop.

I definitely agree with fax machines, do you not feel that physical copies of things have value?

I disagree even with fax machines being removed. It's a redundancy that doesn't use the internet, but telephone lines, and as such has value.

Is there still an independent phone infrastructure though? In Germany at least, it's all VoIP as far as I know, so Fax machines add very little redundance...

The US, at least, still has its old fashioned POTS lines. Also, government and medical fields still heavily rely on fax for "secure" communication.

Germany and Japan would like to have a word with you.

Having lived in both, I'd like to talk to the Managers please

JavaScript is a chaos gremlin but it's MY chaos gremlin and I wouldn't change it for the world

It is not viable to expect 80s/90s level code optimisation in 10's/20's software.

Yes you could in theory, but with deadlines and security requirements you realistically cannot!

is the comic gen ai?

Most likely. Some people in the bottom right have their face on the back of their head. (Also before I noticed that I checked in TinEye, and the earliest occurrence it found was Jan 2025.) And the whole pic has that AI way of smudging together shapes.

Vue > React

What you say?!

useState worse than useEffect? I'm not much of a React expert, but I understand useState. useEffect mostly seems to be an excuse for the most horrific spaghetti code since before the abolition of goto.

Linters are terrible.

Style/formatting linters, anyway, particularly when it comes to whitespace. The goal of formatting code with whitespace is to optimize for human readability. A linter based on a set of rules is not human and thus cannot judge human readability. There is really no formatting rule you can write that will not someday have exceptions on a large-enough codebase.

Contributors should be responsible for submitting readable code, and ensuring that is what reviews are for.

...which is why I love #[rustfmt::skip] so much! You can do stuff like

#[rustfmt::skip]
const DIRECTIONS: [[i8; 2]; 4] = [
             [0, 1],
    [-1, 0],          [1, 0],
             [0, -1],
]

while still enjoying the convenience of auto formatting elsewhere.

Although linters which act on the behavior of code are unequivocally a good thing, e.g. "hey, this comparison will always return false you probably made a mistake here".

Any formatter annotation just clutters the code though. Except maybe if it is file-wide.

I prefer that my editor formats it in a sensible way as I code. If there's something I wanna do with a different formatting, I just do so. But the rest is formatted as I write it, instead of afterwards.

I'll go a step further: formatting for human-readability is the job of the reader, not the writer. Hardcoded line breaks, spacing, etc. are never going to be a good solution because the idea is wrong from the start. This is a display issue, not a logic issue. It needs to be solved at the display end.

Use a syntax-aware editor that formats code the way you like it. Save it any goddamn way that is syntactically valid. Anyone else who opens it will see it any way the like in their own syntax-aware editor.

"But my editor doesn't do logical formatting!" Yes, because the entire world has been insane for several decades, and shitty editors are normalized. If the world had realized this 30 years ago, there wouldn't be a code editor in existence today that didn't do this properly. Demand better and better will be normalized.

Use a syntax-aware editor that formats code the way you like it. Save it any goddamn way that is syntactically valid. Anyone else who opens it will see it any way the like in their own syntax-aware editor.

So every MR restyles the code to fit your style? How are you going to review the code?

Every problem in computer science can be solved by adding another layer of indirection.

Whatever is displaying the MR formats it. The server saves a normalized copy.

Like crlf/lf. But for all formatting.

Like crlf/lf. But for all formatting.

Sure. Toooootally the same thing. Now the server will have to save a copy of your formatting preferences, checkout the project at point t-1, checkout the project at t, format it, create a diff, and present that to you. Now when you leave a comment on line x, it might be line y for another person.

Or make it worse, someone introduces malicious code with UTF-8, or switches around parameters, or adds pragma comments that fundamentally change your code, but your formatter happily fixes that for you in the preview so you are oblivious.

Or you're hosting this server and someone makes a change that completely reformats the entire codebase, but you see absolutely nothing of it because the preview diff only shows "relevant" changes.

All fine by you👌

Right. You can still put that through a linter; the linter just wouldn't be concerned with human-readability.

In any case, my editor would not hardcode my display preferences, so if I open and save a document, nothing changes except what I actually changed.

Disagree. Linters catch common logic errors, formatters remove nearly all discussions about formatting style. I remember MRs being held up for days at work because of formatting discussions, being resolved by a "style guide" that couldn't be memorised, and being followed by new discussions about formatting that held MRs.

The that epitomises this is the nixpkgs repo. There are thousands of PRs stuck in nitpick hell because some particular reviewer wants commas here and another wants them there.

Also, if they can detect mistakes, they should be able to FIX them instead of adding extra busywork on my table.

OP making this post

"Now where the hell did I put my two gallon jug of gasoline and the bag of magnesium powder?"

Now I want to know the metaphorical post equivalent of chlorine trifluoride. Maybe the Israel/Palestine situation?

Or FOOF. Well, I can't come up with a better candidate.

Care to elaborate on this? Not saying you're wrong necessarily, that's just a pretty bold claim and I'm curious why.

React works by maintaining a virtual representation of the DOM. When you dispatch state changes into the virtual DOM react can determine which components depend on the change and which side useEffects run.

My gripe is that YouTube tutorials teach that the useState is the equivalent of a variable. This encourages average developers to problem solve solutions that end up using React's Virtual DOM for business logic. The YouTube tutorials have react devs planting 100s of useStates - some of which don't directly induce a visible-on-screen rerender - and then ⅒ as many useEffects to bind these states together. This means that for the Virtual DOM to come to the conclusion as to what html elements need to be changed and how it has already mutated 20-50-100s of times and the CTO tells me the react app is slow and they're mad.

If 2 states have the opportunity to mutate each other back and forth then the truth is that you have 2 perspectives of the same state. And React gives you solutions for that - proper solutions - the useReducer hook is for defining these complex state mutations and the Context API for communicating that state to any component.

And this has me quintuple pissed off because these same tutorial grade react devs install REDUX as compulsively as a pack-a-day smoker (that's #3). They use Redux to file variables in JavaScript memory (that's #4) like it's a global variable and rarely if ever use it for the complex state mutations they need instead I've seen react devs write components pull state out of redux into a component just so it can mount useEffect and process the state and dispatch the result back into redux. Let's not even bring up how the react-redux binding library literally uses the React Context API (that's #5).

As someone who's worked with react for years, I'm convinced that react itself is the problem and there's no way to educate new people on the proper way to use it without essentially teaching them everything the abstraction is intended to do for them. Why should newbs have to care about mutations and state dependencies when the api is apparently designed to help them forget about those things?

Exactly this. Instead of learning about the complexity and footguns of working directly on the DOM, people get to learn about the complexity and footguns of manipulating the virtual DOM.

React isn't bad, but it was designed in a very opinionated way to build certain kinds of apps. Excessive abuse of React hooks shows a common desire path to build things that don't require that framework. Most people basically just want signal based reactivity but don't know that it exists.

The React devs fucked up by not wrapping state in trackable containers, and we're all paying the price with laggy apps.

As a tutorial grade react developer (please return me to the backend where I am mediocre instead of bad), having more senior developers take the time to explain why my code was bad was really helpful.

Also I think I just kind of hate JavaScript. It always feels like everything is more complicated and booby trapped than it should be.

Since it's apparent you can spot what tutorials do it wrong, would you be able to provide links or references to online tutorials that get it right?

One of the most valuable things you can do if you know a technology well enough to have these gripes is not just to condemn people fucking it up but shine a light on people that are trying to do it well.

I’m suddenly reminded as to why I went Vue years ago and never looked back lol.

Java is overall a good language for getting things done, although not enjoyable to work with (thank god we have Clojure)

the language itself is good. The main issue is that the ecosystem and the designpatterns are so broken (i am looking at you, Robert "clean code" Martin).

My advice for anyone working with java: look at any other ecosystem how to work with designpatterns, and then come back to java and ignore everything the java community tells you about "good practices".

It's funny how both anti-AI and pro-AI folks think they're the one in the middle. But the anti-AI crowd is proclaiming that any use is the devil!, and one drop means the whole project is forever worthless, and ten minutes will make your brain dribble out your ears... while the pro-AI crowd just says it's probably fine. Not miraculous. Flawed and suspect. Local would be better. Basically would you please just relax about the chatbot, and condemn companies doing mass layoffs for any reason?

When even Cory Doctorow is going 'LLMs have problems, but here's how I use them,' pack it in. This fight is over.

Nominal typing was a premature optimization. Product types should be structural and row polymorphic. And if they had been, dynamically typed languages nevdr would've needed to exist and wouldn't have waited so long to smuggle types back onto their data structures. That said, i'm kinda glad shell scripting languages exist.

Typescript is not the devil

That's not controversial in the slightest. Everyone agrees with these except maybe a few neckbeards living in the woods.

Wayland is not good.

Programming languages peaked with Lisp.

I don’t think anything needs cloudflare in front of it. It’s a worthless service.

We're going back to server-side rendering.

"Wayland is an ideological manifesto disguised as a modernization and it can go right to hell."

We are waiting for you take over the X11 project.

I can keep waiting. Nobody has to take over a feature-complete mature project until something needs to change.

Meanwhile I'll be waiting 40 more years before anybody fixes any of the broken functionality X11 already has that I need and Wayland devs REFUSE to implement. They're free to not implement whatever they want, but when they tell me this butterknife is a replacement for my swiss army knife and we can stop making swiss army knives, they can go f**k themselves. It is not a drop-in replacement, and until it is, it's a new product that doesn't do what I need. The end. Period. End of argument.

X11 is feature complete? 🤣🤣🤣 wew lad.

Yep, let's stop this here. My sides, I swear.

Let me put it this way...

I care exactly as much about the feature set you need as you care about the ones I need.

But yes, let's stop here before we start talking about PRODUCTIVITY features rather than "My triple monitor setup doesn't maximize all of my 4k resolution support and it throws off the vibes of my RGB fans" features.

I'm not the person you replied to, I'm looking forward to www.arcan-fe.com reaching 1.0, and it's capable of replacing X11.

It's not exactly the same thing as X11 or Wayland, but Bjorn Stahl has clearly put a lot of thought into it's design and Arcan is something I actually want, which is more than I can say of Wayland. Wayland destroyed WMs and is worse in several ways, and the technical discussions around Wayland basically don't exist. Usually it's just "X11 bad therefore Wayland good", or "if you don't like Wayland than go fork X", or "Wayland is the most used therefore is best" (which is a really stupid argument from people who aren't using Microsoft Windows).

The default clang-format configuration is absolutely horrendous, but for our company we had an in house clang-format configuration that actually made the code look quite good. The problem is you still have to control code spacing/some alignments yourself.

useState hook is an actual plague on the entire React ecosystem

Personally, I find useEffect to be the real evil.

Personally, I find React to be the real evil.

I feel like useState and useEffect are 2 sides of the same coin

might you even say "two perspectives of the same object"?

tbf useEffect is what fried even cloudflare a while back, oh and also me many times. Insanely easy to write once. Just as easy to forget a dependency or modify the function into creating an infinite loop. Or hell using useEffect(() => {}) i.e. an anonymous function instead of naming it so I have to read 30 LoC to figure out what it does only to realize it's not even the effect I needed -.-

clang format only serves to make code unreadable.

Looks like this person hasn't seen how badly some people will format their additions to a codebase.

But yeah, it does serve as a good way to get rid of multiple break-times every time an update is required.

Perl is a fuckin' awesome programming language, and it's too bad other languages didn't learn from it.

I will forever miss you $_

Other languages took perl's regex engine

Perl is write-only code. Larry Wall raised a monkey's paw and asked for a language that works the way programmers want. So most scripts are the first thing someone tried - unfiltered by rigid syntax putting your thoughts in order, or compiler warnings bringing side effects to mind, or even names forcing you to decide what a variable is. An uncommented Perl script is raw brain patterns decoded as ASCII.

Thank god it runs like shit. Fast C isn't exactly gorgeous, but any project that compiles is proof the coder fought the machine and won.

I agree as a PERL programmer ; definitely a bad opinion

I hate this trope that languages should “learn” from each other. Because this typically means “should copy features / syntax”.

If I want to use Perl, I use Perl. I don’t need Perl in Rust, then I wouldn’t need Rust anymore.

If it doesn't have to change based on user input, it doesn't belong in the database.

Pagination of data out of a database is why you do it. Or rather, why I've done it in the past. Expanding on this, for the reporting of data so you can join that static data with non static data.

Can you explain more on this one? Is this position against lookup or read-only db tables?

Is this position against lookup or read-only db tables?

Largely, yes.

The kind of cases where I've seen people stick things in the database that I thought would better be elsewhere:

  • If it's small and doesn't need to change between releases, you can save all the moving-part kind of overhead of pulling that data from the database just by throwing that data in the source code. Often times people do this just so they can have a "foreign key" to something in the data in question. But a nice, semantic "enum" sort of field in the database can refer to something static that's already in memory no problem.
  • If it needs to change at an administrator's or developer's (or manager's) whim, it's probably configuration, not dynamic data. In the Java ecosystem, Spring Cloud Config makes it easy to change configuration without releasing the code. (I mean, in a perfect world, releasing should be as easy and straightforward as changing configuration, but not everyone lives in a company where all the managers have read The Phoenix Project and caught the DevOps bug.) Putting configuration in the database tends to create a big audit trail gap, unless you spend a bunch of effort building a custom audit trail kind of system.
  • If it's big and not (very?) relational, it may be better suited for files in a directory. This can be true even if it does change based on user input. (Users uploading images, for instance.)

Mind you, certain kinds of behind-the-scenes users can still qualify as "users" for purposes of considering whether "it needs to change based on user input". For instance, if your marketing department (without software engineering expertise) needs to be able to mess around (without software engineering assistance) with marketing materials displayed on customer-facing websites, you probably need a content-management system of some sort, and I don't think the database is necessarily a bad place to store a lot of that information. (Things like images probably shouldn't go in the database, but metadata about those images are probably quite reasonable data for the database.)

Also, I'm rethinking the term "user input". I could certainly see it being reasonable for automated systems to put data in the database. Like, if you have a scraper doing stuff to be displayed to end users, that doesn't belong in the source code or configuration, and if it's very relatioal, it could well belong in the database. Maybe it'd be better to say "if it doesn't change based on client input, it doesn't belong in the database."

User is saying something in a DB that doesn't change should not reside in a Database because it's functionally static.

But user doesn't realise why that static data is kept in DB.

Yeah if DBs were only for dynamic data, we would still use files, instead they solve many other problems and that's why we use them

Only hill I am going to die on has nothing to do with programming. "Everyone in modern society needs therapy, the kind that heals, not the one that lays you on a couch and you get to vent and than you pay."

Mine is basic since I'm still a noob programmer, but if you are on an OS with APT or something similar, you should absolutely automate all your commands for updating your software packages by consolidating everything into a single script.

It's easy to create a bash script that runs all your needed commands sequentially, so why not? Hell, I take it a step further with my script by aliasing it to 2 letters since I don't wanna type the full script name or type tab to autocomplete it.

I just use Linux mint which does all this for me out of the box

Sure, but theirs grows with them. Add backups, bare git check in, etc., etc..

CachyOS and MX Linux both do this out of the box too

Just moved to Cachy. Searched for a way to do unmanned updates once a week. It's not something that CachyOS just supports apparently?

from this thread, its definitely available but due to concerns about Arch's rolling updates potentially bricking something, they don't make it visible in the GUI front and center.

...... whoops I misread. here's something that actually applies updates, probably: https://github.com/LoonixTools/cachy-auto-update

My distro doesn't have any OOTB tools AFAIK that does this, which is why I "need" my script and alias. That is one advantage of mint, though. Closest I have is KDE discover, but IDK how it fully works for/with updates.

It's pretty much just a GUI for apt+flathub, way cooler that you wrote your own script though :)

I also like to use an alias to update like the previous comment described. I did it on Mint, and I still do it now on Debian even though it has a graphical update manager too.

I like it better this way, probably for readability when there are multiple updates, and definitely for the verbose progress indications. I do already use the terminal all the time too.

My alias does something like apt update, apt upgrade, flatpak update, and then a commented-out firmware manager update.

Meh. Instead I set up patchmon and manage it from a pretty GUI on my browser

Agriculture was a mistake. But not right now, I have lot of hunting and gathering to do

No idea how much of a hot take it is but i find virtual to be a plague upon a codebase.

There are a few very rare use cases for it, but imo most cases where developers use virtual they can use templates instead to achieve the same result.

I once witnessed a literal shouting match in the office over virtual.

Your comment makes zero sense in C++.

Why does it make zero sense in C++?

edit: simplified example of what i mean

struct A {
    virtual void DoSomething() = 0;
};

struct B : A {
    void DoSomething() override { 
        std::println("B"); 
    }
};

struct C : A {
    void DoSomething() override { 
        std::println("C"); 
    }
};

void InvokeDoSomething(A* a) {
    a->DoSomething();
}

vs

struct B {
    void DoSomething() { 
        std::println("B"); 
    }
};

struct C {
    void DoSomething() { 
        std::println("C"); 
    }
};

template <typename T>
void InvokeDoSomething(T* t) {
    t->DoSomething();
}

B and C can't share any other attributes without duplication of code. There's also no strict enforcement of inheritance.

It was a simplified example.

B and C can’t share any other attributes without duplication of code

struct A {
    [[nodiscard]] virtual std::uint32_t DoSomething() = 0;
};

struct B : A {
    std::uint32_t DoSomething() override { 
        return 0;
    }
};

int main() {
    B b;
    b.DoSomething(); //no warning
}

even if you use virtual attributes aren't inherited.

If you ment members instead of attributes this is unrelated to virtual:

struct A {
    std::uint32_t a;
};


struct B : A {
    void DoSomething() { 
        std::println("B"); 
    }
};

struct C : A {
    void DoSomething() { 
        std::println("C"); 
    }
};

Now the member is shared and it works fine and there is no virtual.

There’s also no strict enforcement of inheritance.

True, but neither is there when just using virtual:

struct A {
    virtual void DoSomething() = 0;
};

struct B : A {

};

This compiles fine if final is not added.

Not that its an issue as reflection has solved this problem:

consteval std::string_view HasMethods(std::meta::info impl, std::meta::info iface) {
    constexpr auto ctx = std::meta::access_context::unchecked();
    for (auto fn : members_of(iface, ctx)) {
        if (!is_function(fn) || is_special_member_function(fn)) continue;
        bool found = false;
        for (auto cand : members_of(impl, ctx))
            if (is_function(cand) && has_identifier(cand) && identifier_of(cand) == identifier_of(fn) && type_of(cand) == type_of(fn))
                found = true;
        if (!found)
            return std::define_static_string(std::string(identifier_of(impl)) + " is missing " + display_string_of(fn));
    }
    return {};
}


struct A {
    void DoSomething();
};

struct B  {

};
static_assert(HasMethods(^^B, ^^A).empty(), HasMethods(^^B, ^^A));

// g++ -std=c++26 -freflection main.cpp
// main.cpp:30:41: error: static assertion failed: B is missing void A::DoSomething()
// 30 | static_assert(HasMethods(^^B, ^^A).empty(), HasMethods(^^B, ^^A));

Now you get the strict enforcement of inheritance and no virtual.

LOL. That mess is somehow better?

One utility function somewhere vs runtime polymorphism everywhere?

Yes.

You just reinvented polymorphism with extra jank.

>

Modern Money Theory.

People in FOSS community (including users) nitpick way too much about eachother's ethics and are mostly dictators so they expect everybody's views to align with themselves and each sub-community/individual see themselves as the source of moral balance.

"oh no one of project XYZ maintainers doesn't like trans people we should boycott the project and fork it into LibreLGBTQXYZ"

be professional ffs. See the project as the software and it's technicality, art, science and engineering. we can't be too picky about individual people's beliefs and ethics especially in current situations.

"I will happily promote the project of a person who openly says people like me should be shot. What's the problem?"

I probably disagree with 90% of Linus torvald's beliefs and ideologies. Do I promote him as a person? No. Do I promote Linux as a great project and operating system? Hell yes. Same goes with Stallman or probably 90% of other people. Because that'show we are. Most of us share nothing in common and oppose eachother's beliefs but we can still work together as professionals.

Linus doesn't want you and your kind fave down in a gutter. Stop pretending this is about a mere disagreement in harmless beliefs.

be professional ffs

You lost me here. It's not "unprofessional" to want people to not be transphobic.

You can ask the person, not the software project. The project is just a project. We can tear eachotger to pieces as individuals and then sit at a table trying to solve problems as professionals.

If someone wanted to take your rights away, maybe even didn't believe you should be allowed to be alive, would you be unprofessional for not wanting to use software they make? Would you be unprofessional for making your own version of that if the project refused to remove them as the lead? No. You wouldn't. A way to solve that problem as a professional is to fork the project. What's not professional is calling people doing that unprofessional.

Transphobia is now what antisemitism was during the Holocaust.

This framing of trans rights being pulverized as an edge-case moral purity signaling is low-key genocide enabler discourse.

It is only a matter to be careful to set boundaries to the centrism so that it doesn't bleed over to the nazi side.

That being said, weaponized purity in online politics, and online software politics specifically might be a problem, sometimes. Minimal gain and huge inconvenience to the resistance, but I won't go into it right now.

Is it really a genocide? Like I'm trans and being pushed towards losing my life, and that's bad, but it feels weird calling that a genocide when you compare it to the actual Holocaust or Palestine or the Sudanese civil war. For it to qualify I think I'd have to be arrested and executed for being trans, not just driven to suicide because I don't have any friends and no employers will hire me.

Transphobia is unprofessional.

So is any other kind of bigotry.

An individual's personal beliefs has nothing with their profession. Unless they leak it into their profession. Now the profession has that ideology and we can address that. The person, and especially as long as it's just words and tweets etc, is separate from the work.

Anyway, this is my unpopular opinion.

Bigotry isn’t a “personal opinion”.

It’s a pattern of behavior- discrimination based on irrelevant and usually fucked up things, like race, religion and yes, gender identity.

It is inherently unprofessional to make business decisions based on non-professional qualities a person may have.

I think we're saying the same thing.

I also believe one should not make professional decisions based on these things. But if the person just keeps these messed up things to themselve in their free time and doesn't mix it with the project/profession I can mostly tolerate that.

If we would tolerate intolerant people, we would expose segregate people to even more segregation. However, ban their communities and using their code is not the same thing. If pirating video game make by shitty person is okay, why not looting FOSS production ?

Free software is more than just using code, it's involves contributing issues, pull requests, staying around. Being around hateful people isn't fun, best to actively support a competing community.

yep, I do agree. But their is some example of it's just using code or exe and people refuse to do so because dev are shit

So we become intolerant to intolerance? This is the perfect never ending loop!

No it's not. Becoming tolerant to intolerance is intolerance and cowardly. It's called Paradox of tolerance

For professional stuff I expect to get paid. What's professional about spending my free time in the company of abusers that I'm not even getting any money for?

SharePoint, Teams, OneDrive, Entra ID and M/O365 aren't "stupid". Your problems and complaints are the result of user error (although, to your credit, Microsoft in no way makes their intended use obvious or intuitive).

Don't take that as an endorsement of them or Microsoft. On a consumer level, you should actively avoid them all. I'm referring to people who have to use them at work and complain about intended behavior being "stupid" or "pointless". If you learn enough about how it works, you realize it either makes sense or is simply a limit of "the cloud".

Idk man I've never heard someone talking shit about slack. I think teams might actually be bad software.

Teams is a huge piece of shit.

Why is every meeting its own chat? With no threads! Why are the team channels like fucking forums instead of chats? Why do I get notified between 0 and 4 times for the same message?

I hate teams. I have never had a memorable problem with slack. Maybe some things can be fixed with better use behavior, but good software guides users away from bad patterns.

Here you go: Slack is stupidly expensive for what it is.

There, I did it.

Yep. IRC at work would be just fine.

They are stupid, their competitors offer far better services

although, to your credit, Microsoft in no way makes their intended use obvious or intuitive

Which is stupid.

Trillion dollar corporation, btw

midwest.social

Rules

  1. No porn.
  2. No bigotry, hate speech.
  3. No ads / spamming.
  4. No conspiracies / QAnon / antivaxx sentiment
  5. No zionists
  6. No fascists

Chat Room

Matrix chat room: https://matrix.to/#/#midwestsociallemmy:matrix.org

Communities

Communities from our friends:

Donations

LiberaPay link: https://liberapay.com/seahorse