How does the new development system differ from other dynamic
programming systems?
The new development system differs from other dynamic programming systems
which require creation of two separate solutions, a prototype, which is
thrown away, and a product. It provides a single type system where a type
can either be in the dynamic state or in the static state. When a type is
frozen into the static state or melted into the dynamic state, it is still
this type, not a different type. This provides advantages we can't get from
the traditional prototyping method using dynamic languages:
-
Efficient product deployment. System developed in a dynamic environment can be frozen into static environment completely without any run-time overhead.
-
Evolutionary change. A system can be developed by freezing more and more parts gradually, and hence there is no distinction between a prototype and a product. We can use system maturity to measure whether a system under development meets the requirement specification.
-
Two way transition. A product may need to be modified when market demands or requirements change. It can be melted into the dynamic environment for redesign.
-
Single development/maintenance track. Whether a type or a system is shaped dynamically or statically, it represents a single entity. Developers can modify it either in a static or in a dynamic environment.