> 1. It's clear that we have too much grunt work. Im not sure if this is a failure of language design or libraries, but we need to do better at the core.
We've been iterating over that for decades, there's always one more step of grunt work to remove, one more layer of boilerplate code to move into the compiler (or a code generator), one more deployment task to automate, one more elegant new syntax to add to a language, …
Yeah, and for each piece of boilerplate we remove, we add another few layers of abstraction. At the end of this process we are stuck with crap like YAML and JSON (or, heaven forbid, XML) with the business logic being thinly spread out between logic in shell scripts, shell variables (for CD, for example), in YAML and/or JSON and/or XML within the frameworks in use (spring, mybatis, etc), multiple third-party libraries.
There is no one place where you can find the business logic.
Reminds me of a case where I was trying to help debug some legacy code. I had a simple question, what code gets executed when this method is triggered via the network request. And the final answer that i got from the developer maintaining that code was: I have been working on this for the last 9 months and I have not yet been able to find he entry point from where the requests are handled
I would hope that, in future, some chatgpt like tool would be able to answer basic questions like this and help a new developer start getting productive in much shorter time than now.
Then imagine asking that tool to summarise all the business logic applied in the project or ask questions abou which all sections of the code may need investigation to analyze a bug and come up with a solution.
In the end, I would think of these ai tools as something that can function like another junior or even slightly experienced developer in the team.
We've been iterating over that for decades, there's always one more step of grunt work to remove, one more layer of boilerplate code to move into the compiler (or a code generator), one more deployment task to automate, one more elegant new syntax to add to a language, …