The state of modern development vent

Hello everyone,

As a thirty-something developer who works primarily with small businesses, I often feel like I don't fit in with the "FAANG/enterprise-type" developers that dominate online discourse. Lately, I've been feeling increasingly frustrated with the state of modern (web) development, and I'm wondering if anyone else can relate?

While I consider myself a full-stack developer who can handle servers, databases, backend code, and frontends, I've become disillusioned with the constant churn of new technologies and the complexity they introduce. I'm no luddite. I know why they exist and how they work and am myself a passable Angular and React dev - of which I am not proud, but what can you do? A man needs to eat.

I'm personally wired to think that complexity in technology can be beautiful and fascinating, but I am concerned about the trend towards prioritizing business value over understanding how technology works - even among developers. I get that business people don't care and they shouldn't. But developers? It seems that knowing how technology works beneath the surface is not necessary, and that focusing on generating business value is more important. I find the pushback on wanting to know how stuff works "below" me increasingly tangible. Like it is forbidden knowledge and that "nobody can make a pencil alone". So I guess I shouldn't even try to educate myself. And when I show them the "pencil" I did make they will say it doesn't "scale". Since when do pencils have to scale? I'm confused and getting old.

I'd be fine if this was for our entertainment and we as developers are just getting rich, and nobody is impacted by it, but that is a lie. The world is severely impacted by ass-backwards technology choices. This normalization of lack of competency leads to a lack of focus on the actual needs of users, which is ironic, because that is usually why we left the sacred grounds of technology in the first place ("business value!"). SPA vs MPA is a good example of this. I've recently made good money converting SPAs to better performing and easier to understand MPAs - which is basically 90s tech with some make-up. End-users notice nothing other than improved response-times and faster delivery on feature requests. I feel it's only a matter of time before ThoughtWorks starts touting the benefits of server-side rendering and #lowjs.

First, get off my lawn and second, any tips? Perhaps some older and/or more experienced dev that can tell me "this too shall pass"?

Thanks.
 
Another example is modern C++. It is so large and complex that keeping up-to-date with just the language takes away too much from other things you also need to learn. Every 3 years you get an avalanche of new mechanisms with puzzle-like syntax, most of which "only" fixes problems with the then-previous state of C++.
 
I am concerned about the trend towards prioritizing business value over understanding how technology works - even among developers.
Preach!
After ten years as a dev, I couldn't deal with those business/it consultants anymore.

That's why I got a job in a university.
Everything is Linux. No pressure. And cool people from all around the world.

Edit:
drhowarddrfine: that's why it's in the off-topic section...
 
> First post since joining in June 2022. Not FreeBSD related.

Fair enough. To be honest, I was in two minds about this. Something I did not address explicitly is that I believe the FreeBSD community is more open to this kind of message and might have an appropriate response. I kind of gave up on other groups to be honest.

I am aware of the ranting nature of my post so maybe I'm crossing boundaries here. You can tell me, no problem.
 
I wonder if you found some mainframe-programming magazines (if such a thing existed!) from the late-1970s/early 1980s if there would be letters complaining about new-fangled mini-computers and PCs "what would they be good for?".

I get your point; I try and understand what's happening beneath the frameworks but no-one is interested in knowing that you are doing that or find value in doing so. Just get the web pages finished and with lashings of eye candy pronto!

It's valuable to know how the internet and computers work - gives you a real headstart in debugging - rather than reaching for StackOverflow and trying "random things" from the internet (but some times those random things do the trick!)

I think it's human nature to yearn for the simpler things we used to have (or we perceive it that way, anyway).
 
stn1986 We just had a thread yesterday, linked to by CuatroTorres, where it was discussed about someone posts some off topic commentary as their first post and never heard from them again. One of the mods mentioned this is a common issue here that is spammer related. Another suggested following the poster to see where they go. I've seen this quite often over the many years
 
Every 3 years you get an avalanche of new mechanisms with puzzle-like syntax, most of which "only" fixes problems with the then-previous state of C++.
And introduces new problems to be addressed in a future C++ standard by adding even more complex and bizarre syntax...
 
> First post since joining in June 2022. Not FreeBSD related.

