Integration, composition, mechanization, and AI assisted development are the driving themes in the future of software development. At their core these concepts are rooted in the increasingly important role of computing in our world, the desire to deliver functionality faster, with higher quality, and to empower more people to benefit from programmatic automation. These themes, and how they impact the human developers driving them, are the foundations for the next generation of programming languages. At first glance the needs of mechanization tools, AI agents, and human developers along with the various goals around development velocity, software quality, and software democratization are a broad and seemingly diverse set of needs. However, at their core is a single challenge that, once resolved, enables us to make radical progress in all of these areas. Our hypothesis is that, fundamentally, software development is a problem of reasoning about code and semantics. This is true for human developers implementing a feature, symbolic tools building models of application behavior, and even for language based AI agents as they perform tasks. While the particular aspects of reasoning that each agent struggles with varies to some degree, they share many common themes and, surprisingly, most mainstream languages extensively employ (anti)features that make this task harder or infeasible! This paper proposes a novel approach to this challenge -- instead of new language features or logical constructs, that add more complexity to what is already a problem of complexity, we propose radical simplification in the form of the Bosque platform and language.
翻译:集成化、组合化、机械化与人工智能辅助开发是未来软件发展的核心驱动力。这些理念本质上植根于计算在当今世界中日益重要的角色,源于我们期望以更高品质、更快速度交付功能,并让更多人受益于程序化自动化的愿景。这些主题及其对人类开发者的影响,构成了下一代编程语言的基础。初看之下,机械化工具、人工智能体与人类开发者的需求,以及围绕开发速度、软件质量与软件民主化的多元目标,构成了一组广泛且看似差异化的需求集合。然而,其核心存在一个根本性挑战——一旦解决该挑战,我们便能在所有相关领域取得突破性进展。我们的核心假设是:软件开发本质上是对代码与语义进行推理的问题。这一论断对人类开发者实现功能、符号化工具构建应用行为模型乃至执行任务的基于语言的智能体皆成立。尽管不同智能体在推理过程中面临的具体难点存在差异,但它们共享诸多共同主题;令人惊讶的是,多数主流语言广泛采用了使该任务更困难或不可行的(反)特性!本文针对这一挑战提出创新性解决方案——我们不再通过增加语言特性或逻辑构造来加剧本已复杂的难题,而是通过Bosque平台与语言实现根本性的简化。