Mono Beta 2 Released
A little birdy writes "Less than a month after Beta 1 was released,
Mono Beta 2 has been released. See the Release Notes, or go directly to the download page. It includes a C# compiler, an implementation of the Common Language Infrastructure and two stacks of APIs: a Unix, Linux, GNOME, Mono stack for APIs that takes the most advantage of your Unix server and desktop and a set of APIs compatible with the Microsoft .NET Framework 1.1 that provides support for ASP.NET (web services and web forms), ADO.NET and many other components." And in a related story: darthcamaro writes "The drive to develop a FOSS implementation of Microsoft's .NET framework by DotGNU and Novell's Mono project is being painted as a contest between the Free and Open Source communities in an article on internetnews.com. The article details the running argument between DotGNU's Norbert Bollow and Mono's Miguel de Icaza on the issues of commercial involvement, software patents and all the 'religious' stuff that the Free software community holds against the open source community."
Well there is a compelete java vm which can run exclipse for mono. ( i know thats pretty hard to get the head around )
ikvm
also all major asp.net applications run
You might want to look at slides from Brainshare
/ pu blished/DL208/DL208.ppt
on System.DirectoryServices, and the expanded Novell.LDAP namespace:
https://secure-www.novell.com/brainshare/portal
Miguel
I would highly recommend you actually do some research for yourself rather than forcing /.'ers to do it.
.Net as an ECMA standard, they were forced into giving out the patents as RAND: royalty-free and non-discriminatory licensing. Non-discriminatory does not _necessarily_ mean GPL compatible, which is where the problems could arise. However, other people have noted that Microsoft does not generally use _patents_ offensively, and thus the threat is probably non-existent.
However, for those who were wondering:
When Microsoft got
Ergo, there _could_ be a problem, but Microsoft would probably have to be VERY desperate to attempt to squash Mono, since they have no prior record of using patents offensively.
That's how I understand it, anyways.
-Erwos
Plausible conjecture should not be misrepresented as proof positive.
As always, there is a Wikipedia article avalible about this story.
We do support two stacks of APIs today in Mono: the Microsoft compatible stack (ASP.NET, ADO.NET and Windows.Forms) but we have been investing heavily in taking advantage of our own set of libraries that Linux, Unix, Gnome, X, Mozilla, CORBA specific.
For instance, Microsoft uses XmlSchema, Mono supports it, but distributed RelaxNG support as well.
We are working on Windows.Forms, but we also have strong bindings for Gtk# to build native applications. In fact MonoDevelop (www.monodevelop.org) is fully written using this stack.
We support the Microsoft database APIs, but we ship providers for all the open source (Postgress, MySQL, Sqlite) providers and other third party databases (DB2, Sybase, Oracle).
Tao is a backend agnostic set of 3D graphic APIs (OpenGL, Cg, SDL) while we still plan on supporting the Direct3D managed APIs.
Our set of APIs is what has allowed us to build things like MonoDevelop: a fairly complete IDE for Mono for developing Linux-based applications.
"I would highly recommend you actually do some research for yourself rather than forcing /.'ers to do it."
Well, quite.
RAND != Royalty Free and Non-Discriminatory
RAND == Reasonable And Non-Discriminatory
So, in fact, they *can* and *do* charge money to licence patents under RAND. RAND is not good enough for any Free Software, GPL or otherwise.
"Elmo knows where you live!" - The Simpsons
Mono is fairly efficient, but there is a lot of
room to grow optimization wise. There is no clear
answer to this question. Although Our JIT engine
implements a fairly advanced SSA code optimization
platform, and it also allows for pre-compilation
in batch mode (we typically get a 20-25%
performance on applications) it really depends
on the software you run.
Typically we have been able to tune Mono when
people have pointed out a major performance issue
by profiling the problem: sometimes the fix is
simple, sometimes it requires the JIT codebase
to be improved.
Work on improving the JIT engine continues,
we recently checked in better register allocation
for some corner cases, better inlining of intrinsic
functions, loop-based optimizations and removing
array bounds checks.
If your program is I/O bound, a different set of
issues arise, so am sad to say `it depends'.
miguel.
GTK#, is a mono version of GTK, which is the de-facto toolkit for Open Source Software. It even works on Windows, so what are you waiting for?
We are using the Boehm collector in precise mode,
so all we are missing is the compacting features. It does a fairly good job, and we can run large
applications with good success.
Doing a compacting collector is in our radar,
but we have to balance our resources: port to
new platforms, support 2.0 features and improve
performance.
Mono 1.0 will use Boehm, but after that we might
consider using a different collector (in fact,
we have some preliminary patches for doing
refcount-based systems).
will the applications I write with this stack work on Windows?
If you write a pure C# program that does not use the GTK-Sharp , QT-sharp, or any other neat bindings, it should run. The very simple Hello World apps work.
I still think that the mono developers are straying a bit from what they should be doing. For the windows forms, they are relying on certain wine-libs. This works, but is not as elegant as it can be. Miguel was talking about the next incarnation of gnome being written in C#, essentially using the Gnome bindings for it. My opinion is that they should build gnome to natively handle the windows.forms portion. I am not so tied to the look of the applications as I am functionality. I could care less if Microsoft.office.NET looks like gnome when run on gnome.
Not in the case of MonoDevelop.
MonoDevelop is focused on being a great Unix
IDE which means integrating with the base OS as
much as possible: use the underlying widgetry,
use the Unix conventions (create makefiles,
configure scripts).
It is a fork of an IDE from the Windows world,
SharpDevelop: a fairly good tool, that integrates
into Windows, and we did not want to run only
a Linux version of a Windows tool.
We wanted a Linux tool for Linux.
You can do cycle detection in reference counting,
there are various papers on the subject.
Refcount is bad for small apps, but good when you
have applications that use a lot of memory (since
scanning even with generations is an expensive
process).
There are various papers on Citeseer on the
subject.
GPL is very clear about that ... quoting ...
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.Novell might be forced to make it proprietary if Microsoft enforces a "RAND" license that says , "You cannot redistribute sources without a license from us , which will also be RAND, Thank you".
Quidquid latine dictum sit, altum videtur
Hello,
;-)
Yes, thanks to the work of Carlos Guzman and
Sebastien Pouliot we now have support for TLS and
SSL (it is a fully managed implementation
miguel.
Although those benchmarks were done against
our first JIT. We redid our JIT to address that
(and many other issues), so the data is relatively
old (one year+)
Muine, a media player
Woodpusher, an ICS chess client (seems to have stagnated recently though).
Dashboard, an exciting new user interfact paradigm.
I'm sure there are others, these are the ones I remember off the top of my head.
This isn't exactly true. You can run gtk-sharp applications on Windows. There is a Win32 port of GTK. You can't, however, run gnome-sharp applications on Windows. But GTK is good enough for most GUI apps. I am not sure about qt-sharp and Windows though. There is QT for windows, so I imagine qt-sharp should work.
-matthew
"THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
"Mono apps for gnome on x86."
This is my major problem with Mono. They chose a development path which prevents a huge portion of their class library from working on non-x86 systems. Because they chose to lean on Wine libraries, I can't do anything useful with Mono in my primary development domain.
Any chance of X11 bindings in an upcoming release? I'd love to make my projects portable across platforms with Mono, but it just doesn't seem feasible right now.
Taft
MDI Windows.Forms in DotGNU , an IDE in Windows.FOrms on DotGNU , Gtk# on DotGNU ...
Is there any difference you see ?. (sorry working on DotGNU for 2 years without pay has clouded my senses)..Quidquid latine dictum sit, altum videtur
Umm, you obviously haven't look at mono that carefully have you? The JIT also exists for PowerPC linux and S390 linux, in addition to Solaris SPARC, PowerPC MaxOSX and Linux x86. There is an interpreter for a whole slew else.
As for the class library, that's just FUD that you're spewing. Yes they have chosen to use Wine for Windows.Forms, no use in reinventing the wheel here for a tiny population. But all the applications the parent of your post mentioned don't use windows.forms. In fact, the engine is flexible enough that Miguel got MonoDevelop (the IDE they've ported from SharpDevelop) to run on his Mac under OSX. See his blog entry for more information.
I wrote a fairly complex simulation engine under Mono that runs flawlessly on my Mac and Windows. This includes a user interface that is not Windows.Forms.
My Slashdot account is old enough to drink...
Its the simple case of Meritocracy dude! The one who contributes the most does have the most say and does end up pulling the strings. Whats wrong with that? Sun is pulling the strings on OpenOffice. And its 16 programmers only recently, since a few months back. Until then it was just some 3-4 developers, someone correct me if I'm wrong.
First off, just calm down Francis. Nobody can pull any strings because all the code is out there for anybody to grab and modify. Heck, since the class libraries are MIT/X11 licensed, you could make some cool additions, close it up and sell it yourself.
The Gnome founder became a Novell executive when Ximian was bought by Novell. Just wake up from a coma or out in the bush, slashdotless for the past 9 mos. or so?
Your "I don't like the "today" part..cos there's always tomorrow" is just meaningless babble.
Write some code and you can pull some strings to. Heck, fork it if you so desire.
Windows.Forms is definitely not a top priority because (a) it's not that great to begin with (b) gtk# is given much greater priority (3) it relies on Wine, which makes it harder to do then just implementing the API on top of X or gtk+.
That's FUD. .net? OK, write your apps in VB6 as you always did.
VB6 apps would run just fine. Just use old VB6 for development. Hell.. some companies still use Visual Studio 5.0 for development (I worked for such a company).
Don't want
vb6 and vb.net use different technologies and even syntax in some parts is different. It's different product, that's all. They didn't break any API.
- Arwen, I'm your father, Agent Smith.
- Well, you're just Smith, but my father is Aerosmith!
Yes, they already are ported. You can write GTK/GTK+/GTK# apps for Windows today.
/ BuildingGuide?PHPSESSID=d0459fba82585e5219f9d4c95c 24721f
See http://www.nullenvoid.com/gtksharp/wiki/index.php
for an on-line guide.
I've been using GTK apps like GIMP and DIA at work where I'm stuck with Windows for a long time now.
GIMP Win32 installer: http://www2.arnes.si/~sopjsimo/gimp/
DIA Win32 installer:
http://dia-installer.sourceforge.net/
BTW there are very few if any "linux only" libs. Most of those libs are part of the GNU System, they work with the Linux kernel, BSD variants, Solaris, and most UNIX Systems. Many have Win32 ports or ports to the Cygwin POSIX environment for Windows.
"As flies to the wanton boys are we to the gods; they kill us for sport." - William Shakespeare, King Lear
>> I could care less if Microsoft.office.NET looks like gnome when run on gnome.
You could care less? So it does bother you then? So why did you say "I am not so tied to the look.." ?
Do not presume that MS's past use of patents for defensive purposes only means there is a low probability of threat to the Mono project...
MS has hired an IP manager who not only believes in but has spearheaded IP rampages.
"Marshall Phelps has long been a vocal advocate of the need for companies to take IP licensing seriously."
"...he inspired at his previous company, IBM, which is now reaping almost $2 billion a year from licensing its patents."
"At IBM we did a lot of it. We had lots of lawyers doing preparation and prosecution around the world. At Microsoft, we don't have anyone doing that, but we are going to start."
"According to Phelps, managers too often fall into the trap of seeing patents as a purely defensive measure, a tool with which to stop the competition in their tracks.
Phelps says he is pleasantly surprised by just how understanding Microsoft's executives have been. "On these IP issues I don't have much of a problem getting anyone's attention at Microsoft. It starts at the top, and if you've got a guy like Bill Gates who's really concerned about IP and really likes it then you don't have much of a management problem."
Make no mistake about it, Microsoft has learned to do business by using its capital to get what it wants. Microsoft cannot buy out FOSS but they sure as hell can litigate FOSS directly or indirectly to "stop the competition in their tracks."
As most everyone here knows, FOSS has been on the Microsoft radar for several years now and they have been very active and very unsuccessful in halting the progress of FOSS.
This is the last ditch effort on Microsoft's part to stop what is becoming an unstoppable force. It will not matter if the FOSS community produces a better and more technologically advanced product because Microsoft will not be competing based on the merit of their products.
Whether or not the patents that are filed are frivilous and ridiculous, they will be used offensively to diminish the threat of FOSS to the Microsoft revenue stream.
Be prepared, there is more of the SCO syndrome to come.
burnin
That is incorrect.
All the applications listed above are Gtk applications
and I have run them all on Linux/x86, Solaris/SPARC,
MacOS/ppc, LInux/PPC.
Miguel.
A few updates on VB.NET:
We have a full time developer working on this
(Anirban) and you will see a lot of work on
compliance from him.
Mainsoft has donated a full VB.NET runtime that
we are now integrating.
Rafael and others have just obtained a grant
from the government of Brazil to complete the
VB.NET support in Mono.
And in addition to that, a few open source developers
work on it on their spare time.
You are right, the Open Source developers are not
particularly thrilled at doing VB.NET, but it is
important to bring developers from Windows, so
that is why the effort is being funded.
Miguel.
Mono mmap()s the files it loads, so that shows up
on the VSIZE; The RSS is mostly Gtk/Gdk/Pango/X
libraries and libc.
Anyone who wants to compare the performances now instead of looking at the older graphs, can download the C# Scimark or the cli-grande (C# version of the Java Grande Section 1) benchmark and see for themselves. I know what the differences are in performance between the 0.23 version used in the original posting and the current Beta, but it is probably better if people try for themselves.
Talk about some FUD... Give me a break man. You quoted apples, then compared oranges. Microsoft did not intend .NET to be backwards compatible with VB6. It's an entirely different technology. As another poster pointed out, you can run VB6 apps and .NET apps side-by-side with zero issues. VB.NET is not an upgrade to VB6, its an entirely new language. They share syntax in many ways, but VB.NET is an entirely different way of thinking in that its OOP implementation isn't incomplete/just a hack. Why in the world would someone be forced to scrap those millions of man hours when the hours were spent on something that is still usable.
.NET is to get rid of DLL hell, so they've done a VERY good job of eliminating versioning issues. Multiple versions of a library can coexist on the same machine, and if you want an app to use a newer version of a DLL when it is expecting an older version, you can add some settings to a .config file to tell the framework to use 1.5.248 in place of 1.3.857. (Arbitrary versions, just for example.)
.NET is Microsoft's answer to Java, but isn't competition a good thing? Whichever platform you use, they're both going to continue to advance if only because of the existance of the other.)
As far as MS possibly breaking existing interfaces in future version of the framework... Yes, its going to happen. However, it isn't an issue. You can still run any version of the framework side-by-side with another version. I have 1.0 and 1.1 installed on my box, and I am able to use apps developed in each. When 2.0 is released, I'll still be able to use apps/libraries that were developed in 1.1/1.0 because I can still have those version of the frameork installed. One of the biggest goals MS has with
Microsoft is concerned with their own position.
Yes, they are. They're a business. What business is not concerned with their own position? However, I (and I can't be the only one I'm sure) don't see the "developer products" side of MS as being quite as bad as the rest, because they're genuinely trying to make the lives of those of us in the business trenches easier. Continuing to move forward in a way that will allow something to NEVER break backwards-compatibility is a good way to stifle innovation. You can't innovate by building on top of something that already exists, you have to scrap it, start fresh, and move on. (And I don't want to hear the Java vs. C# BS, as MS IS doing some things that Java doesn't have yet, especially in 2.0. Yes,
I am a leaf on the wind. Watch how I soar.
With windows XP, gtk-wimp can use the system's theming system for native look.
-Mark
WTF!!!. Who the hell modeded this guy up. The Mono C# compiler is a work of crap.
The Portable.NET C# compiler is a work of genius. It was written by Rhys Weatherly who is the guy who *INVENTED* treecc. The Portable.NET C# compiler (cscc) can also compile C and Java to *PURE* IL code. It is a properly designed compiler with pluggable frontends and backends (like gcc).
Downoad the source to Portable.NET and you'll discover which project will suceed in the long run. It just doesn't get much press.
The standards are royalty free, however the standards only cover the CLR (the VM/JIT) and C# the language, not the Framework (all the classes that do stuff).
That is misleading. The ECMA C# standard standardizes a significant part of the libraries, far more than, say, the libraries included in the C and C++ standards. All those classes are also available across platforms and all of them are royalty free as well. That means that you can write a lot of libraries (and probably even many applications) in completely standard ECMA C#.
In fact, saying that they are available "royalty free" suggests that someone may have a patent on this stuff but that they allow people to use it; but, so far, nobody has identified any valid patent on the language and libraries defined by ECMA C#. I believe Microsoft has merely stated that it is their intent that people can implement ECMA C# royalty free, but that does not imply that they actually have a valid patent on the ECMA C# standard.
You know how Gnome, KDE, and wxWindows each have their own object system hacks on top of C/C++? And how they are all different and incompatible with each other? Well, C# has a built-in standard for that functionality: a standard object system and a standard way of querying objects about what they are and what they can do. So, reflection is one important capability.
Another one is runtime safety. When you load a shared library into a C or C++ program and call one of its functions, anything can happen: it can corrupt arbitrary data structures in your program and you may not even know it. When you load code dynamically into C#, no matter how buggy it is, it cannot corrupt data that has not been passed to it (unsafe C# code behaves like C/C++, but dynamically loadable code should not be unsafe, and you can enforce that). So, concretely, when you load a plug-in into Gimp# or Apache# and the plugin crashes, you don't have to shut down the application. Runtime safety also prevents buffer overflows and other common security holes.
Yet another is sandboxing. Sandboxing means that you can restrict the operations of sections of code. That means that you can safely run untrusted code, not just potentially buggy code. As an ISP, for example, you can let your customers load modules into Apache# without having to worry about the module from one customer doing something to the module of another customer.
You already mentioned garbage collection.
Those are some of the major benefits of C# (and Java) over C/C++. And they make a big difference. Lack of runtime safety is responsible for most of the application crashes we experience; with runtime safety, applications still have unexpected bugs, but they can usually recover from them. Lack of sandboxing means that people come up with all sort of complex extension methods (e.g., CGI scripts) instead of having a simple, clean interface. Lack of reflection and standard object systems is one of the reasons that makes libraries so wildly incompatible. And, finally, lack of garbage collection is responsible for a huge amount of extra work during library development and for a lot of bugs in C/C++.