From: "Jörg W Mittag" Date: 2009-05-16T07:50:03+09:00 Subject: Re: Any current preprocessor/Ruby language add-ons? C. Dagnon wrote: > Generally Ruby seems flexible and pretty powerful and concise but unruly > and, well, unreliable. All the benefits but detriments of a scripting > language when mixed with (at least my) human fallibility. But if > someone isn't already working on these things it may be more prudent for > me to move to a different language or platform. Anyone have a > suggestion? More directly, is there a computer language group which I > should start shadowing as comp.lang seems more off topic than > discussion... Maybe you are interested in the Cobra Programming Language ()? The main feature of Cobra is that it is designed with a "no holy cows" attitude: if there is a feature that makes sense, it is added. Period. No flamewars allowed. And so, while other language communities engage in the umpteenth flamewar about whether static or dynamic typing is better, Cobra simply has both. Chuck Esterbrook (), the designer of Cobra, has a very simple guiding principle: a programming language should help a programmer to achieve her goals. And those goals are: productivity and quality. There are a number of language features that help with productivity (dynamic typing, implicit typing, expressive, concise, lightweight syntax, high-level abstractions) and there are features that help with quality (static typing, explicit typing, language-integrated documentation, language-integrated testing, design by contract). There are some languages that have all the features in one list (Ruby, Python, Perl, Smalltalk, Lisp), some have all from the other list (Eiffel, D), some have some from both lists (Objective-C, Perl6 have static and dynamic typing, Haskell has static and implicit typing plus expressive syntax and high-level abstractions). But none have all of them. Well, until Cobra. First two caveats: Cobra is a CLI language, and it is still in development. However, Chuck Esterbrook has used Cobra commercially in production systems for many years now. Cobra achieves this by starting with the syntax of Python, but massively cleaned up (no gratuitous self, no __underscores__, no colons). Then you add the object model of C# and the contracts of Spec#. Whenever there is a C# concept that cannot be expressed with Pythonic syntax, steal from VB.NET. Add unit tests analogous to contracts and docstrings. Throw in streams from C�, for good measure. Make static typing the default, but implicit. Well, you get the idea. jwm