By embedding generative AI functions into programs, we can create mechanisms that were previously unattainable with conventional programming.
Furthermore, as generative AI becomes capable of automatic program generation, we will be able to freely and easily create and run programs as we conceive them.
I have, until now, built systems that translate my blog articles into English and post them to an English blog, create explanatory videos from presentation videos and upload them to YouTube, and generate and publish my own blog site with indexes, categories, and tags.
In this way, a mechanism that uses original content as raw material and incorporates generative AI functions to produce various derivative content can be called an Intellectual Factory.
Moreover, I have created a web application to operate this Intellectual Factory and manage its status, making it accessible on both PCs and smartphones. Additionally, the parts that handle automatic processing triggered by events are executed on virtual machines prepared for batch processing beyond the backend.
Thus, I developed the PC and smartphone frontends, the web server backend, batch processing on virtual machines, and the infrastructure for these, all by myself with the support of generative AI.
This is not merely full-stack engineering, but can be called Omnidirectional Engineering, which comprehensively develops various aspects of a system.
Furthermore, when improving aspects of the developed web application that are inconvenient to use or adding new features, I can entrust the programming to generative AI, allowing for easy improvements during use.
This is even more flexible and fluid than conventional software, enabling me to create something that perfectly fits my usage. I call this Liquidware.
I have personally developed and am actually using these. This is not just a concept; it is already the reality of software development.
Although not yet developed, in the field of business systems, I anticipate that the Business Process-Oriented development methodology will become a reality.
This is an approach that does not aim for overall optimization of programs, which complicates systems, but instead divides software modules into individual Business Processes.
Only the basic framework definition of the user interface, user privilege management, and data models that need to be shared between Business Processes are shared as the outer framework of the business system.
Other internal system processing and temporary data are managed at the unit of the Business Process.
There might be functions or data structures within these that can be shared by two or more Business Processes. However, if they are made into shared modules or custom libraries, while code and quality reusability improve, the software structure becomes complex, and changes necessitate constant consideration of their impact on other Business Processes.
In a situation where generative AI automatically generates programs, the latter's disadvantages outweigh the former's advantages. Therefore, the Business Process-Oriented approach, which emphasizes Individual Optimization rather than overall optimization, becomes rational.
Additionally, imagine units such as "entering new employee basic information," "updating employee basic information," or "searching for employees by name" as individual Business Processes.
In traditional development methodologies, each user interface, frontend process, backend process, and batch process would be separated into different files in different directories. Furthermore, each would be developed by a different engineer.
However, when a single engineer performs Omnidirectional Engineering by having generative AI do the programming, it makes more sense to consolidate the code required for one Business Process into a single file or folder.
In addition, requirements analysis results, test specifications, test results, and review records can also be consolidated in the same location.
This allows for the management of all software engineering artifacts at the unit of a single Business Process. And, because there is no need to consider overall optimization, improvements can be focused within that Business Process, and new Business Processes can be easily added to the business system.
In this way, program development and what can be developed with programs are undergoing significant changes due to generative AI. This is not a future scenario; it is already the present, and in the near future, its sophistication can only continue to advance, and the next stage must inevitably move beyond that.
Simulation Systems
What can be realized through programs is not limited to the business systems and intellectual factories mentioned here.
The remaining areas I haven't mentioned can be broadly classified as simulation systems.
Whether solving simple physics equations with a single analytical formula or calculating complex physical phenomena with iterative programs, both can be considered simulation systems.
Furthermore, simulation systems can be utilized not only in physics, but also in chemistry, biology, sociology, economics, and other fields. Beyond academics, simulations are also applied in engineering, medicine, institutional operations, and business management.
Games are also a type of simulation system. In any game, the physics, society, rules, and other aspects within that game's World are, in a sense, being simulated.
Beyond that, we also perform a kind of simulation when planning our lives, travel, or how to spend our pocket money.
These simulations have been conducted in various ways: by creating and running programs, calculating equations on paper, thinking in our heads, organizing thoughts with text and arrows on a whiteboard, or drawing graphs in Excel.
Developing a simulation program for a specific problem allows for more complex simulations than analytical equations. However, it requires programming development skills, effort, and time.
It also requires clarifying the simulation model, which in turn demands skills, consideration effort, and time.
Additionally, simulations have been limited to what can be expressed in a programmatic form, and previously only what could be expressed computationally could be simulated.
Generative AI is significantly changing this situation.
Generative AI can not only easily develop simulation system programs, but by incorporating generative AI into simulation systems, elements that cannot be expressed mathematically can also be simulated. This enables ambiguous qualitative simulation elements and simulations involving human-like intelligent agents.
Furthermore, these simulation models can be expressed not only mathematically but also in natural language and interpreted by generative AI.
This will make it easy to convert the various simulations we have performed in many situations into simulation systems.
As a result, we will be able to obtain more accurate, efficient, and effective simulation results, with a reduced possibility of overlooking details or introducing biases.
Moreover, when considering or discussing complex problems, we will be able to use a simulation system for consideration and discussion, rather than relying on individual mental simulations.
This enhances the precision of consideration and makes discussions more constructive. Instead of pointing out each other's intelligence or mistakes in thinking, discussions can focus on clear points such as the underlying models of the simulation, any omissions or missing elements, how highly uncertain parts are estimated, and which metrics among the results are prioritized.
As simulation systems become easy to create, our way of thinking will transition from linear thinking—which focuses on intuition, assumptions, and the malice or mistakes of others—to Simulation Thinking.
This is like searching the internet on a smartphone during a discussion to verify news sources, Wikipedia, or primary sources. There will be no need for endless arguments relying solely on each other's memories.
During a discussion, generative AI will organize the simulation model, simulation rules, and preconditions from the content of the discussion.
Participants in the discussion only need to add or correct information and premises in that model and rules, and then check the simulation results. Just as when finding a credible news source, these simulation results can serve as common ground to deepen the discussion.
This means that people listening to the discussion will no longer live in an era where they need to ponder who is right or who is trustworthy. Nor will they lose sight of the essence by trying to understand arcane technical terms and concepts that appear in the discussion.
They will only need to consider very simple things: how to evaluate uncertainty and which values to prioritize.