Philosophy and Goals of Wave
Wave aims to complement the limitations of existing low-level languages and build an integrated development ecosystem that can encompass various development areas with a single language.
Instead of handling vastly different fields such as web development, operating systems, artificial intelligence, blockchain, hardware control, compilers, networking, and encryption with different languages, Wave intends to naturally connect all these areas within one language and one tool system.
Wave does not view universality as simply "being usable in many places." Wave aims to simultaneously meet the performance, control, and stability required by each area, maintaining consistent design and clear rules at the language level.
In particular, Wave is designed to enable developers without deep expertise in hardware to utilize hardware functions. The standard hardware library abstracts complex hardware concepts to enable intuitive use.
At the same time, Wave provides low-level access to directly control hardware, if necessary. This allows developers to freely transition between abstracted interfaces and direct control, minimizing code complexity without sacrificing performance.
Ultimately, Wave aims to handle various tasks with a single language, providing an integrated environment with efficient performance and consistent development experience.
Performance and Efficiency
Wave is a language designed with high performance as a premise. The compiler and execution model aim to generate optimized code and are configured to maintain stable performance across various platforms.
Wave aims to provide consistent performance characteristics with a single language, from high-level areas like web applications to performance-critical areas like operating systems or system software.
Safety and Error Handling
Wave considers safe programming as an important design criterion. It is designed to detect as many errors as possible at compile time, minimizing potential issues during runtime.
Wave aims to ensure basic safety, such as memory safety and type safety, without sacrificing performance. Wave sees safety and performance not as conflicting concepts, but as elements that can be achieved together through language design.
Improving Developer Productivity
Wave is designed with intuitive and consistent syntax to enable developers to quickly learn and efficiently use the language.
Additionally, it supports solving complex tasks without repeated implementation through a rich standard library and tool systems (Vex, WSON, etc.). This allows developers to focus on solving problems themselves rather than environment settings or boilerplate code.
Platform Independence
Wave aims to be a language that is not dependent on specific operating systems or environments. It is designed to allow the same code to operate consistently across various operating systems, enabling developers to reuse code across multiple environments.
This platform independence is one of the important foundational elements for Wave to function as a universal language.
Community and Extensibility
Wave is a language that grows through collaboration with the open-source community. Users and developers can freely participate in expanding and improving Wave's features, and this process also contributes to shaping the language's direction and completeness.
Wave is designed with customization and extension in mind to flexibly utilize the language and ecosystem according to specific fields or requirements.
Future-Oriented Goals
Wave aims to be a language that embraces future technological trends, rather than staying within the current technological environment.
With future technologies like artificial intelligence, distributed systems, and quantum computing in mind, we plan to continuously expand the language and tool systems. This direction serves as a foundation for Wave to establish itself as a language that can develop long-term, rather than as a short-term tool.