I'm not sure how much I actually need developers at this point; developers are welcome (especially really smart ones with lots of time on their hands), but firstly I'm looking for comments and mindshare in the concept I'm working on.
I'm developing an entire ecosystem of tools, so it will need TLC from several developers to be successful. But this is not yet a project that you can dive right into; it has a vision that should be somewhat understood first (and I'm still struggling to find the right way to present my vision), and a lot of pieces that are not even started.
The vision is called Loyc: Language of your choice.
I suppose to summarize quickly, I'm making three things:
A new programming language called Enhanced C#, which will be 99+% backward compatible with C#
A set of tools for converting code between programming languages. The endgame will be reliable automatic conversion from some sort of "common language" to several others; the road to this goal will involve much more primitive tools, e.g. at first we'll convert the "surface syntax" only. I want to create not just a "least common denominator" language, but a rich and powerful platform for cross-language programming.
A cross-language standard library. As a precursor to this goal, I have created libraries that supplement the .NET BCL with richer interfaces and data types. In particular I've created a collection library with a rich set of interfaces and some very interesting data structures including an "optionally-persistent" hashtable and something I call the "A-List" which is based on the B+ tree; both of these support O(1) cloning and have mutable and immutable variations.
My ideas for Enhanced C# have evolved over time. At first I just wanted to add a bunch of random useful features to C#, but now my design is focused on a single "killer" feature that I want to add to C#: LISP/Nemerle-style macros. All other features are lower priority, but I do hope to implement most of them someday.
For both language conversion and macro processing, I developed a concept called the Loyc tree. Loyc trees are inspired by the S-expressions in LISP, but altered or "enhanced" to better fit most modern programming languages.
I wrote a simple macro processor that I'm starting to call LeMP (Lexical Macro Processor) for lack of a better name. Macros are a powerful way to support DSLs (domain-specific languages); to demonstrate this, I am currently using "LeMP" as the framework for invoking LLLPG, a new parser generator I made for C#. I am using LLLPG to create the parser for EC#; the EC# parser itself will be written in a textual representation of Loyc trees called LES. LES itself is merely a syntax, an "XML for code", if you will; there is a set of "prelude" macros that convert constructs designed for LES into C# constructs (plain C# for now, since EC# doesn't exist yet).
I am focused on static, high-performance languages. Scripting languages aren't really my thing, although I am interested in bringing over some dynamic language features to static languages.
So basically I'm looking for a variety of nerds:
programming language nerds to tell me how a macro system should work. I don't want to be stuck with primitive non-hygienic LISP-style macros forever!
compiler nerds to help write the damn compiler!
theory/research nerds to predict the theoretical and practical difficulties involved in programming language conversion.
tools nerds who know how (or want to figure out how) to write plug-ins for IDEs (I'll need syntax highlighting plugins, IVsSingleFileGenerator implementations, intellisense, you name it)
standard library nerds to help build a rich multi-language standard library (and refine the parts I've already developed). The main idea is that people can write code in a "common language" based on this standard library; this library will be ported to several languages so that you can convert your code to various languages and use the same standard classes and methods in each one. Right now the project is limited to .NET, but eventually we'll expand. I'm focused on source-based interoperability; a useful related project would be to develop and promote a new ABI and unified multi-platform standard library for rich binary interop between languages... but I don't personally have enough time or interest to work on that.
data structure nerds, because we're kindred spirits.
All of you different folks can help, in time. But for now I just would like people to familiarize themselves with the concepts in the wiki and on CodeProject, to ask me questions, and to offer their suggestions. The stuff I've developed will take more than one day to digest, so take your time, and if you want to help the project, get back to me if you think you grok it.
Can you please help me understand something? What level of exper are you looking for in this project? In your experience, what level of experince is required to join any project/be concidered?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm not sure how much I actually need developers at this point; developers are welcome (especially really smart ones with lots of time on their hands), but firstly I'm looking for comments and mindshare in the concept I'm working on.
I'm developing an entire ecosystem of tools, so it will need TLC from several developers to be successful. But this is not yet a project that you can dive right into; it has a vision that should be somewhat understood first (and I'm still struggling to find the right way to present my vision), and a lot of pieces that are not even started.
The vision is called Loyc: Language of your choice.
I suppose to summarize quickly, I'm making three things:
My ideas for Enhanced C# have evolved over time. At first I just wanted to add a bunch of random useful features to C#, but now my design is focused on a single "killer" feature that I want to add to C#: LISP/Nemerle-style macros. All other features are lower priority, but I do hope to implement most of them someday.
For both language conversion and macro processing, I developed a concept called the Loyc tree. Loyc trees are inspired by the S-expressions in LISP, but altered or "enhanced" to better fit most modern programming languages.
I wrote a simple macro processor that I'm starting to call LeMP (Lexical Macro Processor) for lack of a better name. Macros are a powerful way to support DSLs (domain-specific languages); to demonstrate this, I am currently using "LeMP" as the framework for invoking LLLPG, a new parser generator I made for C#. I am using LLLPG to create the parser for EC#; the EC# parser itself will be written in a textual representation of Loyc trees called LES. LES itself is merely a syntax, an "XML for code", if you will; there is a set of "prelude" macros that convert constructs designed for LES into C# constructs (plain C# for now, since EC# doesn't exist yet).
I am focused on static, high-performance languages. Scripting languages aren't really my thing, although I am interested in bringing over some dynamic language features to static languages.
So basically I'm looking for a variety of nerds:
All of you different folks can help, in time. But for now I just would like people to familiarize themselves with the concepts in the wiki and on CodeProject, to ask me questions, and to offer their suggestions. The stuff I've developed will take more than one day to digest, so take your time, and if you want to help the project, get back to me if you think you grok it.
So here's some readings:
Can you please help me understand something? What level of exper are you looking for in this project? In your experience, what level of experince is required to join any project/be concidered?