KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
For a long time I've been trying different languages to find the feature-set I want and I've not been able to find it. I have languages that fit decently for various projects of mine, but I've come up with an intersection of these languages that will allow me to do 99.9% of my projects in a single language. I want the following: Built on top of .NET or has a .NET implementation Has few dependencies on the .NET runtime both at compile-time and runtime (this is important since one of the major use cases is in embedded development where the .NET runtime is completely custom) Has a compiler that is 100% .NET code with no unmanaged dependencies Supports arbitrary expression nesting (see below) Supports custom operator definitions Supports type inference Optimizes tail calls Has explicit immutable/mutable definitions (nicety -- I've come to love this but can live without it) Supports real macros for strong metaprogramming (absolute must-have) The primary two languages I've been working with are Boo and Nemerle, but I've also played around with F#. Main complaints against Nemerle: The compiler has horrid error reporting, the implementation is buggy as hell (compiler and libraries), the macros can only be applied inside a function or as attributes, and it's fairly heavy dependency-wise (although not enough that it's a dealbreaker). Main complaints against Boo: No arbitrary expression nesting (dealbreaker), macros are difficult to write, no custom operator definition (potential dealbreaker). Main complaints against F#: Ugly syntax, hard to understand metaprogramming, non-free license (epic dealbreaker). So the more I think about it, the more I think about developing my own language. Pros: Get the exact syntax I want Get a turnaround time that will be a good deal faster; difficult to quantify, but I wouldn't be su
Tags (comma-separated)
Save Edits
Cancel