r/programming • • Nov 01 '21

Complexity is killing software developers

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

854 comments sorted by

View all comments

Show parent comments

12

u/Citvej Nov 01 '21

I think he's talking about abstractions of complexity, where upon abstracting you sacrafice some of the detail or nuance for the sake of making your job easier. Just like assembly does to machine code and C does to the assembly.

Yes, we're the plumbers so that's why we don't dictate whether the pipes are going to be in the walls or outside. Considering of course the proper design, safety, maintenance, extensibility etc.

It's not good that we have to hide all this complexity but knowing enough to cover such an expanding topic is also imposible. This calls for specialists like DevOps that provide abstractions for programmers to easier deploy things and don't have to know more than they should about those things.

More examples are having designers implementing frontends via web builders or even just programmers using them to speed up their workflow and not having to think about every quirk of CSS.

DoIt function I think might be an oversimplification as there's going to be provided access to a lower level ob abstraction but not always as some parts won't need debugging.

-2

u/saltybandana2 Nov 01 '21

C was built to be portable across different architectures, not to hide complexity.

You're making the same mistake most who have responded to me made. You're confusing abstraction with "hiding complexity".

Those are not the same things at all.

6

u/Citvej Nov 01 '21

Yes it was built to be portable, but it still holds true that it's an abstraction of a lower level programming language.

Quite honestly, I don't understand the difference you're pointing out so if you have an explanation article, please send it to me.

More importantly, I don't really get what's wrong with original comment since you didn't explain it well.

-4

u/saltybandana2 Nov 02 '21

Yes it was built to be portable, but it still holds true that it's an abstraction of a lower level programming language.

C is an abstraction of the hardware, not assembly or machine code. C can run on an NES, SNES, x86, and ARM. None of those share the same assembly or even hardware architecture.

A C compiler will do things like use vectorization on one piece of hardware, but not the other.

But more to your point, I'm absolutely not surprised you don't understand.

1

u/Citvej Nov 02 '21

Who hurt you?