Miguel de Icaza Talks About Mono
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. "
Claims "a couple of penicilin shots and it all cleared up."
(Yes, yes, I know. Mono is a virus, anti-biotics are useless, and many of them are actually dangerous to mono sufferers...)
Shouldn't mono be a story for the day after Valentine's day?
And, since I can't listen to this at work, would someone like to summarise why mono needs to be defended from anything (and what).
Phil
I guess today is a passable day to die.
Mono is a great programming tool, I hope that it manages to find its way into mainstream gnome. It shows alot of promise anyway. I do belive that CLIs are the way to go.
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.
I thought he was planning on jamming it down our throats and making things harder for us.
he hopes it will make life easier for open source developers.
I thought the problem was that Microsoft told everybody that they didn't have any patents on C# or .NET, but they are actually a licensee of somebody else who has patents on it? Miguel dodged the question on this one by simply stating that it was a reimplementation rather than licensing .NET from Microsoft.
Listening to the audio, the things on the horizon are Windows Forms and incremental improvements (tuning). People are porting applications today, usually you can just copy the binary, but ignorant Windows developers do things like screw up path separators, assume case-insensitive systems, etc.
Mono rocks, and the latest 1.1 branch has support for System.Windows.Forms, the only (that I know of, anyway) cross-platform implementation of the GUI calls from .NET - native calls made on Windows, GDI+ and Cairo for other platforms. Truly a godsend for developing cross-platform apps in C#.
I wish the Mono project and Miguel the best - they have done some excellent, excellent work and deserve to be commended.
Mono?
This sounds more like a Shelbyville idea...
One man's Funny is another man's Offtopic.
The prospect of GNOME becoming dependant was the straw that broke the camels back and made me switch to XFCE, keep the .NET patented API out of GTK!
Mono is a scourge on the Open Source community.
All it does is to legitimize microsofts attempt at monoplizing another market with yet another windows-only product exactly similar to an exsisting multi-platform product....it's their modus-operandi.
I can't imagine how GNOME which was FOUNDED strictly because of the POSSIBILITY of some licensing problems with Qt(KDE), would go head-long into this licensing minefield created by Miguel.
GNOME has certainly lost its way.
-- Given enough time and money, Microsoft will eventualy invent UNIX.
C# is one of the best ECMA compliant languages today. When used with open source libraries it is a very powerfull developement tool. It is only quasi ilegal when you use the microsoft libraries wich you DON'T need to use.
For rapid application developement under Linux I'll take C# and mono any day.
Cheers,
Adolfo
IMHO .NET is just an implementation of C#
As Mono is an C# implementation.
It's a BAD error.
Good news.
Dyslexics have more fnu.
I played with Mono when it was first in Beta as I love the .Net CLR, no its not perfect, but its pretty damm good.
.Net knowledge againt Unix and non MS plattforms. .Net shortcuts, (I should have in the first place) .Net 2.0 implementation (some is already part of the 1.3 release)
.Net than I can in C++ , that me , but if there is no appreciable difference then why in the heck would I write it in C++ ?
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)
Parent is redundant at worst, it's definately not a troll because it's true!
I've tried Mono, and while I've little desire to move from Python over to Mono, it's a very well done project. The GTK bindings are quite nice, and C# as a language is much, much, much easier to work with than Java.
The big "if" is whether or not Mono can become to popular without Microsoft trying to pull the plug. However, even if that does happen, C# is an ECMA standard. There are plenty of native Linux libraries that can be used in place of the Microsoft classes. For developing GUI applications under Linux, you're not going to use the Windows.Forms libraries anyway, you're going to use GTK. Mono can stand on its own as a good RAD language for developing graphical applications for GNOME.
I know it's fashionable to bash MS at every turn (and as a Mac/Linux user I do all the time), but C# is a nice language and the .NET libraries are infinitely better than the cruft of Win32/MFC and the other mess of libraries that Microsoft used to shove down programmer's throats. Mono has done an excellent job of taking those libraries and making them work on Linux.
Even without the Microsoft libraries, Mono still provides a good framework for RAD under Linux and GNOME. If we can make it as easy as possible to transition between Windows programming and Linux programming it only helps propagate Linux.
My god LugRadio is shit. They just keep on laughing at themselves, non stop. At the beginning of this episode they just keep on saying "adult themes!" in a whole load of stupid voices for like forty seconds.
I've put the high and low quality recordings of Season 2 Episode 9 - 14 February 2005 in Ogg format up here:
http://www.gobisoft.net/tmp/
Just in case the Slashdot effect takes hold.
I understand that I can compile C# code across any platform that either has .NET or MONO installed on it. Or any major .NET language. My question is, does MONO extend to ASP.NET and integrating in some way with Apache?
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.
I think Mono may actually be a good think for Linux. One of the things that keeps many people using Windows is that they don't want to give up their current application set to learn the open source equivalents. A project like Mono has the potential to to allow developers to simultaneously target both Windows and Linux, which may lead to more Windows apps running on Linux and in turn more people willing to consider running Linux. Also, C# is a nice language to program in.
Many of us have taken jobs at shops that are Microsoft only shops. I hope that Mono takes off in a big way since that would give us a chance to easily port our apps over or at least develop on something other than fucking windows xp. It really sucks to get stuck in the MS world and not have the time to work in other environments and not be able to have other platforms run at the place that you work. Maybe Mono can be a bridge from the dark valley of MS purgatory.
defends Mono by saying no one is forced to use it
Awww, I bet those of you that have been beating him up for the last 3 years feel really mean now!
Don't worry, it will pass.
GTK plainly sucks for development. No, really, I tried, and it's worse than MFC.
That only really applies if you're coding in GTK's native C, and that's because writing GUI code in C is a braindead idea. Sadly, most GTK apps are written in C. GTK's C# bindings are actually decent, and I believe that its Python bindings are also decent.
I'm no GTK fan, but GTK# has really cleaned up the API.
I support the Center for Consumer Freedom
Here is Miguel's answer to GNOME becomig depentdant on MONO: http://mail.gnome.org/archives/gnome-hackers/2002- February/msg00031.html
"he hopes it will make life easier for open source developers."*
One could argue that Java does the same thing. Of course we all hate Java, right?
*Me, I just use a non-mainstream langue and avoid the whole mess.
Actually there is a GPL software package released under the name "Herpes" that will debut tomorrow.
Just in time!
"Rocky Rococo, at your cervix!"
Don't get me wrong, I think mono is a great idea. But I'm worried about how closely tied it is to gnome. Not because of it taking over gnome, but because of it ignoring KDE. I think they should try and get more of the Qt stuff in there, Qt# at least should be in the standard mono dist. Otherwise you just split everyone.
I am trolling
It is pretty obvious that Mono is not making significant inroads into the free software developer's toolbox. Free software is still dominated by C, C++, and to a lesser extent scripting languages like Python, Perl, and Ruby. I should think most real hackers would be embarrased to program in C# as they are to program in Java. Because of their proprietary taint, whether real of imagined, they will never be considered the right thing. Miguel made a terrible career mistake by going the Mono route. His reputation continues to decline.
an ill wind that blows no good
While very, er, direct, parent has a point.
.NET by the Mono team steers straight into a darker and deeper pit than anything that would have been experienced in Qt.
.NET, Miguel and the Mono guys are walking on really thin ice.
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.
I remember hearing that GTK# was the way to go WRT the default mono toolkit. Bad idea. GTK on windows is pretty bad. However, I found this project which makes wxWidgets available to mono. Why oh why would you want to use gtk# over wxWidgets (which in turn uses native UI)?
The real thing that mono buys linux is a lot of application developers. A lot of people have put a lot of time and money into learning .net and its tools. They don't want to throw that away if they don't have to. So now we can say to all those folks hey you can use your .net skills on linux (or bsd etc) and poof instant linux applications.
Erlang Developer and podcaster
Your handwaving about MS pulling the plug and not allowing use of their libraries isn't a trivial issue. It's a critical problem.
.NET valuable, the same with Java. A virtual machine based programming environment is all well and good, but the standard set of base libraries in the runtime are what make it useful. Sure, you use GTK to replace windows.forms. Now, what do you do when MS decides to assert copyright over the layout of the base libraries in .NET? That stuff ISN'T standardized.
The class libraries are what make
"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."
I agree that that's their opinion.
"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."
So the best solution we could come up with is to pull a QT (at least with Trolltech, we knew they were on our side)?
"Use whatever you want, I like Python myself. What I don't like is this negative FUD campaign against Mono."
Saying it's FUD is basically saying YOU ALL ARE A BUNCH OF LIERS!. Care to go through point, by point and show us why we are wrong. Else you're no better than the FUDsters you claim to be against.
Java does not suck! Java is good.
.NET libraries make it incredibly easy and consistent to make applications. Of course, those libraries have (and never will) be submitted to the ECMA standards, so, although MONO has them, using them will still be on a gray area.
C# is more of a descendant of c++ than a JAVA clone. Even if it were a Java clone (no one can deny the influences) the improvements are vast.
On windows, on the enterprise level, the
Cheers,
Adolfo
So you need to install linux, use wine, install mono and hope none is going to sue you or mono eventually? Why not just use java to start with instead of playing ms x-plattform beta tester?
Sooner or later fanboys are going to have to admit that the CLR sucks. Mod parent up, Miguel has been monkey see monkey doing Micro$oft for far too long. The guy is a talented coder no doubt about that, it's a real pity he doesn't put his skills to better use.
From the Mono's FAQ:
Question 131: Could patents be used to completely disable Mono (either submarine patents filed now, or changes made by Microsoft specifically to create patent problems)?
The controversial elements are the ASP.NET, ADO.NET and Windows.Forms subsets. Those are convenient for people who need full compatibility with the Windows platform, but are not required for the open source Mono platform, nor integration with today's Mono's rich support of Linux.
The patents do not apply in countries where software patents are not allowed.
Hopefully, the patents will fail in the US too; not many applications can be developed without ASP.NET, ADO.NET and Windows.Forms packages.
GTK is a C API. If you don't like it, use a binding such as gtkmm or wxWidgets. Basically it can live underneath any API you care for it.
It's good but many apps end up PInvoking Win32 because Windows.Forms doesn't do something they need. Thus it isn't that portable. Even a full implementation of Windows.Forms won't do you much good for a program that makes a single call to Win32, or which drags in some "safe" C++ compiled native DLL. But getting back to Windows.Forms, it exposes some particularly non-portable things such as WndProc, windows messages etc.
The CLR & core are architecturally cleaner, but Java kicks seven shades of shit out of
I'm in no doubt that Mono is a good thing, but neither .NET nor Mono offer anything remotely as compelling as Java at the moment at least in the enterprise domain. Let's see Mono go through a birth of fire on the desktop first.
Speaking of which, I see a lot of potential there (after all half the system tools in most dists are python / perl etc. with bindings). But Mono really has to start encouraging people other than Linux users to use the open source stack - even .NET users. That means producing an installer containing the stack with some wizards & designers so that Visual Studio .NET users can use them with ease.
I think the key issue for mono is that most open source programmers are not overly concerned with Windows interoperability. Its not that they don't see the value of migrating Windows users to new open code...its that they just don't seem to care.
In any case mono is just one more Gtk binding as far as I am concerned...and there will never be an "official" Gnome language beyond C since there are too many powerful advocates in the various camps. Python would likely make the most sense (even though I am not a Python coder), but you have people still rooting for "open" Java (that which is supported by gcj) and C# via mono.
From your link: " we wanted to empower developers"
Hm... Developers... C#... Mono (monkey?)... All that sounds vaguely familiar.
Stupidity is an equal opportunity striker.
Fellow slashdotter Bill Dog
Maybe I'm a little off topic, but:
Don't you think that the Mono logo is a little bit like Miguel De Icaza?
I remember him from Comdex 1999 or 2000, and I think he looks like a chimp. (No offense)
When I see the .NET version of Microsoft Office (or any other Microsoft bread and butter product), running just as well in Linux as it does in Windows, then I'll consider Mono to be ready for prime time. Until then, Mono will always be the bastard stepchild of the .NET universe, with solutions that "kind of work, most of the time".
Everytime something like this comes up its amazing how many people jump straight in and start attacking and counter-attacking.
I definetly believe that people are very entitled to voice their opinion on any matter, but it might be nicer for everyone if people adopted a more civil approach. It might actually encourage debate rather than activate peoples "fight-mode". And on the plus side if the agrument is presented in more neutral language even the zealots might read it !!!
After all, if the point is useful then people will take it on board (well, except for the die-hards, who aren't going to listen to you anyway !).
In addition to that, most people seem to be fearful of Microsoft (generally a good approach). It might be more useful to check out what Miguel (and others) have already said about Patents/Licensing at: http://www.mono-project.com/about/licensing.html and then get back and highlight what they think is missing, incorrect or maybe plain wrong.
[ Monday is a terrible way to spend one seventh of your life. ]
I know, I know, MS is the evil empire and Open Source is the rebellion trying to free the universe and all that but I got to say that .Net is a fantastic language. I have programmed in C, C++, Java, and .Net and I have to say .Net is currently the best. Java 5 is close but it in missing a few things I like from .Net. I love Mono, and I think it works great. I have only had a few problems with it, but nothing major. It really is nice to develop server applications that can run on Windows and Linux, which is really nice for people who develop for enterprise level deployments. One company will want to use you server in a 2003 domain, the next wants it to run on Red Hat. With C++ and to some extent even Java this just does not work.
.Net system is just the best-designed environments I have seen. I would expect that you will start to see it taught in the colleges, because It allows you to teach people programming that is not language specific. Hopefully you can then get people to know VB, Managed C++ and C# by the end on college, not just Java. Then you can take the importance off learning the syntax and place it on to learning structures and algorithms. Most importantly you then teach the skill of being to switch to new languages and adapt you knowledge, to teach people ho to learn, which in the most important skill I learned in college
On top of that as someone who studied programming languages for my masters project I have to say the
The choice is yours as well, so break out the popcorn for the patent litigation!
--
Intellectuals solve problems, geniuses prevent them. - Albert Einstein
Wx looks crappy on every platform. Is this what they had in mind when they designed it for interoperability?
Well, it's probably subjective. I started programming with Java, and I found myself constantly fighting with the syntax. Java's syntax seems more esoteric than that of C#. Plus, I've found the .NET libraries to be generally more logically laid out and consistant, and the documentation better than the Java equivalent.
When are we going to see Miguel de Icaza gets Mono?
Hi,
.NET. That is a valid argument; however, it must be considered that Mono is something that, in the future, is really required for the Linux/UNIX world.
I can perfectly understand that many hate Mono simply because of the fact that it was Microsoft who designed
I suppose that those bashing Mono have never actually worked with C#. Personally, I'm really an anti-MS guy, but at work I was basically "forced" to use C#, and I must admit, it absolutely rocks. It is simply a much more productive language than C or C++, especially for GUI development. When you get a specific task, you're simply much more likely to get it done and get it stable within a given time in C#. The biggest productivity gain (besides the syntax candy, like foreach loops) comes from the garbage collection. Sure, other languages like Java have that, too. But, as far as typical DESKTOP applications are concerned, Java has failed to gain popularity both with users and developers (I suppose the major reason is that Sun took way too long to finally allow Java GUI apps to integrate themselves seemlessly in the desktop by adapting a "native" look & feel; but that's another issue).
Linux apps have done a great job in the past years in getting competitive to their Windows counterparts. So, if Linux wants to stay competitive with Windows in the future as well, there must be a similarly productive language for GUI development on Linux. Standard C/C++ with GTK+ and QT can certainly compete with the horrors of MFC easily. But, in my opinion, not necessarily with the combination of C#/Windows.Forms, as far as speed of development is concerned.
Also, if we want to see more commercial applications to run on Linux, there must be a way to easily develop portable GUI apps. Imagine you're the boss of a smaller software company. You develop Windows apps, your customers all use Windows (welcome to the real world!). Maybe 3% of your customers consider switching to Linux. And now you're starting that new software project that must be finished within a certain time. What are you gonna do? Buy QT, and tell your developers to start learning it? Use GTK, with all related problems on the Windows platform, and tell your developers to start learning it? Nope, that's not what the typical boss is gonna decide. He'll let the developers use what they're used to, M$ visual studio, where they can click together the GUI. He'll tell the 3% of the customers that Linux isn't supported.
And this is exactly what may change with Mono!
And talking about the patent issue: Giving up on Mono because of potential patent issues would mean giving up on the patent issue itself. Mono could be the best "bad" example how software patents support a monopoly and limit interoperability. The fight against software patents isn't over yet. At least not in Old Europe.
bye,
Till
You were rather quick to jump ship, because the said prospect never materialized and is unlikely to materialize any time soon.
My exception safety is -fno-exceptions.
Mono needs a bit of work to work with PaX, but it's possible. I mentioned the necessary changes 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).
Support my political activism on Patreon.
Can I just run a Mono app on Linux that was written on/for .NET? When Mono is in full release, that is.
--
make install -not war
The .NET API is an open standard. The best thing Microsoft could ever do for Mono would be to sue it. The publicity and attention and droves of users/developers it would get would be monumental. They'll ignore it.
The absolute major problem with the way I feel Miguel has handled the Mono situation is that he constantly refers to ".NET". It's as if he somehow thinks he's going to outsmart Microsoft or something. You can't beat Microsoft at embrace and extend, you have to change the game. .NET is a MARKETING TERM!!!!!!! Don't you remember when it originally got tacked on to every single Microsoft product? Saying Mono is an Open Source implementation of .NET is ignorant at best, and misleading and irresposible at worst. Just stick to C# and CLR and make no mention of .NET at all. Otherwise, they will continue to show me just how absolutely pathetically naive they (especially Miguel) are. .NET is basically Microsoft's brand, and Miguel will never establish authenticity, originality, etc. by latching on to a MS brand. Sure, take the best stuff, build on the shoulder of some giants, but have some !@#$ business sense. Doesn't he work for Novell now? He should have a powow with a marketing intern and receive some lessons on basic marketing.
If they managed to do that, I might start to consider using it. It's a pretty amazing piece of technology, but don't let yourself be blinded to every other issue because of some neato tech toy fetish worship. As it is, I'm just appalled at how stupid they have been with this. They are just playing right into Microsoft's hands, sticking their head into the guillotine as Microsoft gives them some nice flowers to smell and pretty pictures to look at. Fucking so fucking pathetic.
"We have to think of the big picture. Mono can draw windows developers over to Linux, and this can produce more applications for Linux. The more the merrier, especially in this phase of the game where Linux trying to attract more users. "
Call all you want. Just make certain that when they get here. That you all don't set up an hostile environment for them.*
*Note that the OP "tuned" the kernel, and note the last link smells of entitlement ("They leverage this "free" work and then get stingy when people ask that they contribute back.").
That's not true. For example, most current Mono apps use Gtk# rather than Windows.Forms. Windows.Forms hasn't even been implemented much in Mono until very recently.
Basically Mono "embraced and extended" .NET and introduced their own competing API stack (though they have made efforts to implement the MS APIs as well).
DNA just wants to be free...
> It really is nice to develop server applications that can run on Windows and Linux, which is really nice for people who develop for enterprise level deployments. One company will want to use you server in a 2003 domain, the next wants it to run on Red Hat. With C++ and to some extent even Java this just does not work.
.net? BTW, .net has less platform support than the Java VM, so your statement is really misinformed.
What doesn't work? People have been doing server side Java development for a long time now, and you tout this as an innovention from
- sigs are for wimps.
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?
90% of everything is crap. Also, crap is relative.
I mean geez - Mononucleosis as a job requirement? No thanks.
Any sufficiently simple magic can be passed off as mere advanced technology.
Sun's Java books still recommend TextPad, which is a great editor, but MS has the Visual programmers by the precious parts. Yes, there are IDEs for Java, but they're optional. I don't know any C# developers using something other than VisualStudio.
Of course, then there's the minority of Mono programmers...but they aren't put off by Java's "complexity" of package naming convention as some C# promoters claim. They're seasoned developers and can work with whatever they so choose. They are choosing Mono. Good on 'em, I say.
Visual tools... that's what enables the common programmer.
-- @rjamestaylor on Ello
Nonsense, you're misreading diplomacy, Miguel and Novell would love to have mono become part of Gnome's core.
Quite a rarity, this... an Mono-skeptical post that is written in a rational tone, as opposed to just freaking out because hey, M$. I will therefore append my opinions to it, such as they are.
It's good but many apps end up PInvoking Win32 because Windows.Forms doesn't do something they need. Thus it isn't that portable.
True, but that's because those people aren't trying to write portable code. I don't like Windows.Forms and I don't think it encourages portability at all; but luckily there's nothing to stop people who want to be portable from using something else. I would rather see work done on whole new GUI kits, than see a perfect Windows.Forms on Linux.
The CLR & core are architecturally cleaner, but Java kicks seven shades of shit out of
I'd say that
neither
My industry (which invested HUGELY in Java) does not agree -- there are lots of
But Mono really has to start encouraging people other than Linux users to use the open source stack - even
I agree 103%. That is absolutely the best thing they could do. As things are, most people write
I'd do that, but ironically I'm busy writing old-style C code for a less forward-thinking open source project.
Whence? Hence. Whither? Thither.
No mo' mono!
No mo' mono!
No mo' mono!
So what exactly is this going to get me over say something like using Python and the soon to be released gpl qt for windows? Python is a way more productive language than either C#,C,C++, java or VB so what is the benefit?, I just don't see it.
Got Code?
I'll say it again: MS is a big company with lots of people in lots of suborganizations. These people do not have one unifed goal. Indeed, the goals of one group often run at cross purposes to the goals at another. You can't always assume you understand Microsoft's motives for doing something based soley on how Microsoft (or rather, one particular arm of Microsoft) behaved in the past.
Can you support your comment? CLI and C# are ECMA/ISO standards but .Net API is not. Please provide a link showing it otherwise.
"I think this line is mostly filler"
The core of the .NET Framework, and what has been patented by Microsoft falls under the ECMA/ISO submission. Jim Miller at Microsoft has made a statement on the patents covering ISO/ECMA, (he is one of the inventors listed in the patent): here.
Basically a grant is given to anyone who want to implement those components for free and for any purpose.
If you want to accept such grants without a signed document saying that you are allowed, for all the life of the patents, to use such patents without any kind of compensation, in money, cross licensing, no agression treaties or such other conditions, then it's up to you. Saying the risk is not there is not right, until the patent holders provide such documents.
Later in that question they talk about ASP.NET (non ECMA) and other things, which are also patented, but they'll try to avoid the patented methods. The ECMA parts are still patented and required for MONO, and all they can show is an afirmation in a mail list, that says "royalty free and otherwise RAND". RAND can be .25 cents per program copy.
"Bitching an moaning about a project is not gonna get anyone anywhere except if and when the project crash and burns you get to say "I told you so.""
I'm certain the "losers" will appreciate that.
"The only way to stop Mono is to offer a better alternative."
Are you saying there isn't? Maybe I should start in early on my disappointment with the OSS process?
"Developers will not decide to go back to inferior tools simply because they're not entirely sure how legal their tools are."
So once again "convenience" overules "common sense". I wonder if those who chose binary drivers will continue to make that choice (or have that choice) in the face of DRM in their drivers?
Microsoft released portions of the CLR (Common Language Runtime) and C# for standardization. The real nuts-and-bolts of .NET are decidedly NOT an open standard. This is what concers many people.
.NET is a wholly controlled "standard" by MS then Mono will be on the same treadmill that WINE and other groups chasing MS implementations have been on.
Additionally, since
--- I wish I could hear the soundtrack to my life. That way I'd know when to duck.
I would bet Sun's lawyers would intervene before GNOME were at risk. Integrating Mono into GNOME without being sure about patents would be insane.
-- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
Turns out I was just really bored
You can claim that Mono is FOSS but there are huge patent questions regarding implementing certain portions of .NET. Now Miguel and company have talked about "routing around" or simply not implementing portions that they can't do because of patents but if it's not compatible then there are going to be problems. Additionally, those patent problems could keep entire portions of Mono from being implemented because of similarities to .NET functions.
.NET?"
Meanwhile, Sun has legally committed themselves to allowing FOSS implementations of the Java spec. This includes licensing agreements for any relevant patents that would hinder a standard FOSS implementation.
Now you might bring up the "but Sun controls the spec" controversy. To answer that I'd ask: "Who controls
--- I wish I could hear the soundtrack to my life. That way I'd know when to duck.
I find that most of the exciting applications I recently discovered are mono based: muine (you must try this one if any), f-spot, and beagle! tomboy seems cool too.
Yes but Sun and IBM (both strong GNOME contributors) would balk at it in preference to Java.
In the end, Python seems to be the clear front runner in the high-level GNOME programming language category.
And Java has a hell of more production sites than Mono.
"I think this line is mostly filler"
Hello,
Yes, "Java has a hell more production sites
than Mono". This is whats wrong with this
argument: if "having more production sites" is the
metric to choose a technology over something new
then we would still be running code in assembler
and Cobol. After all, there were more production
systems written in those than in C, C++ or Java
when these languages came out.
Love,
Miguel.
Ohh, they'd be sure about patents alright, sure that they had cross-licensing deals in place so that they can co-opt other peoples work and prevent GNOME running on anything other than OpenSlowaris! What do you think the MS settlement was really about?
I want you to think about Ballmer and McNealy lying in bed together, pleasuring each other. Not a pretty picture is it?
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.
"The problem with patents is that they will cover
the concepts, not the implementation."
So basically you're telling us two things. One Novell's patent search for prior art was successful. Two Novell will fight MONO's legal battles for them.
Glad to hear things are looking up.
better and freeer cross platform tools and infrastructure already exist.
and who wants to run DLLs on their linux box anyway ?
Well, there is one good thing about what miguel is doing--he's holding MS' feet to the fire. If they come after the mono project, or one of the subprojects, it will be more proof that MS is disengenuous about their free standards.
Anders Hejlsberg did NOT design Pascal. Dr. Niklaus Wirth did in 1971.
Offtopic, but do you like XFCE better? Perhaps this was a good thing for you =)
Keep dreaming Python zealot. Python is a niche language used by a few noisy loons (and bizarrely, by Red Hat for lots of it's admin apps)... it has exactly ZERO chance of of being THE language for GNOME. Java and Mono provide a base which lots of languages can target (Mono moreso than Java) -- but Python is, and will remain, a little oddball language it's own little oddball VM.
Should GNOME be stupid enough to standardise on Python, it would be consigning itself to obscurity. Sorry, I'm sure that's not what the noisy Python zealots want to hear, but it is the truth.
These conspiracy theories are just nuts. Sun does not want to co-opt GNOME. If you believe this, you are truly a first-rate moron.
"Well, in its current state, Mono is free - afaik, its based on recognised ISO standards which are protected from lawsuits. "
So basically you're telling us that some members of the community feel that RAND as a practice are acceptable?*
*Not surprising. The same group feels that binary drivers are acceptable.
Miguel;
.Net because Java is not multi platform enough for server side development.
The point wasn't, nobody's using Mono so it's not usable. The point was that the original poster was saying that he's using
I find that interesting, specially when yes, as the poster you replied to said, Java is used way more on "production sites".
- sigs are for wimps.
Mono may be a reimplementation of an MS product, even looking at the source, you'll notice a folder full of *nix implementations of windows API calls. But what does it really matter if it does the job you need it to?
.Net includes a set of security features that help to lock down scripts fairly tight, the problem being, our app has to be cross platform. This started us looking into Mono, which doesn't implement all the security features -yet-, but by our planned release date, they should be done, or very close.
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?
The world needs more "GUI kits" for yet another platform like it needs more poverty and war.
Have we met?
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.
.NET products reflect badly on Mono. Mono's job is to implement .NET; if you include a whole bunch of MFC or something then it's not going to help you.
.NET is proving very productive on the client side. Pity about Windows.Forms -- but I understand why it is like it is. Actually, the main problem I've had with client-side .NET is performance -- it's faster than Java but it's _much_ slower than MFC, specially if you use GDI+.
Owie.
Unless Mono links to the whole of winelib and provides x86 emulation for non-x86 hosts, this code will never run outside of Win32.
I guess not. I mean, it doesn't sound like it was intended to.
That's the real world.
It's certainly bad -- I hardly think it defines 'the real world'. Neither MS nor Mono can prevent decisions like that one being made, or make the C++ legacy code in the world disappear.
To be honest, I'm a bit confused as to why you think your legacy C++ code and your decision to embed it all in your
Elsewhere, however,
Whence? Hence. Whither? Thither.
Unfortunately, .NET sucks pretty badly on the client side too. It suffers from the same startup and memory consumption problems as Java. If there came a point where people had to use multiple .NET apps together, they would find it only slightly less irritating than using a bunch of SWT Java programs, which is generally undesirable as it is.
And SWF is not only a dead-end with respect to Microsoft's intentions, it's not even a good API now. But GTK# isn't any sort of solution, because the Win32 port of Gtk+ is not especially robust and basically no one will use it no matter how easy you make its use from Visual Studio.
I doubt Stallman would stand for such a thing... remember that Gnome is part of the gnu project.
"A truly wise man realizes he knows nothing."
Besides RedHat's configuration tools, Gentoo's Portage leans heavily on python.
Additionally, such killer libraries as PyMacs, boost::python, and the conspicuously-absent-within-your-troll Jython, show that the snake is quietly slithering where few have been able to go.
Or, maybe you could consider the insane amount of comp.lang.python traffic.
Python's biggest weakness, execution speed, is exactly the least important thing in a scripting language. Its strengths are legion and will continue to increase.
Props to the BDFL.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
Eric Raymond.
That was the original plan.
DNA just wants to be free...
That's one area that needs a lot of work. My complain about mono is that they suffer from the same tunnel vision other F/OSS developers do: The open source world is not a Linux box guys. Until mono is even remotely usable on *BSD (my main interest is FreeBSD) I'll keep using java and python.
I thought the problem was that Microsoft told everybody that they didn't have any patents on C# or .NET, but they are actually a licensee of somebody else who has patents on it?
.NET are two different things.
.NET. It is a huge collection of APIs, many of them Windows specific. In a trial balloon, Microsoft has attempted to patent the totality of those APIs. What the significance of that patent is going to be isn't clear--it may not be worth the paper it is written on.
.NET, you don't have to use it: most open source applications developed in Mono are written using the Gnome APIs, not the .NET APIs.
Well, let's be precise. C# and
C# is an ECMA standard with features that are found in dozens of other languages. There is no indication that there is anything patentable about it. In fact, if you look at the C# specification, it is clear that they have been careful to avoid patents that Sun owns on Java (yes, Java is patent encumbered).
Then there is
So, what's the upshot of it all? You can't avoid the risk of patent infringement no matter what language you use. However, at this point, it is pretty clear that C# exposes you to no greater risk than other languages. As for
It's not an ideal world, but if you want a reasonably popular and practical natively compiled language with garbage collection and reflection, your choice basically comes down to C# and Java. Java is completely owned by Sun: Sun owns the specifications, Sun holds many patents on it, and Sun effectively can control who may implement Java and who may not (they have chosen not to exercise that control vis-a-vis implementations like gcj and classpath yet, but if they want to, they can). C# may not be the ideal choice, but it's the best you are going to get.
From the licensing FAQ section of Mono's own website:
.NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms.
.NET Framework, and what has been patented by Microsoft falls under the ECMA/ISO submission. Jim Miller at Microsoft has made a statement on the patents covering ISO/ECMA, (he is one of the inventors listed in the patent): here.
.NET Framework?
.NET Framework, as well as plenty of class libraries that are either UNIX specific, Gnome specific, or that are not part of the .NET Framework but people find useful.
"Question 131: Could patents be used to completely disable Mono (either submarine patents filed now, or changes made by Microsoft specifically to create patent problems)?
First some background information.
The
Mono implements the ECMA/ISO covered parts, as well as being a project that aims to implement the higher level blocks like ASP.NET, ADO.NET and Windows.Forms.
The Mono project has gone beyond both of those components and has developed and integrated third party class libraries, the most important being: Debugging APIs, integration with the Gnome platform (Accessibility, Pango rendering, Gdk/Gtk, Glade, GnomeUI), Mozilla, OpenGL, extensive database support (Microsoft only supports a couple of providers out of the box, while Mono has support for 11 different providers), our POSIX integration libraries and finally the embedded API (used to add scripting to applications and host the CLI, or for example as an embedded runtime in Apache).
The core of the
Basically a grant is given to anyone who want to implement those components for free and for any purpose.
The controversial elements are the ASP.NET, ADO.NET and Windows.Forms subsets. Those are convenient for people who need full compatibility with the Windows platform, but are not required for the open source Mono platform, nor integration with today's Mono's rich support of Linux.
The Mono strategy for dealing with these technologies is as follows: (1) work around the patent by using a different implementation technique that retains the API, but changes the mechanism; if that is not possible, we would (2) remove the pieces of code that were covered by those patents, and also (3) find prior art that would render the patent useless.
Not providing a patented capability would weaken the interoperability, but it would still provide the free software / open source software community with good development tools, which is the primary reason for developing Mono.
The patents do not apply in countries where software patents are not allowed.
For Linux server and desktop development, we only need the ECMA components, and things that we have developed (like Gtk#) or Apache integration.
Question 132: Is Mono only an implementation of the
Mono implements both the
Credits"
Additionally, I don't see any objections to Java being used in the Linux world. And yet:
- Both are backed by software giants
- Both companies have traditionally been fiercely proprietary
- Both of them offer a new language/platform.
- While C# is now an ECMA standard, Java is still architected by Sun's engineers (even though Sun can claim that they have a "community" process
for extending the language/specs)
- Both have patents of various aspects of the implementation.
- Both have proprietary implementations in the market.
- Both have evangelists eager to win converts to the new platform.
- Both the corporations are profit driven.
So why is Java okay?
The prospect of GNOME becoming dependant was the straw that broke the camels back and made me switch to XFCE,
.NET APIs, they rely only on ECMA C#.
.NET patented API out of GTK!
.NET APIs in Gtk+; Gtk# is a Gtk binding for Mono, not the other way around.
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.
Well, sure, it's and ECMA standard, but we're in the brave new world of software patents where you can take two items that are in the public domain and combine them in a trivial way to create "intellectual property". It's not supposed to to be that way, I know, but we all know it happens.
Suppose the IP in question is not in mono's C# or CLR, but in their Windows.Systems.Forms, or even in the way they implement GTK. It might be that Microsoft holds patents important to either doing certain things on top of the CLR, or in even implementing a CLR to the ECMA standards in the most obvious and efficient way.
Let me be clear, I have no issue at all with the Mono people doing what they are doing. The evil lies in software patents and the uncertainties they create. Nobody can really know what is allowed without a legal research team. Nobody can do what is supposedly allowed without resources to defend themselves against stategic lawsuits.
Just as freedom of speach belongs to the man who owns a printing press, freedom itself belongs only to the man who has a legal staff.
Because of this situation, which is not Mono's fault, I'll take a pass on Mono, and wish them luck. What I would need to take a serious look at them is any one of the following:
(1) A major company (Novell) stepping up to bat and indemnifying Mono users against IP lawsuits.
(2) Microsoft agreeing to grant a license of any of its patents to users of a particular version of Mono.
(3) An end to software patents.
Granted, it is possible that other systems such as Java, may infringe on Microsoft patents. But given that Mono is following Microsoft's lead here (or at least working in parallel), it strikes me as risky.
Is the FUD. Well, I suppose it could be. But just because you're paranoid doesn't mean they aren't out to get you.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
The real nuts-and-bolts of .NET are decidedly NOT an open standard. This is what concers many people.
.NET are not an open standard. But it's wrong to refer to those as "the real nuts-and-bolts", which falsely suggests that Microsoft kept important portions of the low-level foundations of C# proprietary.
.NET is a wholly controlled "standard" by MS then Mono will be on the same treadmill that WINE and other groups chasing MS implementations have been on.
.NET at all because they won't be using .NET; they'll be using C# with open source APIs.
.NET, for example because you are developing a Windows application that you also make available on Linux, then, of course, you are dependent on the .NET APIs, but that's because you chose to use .NET. Mono is doing the best job they can in giving you that capability, but even if they fail, it just won't make a difference to open source developers.
Yes, large parts of
ECMA C# is a complete and powerful language and set of libraries--far more complete than C or C++. Together with the open source APIs that already exist on Linux (Gtk, Gnome, etc.), it gives you a fully open and documented platform to build applications on.
Additionally, since
Most open source Mono developers won't be affected by
If you choose to use
Also note that Mono is in a far better situation in this regard than open source Java efforts: Sun has draconian compatibility requirements with which they may be able to shut down any open source Java project whenever they choose.
I agree with the points you listed. There are some more advantages of C# over Java, in addition to the ones you already mentioned:
* Multidimensional arrays
* Unsafe code is portable and written in C# itself
* Call-by-reference
Since when is Message Queuing being phased out by Microsoft?
The Python GTK+ bindings are the only thing keeping GTK+ running on my home system at all. pygtk makes using GTK+ a breeze. And I don't consider myself of GUI programmer type.
Meanwhile, Sun has legally committed themselves to allowing FOSS implementations of the Java spec. This includes licensing agreements for any relevant patents that would hinder a standard FOSS implementation.
Sun has not "legally committed" to allowing FOSS implementations of the Java spec, they haver merely stated their intention, something with no legal significance. Even if they had legally committed, Sun's compatibility requirements make it practically impossible to create FOSS implementations.
Sun is trying to lure the FOSS community into a legal trap with Java. At this point, it's pretty clear that this is not Sun screwing up anymore, it's a deliberate strategy. Java is not only legally encumbered, it's also owned by a company that has demonstrated that it can't be trusted.
I don't care whether you use C#, but whatever you do, if you care one bit about the ability to create FOSS, do not use Java.
it was a log time i didn't had a new mono vs XXX(put your language here). Personnaly i just wanted to warn people about mono and c# ( delphi like) RAD tool.. BE CAREFUL guys, i develop in delphi and java from a long time and this is my conclusion actually : Delphi's like RAD tool make you build a nice little app in a day but don't even think to change your interface later. Java app are longer to build and more complicated but easier to maintain ! ( just because of this over-designed classes:) so... small app = c# , big app = java :)
well.. IMHO
These languages have critical mass and are free. I won't mention viable alternatives such as Ruby because I grant that the developer base is tiny.
The choice between Qt and Gtk+ is pretty easy: functionally, they are similar, but Gtk+ is LGPL. Therefore people can develop commercial apps with Gtk+ without paying anyone, and if you are creating a platform that you hope will attract Windows developers, that matters.
In the long run, it doesn't really matter what they pick now, since both Gtk+/Gnome and Qt/KDE are obsolete. Mono will likely get a nice, managed toolkit that evolves out of its Gnome bindings.
You mean besides the full SDKs that exist for Perl, Python, Ruby etc including good Gtk (and Qt!) bindings??
The use of the term .NET with Mono is problematic. Mono implements large parts of .NET, but it also has its own set of APIs. By linking Mono so closely to the .NET name, the project reinforces the notion that they are completely subject to Microsoft's legal and platform strategy with respect to .NET. But the fact is that .NET and .NET compatibility in Mono could disappear tomorrow and Mono would still be a great and enormously useful project.
Jython, show that the snake is quietly slithering where few have been able to go.
Techie toys that have never been anywhere near a production environment don't count. Python is about as minority a language as you can get -- it'd be like GNOME dictating that its HLL of choice is fucking Haskell. They'd be a laughing stock.
All that time these guys spent working on mono just to catch up to .NET 1.0 (which is already "legacy" now), wouldn't it have been wiser spending it to contribute to more valuable GNOME-related projects??
Ok - here's the rub. C# and the CLI specifications are not only ECMA standards - but they are now ISO standards. Just like C++ and the STL... Just like C...
What many of you don't realize is that if companies hold patents on mechanisms related to software development programming languages, compilers, parsers, lexers, interpreters, verifyers, runtimes, etc... this is not going to stop them from SUING ANY INFRINGING IMPLEMENTATION...
What is potentially vulnerable? Everything:
Basically, until some company decides to litigate NO ONE KNOWS which software may be infringing.
Patents are exactly like an arms race featuring nuclear weapons - everyone has to have 'em - but once the missiles begin to leave the silo's, there will be hell to pay...
That's a "no" then?
"If you choose to use .NET, for example because you are developing a Windows application that you also make available on Linux, then, of course, you are dependent on the .NET APIs, but that's because you chose to use .NET. Mono is doing the best job they can in giving you that capability, but even if they fail, it just won't make a difference to open source developers."
.NET world.
Well there goes one of the justifications for the MONO project. "Let's create something that will make it easy to bring the Windows developers over.". That just leave's "Let's create a great development environment for Unix/linux programmers". Gee, my faith in the OSS movement is shaken. We can't do one better, or even spetacularly better. Just let's copy what MS does, and hope that they don't hurt us.
"Also note that Mono is in a far better situation in this regard than open source Java efforts: Sun has draconian compatibility requirements with which they may be able to shut down any open source Java project whenever they choose."
I love freedom as much as any other, but there are limits to freedom. You want to call yourself "Java" and play well with the rest of the "Java" world then yes you have to give up some freedom, to gain all the other benefits.*
*A similiar argument can be made for the
I've never heard these guys before. They're amusing and all, but they're kind of like the Bevis and Butthead of the Linux commentary world, aren't they?
Cheers,
Richard
I'm not dissing Mono except to say that this is the kind of junk it will have to handle. Granted this is an extreme case, but I'm not aware of a single in-house
Even Microsoft doesn't care about cross-platform calls. They just released an Enterprise Library that contains no fewer than 16 imported Win32 function calls that are called 44 times directly.
If Mono and its stack could be made more prominent to
"Even if they had legally committed, Sun's compatibility requirements make it practically impossible to create FOSS implementations."
.NET does it, it's fine. Java does it, it's bad.
The Blackdown developers will be surprised to hear that.
"compatibility requirements"=="standards"
what a moronic post! .NET is the collective name of the development framework you idiot, it's the CLR and the FCL combined. They initially tacked it onto product names to pump up support for it and they've stopped doing that now that it's known. Its no more a "marketing term" than Java or J2EE! And finally, if the name is what's stopping you from using a "pretty amazing piece of technology" then you must be a very pathetic developer....
Java was a technical advance over C++ etc.
Mono is not a technical advance over the Java platform, it is (as of October 2004 when the 100% compatibility goal was abandoned) a pointless knock-off.
Structs:
Important for the efficient implementation of custom math types.
Unsigned numbers:
Important for image and video processing.
Support for caching native code:
Important for reducing the startup times of GUI applications.
Support for multiple languagues in the CLI:
Important for migrating existing applications.
Miguel:
.Net and Mono. People thinks that they will just use their .Net applications in Linux by Mono. I understand this will not be so unless all of .Net APIs are implemented in Mono, but those APIs (like Winforms) are MS patented? Can an API be patented or only the implementation?
I didn't want to imply that, just to point that Java has a kind of proven track and that Mono has yet to achieve that point. Of course that means nothing of the merits of Mono, which I wasn't questioning. I use Java in multiple platforms, something that the grandparent of my post mentioned as not working, something it's clearly wrong to me.
There's nothing preventing using Mono, but it is expectable that most people will wait until there's enough critical mass of installed base so they feel safe. After all, who installed Linux at first? students, hackers, people who wanted to experiment. Now you have IBM, HP, Sun, etc. Change happens but usually needs some time to happen.
BTW, something I don't like is people confusing
Good Luck, from Argentina
Alejandro
"I think this line is mostly filler"
"The best thing Microsoft could ever do for Mono would be to sue it."
Because we've seen how businesses make sane, level-headed decisions about IP problems with software?
Miguel,
I'm a fan of your work and of Mono in particular but why are your posts formatted like emails?
Cheers,
Anonymous Coward
"Case sensitive" means that "A" is not equal to "a". "Case *IN*sensitive" means that "A" is equal to "a".
The fact is, "case sensitive" (or more accuratly "bit pattern sensitive") is the correct way to do a file system. This is an underlying fundemental service of the OS and it should be *SIMPLE*. Anybody who thinks there is some advantage of programming a user interface issue into the underlying system is just completely clueless (and it is alarming how many people are clueless here!). Files should be identified by a string of bytes, with a minimal set of reserved bytes, and if two byte strings differ, then they must be two different files.
Saying "the file system should be case insensitive" is the same as saying "the computer should store numbers so that all numbers larger than 100 are equal, since humans can't really tell them apart, so that would be more user friendly." This completely discounts the fact that a "user friendly" program could easily and trivially print all numbers larger than 100 as "larger than 100" and thus achieve identical user friendliness, while allowing the lower level to be much more powerful and simpler. For some reason though, the proponents of case-insensitivity have blinders and cannot realize that any and all of their "solutions" could be done trivially by higher-level software.
In fact they make things worse. I can name a file "file" and another one "fi1e" on Windows and it does not do anything to save me. I can put a trailing space in a filename or imbed two spaces instead of one and it thinks they are different. These mistakes are just as bad as case errors, but because so many people have been brainwashed into believing it cannot be solved except at the file system level, nobody has addressed this (plus the fact that case-insensitive file systems make it much more difficult to cleanly implement spelling correction like this).
The truth is, case-insensitivity is a relic and if you think there is a good reason for it, you are WRONG!!! Anybody who thinks case-insensitivity is harmless should realize we would probably have had utf-8 internationalization 10 years ago if it were not for this. I also suspect networked file systems would be much further along today and interoperable.
The .NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms.
.Net and Mono to Classpath, because those are similar proyects. :-) .Net there is only Microsoft one. .Net is at least good. .Net doesn't have it. (Mono isn't an option right now)
Mono implements the ECMA/ISO covered parts, as well as being a project that aims to implement the higher level blocks like ASP.NET, ADO.NET and Windows.Forms.
This is exactly what I was saying. ADO.NET, etc are not open standards.
And now with respect to Java:
One difference may be that until now there are no really complete enough open source implementations, though efforts like GNU classpath are advancing.
One should compare Java to
It's suposedly ok to build an open source Java becasue the Java Community Process (JCP) organization has say so but we will not know until someone really has one finished
Another difference is that there are many implementations like BEA JRockit, while in
On other aspects are similar. I just have less trust in Microsoft but I think that technically
What I really like about Java is:
-platform independency (it works wonderfull for me).
-I don't have to reinstall the operating system or reset the computer if something goes wrong, just the process. With MS seems that everything is part of the OS.
"I think this line is mostly filler"
*Python is a niche language used by a few noisy loons (and bizarrely, by Red Hat for lots of it's admin apps)
Besides RedHat's configuration tools, Gentoo's Portage leans heavily on python.
Thus proving the original poster's point nicely...
Comment removed based on user account deletion
"Read some history."*
"Gnome started the whole desktop wars, not KDE."*
It's nice knowing that governments aren't the only ones we have to worry about when it comes to revisionist history.*
Nope, it wasn't the usual suspects.
- What apps built with mono can I currently run in the standard Microsoft
.NET runtime enviroment unaltered, or visa-versa ?
- What steps have you taken to insure that above statment will continue to be true as future versions of
.NET are released from Microsoft ?
IMHO, Mono cannot be taken seriously as a commercial development environment unless these two questions can be answered.I furthermore believe the mono team owes the development community answers to these questions since countless development man-hours will be wasted on mono based projects if this vision proves to be untrue.
"What problems did you have with Java platform compatibility?"
He couldn't get "Hello World" to work.
It seems strange that your questions do not actually have anything to do with the statement you quoted...
If I can write an application on linux under mono, and run it on windows under mono, would that count as cross-platform? I have done that. So have others.
How would future versions of MS' product change the state of the current mono implementation?
-Mark
Here's David's questions concerning MONO and the legal aspect.
"Gnome started the whole desktop wars, not KDE."
I was there. I'm not talking about why Gnome was started. I'm talking about how the whole issue got started in the first place.* The desktop wars didn't just spring up out of nowere.
*Yes the issue revolves around QT's licensing. Now can you tell me how that bit of history proceeded?
I think he pretty much proved that it's open and always will be.
What parts of...
.NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms. Mono implements the ECMA/ISO covered parts, as well as being a project that aims to implement the higher level blocks like ASP.NET, ADO.NET and Windows.Forms.
...were unclear? Mono implements the ECMA/ISO covered technologies of .NET--an open standard. In addition, it also attempts to implement that which is not covered, which is the part some people have some sort of problem with for some reason (I guess they don't have a problem with projects like Wine). However, there are already replacements for those high-level blocks, like GTK#, so it doesn't really matter.
The
This is exactly what I was saying. ADO.NET, etc are not open standards.
.NET is. If your issue is with high-level stuff like ADO.NET, okay. But you questioned that .NET is an open standard, and I referenced the Mono FAQ to show that a lot of it is, including the base infrastructure.
But the rest of
I think we disagree on the terminology. I'll clarify my point of view.
.NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms.
.NET = core + high-level-stuff
.Net is the sum of core and high level stuff, calling the core .Net is at least confusing things. Many people in this discusion talks like .Net is an open standard when it is not. Just the core part is.
From the faq: The
core = C# + CLI
high-level-stuff = ADO.NET, ASP.NET, Windows.Forms
core is ECMA/ISO standard
high-level-stuff is Microsoft propietary stuff.
"I think this line is mostly filler"
The one critical issue regarding apps under Mono is the GUI development issues for cross-platform development.
There is the Windows.Forms implementation, and then a similar effort under Linux, but the portability between the two platforms is difficult at best, primarily because the two environments have such a huge difference in basic API archetechture, especially at the component level.
That said, there are efforts to try and overcome these issues, and for non-GUI applications (command-line or content servers) Mono works equally well in both Linux and Windows.
I believe you misunderstood my post, and the statement I quoted from Mono. I asked if you can interchangebly use .Net assemblies in a Mono environment, and Mono assemblies in .Net environments.
If I read yours correctly, you are talking about running Mono assemblies in Mono enviroments, which is not what is implied by the Mono project vision.
Do you agree ?
"Quite the opposite, I think what the Mono developers are doing are a perfect use of their time and I look forward to future developments in the way software project should properly be done."
AND
"So if you think they're wasting their time and not yours, shut up and watch. "
*Taps Rich on the shoulder*
Free speech isn't about people saying what you want to hear. Free speech is the ability to say what one feels needs to be said.
If you have the right to say what you did above? Then the OP you're replying to has the right to say what he has to say.
And yes, some do feel it is a waste of time, however that's not the issue "I" have with MONO. "Wasting of time" is the least of the issues, be it MONO, or KDE.
Reading this thread (and others like it) has convinced me that M$ has already won with Mono - nothing else has managed to split the Linux community so deeply.
Congrats Miguel, well done.
I got sick from a MS Windows Class Library that couldn't port natively. The days I spent eating chinese pork from a rundown restaraunt trying to port that damn class, I think I got sick. After getting Mono, it cleared up and saved everything without a trip to the bathroom. Mono broke my bad MS fever. Mono can cure MS. Actually, I couldn't get an approved install of IIS on my company's computer to see how they ran an app. MONO saved my life.
Love you too,
Kent
You know where you are? You're in the $PATH, baby. You're gonna get executed!
Why you're me...and I'm you...
I don't misunderstand you at all. I challenge your very narrow definition of "cross-platform." It seems like your definition requires a guarantee that all future versions of mono will always have complete feature parity with .net.
By your definition, Java is not cross platform because Sun's JVM doesn't support GCJ's CNI.
-Mark
You have swallowed the .NET marketing hook line and sinker!
.NET and C# become ISO standards unlike many of their past developer tools and languages.
.NET and the reason this is so exciting is that .NET *MIGHT* be able to run on Linux in a few YEARS. How does this benefit Linux? Java guys love Linux and really don't see what all the fuss is about Mono.
.NET/mono ever will. Java guys love Linux and it is their platform of choice. Windows is the platform of choice for .NET. Brain dead idiots using VB.NET have no interest in Linux.
.NET guys generally hate Linux and think MS is "the only way to go". Only religous Open Source fanatics care about Mono. There are millions of Open Source friendly folks using Java and most companies have Java-based systems.
MS Actually let
Microsoft makes a show of submitting C# and the CLI as standards. That is only useful if you want to implement "Hello World". Most of the useful bits are patented: WinForms, ASP.NET etc. etc. etc.
You are simply trotting out Microsoft marketing material.
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!
Since when did folks using VS.NET have ANY interest in or sympathy for Linux. The fact that they chose VS.NET in the first place makes it very clear that they have no interest on cross-platform compatibility. No large company in their right mind would deploy Mono on their production servers.
You are out of touch with reality.
run our client programs on Linux workstations, if requested by a customer
Let me get this straight. You were using Java (which runs on any platform) and switched to
So does Java. Mono is FOSS. Is Java?
You miss the whole point. PATENTED ASP.NET and Winform are not free - They come from MS (knock knock!).
Java has done more for Linux usage than
Java guys are working on an open source implementation of Java: http://www.gnu.org/software/classpath/
You can already get the Java source code with the JDK - can't say the same for MS.
The whole point of "drconian compatibility requirements" is that Sun/IBM/Oracle etc. are obsessed with compatibility. Is that unreasonable. Mono is not compatible with VS.NET applications. The whole industry is behind Java: IBM, Oracle, Sun, Apache etc. According to a recent (14Feb2005) poll at java.net over 96% of Java programmers use Open Source software every day. They love Open Source. MS and
A toolkit (such as GTK) being LGPL:d means that a company can make a comemrcial app _without_ giving back nothing to the community!
Their next step would be to advertise the hell out of their competition. Does that ring a bell somewhere?? MS...
That's what LGPLD libraries will do to Open Source man.
You're in good company with other Mono proponents in that you are peculiarly susceptible to the logical fallacy of "composition".
.NET API is an open standard
.NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies.
/. story, for example) proponents are still as willing to churn it out this nonsense today as they were in 2001. Clearly this delusion is an essential part of the group-think, and the rest of us will have to live with its constant repetition, just as we have to live with the shifting-sands (or, less charitably, the bait-and-switch) definition of what Mono actually comprises.
In fact your two posts above directly contradict one another:
The first says The
The second says The
The fallacy is that, just because part of Dotnet is covered by ECMA/ISO then the Dotnet framework as a whole is "standard". This is no more accurate than for me to say that because my front left car tire is OK then my whole vehicle is roadworthy.
It never ceases to amaze me that, after more than three years of being corrected on this point (literally dozens of times in each Mono
Whatever the effects on Mono developers rationality, it is unlikely that this flexible approach to the truth will win the confidence of many significant adopters. Until its fan base grows up and faces facts, Mono's penetration of the corporate world is certain to remain negligible.
As you say. Defense moves in favor of letting history judge.
It is this inference by the Mono team which is causing false expectations by end users who have the expectation that Mono == .Net due to the quote given above.
And yes, my definition would require future versions of Mono will have a complete feature parity with .Net, since that is what the customers I deal with believe (Since they would like to develop in .Net on Windows, then run these same apps on Linux, and see Mono as the way to achieve this). Do you belive that this expectation is unreasonable ?
As for Java, you are comparing apples and oranges here. Your comment would only apply if Microsoft made a version .NET for other platforms (which they do not), or were somehow supporting the Mono team, which they are not per Mr Icaza. Furthermore, Microsoft's .Net exclusively targets the Windows platform What is the .NET framework?
So let me distill my questions/challenge the light of our previous exchanges, because I believe them to be very important to the development and end user community as a whole:
Several people mentioned that C# and CLI specs are ECMA and ISO standards.
.NET implementation is de facto standard, and if the new versions of their development tools are made to support only this new version, I don't think developers will have much choice but to use the new non-ISO-standard versions, since they already have invested time and resources in the platform. Mono would not be an option, since by the own admission they don't plan to support the next version of the .NET platform fully.
.NET in general is still very much subject to the control and whims of Microsoft.
But which versions of these specs are described in those standards? It's my impression that these standard organizations don't change the standard every year, look at the period between various revisions of the C/C++ standards, etc.
Yet, Microsoft keeps releasing new versions of C# at a fairly rapid pace, which introduce some significant changes. Are the ECMA/ISO standards updated with each new version?
I'm not trying to troll or anything, I really don't understand how this is supposed to work.
Specifically, what is preventing Microsoft from releasing a version of C# that deviates from the standard (if the recent versions don't already do)? Should they decide to do so, there is nothing anyone can do really do about it, as their
So, you end up back on the Microsoft treadmill of incompatible upgrades, business as usual. I don't share the same confidence as many others here apparently do. Maybe I'm missing something here, I would appreciate any enlightenment on this matter.
Of course, the same thing is absolutely true with Java. The Java language and platform specification is completely at the whim of Sun Microsystems. I'm just wondering why people think that just because C#/CLI has been accepted as an ECMA/ISO standard, they think the situation is any different? C# and
In Java's defense, Sun atleast have a proven track record of keeping a relatively stable language and platform to build upon, with incremental changes that involve the developer community to a certain extent. We have yet to see such a commitment from Microsoft. I guess only time will tell.
As for me, give me Python, or give me death!
Take a look at the last Richard Grimes article on .Net. Very very interesting stuff.
"I think this line is mostly filler"
One of the things that hit me hard like a brick in the face is the disparity in the reaction of people claiming things under the name of the community.
It's obvious to me from Miguel de Icaza and other Mono coders that what they're doing is as much for community as it is for their company. And yet this same community manages to react in opposite ways. Those who dislike a project (any project) will react from challenging the instigators with trying to prove their ideas work to downright maligning their efforts. On the other hand, people who like the project do their best to try and help out knowing it would benefit the community in the end.
The odd thing is: it's the same project. The difference is in people. It's a tool that's not inherently evil. If people are divided in this case, it's by their own choosing.
Whoever that blubbering guy is in LUGRadio that always has two reasons for anything, would you kindly reassess your intentions for making those comments as its clear from MdI's words what his are.
Is it possible for the monkeys on slashdot to discuss ANYTHING else other than some crazed notion why this or that technology is EVIL or philospohically inferior?!
Uhm, YOU'RE ALL NOT LAWYERS?!
Do you think places like Novell, IBM, and others (who have lots and lots of lawyers) would be using and developing Mono if there was this huge sword hanging over its neck? I mean, Duh!
People... Get A Grip!
Using "Common Sense" is being either to arrogant or to ignorant to ask people who know more about something than you.