Yes, but you're forgetting we already have a perfectly good open C# - Mono. I really don't think it makes sense to start a new project in Java at this stage, because C# had the benefit of several years of experience with Java in designing it, and so fixes so many of Java's annoying flaws.
Interesting point. I should check that out some time.
Essentially, your situation is a poster child for anti-MI arguments. The usual suspect for a design like the one you've described is that the original author leaned on MI as a crutch that either prevented him from (or allowed him to avoid) learning better OO design practice. It's a catch 22. You need MI to mitigate the damage of a bad design most probably caused by reliance on MI.
"Once you start down the dark path [of Multiple Inheritance], forever will it dominate your destiny, consume you it will..." - Yoda, Star Wars I
Anyone who says "expressive and concise" is more important than "debug and maintain" needs to be run out of the industry on a rail, then tarred, feathered, and finally shot.
Alas, the sinister side of Program Language War rears its ugly head.
I actually appreciate that Java doesn't allow multiple inheritance in classes. It prevented me from going down the path of making some really bad design decisions. Just because something seems easier doesn't mean that it's a good choice. Code that works != flexible design.
One thing that people often don't realize, is that Java DOES allow multiple inheritance -- strictly for interfaces (which I also find quite useful).
I would dare say that multiple interfaces is simultaneously more flexible and clearly defined than multiple inheritance.
But my opinion might be suffering from never being able to use multiple inheritance in Java.
Exactly: Anything can be done -- the question is whether or not it's a good idea to do it.
Program language wars are a waste of time, often peppered with ignorant absolutist statements.
It's about using the right tool for the right job.
Java is about defined architecture, type safety, and running on multiple platforms etc. If you understand how to use these features and have a NEED to use them, then Java can be a powerful tool for you.
If you want to write device drivers or kernel stuff, then work in C/Assembly and write some good libraries. If you feel the need, you can load and link to them with Java.
...If so, it should by definition start with 2.0.
Yes, but you're forgetting we already have a perfectly good open C# - Mono. I really don't think it makes sense to start a new project in Java at this stage, because C# had the benefit of several years of experience with Java in designing it, and so fixes so many of Java's annoying flaws.
Interesting point. I should check that out some time.
Maybe you're using the wrong kind of GUI framework?
Essentially, your situation is a poster child for anti-MI arguments. The usual suspect for a design like the one you've described is that the original author leaned on MI as a crutch that either prevented him from (or allowed him to avoid) learning better OO design practice. It's a catch 22. You need MI to mitigate the damage of a bad design most probably caused by reliance on MI.
"Once you start down the dark path [of Multiple Inheritance], forever will it dominate your destiny, consume you it will..." - Yoda, Star Wars I
Anyone who says "expressive and concise" is more important than "debug and maintain" needs to be run out of the industry on a rail, then tarred, feathered, and finally shot.
Alas, the sinister side of Program Language War rears its ugly head.
I actually appreciate that Java doesn't allow multiple inheritance in classes. It prevented me from going down the path of making some really bad design decisions. Just because something seems easier doesn't mean that it's a good choice. Code that works != flexible design. One thing that people often don't realize, is that Java DOES allow multiple inheritance -- strictly for interfaces (which I also find quite useful).
I would dare say that multiple interfaces is simultaneously more flexible and clearly defined than multiple inheritance. But my opinion might be suffering from never being able to use multiple inheritance in Java.
(Assuming that MS is never open)
This could be another sense for why an Open Java might matter.
Program language wars are a waste of time, often peppered with ignorant absolutist statements.
It's about using the right tool for the right job.
Java is about defined architecture, type safety, and running on multiple platforms etc. If you understand how to use these features and have a NEED to use them, then Java can be a powerful tool for you.
If you want to write device drivers or kernel stuff, then work in C/Assembly and write some good libraries. If you feel the need, you can load and link to them with Java.