I am Lorand Kedves, 38 years old programmer and software architect from Hungary. I know your name from the Last Lecture of Randy Pausch, and therefore I have a great confidence in you. To my greatest surprise, I have just found this video http://www.youtube.com/watch?v=nEf4420aK8s in which you mention that you are searching for an integrated environment.
This is "the" project that I have been working on for more than 15 years, behind my professional tasks at different companies (image manipulation, data mining, government agricultural systems, log analysis, etc.) Right now I hope I am in my final approach to the problem. Since April I only focus on this project, I have mostly finished defining the terms and core responsibilities of "dust framework" components, and I could switch to actual system design. I must work fast because I run out of resources, I will have to give it up and go back to work in January.
You can find all that I have here: http://dust-framework.org
Now this is quite a long documentation, but I tried to create the main page with enough links so that you can get a first impression about it. However, I could summarize some of the most important factors like this:
- programming can be separated into DESIGN and IMPLEMENTATION phase. The current programming languages and environments make us to write codes that simply contain design (like type declarations, GUIs, workflows, etc). My consequence is that the pure C language is enough for the implementation, in a proper environment that manages the design.
- I use flat type system, there is no inheritance, instead of that I use the term entity ("the thing") being a set of aspects ("features, abilities"), which set is partially mutable along the lifetime of the entity (quite an advantage over classic object instances).
- I have found that "creating an object", like an entity is a very wrong approach, I have to "invoke" them using references to configuration settings.
- I can totally omit working with streams, which is a very heavyweight part of current programming (console interaction, files, logs, network streams), because they all are transformation of entity hierarchies into and from a byte stream using a negotiated syntax. As I have the entity declaration on configuration level, in most cases I need no special code, but a syntax declaration for the process.
- my current "strangest finding" is that any program source code itself is just a serialized form of a hierarchy of algorithm nodes, theoretically they are quite replaceable, a C code interpreter is very much like a configuration file parser (or conversely: not only the types and other declarative things are self-contained in the system, but algorithms might be generated as an entity hierarchy, serialized into C code or runnable binary on the same system...)
Of course, these are only dreams, but well founded by my work experience and previous attempts, but also are surely too much for me to make them. Honestly: I have worked too much alone on this project, and need both technical consultancy and money to go on - I badly need a "Dutch uncle", and this is what you are quite famous for now. I presume there is a lot of "reinventing the wheel" in what I have (I just listened into your cs015 lecture, and it seems I have a quite parallel approach...), but please, spend some time with the project and give me some feedback on it.
Thank you very much
Lorand
Választ nem kaptam.