SpliFF wrote:
That's the theory, not the practice. What happens in practice is developers use Windows-only classes and libraries that cannot be ported to Mono for legal (patents) or technical reasons. Mono is considered by many linux users/developers to be a bloated dependency with inherent portability and legal issues. Many people mistakenly believe C# is an open standard but that is only true of versions up to 2.0 (latest is 5.0).
Generally, people use Windows classes when they're working with GUI's. Considering we're discussing AI development, I don't think that would be much of a problem.
SpliFF wrote:
We already had the option to use Python through an actual Python interface. Nobody used it.
Although I do not use Python other than embedding it as an Iron Python debug console in applications I develop, I do understand its merits. Maybe it's not popular as an AI development language for Spring. But my point was more that allowing .NET opens up the possibility for many languages. C#, C++, Visual Basic, Iron Python, Iron Ruby, F#, J# or whatever is possible on the CLR under Mono. That knocks out a lot of birds with one stone since they all compile to CIL. In favor of the JVM, we could do Java, Groovy, Scala etc.
SpliFF wrote:
When you say "capabilities" are you refering to the language or the available class libraries? Only the first is really portable (even then Mono only supports up to version 4.0) which is why Mono fails to run about 70% of .NET code despite over 10 years of development.
Both. I prefer the syntax of C# and Java over other languages. And I like the class libraries of the CLR over the ones available in the JVM.
SpliFF wrote:
Teaching people .NET is like weaning babies on mashed banana. One of these days you're still going to have to learn how to eat solid food.
That's judgmental. I work in IT, I develop line of business applications for our small-medium sized company. I use C# with .NET. For my line of work, a high level language on a well supported platform is more than enough to get by. And judging by the number of people that like writing Spring AI's with Java, it's enough to get by here too. If you want more people to become active with Spring as AI developers, then making it possible to write AI's in a high level managed language will make it much easier. Not everyone should have to be familiar with C++.
While I respect the work RMS has done, he's so entrenched in his viewpoints that I don't agree with all of it. While I understand why he and the Linux community are anti-Microsoft, that doesn't mean we can't take advantage of the parts that are not patent encumbered. And Mono doesn't have any of those issues that I'm aware of, so I feel like there shouldn't be a problem using it.
Petah wrote:
I have asked. While I do agree that implementing it to his ideal implementation would be good, given that it currently is a defunct state and has been that way for a long time, I think it should have been forked until such a state that it is stable.
Agreed. Slow pre-pureint AI's are better than not functional AI's.
gajop wrote:
Blah.
It's not defunct, it works in most cases, just not when you have two of the same AI.
That's a pretty big limitation. What good is one AI playing against a human, even a smart one? And it's much easier to see how you're AI is reacting to its conditions by placing a bunch on the map and watching them run.
Is it really that difficult to revert? I'm not really familiar with how much of the interface has changed or how difficult it would be to roll back to the pre-pureint interface.
gajop wrote:
Really try to realize there are nearly no AI devs left and no engine dev is dealing with the AI side of Spring.
Perhaps the old adage "if you build it, they will come" is applicable?
Petah wrote:Please don't derail this topic.
It is about getting the Java AI interface back in working order, not about any C# interface.
I started the topic, perhaps I should have some say in what the topic is? Although I didn't mention C# in my original post, the intent of the post is "let's get a managed high level AI language working". Java or C# would fit the bill nicely.
If you want to move the C#/.NET discussion into a separate thread, I'm fine with that. But I believe they go hand in hand. Our issue is that Java is not working-so we need to decide on a plan of action. And before we entirely re-implement the Java interface to get it working again, we should be asking ourselves "Do we want Java, or .NET, or both?" so that we can plan accordingly.
I kind of view it as "well, my Windows computer has died and I need to upgrade my version of Office anyway. Should I go with Windows again, or a Mac, or Linux, or dual boot". I feel like metaphorically, we're at the same spot with the AI interface.