Posted by
michael
on 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.
The crux of his argument
by
Anonymous Coward
·
· Score: 5, Insightful
GNOME had always tried to have a good support for multiple programming languages, because we realize that no matter how much we loved C as a programming language, there was a large crowd of people out there that would like to use the GNOME libraries fromtheir favorite programming language, which might not necessarily be C.
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
by
entrox
·
· Score: 5, Insightful
Don't get too excited about this "any.NET enabled language" being able to drive GNOME. If you think about it, the number of possible languages is pretty dim (mostly C#). Why that? Because.NET must handle common interfaces across those languages. If I use a more exotic language with features not found in others (like multiple dispatch, funky lambda-lists or closures in Common Lisp) I don't think I'll be able to export Interfaces using these features. As those happen to be 'natural' to these languages, I'd have to limit myself in how I can write my applications/libraries.
.NET is far from being the perfect solution.
-- --
The plural of 'anecdote' is not 'data'.
Re:The crux of his argument
by
plague3106
·
· Score: 5, Insightful
Which was exactly why MS 'broke' VB6. Some parts of the language needed overhaul to be CLS compliant. I imagine other languages will need the same kind of overhaul. And that might not be such a bad thing. VB is a much cleaner and nicer language thanks to the overhaul (although there are still things i don't like, and i would still stick with C).
Re:The crux of his argument
by
smack.addict
·
· Score: 3, Insightful
Nevertheless, we already have this--the Java VM and Java language specification. Many languages now compile to Java byte code and can be written to use Java libraries.
It turns out doing this is really hard. The CLS does nothing new. It is just the way Microsoft is marketing it. In the end, it is not really a good thing for anyone but operating systems developers... most companies do not like a proliferation of languages running around anyways and the migration to a new language is fairly painful.
Good response...
by
Nijika
·
· Score: 5, Insightful
Sorry, but RMS tends to fly off the handle any time he even gets a whiff of something non GNU. So do we all here it seems. I'm tired of hearing it from the community because it's starting to hold us back.
Miguel has made many positive arguments for his prior statments. And thanks to the Register for obfuscating the variables.
Linux is a copy of a proprietary OS, Unix, which was invented by a monopolistic company, AT&T. Miguel pointed this out in the email, if you actually read it. Most free software has been free re-implementations of closed software or technologies.
Great reply, but...
by
mjh
·
· Score: 5, Insightful
Reading Miguel's response makes me better understand why it is that he's so enthusiastic about the.NET framework (as he calls it).
One thing though. Miguel says:
So when you copy your binary from Windows that was compiled with the Visual Studio.NET and run it on your Unix platform, it will just integrate nicely with your GNOME desktop.
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.
-- Key to financial independence: Spend less than you earn. Save and invest the difference. Do it for a long time.
Linux desktops do not copy the MS desktop, in as much as all desktops follow the same basic pattern. Which is why Apple sued and lost when they complained that MS stole their 'look and feel'.
The biggest problem with.NET is that it is a MS initiative and controlled at its most basic level's by MS. Anyone who thinks they can safely develop a project under it without fear that MS will change the APIs the instant they actually start competing at some level is an idiot.
And therein lies the rub of any development using MS tools. Undocumented, incompatible changes to the underlying APIs at MS's whims for MS's gain.
Re:Programmer's Life
by
miguel
·
· Score: 5, Insightful
I guess you miss-understood.
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.
CLR and so-called language independance
by
ChrisRijk
·
· Score: 5, Insightful
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.NET SDK, the cross-language support looks impressive, but the illusion holds true only until realizing that all languages in the mix are virtually identical. Microsoft has actually invented the concept of skinnable language: changing a language's most superficial aspects, and claiming the result to be a new language. There is only One True Language that is C#, and "skins" offered by Microsoft and third parties. Just like in GUIs, these skins will alter the system's look and feel, add a few features, but never compete with a fully new toolkit.
Re:CLR and so-called language independance
by
frank_adrian314159
·
· Score: 4, Insightful
It's a sad thing that the JVM also sucks for non-Java-like languages. One of the points that they make is that languages like Lisp and Smalltalk suck on the CLR. However the same issues are present in the JVM (Kawa's bowdlerized Scheme implementation notwithstanding). And it's not like Sun hasn't been aware of this shortcoming either (With people like Guy Steele and Dick Gabriel on their research payroll, how could they not be aware?). If they had listened to people outside the Java community that wanted a better (read MORE UNIVERSAL) VM, they might had had a moral leg on which to stand.
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.
-- That is all.
Re:I hate to be a dick, but.
by
tommck
·
· Score: 3, Insightful
Yeah... that one really irked me. I'm older than Miguel is, and (shrugs his asbestos suit on...) I think this remark just demonstrates a serious lack of proper experience with C++.
T
-- ----
It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
Free platform from non-free roots
by
Malc
·
· Score: 2, Insightful
I particularly liked his comment about Linux coming from AT&T's non-free environment. He seems to imply that the.NET framework is to the future what AT&T UNIX is to the present.
Glad to see some clarification
by
I_redwolf
·
· Score: 4, Insightful
I have two things I would like to point out to you. Actually after preview it's alot of things.
So when you copy your binary from Windows that was compiled with the Visual Studio.NET and run it on your Unix platform, it will just integrate nicely with your GNOME desktop.
How exactly do you plan on doing that, as I'm aware of, at least right now. Microsoft hasn't submitted a full spec to the ECMA. Again; I will mention that Microsoft has never done something like this in the past; they've always blocked people out.
Your ideas on writing pieces of code in different languages is agreeable except in this case. Writing chunks of programs or pieces of code vital to the overall program in a different language which may or may not work to spec is just asking for trouble. (IE: using asm for sound routines etc etc many examples)
The.NET Framework stands on it's own feet, and developers in the Windows world love it....... We are witnessing the creating and deployment of a new standard...
A standard that we will have to fight to operate with in the long run. Instead of unix camp supporting those ideals we should be supporting things like java or creating or own stuff. Just because windows developers love it doesn't mean it's not java with a couple of addons. If it was wildly different in any manner I would agree that we should be looking to use it; however this is not the case. A standard already exists and that standard is java
The only restriction is that all of our work has to be free software. But other than that, I am ready to take money from anyone or listen to any kind of proposals for making this happen
We all know nothing involving money comes without a price. Don't blind yourself to that. If someone gives you money, they want something. For Microsoft it'd be whatever it took to end the free software movement; period. Try not to be a pawn in their game, try not to play the game period.
Your comment that follows above italicized voids most of what you said earlier regarding inteoperability.
I sincerely think that you need to assess what your true goal is. This isn't nirvana, this isn't a place where you can walk into the middle of the street and not get hit by a car. This is a cruel world, I fear your intentions are good and your heart and mindset is in the right place but don't be fooled, Microsoft and others make this a very cruel industry. There are certain things that you can and can't do and currently they set the rules, this is what we are trying to break so that we don't have to worry about if a standard is submitted and we base our code on said standard that it will work across the board. Building upon their standards which do nothing to help that only helps them.
Thanks for your clarification it did clear up a couple of points though.
Miguel's Comments
by
John+Kelvie
·
· Score: 5, Insightful
1) I thought Miguel's arguments for why he's getting behind the.NET Framework(the CLI and CLR to be specific) were excellent. I have read much about the Mono project since the announcement of its inception, but this is by far the best explication I have seen. If he hasn't made me a believer, he has at least made me very curious.
2) As an active Java developer, I think that this may very well be the BEST thing someone could do to help Java. The directions Microsoft are going in with.NET to me seem like the obvious directions(licensing as a standard to ECMA, support for multiple languages, etc.) that Java should be going towards, but, for whatever reason, is not. I think.NET(and Mono) if they pick up steam will give sun the kick in the ass they need to get moving on some of this stuff that they are not.
I personally think the main reason Sun has not further opened Java up is because they have not perceived the need to. They are doing some calculus in their head to make it as open as they need to gain developers from Redmond, but still try to hold onto as much as possible of it for themselves.
3) My largest concern with this, and I didn't notice Miguel addressing it there or in the followups, is the patent issue. My worst fear is everything would go incredibly well with mono: diverse compilers, robust libraries, etc. and we would all start to build code around it, and then about 5 years down the line Microsoft whips out a patent and demands royalties for all the labor that we have done under the illusion that it would be free.
I would love to see Miguel address this concern. I cannot speak for others, but I would be a long way to considering getting involved with Mono(whether it mean using their tools to develop, or even contributing to the developmen of libraries, languages, etc.) if I felt better about these things.
Re:I hate to be a dick, but.
by
tommck
·
· Score: 3, Insightful
I understand (and anticipated) that people would think this is Flamebait, but being older than he is, and having clearly more experience in C++ than he does, I do not have problems with low-level calls or memory leaks or any of the things that he insuates are problems of an archaic language.
Running into those problems frequently is only a sign of poor design and poor coding, not a language flaw.
T
-- ----
It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
Alan Cox 1 Miguel 0
by
praedor
·
· Score: 5, Insightful
Sorry, even though Miguel does a good job of going into an indepth "answer", Alan Cox takes all the air out of the sail.
Java is NOT broken or lacking because it is inferior. If it is lacking anything, it is because no one has gone the one step further and fixed it. Do THAT instead of rebuilding from M$-poopie.
Finally, the simple statement by Alan that as soon as M$ decides they're a pain in the ass, poof, there goes the VM into patented special-feature land (see kerberos for a similar f*ckjob) and no.NET viralware will run via mono. Add this to the FACT that the predominant C# compiler in use will be the M$ version. De facto factamundo. The M$ version will be "special" while the free variants will be broken. Just like the PROPER implementation of java (non-M$) was "broken" with respect to the illegal perversions that M$ inflicted on it (and thus we have C#).
M$ is not changing its tune on whit. This is NOT a gift to the developer community. It is NOTHING but a means of continuing lockin (and conversely, lockout) and moola into Gates pocket. Nothing more, nothing less. It may be a nice way to build stuff at some future time for linux but it is NOT a means of being able to run some.NET windoze binary on linux (never happen except accidentally because the code was simple enough not to include "broken" M$-only freakishness). You will find that most of the important stuff will not run. Developers will STILL not make linux-friendly stuff because the bulk of the market is in M$-doze-land and they can run the broken/perverted.NET M$_VM-only stuff.
Stone cold fact. Sing the praises of mono for having the POTENTIAL of providing a nice development environment for linux coders (though unnecessary if they'd instead focus on the correct path of Java) but don't delude yourselves that this will mean windoze binaries working on linux.
-- In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.
Re:Alan Cox 1 Miguel 0
by
ink
·
· Score: 5, Insightful
Java is NOT broken or lacking because it is inferior. If it is lacking anything, it is because no one has gone the one step further and fixed it. Do THAT instead of rebuilding from M$-poopie.
Actually, Java is broken when it comes to multiple language bindings. Java (the language) was written with Java (the virutal machine) and they are designed to work hand-in-hand. It's easy for you to sit there and complain that someone should be re-coding Java so that it has Perl, Eiffel, Haskel, Visual Basic, and any other language's bindings; it's quite another for that to be done.
All this is very different from the Java approach, "use my language or die". Only three years ago, Scott McNealy wrote "Think Java. Write new applications in Java. Rewrite legacy apps with Java. Don't upgrade or downgrade. Sidegrade instead to a Java desktop device... I don't understand why anybody would be programming in anything other than Java" (in Open Finance, a Sun publication, Spring 1997). I'm not sure anyone would still dare speak like that today..NET recognizes that the world is multi-lingual, especially the world of component-based development, and that the duty of a component model is to help interoperability, not force a language corset onto everyone.
Most of the criticisms of Mono stem from those who misunderstand dotNet and Mono (you included). Mono is not trying to integrate services with Microsoft's dotNet services, they are trying to write a good component model. If Microsoft decides to change the internals of their dotNet implementations such that it "breaks" compatibility with Mono, then we've still lost nothing. Do you understand now? This isn't the "Samba problem" re-hashed.
-- The wheel is turning, but the hamster is dead.
A Rational Approach
by
ChaoticCoyote
·
· Score: 4, Insightful
Miguel de Icaza has committed two sins against the "spirit" of "free" software:
He doesn't hate Microsoft.
He wants to make money.
As I understand it, Miguel is looking at the CLR part of.NET as a productivity tool; he believes that Ximian developers will create applications faster and more reliably using a clone of Microsoft's technology. And he is very valid in pointing out that cloning.NET will follow a long tradition of "freeing" proprietary technologies. If GNU can clone C, C++, Java, Word, and what-not, why complain about cloning the.NET CLR and C#?
Miguel is not forcing anything on anyone; Gnome and GNU will not be dependent on Mono, and Mono only imposes on those who wish to use it. So long as Miguel protects existing free code from proprietary contamination, I see nothing wrong with what he's doing.
As to whether he can succeed -- well, I think he's bitten off more than Ximian can chew, in that implementing certain pieces of the.NET CLR and VM is unlikely to attract hordes of Windows-based developers, nor is it going to offer the functionality that will allow cross-platform development. Perhaps the only "evil" involved here is that Miguel's efforts may legitimize Microsoft's monopoly as a false example of the "openness" the monster of Redmond. We'll need to keep an eye on that.
In the end, Mono will sink or swim based on its merits; if developers don't like Mono, they won't develop for it, and it will go the way of the dodo. On the other hand, if Mono works, it could be a Very Good Thing by making application development easier for Linux. Time will tell.
Re:Advantages of C# over Java
by
seebs
·
· Score: 3, Insightful
You're right. If Sun had wanted Microsoft to have complete control over a large and proprietary market segment of incompatible Java code, allowing them to blame Sun for incompatibilities introduced by Microsoft, they could have allowed this.
I see no advantage in allowing standards to be suborned like this.
-- My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
Re:Embrace, Extend, and Endorse
by
TheAwfulTruth
·
· Score: 2, Insightful
The entire universe of computers (And all other engineering worlds) works on "Embrace and extend" You can't blanket everything as bad because of it. Sometimes it's bad but usually it's good. Labeling something "Embrace and extend" is not by default a bad thing. Quite the opposite. Aren't KDE and Gnome embracing and extending the xerox/apple/ms desktop metaphore?
Java may have been a nice idea but it's implementation and it's owner were terrible. So move aside sun, let someone else try...
-- Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
Re:Can run any language, as long as...
by
mmacdona86
·
· Score: 2, Insightful
You betray a very limited understanding of the problem. The CLR (like the JVM) makes a number of assumptions about the nature of programs running upon it that a CPU can never make--things like the way stack frames are created, exceptions are propagated, methods are dispatched. If the language is not designed with the same assumptions, it can not run on the CLR (of course, if you are going to give up all efficiency, you could write another VM in C# and target the lanugage at that). All the languages that the CLR supports--even MS languages like VB--have been re-designed to work with the CLR.
Marching down a dangerous path here.
by
Col_Panic
·
· Score: 4, Insightful
There are many things that greatly disturb me about Miguel's casual assertion that "Mono is just a free implementation that happens to implement a technology that was built by a proprietary company." His assertion to me was that "I will be writing some more free software using.NET, because I can produce more code in less time." This statement itself is completely baffling to me. If the point of the GNOME project was to "write more software in less time" and to hell with where the stuff came from and under what license, it would have never started in the first place. The reasons stated by Mr. de Icaza that GNOME was started had to do with the problems with the QT licensing with KDE, which was and still remains a much more complete and usable system.
People like me stuck with GNOME (I can remember a disasterous attempt to use way not ready for prime time 1.0 release on a college campus) because we believed in the GNU approach that GNOME was taking. Now that Mr. de Icaza is working at a high paid job, apparently none of this matters anymore, he has come to embrace the "whatever gets it done" mindset.
But would some one explain to me how a complete reverse engineering of a MicroSoft compiler and all the other bits and pieces of.Net is possibly "getting more done in less time." Not to meantion what is going to happen when MicroSoft says "no you can't do that" and sets out to put and end to it, and I think from the thier track record you can count on it. The only reason they haven't done so yet is that none of this has become a "standard" yet and Miguel seems perfectly content with helping them make it a "standard".
The notion that we should roll over and accept the fact of a.Net world flies in the face of everything the GNOME project asserted from the very beginning. They told us that we didn't have to accept proprietary standards, we could make our own. Now we are being told that it is OK to accept a "standard" that just happens to come from a proprietary company, in this case the worst of them, MicroSoft, because "I like it better" and "it will help me make stuff faster".
Well this is all just absurd. No matter how calmly he tries to assure us that everything will be OK, I think that anyone that hasn't been living in a cave knows what getting into bed in any way with MicroSoft will end up doing to you. You pick up a snake, you are going to be bitten. The only possible reason I could see for wanting to do this is for Ximian to slip in some non-free parts of Mono they want you buy (but it's OK cause it is just to connect to all the.Net stuff you already have from MicroSoft) the same way they did with evolution.
One piddly point...that becomes a rant
by
dasmegabyte
·
· Score: 5, Insightful
Miguel, in an otherwise well thought out and well constructed rebuttal to TSH (Typical Stallman Hype), makes one comment I take great exception to...something to the effect of "CIL is Microsoft picking up where Java left off."
Excuse me, when the hell did Sun Microsystems "leave off"? Version 1.4 is coming out the door at any time, with such nice features as buffers and extensive regular expression support, and all of a sudden they've "left off"? Java will run on nearly every system ever created and in all sorts of unusual situations and suddenly Sun dropped the ball?
Look, Java is effing huge. People do write applications in it, and I'm not talking about ticker applets. Today's machines can run Sun's graphics engine as well as they can run GTK, and it's available underneath any OS. Any "work" that Microsoft is doing on the CIL has already been done by Sun, with the exception that MS' byte code executes faster and has better UI support.
But is there any wonder? An implementation of the CIL requires a lot of work on the part of the window management driver authors, meaning there's plenty of room for tuning. An implementation of Swing requires very little -- implement a fiew basic AWT classes and Swing, which is "100% Pure Java," will work atop the older class. Meaning that there has to be a lot more abstract code in Java. Meaning you can be damn sure your application looks the same everywhere and there won't be any glitches due to "factionalied" implementations.
Of course, most of the development world is still coping with the idea that different platforms require different code (hence the laundry lists inside Makefiles). The Java paradigm won't let you do that. It says, "write that shit once and deal with the slow down, it shouldn't be a dealbreaker for cross platform code." It shouldn't be. But it is. Many development houses can't get over this. Hell, I mentioned to our IT guy that I was doing our mailserver in java and he thought I meant an applet, scoffing "Write once, run nowhere."
CIL is an attempt to get under the skin of this, but it's a flawed attempt. Jesus, all the development time and heartache going into the optimization of x-platform windowing "frameworks" and "toolkits" where there already is one seems headstrong. Actually, it seems idiotic, and it's why I seethe whenever I hear somebody drop.NET like it's a great new IDEA.
"But C sharp has improved garabage collection, language integration and runs anywhere." Yeah, that's Java for you. "But.NET allows you to compile ASP code." JSP. "Tighter integration with IIS allows you to better utilize ISAPI." Servlets. "Serialization and persistance." EJB.
Jesus, why isn't Sun mopping the floor with these idiots???
Re:One piddly point...that becomes a rant
by
cgleba
·
· Score: 5, Insightful
For the same reason that DEC's Alpha is not mopping the procesor floor today.
Hell, DEC had 300Mhz *64-bit* Alphas out when P90s were "the bomb" and by the time Intel broke the 100Mhz barrier DEC was spitting out 500Mhz *64 bit* Alphas. Alphas were so friggn fast that they could emulate an x86 and still beat the true x86s.
Roughly 10 years later Intel decided to jump into the 64-bit world with the Itanium and the now defunct no-longer-developed Alpha line still beats the hell out of them. Yet DEC is gone and the Alpha has been officially scrapped.
Roughly 10 years after Sun, MS decides to get into the VM-language game. Currently they have nothing other then vaporware, some specs, alpha code and lots of hype yet Sun's been in the game for a long time. But yet people are buying books and training to be.NET developers like it's the best thing since sliced bread. Java versus.NET is like DEC versus Intel. DEC was in the game a lot earlier, was more mature at it and had perhaps even perfected the 64-bit game. ..in the end, though, Intel's Itanium wins because DEC was kicked out of the game by market share, propoganda, marketing, hype and poor business decisions.
Anyone who has been in the computer industry for any length of time KNOWS that the technologically superior or more mature product rarely wins. The person who screams the loudest about their product wins.
Let's hope the same doesn't happen with Java.
Productivity over politics
by
GCP
·
· Score: 5, Insightful
Miguel's experience with.Net seems to mirror my own. It's a very productive environment that's a blast to work in.
Have you ever gotten used to working in a Unix/Linux shell then had to jump over to Windows and do something on the command line in *DOS*? Know what that feels like, that helpless feeling of losing all your magical powers?
That's what it feels like to work in.Net on Windows, then having to do some work in any current GUI app dev system on Linux.
If RMS thinks he or his minions can design a better architecture than.Net, let him prove it, but don't suggest that we have to learn to live with less for political reasons.
-- "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
Those who do not study history, will repeat it...
by
justin+sane
·
· Score: 2, Insightful
Miguel is navigating dangerous waters that have wrecked other ships befoe him but he thinks himself a better captain. I have news for him: they were better than he thinks. As I see it, all of Miguel's arguments are sound and lull one into actually wanting to believe lions will lie down with lambs. Who can fault peace, love, and understanding after all? However, the real problem is not his logic but an underlying naieve assumption: that Microsoft has changed and will allow.Net to be cross platform when deployment volume becomes significant. When.Net starts to gain significant market share, they will do what they always do, add patent-protected feature that kills the cross-platform nature of their framework. It is in fact it is a deviously clever strategy--worthy of a Borgia Prince coached by Machiavelli himself. Give hope and encouragement to a large component of the open source developers which are givng Microsoft heartburn and let them devote an ever larger slice of their creative bandwidth and energy both feuding internally and developing to adopt.Net. Encourage them to do it--even help them walk deep into it and tie all their code to it inextricably. Allow.Net to change their architecture, setting the hook deeper. Then after the distraction has divided the open source community long enough and defocused Gnome, Mono and ensnared other open source projects, drop in a patented-feature that kills its cross-platform nature. They did it with Kerberos, then Samba, and lately NetApp using CIFS. I have absolutely no doubt they have not had a change of heart of strategy and will do it to Mono/.Net. It is only a matter of time. Voila--Victory Microsoft style. Miguel and Mono will be roadkill.
Programmer migration
by
kievit
·
· Score: 2, Insightful
From Miguel's e-mail:
Despite my love for Mono as a tool for writing GNOME applications and giving developers new tools to write code in less time, there is an extra advantage in having a free implementation of the.NET Framework for Unix:
Windows developers know how to write code for it.
Lets make it easy to bring developers from the Windows world into our platform.
...
It can also work the other way round. A programmer wants to work in the best or most convenient programming environment. You (Mono developer) must be damn sure that your implementation of the.NET Framework is at least as attractive as the Microsoft's; otherwise the linux community might loose programmers via this route. But Mono will have less features of.NET implemented, or at least much later than MS; that has bad consequences for the appreciation of the programming environment. I'm afraid this means, in terms of the recent BCG study, that you will keep the believers and the fun/adventure seekers, but you will loose the skill enhancers and the professionals.
What i like....
by
SquierStrat
·
· Score: 2, Insightful
What i like about this, is that in the future it could well mean that i could use my windows application in linux, NOT via wine, simply because they are.NET based. This would save alot of hassle for me, because Windows crashes at a pathetically high rate, yet I have to use it!
Then,games...should games ever begin to use.NET (although, it wouldn't make much sense to most developer why they should) we'd get automatic cross-platform games...something most hard-core gamers would just love!
Bad thing: should Microsoft ever decide they don't like Mono...well the API will somehow become so that Mono can't reimplement it.
-- Derek Greene
I feel better now...
by
Eric+Damron
·
· Score: 2, Insightful
Like a lot of people, when I first read that GNOME was going to embrace a Microsoft technology, I was outraged.
The more I read, however, the more it makes sense. If the bytecode is truly portable this could produce an explosion of industrial quality programs that will run on Linux. This could potentially remove one barrier that is slowing Linux's growth as a viable mainstream desktop operating system. One has got to wonder what Microsoft's strategy is to thwart this.
So, I think we should proceed and implement Mono while keeping one eye open for that giant tube of Microsoft Vaseline.
--
The race isn't always to the swift... but that's the way to bet!
Last week I had an argument on the 'Linus does not scale' story with some dude whose entire contribution to suggestions on how to improve the management of the Linux kernel development process was to yell 'he can do whatever the fuck he wants, it's his kernel'.
Now that same argument, applied to de Icaza applies perfectly. Mono is not going to be "bound" in any way to GNOME, that much is fact. So the core product itself remains free. But more importantly, Miguel has to answer to a board of directors, whereas Linus can do (or not do) whatever he wants. They provide funding. They call the shots. They agreed to Ximian funding of Mono. How is anyone (especially RMS) entitled to an opinion here?
Regardless of RMS's embrace and extend FUD about everything being GNU (I bet very few people see it that way, but if it quacks like a duck...), he has absolutely no say about anything Miguel does, period. His argument of "Miguel better answer to the community" can be cleanly compiled to "explain this shit to me, boy".
Oh, and BTW, I'm surprised nobody has mentioned this small detail: RMS was turned down from the GNOME board of directors in November of last year. From the precedent of previous flame wars between RMS and various other people, who can say this is not simply his way of giving GNOME a bad time?
And finally, let's face it: Anything that has a relationship (remote as it may be) with Microsoft is immediately turned into an argument about "giving into the dark side" and "fight against the evil empire". That sure gives way to very constructive discussion. Most of the posts here have either tried to denounce Miguel as a traitor or simply nit-picked his reasons for doing what he's doing. Very nice.
And to Miguel: Dile a RMS que encamine sus pasos a la progenitora de sus dias y la salude de tu parte =)
Go ahead and mod me down now.
This... does not compute
by
alext
·
· Score: 2, Insightful
Lots of insightful comments, but no one's actually picked out the yawning chasm of a non sequitur in the Mono programme:
If you like some of the Dotnet features, you have to clone the Dotnet Framework
I might like my mother, but I'm not about to clone her so I'll someone to marry in a few years - I know that her virtues can be found in other forms.
For example, we could develop a new CIL that was based on Scheme, but which could support programs originally written in Java syntax. This might be a better language superset - certainly many early LISP developers intended it to be an intermediate language, so the parens were always optional in essence.
Consequently, the only possible justification for cloning the Dotnet Framework is that MS tools will facilitate development of Mono apps, and that (equivalently) Dotnet apps will port to Mono. And on this point, it seems the crowd has spoken with one voice - it just ain't gonna happen.
Software Engineering Implications of the CLI
by
hackus
·
· Score: 2, Insightful
I am not exactly, totally enthusiastic about this idea of being able to use ANY language for a given programming project or combination thereof.
I have these reasons, personally, as a matter of observation in the software engineering of large complicated systems.
But I would like to make some observations:
1) The US Military in the early 80's and 90's had enourmous problems with private sector bids and implementation, of software in defense systems.
Namely, every vendor delivered a portion of the system in a different language. Some languages were specifically invented to deliver the final product.
These systems were large and complex, and non trivial engineering problems developed between vendors who needed to integrate thier combined efforts to deliver the product.
2) As systems were delivered the cost too maintain them was very high due to the fact there was no common reference for the software implementation.
What I mean by this is, if you have a flight control system, or launch control system, and it has a bug or engineering issue. It is very difficult to see exactly what the problem is if it incorporates or was delivered with 8 different computer grammars.
3) These systems had artificially short life spans due to the fact they could not be easily upgraded. That is too say, for example, the above flight control system coulnd't be upgraded because the target language(s) could not be reimplemented on new hardware.
My point about MONO and CLI?
Which is:
1) If we accept the historical data on building complicated pieces of software, we can reduce the costs of a implementation if it is reduced to one language or computer grammar to build its entire scope.
The military's solution to this was to produce key critical compenents of a defense system project using one reference specification. The computer grammar they picked was called ADA.
I question if the CLI is actually a good idea in a concept that allows or permits multiple language platforms to cooperate, if the goal is to produce software that is easy to use, is of low defects and is cost effective.
Historically the military with budgets far beyond anything commercially accesible couldn't do it and produce quality defense systems.
2) If the CLI provides a capability to produce a GNOME vision of support for multiple language platforms, given historic research in the software engineering areas, CLI suggests that anything built with a.Net architecture with a CLI as envisioned by Microsoft should produce software with unessacarily high engineering requirements than a single language platform.
3) Considering the fact that such a system would produce diverse computer grammars in any authors favorite language, for contributing authors, a future.Net MONO vision for a Linux app would quite possible require COBOL, C, Java, PERL, FORTRAN etc programmers to cooperate in building a new desktop app or feature.
If we accept that historic software engineering suggests multiple computer grammars result in systems that:
1) Require a very high engineering cost.
2) Quality of the software suffers because fewer individuals can access the entire code base to make corrections.
Personally, in IMHO organizational scalability and human productivity issues in building this sort of software are problems with N different grammars being used to build a single piece of software.
Therefore, I believe CLI is really not a positive addition to an Open Source Project.
-hack
-- Got Geometrodynamics? Awe, too hard to figure out? Too bad.
Re:Actually, this is the way it is
by
Sloppy
·
· Score: 5, Insightful
Any compiled class written in Java can run in any environment with a JVM.
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.
-- As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
Will MS screw this?
by
IamTheRealMike
·
· Score: 4, Insightful
Bet on it. It doesn't have to be through patents, or embrace-and-extend, or any of the techniques they've used in the past. It might be, but for all we know they could just come up with a new way of fiddling things.
Look - what is Microsoft? It is a big company, one which is in a serious crisis right now - it's main revenue streams are drying up in the form of slow Office/Windows XP sales (well, slow compared to what they need to be). Hence Hailstorm, which is a big part of.NET
So - consider that Linux is the first real competition MS has had on the desktop/server market for years (forget apple, they have survived by selling to a niche, mainly artists, not business/home). Now consider that they are desperate for cash, lots of it.
So, considering all that, how likely is it that MS will invest millions into a new platform for Windows, and then allow it's primary competitor to make it about a zillion times easier to port code from Win32 to Linux? Not very is the answer. Remember this - Microsoft HATE Linux: their corporate leaders see open source as "wrong" etc, and of course Linux is already good as a server and making headway on the desktop, so how do they respond to this threat?
Seems obvious - they need.NET, but what they don't need is to be giving their competitors a leg up by developing an expensive technology. They'll try and keep.NET Win32 only, and they won't have to try hard. Yes, yes, we all know about the ECMA submissions, but lets face it: There are standards, and there are standards. C#, CLI etc. will be de-facto standards soon, but that doesn't make them anymore acceptable, regardless of whether they've been rubber-stamped by ECMA or not.
Having said all that, you've got to give Miguel respect: he knows good technology when he sees it and isn't afraid of politics. I love some of Microsofts software, I just don't love the company. Problem is, in cases like.NET they are inextricably linked.
.NET is great - but I wouldn't touch it with a barge pole. That's like walking right into the lions den because the lion is guarding a great new toy that you want, and saying the lions reformed and won't eat you.
Having said that, can't the open source movement do any better? I mean.NET is an excellent implementation of technologies we're familiar with and have used for years, but surely we can do better. I think we can, I think it's called Mozilla, and I think it's underrated as a development platform. But that's just IMHO, please don't let that distract you from my main argument here.
yeah. anyway, rant over. it's much longer than i thought it would be anyway.
One hour of your enemy's time is worth...
by
aphor
·
· Score: 3, Insightful
Sun Tzu:
One pound of your enemy's provisions is worth twenty of your own.
I would apply the corollary: "One hour of your enemy's time is worth twenty of your own." The principle is that you are not only getting your enemy's preparations and resources to work for your goals, but you also prevent him from using them against you. Your own resources are many times more costly to build up. Microsoft sees Miguel as a tool, and they are waging Ximian against Gnome (the GNU GUI) with the goal of making GNU oriented developers waste their time even learning C#.
If we need a new language, why don't more people get together and decide on all the goals of that language? If we need to link compiled code from disparate languages together, why not write a CORBA spec or something? The key concept here is DO NOT LET MICROSOFT SLIP INTO YOUR PROJECT'S DEPENDANCIES.
GNOME had always tried to have a good support for multiple programming languages, because we realize that no matter how much we loved C as a programming language, there was a large crowd of people out there that would like to use the GNOME libraries fromtheir favorite programming language, which might not necessarily be C.
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?
Miguel has made many positive arguments for his prior statments. And thanks to the Register for obfuscating the variables.
Luck favors the prepared, darling.
Linux is a copy of a proprietary OS, Unix, which was invented by a monopolistic company, AT&T. Miguel pointed this out in the email, if you actually read it. Most free software has been free re-implementations of closed software or technologies.
Liberty in your lifetime
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.
Key to financial independence: Spend less than you earn. Save and invest the difference. Do it for a long time.
The biggest problem with .NET is that it is a MS initiative and controlled at its most basic level's by MS. Anyone who thinks they can safely develop a project under it without fear that MS will change the APIs the instant they actually start competing at some level is an idiot.
And therein lies the rub of any development using MS tools. Undocumented, incompatible changes to the underlying APIs at MS's whims for MS's gain.
I guess you miss-understood.
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.
Good article on this appeared today:
.NET SDK, the cross-language support looks impressive, but the illusion holds true only until realizing that all languages in the mix are virtually identical. Microsoft has actually invented the concept of skinnable language: changing a language's most superficial aspects, and claiming the result to be a new language. There is only One True Language that is C#, and "skins" offered by Microsoft and third parties. Just like in GUIs, these skins will alter the system's look and feel, add a few features, but never compete with a fully new toolkit.
One Runtime to Bind Them All
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
T
---- It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
I particularly liked his comment about Linux coming from AT&T's non-free environment. He seems to imply that the .NET framework is to the future what AT&T UNIX is to the present.
I have two things I would like to point out to you. Actually after preview it's alot of things.
.NET Framework stands on it's own feet, and developers in the Windows world love it....... We are witnessing the creating and deployment of a new standard...
So when you copy your binary from Windows that was compiled with the Visual Studio.NET and run it on your Unix platform, it will just integrate nicely with your GNOME desktop.
How exactly do you plan on doing that, as I'm aware of, at least right now. Microsoft hasn't submitted a full spec to the ECMA. Again; I will mention that Microsoft has never done something like this in the past; they've always blocked people out.
Your ideas on writing pieces of code in different languages is agreeable except in this case. Writing chunks of programs or pieces of code vital to the overall program in a different language which may or may not work to spec is just asking for trouble. (IE: using asm for sound routines etc etc many examples)
The
A standard that we will have to fight to operate with in the long run. Instead of unix camp supporting those ideals we should be supporting things like java or creating or own stuff. Just because windows developers love it doesn't mean it's not java with a couple of addons. If it was wildly different in any manner I would agree that we should be looking to use it; however this is not the case. A standard already exists and that standard is java
The only restriction is that all of our work has to be free software. But other than that, I am ready to take money from anyone or listen to any kind of proposals for making this happen
We all know nothing involving money comes without a price. Don't blind yourself to that. If someone gives you money, they want something. For Microsoft it'd be whatever it took to end the free software movement; period. Try not to be a pawn in their game, try not to play the game period.
Your comment that follows above italicized voids most of what you said earlier regarding inteoperability.
I sincerely think that you need to assess what your true goal is. This isn't nirvana, this isn't a place where you can walk into the middle of the street and not get hit by a car. This is a cruel world, I fear your intentions are good and your heart and mindset is in the right place but don't be fooled, Microsoft and others make this a very cruel industry. There are certain things that you can and can't do and currently they set the rules, this is what we are trying to break so that we don't have to worry about if a standard is submitted and we base our code on said standard that it will work across the board. Building upon their standards which do nothing to help that only helps them.
Thanks for your clarification it did clear up a couple of points though.
1) I thought Miguel's arguments for why he's getting behind the .NET Framework(the CLI and CLR to be specific) were excellent. I have read much about the Mono project since the announcement of its inception, but this is by far the best explication I have seen. If he hasn't made me a believer, he has at least made me very curious.
.NET to me seem like the obvious directions(licensing as a standard to ECMA, support for multiple languages, etc.) that Java should be going towards, but, for whatever reason, is not. I think .NET(and Mono) if they pick up steam will give sun the kick in the ass they need to get moving on some of this stuff that they are not.
2) As an active Java developer, I think that this may very well be the BEST thing someone could do to help Java. The directions Microsoft are going in with
I personally think the main reason Sun has not further opened Java up is because they have not perceived the need to. They are doing some calculus in their head to make it as open as they need to gain developers from Redmond, but still try to hold onto as much as possible of it for themselves.
3) My largest concern with this, and I didn't notice Miguel addressing it there or in the followups, is the patent issue. My worst fear is everything would go incredibly well with mono: diverse compilers, robust libraries, etc. and we would all start to build code around it, and then about 5 years down the line Microsoft whips out a patent and demands royalties for all the labor that we have done under the illusion that it would be free.
I would love to see Miguel address this concern. I cannot speak for others, but I would be a long way to considering getting involved with Mono(whether it mean using their tools to develop, or even contributing to the developmen of libraries, languages, etc.) if I felt better about these things.
Running into those problems frequently is only a sign of poor design and poor coding, not a language flaw.
T
---- It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
Sorry, even though Miguel does a good job of going into an indepth "answer", Alan Cox takes all the air out of the sail.
Java is NOT broken or lacking because it is inferior. If it is lacking anything, it is because no one has gone the one step further and fixed it. Do THAT instead of rebuilding from M$-poopie.
Finally, the simple statement by Alan that as soon as M$ decides they're a pain in the ass, poof, there goes the VM into patented special-feature land (see kerberos for a similar f*ckjob) and no .NET viralware will run via mono. Add this to the FACT that the predominant C# compiler in use will be the M$ version. De facto factamundo. The M$ version will be "special" while the free variants will be broken. Just like the PROPER implementation of java (non-M$) was "broken" with respect to the illegal perversions that M$ inflicted on it (and thus we have C#).
M$ is not changing its tune on whit. This is NOT a gift to the developer community. It is NOTHING but a means of continuing lockin (and conversely, lockout) and moola into Gates pocket. Nothing more, nothing less. It may be a nice way to build stuff at some future time for linux but it is NOT a means of being able to run some .NET windoze binary on linux (never happen except accidentally because the code was simple enough not to include "broken" M$-only freakishness). You will find that most of the important stuff will not run. Developers will STILL not make linux-friendly stuff because the bulk of the market is in M$-doze-land and they can run the broken/perverted .NET M$_VM-only stuff.
Stone cold fact. Sing the praises of mono for having the POTENTIAL of providing a nice development environment for linux coders (though unnecessary if they'd instead focus on the correct path of Java) but don't delude yourselves that this will mean windoze binaries working on linux.
In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.
Miguel de Icaza has committed two sins against the "spirit" of "free" software:
As I understand it, Miguel is looking at the CLR part of .NET as a productivity tool; he believes that Ximian developers will create applications faster and more reliably using a clone of Microsoft's technology. And he is very valid in pointing out that cloning .NET will follow a long tradition of "freeing" proprietary technologies. If GNU can clone C, C++, Java, Word, and what-not, why complain about cloning the .NET CLR and C#?
Miguel is not forcing anything on anyone; Gnome and GNU will not be dependent on Mono, and Mono only imposes on those who wish to use it. So long as Miguel protects existing free code from proprietary contamination, I see nothing wrong with what he's doing.
As to whether he can succeed -- well, I think he's bitten off more than Ximian can chew, in that implementing certain pieces of the .NET CLR and VM is unlikely to attract hordes of Windows-based developers, nor is it going to offer the functionality that will allow cross-platform development. Perhaps the only "evil" involved here is that Miguel's efforts may legitimize Microsoft's monopoly as a false example of the "openness" the monster of Redmond. We'll need to keep an eye on that.
In the end, Mono will sink or swim based on its merits; if developers don't like Mono, they won't develop for it, and it will go the way of the dodo. On the other hand, if Mono works, it could be a Very Good Thing by making application development easier for Linux. Time will tell.
All about me
You're right. If Sun had wanted Microsoft to have complete control over a large and proprietary market segment of incompatible Java code, allowing them to blame Sun for incompatibilities introduced by Microsoft, they could have allowed this.
I see no advantage in allowing standards to be suborned like this.
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
The entire universe of computers (And all other engineering worlds) works on "Embrace and extend" You can't blanket everything as bad because of it. Sometimes it's bad but usually it's good. Labeling something "Embrace and extend" is not by default a bad thing. Quite the opposite. Aren't KDE and Gnome embracing and extending the xerox/apple/ms desktop metaphore?
Java may have been a nice idea but it's implementation and it's owner were terrible. So move aside sun, let someone else try...
Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
You betray a very limited understanding of the problem. The CLR (like the JVM) makes a number of assumptions about the nature of programs running upon it that a CPU can never make--things like the way stack frames are created, exceptions are propagated, methods are dispatched. If the language is not designed with the same assumptions, it can not run on the CLR (of course, if you are going to give up all efficiency, you could write another VM in C# and target the lanugage at that). All the languages that the CLR supports--even MS languages like VB--have been re-designed to work with the CLR.
People like me stuck with GNOME (I can remember a disasterous attempt to use way not ready for prime time 1.0 release on a college campus) because we believed in the GNU approach that GNOME was taking. Now that Mr. de Icaza is working at a high paid job, apparently none of this matters anymore, he has come to embrace the "whatever gets it done" mindset.
But would some one explain to me how a complete reverse engineering of a MicroSoft compiler and all the other bits and pieces of .Net is possibly "getting more done in less time." Not to meantion what is going to happen when MicroSoft says "no you can't do that" and sets out to put and end to it, and I think from the thier track record you can count on it. The only reason they haven't done so yet is that none of this has become a "standard" yet and Miguel seems perfectly content with helping them make it a "standard".
The notion that we should roll over and accept the fact of a .Net world flies in the face of everything the GNOME project asserted from the very beginning. They told us that we didn't have to accept proprietary standards, we could make our own. Now we are being told that it is OK to accept a "standard" that just happens to come from a proprietary company, in this case the worst of them, MicroSoft, because "I like it better" and "it will help me make stuff faster".
Well this is all just absurd. No matter how calmly he tries to assure us that everything will be OK, I think that anyone that hasn't been living in a cave knows what getting into bed in any way with MicroSoft will end up doing to you. You pick up a snake, you are going to be bitten. The only possible reason I could see for wanting to do this is for Ximian to slip in some non-free parts of Mono they want you buy (but it's OK cause it is just to connect to all the .Net stuff you already have from MicroSoft) the same way they did with evolution.
Miguel, in an otherwise well thought out and well constructed rebuttal to TSH (Typical Stallman Hype), makes one comment I take great exception to...something to the effect of "CIL is Microsoft picking up where Java left off."
.NET like it's a great new IDEA.
.NET allows you to compile ASP code." JSP. "Tighter integration with IIS allows you to better utilize ISAPI." Servlets. "Serialization and persistance." EJB.
Excuse me, when the hell did Sun Microsystems "leave off"? Version 1.4 is coming out the door at any time, with such nice features as buffers and extensive regular expression support, and all of a sudden they've "left off"? Java will run on nearly every system ever created and in all sorts of unusual situations and suddenly Sun dropped the ball?
Look, Java is effing huge. People do write applications in it, and I'm not talking about ticker applets. Today's machines can run Sun's graphics engine as well as they can run GTK, and it's available underneath any OS. Any "work" that Microsoft is doing on the CIL has already been done by Sun, with the exception that MS' byte code executes faster and has better UI support.
But is there any wonder? An implementation of the CIL requires a lot of work on the part of the window management driver authors, meaning there's plenty of room for tuning. An implementation of Swing requires very little -- implement a fiew basic AWT classes and Swing, which is "100% Pure Java," will work atop the older class. Meaning that there has to be a lot more abstract code in Java. Meaning you can be damn sure your application looks the same everywhere and there won't be any glitches due to "factionalied" implementations.
Of course, most of the development world is still coping with the idea that different platforms require different code (hence the laundry lists inside Makefiles). The Java paradigm won't let you do that. It says, "write that shit once and deal with the slow down, it shouldn't be a dealbreaker for cross platform code." It shouldn't be. But it is. Many development houses can't get over this. Hell, I mentioned to our IT guy that I was doing our mailserver in java and he thought I meant an applet, scoffing "Write once, run nowhere."
CIL is an attempt to get under the skin of this, but it's a flawed attempt. Jesus, all the development time and heartache going into the optimization of x-platform windowing "frameworks" and "toolkits" where there already is one seems headstrong. Actually, it seems idiotic, and it's why I seethe whenever I hear somebody drop
"But C sharp has improved garabage collection, language integration and runs anywhere." Yeah, that's Java for you. "But
Jesus, why isn't Sun mopping the floor with these idiots???
Hey freaks: now you're ju
Miguel's experience with .Net seems to mirror my own. It's a very productive environment that's a blast to work in.
.Net on Windows, then having to do some work in any current GUI app dev system on Linux.
.Net, let him prove it, but don't suggest that we have to learn to live with less for political reasons.
Have you ever gotten used to working in a Unix/Linux shell then had to jump over to Windows and do something on the command line in *DOS*? Know what that feels like, that helpless feeling of losing all your magical powers?
That's what it feels like to work in
If RMS thinks he or his minions can design a better architecture than
"Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
Miguel is navigating dangerous waters that have wrecked other ships befoe him but he thinks himself a better captain. I have news for him: they were better than he thinks. As I see it, all of Miguel's arguments are sound and lull one into actually wanting to believe lions will lie down with lambs. Who can fault peace, love, and understanding after all? However, the real problem is not his logic but an underlying naieve assumption: that Microsoft has changed and will allow .Net to be cross platform when deployment volume becomes significant. When .Net starts to gain significant market share, they will do what they always do, add patent-protected feature that kills the cross-platform nature of their framework. It is in fact it is a deviously clever strategy--worthy of a Borgia Prince coached by Machiavelli himself. Give hope and encouragement to a large component of the open source developers which are givng Microsoft heartburn and let them devote an ever larger slice of their creative bandwidth and energy both feuding internally and developing to adopt .Net. Encourage them to do it--even help them walk deep into it and tie all their code to it inextricably. Allow .Net to change their architecture, setting the hook deeper. Then after the distraction has divided the open source community long enough and defocused Gnome, Mono and ensnared other open source projects, drop in a patented-feature that kills its cross-platform nature. They did it with Kerberos, then Samba, and lately NetApp using CIFS. I have absolutely no doubt they have not had a change of heart of strategy and will do it to Mono/.Net. It is only a matter of time. Voila--Victory Microsoft style. Miguel and Mono will be roadkill.
What i like about this, is that in the future it could well mean that i could use my windows application in linux, NOT via wine, simply because they are .NET based. This would save alot of hassle for me, because Windows crashes at a pathetically high rate, yet I have to use it!
.NET (although, it wouldn't make much sense to most developer why they should) we'd get automatic cross-platform games...something most hard-core gamers would just love!
Then,games...should games ever begin to use
Bad thing: should Microsoft ever decide they don't like Mono...well the API will somehow become so that Mono can't reimplement it.
Derek Greene
Like a lot of people, when I first read that GNOME was going to embrace a Microsoft technology, I was outraged.
The more I read, however, the more it makes sense. If the bytecode is truly portable this could produce an explosion of industrial quality programs that will run on Linux. This could potentially remove one barrier that is slowing Linux's growth as a viable mainstream desktop operating system. One has got to wonder what Microsoft's strategy is to thwart this.
So, I think we should proceed and implement Mono while keeping one eye open for that giant tube of Microsoft Vaseline.
The race isn't always to the swift... but that's the way to bet!
Now that same argument, applied to de Icaza applies perfectly. Mono is not going to be "bound" in any way to GNOME, that much is fact. So the core product itself remains free. But more importantly, Miguel has to answer to a board of directors, whereas Linus can do (or not do) whatever he wants. They provide funding. They call the shots. They agreed to Ximian funding of Mono. How is anyone (especially RMS) entitled to an opinion here?
Regardless of RMS's embrace and extend FUD about everything being GNU (I bet very few people see it that way, but if it quacks like a duck...), he has absolutely no say about anything Miguel does, period. His argument of "Miguel better answer to the community" can be cleanly compiled to "explain this shit to me, boy".
Oh, and BTW, I'm surprised nobody has mentioned this small detail: RMS was turned down from the GNOME board of directors in November of last year. From the precedent of previous flame wars between RMS and various other people, who can say this is not simply his way of giving GNOME a bad time?
And finally, let's face it: Anything that has a relationship (remote as it may be) with Microsoft is immediately turned into an argument about "giving into the dark side" and "fight against the evil empire". That sure gives way to very constructive discussion. Most of the posts here have either tried to denounce Miguel as a traitor or simply nit-picked his reasons for doing what he's doing. Very nice.
And to Miguel: Dile a RMS que encamine sus pasos a la progenitora de sus dias y la salude de tu parte =)
Go ahead and mod me down now.
Lots of insightful comments, but no one's actually picked out the yawning chasm of a non sequitur in the Mono programme:
If you like some of the Dotnet features, you have to clone the Dotnet Framework
I might like my mother, but I'm not about to clone her so I'll someone to marry in a few years - I know that her virtues can be found in other forms.
For example, we could develop a new CIL that was based on Scheme, but which could support programs originally written in Java syntax. This might be a better language superset - certainly many early LISP developers intended it to be an intermediate language, so the parens were always optional in essence.
Consequently, the only possible justification for cloning the Dotnet Framework is that MS tools will facilitate development of Mono apps, and that (equivalently) Dotnet apps will port to Mono. And on this point, it seems the crowd has spoken with one voice - it just ain't gonna happen.
I am not exactly, totally enthusiastic about this idea of being able to use ANY language for a given programming project or combination thereof.
.Net architecture with a CLI as envisioned by Microsoft should produce software with unessacarily high engineering requirements than a single language platform.
.Net MONO vision for a Linux app would quite possible require COBOL, C, Java, PERL, FORTRAN etc programmers to cooperate in building a new desktop app or feature.
I have these reasons, personally, as a matter of observation in the software engineering of large complicated systems.
But I would like to make some observations:
1) The US Military in the early 80's and 90's had enourmous problems with private sector bids and implementation, of software in defense systems.
Namely, every vendor delivered a portion of the system in a different language. Some languages were specifically invented to deliver the final product.
These systems were large and complex, and non trivial engineering problems developed between vendors who needed to integrate thier combined efforts to deliver the product.
2) As systems were delivered the cost too maintain them was very high due to the fact there was no common reference for the software implementation.
What I mean by this is, if you have a flight control system, or launch control system, and it has a bug or engineering issue. It is very difficult to see exactly what the problem is if it incorporates or was delivered with 8 different computer grammars.
3) These systems had artificially short life spans due to the fact they could not be easily upgraded. That is too say, for example, the above flight control system coulnd't be upgraded because the target language(s) could not be reimplemented on new hardware.
My point about MONO and CLI?
Which is:
1) If we accept the historical data on building complicated pieces of software, we can reduce the costs of a implementation if it is reduced to one language or computer grammar to build its entire scope.
The military's solution to this was to produce key critical compenents of a defense system project using one reference specification. The computer grammar they picked was called ADA.
I question if the CLI is actually a good idea in a concept that allows or permits multiple language platforms to cooperate, if the goal is to produce software that is easy to use, is of low defects and is cost effective.
Historically the military with budgets far beyond anything commercially accesible couldn't do it and produce quality defense systems.
2) If the CLI provides a capability to produce a GNOME vision of support for multiple language platforms, given historic research in the software engineering areas, CLI suggests that anything built with a
3) Considering the fact that such a system would produce diverse computer grammars in any authors favorite language, for contributing authors, a future
If we accept that historic software engineering suggests multiple computer grammars result in systems that:
1) Require a very high engineering cost.
2) Quality of the software suffers because fewer individuals can access the entire code base to make corrections.
Personally, in IMHO organizational scalability and human productivity issues in building this sort of software are problems with N different grammars being used to build a single piece of software.
Therefore, I believe CLI is really not a positive addition to an Open Source Project.
-hack
Got Geometrodynamics? Awe, too hard to figure out? Too bad.
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.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
Look - what is Microsoft? It is a big company, one which is in a serious crisis right now - it's main revenue streams are drying up in the form of slow Office/Windows XP sales (well, slow compared to what they need to be). Hence Hailstorm, which is a big part of .NET
So - consider that Linux is the first real competition MS has had on the desktop/server market for years (forget apple, they have survived by selling to a niche, mainly artists, not business/home). Now consider that they are desperate for cash, lots of it.
So, considering all that, how likely is it that MS will invest millions into a new platform for Windows, and then allow it's primary competitor to make it about a zillion times easier to port code from Win32 to Linux? Not very is the answer. Remember this - Microsoft HATE Linux: their corporate leaders see open source as "wrong" etc, and of course Linux is already good as a server and making headway on the desktop, so how do they respond to this threat?
Seems obvious - they need .NET, but what they don't need is to be giving their competitors a leg up by developing an expensive technology. They'll try and keep .NET Win32 only, and they won't have to try hard. Yes, yes, we all know about the ECMA submissions, but lets face it: There are standards, and there are standards. C#, CLI etc. will be de-facto standards soon, but that doesn't make them anymore acceptable, regardless of whether they've been rubber-stamped by ECMA or not.
Having said all that, you've got to give Miguel respect: he knows good technology when he sees it and isn't afraid of politics. I love some of Microsofts software, I just don't love the company. Problem is, in cases like .NET they are inextricably linked.
yeah. anyway, rant over. it's much longer than i thought it would be anyway.
thanks -mike
Comment removed based on user account deletion
Comment removed based on user account deletion
Sun Tzu:
I would apply the corollary: "One hour of your enemy's time is worth twenty of your own." The principle is that you are not only getting your enemy's preparations and resources to work for your goals, but you also prevent him from using them against you. Your own resources are many times more costly to build up. Microsoft sees Miguel as a tool, and they are waging Ximian against Gnome (the GNU GUI) with the goal of making GNU oriented developers waste their time even learning C#.If we need a new language, why don't more people get together and decide on all the goals of that language? If we need to link compiled code from disparate languages together, why not write a CORBA spec or something? The key concept here is DO NOT LET MICROSOFT SLIP INTO YOUR PROJECT'S DEPENDANCIES.
--- Nothing clever here: move along now...