Mono 4 Released, First Version To Adopt Microsoft Code 223
jones_supa writes: Version 4.0.0 of Mono, the FOSS implementation of the .NET Framework, has been released. This is the first release of Mono that replaces various components of Mono with code that was released by Microsoft under the MIT license. Microsoft itself is working towards .NET Core: a redistributable and re-imagined version of .NET, which has two code drops: CoreFX and CoreCLR. Mono at this point continues to provide an API that tracks the .NET desktop/server version. This means that most of the Mono code that has been integrated from Microsoft comes from the ReferenceSource code drop. Mono's C# compiler now also defaults to C# 6.0.
Anything unique? (Score:2)
Does Mono provide something unique to grant a look at it?
Re:Anything unique? (Score:4, Informative)
It absolutely does. You can develop completely cross platform applications with 1 codebase using XWT. The single codebase creates projects for GTK, Cocoa(OSX) and WPF(Windows) that use the native controls for the corresponding platform.
The fact that they are porting most of the libraries over to the first-party Microsoft versions means less bugs, and way more active maintenance. This is very good news for cross-platform developers!
Re: (Score:2)
There are other ways to develop cross platform code that don't require putting the loaded gun of Microsoft's dubious anti-litigation commitment to your head. .NET simply isn't so good that I'd put my fate in Redmond's hands.
Re: (Score:2)
Not unique at all. Java has had this ability for over a decade.
Re: (Score:3)
Re:Anything unique? (Score:5, Interesting)
Re: (Score:2)
well considering their 'mit license' is invalidated because of the wording saying you can't use without their engine or code... it kind of is a trap. Just a bad one.
I suppose you have a source for that restriction?
Can you please help me, because when I view the LICENSE.TXT (https://github.com/dotnet/coreclr/blob/master/LICENSE.TXT) I cannot find anything like that?
Re: (Score:2)
The patent indemnification only covers you if you are using the code for a .NET runtime or a .NET application. Too bad if you find some of the code useful in an unrelated project and fall for the MIT license.
Re: (Score:2)
Re: (Score:2)
IIUC it's worse than that. For a .NET runtime you must implement the complete specification, which they are allowed to change at will. I suspect that the .NET application is safer, but I'd need to study it a bit to find out, and I'm not that interested.
That said, they won't bother to sue you unless you're successful, so most people will be safe.
Re: (Score:3)
I may add:
The PATENTS.TXT (https://github.com/dotnet/coreclr/blob/master/PATENTS.TXT) also does not claim anything like that. It merely says that if *you* bring a patent lawsuit against *anyone* for using the *covered code*, any patent grant is revoked and the promise is revoked.
Re: (Score:2)
well considering their 'mit license' is invalidated because of the wording saying you can't use without their engine or code... it kind of is a trap. Just a bad one.
There is NO wording which says what you claim.
There's an ABSENCE of wording that says the inverse, however.
Re: the Qt is vastly superior to .net (Score:2, Informative)
I haven't looked at Qt 5 -- does it still insist on duplicating the STL except with a horrible naming convention and poorly justified design changes, making it painful to use any non-Qt C++ library?
Re: (Score:2)
"Insist duplicating"? What do you propose as alternative, when you don't want to destroy source compatibility of old applications? Qt 5 API is almost identical to Qt 4, no big break like after Qt 3, and having it any other way would have been very bad, because underneath Qt 5 has major improvements (starting from being able to connect C++11 lambdas to Qt signals, and being able to construct QStrings at compile time). So most apps still under development should and can easily be upgraded to Qt 5 (while stayi
Re: (Score:2)
As you point out, Qt 4 broke source compatibility in a major way -- so obviously it is not the kind of showstopper you suggest it should be. I would propose using idiomatic C++ design approaches, rather than sticking to architectural decisions that made sense 20 years ago before there was much consistency between C++ compilers. Nowadays, there is no good reason to prefer QString over std::string or std::wstring (and many good reasons to prefer the latter), and the same applies to every Qt container type.
Re: (Score:3)
As you point out, Qt 4 broke source compatibility in a major way -- so obviously it is not the kind of showstopper you suggest it should be.
The transitional period was quite painful for a great number of projects. It was only done because it was a necessary evil at the time.
Compatibility is not something people should jump at the chance to break if it can be avoided unless there is sufficient benefit. It has been judged that there is insufficient benefit to doing so currently.
Re: (Score:2)
What made the Qt4 breakage "a necessary evil" but also prevented them from adopting remotely modern C++ principles at the same time? Why was that breakage good, but making it practical for developers to adopt standard C++ practices could, and can, be so lightly set aside?
The sad thing is that Qt people are probably going to remain stuck in a 1990s mindset about C++ as long as people like you are willing to make apologetics for their misdesigns.
Re: (Score:2)
The Qt 3 to Qt 4 transition was painful enough for too many projects to make similar breakage very unpalatable for the community. Sort of "been there, done that, didn't enjoy it" situation. And what you are suggesting (replace every container etc with a different one) would be even bigger breakage.
And of course from cost (be it money or time) point of view, touching basically everything in the Qt source code to strip out Qt classes would be gigantic work. Not going to happen, there's neither business case n
Re: (Score:2)
Qt's containers expose STL-compatible iterators, making it quite easy to use with any other well designed library. Sure there's some baggage due to history, but you can mix Qt into other code very nicely these days.
Re: (Score:2)
Non-iterator types? In *my* C++? It's more likely than you think!
Re: (Score:2)
And a related question: Is Qt 5 exception-safe yet?
Re: (Score:2)
It's so cute how the young people of today think that Python is a real programming language because "bindings".
Re: (Score:2)
Yup. Aside from being written in common C/C++, not only does it work cross-platform for desktop environments but also for tablet/phone environments.
Re: (Score:3)
Now they seem to promise cross platform development again, but for how long? It wouldn't be the first time Microsoft changes strategy.
Well, Mono has been around for almost a decade now, and they AREN'T Microsoft. Microsoft submitted .NET for ECMA standardization, and Mono is an alternate, non-Microsoft implementation. Microsoft engineers and Mono engineers have worked closely in the past, but this is the first time that Microsoft developers have contributed code to Mono.
In the same way, Microsoft has contributed some code to the Linux kernel. It's not a majority of the code, so they can't argue that you should call it MS/Linux or somethi
Re:Anything unique? (Score:5, Interesting)
Microsoft has not contributed any useful code to the Linux kernel. Their "contribution" was drivers so that Linux could work on their hypervisor. If you're not running a MS server with MS Hyper-V, then their contributions are useless to you.
Yeah, it's nice they're playing a little more nicely with Linux now, but don't pretend their "contribution" had any altruistic component to it at all, because it didn't. It was only done because customers were demanding that they be able to run Linux virtualized on MS systems. MS did the bare minimum needed to enable this, and that's it.
Re: (Score:2)
Re:Anything unique? (Score:4, Insightful)
Intel also contributes a lot of money to the foundation which employs Torvalds. Microsoft does no such thing.
Re: (Score:3)
Microsoft has granted patents, to anyone who implements a .NET runtime. The grants were part of the standardization of .NET CLR and core libraries.
It is a misunderstanding that it is bound to Microsofts own implementation. Those grants has always extended to Mono. The anti-Mono and anti-Microsoft fanatics started a FUD campaign based on speculation that MS could just sue anyway, and the mere cost of defending against MS would force Mono underground. It was a response to that FUD campaign that MS also issued
Re: (Score:2)
If you mean compared to the official C# release, for the moment it's still Windows-only, so Mono's main advantage is being a cross-platform C# compiler/runtime.
Re: (Score:2)
Only after I have pressed "Post" button, I hare realized that I probably given not enough context.
"Anything unique to a Linux developer who looks for RAD on Linux"?
From RAD for Linux, I'm aware only of the FreePascal-based Lazarus (Borland Delphi remake).
Past attempts with the KDevelop (and QtCreator) were pretty abysmal: right after "apt-get install" and few clicks to throw together UI, they were failing simply to compile the "Hello World" msgbox application. (And wild goose chase to install what was
Re:Anything unique? (Score:4, Interesting)
Re: (Score:3)
Xojo
Xubuntu 14.04 says that the installation would take 195MB of space. Bit heavy. Worst part: it is BASIC.
On the positive side, Lazarus + FP SDK, requires almost 1GB of space on my Xubuntu.
My ultimate goal is to be able to put together a quick UI, check in the source, and tell in few words to others who going to check it out how to compile it and get it running.
All in all, Xojo gets on the short list of things to try.
Re: (Score:2)
BASIC these days is little different from Pascal so I don't see why this is a downside. BASIC is every bit as modern as any other language and structurally equivalent to any modern static language. It's more verbose than C and similar languages, and maybe as verbose or slightly less verbose than Pascal is. Not sure about RealBASIC, but other BASIC dialects suffer from way too many things being a part of the language with custom syntax, rather than a callable function in the runtime. For example the Pset,
Re:Anything unique? (Score:4, Insightful)
BASIC is every bit as modern as any other language and structurally equivalent to any modern static language. It's more verbose than C and similar languages [...]
Verbosity is the problem.
If I were fine with the screens and screens of the boilerplate code, I would have simply used the Java.
I don't understand why you couldn't get QtCreator working. Qt is easy to install and use on Ubuntu. And the Qt QUI designer is very easy to work with.
As I heard it was a systemic problem back then: not all package dependencies were declared, meaning that after installation you have to also install bunch of other stuff to make it working. (Many years ago, first time I tried QtCreator, it actually refused to run, because some linked libraries were missing.)
I'm not sure about now, but back then it wasn't even close to anything RAD. It was only a helper to create the GUI in a XML form, which was back then not even properly integrated with the rest: one had to write some code manually to actually tell Qt what resource corresponds to the window. And add resource manually to the resource file.
I would say that Python + libglade + glade is also a pretty good combination. It's not quite the RAD experience you seem to want, but it is a fast and powerful way of developing GUI apps, thanks go a nice API and Python.
Yes, it is not RAD. And for that I already use QT + C++, which provides very powerful, simple and no-fuss API to build GUIs dynamically (without external UI building tools like glade or Qt Designer).
The problem is not me per se - I have no problems with most of the stuff. The problem are the other team-members who are not well versed as me in the scripting languages and building GUIs. On many past projects I have left behind lots of stuff which 95% of coworkers can't support or develop further. And I want to solve the problem by throwing in something that requires as least boilerplate as possible, stays as close to demos/examples as possible. I'm simply trying to find something to help the people start moving in the right direction.
Re: (Score:3)
You misunderstand. By verbosity I don't mean boiler plate, java-style. I mean simply that there are more keywords. If/Then/Else/End if, Do Loop, For/Next. Again no worse than Pascal which you don't have any problems with.
QtCreator is much closer to the RAD concept than you state here. Callbacks can be filled out in the IDE. It's not like you state in your post. However, the RAD concept isn't always super flexible, and modern GUI systems like Qt and GTK all let you work on the GUI in a programmatic wa
Re: (Score:2)
If you insist on your definition of RAD you'll likely run into limitations (any RAD system) and be disappointed.
No, I will not be. I have used in the past the Borland Delphi for 5+ years and well aware of the limitations which come with the paradigm (rigid system libraries, "there is only true way to do it", "if there is no button for it, it's impossible", and so on). (And yes, to this day, I deeply hate Borland Delphi.)
I'm interested in RAD for specific purpose, so to say. To show that GUI development can be as easy as writing 10-20 lines of shell, but with the bonus of having a UI which is little bit more than te
Re: (Score:2, Informative)
Well, it's a better designed language than Java ever was, so there's that. What more do you need?
Re: (Score:2)
I don't think so. They have only just added lambdas in Java 8 (which is something that C# has first got in 2.0 in 2005, and in the form more or less equivalent to what Java has, in 3.5 in 2008). And even then some of the stuff that goes along with it is hilariously bad, like their insistence on type erasure for generics, and the associated requirement to have dozens of interfaces [oracle.com] to cover the most basic function types for the most common primitive types. In the meantime, C# is still actively evolving, gaini
Re: (Score:2)
The patent indemnification promise is irrelevant as it is basically legally meaningless. Microsoft wants the open source community to write stuff that uses Mono for all the same reasons they court non-open-source developers so aggressively. This post used to be a lot longer, but I am shortening it to simply reference some things that one should look up in a search engine if they want to know what this Mono / patent indemnification / "C# and Visual Studio are the best things ever" bollocks is really ab
Re: (Score:2)
Whoa dude C++? FORTRAN is the REAL language. Get your fancy high level crap out of here.
I like my languages like I like my coffee: without synaptic sugar.
Re: (Score:2)
no, it'd take you 10 minutes in Visual Studio - not quite the same time as it takes using anything else, and VS doesn't exactly run on Linux or Mac which is the point of Mono and even then you get a very non-native GUI.
Re: (Score:3)
Re: (Score:2)
java ie write once, compile... once. big failure on cross platform.
For you maybe. I spent 3 years developing Solaris apps in Java on Windows XP machines.
Re:Anything unique? (Score:4, Insightful)
Indeed. I have written several cross-platform Java apps and utilities that run just fine on Windows, Linux or Mac boxes. One can certainly write Java programs that are locked to one platform, but I've ever seen the need.
Re: (Score:3)
That is nonsense.
If you compiled a Java 6 App and run it on an Java 1.3 VM, it wont work, for plenty of reasons.
I personally had in 17 years Java development no single cross platform issue.
The people who told me cross platform problems are about a handful. Mostly doing weird stuff, or once an RMI problem between Sun Java 5 and IBM Java 1.4 (which boils down to differences in serialization)
Beware Rust, Go, and D. (Score:3, Insightful)
Being able to use C# on Linux and OS X and the BSDs will make languages like Rust, Go and D even less useful than they already are. People who are anti-Microsoft may not like to admit this, but C# is an excellent programming language, and .NET is an excellent runtime. Although they're over a decade old, they were so far ahead of their time when they were first released that they still feel fresh and relevant even today.
Mono was always OK, but not great. Now that Microsoft is releasing code that Mono can also use, everyone is a lot better off. We'll finally be getting a high quality VM runtime for Linux, much better than Java and it's VM, and much, much better than Parrot and the other failed open source VMs. The .NET CLR always feels very transparent, unlike the JVM which is painfully obvious.
It's getting to the point where any sensible software developer will write their software in C#, even if targeting Linux. C# is just the best general purpose language out there. In the rare cases where C# isn't suitable for some reason, modern C++ provides a superb alternative.
Between C# and C++, there's just no need for other languages. Both C# and C++ offer low level functionality, as well as much higher level functionality like lambda functions, closures, generics/templates, OO, memory safety through GC and/or smart pointers, and so on.
There's just no sensible reason to use a language like Rust, Go or D these days. They're inferior to languages like C# and C++ in various ways, but without being any better. So you're inherently worse off when you use them.
If you're ever in a situation where you may be choosing between Rust, Go or D, postpone your decision and look at C# and C++. You will very likely be making a better choice by choosing mainstream, well-supported, portable, mature and efficient languages like C# and C++.
Re:Beware Rust, Go, and D. (Score:4, Insightful)
I am old enough to have worked with .NET pre-releases. Back then most viewed C#/.NET as a cheap and broken Java clone. It took .NET several years to become mature enough to be useful.
Re: (Score:3)
Re: (Score:2)
One's right to life, liberty, property, speech, press, freedom of worship and assembly may not be submitted to vote
So you know, there's a very good reason that the Constitution codifies that the government may not make laws "establishing an official religion, or prohibiting the free exercise thereof." Those two rights are much broader than "freedom to worship."
Re: (Score:3)
Yet for some reason, the supreme court had to establish this in the above quote in the early 20th century.
Re: (Score:3, Insightful)
I tend to agree. I've had to use C# recently, and the .NET stuff is impressively mature and full-featured. I'm an old hardcore Java programmer, and Microsoft copied Java and C++ so closely that I was immediately productive. The whole .NET thing is an excellent rubber-room runtime system with everything you need. You'd be very, very, very hard pressed to make a business case for not using it. And even harder pressed to make a case for some nothing language that has no users anyway.
My pet peeve is that there
Re: (Score:3)
Neither are quite perfect though - C++ has plenty of ancient cruft that;s there for C compatibility, but then, C# has plenty of cruft from its old 1.1 days (all those nasty, nasty functions taking char[] parameters for example.
But they're still better than the newcomers simply because the new ones are just as imperfect but without the benefit of a wide user base or tooling. Maybe one day Rust will become mainstream and we'll all start using it, and good luck for that day.
But, there's no reason not to use C+
Re: (Score:3)
Rust and C# target two different niches. Rust is basically a "better C++", and is suitable for kernel development and such. C# is more high-level and is best for userspace UI and web apps.
Re: (Score:3)
Better than the Java VM? In what ways, and where are references?
In most large corporations, JEE is 50-80% of new mission critical software nowadays. I work for one of the top-5 banks and we use windows only for desktops, and on the server side mostly for small- to midscale software pacakges. All the companies mission critical systems, either bought or built, are either on the Mainframe (diminshing, but that will take 10 years or more to finish) or various forms of Java (JEE, tomcat, hadoop, various other cl
Re: (Score:2)
So much shilling in one post.
>uttering C++ and C# in the same sentence as if they are equivalent
Just... no.
>no need for other languages
Uh huh.
It seriously sounds like you've got only two tools in your toolbox and are looking at the guy with the loaded Gerstner box and telling him all those things are useless, which as a machinist and toolmaker, I have to say that you're delusional.
There is room in the world for C, Lisp, Go, Rust, COBOL, C#, and literal jokes like Brainfuck. Because no one language is
Re: (Score:2)
There really isn't a neat for that many languages, even though you need quite a few to cover all the relevant use cases.
The biggest issue right now with languages though, is that you have language A, that specializes in a very particular use case. Then you have a group who wants A, but with an ecosystem and focus on another use case, so they create B. For a while, life is good, until zealots of A go and try to recreate A in ecosystem B, and vice versa. Then people need to create ecosystem and language C, an
Re: (Score:2)
To use C#, I'd have to trust MS. Never.
Re: (Score:2)
I can do the same thing with the JVM and choose from a number of languages (that are better than Java or C#), and I've been able to do this for a very long time. So this really adds nothing but another option but with shittier tools to work with.
Re: Beware Rust, Go, and D. (Score:2)
Rust, Go, and D have completely different use cases than C#. It's like saying that C became irrelevant when C++ came out. Besides, Scala has more to offer than C#, and googling "EPFL lawsuit" gives you "Did you mean USFL lawsuit?"
Re: (Score:2)
F# is a better functional language than Scala (and isn't plagued by shit like Scalaz and Akka. Also, even though Scala itself is an excellent language, the JVM underneath limits it in weird ways with issues the CLR doesn't have), and C# is better than Java (and in certain, limited cases, better than Scala).
So the combination of both and the CLR, once it is fully cross platform and instrumentation/support ecosystem is available, would blow them out of the water. It probably won't happen because of the micros
Re: (Score:2)
Re:Beware Rust, Go, and D. (Score:4, Interesting)
> Both C# and C++ offer low level functionality
Not really. Can you write a device driver in C#? How about a plain DLL? CLR is a VM. Its CPU performance is OK (2-8 times slower than C).
http://benchmarksgame.alioth.d... [debian.org]
But programs written on it have memory requirements that are higher than ones written in plain systems languages. The runtime footprint on the disk is also massive. I don't think you can really make a case that C# is a low-level language. It is not that much more CPU efficient than Java. Mono performance is worse than Java.
http://benchmarksgame.alioth.d... [debian.org]
Of course, CLR is better than dynamic language aka scripting language runtimes. But that's about it.
Re: (Score:2, Informative)
It's funny how things have come full-circle.
In the 1990s, Microsoft used to be the one accused of spreading Fear, Uncertainty and Doubt. Microsoft used to be the one pushing unwanted software on the masses. Microsoft used to be the one pushing lousy programming languages like VB.
Now it's the 2010s, and open source supporters like yourself are spreading Fear, Uncertainty and Doubt. Open source supporters are pushing unwanted software like systemd on the masses. Open source supporters are pushing lousy progra
Re:Beware Rust, Go, and D. (Score:5, Informative)
Have you ever considered the possibility that all those years of misconduct by Microsoft have sowed a considerable amount of distrust in the developer community, and that even where Microsoft has turned over a new leaf, so vile was its conduct "back in the day" (which ain't all that long ago, if you think about the OOXML open standard scam), that it might take years, or maybe never, to convince a lot of people that there isn't some evil plan in the works.
Give me one good fucking reason why I should ever trust Microsoft again?
Re:Beware Rust, Go, and D. (Score:5, Interesting)
Please don't compare apples to oranges. You are totally right about the trust issue, that's something personal. But it has very little to do with the C# language or .NET.
Pulling JVM into the equation not really helps either, cause the consequent question would be: Do you trust Oracle? Or Google, for that matter if you count Dalvik in.
I do like the C# as a language, having done a few smaller projects with it. The reason why i prefer not to use it is, indeed, because i don't trust or like Microsoft. Having said that, i am totally fine with the Mono project - despite all criticism it's just the language and the VM and has very little to do with MS, and when appropriate (i.e.: someone pays for it) i wouldn't hesitate to develop with Mono or .Net again.
GP totally has a point here: The languages you really need for a certain task already exist, whether it be C, C++, C#, Java and a handful of other niches including but not limited to Perl and PHP. Whatever your choice is, try stick to a steady platform. Code written in any such `proven` language is much more likely to compile in another 10-20 years from now than code written in some obscure actively-developed language which adds little, that couldn't be done otherwise, but headaches.
And AC above also has a point that many OS enthusiasts are guilty of exactly what they accuse their nemesis of. Hence he doesn't deserve the tag 'astroturfer', it may well be his honest opinion. It's totally ok to criticize, but be prepared to accept criticism too, please.
Re:Beware Rust, Go, and D. (Score:5, Insightful)
You sir, are a great astroturfer and deserve a raise from MS.
That's really another type of FUD; that anyone who says something that isn't completely anti-Microsoft must be being paid to say it.
It has been 10 years since Mono was released and 13 years since .NET was released, and for the entire time there have been the predictions that Microsoft will start suing all and sundry for patent infringement. For that entire time it hasn't happened. For that entire time it has been complete FUD, whether you like it or not.
Well, just recently a very interesting article covering Microsoft "open source .NET" license, you should read up on that, especially MS requiring a license to the patents in the code you contribute, but refusing to grant you license for their code, instead, providing a promise not to sue.
So what? None of that means that Microsoft is going to start suing you for using the Mono CLR and Framework. If you don't like their terms then don't add your own patented code to a .NET Foundation-owned project, but feel free to use Mono without any fear of being sued by Microsoft.
If you really trust Microsot more than RedHat or opensource developers, than please, don't let anyone stand in your way, trust is a personal issue, some people trust ISIS, some - the supreme leader, but some prefer to be able to verify the code themselves, and Microsoft throwing their dying platform into opensource stream, hoping for a revival is very far from transparency and verifiability.
Wow, talk about FUD again. Bringing up ISIS is just a modern version of Godwin's law. And "some prefer to be able to verify the code themselves" is FUD because this is all about open source code released by Microsoft. Of course you can verify the code yourself. Or are you mixing up the completely unrelated non-OSS Windows code that you can't see. How is that relevant to this discussion?
Re: (Score:2)
What happened to the Slashdot I used to know? The old crowd is gone, replaced by young 'uns who spent their college years downloading 1000s of music files.
Thanks for calling me a young 'un. Nobody has done that to me in a very long time.
But I have to say that you sound like a leftover hippie from the 60s complaining that everyone who no longer believed in peace and free love had sold out, when in fact they had just grown up. Feel free to complain when Microsoft does something wrong. But after 13 years of predictions of a patent apocalypse, perhaps it is time to face the fact that they are not going to start suing the world for using Mono; especially when ther
Re: (Score:2)
Companies are made of people and they change, grow up/older and move on. It is a huge company and in any such organisation it takes a long time for culture and strategy to change significantly.
Anyone who witnessed the hideousness of the SCO litigation [wikipedia.org] has to look at a new Microsoft where FOSS is actively supported (even if there are strings attached) and where employees can talk about open-sourcing the OS [wired.com] without being fired on the spot has to accept that th
Re: (Score:2, Informative)
Nope, but a person believing that Microsoft is more trustworthy than global community,
That is their opinion. It doesn't mean that they are a Microsoft shill as you claimed.
that .NET runtime is a silver bullet that will kill Ruby, Go and Rust
The AC didn't say .NET would kill those languages, just make them less useful.
person that keeps insisting that MS won't sue anyone over .NET despite the shady language in the license and a number of restrictions (.NET code can only be used to create a runtime adhering to MS specs and for no other purpose)
There is simply no shady language in the license that is going to affect Mono. If they ever decide to change Mono from an implementation of the .NET platform to something else (eg. JVM) whilst retaining Microsoft's code then they could be in trouble. But do really think for a second that they would change the focus of the project like that? Absol
Re: (Score:3)
You sir, are a great astroturfer and deserve a raise from MS.
Well, just recently a very interesting article covering Microsoft "open source .NET" license, you should read up on that, especially MS requiring a license to the patents in the code you contribute, but refusing to grant you license for their code, instead, providing a promise not to sue.
Um... Mono is released under an MIT license, which is less restrictive than the Microsoft Public License. But here, take a look what Microsoft's Open Source license says in terms of them licensing you their patents on their code:
2. Grant of Rights (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
I'm not going to reproduce Section 3, but the restrictions are: You don't get a trademark license or a warranty, you're not allowed to sue other licensees over your patents, you have to retain copyright notices that appear in source code, and you can't re-license MSPL code under vir
Re: (Score:2)
Ms-PL is basically ancient history by now. Most of Microsoft's open source projects are released under either Apache License 2.0 or MIT License. CoreCLR (the current effort to open source .NET), in particular, is under MIT [github.com].
Re: (Score:2)
The CLR like the JVM can host other languages, there is even a lisp for it ( http://clojure.org/clojureclr [clojure.org] ). I am not that familiar with the CLR but I think that only "system languages" can't really be implemented in it.
Re: (Score:2)
I thought Rust and D were really aimed more at replacing C than C++.
Re: (Score:2)
D is aimed more at replacing C++, and definitely ventures onto C#/Java turf as well. It's not a good C replacement because of GC requirement (the base language doesn't need it so long as you avoid some features, but the standard library effectively makes it compulsory). Rust is aimed at both C and C++, with an emphasis on being usable for system programming (kernel etc).
Rust and C# are most certainly not competitors.
A promise? (Score:2)
A "promise" not to sue? I'll take that as soon as the various studios rip out their copy protection in return of their customers' promise not to copy their crap.
Goodbye Mono, your license stinks. (Score:2)
CoreCLR has no such restrictions and is gathering an enormous developer community, so I can't wait until we can kiss Mono goodbye.
Mono practically useless (Score:5, Interesting)
After looking at Mono I failed to see the point in the whole thing. Thats because it does not support the WPF. Since a large number of .NET applications are GUI, not having WPF pretty much destroys the value of Mono in allowing Windows .NET programs to run on Linux. Otherwise, there is no point in using Mono. If you have a .NET program written using WPF its not going to run on Mono. If you are writing a new program there is no reason to use Mono instead of another application language such as Ruby. Using a development environment designed by the Evil Empire does not hold special appeal over the FOSS plartforms such as Ruby. If one has to write a program that can run on both Windows and Linux i would probably be better to use Ruby or Python or such.
Why didnt Microsoft Open source the WPF. Instead, they open sourced the parts of .NET that Mono already had implementations of.
Re: (Score:2)
I've never seen WPF used before. Forms are used much more than WPF.
Re: (Score:2)
I've seen a couple of WPF GUIs, invariably they're horrible - like what you'd write back in the 80s. I once saw a GUI that had orange and blue colouring with red highlight bars - yup, highlight the selected orange text with a red bar, reducing the distinction between the colourblind and those with perfect vision.
Its pretty slow too, a colleague had to drop it for his audio GUI as it simply did not respond quickly enough whereas the old C++ GUI worked perfectly well.
But its the latest cool thing so all the c
Re:Mono practically useless (Score:5, Interesting)
WPF is very over-rated. [paulstovell.com] that has poor hardware rendering [wordpress.com] that doesn't work as well as old winforms [wordpress.com]
Maybe Microsoft isn't open sourcing WPF because they know how bad it is. Only the .NET fanbois are still going on about how wonderful it is, even though the majority of UIs I've seen on Windows are using ASP.NET or Winforms.
Re: (Score:2)
Winforms emulate com underneath. I remember a long time ago there was dcom/com on Linux. Do no not know if it is still active or how well it integrates with Gnome or XFCE?
Problem is we excpect it to be like Java and just work across platforms. C# maybe started out as J++ as a set of apis for java, but it is not java anymore. It is not python either that has gui components and frameworks designed to be cross platforms. It is not PHP either which that has quirks which make running it on Linux far best to this
Re: (Score:2)
WPF's perf issues don't eclipse the fact that it's one of the best designed UI frameworks out there in terms of just how powerful and flexible it is. Things that take many pages of code to implement in WinForms are often 2-3 lines of XAML in WPF. The only framework that I'm aware of that's close in terms of expressive power (and beats it on conciseness) is Qt in the most recent incarnations of it.
The reason why WPF is not open sourced is more likely to do with the fact that it's all built on top of Direct3D
Newbie Mono question (Score:2)
Can you run a .NET application that currently resides on a Windows-based web server on a Linux-based shared hosting server using Mono?
Re: (Score:3)
Can you run a .NET application that currently resides on a Windows-based web server on a Linux-based shared hosting server using Mono?
In general: Yes. Need more context about the application to give a definitive answer, e.g. if it uses Windows specific infrastructure such as AD, Workflow Foundation.
Re: (Score:2)
Problem is let's say there is a bug that is causing your web app to constantly run out of threads or restart?
Who do you call for support? Let's say you think it is mono causing it? WIth VS.NET on Windows you see the bug is not there. Or if it is you can go to MSDN and find others with the same issue and work arounds and a promise from QA that it will be worked on if it is big enough in a Windows update.
I do not like Mono for this reason.
Like C++ there is a big difference between one written for Unix and one
Re: (Score:2)
Problem is let's say there is a bug that is causing your web app to constantly run out of threads or restart?
Who do you call for support? Let's say you think it is mono causing it? WIth VS.NET on Windows you see the bug is not there.
Isn't that a concern with open source in general? That argument could be used against all open source projects where commercial support is not available. Yet, many open source projects thrives despite of this.
.NET is great but not if you make calls that emulate Windows.
But Mono does not make calls that "emulate Windows". In general the call upon native and/or open source libraries. Certainly you'd be hard pressed to come up with any examples of this behavior in the Mono server stack.
Winforms is an example too which uses dcom/com underneath. It would make more sense to use GTK calls if it is a Linux app.
But you are wrong about that. Winforms is definitively NOT based on COM (much less D
Re: (Score:2)
It depends. If it uses, ASP.NET MVC, almost certainly yes. If it uses classic ASP.NET, probably yes. But it all depends on the libraries being used. Also, perf may vary wildly.
The .NET Core / CoreCLR effort by Microsoft is aiming to change that. It's basically an open source reboot of CLR and ASP.NET MVC that starts from scratch, ditching backwards compatibility (in particular, a lot of the older parts of .NET Framework libraries, esp. those that were Windows-specific) and generally embracing modularity ove
Has 4.0 actually been released yet? (Score:2)
From the linked release notes:
THIS IS A DRAFT OF THE 4.0 RELEASE NOTES
I also can't find the 4.0 tarballs on the download page, which still says that 3.12.1 is the latest Mono release.
Re: (Score:2)
Looks like that's the case [ycombinator.com]
It is a shame that this got submitted before we actually published the code. It is Easter and many of our engineers are taking these days off.
The release notes are also incomplete and not ready for publishing
Miguel
Re:Patents? (Score:5, Informative)
Quite simply, a patent "promise" is not the same thing as a license. You see, even if they're bared by Laches, they can still drag you through the courts and you've got to prove they're barred by making the promise. If you had a license...you could make a single motion at the first hearing or in the pretrial motions to dismiss because of being licensed if they sought to sue you.
Having this crap in there means Mono's toast without a real license to any valid patents, combined with a covenant to license all tech as it becomes apparent, that ends up in this common core of stuff. Otherwise, you're INSANE for using it- because you can and most probably WILL be sued over it.
No - it is actually stronger (look up promissory estoppel [thefreedictionary.com]). But leave that aside, because the patents have also already been granted [ecma-international.org].
The *promise* was issued because fanatics cried foul at the patent grant, arguing that Microsoft with it vast army of lawyers could just sue any OS project out of existence, patent grant or not. Hence, Microsoft issued the promise, all but ensuring that such a case would be outright dismissed since you've acted in good faith on a promise. The promise in that case is actually one of the strongest contract forms imaginable, as it is one-sided: you do not have to sign anything to be covered.
Re: (Score:2)
"All but insuring" is not the same as "impossible." I wouldn't touch Mono or any other .NET runtime or compiler with a ten foot pole. There are other cross-platform/cross-architecture development tools out there, so one can completely avoid .NET and still write software that runs on all major platforms. In fact, pushing .NET in the way you do makes me rather suspicious. There's nothing Microsoft would love better than heavy entrenchment in other platforms so it can be turning the screws.
Microsoft has many t
Re: (Score:3, Interesting)
Microsoft has many times expressed its visceral hatred of open source. It is not to be trusted, not ten years ago, not five years not, not today, not ever.
BS again. Microsoft has NEVER expressed visceral hatred of open source. Ballmer has compared one open source license - GPL - with cancer, because of it's viral nature. The intentionally viral nature.
Ballmer is not at the helm any more. But even he never expressed hatred at open source, as you claim. You could construe his comments about GPL as hatred against that particular license type. And indeed, Microsoft has always opted for other OSI approved licenses when they had the choice.
But if you have any othe
Re:Patents? (Score:5, Insightful)
It would take a delusional lunatic not to know the long history of attacks against commercial and open source competitors. Microsoft isn't trustworthy, and as there are alternatives to .NET, the easiest way to protect against future bad behavior by Microsoft is to use those alternatives. Why risk future woes when you have no need to?
Re: (Score:2, Insightful)
It would take a delusional lunatic not to know the long history of attacks against commercial and open source competitors.
Then you should have no problems finding a few examples that illustrates Microsofts visceral hatred of open source (your words).
... long history of attacks against commercial and open source competitors
Fear!
Microsoft isn't trustworthy,
Uncertainty!
Why risk future woes when you have no need to?
Doubt!
As I suspected: Nothing but FUD. But pretty textbook FUD, that much I have to give you credit for.
Re: (Score:2)
Cases in point:
1. The ridiculous FAT long-filename patent
2. The subpixel rendering patent (despite prior art being shown)
3. Outright patent-troll behavior: Refusing to disclose a stack of patents its using to extort for-profit Linux distributors behind closed doors.
Thanks.
Which of the above illustrate Microsofts visceral hatred of open source?
(For the record: I believe that software patents should be abolished and I do not condone Microsofts patent litigation)
Re: (Score:2)
Cases in point:
1. The ridiculous FAT long-filename patent
2. The subpixel rendering patent (despite prior art being shown)
3. Outright patent-troll behavior: Refusing to disclose a stack of patents its using to extort for-profit Linux distributors behind closed doors.
If MS comes out of the closet and enumerates #3 and opens a dialoge with the community about them, THEN I will believe their hype about being open-source friendly. Otherwise, they are in the business of growing their Android-derived revenue using submarine tactics.
Also, explain to us why MS shuts out FOSS AV and document formats (the consumer-oriented ones); Not only from their products but from standards-making processes.
Have a nice day, mods! :)
Re: (Score:2)
Not ever is too extreme. I thnik that a decade of good behavior would cause me to be willing to trust them in non-critical matters. Of course the timeing of that is dubious. Should I start counting from the last time they threatened people with patents without saying which patents, or from the last time they extorted a payment?
Re: (Score:2)
Let me guess, now you refuse to use Linux because Linux implements several of these MS patents in order for IPv6 to work.
Re: (Score:3)
Re: (Score:3)