What do you like in a programming language?
Posted 02-18-2009 at 11:55 PM by PatrickNew
As a hobby/educational project, I'm writing the specification and reference compiler for a programming language. Although education and experience are my primary motivators, I really want write a language that people would use.
So here's my question: What makes a programming language good? Specifically, I'm looking at a strongly, statically typed object-oriented language with some functional aspects, with templating tossed in.
Here's what I've got so far. They are in no particular order. Remember, this is just a wishlist, I'm not claiming to deliver all this by next month .
So here's my question: What makes a programming language good? Specifically, I'm looking at a strongly, statically typed object-oriented language with some functional aspects, with templating tossed in.
Here's what I've got so far. They are in no particular order. Remember, this is just a wishlist, I'm not claiming to deliver all this by next month .
- Efficiency
- Allows for (but doesn't require) optimizations.
- Doesn't waste (note: 'waste', not 'use') CPU cycles.
- Doesn't waste (note: 'waste' not 'use') RAM.
- Clarity
- Clean syntax.
- Intuitive semantics.
- Safety
- Audited and tested implementation of standard libraries.
- Support for exceptions.
- Support for interfaces and their enforcement (in some incarnation or another).
- Openness
- A liberally licensed reference compiler.
- A CPAN-like repository of code.
- Bind-ability
- Ability to use extenral libraries.
- Ability to export libraries to other languages.
- Feature Completeness
- Turing completeness (obviously).
- Extensive standardized libraries.
- Extensibility
- Easy to create domain-specific sublanguages.
- Some mechanism for conditional compilation.
- Scalability
- Full OO constructs.
- Package/Namespace system.
- Loadable modules where they are supported.
- Portability
- To various OS's.
- To various CPU's.
- Concurrency - Able
- Good support for threads.
- Good synchronization primitives.
- Good communication primitives.
Total Comments 0