Mono 4 Released, First Version To Adopt Microsoft Code
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.
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++.
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!
If you say that "To Serve Man" is a cookbook, they'll grill you.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
For RAD I've had some good experiences in the pas with RealBasic (renamed to Xojo some time ago). At the time the GNU/Linux support was quite ok but they haven't really kept up. 64 bit is still missing for example so running anything you build with it will require a couple of 32 bit system libraries to be installed.
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.
All hope abandon ye who enter here.
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.
This is my sig. There are many like it but this one is mine.
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.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
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.
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). But leave that aside, because the patents have also already been granted.
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.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
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.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
All kinds of patents, including DNS, DHCP, DNSSEC, ISCSI, RADIUS, SMTP, POP3, DSA. MS owns the patents on many RFCs, but are under their generic "Community Promise".
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 other sources for your made-up claim - say other MS top executives, maybe even present ones - then please feel free to post them.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
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?
The world's burning. Moped Jesus spotted on I50. Details at 11.
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.
All hope abandon ye who enter here.
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.
The world's burning. Moped Jesus spotted on I50. Details at 11.
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 something dumb like that, and they didn't change the license on the kernel, so they can't show up and shake you down or anything.
Their contribution to Mono was of a similar size and licensing scope. Microsoft isn't going to show up demanding money for this if you use it.
Do they still "look just like" or are they "the same thing?" It used to be very easy to distinguish Qt applications on OS X when I used to use it a couple of years ago. The widgets looked very similar but you could instantly recognize that they were not quite right. It would be nice to know if the situation has improved.
So freedom to use whatever software you want, as long as it's the software you approve of?
Vintage computer games and RPG books available. Email me if you're interested.
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 way that is often much more powerful, but still easy and flexible. If you insist on your definition of RAD you'll likely run into limitations (any RAD system) and be disappointed. It's a good concept but in practice I think you need more than that. Except for certain vertical markets, I don't really see the point of full RAD to be honest. Especially when a half dozen lines of explicit code can do the same thing, but exactly how I want it. The XML gui design is far far better in my opinion. Load the ui file, autoconnect the callbacks to your code, done.
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)
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
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.
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.
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 the community promise.
The patent grants also are not tied to a full-stack implementation like Java/Oracle. The fact is, the patent protection when using CLR is far more transparent and effective, compared to Oracle/JVM.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
Intel also contributes a lot of money to the foundation which employs Torvalds. Microsoft does no such thing.