1. Re: WinClass OO Library vs Diamond
- Posted by Mike Nelson <MichaelANelson at WORLDNET.ATT.NET> Sep 13, 2003
- 391 views
Al Getz wrote: > I think the WinClass Library is fundamentally different > then Mike's nice library, but perhaps he could respond with > some brief specs on what his library does and what its > purpose is. I'd be happy to. Al's excellent WinClass Library is an object-oriented alternative to Win32Lib. Al provides classes implementing Windows GUI features and defines the technique for extending these classes (although his concepts could be used for non-Windows purposes). Diamond, on the other hand is a fully general-purpose OOP system for Euphoria. It does not handle Windows GUI programming, although you could use it to define your own library of Windows GUI classes. In comparison with WinClass (considered for use as a general purpose OOP library--which is not Al's intention), Diamond automates more of the OOP process and handles more bookkeeping at the cost of higher overhead. Diamond is conceptually based on Java and is very full featured. A list of features from the Diamond docs: JAVA-style Object Oriented Programming with single inheritance and interfaces. Automatic run-time polymorphism. Method overloading. Exception handling for error recovery. Normal, final (cannot be subclassed), and abstract (must be subclassed to be used) classes. Normal, final (cannot be overridden by subclasses), and abstract (must be overridden by subclasses) methods. Properties and methods may have public, protected, or private access. Read access and write access for properties are specified separately. Instance and class properties and methods. Objects can only be accessed through the routines provided by Diamond, direct access is impossible, providing excellent security. Packages for classes to provide globally unique class names. Classes as well as instances are accessed by references, and can take advantage of Euphoria namespacing. Objects can be converted to and restored from coded byte sequences for storage in a file, transmission over a network or the Internet, etc. Improved type checking, allowing types that throw an exception in case of failure rather than aborting. A null class which can be used for error reporting. Extensive information functions. A Do_Not_Clone interface to prevent copying objects of a class. Automatic method calls for special purposes. Built-in event handling with multiple event handlers. -- Mike Nelson