Fair enough. To be honest, I was in two minds about this. Something I did not address explicitly is that I believe the FreeBSD community is more open to this kind of message and might have an appropriate response. I kind of gave up on other groups to be honest.
Is it so bad already?
I am aware of the ranting nature of my post so maybe I'm crossing boundaries here. You can tell me, no problem.
I don't know, I only know that this is an important matter. It is not limited to IT developers, it happens in society as a whole. You appear to describe a laqueus clausus (closed loop), where understanding would be sacrificed for a fetish called "business value", while in fact a lack of understanding would sacrifice the actual business value anyway.
These laquei clausi appear to happen at many places. The role of science has changed, from an endeavour to broaden the scope of understanding to a mere fetish supplied by so-called specialists. People are now understood as consumers of science, which is supplied by authorities.

This same scheme was most prominently developed by the roman church, who decided that people shall not be allowed to talk to God directly, but instead consult a priest who then talks to God on -presumably- their behalf. This ideology has been done away with meanwhile, but we have not actually become godless (we inherently cannot), but science has replaced it in the role of a religion.

One problem is with innovation. Traditionally innovation did happen because understanding was broadened. So there was a reason for innovation. Now innovation has become a fetish: infinite innovation is necessary for the single reason to cope with infinite innovation. And this is justified with "Sachzwänge" (practical constraints, but the German word carries the important notion of coercion), of which almost all are just ideas, not real things. In most cases there is a more appropriate word for these, it is: lies.

But this might go even further. It is known that civilisations do not exist forever. At some point they will fall apart, respectively rot from the inside. (The ethnologist may look at the concept of Kali Yuga, the more entertainment-focused may read Foundation [Asimov].) It is possible that this is what is happening.
 
It is not limited to IT developers, it happens in society as a whole. You appear to describe a laqueus clausus (closed loop), where understanding would be sacrificed for a fetish called "business value", while in fact a lack of understanding would sacrifice the actual business value anyway.
These laquei clausi appear to happen at many places. The role of science has changed, from an endeavour to broaden the scope of understanding to a mere fetish supplied by so-called specialists. People are now understood as consumers of science, which is supplied by authorities.

IMHO, you nailed it.
Sadly, I think it's impossible to fight against the stream, not sure if it's the natural evolution of all civilisations, but it is ubiquitous.

From time to time I discuss this subject with my colleagues (mostly electrical and civil engineers) and we came to the same conclusion; as technology has made our work easier, the quality of work has dropped dramatically.
 
From time to time I discuss this subject with my colleagues (mostly electrical and civil engineers) and we came to the same conclusion; as technology has made our work easier, the quality of work has dropped dramatically.
You make things so easy that any idiot can use them, you end up with idiots using it. *surprised picatchu face*
Want proof? Look at the traffic at rush hour.
 
stn1986 We just had a thread yesterday, linked to by CuatroTorres, where it was discussed about someone posts some off topic commentary as their first post and never heard from them again. One of the mods mentioned this is a common issue here that is spammer related. Another suggested following the poster to see where they go. I've seen this quite often over the many years
Those are usually responses in existing, usually quite old, threads. And they generally post within a minute after signing up. Very rarely would such a spammer create a new thread as that would attract way too much attention.
 
Stroustrup said something like defending formal or university education above all else. I couldn't find the quote. His website is a great place for real programming inspiration.*
That being said, many web developers and business managers may not have the necessary training to make good decisions.

You owe us an update... soon?

* "Don't be clever". Yes. In the CppCon 2017 opening keynote: The Learning and Teaching Modern C++. The accompagnying slide says "Don't be (too) clever" but I can't promounce parentheses :-). My point was to discourage overly clever code because "clever code" is hard to write, easy to get wrong, harder to maintain, and often no faster than simpler alternatives because it can be hard to optimize.
 
stn1986 I'll start with the statement: There's a place for SPAs. Really, there is. If you have an application that should run in a browser (as the "application platform"), and that application has absolutely nothing in common with a "web application" (you know, anything that can be mapped to resources, documents, REST, ...), then you have a usecase for an SPA. Examples could be sth like "Google Maps", or "Microsoft Teams".

That said, I've found MOST uses of SPAs make no sense at all. Indeed, it seems to be caused by "developers" who just know React/Angular/Vue/whatever and have lots of idiot-proof "tools" at hand to quickly setup a project for that, they don't care about quality, semantics, performance, maintainability, ....

I'm working as a software architect, we're fighting a constant battle regarding this topic, and we had some success.

You might be interested in ROCA, IMHO it gives really great guidelines for how to design a web application that is indeed just that: a web application.
 
I have to say I'm caught off-guard by this spam issue. I rarely interact online so I can be naïve about these things. Shortly after I signed up "life" happened, which distracted me for a good while. To make matters worse, I actually am a tad weird which may explain why I didn't introduce myself in a more conventional manner. It just wasn't on my radar. Sorry for setting off your firewalls, guys.

