Difference between revisions of "Component standards"
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
− | |||
[[Category:Projects]] | [[Category:Projects]] | ||
Line 6: | Line 5: | ||
'''Standards and Tools for Eiffel-based Components''' | '''Standards and Tools for Eiffel-based Components''' | ||
− | While Eiffel appears to be an ideal language for building libraries, it has not | + | While Eiffel appears to be an ideal language for building libraries, it has not developed a standard for distributing binary components. Today, the most common way of distributing Eiffel libraries is as source code, for Eiffel compilers. |
At the same time, other languages heavily leverage the distribution of binary components. This is true for both open source and proprietary software. | At the same time, other languages heavily leverage the distribution of binary components. This is true for both open source and proprietary software. |
Latest revision as of 17:02, 8 August 2007
Warning: To adhere to the standards for the Projects category, this project page should include a "Project members" section listing contributors and means to contact them. Please add this information, then remove the present notice.
Standards and Tools for Eiffel-based Components
While Eiffel appears to be an ideal language for building libraries, it has not developed a standard for distributing binary components. Today, the most common way of distributing Eiffel libraries is as source code, for Eiffel compilers.
At the same time, other languages heavily leverage the distribution of binary components. This is true for both open source and proprietary software.
I'd like to see some emphasis placed on standards and tools to make it easier to distribute binary components written in Eiffel. Among the problems that need to be addressed are issues of data interchange, what to do with MI, exception handling, and multithreading.
One possible starting place: for binary Eiffel library, designate for the compiler an "export" cluster. This cluster contains the root classes for the library. Constraints may be placed on these classes to ease integration with other languages. For example, members of the cluster may not be implemented with MI. The public interface for the classes may only reference other classes within the cluster, or primitive data types.