What features would be present in your dream programming language ?

OK kids, back to programming.

I am stating some of my opinions on what should be in my dream programming language here. This will be an evolving set of ideas, I will be updating them as I learn more.

Functional Requirements

  1. Lexical scoping
  2. Static typing
  3. Pointers
  4. Object Orientation
  5. Java Interfaces ( Contracts )
  6. One class per file
  7. Java style namespaces ( packages )
  8. Checked Exceptions
  9. No mandatory garbage collection ( facilitate RAII )
  10. Single inheritance, multiple implementation
  11. Data types : String ( buffer + size ), int, float, char, boolean, hashes, arrays, structures
  12. Reflection
  13. Annotations
  14. C style syntax where possible ( no white space based scoping )
  15. Automatic destructor invocation ( avoid @Predestroy from Java )
  16. Specification and test suite, but also a reference implementation
  17. Generics

Non-functional requirements

  1. Integrated Development Environment ( IDE ) friendly
  2. Blue collar language
  3. Fast start up
  4. Fast execution
  5. Easy to hot load code
  6. Compiled
    1. Leave portability to LLVM
    2. After decades of “Sufficiently smart profiling JIT compiler should run code faster than sufficiently smart optimizing AOT compiler” it still has not materialized

This language should be developed under a Benevolent Dictator For Life ( BDFL ) model -as opposed to design by committee- and should also consist of a maven style declarative build system with sensible defaults.

What features would be present in your dream programming language ?

Advertisements

One thought on “What features would be present in your dream programming language ?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s