Slashdot Log In
De Icaza Responds on Mono and GNOME
Posted by
michael
on Wed Feb 06, 2002 01:49 PM
from the pipe-dream-or-visionary dept.
from the pipe-dream-or-visionary dept.
miguel writes: "Here is my reply to the various questions on Mono, the future of GNOME and the Register statements." Linux Today has a copy of the email as well.
This discussion has been archived.
No new comments can be posted.
De Icaza Responds on Mono and GNOME
|
Log In/Create an Account
| Top
| 625 comments
(Spill at 50!) | Index Only
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
|
2
The crux of his argument (Score:5, Insightful)
This is the reason having Mono at the heart of Gnome would be a good idea. Base it on the CLI and suddenly any language that is ".Net-enabled" is usable under Gnome.
It's about choice. Isn't that what Open Source is all about?
Re:The crux of his argument (Score:5, Insightful)
.NET is far from being the perfect solution.
Re:The crux of his argument (Score:5, Informative)
But there is a large subset that is. This subset is encapsulated in the Common Language Specification (CLS) which differentiates between:
* Consumer languages.
* Provider languages.
* Consumer/Provider languages.
You can find the details here:
here [microsoft.com]
Miguel
Re:The crux of his argument (Score:5, Insightful)
Programmer's Life (Score:4, Funny)
Wrong. Programmer's lives are exciting, as long as you like Computer Science and enjoy tweaking with the little bits, discovering new things. Now, if Miguel started writing Unix software thinking he would be rich, surrounded by girls and driving Romero's Ferrari, he's far beyond dumbness.
Re:Programmer's Life (Score:5, Insightful)
Writing about a programmer's life is pretty boring. The programmer might be enjoying himself, but to an external viewer he is only tapping at a keyboard.
miguel.
You're Not Surrounded by Girls? (Score:4, Funny)
Good response... (Score:5, Insightful)
Miguel has made many positive arguments for his prior statments. And thanks to the Register for obfuscating the variables.
Re:Good response... (Score:4, Funny)
Some of the donations and grants the FSF brings in need to go to a good *publicist*, instead of more coders and lawyers. Like it or not, RMS is a poster child for the Open Source and Free Software movements, but he needs some serious help with his image before all those shiny folks in suits who make IT purchasing decisions will even pay attention to him, or anyone associated with him. A good souless weasel PR guy will keep RMS from making kneejerk responses that piss off folks who might otherwise go along with him, and it will free Stallman's time up for more of the things he does do well. Everyone wins - the pointy haired bosses can interact with the brighty colored and non-threatening Stallman Interface, and the real geeks can get work done with the Command Line RMS.
-reemul
Great reply, but... (Score:5, Insightful)
One thing though. Miguel says:
This just strikes me as overly hopeful optimism to think that Microsoft is going to give up their hard fought and long defeneded applications barrier to entry.
Re:Actually, this is the way it is (Score:5, Insightful)
Unless that class inherits or calls proprietary library stuff that you don't have.
This is why I can't run most Java stuff on my Amiga. I have the Kaffe JVM, but no AWT. So I can run a program that says "hello world" and even Sun's Java compiler (written in Java) that comes with the JDK. But AWT or Swing apps are right out, because no one has implemented that stuff for my OS.
You're going to have the same problem running Microsoft Office on Linux. Your VM will work perfectly, but the app will want to use stuff that you don't have.
Re:Great reply, but... (Score:5, Interesting)
Yes, this is a key area where I think de Icaza has a problem. He's clearly planning on implementing Winforms (I checked on the Mono site) and those are not part of the ECMA C#/CLI/CLR spec. Microsoft will not permit those classes to be cloned - its already dropped strong hints about it.
An interesting thing to do would be to write a Java compiler (backend) for the CLR, and try to implement Swing or Eclipse in a Gnome environment...hmmmm. Of course, on the other hand I can just use one of the excellent Java runtimes for Linux, and get better performance. I can still use other languages through JNI (and DirectIO in JDK 1.4).
All that said though, competition is good. Perhaps .Net and Mono will do more to spur Sun to refine Java significantly further.
299,792,458 m/s...not just a good idea, its the law!
Alan Cox Says It Best (Score:5, Interesting)
> or ourselves. I want to be as compatible as
> possible with the APIs that were published by
> Microsoft.
Alan:
Be assured that the day they decide you are a nuisance the VM will acquire a patented neat feature that kills you off. Just ask the Samba people.
(from Alan's reply to Miguel's message)
Re:Alan Cox Says It Best (Score:4, Redundant)
Unfortunately, this is the future of proprietary software. Look around at any developing area.
Microsoft has patented the second generation Windows Media Format codecs. Real had patented its codecs. Apple holds exclusive licensing for Sorenson codecs used in Quicktime. So if you want to make or decode a decent video codec, you have to license a patent.
SAMBA is now also encumbered with patents with respect to user authentication. The next generation of Windows will contain this authentication, and the SAMBA team will be unable to make a functional work-alike. Too bad, that is the law.
Unless the Microsoft settlement has something to say about open licensing of patented formats, codecs, and authentication, making software to duplicate new Windows functionality, or providing file or print servers for Windows machines, will become impossible without licensing from Microsoft. You can expect that authentication of users under
Re:Alan Cox Says It Best (Score:5, Informative)
"There is the issue that we might not be able to keep up (right
now, we dont, as
are, well still underway). Also, theoretically there is the risk
of a given API being unimplementable on Unix.
Even if that is the case, we still win, because we would get
this nice programming environment, that althought might not end up
being 100%
improvement and would still help us move forward. So we can reuse
all the research and development done by Microsoft on these ideas,
and use as much as we can."
This applies just as much to being intentionally broken by Microsoft as it does to them simply outpacing Mono's development.
Microsoft has and will enforce .Net patents (Score:4, Informative)
Craig: "But look: we're a business, okay? We're in the business of licensing intellectual property. So if it turns out that in the future that business says, "Okay, we should license the patents to people who use that in order to be compensated for the development of intellectual property," maybe we'll do that. You're always welcome to come and ask us to license anything from sources to patents. But I mean, we are a business. We're not --
...
Craig: Well, at the end of the day, if you have a patent, you enforce the patent if it's valuable to you. And so I think that Microsoft and other people who have patents will ultimately decide to enforce those patents.
Brian: Are there any patents that apply or that will apply to implementers of .Net or Hailstorm?
Craig: I expect there certainly will be. I mean, the patent process takes a long time.
Those who fail to learn from history... (Score:3, Flamebait)
Over and over again, Miguel De Icaza has displayed the same sort of breathless excitement over Microsoft technologies that I'd expect to see from a newbie, not a developer of his caliber. It's extraordinarily short-sighted for him to believe that he'll be able to keep up with Microsoft. This isn't a matter of talent. Microsoft has shown, time and time again, that it has no problem locking out other vendors using API changes and whatever other means available.
Miguel seems to be ignoring the fact that Microsoft will very likely do everything it can to keep Mono uselessly lagging. They've embraced and extended every technology they've adopted, and even their own APIs shift constantly. I realize that the .NET Framework looks like a different approach, and Microsoft is acting like it's going to start playing nice. If it happens, it'd be a first for Microsoft. I personally have my doubts, and history backs me up. What a shame that a talented developer like Miguel doesn't know better than to trust them.
-zack
Re:Those who fail to learn from history... (Score:4, Informative)
To quote:
* What if we never can keep up?
There is the issue that we might not be able to keep up (right
now, we dont, as
are, well still underway). Also, theoretically there is the risk
of a given API being unimplementable on Unix.
Even if that is the case, we still win, because we would get
this nice programming environment, that althought might not end up
being 100%
improvement and would still help us move forward. So we can reuse
all the research and development done by Microsoft on these ideas,
and use as much as we can.
I hate to be a dick, but. (Score:5, Interesting)
Last time I felt that way, I dicovered Lisp. Java also fits the bill (and so does C++ with STL, BOOST and ACE.
Re:I hate to be a dick, but. (Score:5, Informative)
Of course, with Mono you get all that neat stuff while still being able to code in _whatever_ language(s) you want and have it work transparently and consistently.
Whatever language you like so long as its semantics and runtime behavior have been massaged to work with the CLR.
Really, the CLI/CLR is just like the Jave byte codes and JVM, except that CLR's is a bit less strict about security and in that the CLR's support for 'unmanaged' code allows for cleaner support of native machine code than does Java's JNI interface. It's a convenience thing, much as Visual C++'s helpful COM automation wizards are a convenience thing.
The biggest difference between Java and the .NET framework is that Java's bytecodes and VM are a bit more paranoid about things like security, and that Java is designed with portability as a first order concern. .NET code will probably never be as portable as Java, precisely because it is designed to make it super easy to interface with operating system level code. Java is designed to make it a pain to use any code that isn't itself portable.
CLR and so-called language independance (Score:5, Insightful)
One Runtime to Bind Them All [javalobby.org]
Some quotes:
The reality looks much darker instead. The CLR is not truly language-neutral, and it will ostensibly favor languages that look a lot like C#. Those not in this group will be severely bastardized, producing dialects which are really "C# with another syntax"; look at ISE's Eiffel# (or even Microsoft's own VB.NET and J#) for great examples. Programmers' choice will be limited to superficial features: whether to delimit their blocks with curly braces, Begin/End or parentheses. It's also worth notice that the CTS/CTS do not allow use of the full set of CLR features; for example, unsigned integers are supported by the CLR but not considered language-neutral, simply because many languages share Java's abomination for the signed/unsigned duality (this includes Microsoft's own VB) and there's no good solution for this issue.
-cut-
Playing with the
Re:CLR and so-called language independance (Score:4, Insightful)
As it is, this stupid editorial is just a case of the pot calling the kettle black. The only problems that Sun should have with CLR is that (1) it's by Microsoft and (2) Microsoft did a better job at beating Sun at their own game. Not that I like the CLR any beter than the JVM - they both blow chunks for dynamically-typed languages and for languages having anything different from simple class-based objects, but this editorial is just brain-dead.
Re:CLR and so-called language independance (Score:4, Interesting)
Yes, that's exactly what it is. I think you are misinterpreting the article [javalobby.org]. The author is trying to say that runtimes can only be optimized for one language, and that the .NET stuff will not be any better at running other languages than the JVM is.
I don't know if that is true or not, but don't try to pretend this article is saying that the JVM is better in some way. The only problems that the author has with the CLR is that (1) it is by Microsoft, and (2) Microsoft is (according to the author) lying about the CLR's capabilities to be cross-langauge.
-Mike
Great article! (Score:4, Interesting)
.NET is not perfect. The JVM is not perfect. But I strongly believe that they are a step in the right direction. For example, the current choice(?) on UNIX systems is to have C-compatible exports for libraries.
While
What would be really nice is using
Doesn't "Managed C++" allow for advanced C++ features that simply are not exported for use outside the codeblock? C# has "unsafe" blocks for its own bit-twiddling.
We're on the right track here. Let's not throw the baby out with the bathwater!
Advantages of C# over Java (Score:4, Interesting)
Seasoned industry programmers will notice that the above is very much like Java and the Java VM. They are right, the above is just like Java.
The CIL has one feature not found in Java though: it is byte code representation that is powerful enough to be used as a target for many languages: from C++, C, Fortran and Eiffel to Lisp and Haskell including things like Java, C#, JavaScript and Visual Basic in the mix.
But this is surely misleading? It's true that this doesn't exist at present, but there's nothing in theory to stop it being implemented (isn't Java sufficiently "powerful" for this to be done?)
If Java is capable of doing it, then why not work on making compilers for those languages to Java's bytecode instead of working with a new language?
Re:Advantages of C# over Java (Score:5, Informative)
Not true at all. Look at Apple's Cocoa [apple.com] framework, which allows you to write native Mac OS X applications in Java. Sun has no problem with that, because Mac OS X also includes the 100% compatible pure Java envrionment. Sun sued Microsoft not because MS added features, but because they deliberately introduced incompatibilities in the core Java classes.
Refreshing (Score:5, Insightful)
CLR and language neutrality (Score:5, Insightful)
Unfortunately, this statement is very close to marketing hype. A very good overview of why the language independence of the CLR is little more than a myth is given in this article [javalobby.org]. Despite the slight Java slant, the article is very factual and fairly objective.
It seems to me that Miguel is using this argument to justify his personal preferences for the CLR, while there are a number of other existing VMs providing similar functionality that could have been chosen instead. Many of them are far more mature than the CLR, and have far richer libraries available on top of them to boot.
Why CLR? (Score:5, Interesting)
So what is Microsoft aiming for? Probably two things:
- Kill Java. They need to kill it before it becomes too wide-spread. They have a really good shot at doing so given Java's performance problems [insert thousands of flames from Java developers here] and C#'s advanced features like better encapsulation (you