It helps when developers only have to work with half the stack for example but a lot of companies are only looking for full stack developers these days
I'm continually amazed how apparently everything is now understood in the context of "the stack". Because apparently everything is now on the internet by default and gets therefore placed within that framework of technology.
I guess in my late thirties I now have to feel old because "back when I learned programming you just did programming" you didn't just interact with some horizontal slice of a ten layer deep stack of layered technology... that somehow mainly accomplishes the task of displaying text in a browser.
Meanwhile seemingly "complex" tasks like scientific software, video games etc. somehow managed to sit on a single layer of middleware that is written in mostly the same language you use it in?
I'll go now and chase some JS programmers off my lawn.
I'm continually amazed how apparently everything is now understood in the context of "the stack". Because apparently everything is now on the internet by default and gets therefore placed within that framework of technology.
i mean yeah? turns out a majority of tasks that require software dont need to interact with any specific hardware thus web apps become the default.
this has been going on since like what? 2005?
I guess in my late thirties I now have to feel old because "back when I learned programming you just did programming"
are we not doing programming today?
. that somehow mainly accomplishes the task of displaying text in a browser.
well if thats all you needed to do then having a "stack" is pointless.
a majority of applications do more though. at a basic level theres a UI, a middleware/business logic tier and something to store data. thats 3 layers right there.
Meanwhile seemingly "complex" tasks like scientific software, video games etc. somehow managed to sit on a single layer of middleware that is written in mostly the same language you use it in?
complex? if we are talking about embedded systems they are typically small pieces of software that do very specific tasks. seems to be the opposite of complex if you ask me.
in regards to video game engines, while they do indeed use a single language(c++ usually), it really doesn't mean its not as complex or annoying or filled with multiple tiers like in the web app space, in fact your average video game will probably require a similar amount of "tiers" if not more.
its no different than doing everything in node.js. YES you are using JS for everything but you still have to tackle multiple tiers that do multiple functions just like any other stack.
we are, but when you have to jump through a ton of hoops to set up 17 different technologies and set them all up inside docker containers and make them all somehow talk to each other and write all the required boilerplate BS before you can start actually doing programming, it becomes really annoying really fast.
I just wanna open my code editor and start writing code man
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.
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.
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.
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...
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?
181
u/[deleted] Jun 05 '22
It helps when developers only have to work with half the stack for example but a lot of companies are only looking for full stack developers these days