teratorn
11-21-2006, 03:56 PM
I know others have suggested scripting support be added to UR, and I would like to second those requests.
First I just want to say that I think UR *is* already very functional as-is. That said, I'm a programmer and I'm just itching to hack up all my crazy ideas for UR.
A lot of these things are not mainstream and would just bloat the app if added, but that's the beauty of extensibility - you allow people to fill their niche needs while keeping a tight reign on your core app. You get to *see* potential future features in action, as scripts, *before* you decide to implement them in the core. New or less sophisticated users aren't alienated because the core app is lean, easy to learn, and all the features make sense as a whole. And power users are happy because they can do whatever they want.
I would like to suggest Python as the script language of choice. It's *easy* to learn, yet sophisticated enough to do just about anything, and there is a plethora of third-party and open source modules available for free on the web.
I was thinking that if you just exposed the UR API/Object Model to .NET then you could script it using any .NET language, e.g. IronPython. I think this would increase the memory footprint of UR a lot more than just using Python, though.
But of course UR isn't written in C# so you would have to write a .NET wrapper around it. But you'll have to write a wrapper no matter what language you choose. Except maybe Lua since it integrates so easily with C/C++ already. (I'm not really a Lua expert, but that's my understanding)
Anyway, you guys know what you're doing, so I'm sure you'll make a good decision in the end.
One thing though, *please* don't handicap scripting by trying to implement some kind of restricted execution model. Scripts, especially for UR, *need* full access to the filesystem and to the network.
First I just want to say that I think UR *is* already very functional as-is. That said, I'm a programmer and I'm just itching to hack up all my crazy ideas for UR.
A lot of these things are not mainstream and would just bloat the app if added, but that's the beauty of extensibility - you allow people to fill their niche needs while keeping a tight reign on your core app. You get to *see* potential future features in action, as scripts, *before* you decide to implement them in the core. New or less sophisticated users aren't alienated because the core app is lean, easy to learn, and all the features make sense as a whole. And power users are happy because they can do whatever they want.
I would like to suggest Python as the script language of choice. It's *easy* to learn, yet sophisticated enough to do just about anything, and there is a plethora of third-party and open source modules available for free on the web.
I was thinking that if you just exposed the UR API/Object Model to .NET then you could script it using any .NET language, e.g. IronPython. I think this would increase the memory footprint of UR a lot more than just using Python, though.
But of course UR isn't written in C# so you would have to write a .NET wrapper around it. But you'll have to write a wrapper no matter what language you choose. Except maybe Lua since it integrates so easily with C/C++ already. (I'm not really a Lua expert, but that's my understanding)
Anyway, you guys know what you're doing, so I'm sure you'll make a good decision in the end.
One thing though, *please* don't handicap scripting by trying to implement some kind of restricted execution model. Scripts, especially for UR, *need* full access to the filesystem and to the network.