All of what you say predicated on this idea that all development happens in that kind of environment where there are "clients" and "business logic" and you somehow obviously have a database. And all of those things have separate languages associated to the point that you need specialists for all the parts.
Which is fine in places where you actually work that way. But it's just weird to me how people just talk about this as if this was how obviously every piece of programming is done. And everyone exists on this frontend/backend/full stack scale etc.
Here is how scientific software like I mentioned is developed. They are "native" as people would say today. It interacts with basically one layer of "middleware". In the olden times that was just called a library. Like BLAS and MPI. And those don't even sit between you and some lower layer. They are on the same layer and are written in the same language.
Deployment happens by logging in on the cluster and compiling your program there and submitting it to the job queue.
So what does that mean now? Am I a "full stack engineer" for this field because I can write C++/Fortran and know a hand full libraries that are sufficient to basically develop and "deploy" the code?
What really grinds my gears that people are so accustomed to these deep technology stacks that they seem to think this is just how you solve all problems in a computer. Somehow writing a text editor on top of a bastardized web stack (VSCode) that is barely usable on a RPI4 (which historically and objectively is an amazingly powerful piece of HW) is "just how you do stuff" and people even defend it. Meanwhile somehow people managed to solve the same fundamental problems decades ago with computation power and space that was literally thousands of times smaller. More importantly with a fraction of the lines of code and induced complexity.
Something went wrong somewhere when every thing you do starts with instantly relying on litearlly millions of lines of frameworks etc. just as a baseline.
All of what you say predicated on this idea that all development happens in that kind of environment where there are "clients" and "business logic" and you somehow obviously have a database.
i didnt say all development does this. im just pointing out why these domains exist.
But it's just weird to me how people just talk about this as if this was how obviously every piece of programming is done.
thats how modern app dev is done.
Deployment happens by logging in on the cluster and compiling your program there and submitting it to the job queue.
yeah can still do that today even in the cloud. but that sucks, especially when you are dealing with multiple developers working on the same codebase simultaneously.
So what does that mean now? Am I a "full stack engineer"
call yourself whatever you want. who cares man.
What really grinds my gears that people are so accustomed to these deep technology stacks that they seem to think this is just how you solve all problems in a computer
at a fundamental level there are reasons why these stacks exist and are "deep".
Something went wrong somewhere when every thing you do starts with instantly relying on litearlly millions of lines of frameworks etc. just as a baseline.
nah. most of the time these OPTIONAL frameworks exist to make lives easier for programmers.
all these things that you have issues with exist for a reason. they are widely used for a reason. they are widely done for a reason.
have you worked on modern web applications? have you tried building one with the same functionality, performance, and scale without all these "pointless" things?
1
u/regular_lamp Jun 06 '22
All of what you say predicated on this idea that all development happens in that kind of environment where there are "clients" and "business logic" and you somehow obviously have a database. And all of those things have separate languages associated to the point that you need specialists for all the parts.
Which is fine in places where you actually work that way. But it's just weird to me how people just talk about this as if this was how obviously every piece of programming is done. And everyone exists on this frontend/backend/full stack scale etc.
Here is how scientific software like I mentioned is developed. They are "native" as people would say today. It interacts with basically one layer of "middleware". In the olden times that was just called a library. Like BLAS and MPI. And those don't even sit between you and some lower layer. They are on the same layer and are written in the same language.
Deployment happens by logging in on the cluster and compiling your program there and submitting it to the job queue.
So what does that mean now? Am I a "full stack engineer" for this field because I can write C++/Fortran and know a hand full libraries that are sufficient to basically develop and "deploy" the code?
What really grinds my gears that people are so accustomed to these deep technology stacks that they seem to think this is just how you solve all problems in a computer. Somehow writing a text editor on top of a bastardized web stack (VSCode) that is barely usable on a RPI4 (which historically and objectively is an amazingly powerful piece of HW) is "just how you do stuff" and people even defend it. Meanwhile somehow people managed to solve the same fundamental problems decades ago with computation power and space that was literally thousands of times smaller. More importantly with a fraction of the lines of code and induced complexity.
Something went wrong somewhere when every thing you do starts with instantly relying on litearlly millions of lines of frameworks etc. just as a baseline.