Miguel de Icaza Explains How To "Get" Mono
LeninZhiv writes "It's perhaps the most controversial project in the open source world, but this mostly stems from misunderstanding: Mono, the open source development platform based upon Microsoft's .NET framework. Immediate reactions from many dubious Linux developers have ranged from confusion over its connection with .NET to wondering what the benefits of developing under it are. Throughout the course of its four years of intense development, sponsored by Novell, Mono founder Miguel de Icaza has had to frequently clarify the .NET issue and sell the community on it. In this new interview, Howard Wen asks Miguel to explain himself one more time."
Rather than continuing to de Icaza drone on and on trying to vindicate his project again, is there anyone here who has actually USED Mono and has something to say about it one way or another? Particularly interesting issues:
.NET C#
- Mono Vs C++
- Mono Vs
- Mono compatibility claims
Insight from some USERS would probably be more beneficial now than more bickering over what Mono is or whether it should even be.
Alito: A vote for Alito is a punch in the eye to put that bitch back in her place!
Trying to tell people on Slashdot how to get Mono is kind of pointless. First you've got to talk to a girl.
Don't blame me; I'm never given mod points.
you unplug one of the speakers.
It's the only "mono" Slashdotters are going to get.
It seems rather unfair to call those developers who do not support Mono "dubious". Surely it would be better to say they are "sceptical".
Interesting interview. I often find myself talking in bullet points, but the way Miguel adds boldface and sublevel indents while talking - now that is an achievement.
Accually we have... php, perl... list could go on
Will the register-based VM of Parrot trump the plethora of stack-based environments in circulation, e.g. Mono?
Or, will MS port its Office suite to C#, relase Linux binaries, and enjoy a jolly chuckle?
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
The dreaded "kissing disease" mono is transferred through saliva from one living host to another. Mono may incubate, biding it's time, in the human host for up to a month before it starts exibiting symptoms. Once mono kicks in, expect swelling of the throat and lymphic nodes, headaches, and extreme fatigue.
Victims of mono can be identified by the paling or discoloration of the skin, and will commonly walk with a shuffle and have half-opened eyes because of fatigue. Because of the swelling of the throat they may have difficulty talking, and will usually only talk in groaning sounding, short sentances. They will hunger, and they will hunger for something that they can manage to swallow, such as soft, succulent human brains. If you see anybody shuffling towards you, looking dead tired, moaning braaiiiiiiiins, it's best to stay away, or you too may be infected. You may become infected through exchanging saliva, or more commonly, having the sick exchange salive with your blood in an attempt for him or her to feed off of your brain-meats. Mono infected people only take half damage against physical attacks, and can only truly be killed by completely desroying the body through total physical damage or by burning. Recommended for parties of 4-5 players, levels 6-8.
I think Miguel is doing all of this because he feels that .NET will be the future of doing things. I remember a few years back all of those MS people having cosmic orgasms over .NET, even though nobody really knew what the hell is was.
Maybe Miguel knows something we all don't?
IGB: More fun than eating oatmeal!
You mean like this?
Does anyone really need this? I think it's safe to say there are enough virtual machines available for PC users. I mean the C# in linux is pretty useful as C++ is getting a little dated for large applications (I'm going to regret saying that). But the rest of the project seems a little unneccesary, but then again Novell has always been about unneccesary.
Just like I don't see the point in using .NET, why would I be using Mono instead?
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
It's called portability... The .NET framework is, in my mind, an excellent idea, so why not copy the best bits while leaving out the bad.
C# for example...
C# is a much faster implementation of (basically) Java, removing the loadtime of the JVM which everyone on /. seems to hate so much!
Couple this with the ability to use the right language for the job in all circumstances (for example "C# is overkill for this, lets use Perl instead) and I think that Mono a step in the right direction when it comes to ease of coding and portability.
My Site, My Life
How would a new VM architecture be useful? What do you imagine it would be capable of that .NET is not? How much use would such an architecture get when it has no compatibility with anything else in the world? Why does Microsoft get slammed for creating a new proprietary technology and calling it 'innovating' while Open Source projects that reuse existing systems are slammed for not 'innovating'? How quickly do you think a VM as complete, efficient, and powerful as Mono's could have be written if they didn't have the Microsoft CLR to target during development (it was a year or two before Mono was self-hosting, yet during those initial years it was still developed at breakneck speeds) ?
First, release a C# compiler for linux. If you can get developers to user C# that compiles to native code so that it's not dependant on the CLR, then you can introduce the cross-platform aspects of it.
Mono is an Open Sores implementation of the .net Framework, that means that unlike the Closed Sores Implementation that microsoft has, you can spread Mono to anyone you kiss. The microsoft version, requires that you get it from a Microsoft authorised vendor, and well, who wants to kiss that guy eww!
Now about the benefits, Since the open sores implementation is so infectious, you can get out of up to a month of social activities such as 'school' or 'work' to better work on your video game skills in your isolated room in your parents house.
I get the impression that while RMS would tell us to beware the Microsoft Whore, Miguel would ask us to suckle at her teats. The rest of us are somewhere in the middle.
OT, I know.
Just a question. What is the main difference between using C#/Mono to develop a client-side application vs. using SWT. Is it correct to assume that it will use the native Windowing GUI toolkit in both cases? If so, how is it different to the SWT approach of developing a GUI? As soon as your GUI starts taking advantage of a specific platform it's no longer platform independent, and it continues to become less platform independent the more it uses a specific platform's features. This makes SWT less platform independent. Sure, it may make an application more portable for the pieces that don't leverage a specific platform, but that's a very different thing from Java and Swing in particular. If there is a way to use GTK# on every platform, then it starts to run into the problem of not looking like a native app, which is what people always use to complain about Swing. It could be that they're only complaining because the Swing default (metal or ocean) is still ugly, even though it definitely screams at this point. I can't help but think that a GTK application on each platform will look kind of stupid.
The whole point of implementing a standard is to copy.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
I know that .NET has never been horribly well understood (even by .NET developers) because of the marketing mess MS came up with, but Mono is a VERY good thing.
.NET framework (a great technology) was perhaps one of the most dangerous weapons against Linux. Very powerful, and makes things VERY easy. So developers of Windows applications will move to .NET framework (where before .NET framework more and more Windows developers were looking at Java, etc) and BAM these developers (and their software) are again locked into Windows. So Windows will remain domainant since its so easy to get applications for.
.NET (wait for it) have also just learned what they need to develop for MONO (Linux). The millions of software titles which will be developed in .NET (wait for it), can now be fairly easily ported to Linux. So most of those products won't be F/OSS, big deal if it makes software companies jobs of porting their propietary software to Linux easier thats all we need! Once such software exists on Linux, may be I can suggest Linux to non-tech family and friends. Until then I know Windows is better for them as they cannot tell a line of code from a line of anceint san-script. They just want a huge variety of software to choose from.
This is especially GREAT for those Linux lovers out there. Linux has MANY advantages over Windows, but for the most part this doesn't matter (sorry talking about desktops here not servers). Yes, lots of techies have jumped on board but that is pretty much a spec on the radar. For Linux (or any OS) to make real gains (especially in desktop) there needs to be HUGE 3-rd party software market for the OS. We need video editing, tax, accounting, etc, etc, etc. And this means broad developer support.
This is where MS has always had a huge advantage. For good or bad, it has always been VERY easy to develop applications for Windows. In my opinion the
Enter MONO. Yes, it a copy of a MS technology and we all hate MS so we think its bad. ITS NOT!!!!! This is great! Those millions of Windows developers who move to
OK I've go on too long, but MONO is GREAT!!! It can only help the Linux (F/OSS) community even if it is a port of evil (MS) technology.
This is where Mono comes in.
"reality has a well-known liberal bias" - Steven Colbert
My only gripe was the lack of a decent debugger (monodbg hardly worked then), but it was quite a while ago, and I hope someone would post their experience with a newer version of the debugger.
As mono is only a reimplementation of .NET and the actual implementation can differ, why not compile the source into native executables rather than bytecode? Surely it would be faster that way.
I've met more actual people who have tried and loved GNUstep in real life than Mono.
That's because GNUstep is based on something that doesn't suck.
(sugar-free white kool-aid)
Will the introduction of Windows.Forms mean we can GUI write applications for our Linux PDA's? IIRC you can compile and deploy non-UI .Net CF libraries on Mono without much trouble. But for the UI applications, that's a different story.
Never touch an Irish man's Guinness!@#
C#, like Java, was designed to solve problems we don't have in the Free Software world. The compromises that are designed into the language make it, like Java, inherently less useful for Free Software than languages designed purely for performance and expressiveness. The haste with which it, like Java, was cobbled up make it poorly suited to describing what we want done with our machines. We don't need to "write once, run hardly anywhere"; we already build and run wherever we like.
I don't have a Java VM on my hosts, and I don't see any reason to saddle them with a Mono VM, or VMs, either. The only Java program I have found a need or desire to run (pdftk, a PDF toolkit) runs (as well as any Java program can) as a native binary compiled with Gcj. A C# front-end to Gcc might have some value for compiling programs so unwisely written in that language, but a bytecode interpreter seems just silly.
We already have a powerful, mature, and efficient language, proven effective for myriad successful Free Software projects. It's called C++. It integrates so well with Free Software systems that nobody even needs to know that they are running a C++ program. Murray Cummings has stepped up and produced well-packaged C++ library bindings for all of GTK and Gnome components, so it is easy to use for writing Gnome applications.
Miguel's unhappy experience with Microsoft's buggy pre-standard compiler (mislabeled "C++") has unfortunately led him astray. We need not be similarly misled.
No, I'm not flaming - even Paul Grapham doesn't push Lisp as much as this mono geek. Get over it man, we don't all HAVE to use mono.
He's actually right there. Before fully adopting Mono, it would be rather nice to know if it infringes any patents, and what will be done about it. Having Mono heavily integrated into Gnome could be just asking for trouble.
However, don't forget that, as the article says, it's not the only thing that's threatened. They could take away our porn.
That's my primary problem with it. You shouldn't need gnome libraries running just to run an application. Unfortunately almost every GTK app compiled today depends on having gnome daemons running too.
It would be interesting to see how java would perform if a bytcode compiler could be written for it that targeted the Mono CLR.
The reason that it can be true that 1+1 > 2 is that very peculiar nonzero value of the + operator
C# and the .NET Framework *are* powerful and *do* provide things nothing else does in quite the same way. This guy shouldn't be trying to explain it to us so we can "get" the Mono project. He should be asking "How come you guys are so hung up on your religion that you question this so much?"
So if I understand tfa, the main benefit of using .Net is because it has automatic memory management? Because it cuts down on developer time, bugs, etc?
I mean, big fucking deal. I'd rather not use another development platform that's just a wanna-be LISP dialect with a bunch of new libraries to learn.
For god's sakes, can everyone just please get over their small-dick big-dick contest and use a LISP dialect? It's only been around for 50 years... with automatic memory management, the whole deal. You'll write code 10x faster than if you used C++....
I have to say, while C# is an ok language I just don't see the point of having mono without .net. Its going to drive developers to window (where the best tools /standard implimentation is).
The Open Source Community has no lack of projects for developers (gcc/vi/emacs/apache foundation).
Linux clearly needs better developemnt tools and more developers working on these unglamorous development tools. Projects like eclipse give me hope the first class development tools are comming to opensource. I fear C# even with Novell's $, is never going to be up to snuff with the ms version, always chasing, not living up to the write once run anywhere hope.
And with so many projects in need of help (gjc/ parrot(perl6)/gnustep) do we need more?
This reminds me of the disaster that is the dual GTK/KDE (QT) desktop libraries thats really put linux destop development in a crappy place. People really do want to cut and paste across applications, and not worry about 2 or more sets of windowing libraries. I know you can run a GTK app on KDE, but it doesn't seem to make for an easy end user experience. Its not bad to have multiple items, but at some point a winner should be clear, and everyone should move on (not linger like the dvd+/dvd- standard where the solution is to have dual format drives.)
Having seen some of the new Apple API's development stuff, I was blown away but what a company with a vision can do to leverage open source for development.
First, release a C# compiler for linux. If you can get developers to user C# that compiles to native code so that it's not dependant on the CLR, then you can introduce the cross-platform aspects of it.
While I agree that it would be nice to do away with the overhead consumed by the virtual machine, I was always under the impression that [with maybe a few exceptions*] the creation of a compiler for a language is relatively trivial.
The thing that makes these virtual machine languages so powerful [and the thing that makes them so appealing to the marketplace] is not that nonsense about "compile once, run anywhere" [which, as I understand it, has largely proved to be a fraud], but rather the feature-richness of their libraries: So much stuff has been written into the libraries that the application programmer's job devolves into not much more than providing a little glue to hold together the specific library calls that his project needs [i.e. it's foolish to reinvent the kitchen sink if it's already been invented for you].
*One instance where I've heard that the compiler end of the thing is rather impressive is javac's handling of multithreading logic.
M$ wants you to be hooked on .Not by Mono.
....Just don't wipe off the glass before drinking after someone else.
You like your new Mac more than you like me, don't you, Dave? Dave? I asked...She said Yes.
I want to start programming, and considering of of these. One thing I didn't like about mono is the programs I have tried seem to take a fair amount of memory. I realize as one runs more apps concurrently the hit is not as bad but the first one launched can take around 50 megs of ram. Python doesn't seem to suffer from this and also is available on many platforms.
So why would one take one over the other? I mainly want to develop gtk apps.
To have a Microsoft employee walk right into the open source community and sabotage Linux application development with Trojan Horse projects like Mono should scare the hell out of us. Do you think any of us could walk right into MS's headquarters, get a job, and start releasing MS source under the GPL? Of course not.
It's time for us all to do something about Miguel and Mono.
Well here is the problem of Mono from a GCC prospective:
Why another back-end, yes GCC does not support JIT but you could have used LLVM for that.
Another thing is Mono developers don't seem to listen to some of the GCC developers when it comes to algorithms, one example is their PRE implementation is based on much slower and not as good algorithm as the one which GCC uses GVN/PRE.
From gcj prospective:
(again) Why another back-end?
Why another ABI, instead of hooking gcj and Mono together, there is another static ABI?
... I don't use Microsoft stuff because I am unhappy with both it and with the company behind it. Why should I now start using their technology again after all these years? I don't care how cool it is or how talented the mono developers are, I have issues with the company behind it and will not be suprised if they turn around at some point and make poor Miguel look like a complete sucker.
JUST TELL ME HOW I GET DOCUMENTATION FOR GTK# AND ALL THE OTHER BINDINGS!!!!!
.NET wrapper "should" look like.. Bah.
I'm serious, you have to wade through old C based documentation, then guess what the
Oh, and monodevelop is still useless. Kudos for the effort, but I pretty much have to develop with #Develop under windows, then copy my exe to linux for testing.
And whats with the libicu version it requires? An emerge -u world pretty much broke everything mono related on my gentoo box.
I don't need no instructions to know how to rock!!!!
The effeciency and blazing speed of Java, a developer base that will someday be as large as, say, COBOL (which was also a non-programmer's programming langauge).
LEARN C!!!! QBASIC IS NOT A LANGUAGE, LOGO IS NOT A LANGUAGE, JAVA AND C# ARE ONLY HALF LANGUAGES!!! LEARN C! Hell, learn some assembly too - not because you are likely to ever use it, but because it will help you understand what you are doing and how things work.
Any language that involves a virtual machine should be immediately ruled out of consideration.
Sure, there is a place for scripting languages - but that place is NOT as the primary tool for the development of large and complex projects!!! The same goes for VM languages which are really not much better. Want portibility? It's called POSIX and C.
If you are a programmer and can't deal with simple crap like avoiding buffer overflows and memory leaks, either get your $#!+ together and learn your job or go find another line of work... one you are actually qualified for. If you are an employer and have programmers who are only capable of poducing reliable code with Java or C# holding their hands all the way and telling them every time they do something stupid, FIRE THEM! Hire someone who knows what the hell they are doing!
DotGNU Homepage:
http://www.dotgnu.org/
DotGNU FAQ:
http://www.southern-storm.com.au/pnet_faq.html
Akarsz Magyar Gentoo fórumot? Akkor
There is little to "explain". Until I see a piece of paper signed by a Microsoft big boss stating "we won't do anything to you", I won't touch Mono, it doesn't matter how "good" or "great" it is. We all know you, Microsoft.
However the fact that MS have openend all the patents for the standards is a good start.
Someone wake me up when:
- Microsoft gives us permission to use the copywritten/trademarked parts of
.Net not covered by the ECMA specs.
- Microsoft gives us permission to use the copywritten/trademarked parts of
.Net that are covered by the ECMA specs.
- Microsoft assures us that they will not deviate from the ECMA specification for the platform like they did with ECMAscript (Javascript)
- .Net offers anywhere near the same enterprise library support as Java and has the backing of a number of companies that aren't Microsoft
I'm sorry to be a party-pooper, but these are still real issues. Ignoring them doesn't make them go away. You are talking about a technology that is legally locked up by a company that HATES the open-source community and phenomenon. Living under the thumb of someone that hates you is not something I would relish.Or, at least that's what I intend to do it.
.NET seems a fairly good choice.
.NET looks like a good choice for future programs. The language looks pretty good, and if I properly separate UI and logic, it should be a lot easier to migrate stuff to Linux. Besides, by the time Microsoft drops support there will be mature and well tested alternative implementations out there.
Here I maintain some old apps written in VB6. Mainly interfaces to a SQL Server database and such. Microsoft is dropping support, so it seems logical to start thinking of something else to write stuff in, and
We have a very MS-centric environment here, but it doesn't seem that anybody particularly cares if it's Windows or not. Simply, stuff works with MS at the moment, and of course nobody is going to let me rewrite it all on Linux on company time without some very good reason.
So, I'm thinking
I'm not going to start making a switch to Linux right now, but my idea is that eventually somebody is going to ask me what to do when our VB6 stuff won't run on the newest Windows version, and I'll be able to answer "We can switch to Linux, and it will work without having to rewrite it".
I find you dubious, Mr. Anonymous Coward.
it's pity for slashdot, but SIP is already taken:)
Read into that what you will. Miguel is not a lawyer, he is being suckered by Microsoft. Professionals in the field are not so gullible.
Use Mono at your own risk, and don't come crying back here when you get the lawsuit from Microsoft land in your lap. You will get zero sympathy.
I'm hearing all sorts of things here about how great Mono is, and how it's going to let all those new Windows apps run unmodified on Linux, as if it's the new WINE. Great, but how many Windows ISV's care about Linux? The ones I've met do not. And that means they're going to make use of every Windows-only API (sorry ... "assembly") that Microsoft throws at them.
Welcome back to the moving target that's plagued WINE for more than a decade. Once they get Windows.Forms up and running, Microsoft will come up with some "must have" new API that the ISV's will start using. Maybe it'll be Avalon, who knows.
Mono makes it possible to write cross-platform apps that don't need to be recompiled (linking to Qt# or GTK# for example) but don't count on Mono being the magic bullet that suddenly makes an entire generation of Windows software run on Linux. Microsoft isn't that stupid.
Tired of FB/Google censorship? Visit UNCENSORED!
Could you post a link? I'm not questioning you, I'm genuinely interested.
If you compile for the CLR you should be able to run the produced assembly on Mono. Also, the Mono guys have been working on a VB.NET compiler for a while, though I have no idea what the status is.
As it also says on that page, you cant write 1000 lines of code today without falling foul of SOMEONES patents, so that statement is more of a warning rather than anything else.
More info On the patent issue.
... because we make the "copy" better, more secure and add more features all while adhereing to open, published standards.
...
Take http://www.spreadfirefox.com/, which is the Firefox webbrowser, for example. This piece of software is hardly new in the sense of being first of its kind, and yes it "copies" the same basic functionality that IE does (and IE copies from Mosaic - check out help->About Internet Explorer, it says clearly "Based on NCSA Mosaic."), but just because someone else invented the wheel doesn't mean we can't use it or make our own, or a better one.
And don't get me started on innovation. As a matter of fact FOSS has already beaten the mighty M$ to a better desktop search (Beagel http://www.gnome.org/projects/beagle/ vs. WinFS - though I will admit I can't quite predict what WinFS will be like IF it ever gets released or if the 2 are even comparable).
Oh, and we are creating new virtual machine architectures[VMA] (XEN http://www.xensource.com/ for example? Again, not sure if that is what you meant with VMA) and new visual interfaces (check out http://cairographics.org/introduction/ for Cairo, which may beat M$ again to the finish-line).
And while M$ buys 90% of the time the technology or licenses it, FOSS actually does develop their stuf from scratch.
Rehashing what's been done before and then claim we do not have freedom to do what we want to do. Interesting. I am not quite sure where these 2 opinions intersect to make sense. Please explain yourself further
All in all I think you are way of mark, Microsoft-Fanboy!
After reading the article, I was disappointed in how Miguel danced around the whole patent issue. This is one of the biggest issues surrounding using Mono for actual commercial development, but he really doesn't ease concerns by saying "no problems...yet".
The Mono Project could convert a lot of folks by directly dealing with the patent issue and the fear that Microsoft will eventually lay the smack down. Tell me *why* my company can feel comfortable using Mono for commercial development...or I'll go elsewhere.
Let's see MONO handle this:
[DllImport("user32", SetLastError=true, EntryPoint="SendMessage")] public static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam);
[DllImport("avicap32.dll", EntryPoint="capCreateCaptureWindowA")] public static extern int capCreateCaptureWindowA(string lpszWindowName, int dwStyle, int X, int Y, int nWidth, int nHeight, int hwndParent, int nID);
[DllImport("avicap32.dll", SetLastError=true, EntryPoint="capSetCallbackOnFrame")] public static extern bool capSetCallbackOnFrame( int hwnd, Delegate fpProc );
[DllImport("avicap32.dll", SetLastError=true)] public static extern int capSetVideoFormat(IntPtr hWnd, ref BITMAPINFO psVideoFormat, int wSize );
[DllImport("user32", EntryPoint="OpenClipboard")] public static extern int OpenClipboard(int hWnd);
[DllImport("user32", EntryPoint="EmptyClipboard")] public static extern int EmptyClipboard();
Face it, Microsoft NEVER intended to make C# a real language !
One word: Bullshit!
You can compile any well written GTK app without gnome support.
I see all sorts of comments about "Why do I need that if I'm running Linux? I'll just write my code in C/C++ and compile natively!" Basically most of the people here lack the ability to step back and see this from a much wider perspective. Mono isn't so much here to help the existing Linux developers develop under Linux better, but to allow Windows developers and Windows software companies to (more) easily make the transition to Linux.
.NET code when moving between platforms, but compared to the rewrites that are often necessary with other languages, the time investment is minimal. With Mono you can pretty quickly move your app from Windows, to Linux, to MacOS.
Sure, you still have to rework parts of your
Mono (to me) is more of an outreach project, a bridge like WINE or Cedega to the Windows world. It's a note saying "Hey guys, I know we haven't been on the best terms in the past, but we want to make it as easy as possible for you to come over and pay us a visit on the other side of the OS world. Bring your code with you too if you'd like, we're working on making that work too!"
For those of you who "can't understand the need of it", I suggest you try to write (or port) a simple program in Mono/C#/Gtk#, and see how more concise it is compared to something similar in C.
Garbage! There is no need for it. Another still-born language. Why would you follow Microsoft anyway? Eeek - it's C-flat.
There is a very simple solution to all this.
Rather than Miguel having to repeat himself over and over in defense of Mono, why doesn't Novell just release the legal opinions they have on the important issues related to Mono?
Instead of telling us not to worry, just give us the facts.
I realize that this is a lot to ask of a company, but the FLOSS community is hard to satisfy. It wants to get the real info, not just the marketing.
Novell doesn't need to release their whole Mono legal opinion. Just enough to answer the questions that concern OSS developers. For example, could the EMCA parts of Mono ever require a license other than the GPL? What is likely to happen with the Mono implementation of ASP.NET?
Now, why would I want to rely on software that will get stopped in court? Why would I want to buy from a Linux vendor that might get shut down (bankrupted, etc.) via court action?
I think GTK# will end up being more useful because it's just a binding to GTK, and GTK is most likely getting a *LOT* more eyes on it than SWT because it's used in a lot more applications.
If you need web hosting, you could do worse than here
This is the core of my concerns about using Mono. The tiger is inviting us all into the cage, waiting for the gate to slam shut: signal for the beginning of the feast.
Additionally, if "Anonymous Coward" could provide some names, then this wouldn't be just score:0 but 5:Informative.
cheers...ank
Still hoping for Gentle Treatment...
Millions of windows/.net programmers now have a new toy with linux/mono. Looks like thedailywtf.com should think about upgrading their servers to handle the increased traffic.
I'm confident that even Microsoft could have done a better job than Sun. THAT's what Mono has to offer.
Once I learned that Java didn't have unsigned data types, it was all downhill from there.
I think than Mono is a good thing, but if I should start a server-side multi-platform project today, I would choose Java.
Mono is not just C# (which, while better than Java, is still a rather crappy mainstream language). It is also an implementation of CLR, which is a very good VM, definitely much better than Java. It can be targeted by compilers for languages such as Haskell or Nemerle, taking advantage of VM sandboxing and memory management capabilities, as well as optimisations such as JIT and AOT.
You'd better C-sharp or you'll B-flat.
Nothing is free and in the case of Mono the true cost has yet to be determined. Adopting Mono exposes your development IP issues you don't have to deal with by using alternatives. MS is evil. This is fact. They will crush any competitor using any possible tactic. They have in the past and they will in the future.
"God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
#Develop have a GTK# form designer?
This just in: C is not C++.
Every time that comes up someone says "no, it doesn't support {any, some of, a little bit of} System.Windows.Forms". I've got no complaint about that, since Forms is probably a huge undertaking to re-implement, especially on a system that isn't tied to the Win32 API.
So my question is, what DO you do to get graphic window elements with Mono? If I wanted to write console programs I'd do that in Perl. Does mono have a "Mono Forms" kit that lets me do everything that System.Windows.Forms would do, just in it's own way?
When George Bush wants to get a war, a drilling plan, or a social security plan, he simply fights all differences of opinions, evidence to the negative effects, and beats his head against the wall against public opinion until it happens. It's success by fiat.
When Microsoft wants to push WebTV or Palladium or .NET, they push it, they implement it, they sell it... but if there's still resistance after a couple of years, they let it die. They go on to something more productive. They recycle parts of their ideas and refine the rest. They don't keep beating their heads against the wall of negative market.
[
Funny, that reminds me of a company I went to where they gave their Perl programmers a 3 month Java class and I ended up later debugging and re-writing their 2k line JSPs. Unfortunately for me.
.NET release is about as solid as Java was back in, what, '99?!
The latest
Unfortunately, the Mono Basic has thus far failed to materialize. I keep reading about how it's slowly creeping, but all the real focus is on C#. If it's gotten past the "Hello, World" state where it was a couple years ago, I haven't heard about it.
Each time I read how Mono is advancing, and how complete Mono web development is, I have another look at the status of MonoBasic. That means I go to the whopping one (count 'em!) page devoted to Mono Basic. It says (just as it did a year ago):
So what's the status? Is it 10% done? 90% done? Is there a timetable attached to the project? Will the Mono IDE support it?
I can't tell. It's pretty much the way it's always been.
The Visual Basic runtime has been ported over, allowing applications compiled on ASP.NET to run, but that's not the same thing, at all. Note that it was donated by Mainsoft, not developed by the Mono folk themselves.
It's too bad, because we're an ASP.Net shop, and we're not about to jump over to C#. Don't bother with the lecture about how the only difference between the two languages is just syntactic sugar, either.
I tried Mono for a month but wasn't really pleased with the results. Needless to say, I really dislike herpes virii now. :-/
Marius
There's no problem with infringing on Microsoft copyrights, as Mono is written from scratch, using no MS code. I don't think there's likely to be a problem with trademarks either (unless 'Windows' in 'Windows.Forms' can be trademarked - and that wouldn't apply to the ECMA stuff anyway).
What there might be a problem with is patents - MS apparently has patents on various things necessary to implement the ECMA spec. Now, if memory serves, Ximian say they have some kind of letter from MS promising reasonable, no-cost licensing of these patents (and possibly their ECMA membership might require it?). But how much this actually protects Mono, I'm not sure.
Wake up.
I hate to say it, but given the current software patent regime, that is the strongest guarantee ANY software project can give (Free or otherwise).
Let's say you're writing a piece of software. Can you guarantee that you aren't violating any patents?
Probably not -- you're almost assured that there are already patents in place, even for relatively trivial things; your safety from those depends wholly on either the patent-holder's ignorance or good graces.
Oh, and by the way, don't go looking for yourself to make sure there aren't any patents covering what you want to do. Once you've read a patent you're liable for triple damages if a court later determines that you violated it. That you think you're safe (per your interpretation of the patent) doesn't matter; before the law only patent lawyers are deemed legally competent to make those evaluations.
Yes, Virginia, things really are that bad.
In Mono's case at least Novell had patent lawyers look at the situation before proceding.
DNA just wants to be free...
Believe it or not, Objective-C and Cocoa still have advantages that C# has yet to catch up to.
.nib files are actual serialized object graphs, so there is no code-generation. At run-time, the objects are just loaded into memory automatically as though they were created in code. Which keeps my project clean and seperated from the GUI (that whole model-view-controller thing) and really makes prototyping a GUI easy. I just hit Cmd-R to test the GUI in Interface Builder.
I still shake my head when I use the Visual Studio beta and create a form, and look at the code to see it instancing classes in an InitializeComponent() function. Anyone whose used Visual Studio before knows things can go haywire if you dare touch any of that code. You have to leave it alone or the editor gets pissy.
In Cocoa, the
I also like the way method parameters are self-documenting in Objective-C. It's easier to understand a "[something doThis:parameter1 usingThis:parameter2 forThis:parameter3]" then it is a "something.doThis(parameter1, parameter2, parameter3)".
Just my opinion, and I'm sure there are those who have valid reasons to use C#/.NET instead. But I used to be a C# guy too until I learned Cocoa. The flexible messaging system alone keeps me using it.
This is more like making our own equivalent teats to suckle from.
I never thought I'd use a sentence like that. Thanks.
Because no poster on /. would've gotten it from a girl!
Hopefully the linux developers are skeptical, and not dubious.
Like it or not, the bottom line is that Microsoft is trying to create a bridge to Linux, and eventually get Linux users on their side of the bridge, and possibly burn the bridge!
Just wait and you'll see!
I was just wondering about the license requirements?
1. Say if I program something in .NET / C# do I have to somehow license the software with MS, even if its just for fun/learning?
2.Suppose I'd like to take the program I wrote in .NET and sell it commercially, do I have to pay any royalty fee?
3. What if the above 2 questions are applied to Java?
Just wondering :)
B4 someone tells me to RTFM, please understand that I am a new grad and most software written while in school was for academic purposes.
"And the open source world just sits there and does nothing."
Well, isn't that it's role in things?
Finally, someone who understands FOSS!
There has been plenty of hand-waving regarding this issue and I think the parent poster has a good point. We are basically talking about a face-value "promise" from a pretty much the last company we would accept that from. Yes there are always issues to contend with, but GPL-conceived community specificied tools (python, perl etc) seem to be far more resistant to these issues.
If you have been thinking the language to pick for your next Gtk project, I highly recommend to take a look.
What it needs is an IDE like netbeans. Netbeans for Mono would make it *the* development platform on linux.
Why would anyone use Mono on Windows?
I cant see the point in java/ python/ vb/ html/ c/ sql/ food/ water/ oxygen/ etc/ etc/ etc
I can see a point, easy porting of apps between platforms.
Perhaps not so much insightful, more flaimbait
However, my policy is, if it won't install clear out of yum repository on Fedora Core 3 it's not ready for my use. I'm sorry, I work on my computer. I have better things to do than chasing down dependencies and installing RPMs from untrusted sources. In year 2005 I simply refuse to spend my time on this kind of shit.
So, Miguel, how about putting together a god damn yum repository that contains all required dependencies so that the users of one of the most popular distros would be able to at least try your software, if not "get" it? I remember back in Ximian days the only thing you needed to install Gnome was ssh connection.
The reason MS people were having orgasms over .net was because the only things they had before were VB and C++. If they had been smart enough to use other languages besides the ones MS backs, they would have found there is nothing special about .net at all.
Garbage! There is no need for it. Another still-born language. Why would you follow Microsoft anyway? Eeek - it's C-flat.
My point exactly. C# is the Callista Flockhart of programming languages. C is where it's at; it's the strapon-dildo extensive orgasm chamber. Why pass around a flat-chested toy when you can jump on teh pooty hooters of the likes of C's extensibility? And to begin with, feed some code to C# and it doesn't change a bit -- still lethargic, bolemic, wannabe poontang that can be blown out the window 'cause its dying the death.
For a considerate thought, C# is really built C underneath the covers; but avarice disposed of the sought love handles it let go. Oh Pamela, we be at your fartbox chambers knocking on your prison door; open up and let us in teh smoke the camel 'little more.
C++ is a terrible language. If you need a fast executing low level language for device drivers or OS development, use C. If you need a high level object oriented language, C++ fails miserably. I just wish people took D more seriously, its the language C++ should be replaced with.
Anyone know if it can run on OpenBSD and how to get it installed?
I'm at a windows box as I write but I don't see it in ports. http://www.openbsd.org/cgi-bin/cvsweb/ports/
Any hope for a package?
Ok, so Mono is like .Net. Now can you explain to me how to "get" .Net? :-)
Coder's Stone: The programming language quick ref for iPad
They might as well be marketing a new kind of shampoo. The ingredients that do the cleaning are the same as before, it's just a different color and smells like lilacs. Whoop dee frackin doo.
You can get mono from the monorail.
I assume that by "problem we don't have" you mean the idea of a single binary that runs everywhere, and your ideal solution is to build CPU-specific binaries from (open|free) source.
Obviously you haven't given it enough thought.
First off, there is no such thing as one source that compiles for every CPU. What you get is meta-source that preprocesses into various different programs, for each architecture and OS. All the different outputs need to be tested seperately. But it gets worse, since the assumptions underlying each OS are dissimilar enough that "cross platform" is really hard. Big, impressive projects like apache and postgresql have wrestled with cross platform - and won, but at no small cost in time and effort. It is not merely a matter of "configure; make all". Most CPU-compiled programs don't even make the effort, they are doomed to running only under posix (or windows, or mac, or whatever).
Second, you lose the ability to migrate your programs unchanged with full functionality across eg: the upcoming 32bit => 64bit i386 CPU changeover. Or across totally different CPUs. This could well be very important if business depends on the predictable running of those programs. It's also pertinent from an open hardware perspective. Compiled binaries are vendor lock-in on the CPU. Even if you're willing to suck it up and assume a CPU, time is against you - CPU architectures predictably change. Likewise OSes.
Third, you lose the ability to have code that actually exchanges runnables across platforms or with strangers on unknown machines. "Applets" could not have been done with compiled code.
And of course fourth, you waste disk space, time and intellectual effort grubbing around compiling source code when all you likely want is binaries that work.
This gives it not only C++'s advantage over Java, that methods that weren't properly planned (preconditions/postconditions understood by subclassers) won't be inherited from, but another advantage as well. This is that when a method is added to a base class in a new version of a library after a user has written a subclass of one of the library class, that added a method of the same name, calls in the original library won't go to it unless that was what both the creator and user of the library intended. This probably isn't clear. Read the interviews.
Also, I wouldn't be surprised if C#'s exception system is about as good as C++'s. I already know it's better than Java's (due to the lack of unchecked [or is it checked?] exception silliness).
Novel is paying developer to work on it. Have you seen Exclipse? IBM backing. Mozilla AOL backing.
Very few start out as "foundations" like eclipse and Mozilla ended up as. (Apache afaik is a foundation).
Coding Tools are low glamour not much praise projects, so it really helps to have some corporate backing.
will be called Herpes.
3.0 is going to be called AIDS.
They dont' need a version after that.
Hook up with a dirty girl. Oh wait geeks don't hook up.
>I ask because a lot of your complaints have been at least partially addressed in the new release.
nothing personal, but that response is classice.
As is the "but hey, the first hit is free! you have no excuse to not try heroin!".
but whatever floats your boat...
-pyrrho
>What is the point in taking jabs at people when you have no idea what the situation was?
it's a rhetorical question.
-pyrrho
That's exactly why I'm complaining.
It requires some obscure *.so file which isn't even available in Fedora distribution. The only way to install mono on FC3 system is to get this library (libraries, actually) from an untrusted source (rpmfind).
Just google for mono fedora core 3.
I'm not interested in flame wars on the subject... but I wonder where the future lies.
Let's say everything was in a byte interpreted language. If C++ is still faster, then we eventually get to an optimization step where we don't want a heavy runtime, or we can use the last 20% (or whatever, I'm tempted to use a higher percentage but... it's not a real number anyway) of performance increase.
sometimes it's as if some software engineers hate real machines and are sure they could do much better than hardware engineers so they build virtual machines. We are told they will be better than real machines some time soon.
We of course look forward to the day we can throw out the real machine entirely and just use the virtual machine.
-pyrrho
ok... got that out of my system.
what I really mean is, "do whatever you like... it's all good!"
-pyrrho
Since you have the luxury of not having locked yourself into a language, you have the ability to survey all the offerings out there, whether minority and up-and-coming, or well-known and entrenched.
After considering various languages to switch to for my scripting needs (ironically, it was prompted by the fact that PHP won't handle unsigned integers), I took a look at Python and Ruby and thus I would suggest taking a look at Ruby. I was one of those people turned off by Python's "significant indenting", and some other quirks. Ruby has a heck of a lot of niftiness beneath the surface.
Here is a ruby-gtk+ faq. I am currently studying Ruby on Rails myself, and lovin' it!
Visual Studio didn't provide any automatic linkage between resources such as dialog boxes and C++ code except when you used MFC.
Or did I missunderstand what you were implying?
I love clicking on an article and reading the exact same words I just saw in the /. summary. When will these article writers learn to stop plagiarizing the Slashdot submitters? Can't they just write an article without stealing their material word for word from the Slashdot summary?
For the love..
https://www.eff.org/https-everywhere
Please take your un-nerdly contributions elsewhere. This isn't "News for I.T. productivity." It's news for Nerds. ie, people who hack, tweak, and generally live on the ragged, bleeding edge
M$ created the buzz around their tasteless copy of Java in order to keep their stronghold in the IT world. The remaining is pure marketing.
I don't care about Dot blah blah blah.
rhys doesn't even work on peanut anymore. The project will end up like the HURD
I didn't MFC... but when comparing to VB... why not?
in general it got in the way of what we wanted to do.
what I especially didn't like about it was the fact that using one class meant you pulled in just about everything.
I think we're getting to why it doesn't satisfy the people that wanted VB... people that like C++ don't like MFC... leaving people that don't like C++... why would they use it.
I guess.
-pyrrho
C# is not locked up anywhere. Whereas peversely [sic], Sun Microsystem's Java Language is - remember Sun is a company and yes, Java is not released under the EMCA. .NET is patented by Microsoft (and Microsoft is also a company. .NET.
h tml
Registering C# with the ECMA is a useless publicity stunt - it means nothing if you patent virtually everything in
Besides Java is faster
http://www.shudo.net/jit/perf/
Java is a lot more open. You can even submit your own bug fixes:
https://mustang.dev.java.net/collaborate.
Java is a better platform independant language since it's actually quite platform independant (in contrast to .NET).
.NET on the other hand does not.
.NET can do that similar VM'ed languages can't, then see what those languages can do that .NET can't.
.NET
As for the other stuff you mention; they all serve a relatively unique purpose,
Tell me what
I may be wrong ofcourse, but I just don't see why I would ever want to use
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
Java is a better platform independant language since it's actually quite platform independant (in contrast to .NET). .NET can do that similar VM'ed languages can't, then see what those languages can do that .NET can't. .NET
Mono runs on x86, ppc, amd64, sparc, s390 on Linux, Solaris, Windows, OSX. That pretty much covers 98% of the market for servers and personal computers. We're porting to more architectures, too. Java has been ported to more archs because it has been around for so much more time, but in practice Mono is just as platforms independent (even much more so since Sun, for example, will actually support fewer archs than Mono).
Tell me what
I may be wrong ofcourse, but I just don't see why I would ever want to use
You're certainly wrong, mostly because you are uninformed. I suggest you study the specs (grep for delegates, tail calls, value types, interop with shared libraries, interop between different languages etc).
Most languages can do delegates.
Tail calls are optimizer tricks, not language specs.
Value types Java doesn't have and it is a nice feature if you're not using objects to keep data.
Interop with shared libraries sound like platform dependance, or is it more like the way Java can load it's classes dynamically?
Interop with different languages is a VM feature, you're surely well aware that the Java VM has a wealth of other languages available too?
I'm not saying somebody should be using
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
The easiest way to help /.ers get "mono" would be to start by helping us get "girlfriends".
Most languages can do delegates. .NET can do that similar VM'ed languages can't."
.NET has no platform independant GUI system yet.
Sure, but your question was: "Tell me what
Now the VM that comes closer to mono is the JVM.
Java and JVM don't have delegates. There aren't other virtual machines currently that have comparable features.
Tail calls are optimizer tricks, not language specs.
First, we were talking about VMs, but anyway this shows you don't have a good idea of the implications of tail calls. Sure JVM jits can perform the optimization, but they may not. Languages like scheme and lisp requires tail calls to be present and working or they blow up the stack. Mono implements the ECMA specified tail call instruction, so those languages can be implemented efficiently on top of the VM.
Value types Java doesn't have and it is a nice feature if you're not using objects to keep data.
Value types also allow a more efficient implementation of many data structures and algorithms.
Interop with shared libraries sound like platform dependance, or is it more like the way Java can load it's classes dynamically?
It's the feature called P/Invoke: seamlessly calling functions in external shared libraries implemented in C for example. Java has JNI, but the features are not directly comparable, P/Invoke is much easier to use.
Interop with different languages is a VM feature, you're surely well aware that the Java VM has a wealth of other languages available too?
Sure, but there is no standard way for interoperation. And, anyway, it's hard to interoperate from languages like java that don't have unisgned integers, for example.
Gtk# works on Linux, windows, OSX. We're working on System.Windows.Forms, too, so that's going to be another option (we plan to have support for SWF in mono 1.2, some apps work already).
nor does it perform better than other VM-based languages.
First thing: speed is not everything: mono gives you many more benefits, like arch-indep programs, integration between several languages, GC etc.
That said, while we're obviously looking at improving mono's speed, we already do well enough for many tasks. If you look at the language shootout you'll see that mono is faster than the JVM in a few benchmarks (note also that they use the 1.0.5 version of mono which is very old and slower than the current release). We run some of the python benchmarks faster than CPython itself.
So, we already perform better in some cases than a runtime that has been tuned and developed for 10 years and we're rapidly improving. We won't beat the JVM at every ebnchmark any time soon, but that is not an expectation that any reasonable person has. The expectation is to be fast enough for the job that needs to be done and mono fullfills that for many cases. In the other cases we'll improve, just file bugs reports for them:-)
How do the GTK controls and form look on windows and Macs?
"...normal evolution would have gone Word to Frame to troff, but instead, the computer industry has gone the other way!"
At least in the case of Python, there is no "python native compiler". What you do have are simple systems (py2exe, mcmillian installer) that will bundle a python interpreter with your code in an easily distributable, single install package.
The only package I know for perl does the same thing. But there might be a native compiler there, and I just don't know it. Not as familiar with perl tools.
However, these packages do have "people clamoring" for them and are used fairly frequently. It is very important for a lot of us to be able to run our code A) on a known version of the interpreter and B) in places where the intrepter might not be without making our users install more than they need to.
But I definitely agree with you that dynamic languages are coming into their own and systems languages are being relegated to only those places where you really need their strengths.
7. What we cannot speak about we must pass over in silence.
While I see what you are saying, actually might as well work with Python anyway. Iron Python is a python implementation for .NET. Right now it is at a fairly early stage, but work on it is moving forward.
7. What we cannot speak about we must pass over in silence.
You can all say what you like about mono and there are indeed many issues regarding what MS will do to destroy it in the future but as far as I'm concerned it's excellent.
Having started off as a COBOL/Assembly programmer on mainframes I've been programming in VB 6, and latterly VB.Net, for the past few years. As the VB.Net and C# syntax are so similar the introduction of Mono has now allowed me to program some simple little apps for myself under Linux. Nothing fancy mind just some simple batch file renaming stuff and other assorted crap which helps me organise photos etc.
This was the turning point which enabled me to be confident enough to use Linux as my day to day O/S. I bet there are many more like me too.
Yes I know I should learn some shell scripting and C, C++, Perl whatever but I'm too old and lazy. I never needed C in my job so I never learned it. Mono allows me to use my existing knowledge to get some simple stuff done so all I can say is well done to the whole mono team.
You have converted at least one home Windows user to Linux.