It's interesting PMc picked up on a more general societal pattern. I started out in that direction originally, but I struggled to make my point clear that way.

I wonder if you found some mainframe-programming magazines (if such a thing existed!) from the late-1970s/early 1980s if there would be letters complaining about new-fangled mini-computers and PCs "what would they be good for?".
Very likely! I do like to clear up that I'm not concerned about abstraction and innovation in general. Innovation and abstraction makes my work possible. While I can and have build computers from nand-gates up - and so can you [1] - I do not particularly enjoy hamstringing myself in my day-to-day activities if I can help it.

I'll start with the statement: There's a place for SPAs. Really, there is.
I agree and to be honest, I kind of like them. I enjoy juggling abstraction layers and I'm certainly not immune to the "I have hammer and everything is nail"-problem either. Trade-offs are indeed the name of our game and they are not always easy to make. Thanks for the ROCA reference. Helpful for communicating the general pattern.

Stroustrup said something like defending formal or university education above all else. I couldn't find the quote. His website is a great place for real programming inspiration.*
That being said, many web developers and business managers may not have the necessary training to make good decisions.

You owe us an update... soon?
Education. Very interesting point. Let me digress a bit and then come back it.

It may sound like I'm saying that one should know everything. Like we should hoard knowledge as best we can. I actually don't think that. There is a very real upper limit to what any one of us can be expected to know. Some of us surely carry more than others, but I don't think that difference is all that significant in the grand scheme of things.

I've often have people point out to me that I do not (fully) understand combustion engines, but I still drive a car. Which is, in fact, very true. It's not that one must know everything. This is literally impossible. My point is that this knowledge gap - while inevitable - still has a price. It's a type of debt.

Case in point: my lack of knowledge and appreciation of the various realities surrounding combustion engines played a major role in me underestimating the impact this has on our climate and geopolitics. Both of literal life and death importance. My ignorance is not something to be proud of. It is not something that should be stimulated or celebrated. It's a regrettable fact of life and needs to be accounted for and corrected by various mechanisms.

Which mechanisms? I don't know. Education - there it is - seems like a natural factor in this battle against the celebration and glorification of ignorance.

I guess this is my point. I get the strong impression ignorance is celebrated. It is glorified. It is considered an achievement to not know. Like it is a good thing and I get it. It is a good thing - in a way. Delegation is at the heart of the success of our civilization(s). But somehow, after some time passes, we forget someone still has to do the actual thing. Delegation does not mean "solving", it means "not doing yourself". To come back down to Earth with an example: Google and friends have not "solved" hosting services online. We delegated these tasks to them, because it's economical and made sense in all sorts of ways. While that is quite profitable for us they have not made the task itself one shred easier. In fact I could argue they have complicated matters greatly. HTTP/2, QUIC and their various SPA offerings come to mind. When they inevitably leave we as a society are left with the mess they leave behind.

Writing this I realize I make it sound like React is an extinction level threat. It is not. I'm hoping to get a general pattern across which I think echos in a lot of domains of human activity and which in general does pose a threat. Only domain experts are capable of sounding the alarms and I guess we are that experts in this domain.

As I'm writing this I'm aware of some anti-capitalist vibes in my own text. I suspect the setup and rules of our economical game do tie into this significantly. Because to "let someone else do it" means livelihood for the executing party and thus a strong incentive to make the customer forever dependent on the service.

If you offer a service you should:

A) Make it as easy as possible for yourself
B) Make it as hard as possible for others

Point A leads to automation. Which I guess is good. Point B leads to artificial value creation that serves no useful purpose other than getting the owners a nicer car. While not the only reason for our complexity problem I do feel point B is having a field day in our sector.

References
[1] nand2tetris
 
stn1986 I'll start with the statement: There's a place for SPAs. Really, there is. If you have an application that should run in a browser (as the "application platform"), and that application has absolutely nothing in common with a "web application" (you know, anything that can be mapped to resources, documents, REST, ...), then you have a usecase for an SPA. Examples could be sth like "Google Maps", or "Microsoft Teams".
Thank You. I had to lookup that 'SPA', never heard of it (this is something typical, see [1]). Now it looks like this is nothing new at all (again), it appears to be the AJAX gimmick, give or take. That is there for 15 years already and can be used at your discretion.

