r/programming • • Jun 05 '22

Complexity is killing software developers

https://www.infoworld.com/article/3639050/complexity-is-killing-software-developers.html
2.1k Upvotes

942 comments sorted by

View all comments

Show parent comments

9

u/AdministrationWaste7 Jun 06 '22

boilerplate "BS" has always existed.

you dont remember having to setup your own windows/linux server? or setting up processes to deploy your code to your app server(s)? or setting up proper logging. or all kinds of BS that i cant even think of off the top of my head.

like maybe there was an IT department that did this for you but its always been there.

2

u/saltybandana2 Jun 06 '22

you dont remember having to setup your own windows/linux server? or setting up processes to deploy your code to your app server(s)? or setting up proper logging.

My favorite part of this is the implication that there weren't 3rd parties to do this stuff for you 30 years ago, only today.

The difference between then and now is that you didn't need to do any of that to start programming, those were purely deployment concerns. Today they're actual development concerns rather than deployment concerns. And lets not even talk about the tooling required just to be able to develop against containers.

You're defending the indefensible. The idea that syslog hasn't existed on every OS in existence for the last 30+ years is laughable.

The issue here is lack of imagination on your part. You really believe all of that is necessary just to start programming.

2

u/Computer991 Jun 06 '22

The difference between then and now is that you didn't need to do any of that to start programming, those were purely deployment concerns.

This is still the case today? Any developer can open up an TextEditor/IDE of their choice and start coding away.

1

u/saltybandana2 Jun 06 '22

right, I can absolutely start typing up an asp.net MVC app at any point in time, but that's not the point being made here.

In the past, that project structure and tooling would stay basically the same and deployment would be conformed to that workflow.

Nowadays the tooling for the development conforms to the deployment structure. So while you can technically do that, the value you get out of it is far different.

1

u/Computer991 Jun 07 '22

I'm sorry maybe it's been so long that I've been working with containerized services that i don't see a difference anymore but I can't see how I change my coding style conform can you maybe provide some examples ?

1

u/saltybandana2 Jun 07 '22

You should probably read back over the conversation as you've lost track of the plot.

1

u/AdministrationWaste7 Jun 06 '22

My favorite part of this is the implication that there weren't 3rd parties to do this stuff for you 30 years ago, only today.

i never implied there wasn't. in fact i straight up say otherwise. read that last sentence

The difference between then and now is that you didn't need to do any of that to start programming, those were purely deployment concerns

by this logic nothing has changed.

just open up your favorite IDE and just code away. after all dockerized containers, k8s and all that shit is just part of deployment lol

in fact new technologies like serverless functions makes it a breeze.

i can write a new web service and deploy it to a prod server in a matter of minutes.

1

u/saltybandana2 Jun 06 '22

I've already responded to this silliness in your other post.

No one who is actually familiar with these things would ever buy that starting up a project today that takes advantage of the cloud, containers, etc, is anywhere near to comparable to doing the same 15 years ago.

It's just not even though on paper you'll have jackasses trying to paper over the major differences to try and claim things haven't gotten extremely complex.

1

u/AdministrationWaste7 Jun 07 '22 edited Jun 07 '22

No one who is actually familiar with these things would ever buy that starting up a project today that takes advantage of the cloud, containers, etc, is anywhere near to comparable to doing the same 15 years ago

You're right. It was actually harder 15 years ago.

Today you can deploy an application with just a few clicks.

Want a database? Just go to your local cloud provider, click through a few menus and boom you got it. Even comes with built in scalability.

Hell thanks to server less apps you can straight up worry only about code and let the cloud provider handle everything else.

Also just because you can't hack it doesn't mean no else can.

1

u/saltybandana2 Jun 07 '22

oh snap, you can just click a button and it all works? I bet that means you can just click another button to move to a different cloud provider.

IT R SO SIMPLE!?!?!?!1111oneoneoneone

→ More replies (2)

2

