Things I'd like to see in a programming language suitable for text, database, interface, and system scripting work. Each feature is followed by a brief description.
Package and general features:
- Orthogonal structure: Constructed from a small number of powerful constructs for ease of learning and understanding.
- Reasonable syntax: Simple, clean, readable.
- Portable: To all major platforms.
- Access to system calls: UNIX and Win32.
- Interface to external programs: Ability to catch errors, note the exit status, and redirect I/O.
- Foreign function interface: Ability to dynamically load and execute functions written in another language.
- Module system: With protected namespace.
- Extensive standard library: For functionality not provided by the language.
- Language standard: One implementation.
- Freely distributable: Avoids license fees and restrictions.
- Interpreted implementation: For quick ad-hoc development and machine independence.
- Compiled implementation: For faster execution and protected code if distributed.
- Embedded implementation: For use within another application (eg: web server).
- Interactive source debugger.
- High-level portable GUI: For easy data entry.
- Automatic memory management
- Full set of data types: Support for strings, lists, arrays, records / structs, tuples, sets, unions.
- Fully assignable data types: Ability to make list of lists, array of strings, etc. without recourse to pointers.
- Recursive functions
- Binary (8-bit) data handling
- Unicode (16-bit) data handling: Needed for proper XML.
- An object system: Multiple inheritance a plus as it allows a high degree of code-reuse.
- Strong typing: To prevent type mismatches.
- Exception handling: For better error checking.
- Static typing: Catch type errors at compile-time.
- Definable control structures: A macro system or normal order evaluation.
- Pattern matching: regular expression support.
- Dynamic calling sequences.: The ability for functions to accept optional or unlimited arguments.
- Dynamic typing and name resolution.: Allows expression of generic operations.
- Multiple return values from functions
- Circular data structures: In a natural syntax.
- Reflexivity: Ability to access data about the language and programming environment itself.
RELATED POSTS
2 comments:
Unicode is 32 bit, not 16. the standard broken implementation of unicode standard with Java is 16; hyper-unicode used by ninjas from the future to represent ultra-japanese glyphs is 64.
Er, yes, sheesh, my bad.
Post a Comment