Wysiwid: What you see is what it does
8 months ago
- #LLMs
- #Modularity
- #Software Design
- LLMs are improving at writing code, reducing the need for low-level coding skills but increasing the importance of system modeling and ambiguity translation.
- The division of labor between humans (high-level decisions) and LLMs (details) may not be optimal due to evolving LLM capabilities and task variability.
- LLMs highlight flaws in current software development practices, suggesting a need for better modularity and classic software engineering principles.
- Modular software design can enhance LLM effectiveness by allowing code generation one module at a time, encapsulating behaviors within modules.
- Current software practices often lack true modularity due to complex interfaces and poor maintenance, leading to technical debt.
- Object-oriented programming (OOP) often fails to achieve modularity as functionality cannot always be neatly assigned to entities.
- Concept-based design improves modularity by organizing code around user-facing purposes, with independent concepts coordinated via synchronizations (syncs).
- Syncs mediate interactions between concepts, managing dataflow and application-specific behaviors without compromising concept reusability.
- Prototype tools like Kodless and ongoing research demonstrate the feasibility of generating concept implementations and syncs using LLMs.
- This approach offers legible code with clear user-behavior correspondence, enhancing LLM scalability and integrity in software development.
- Future directions include low-code SAAS tools for non-experts and agentic workflows for developers, with potential applications in front-end design.