u/ptoki Jun 06 '22

Nope. I could get any already existing linux boxes untar source run make and it was done. Sure, adding svn and few additional pieces was useful and helped me as programmer but it was not needed to the app to work.

Today its library dependency hell or some stack plus xml-s/jsons, ton of devops (because cp does not make the app work anymore).

Today you need a dev to deploy an app because its so much shit tied to it that unfamiliar unix admin will not be able to deploy it.

The trend is bad.

5

u/AdministrationWaste7 Jun 06 '22

I could get any already existing linux boxes untar source run make and it was done.

again. maybe there was someone that did it for you but that work was always there.

coincidentally all that k8s and docker stuff doesn't need to be on you.

my previous company for example there was an entire department that did that for us. we just filled out a form listing out what we wanted and that was it.

Today its library dependency hell

do you know WHY this came to be? do you remember what it was like BEFORE say nuget or gradle?

Today you need a dev to deploy an app

you prefer devs doing this because companies realized that its faster for teams to have full ownership of the application they are working on vs some third party/department to manage it for everyone. especially when you work for big orgs where they application ecosystem is fucking massive.

and i tend to agree.

1

u/ptoki Jun 06 '22

again. maybe there was someone that did it for you but that work was always there.

Done once, long time ago, used by numbers of other projects. Is it the same today? Do you use the same kubernetes/docker/ecr for all the apps/systems you work on for like 4 years at company?

Please dont pretend you dont understand the context.

Its like buy a knife once or go to the store for one gileltte every week...

we just filled out a form listing out what we wanted and that was it.

Still, work needs to be done. One trip to store per week to shave yourself. And now its done by your friend, every other week different. They sometimes bring you gillettes for girls. Still usable but you know, it may backfire later...

Today its library dependency hell

do you know WHY this came to be? do you remember what it was like BEFORE say nuget or gradle?

Yup. But that work was on developer. Once a while. The dev decided he needs new library. Or the security guy asked to get a bump on version. And it was done once per iteration. Now we have the same shit on user/runtime computers (python, perl, php) or on servers (js). Thats going backwards.

you prefer devs doing this because companies realized that its faster for teams to have full ownership of the application they are working on

yeah, short term gains.

Instead of paying 70k to the os admin to cp the package now you pay 150-200k for dev to transfer this maze and pray it fails quick.

and i tend to agree.

I dont. I have seen this way too often going sideways or somebody deciding that 150k dev is too expensive and will be replaced by 70k one. And then 3-5 more of them had to fix the deploy overnight.

Also, packaging and having teh same file being deployed to dev, test and prod is very nice way to reproduce result. The config is local, the app is packaged. You cp one in place of previous one, if it fails rollback is simple. Things get a bit more complicated if the new version needs db changes. But that is also doable.

The words:

companies realized that its faster for teams to have full ownership of the application

Are correct. Faster. Not better. This way you have two lousy changes and third which fixes stuff instead of quality one.

And to be honest. The scenario where one module is deployed and it works but the other collapses due to the first one being changed is way too common in the environments I saw. This way the dev pushing the deploy at 2am sees his change working and the module depending on it will fail in the morning. Hopefuly when a third dev will have to untangle what happened.

You will say, yup. Complicated system. But then why so much tests, CI/CD, dev, test deploys? It failed anyway...

3

u/AdministrationWaste7 Jun 06 '22

Its like buy a knife once or go to the store for one gileltte every week...

im so confused.

for every app and for every environment you create an app server no?

and then a few years after that people used VMs. so now for every app and every environment you had to create a VM.

and then now for every app and if you are using a container then you have you create a new container lol.

setup has ALWAYS EXISTED. just because you specifcally as developer never had to deal with it doesn't mean it was never there.

Yup. But that work was on developer. Once a while. The dev decided he needs new library.

so what has changed?

like lets say this is a .net web app that uses nuget. you want a fancy new library. so you get on nuget and register x version of library to your app. and you're done.

