I wanted to mention that our path to indepedence clearly goes through Gtk#, but we realize the importance of giving users binary compatibility so we are actively developing Windows.Forms and Visual Basic.NET (gasp) for Mono.
A new from scratch implementation has started with four of the top Mono developers that are now locked up in Provo Utah working around the clock to delivery the new implementation of Windows.Forms (our previous Wine-based approach having too many Mono/Wine problems to solve).
Before you make comments like this, please read the copyright assignment form, which clearly states that Novell agrees to grant back to the developer all the rights over the code that they contributed.
So you can effectively do whatever you want with your code (unless it is a derivative works, in which case, you are subject to the GPL anyways).
This is a common mistakes the non-developers make.
Yes, changes might happen. But if the changes break compatibility, existing applications also stop working. Microsoft does a terrific job of keeping backwards compatibility on their platform.
For instance, they are still maintaining.NET 1.0, in addition to.NET 1.1 and releasing service packs to it. A simple answer would have been `upgrade all your apps to 1.1', but they realize more than anyone else that to keep people using their platform they can not piss off developers.
Some languages map very nicely to the JVM or the CLR (the same developer that did Jython now has a very fast implementation called IronPython that was unveiled and demostrated at OSCON).
The problem is with languages that require pointers: Fortran, C, C++ and some extra support is convenient for some functional languages that the CLR provides.
I mean, nothing really ground breaking, but the CLR had a chance to learn from Java's limitations.
The new MS C++ compiler generates pure CIL executables when using the/clr flag which is a very convenient way of integrating existing C/C++ codebases with managed codebases.
HelixCode (then Ximian, then acquired by Novell) produced an installer and updater that shipped in March 2000 and pre-dates the patent applications and did what is described there:
* tracking existing software. * identifying new software packages. * identify software updates available. * install those, resolve dependencies. * communicated with a server to fetch this information. * Worked for Debian and RPM systems. * It used HTML to render the information (like this patent claim says).
This patent contains 376 claims, most of them regurgitations of the previous one, and most of them were done.
I remember that MandrakeSoft had something similar, but I can not remember if they had it before or after, I remember thinking that this was a significant value added over the Red Hat distribution (back in the day when Mandrake was a relatively small fork).
The review states that ASP.NET only works on Windows, which is incorrect. Mono brings ASP.NET to Linux, MacOS, BSD, HP-UX, Solaris and many more.
Mono's ASP.NET can be hosted in Apache (through the mod_mono module) or as a standalone server (xsp).
The platform price is also wrong (by extension), Mono's ASP.NET runs on pretty much anything.
The source code to Mono's ASP.NET is also available.
And I have to say, am puzzled by the "Speed" column. If ASP.NET has something going for it in terms of dynamic pages is speed: they have all kinds of tricks:
* page generation code is running at native speed.
* caching is provided at the control level, page level, database connection level.
And of course, there is no evidence to back any of the performance claims.
I love PHP as much as the next guy, but that review was done by someone that did not understand ASP.NET.
The code they posted to compare PHP vs ASP.NET talking to Oracle is uneven, as the rest of the article: in one case it shows data being rendered from the database, and even has a connection string.
The other example only shows a class that wraps reading and writing, but does no actual job.
You are correct in that we need an existing implementation for Microsoft technologies.
Sometimes Microsoft will help, they submited to ECMA everything needed to implement generics in the VM and the compiler six months in advance of their first public compiler. We were lucky enough to have a compiler with said features by the time they launched theirs.
In some other cases, we do not care what Microsoft is doing. There are plenty of APIs that Mono ships with (check our release notes) including Gtk#, RelaxNG, Mono.Data.*, Mono.Security.*, Mono.Math.*, Novell.*, mDNS.*.
Like Alan Cox said: "Free software is always late", followed by something like `The moment you write the first line of code you are already late: you need the feature, thats why you wrote that line'.
Everyone of your favorite projects was late or playing catch up: Samba, OpenOffice, Gnome, Linux, glibc, gcc, gdb, CUPS.
The same applies to GNU C, GNU C++, GNU Fortran, GNU Ada, GNU Pascal and POSIX.
If you want to call it something else `D#', be my guest, but I think that incremental changes to the language have a better chance of having an impact in the world, if we work with the standards organizations than just by forking things.
First, keep in mind that Mono also ships with a Java VM, so your Java code will work on Mono;)
There are other reasons, I do not claim these are all of the possibilities, but here are some more:
Multi-language support by design, which lets some complicated languages like C, C++ and Fortran to be supported without hacks.
ValueTypes (structs) are not supported in Java, which is a source of major pressure on the GC, an issue solved completely by the availability of it on.NET
Today: Generics are a VM feature, not only a language feature: which means that your list of ints will be a list of ints, and not syntactic sugar for a list of objects of Integer. Importan for performance.
Binding APIs for C# and.NET is trivial, which is why there is a whole industry of bindings for the framework: its trivial to call back into the old code base, without using JNI of any kind.
Some people care about the fact that it has been standardized by ECMA.
.NET improves upon the lessons learned from Java and were able to make changes that Sun could not (yes, that means that someone else can build something new now, and fix the.NET mistakes;-)
Some of us prefer C# the language to Java the language.
But feel free to use Java for doing Gnome applications, I have nothing against it, we are only an equal opportunity platform provider. Let the big boys fight it over.
I have seen a few slide decks from Microsoft employees claiming some security failures with Linux vs Windows.
For the couple of samples I saw, it seems like they have been very selective about what information they show. The latest version of Windows Server 2003 vs Fedora Core.
They also plot the number of vulnerabilities independently of the risk, the impact, or the fact that some of the security updates are lumped together. Then there is a section on viruses, they list from some Virus web site about 30 Linux viruses. Never seen a single one of them in a machine of mine or a server of mine in the last 12 years.
I would like to know if there are good articulate responses to those claims. I have been out of the security loop for a long time, and my constrast against the Microsoft claims was limited to a few bits of my own experience.
Marc Cox from Red Hat is quoted by the report, has he written anything on the subject?
Miguel.
Re:Efficient...but rather large
on
Mono Beta 2 Released
·
· Score: 3, Informative
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.
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.
Re:What applications are there
on
Mono Beta 2 Released
·
· Score: 3, Informative
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.
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+)
Re:What applications are there
on
Mono Beta 2 Released
·
· Score: 5, Interesting
Hello,
Part of the problem is that the Windows.Forms API exposes an entry point to hook up to the win32 programming model the `WndProc' method override on Control.
This is used to allow the developer to catch events and process events that Windows.Forms might not support directly with the managed API.
Also, since the Windows.Forms and Drawing APIs are not comprehensive, developers of third-party controls often depend on calling into Win32 calls (with P/Invokes). These are used for special effects or more complicated behavior than is available through the managed APIs.
For instance, a common scenario is embedding the IE control and hook up to its DOM (see the cute Reflector from Lutz Roeder).
I wanted to mention that our path to indepedence
clearly goes through Gtk#, but we realize the
importance of giving users binary compatibility
so we are actively developing Windows.Forms and
Visual Basic.NET (gasp) for Mono.
A new from scratch implementation has started with
four of the top Mono developers that are now
locked up in Provo Utah working around the clock
to delivery the new implementation of Windows.Forms
(our previous Wine-based approach having too many
Mono/Wine problems to solve).
Miguel.
The policy -like stated elsewhere- is one that
Ximian came up with, since the very first launch
of Evolution.
People are just mixing two different things,
because both were discussed this week on the
list.
There is no change in policy, just someone who
freaked out this week because of Sun's rumours,
the freakout evolving into this.
Miguel.
Before you make comments like this, please read
the copyright assignment form, which clearly
states that Novell agrees to grant back to the
developer all the rights over the code that they
contributed.
So you can effectively do whatever you want with
your code (unless it is a derivative works, in
which case, you are subject to the GPL anyways).
Miguel.
Notice that copyright assignment to Evolution has
been the rule since its beginning, there is nothing
new.
So this is a three to four year old policy.
Miguel.
You are wrong.
;-)
I have never been detained, its a shame, because
the legend is a lot more interesting than the real
story
Miguel.
This is a common mistakes the non-developers make.
.NET 1.0, .NET 1.1 and releasing service packs
Yes, changes might happen. But if the changes
break compatibility, existing applications also
stop working. Microsoft does a terrific job of
keeping backwards compatibility on their platform.
For instance, they are still maintaining
in addition to
to it. A simple answer would have been `upgrade
all your apps to 1.1', but they realize more than
anyone else that to keep people using their
platform they can not piss off developers.
We got much to learn.
No, today we do not have Windows.Forms implemented
(I should update that graph with the latest version
where we point that out).
Windows.Forms will be available in a few months.
http://primates.ximian.com/~miguel/tmp/two-stac
One is the Microsoft compatible one.
The other one is where we are pouring our energies:
An ECMA core with the following on top:
There are quite a few of other open source stacks
for the ECMA CLI today that range from research
to practically useful.
Miguel.
Some languages map very nicely to the JVM or the CLR
/clr flag which is a very convenient
(the same developer that did Jython now has
a very fast implementation called IronPython that
was unveiled and demostrated at OSCON).
The problem is with languages that require pointers:
Fortran, C, C++ and some extra support is convenient
for some functional languages that the CLR
provides.
I mean, nothing really ground breaking, but the
CLR had a chance to learn from Java's limitations.
The new MS C++ compiler generates pure CIL executables
when using the
way of integrating existing C/C++ codebases with
managed codebases.
Miguel.
Just for the sake of recording prior art:
HelixCode (then Ximian, then acquired by Novell) produced an installer and updater that shipped in March 2000 and pre-dates the patent applications and did what is described there:
* tracking existing software.
* identifying new software packages.
* identify software updates available.
* install those, resolve dependencies.
* communicated with a server to fetch this information.
* Worked for Debian and RPM systems.
* It used HTML to render the information (like
this patent claim says).
This patent contains 376 claims, most of them
regurgitations of the previous one, and most of
them were done.
I remember that MandrakeSoft had something
similar, but I can not remember if they had it
before or after, I remember thinking that this
was a significant value added over the Red Hat
distribution (back in the day when Mandrake
was a relatively small fork).
Miguel
The review states that ASP.NET only works on
Windows, which is incorrect. Mono brings ASP.NET
to Linux, MacOS, BSD, HP-UX, Solaris and many more.
Mono's ASP.NET can be hosted in Apache (through the
mod_mono module) or as a standalone server (xsp).
The platform price is also wrong (by extension),
Mono's ASP.NET runs on pretty much anything.
The source code to Mono's ASP.NET is also available.
And I have to say, am puzzled by the "Speed"
column. If ASP.NET has something going for it
in terms of dynamic pages is speed: they have
all kinds of tricks:
* page generation code is running at native speed.
* caching is provided at the control level,
page level, database connection level.
And of course, there is no evidence to back any
of the performance claims.
I love PHP as much as the next guy, but that review
was done by someone that did not understand ASP.NET.
The code they posted to compare PHP vs ASP.NET
talking to Oracle is uneven, as the rest of the
article: in one case it shows data being rendered
from the database, and even has a connection string.
The other example only shows a class that wraps
reading and writing, but does no actual job.
A bit deceiving.
You are correct in that we need an existing implementation for Microsoft technologies.
Sometimes Microsoft will help, they submited to ECMA everything needed to implement generics in the VM and the compiler six months in advance of their first public compiler. We were lucky enough to have a compiler with said features by the time they launched theirs.
In some other cases, we do not care what Microsoft is doing. There are plenty of APIs that Mono ships with (check our release notes) including Gtk#, RelaxNG, Mono.Data.*, Mono.Security.*, Mono.Math.*, Novell.*, mDNS.*.
Miguel
Like Alan Cox said: "Free software is always late", followed by something like `The moment you write the first line of code you are already late: you need the feature, thats why you wrote that line'.
Everyone of your favorite projects was late or playing catch up: Samba, OpenOffice, Gnome, Linux, glibc, gcc, gdb, CUPS.
Miguel.
The same applies to GNU C, GNU C++, GNU Fortran, GNU Ada, GNU Pascal and POSIX.
If you want to call it something else `D#', be my guest, but I think that incremental changes to the
language have a better chance of having an impact in the world, if we work with the standards organizations
than just by forking things.
There are other reasons, I do not claim these are all of the possibilities, but here are some more:
to be supported without hacks.
issue solved completely by the availability of it
on
ints will be a list of ints, and not syntactic sugar for a list of objects of Integer. Importan
for performance.
for the framework: its trivial to call back into the old code base, without using JNI of any kind.
(yes, that means that someone else can build something new now, and fix the
But feel free to use Java for doing Gnome applications, I have nothing against it, we are
only an equal opportunity platform provider. Let the big boys fight it over.
Miguel
I have seen a few slide decks from Microsoft
employees claiming some security failures with
Linux vs Windows.
For the couple of samples I saw, it seems like they
have been very selective about what information
they show. The latest version of Windows Server 2003
vs Fedora Core.
They also plot the number of vulnerabilities
independently of the risk, the impact, or the fact
that some of the security updates are lumped together. Then there is a section on viruses,
they list from some Virus web site about 30
Linux viruses. Never seen a single one of them
in a machine of mine or a server of mine in the
last 12 years.
I would like to know if there are good articulate
responses to those claims. I have been out of the
security loop for a long time, and my constrast
against the Microsoft claims was limited to a few
bits of my own experience.
Marc Cox from Red Hat is quoted by the report,
has he written anything on the subject?
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.
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.
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.
Dude, if you fix a bug, and software depends on a bug, you are no longer compatible.
If you introduce a bug, and software depends on that, but its not on the earlier version, you also introduced an incompatibility.
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+)
Hello,
Part of the problem is that the Windows.Forms API
exposes an entry point to hook up to the win32
programming model the `WndProc' method override
on Control.
This is used to allow the developer to catch events
and process events that Windows.Forms might not
support directly with the managed API.
Also, since the Windows.Forms and Drawing APIs
are not comprehensive, developers of third-party
controls often depend on calling into Win32
calls (with P/Invokes). These are used for
special effects or more complicated behavior than
is available through the managed APIs.
For instance, a common scenario is embedding
the IE control and hook up to its DOM (see the
cute Reflector from Lutz Roeder).
Suboptimal, I know.
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.
I am biased, but I would say yes, we are more
efficient.
That being said, I recommend you ask the question
to third parties that are using Mono/Gtk#: gfax,
beagle/dashboard, MonoDevelop
You are correct.
.NET 1.1 100% compatible with the .NET 1.1 service pack 1.
If we want to be 100% pure we will never be fully
compatible. But neither is
Are we damn close? You bet. Are we exactly
the same? No.
Miguel.