Iron Python Ide that you can embed in your project to enable scripting support
The primary objective of this project is to provide a minimal basic functional IronPython integration for scripting extensibility into your projects.
Most projects that enable scripting would simply suffice with just access to:
- A syntax highlighter.
- An API for common types of dialogs
- An Intellisense Provider
- A debugger:
- Console Access to the debugged code.
- A Variable Watcher.
- A Call Stack.
- A Visual Designer. Very low priority for me but still.
These things will be implemented in the same order.
Basically it aims to be same as VBA for your applications except that it is going to use IronPython!
Why make an embeddable IronPython IDE
The conventional wisdom nowadays is that DSLs should be created that are closest to the business logic as possible. I feel that it complicates the problem and nobody wins. The prime reason given for DSLs is that the end user will appreciate the effort. I disagree
- DSLs are great for configuration files but not for logic. Embedded DSLs although can carry the complete syntax over when the user feels he has hit a wall he may not feel comfortable asking help on online forums.
- The same is true for great programmers. They might not agree with your language design. But they are more than likely to agree with Python's.
- Time and effort required to make your own DSL is high. Designing the language might not be that difficult but making tools for it certainly is. Polishing your DSL IDE to perfection is hard.
- Python has been called "Executable Pseudocode" way too often. Your users will be able to focus on the algorithms.
- Python is a highly respected language. There is a general notion that only good programmers learn python. It also ranks high in Tiobe Index.
The reason the project is LGPL is because this depends highly on code written for SharpDevelop (The BEST ide for IronPython development). Also I can use other cool OSI Libraries as well. If you believe that this project can be MIT even if it uses GPLed Libraries
be sure to guide me :)