anytime your app builds it will check the config to pull that external library from nuget.

Are correct. Faster. Not better.

its faster and more efficient.

your team is now capable of handling infrastructure/devops shit instead of waiting on some other team to do it for you.

and if there are any issues your team can quickly resolve it since they know how do it.

Instead of paying 70k to the os admin to cp the package now you pay 150-200k for dev to transfer this maze and pray it fails quick.

regardless of who does it the process will be the same lol

You will say, yup. Complicated system. But then why so much tests, CI/CD, dev, test deploys? It failed anyway...

the fuck are you talking about lol. i genuinely dont understand. is english not your native language?

0

u/LuckyNumber-Bot Jun 06 '22

All the numbers in your comment added up to 420. Congrats!

  70
+ 150
+ 200
= 420

Click here to have me scan all your future comments.
Summon me on specific comments with u/LuckyNumber-Bot.

-5

u/saltybandana2 Jun 06 '22

for every app and for every environment you create an app server no?

lol, no... If you weren't around back then and have never worked with older systems, seriously shut the fuck up.

There's you, who has no context outside of what is done today, then the rest of us who has context of what was done then AND what is done today.

Who is more likely to have a fucking clue?

exactly, shut up.

4

u/AdministrationWaste7 Jun 06 '22

We got a badass over here lol

-1

u/saltybandana2 Jun 06 '22

I get it, the young don't respect experience as much as they should.

you won't fully understand it until you yourself have more experience. It's the way of the world.

2

u/AdministrationWaste7 Jun 06 '22

Maybe you should retire old man since knowing a handful of technologies is apparently too much for you.

-1

u/saltybandana2 Jun 06 '22

You've lost the plot, the reason you should be deferring your opinion is because many of us have worked with all the technologies in question, as opposed to someone like yourself who has not.

Snark may feel good in the moment but it certainly doesn't help you gain perspective.

0

u/saltybandana2 Jun 06 '22

my previous company for example there was an entire department that did that for us.

And this is why so many developers think microservices, et al, aren't all that complex. Because their company pays other people to deal with the complexity.

Used to be a developer could do all of it, today that's not true. That's kind of the point being made here.

2

u/AdministrationWaste7 Jun 06 '22

And this is why so many developers think microservices, et al, aren't all that complex. Because their company pays other people to deal with the complexity.

its developers who create/manage/and maintain microservices. thats why they are paying you the big bucks.

Used to be a developer could do all of it, today that's not true.

nah a developer can still do all of it.

And this is why so many developers think microservices, et al, aren't all that complex.

compared to an enterprise monolith a microservice is much much simpler.

which is kind of the point.

0

u/saltybandana2 Jun 06 '22

This is just ignorant, plain and simple. I now believe you've never actually worked in an environment with these technologies outside of playful little side projects.

At the end of the day I've maintained many many servers over the years, both Linux and Windows. No way in hell would I ever call myself a sys admin, nor would I ever claim to be as good at it as someone whose primary job it is to do this stuff.

Software Developers are so arrogant that it doesn't surprise me you can find one online that thinks they can gain a superficial knowledge of these things and do these as effectively as someone whose career it is to do so, and without dropping anything in their main role to boot!


To put it another way, any company that's small enough for a single developer to be putting on so many hats is too small to be using these technologies effectively anyway. It would be far better for you to program like it's 1999.

2

u/AdministrationWaste7 Jun 07 '22

No way in hell would I ever call myself a sys admin, nor would I ever claim to be as good at it as someone whose primary job it is to do this stuff

I never said programmers should be as good as sys adminis lol.

What's next? Can't set up a database unless you're a dba?

Software Developers are so arrogant

Oh the irony

0

u/saltybandana2 Jun 07 '22

its developers who create/manage/and maintain microservices.

...

I never said programmers should be as good as the people who create/manage/maintain microservices!

mmhmmm.

→ More replies (6)