Miguel de Icaza Talks About Mono 596
Matthew Revell writes "Miguel de Icaza defends Mono and talks about its future relationship with the Gnome desktop, in the latest LugRadio.
The leader of the open source implementation of .NET says no one is forced to use Mono but he hopes it will make life easier for open source developers. "
.NET is a litigation nightmare waiting to happen (Score:4, Interesting)
And it does (Score:2, Interesting)
Mono was a way for me to extend my growing
I just downloaded 1.3 (Beta) and I am VERY Impressed with how far they have come I converted a small web app about 10 pages to run under mono, and it does perfectly, I only had to steer clear of a few of my more ecclectic
Mono is and has been self hosting for quite some time, Its a full real language development enviroment not some hodge podge interpreted scripting hack
Congrats to the Mono team, I am looking forward to you
I can write code 5-6 time faster in
ESPECIALLY when its a WHOLE lot easier to move a Mono app around plattforms,
The next project that needs cross platform capablity I will write in Mono, (Writing in Mono its almost sure to work out of the box in MS land)
Re:Why I love mono (Score:3, Interesting)
How Much .NET Can I use? (Score:3, Interesting)
I ask this because I do ASP.NET development where I work, and would like to be able to do some of it on my Powerbook or Linux desktop at home if I need to. I know PHP is the better solution under Linux, and I would prefer to be doing it but it's not a supported product where I work so it's out.
Interoperability Potential (Score:3, Interesting)
Re:MONO is a disaster. (Score:5, Interesting)
wrong. mono is about "embrace and extend"... the same technique that microsoft has been using for years to swallow or crush competing technologies.
it's nice to see redmond on the receiving end of this formula for once, don't you think?
Re:Mono And Linux (Score:2, Interesting)
I see many comments on Slashdot to this effect, whenever mono comes up, but nobody ever says how or why they find it easier to work with than java.
Hope for ex-Java and Linux Developers (Score:3, Interesting)
Re:MONO is a disaster. (Score:5, Interesting)
Fact is there are no better cross-platform tools out there for development, or at least that is the opinion of the users and developers of Mono. People develop and use Mono not because they think to themselve "Hey man, It's Microsoft! They've got to know better," they used it because the same cycle of C/C++ plus a bunch of toolsets are painful to use. Use whatever you want, I like Python myself. What I don't like is this negative FUD campaign against Mono.
Parent NOT Troll! (Score:5, Interesting)
It is 100% true that GNOME was founded that way. And I believe, more than anything, that the plunge into
I've said it over and over that Miguel and crew have done a remarkable job. Really. But the biggest flaw in their tower is the fact that it's a spawn of Microsoft. I can completely understand their target of a langauage/platform that they know will succeed. But we all know Linux/FOSS to M$ is all about FUD, embrace and extend, etc... How many times has anyone from M$ talked about working with the GNOME/Linux community vs. destroying or crushing it? Plus, now that Miguel is part of Novell who do you think is going to prevail in court? On that one, I'm gonna put my bet on the company with $40bln in the bank (and that ain't Novell). Anyone up for the 'M$ pummels Novell again' show?
Until M$ comes out with an open source license for
For myselft, years back I started dabbling in C# thinking I'd broaden my programming knowledge. But I have to say that I prefer Java over C# as C# is just too Microsoft and there's something about the feel of it that gives me goosebumps. Like my old, really old, yukky VB days.
Plus, while most people don't care, I can't separate the poilitics from the code on this one.
Choice of GUI toolkit (Score:4, Interesting)
Why Mono is a big win for linux (Score:2, Interesting)
Give Credit Where Credit is due. (Score:3, Interesting)
On top of that as someone who studied programming languages for my masters project I have to say the
Re:MONO is a disaster. (Score:5, Interesting)
This post, and all it's subposts, really anger me. From what I understand,
As such, how does this "legitimize microsofts attempt at monoplizing another market with yet another windows-only product exactly similar to an exsisting [sic] multi-platform product"?
1) It's not Windows-only since MONO runs on linux.
2) It doesn't legitimize any attempt. http://www.mono-project.com/about/licensing.html [mono-project.com] does not state anything about an 'evil' Microsoft licensing scheme, or invasion of Microsoft bed bugs into your code:
Perhaps I fail to see the "licensing minefield created by Miguel", as the fact that it's an open standard, and that the MONO licensing itself isn't restrictive, pretty much subverts that.
On a final note: even if all my points are completely off base, and wrong: I ask you one thing: When did we turn from software developers who seek the 'best' solution to 'X' people?
"I'm a Mac person."
"I'm a Linux person."
"I'm a Windows person."
"I'm an X person."
Since when did it become about branding yourself with something, over choosing the best technology for the job? Half the sub-posts here are all about not choosing the tech because it 'feels too Microsofty'. C# was built by Anders Hejlsberg, who designed Pascal, and Delphi, both successful languages in their own right: and Borland technologies.
Oh no! Now the anti-Borland people aren't going to use C#!
When will this nonsense stop? We're all so anti-being branded, unless we do it to ourselves. Pick the RIGHT solution: not the one you've been known to cower behind.
Re:MONO is a disaster. (Score:5, Interesting)
MS Actually let .NET and C# become ISO standards unlike many of their past developer tools and languages. So when a large company develops an ASP.NET application and then decides that they don't want to have to continue support IIS or Windows, they now have a choice to migraite to Linix!
Mono provides choice for those that are currently developing for the Windows platform. So does Java. Mono is FOSS. Is Java?
I am currently working on a project that uses C# for the GUI. Our customers use Windows workstations, so we are writing software for Windows. We are actually moving away from Java which was the old language of choice at my company. You may argue the reasoning behind this, but it is the decision that was made and we are using C# instead of Java. I am hopefull that a more mature Mono (in a year or so with full System.Windows.Forms) may provide us with a way to run our client programs on Linux workstations, if requested by a customer. Mono will give us back some of the choice we lost moving away from Java.
Mono creates great competition for Java. Perhaps this will be another reason for Sun to finally make Java FOSS. Competion is a good thing.
Mono needs some work (Score:4, Interesting)
Mono needs a bit of work to work with PaX [grsecurity.net], but it's possible. I mentioned the necessary changes [kaffe.org] to the Kaffe team; but they apply to any JIT.
The issue is that a JIT compiler like Mono generates code at runtime. Because it's not generated in realtime (it's compiled at the loading of an executable module, one time), it's feasible to dump the executable code to a file on disk and mmap() it in.
PaX won't allow code to be generated in memory unless the program has mprotect() restrictions off and uses mprotect() right. It's safer to rewrite the JIT compiler though, since you wind up with a stricter security policy that way.
Furthermore, Exec Shield's NX emulation is flawed, and the use of mprotect() in those ways would disable the protections on large parts of the binary. If anything happens in or above the stack, the whole stack is likely executable. This is in fact one reason I prefer PaX; a slight modification to Red Hat's kernel to print X instead of - in /proc/[pid]/maps for !PROT_EXEC memory that's actually executable prints out a good deal of areas that are executable but shouldn't be (rwx vs rwX).
Mono is flexible enough that C and C++ can be compiled to .NET. Microsoft supports this, as mentioned in earlier slashdot posts. It's really important to consider .NET and Mono as insecure, and to make sure they're adequately protected. If you're running all your programs in Mono and Mono has to disable PaX, then you lose the benefit of your GrSecurity-enhanced kernel. (same with ES).
Platform independent? (Score:3, Interesting)
Re:.NET is a litigation nightmare waiting to happe (Score:4, Interesting)
What about wx? (Score:3, Interesting)
I've a c# developer, and I'd be tempted to play with mono, but I have to wonder why Python with the wxWindows and wxGTK toolkits isn't getting more exposure.
My biggest problem with Java apps is that they look equally bad on any given platform. Based on what I've seen with wxWindows and wxGTK, the apps look like native apps. Is Python missing something essential?
Re:Mono And Linux (Score:3, Interesting)
I found that as a language its much less restrictive than Java. Java's API's are pretty rigid, well defined, C# seems to be a bit more relaxed.
Now for me, thats the thing I like better about Java in that it forces you into a particular coding style/way of doing things. I've had the debate numerous times with Perl folk who like things a bit more relaxed. To each their own I guess.
Thing is that when I go to maintain somebody elses Java code, its pretty consistent with the way I develop code, just because Java kinda forces you into a particular style/way of doing things. Flip over to Perl, and I've had numerous occassions where I've had to learn the previous developer's style at times to follow their code with ease.
So my gut feel on the C# language is its a bit more relaxed (not as much as something like Perl), so I'm thinking I may run into this heartache if I ever have to maintain somebody elses C# code.
Just one other note on why I like that rigidity in code as opposed to flexibility. I find that the more flexible languages lend themselves to allow developers to cut corners and/or take easy routes to do things. Again from personal experience, as software scales up beyond its original scope, I find that its easier to move a Java program forward into bigger and better things than stuff I've seen in other languages. Mostly because the solid foundation was built and effectively enforced by the language from the start, whereas in other languages you sometimes have to solidify stuff up a litle bit more before moving on.
Anyway, this is all mystical voodoo software developement stuff thats hard to codify, but thats my experience. And as I was saying its personal preference. Doesn't meen you have to agree. Doesn't meen that I'm right. (or that I'm wrong)
My buck and a quarter...
Re:I used to think the same thing! (Score:3, Interesting)
Microsoft has no control over the language. It only has control over some libraries that have Linux counterparts.
Using C# on Linux will make the transition easier for many Windows Developers.
Using C# on Linux will increase the productivity of many Linux developers.
How what I wrote above will destroy the chance to something better is a really good question that I would like answered.
I post non anonymously to have a chance at inteligent discussion... you on the other hand are not only an ignorant coward, but have also a juvenile mind.
Adolfo
Re:Why I love mono (Score:3, Interesting)
Java doesn't staple your testicles to Windows.
Re:Parent NOT Troll! (Score:3, Interesting)
yeah, and unix, c, and c++ were the spawn of at&t. that didn't stop the gnu project, even though at&t at the time was every bit the monster we see today in microsoft.
what's your point?
Re:Published does not mean free of patents (Score:5, Interesting)
the concepts, not the implementation.
So the reality is that any modern implementation of
anything remotely interesting will infringe in
a bogus patent. You write a hundred lines of code
and you are infringing someone.
In my opinion, we can fight bad patents or we can
move into a safer industry, like selling panties.
But in particular, if you are talking about ASP.NET
the question you must ask yourself are:
* Do I use any concepts that exist in the
Framework in my code? If so, should I remove the
feature?
* Did the concepts in ASP.NET (or any other
technology) exist prior to the
Remember that you must be thinking "concept" and
not "implementation", because a patent is much
broader than that.
I believe there is very little new under the sun,
and that prior art can be found for all the
interesting parts of the
didnt, I would be selling soap.
Miguel.
Re:Don't use .NET at all (Score:1, Interesting)
In that regard, he is correct to refer to it as an implementation of
Instead of flaming, why not gather the basic literary skills needed to form intelligent, sensible and factual arguments and work from there?
Re:Mono perspective (Score:3, Interesting)
Despite that, management have caught the .NET bug for client applications. This is where Java is weak. JFC might be great on paper, but it just blows as far as performance is concerned, looks weird even with a theme engine and is just plain difficult to programme. Eclipse & SWT demonstrate that a Java UI doesn't have to be such a pain, but SWT hasn't really spun off into something that 3rd party apps can rely on yet.
So traditionally we've always coded C++ on the client side. There's nothing wrong with that in my book, but management have been sold on the idea that .NET will increase product stability and lessen development times. Which is great except they've decided we will migrate by wrapping the old legacy code with managed classes and use a .NET based UI. Thus we get the instability of C++ and the overhead of .NET! The alternative would be to rewrite the product entirely in .NET which would take years.
Thus my skepticism about Mono. The real world (and the world Microsoft wants) has lots of unsafe and unmanaged code tied together with .NET. Unless Mono links to the whole of winelib and provides x86 emulation for non-x86 hosts, this code will never run outside of Win32. To cap it off, our app executes code in MS SQL, so we have yet another dependency. We have no intention of testing on Mono and I sincerely doubt it would work even if we tried.
That's the real world. Mono isn't on the radar and never will be while it's considered some sideshow. The onus will always be on Mono to cope with whatever crap gets flung at it and not the other way around. Thus my belief is they need to push the great stuff they have so it is shown on the same level as the Microsoft code. If GTK# and other open stack APIs are made easy to develop and run from Dev Studio .NET 2003 it might sway someone sufficiently to use them in some major projects. Word will get around soon enough.
I don't think .NET programmers are shy of good open source libraries (NUnit, Log4Net & Spring.NET are popular ports from Java), but they have to work in the first place for people to bother with them.
Re:Choice of GUI toolkit (Score:1, Interesting)
* Menus are themed flat out wrong:
. - Black "etched" border instead of single pixel gray border
. - Separators are "etched" gray, instead of a single pixel gray border
. - Menus are missing the drop shadow
. - Don't animate when dropped down
. - Don't fade out when selected
. - Menubar items don't highlight when moused over
. - Menubar has etched border instead of single white pixel border
* Tooltips are missing the drop shadow too
* Toolbar "grippy" is themed wrong
* Combo-boxes
. - Are bordered the same as menus, instead of a single pixel black border
. - Don't animate when dropped down
. - Use "Mac"-style feel (ie, selected element is centered on top of combobox) and not Windows style (menu appears below the combobox)
. - The dropdown menu does not expand to width of its parent control
* Checkboxes are sized wrong, on occasion (but not always)
The menus are the biggest problem. The Comboboxes violating the Windows "feel" is annoying, too. But the menu immediately stands out as looking wrong on most apps.
Suffice it to say that most GTK+ apps on Windows just look and feel wrong. But it's that "uncanny wrong" where it's MOSTLY right, but just slightly out of whack - enough to be distrubing.
Re:Mono And Linux (Score:4, Interesting)
`mono program.exe' runs your program, no need to
pass a class name, or a path or setup the cp to
run.
'java -jar program.jar' would be the Java equivalent.
The layout of my files is not constrained to
one-file, one-class and the file system hierarchy
does not have to match the namespaces I have
chosen.
one-file - one-class is not neccessary with Java either, although I guess you are somewhat more restricted than in C# (which I don't know well)
Re:Mono And Linux (Score:3, Interesting)
So does `java -jar program.jar`
The layout of my files is not constrained to one-file, one-class and the file system hierarchy does not have to match the namespaces I have chosen.
I guess I've just never found this to be a problem. It has forced me to keep my code organized which I found to be a good thing. And any third party libraries should be in jar files for effeciency.
Cross platform apps and scripting (Score:5, Interesting)
I started looking into it a few weeks ago when a project I was (am) working on required a scripting engine that could handle running scripts from anonymous sources, id est untrusted.
We went through a large range of languages: python, perl, angelscript, php, lua, etc etc but ended up with a few rather large problems in all of them: either lack of sandboxing and protecting a system from the effects a script could have, or lack of documentation and user friendlyness for those who may not be too familier with programming (yes, we have to consider them)
One of the dev's on the team brought up that
Another thing to consider, is that Mono will run any CIL compiled code, meaning that we can support a virtually innumerable count of languages, with very little excess implementation (find a compilier and link it into the project).
So now we have: cross platform scripting (with sandboxing eventually), and the ability to present the users/programmers of the scripts with the syntax they are most comfortable with using.
Not only that, but Mono is going to save us a fortune on our development costs, because we may be able to drop Qt GUI implementation from our project roadmap, which averaged about $6000 for each developer(Qt Enterprise with QSA), I believe, and had some -major- limitations on what you could use thier scripting language for (for example, you're not allowed to use it to expose features of Qt itself to the scripter, which may be neccisary for our project)
Mono does the job, fits our specs almost perfectly, saves us money, and is built on CIL ECMA standards. What more -could- we ask?
Gnome for Mono doesn't use .NET (Score:3, Interesting)
The Gnome for Mono libraries don't use
keep the
There won't be any
And you better hope that Mono succeeds, becaues there is really not much else out there to develop the next generation of Linux desktop apps in.
Re:MONO is a disaster. (Score:1, Interesting)
1. MS released their possible patents on the CLR, base CLI and C# specs with a RAND
2. Mono is being VERY responsible. They've created two stacks, one of just the RAND stuff and Mono specific stuff, and one stack which is "possibly infringing" stuff: http://www.go-mono.com/archive/1.0.4/suse-91-i586
3. Novell has issued VERY strong language saying that it will protect all opensource projects in which it is involved from patent claims with it's own patent portfolio (Mono is one of these): http://www.novell.com/company/policies/patent/
Also, Novell has a lot of patents in the LDAP arena.
4. MS LOVES Mono. It makes it so that they can go to customers and say "if you switch to
In fact, they love Mono so much, that they've done two MSDN webcasts in the last month showing how you can code in
Notice the title bar in the outermost window "MSDN Webcast: Mono: Running
Conclusion:
Mono is no more vulnerable than any other OSS project. It is sad that you have resorted to FUD without any proof of your claims.
Re:Mono And Linux (Score:1, Interesting)
Re:Choice of GUI toolkit (Score:3, Interesting)
Re:Miguel Bashing... (Score:3, Interesting)
Well, you are missing the point about anonymous
methods. They are just a lot simpler to write and
hook up than the equivalent for Java. You need to
remember less, you need to type less, and they are
effectively closures with variable and state
captures like Scheme would do. Anonymous classes
in Java are effectively a pre-processor hack:
they cant capture or reference local variables
nor parameters, they can only reference instance
variables of the containing class.
Can everything that anonymous methods do in
C# be done with alternative methods in Java?
Absolutely. But then again, sendmail's config
file format is turing complete, but that does not
mean it is pleasant to write applications on top
of it. The same applies
Thanks for the pointer on
the Java criticism still applies.
That being said, Mono and the CLR are language
neutral, and we will run all of your Java code
in Mono. We are an equal opportunity language
runtime. But given the choice, I tend to go with
writing my code in C#.
Re:misleading and wrong (Score:3, Interesting)
Mono's goal, indeed its reason for being, is to clone Dotnet. Not C Sharp, not the CLI, but the complete platform. That statement has been there on the go-mono site since day 1.
Now suddenly (that is, since about October last year) the true effort involved in staying on the MS treadmill has finally become apparent to the Mono developers. So we now have the emergence of Plan B, which cheerfully discards any notion of Dotnet compatibility and leaves Mono as yet another bytecode system, of which we had half a dozen long before Mono was an envious gleam in Miguel's eye.
Wherever people make serious investments in time and money, they are not going to consider a platform that promises compatibility one day and drops it the next - the risks and the costs would be enormous. For such projects the "draconian" (complete) compatibility of Java is an absolute requirement, and one which literally hundreds of thousands of developers rely on every day.
Re:license & both are obsolete (Score:3, Interesting)
1. How many commercial apps are written in Qt?
2. How many in GTK+?
Answers:
1. Many.
2. None.
As for Gnome and KDE being obsolete, well, that's a rather strong way of putting it. Both will continue to evolve, and in the long run, will probably have some sort of managed code core as a development option. But I doubt you'll see the end of native code in those desktops for a very long time to come.
Re:misleading and wrong (Score:3, Interesting)
That's the reason Novell is paying the bill, and it is one goal among several.
Now suddenly (that is, since about October last year)
There is nothing "sudden" about it; the Gtk# bindings were there from pretty much the start of the Mono project, long before Windows.Forms was even usable. Almost all Mono GUI apps are written with them.
I'm sorry you weren't paying attention (or is it that you just make up false "facts" to badmouth projects you don't like).
For such projects the "draconian" (complete) compatibility of Java is an absolute requirement, and one which literally hundreds of thousands of developers rely on every day.
In my experience as a Java developer, Java achieves only limited compatibility across platforms. Even that is only because all implementations right now are derived from Sun-licensed code. In different words, Sun's pitch is the same as Microsoft's: license all your software from one source and all your compatibility worries will go away. Thanks, but I don't want a Sun monopoly any more than a Microsoft monopoly.
Re:Server side Java for multiple platforms is not (Score:1, Interesting)
I'm a fan of your work and of Mono in particular but why are your posts formatted like emails?
Cheers,
Anonymous Coward
Re:Python and QT (Score:3, Interesting)
I prefer GvR's ideas [artima.com] about static typing for Python 3000 better (basically, all type checking is done via interfaces), but it doesn't actually exist yet
-Mark