I am recruiting a postdoctoral researcher to work at Polytechnic Institute of Paris for 30 months, in the fields of #SoftwareEngineering and #Cybersecurity The recruited person will work on leveraging @swheritage as a knowledge base to improve the state of the art of (binary) software composition analysis (SCA), to detect the presence and details of #OpenSource software shipped within IT products. See https://institutminestelecom.recruitee.com/l/en/o/post-doctorante-ou-post-doctorant-en-genie-logiciel-et-cybersecurite-cdd-de-30-mois-2-5 for details and application instructions. #getfedihired

I am recruiting a postdoctoral researcher to work at Polytechnic Institute of Paris for 30 months, in the fields of #SoftwareEngineering and #Cybersecurity The recruited person will work on leveraging @swheritage as a knowledge base to improve the state of the art of (binary) software composition analysis (SCA), to detect the presence and details of #OpenSource software shipped within IT products. See https://institutminestelecom.recruitee.com/l/en/o/post-doctorante-ou-post-doctorant-en-genie-logiciel-et-cybersecurite-cdd-de-30-mois-2-5 for details and application instructions. #getfedihired

One reason I think that complex #AI software projects are never going to happen is that the code it generates has no intent behind it.

Senior software devs spend an extraordinarily large amount of time reading existing code and asking not just HOW they work, but WHY they were written that way. Reading long-maintained, complex source code is more than mere reading comprehension; it’s LITERARY CRITIQUE. You’re constantly trying to understand the thought process and motivation of whoever wrote that code, in the hopes of gaining insight into their frame of mind.

Well, AI code has no motivation, thought process, nor frame of mind. While the code it generates MIGHT work correctly (a big assumption) at the point it was extruded, there is no plausible way of maintaining that code, and at some point of complexity (sooner than you think!) maintainability becomes critical.

#softwareEngineering#softwareDevelopment

#AI coding tools can be time-saving automation at the hands of an already-senior developer, but that’s only because it utterly relies on the motivation and depth of experience already found in the HUMAN that’s using it to shape it into something worthwhile. Like a seasoned musician toying with analog synthesizers and sequencers, finding serendipity in the semi-random stream of patterns that are suitable to be molded into actual works requires a human editor. AI itself cannot offer that wisdom.

AI will never be a replacement for expertise. It does not compensate for a lack of skill. It offers nothing to replace an understanding of the fundamental principles of the craft. It will not turn a junior engineer into a senior one.

And it will not create a complex product, at least not one that won’t crumble the moment you have to maintain it.

#softwareEngineering#softwareDevelopment

But WHY do we need to understand the motivation behind a pile of code? Because it reduces amount of COMPLEXITY we need to hold in our mind. Understanding an original author’s mindset helps to define a direction of development that will very likely yield successful results that are harmonious with existing code.

And as any senior software dev knows, complexity is the greatest enemy of engineering, and anything that helps constrain the beast increases the likelihood of producing error-free progress.

AI is great at producing code of little consequence, things so basic or throwaway that no deep understanding is needed to maintain it. To me, that constrains its practical use to generating basically SCAFFOLDING and BOILERPLATE upon which your real code is built, essentially making the (fancy and custom) GRID PAPER on which you will actually inscribe your design. Let it write your for-loops, but don’t let it write the functions it calls.

#ai#softwareEngineering#softwareDevelopment

#AI coding tools can be time-saving automation at the hands of an already-senior developer, but that’s only because it utterly relies on the motivation and depth of experience already found in the HUMAN that’s using it to shape it into something worthwhile. Like a seasoned musician toying with analog synthesizers and sequencers, finding serendipity in the semi-random stream of patterns that are suitable to be molded into actual works requires a human editor. AI itself cannot offer that wisdom.

AI will never be a replacement for expertise. It does not compensate for a lack of skill. It offers nothing to replace an understanding of the fundamental principles of the craft. It will not turn a junior engineer into a senior one.

And it will not create a complex product, at least not one that won’t crumble the moment you have to maintain it.

#softwareEngineering#softwareDevelopment

One reason I think that complex #AI software projects are never going to happen is that the code it generates has no intent behind it.

Senior software devs spend an extraordinarily large amount of time reading existing code and asking not just HOW they work, but WHY they were written that way. Reading long-maintained, complex source code is more than mere reading comprehension; it’s LITERARY CRITIQUE. You’re constantly trying to understand the thought process and motivation of whoever wrote that code, in the hopes of gaining insight into their frame of mind.

Well, AI code has no motivation, thought process, nor frame of mind. While the code it generates MIGHT work correctly (a big assumption) at the point it was extruded, there is no plausible way of maintaining that code, and at some point of complexity (sooner than you think!) maintainability becomes critical.

#softwareEngineering#softwareDevelopment