We, as an industry, need to find ways to simplify the process of building software, without ignoring the legitimate complexities of businesses. We need to admit that not every application out there needs the same level of interface sophistication and operational scalability as Gmail. There is a whole world of apps out there that need well thought-out interfaces, complicated logic, solid architectures, smooth workflows, etc…. but don’t need microservices or AI or chatbots or NoSQL or Redux or Kafka or Containers or whatever the tool dujour is.
A lot of developers right now seem to be so obsessed with the technical wizardry of it all that they can’t step back and ask themselves if any of this is really needed.
I can’t agree more with the whole premise of this article. The quest for adopting new, trending technology is making the overall design of the software we are building extremely complex. I can’t recount the number of times we are made to select the technology first to solve the problem at hand. It should never be so.
Software will always be simple and reliable if it is built to the address the problem it aims at with whatever technology - platforms/frameworks/solutions - that suit best. More often than not, simpler solutions are the most efficient ones to build and maintain software with.
Chris Lattner kind of sums it perfectly.
So true. Too many apparently "simple" techs merely shift the complexity to other places (higher level tools, frameworks, pkg managers, wrappers, syntax extensions, etc). Well designed systems are simple to learn and use end-to-end, while permitting experts to build amazing things https://t.co/sIlJYALYaO— Chris Lattner (@clattner_llvm) January 30, 2018