Andrew wrote:1) Mono isn't mature and stable yet, so it'd definitely be broken on my Ubuntu machine which doesn't even allow me to run Mono yet.
With the exception of the .NET framework 3, Mono is actually fairly mature. The shortcomings are (typically) well documented and easy to work around. In addition, I don't see why you wouldn't be able to use Mono on Ubuntu -- it's available in apt and I've not heard anything about it having issues from any developers on other projects of mine.
Andrew wrote:2) Is it a bug in our code or Mono? The Mono project is going to be like the Samba project. It's always going to be playing catch up. i.e. You'll implement a function in .NET not yet available in Mono.
I disagree fairly strongly. There will always be subtle differences, but the Mono project has shown that they've been able to keep up by focusing on building out one .NET framework version at a time. In addition, this is a server emulation project -- we're going to be playing catch-up faaaaaar more than the Mono project ever has to; they have to deal with incremental updates every year or two, we have to deal with it every patch.
Andrew wrote:3) A scripting language such as Python is mature and stable with examples of how to implement it in your C++ code.
I agree that Python is mature, but like Lua you have to build an explicit bridge everywhere you want to do cross-language calls. This adds up very quickly. I love Python, but I don't think that it's the right tool for the job here.
Andrew wrote:4) I don't believe that .NET is any faster then Python and it wouldn't make a difference if .NET is faster because all the important quest functions would most probably be written in C++ with the ability to use them in your Python script anyway. Not only this but quests aren't time critical.
Well, .NET is far faster than Python -- IronPython (Python hosted on .NET) alone is twice as fast, and it's significantly slower than something like C#. Also, the system I was proposing could go far beyond simple quest scripting and allow for building any modules in .NET. That said, I tend to agree that speed is a non-issue for most cases.
Andrew wrote:5) We need normal people who may only know how to edit a text file to be able to enter quest data. Asking these people to test their quest by recompiling them in a compiler is raising the bar of technical knowledge required to help contribute.
No need to ask them to touch a compiler -- the .NET framework exposes the compiler entirely at runtime. That way, people can just edit 'scripts' in C#/IronPython/VB/Boo/whatever, and the emulator can compile them at loadtime.
Andrew wrote:5.1) Not all people editing scripts will be programmers, they might just be making something as simple as a spelling correction with no idea what the surrounding code means.
This isn't an argument for any particular approach, really. If you feel Python is the proper language for this, then that's an argument for IronPython as much as CPython. Language and framework aren't inherently connected.
Andrew wrote:I worry about this because:
1 - I think it will have a dramatic effect on contributions we receive on quest data.
2 - I will no longer be able to run the server on my Ubuntu machine given what I have said above.
I think that there are ways to manage this such that it affects neither code contribution nor cross-platform capability in a negative way.
- Daeken