Friday, August 17, 2007

The Klutz Programming Language

Why another programming language?
  • I believe it should not be necessary to learn numerous different language to be able to program effectively. At present, I believe one needs to know C++, Python, Perl, bash, and many command line utilities, to be an effective Linux software developer. The goal is to reduce this set substantially, and to maximize the overlap in syntax and semantics between the main players in the resulting set.
  • C++ is a wonderful systems programming language. Due to several factors, mainly that it is compiled, very complex, and quite verbose, it is best suited for large scale software development.
  • Python does not have C++ strong typing, const, private, Perl one-liner expressiveness, and white space matters
  • Perl is inelegant, dangerous, and outright ugly for medium to large scale development, but has a wonderful ultra-short program support
Klutz Design Guidelines
  • C++ syntax, where possible
  • Strong typing, explicit declarations, const mechanism
  • Expressive power of Python instruments and libraries
  • Perl brevity and expressiveness for "one-liners" (very short programs)
  • Convenient interaction with UNIX command-line utilities

Manifesto

The purpose of this blog is to document my thoughts (many of which resulted from discussions with other people) about a better general purpose rapid development and scripting language.