LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Blogs > PatrickNew
User Name
Password

Notices

Rate this Entry

What do you like in a programming language?

Submit "What do you like in a programming language?" to Digg Submit "What do you like in a programming language?" to del.icio.us Submit "What do you like in a programming language?" to StumbleUpon Submit "What do you like in a programming language?" to Google Submit "What do you like in a programming language?" to LinuxQuestions.org
Posted 02-19-2009 at 12:55 AM 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 .
  • 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.
Posted in Uncategorized
Views 199 Comments 0 Edit Tags
« Prev     Main     Next »
Total Comments 0

Comments

 


All times are GMT -5. The time now is 04:00 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
RSS2  LQ Podcast
RSS2  LQ Radio
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: @linuxquestions
Open Source Consulting | Domain Registration