Post a Comment
There isn't much to worry about for what's already been implemented in Mono. MS has warned them not to implement certain libraries, but they have conspicuously NOT complained about what has already been done. In fact, they have even supported some Mono integration into VS. This sends a clear message that the courts listen to. The worst thing that could happen would be an SCO type lawsuit - one that has no chance of winning, but might generate panic in users. That's unlikely, though, except as a last resort because of all the bad press it would generate.
Here is the way I look at Mono. We need it like we need Samba. Imagine where Linux and other free POSIX OSes would be today without Samba. Mono needs to be there so that developers who come from an MS background can comfortably develop for Linux.
However, I also feel that developers who are already comfortable developing in an OSS environment would do best to avoid it like the plague, and use Java, Python, etc. Mono is just too close to MS for comfort, from a legal standpoint. And, yes, I know all about the ECMA standardization and all that. But you can bet that there is a trap set somewhere.
http://tirania.org/blog/
Read the part called Background for the Mono Meeting.
Apart from the legal uncertainty of Mono (Microsoft can start telling people things whether they may or may not be true), you've also got this. Once you tie yourself to a Microsoft technology you're tying yourself to their mindshare, misinformation and dirty tactics (and possible legal uncertainty). That's certainly a big part of the reason why Red Hat and other companies don't want to get involved with Mono (despite the fact they may find parts of it good or interesting). You simply cannot have Linux-using customers subjected to this sort of crap, and companies like Red Hat just cannot afford it.
The above is something many people just do not seem to understand.
That's unlikely, though, except as a last resort because of all the bad press it would generate.
Bad press for whom? With SCO they were claiming something obviously developed by other people as their own. With Mono it is quite clearly a technology developed from Microsoft's own technology and ideas. A lawsuit simply wouldn't be necessary. Enough people would be scared off because of that alone, but since no one of any significance whatsoever is moving applications to non-Windows platforms because of Mono it is a fairly irrelevant point.
I agree that for Mono, the bad outweighs the good. Mostly because I don't see a need for it. The real reason behind it is to facillitate porting .NET programs from Windows to Linux, but seeing how slowly .NET is catching on in Windows this doesn't seem very important. Add to that the (mostly over-hyped, but still legitimate) concerns over using something developed by MS, and there just doesn't seem to be a good reason to use Mono instead of java.
I may have seemed a bit defensive in my first post, because I'm really tired of listening to these flamefests about whether mono is legal or not. But I really don't think there is a major LEGAL problem with using Mono. Honestly, though, it doesn't even matter. As long as the perception of a problem exists, Mono will never take off. And I think most people don't need it anyway.
Having a free C# compiler is nice, though, so I do like Mono for that. I don't think GCC is going to add that language anytime soon.
The real reason behind it is to facillitate porting .NET programs from Windows to Linux, but seeing how slowly .NET is catching on in Windows this doesn't seem very important.
Well, it's not just that. The vast majority of systems out there today on Windows are COM based and written with C++ or VB. In order for Mono to be of any use whatsoever in helping people port applications to Linux people are going to have to re-write their systems for .Net, and then, somehow miraculously see a need after all that effort to run those applications under Mono on Linux (which is always going to be behind .Net and not support all the same features they may have used - Indigo etc.). In order for Mono to be a success, .Net has to be a success as well - but first. It's a horse that just won't run get out of the starting stalls.
Something far more interesting to me would have been an environment and a set of tools to really attract all those disaffected VB/RAD developers out there. I can't help but feel that is an unbelievably huge missed opportunity, and someone needs to take it and run with it. VB developers represent a lot of the Windows development world, especially a lot of in-house, bespoke development a lot of companies do.
Something far more interesting to me would have been an environment and a set of tools to really attract all those disaffected VB/RAD developers out there. I can't help but feel that is an unbelievably huge missed opportunity, and someone needs to take it and run with it. VB developers represent a lot of the Windows development world, especially a lot of in-house, bespoke development a lot of companies do.
There is such a thing already. It's called RealBasic for Linux.
RealBasic comes close:
http://www.realbasic.com/support/whitepapers/portingvisualbasic/
"You will be pleasantly surprised by how many REALbasic and Visual Basic keywords work identically..."
Even though it doesn't run most VB6 code unmodified, it's the next best thing and the closest to VB6 in usage that is commercially available and supported.
It is not a simple question. IMHO the big thing in .NET the complex and coherent environment. If you a VB coder you can create your app in VB, if you a C# programmer you can use C#, if python fan you can write python code in .NET. And Object Pascal, RPG, COBOL, Prolog, PHP, etc. And you can call the VB code from C# or Object Pascal, Java, etc. And it is universal: with VB6 or Delphi7 you can create business desktop apllication very effortlessly, but if you want to create web application, web service, etc, it is not a simple question. But with .NET you can create any kind of application with any language with one tool and API. IMHO it is a very strong solution, far better then the many separated win32 based (or linux based) solutions.
Something far more interesting to me would have been an environment and a set of tools to really attract all those disaffected VB/RAD developers out there. I can't help but feel that is an unbelievably huge missed opportunity, and someone needs to take it and run with it. VB developers represent a lot of the Windows development world, especially a lot of in-house, bespoke development a lot of companies do.
You should try Gambas: http://gambas.sourceforge.net
So fucking predictable from the OSS zealots. Mod a guy down for asking a question not even Miguel de Icaza can answer...
http://news.com.com/More+than+an+open-source+curiosity/2008-7344_3-...
"The moment we are made aware of an infringement on a valid patent that cannot be worked around and there is no prior art, we will remove the code. So that has been our policy. We will remove any infringing code and as a user of Mono, you will have to work around the removal of the code. So today we don't have that because we are not aware of any infringements, but that's the situation."
RE[2]: Re: Legal Status
RE[5]: Re: Legal Status
"Can I have some of what you are smoking? Java is not Open Source."
FreeJava? GNU Classpath already supports over 80% of JDK 1.5 and over 90% JDK 1.4. Plenty of F/OSS VMs to choose from also.
http://www.gnu.org/software/classpath/
http://www.gnu.org/software/classpath/stories.html#jvm
mono is Legal ? yes excluding
Asp.net
Window Forms
Ado.Net
Window Drawing
VBasic.Net
Almost all software is illegal as almost all software infringes on patents. Get over it. I think what is more troublesome is the obsession some people on this site display over this issue on every single Mono article. Incase you don't understand, people are getting sick of hearing it.
Enough with the mono bashing already. It is so predictable. Everyone in open source knows what mono is about. The C# compiler from mono is quite nice and completely legal. C# with GTK# actually makes for a nice application development framework. And it is all legal and Microsoft free since it is based on a open standardized language. The proprietary Dot Net stuff is another story.
So instead of debating with me, people just mark me down? Typical. GTK isn't good on windows and no amount of GTK fandom is going to change that. It doesn't feel native, it's pretty damn slow and it doesn't conform to the MS themeing. It doesn't do this in a QT environment or an Apple environment either. There's nothing to argue, it's just not a good native look and feel tech.
.Net offers a native look and feel to windows users. Yes it's a very large set of libraries, but it offers a look and feel and it behaves as expected...
For everyone who thinks that Mono/.NET equates to C#, I'd like you to check out the Boo programming language at http://boo.codehaus.org
It's Open Source and very nice, It combines a lot of the nice syntax of Python with the safety and large library of .NET and some of the features of Ruby.
Also, if you want, there's always someone in irc://irc.codehaus.org/#boo who can answer your questions. You can go to an HTML-based IRC client at http://irc.codehaus.org/
RE: Boo Programming Language
Where does all this hatred come from? Such angry spite for something you've obviously never really tried.
Boo is a phenomenal language. Dont knock the shit you've never tried. You're obviously adverse to dotnet, I'd wager to say you dont use it much or the various languages built on dotnet. The only thing that makes me squirm is such degrading and negative comments from people who obviously havent investigated whats been done with dotnet.
This *really* bugs the shit out of me. The page you linked is to show the syntaxical differents between C# and Boo. If you're looking for information on type inferencing, closures, runtime inferencing, splicing and the horde of other features Boo supports that neither C# nor Java support, you'll have to look at more than a page listing syntax differences. Thats really a pretty fuck-headed move buddy; pick out a page listning syntax differences as your case example and then slam the language for offering nothing more. -1, a big honking -1. I pray its only more ignorance and not deliberately harbored spite. http://boo.codehaus.org/Language+Features should serve you much better.
Your arguments do not hold water. A common runtime is an advantage. Having to build to a common virtual machine is no more problematic than needing to build to a common hardware machine. Its simply an architecture, both can be abstracted for any number of purposes. The VM allows for common optimization across a number of languages (by improving the runtime engine), new hardware platforms can be added by updating the runtime engine alone (whoo ARM!) and most importantly the VM allows code interoperability. True, for the most part we've seen IL used around the Common Type System to build a very prototypical object oriented structure, but the virtual machine is capable of far more. Boo is beginning to flex some of that power, and it and other langauges will continue to show off more impressive and divergent capabilities as time goes on. Dotnet is still in its infacy. Its only now that Mono is starting to really shape up that the OSS world has tools to go out and build new things like boo, things unlike whats out there already. Like boo has innovated with typing, Cw is beginning to play with concurrency and data access in new ways. Its a platform for play. Frankly, I fail to see this same sort of innovation happening anywhere else. Because building a complete self sufficient language is hard, because a language needs a platform to support it. Never has language building been so easy, so accessible to everyone, so integrable, so compliant.
The big thing that irks me is how every other language except the dotnet languages all require their own libraries. They do not interoperate. Until Parrot gets released and we have a new virtual machine to try out, dotnet will remain my favorite platform (thanks to Boo). Listen to Guido's talk on Python on Itconversations, he spends a good amount of time talking about how one of the most important factors to language adoption is having a large and well built standard library. Build almost any langauge on dotnet and you have the potential to access a pretty-damned-good library.
Boo: Never have I seen such a clean concise langauge. Code just works, boo is so clean I dont have any more syntax errors, I know exactly whats going to happen at runtime. All code is elegant and functional. C# was a bit of a mess, very bloated coding, but Boo just flows like water.
RE[3]: Boo Programming Language
"Err, I've just described to you why having different languages targetted to .Net, IL and the CLR are essentially pointless. Why? Because in then end they all compile to the same thing!"
As with C, C++, Pascal, Basic, ObjC, Scheme and ..
They all compile down to machine instructions, so they are completely useless... So the real language is assembler.
O and IL compiles down to machine instructions.
As with C, C++, Pascal, Basic, ObjC, Scheme and ..
They all compile down to machine instructions, so they are completely useless... So the real language is assembler.
Yer, and none of those languages claim 100% compatibility with each other in any way shape or form, therefore they are different, therefore they are useful for doing different things. Not so with .Net languages. You have to conform to the CLS and run within the CLR for it to be of any use whatsoever (if not, what's the point of running in a VM or having any sort of environment?). What you've got with .Net, and when you try to port a language to .Net, is a square peg in a square hole mentality. If your language is just a little bit rectangular (which might actually make your language useful) then it simply won't fit in. Conform to the .Net environment and you lose any of that originality.
That's been the consistent point here.
O and IL compiles down to machine instructions.
Yer, in a straight jacket. It's the same IL code and the same machine instructions coming down. Give me a break.
Um segedunum, just about every programming language has already been, or is in the process of being ported to .NET/Mono. From Python (IronPython), Pascal, Lisp, C++, PHP, all sorts of languages that you see in non-VM environments as well. Most of these (especially IronPython and PHP), are hardly doing any bending whatsoever to conform to the .NET runtime.
So, uh, that kind of refutes everything you've been saying I guess is what I'm saying.
You don't even seem to understand the advantage of using programming languages over keying in ones and zeros.
Of course this is all assuming you're not just intentionally being an ignorant troll. Bad assumption?
Um segedunum, just about every programming language has already been, or is in the process of being ported to .NET/Mono.
Wow, really because I don't see them, nor do I see anyone making any real use of them whatsoever? At best, outside of VB.Net and C#, .Net language porting projects are just that - .Net language porting projects.
Anyway, can you go away and read what I've been arguing about please before making silly comments?
From Python (IronPython), Pascal, Lisp, C++, PHP, all sorts of languages that you see in non-VM environments as well.
The essence of the argument is that once ported to .Net these languages cease to be the languages they were meant to be and cease to give the diversity that actually made them useful, and thus, are useful for just about nothing after that.
We've got thirty languages ported to .Net that all do the same thing! Yay! Good for you. And just how is that going to help interoperability when these languages and the languages that are ported to .Net end up being different, incompatible and use totally different frameworks and libraries? I certainly don't see Python developers flocking to .Net through Iron Python or Pascal or COBOL developers porting lots of existing code to .Net through those language ports.
So, uh, that kind of refutes everything you've been saying I guess is what I'm saying.
Err, no sorry. You're going to have to go back, read, find out what the whole thing has been about and then try harder.
You don't even seem to understand the advantage of using programming languages over keying in ones and zeros.
Err, that's got nothing to do with what this has been about. Read, rinse and repeat.
Of course this is all assuming you're not just intentionally being an ignorant troll. Bad assumption?
No, it's just you have no clue at all what I've been arguing about nor have you read back first before creating this absolutely non-sensical reply. You've just thought "Oh, he's attacking .Net! This cannot stand! .Net is the greatest invention since the wheel!", without actually understanding what's been argued.
That's called being a troll in case you don't know ;-).
Well, actually IronPython is pretty good example that all .NET languages aren't just the same methods with different syntax. The author of IronPython was making the same sort of argumentation that you do now, when he was going to write an article about how stuff like dynamic typing couldn't be done in the CLR, until he found out that actually wasn't the case. That's when he started coding IronPython.
You are just showing your ignorance. Just because all languages are compiled down to a base thing does not make them the same. For many boo programs I would be challenged to write an equivalent in C#. For instance, a single generator (1 line of boo code) splays out to about 30 lines of C#.
And yes, syntax is what it is all about. It's what any high level language is about in fact. Languages compiled to ASM are basically syntax candy in the extreme. Languages may have different variable handling schemes, but most of the procedural languages boil down to basically the same stuff. The thing is, the ASM system is so low level it is architecture specific and doesn't allow easy interoperation between languages.
Enter CIL. High level stuff that leaves the implementation of lowish level stuff like variable management up to the computer it runs on, and allows seemless operation between languages that utilize it.
"The answer, is of course, yes. If that's all there is then there simply aren't any different langauges at all in the .Net world. Cue the usual .Net fanboy squirming ;-)."
To a certain extent this is true. And I'm not squirming at all
. All the languages run on the same class and variable system. This is excelent because you can write an assembly in say, Boo, if it has your favorite syntax, and someone else can access it in C#, because they prefer its syntax or haven't seen boo yet. However, the language's look and feel totally different and have syntactical features that make a programmer's job easier. You are correct there is nothing now that discerns languages capability wise. They are all equally good and capable of any task you throw at it.
And language differences are not always as superficial as seems. As far as I can see, technically VB.net is actually more capable than C#. Like boo, VB supports late binding which is an insanely handy feature that allows easy plugin systems, where you just give it a dll and it can access classes in it very easily. This is also very handy for scripting systems where scripts are actually compiled to binaries and accessed at runtime.
There's no reason to speak different languages when you are in different moods, there's no reason to use different programming languages for different tasks.
RE[3]: Boo Programming Language
RE[4]: Boo Programming Language
C# actually does support late binding, and it's quite easy to do, but in many cases it just isn't necessary.
I knew I'd forgotten something. Should you have a limited need for more fine-grained late binding (plugins, P2P protocols, discovering interfaces on-the-fly) then you can do that through reflection. You should have a fairly limited need for it though because at some level of your code you still have to make some assumptions about what interfaces exist, what supports what and in what version, and then write some code for it. Everyone early binds at some stage, whether they know it or not - that would be compatibility. All .Net languages do this in the same way using the same reflection namespace classes. Fancy that ;-).
Why did I go off on one about this? Because the language neutrality of .Net is obviously total crap kept up with total hot air. Do I have anything against Boo personally? No, and that's never what it was about.
So if patents affect .NET, how come no-one ever mentions Java patents?
http://www.theregister.co.uk/2004/10/04/kodak_wins_java/
http://arstechnica.com/news.ars/post/20041007-4284.html
If Sun were infringing Kodak's patents when they implemented Java, presumably anyone else who implements it is, too...and Kodak, unlike Microsoft, sued someone already. Did anyone license Kodak's patents for free Java yet?
RE: to whoever keeps modding me down:
For those wondering about Winforms status: http://svn.myrealbox.com/blog/images/themenice.png
I don't understand why poeple don't read the linked page on the article before posting.
I've see a lot of language - related posts here. At least to me an easy accessible/extensible FCL is much more important. And when you look around you'll see a lot of good OSS Frameworks.
So for me the best Framework for my most used client OS wins (MS.NET at the moment).
Apropos OSS FrameworksAt the moment i'm looking to:
http://www.castleproject.org/index.php/Main_Page
(btw. one of it view engines uses Boo)
Looks promising to me but i'll stop now because i'm fanboying
Good Code
It is extremely funny to observe how the voting happens around here. I just wonder when all this is going to use up all the votes in the multiple OSNews accounts this very sad person, or these very sad people, have so very sadly created for themselves simply for the purposes of moding people down, or moding their own comments up on the account they usually use (which probably has no votes in it whatsoever!) :-).
Should I play along? No, I can't be bothered because I'm simply not that sad and I've already won a very weak argument anyway. It is very funny though. I won't look at comments on OSNews in quite the same way again.
*ROTFL*
@segedunum
I've always been interested in this .net hype, and I actually think it's shaping up pretty good. I didn't know about Boo until reading this thread though, but i must admit after reading up on it, it looks awsome. It peels away much of what i don't feel at home with in C#...
But I seriously want to know what you dislike about .net/mono? Is it the vast array of copycat languages spawning out of this, or is it the runtime/IL solution itself? What is your favourite/preferred language/solution? If .NET can serve a purpose, in what situations should it be used? This is NOT intended as troll, or flamembait for that matter, but because i honestly want to understand why you reason as you do...
But I seriously want to know what you dislike about .net/mono? Is it the vast array of copycat languages spawning out of this, or is it the runtime/IL solution itself?
A little bit of both, but mostly it is hype just for the sake of hype. The way that .Net is done Microsoft wanted to have a language neutral environment, rather like VB and C++ with COM, except going the extra mile to map one on to the other. What they've either knowingly or unknowingly done is taken away the usefulness of many languages by forcing them to comply with the CLS and run within the CLR. In essence, they all become the same language, and any differences are simply not interesting. That's why a lot of that hype has died down (ActivePERL/Python?), and the only two languages you see get used are VB.Net and C#. As time wears on you might see that whittled down to just one.
I also do not get this "running everything in a CLR is great" mentality. I can certainly see the value of virtual machines in cross-platform scenarios and providing a nice controlled environment for server software (JVMs, security etc) but I do not believe it to be a panacea as Microsoft wants you to believe. "Stop buffer overruns by running in a CLR!" are statements which shows just how immature Microsoft is with regards to security. All that happens is the security vulnerabilities move to your new environment, so all you're doing is running a virtual machine within a machine for no reason whatsoever. The only way to stop this is to restrict the programming power you have available in that new development environment, rendering it not very useful for many jobs.
However, every (certainly desktop) .Net application I have seen or developed runs much, much slower than its native counterpart and it does not look, feel are act any better than an application written with another programming tool. It is not necessarily quicker to develop for either. Having used .Net as a development tool every day for several months, and being amongst a group of people who think it's changing the world, I can quite categrorically say that people are stirring around looking for something great with .Net, but they just cannot realise that it isn't there.
What is your favourite/preferred language/solution?
The right one, and as programmers hopefully we will be diverse enough because that boosts creativity. Java has good development tools and has a wide variety of open source infrastructure available. I've seen Zope and Python do great jobs as content delivery backbones for universities. Ruby is a language that promises much for rapid development, and as for the desktop, the best development tool I have seen for serious systems there is Qt. That's simply because of the way it hangs together, they way they've though about certain problems and come up with signals and slots (which has no equal anywhere) and the way they've thought about how their libraries look and programmers' usability. They don't simply make object-oriented wrappers, namespaces and classes - which is basically what the .Net framework is around Win32 now.
I once went on a .Net training course where a tutor drew a small rectangle on the board and told us that was the size of the .Net framework now. He then proceeded to draw an even larger rectangle around that one (several times the size) and told us that was how far Microsoft still wanted to go in coverage. I think that tells you all you need to know about how interesting .Net is.
The right one, and as programmers hopefully we will be diverse enough because that boosts creativity
I don't know why boosts creativity the many small, redundant and primitive class library and tool.
They don't simply make object-oriented wrappers, namespaces and classes - which is basically what the .Net framework is around Win32 now.
LOL. And mono is basically an object-oriented wrapper around the linux ? And what about java, python, php (this things also available under win32).
You microsoft fanboy's running on linux, question: How do you justify Mono with technology that doesn't actually support any other browser then IE?
I'm working on a project that is coming up with a consistant stream of Asp.Net code that doesn't work in mozilla/foxfire? Are you going to "Extend" Asp.Net to actually work on other browsers?
What's the progress, if any?
- Regular Expression client side support
- Response.write( writing a form ) doesn't work
These two of the top of my head.
Someone asked about ASP.NET, Mono's version of RegularExpression validators work on IE, Mozilla and Safari and fall back to server-side validation if the browser is not supported. See the Mono 1.1.9 release notes for details.
your second comment: I do not understand what you mean, so its hard comment on it
Those of you who argue against using Mono or .NET because of the virtual machine, just think about it in a different way. It's a encoded form of source code that gets compiled to machine code for you automatically. It gives the closed-source world the same portability features the open-source world has had.
If the world ever does break out of the x86 instruction set monopoly, the CLR (or JVM) is the only thing that will prevent closed-source programs from needing one version per processor type.



