Just like a symphony orchestra...
A Computer program...
more text
DLX is really just what the logo portrays; you take Ruby as a basis and then try to fit in C as elegantly as possible, without it causing too much of a distraction.
Interface first, implementation later
For me —and thus for Ruby/DLX— the interface that DLX offers, is more important than the actual implementation. The interface should be intuitive and easy to use and, like ruby on rails, should use convention over configuration. This means that, where possible, DLX is expected to do the right thing, and if this is not the case, the user must be able to change it for such cases. There is a saying for this: Making the common case easy
and that's what DLX basically is all about.
Ofcourse there are disadvantages to this approach. The first implementation was a huge ruby beast built around Ruby/DL(2). It was dead slow and the main reason for a rewrite of the core in C. Ruby/DLX 0.9.0 is going to be the first release that uses this new core. It's much faster, but the implementation is still not 100% up-to-par with the interface: Currently DLX eats quite some memory, because —in the true nature of the above philosophy— not much attention has been paid to memory management and some conservatism in this part should be added for the next release (0.9.1 probably).
License
Ruby/DLX and all related files that can be downloaded through this site or the project page on rubyforge are subject to the following license agreement:
Ruby/DLX is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 draft 2 of the License, or (at your option) any later version.
Ruby/DLX is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Ruby/DLX; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Acknowledgements
Many thanks go to the following people (in no particular order):
- Takaaki Tateishi For creating Ruby/DL(2), Ruby/DLX uses code that was inspired on his work.
- Chintana Wilamuna Feedback & Ideas (most notably bringing onto my attention: forward declarations)
- You ? (contact me via rubyforge)