So why is there a discussion? This is like creating a discussion whether one should use screwdrivers or pliers for repair work! Obviousely you use the one that is suited for the task at hand, because anything else gives bad results.

[1] New acronyms appearing in continuous innovation. Often the discussion then circles around these acronyms mostly. Sitting in a meeting, I then usually raise my voice -as a business consultant- and ask "scusi, explain 'SPA' please". And it is rather easy to figure that lots of the other participants didn't know either (they just didn't dare to ask). So, people were sitting there for two hours, stating their opinions on things they didn't understand a word of (and obviousely collecting their money). And that's why nothing results out of these meetings (and, btw, that's what business consultants are there for: to terminate the crap).

Now, seriousely, with this happening for a couple of decades now, stacking new ideas (which usually aren't really new), new acronyms on top of the other, most concerned people will at some point loose track (specfically if they have not learned the trade from ground up, and therefore cannot properly position the new buzzwords into the larger picture). And so people (and decision-makers!) walk around with a big stack of things they don't really understand - and that becomes normal. Fractured people.
 
Thank You. I had to lookup that 'SPA', never heard of it (this is something typical, see [1]). Now it looks like this is nothing new at all (again), it appears to be the AJAX gimmick, give or take. That is there for 15 years already and can be used at your discretion.
Not exactly. "AJAX" can be used for additional presentation logic, lookups, etc, and is used that way a lot outside of SPAs. But "single page" is another beast, there's no concept of resources any more, there's just one single resource (for the browser, not talking about backend services) and this is the application itself, so it's kind of the in-browser equivalent of a fat-client. This often means at least part of the actual business logic is also moved inside the SPA. No need to talk about the consequences I guess ;-)
 
Not exactly. "AJAX" can be used for additional presentation logic, lookups, etc, and is used that way a lot outside of SPAs. But "single page" is another beast, there's no concept of resources any more, there's just one single resource (for the browser, not talking about backend services) and this is the application itself, so it's kind of the in-browser equivalent of a fat-client. This often means at least part of the actual business logic is also moved inside the SPA. No need to talk about the consequences I guess ;-)
It's a good strategy to move the power bill to the customer. Save a little bit by making everybody else pay more.
From an enigneering viewpoint that's an obscenity.

BTW, that one
You might be interested in ROCA, IMHO it gives really great guidelines for how to design a web application that is indeed just that: a web application.
sounds someway like D.Heinemeier-Hanson. But that may be because Rails is the only framework I actively use - I'm not a developer, I just needed a GUI for my database, and so I started to study the trade. (Back 15 years ago. Then I found the matter interesting, and started to give small lectures to my co-workers about where development is heading to. But then the company fired me, because they considered me so terribly backward-facing, while they wanted to become "agile"[tm].)
 
it seems to be caused by "developers" who just know React/Angular/Vue/whatever and have lots of idiot-proof "tools" at hand to quickly setup a project for that, they don't care about quality, semantics, performance, maintainability, ....

All the time I find React developers--and others--asking questions about how to do something in, say, CSS like "How do I change the color of X using React" and it turns out it's the simplest of things to do using basic CSS but a React dev needs to programmatically do it somehow with a dozen lines of code.
 
I love reading this kind of thread. And, I'd like to point out that Open Source is not immune to this mess. I'd like to bring up KDE development as case in point. I read blogs on https://euroquis.nl (FreeBSD/KDE dev Adriaan DeGroot runs it), and https://pointieststick.com/ (A blog by Nate Graham that tries to summarize KDE development as a whole).

The Euroquis blog makes no secret of the details that kind of need to be ironed out so that KDE actually runs on FreeBSD... And somebody's gotta do it...

The Pointiestick blog, on the other hand, crows about the glowing progress of the project, and how easy it is to get involved and quash bugs... Yeah, that's a nice, shiny shop ad. Just getting involved in KDE requires one to be reasonably comfortable in C++, git/github, be able to keep all kinds of dependencies up to date, and figure out where in the project your output even fits, and how it gets integrated with the rest. You gotta have a ton of skill, some ability to meet deadlines, and a certain attitude towards making it all add up. By the time you get a handle on Ruby on Rails or Python, and figure out how use that particular API, you very well may discover that the version of Python you depend on has been EOL'ed upstream. (This happened with Konqueror already, it's still dependent on Python 2.7).

Once again, my point is that Open Source is not immune to that mess. It does take some skill and attitude to deal with it, put in effort when you don't want to, and to churn out results you can be proud of.
 
Back
Top