Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror

Comment Re:Eternal game of catch-up (Score 4, Informative) 443

As the other poster said, the fact that we do not have 1:1 parity has never been a problem.

Some other technologies that are subsets and are wildly successful:

* Android's Java is not a 1:1 mapping to Java either, and that has not prevented it from being successful.
* iPhoneOS is not MacOS 1:1, and yet, it is incredibly successful.
* Chrome the browser, does not have every feature of Firefox, that did not stop it either.
* JBoss is a subset of the full J2EE stack, and for years it has been wildly successful.
* Linux for years was not even POSIX compliant, and yet, many of us jumped on it, and it became wildly successful.

In Mono we implement what makes sense, and what people are actually using in day to day applications, we do this using metrics that we obtain from our Mono Migration Analysis that helps us identify which APIs are used, by how many applications and we have collected this data from some 10,000 applications:

http://go-mono.com/momareports/

Call this the data-driven prioritization of development.

Mono was born as a technology to bring the best that .NET had to offer to Linux, this was initially the c# language and the core libraries. As time went by, Mono evolved in two directions:

(a) Organica growth: as the Mono community grew, we identify missing features, we envisioned better ways of doing something and created tools, APIs, languages and extensions that mattered to us. In this category you can find things like Gtk#, Taglib#, Cairo#, Cecil, Mono.Options, Mono.Security, Mono.Data, Mono.Math, Mono.Management, Mono's C# REPL, Mono's SIMD extensions, Mono's large array support. Mono's dynamic JIT extensions, Mono's static compiler and much more.

For instance, today, more than 350 applications on the AppStore and 10 of the top 100 apps in there are built using Mono.

(b) Better compatibility with .NET: this is a simpler process than coming up with our own APIs. The .NET APIs are documented, there are thousands of applications to test the implementation against, the community is fed directly from the largest middleware stack in the world, so it made sense for us to implement these pieces.

Is it correct that we do not have a full implementation of .NET, there are a few reasons for this, now with numerals:

(i) Some APIs are Windows specific, and makes no sense to bring to Linux, in particular things like System.Management which is a thin wrapper around WMI. Our advise: replace that code with Linux and MacOS specific code and use one or the other at runtime.

(ii) Some APIs are too larger for us to take with our current community. This includes things like WPF and Workflow. If someone steps up, we will embrace them, but until that happens, we are focused on improving the other areas that have more users and that we have more requests to implement. Additionally, the WPF "lite" is a killer stack (also known as Silverlight).

(iii) Focus, we do not want to spread ourselves too thin.

As for .NET 4.0: we are not too far from having the core be 4.0 compliant, it is a nice upgrade to the solid 3.5 release. For instance, our C# compiler is already a full C# 4.0 compiler, and we already provide features that Microsoft wont offer until 5.0 (embeddable, reusable compiler, see C# REPL).

Moonlight is behind Silverlight, but I am not driven by despair, I am driven by the world of possibility. If I were driven by despair, I would not have written a single line of code.

If Silverlight never succeeds, then who cares how behind Moonlight is. But if Silverlight succeeds, and Linux users want to access that content, but the feature is either broken, not implemented or missing in Moonlight, those users will be in a position to contribute the code, and everyone wins.

Comment Removing the GPL code. (Score 5, Informative) 443

We removed the GPL code in MonoDevelop for a couple of reasons:

(a) to allow it to become a platform that third-party plugin and add-in developers can target.
(b) to allow us to consume open source code that would otherwise conflict with the GPL (MS-PL licensed code, Apache licensed code, and original BSD licensed code).

Notice that (a) is the norm for Eclipse and Visual Studio, and that the ecosystem of third party plugins relies on this, both Eclipse and Visual Studio would be severely limited if they limited the plugins to be all GPL licensed. As I explained on the blog post, there are current users that need to run their non-GPL code inside the IDE.

We want more third party developers to target MonoDevelop, and we want these third parties to consider MonoDevelop a platform that they can target without forcing a license on them. Similar to how the Linux operating system can run code licensed under any license.

The second reason is just a practical one. In the .NET open source ecosystem there are plenty of libraries and tools available under the MS-PL, Old and New BSD and Apache 2 licenses and we want to be in a position to use those libraries without rewriting it. We already do, and it has saved us a lot of time.

Comment Re:spending time on opportunities ? (Score 5, Informative) 747

I work on Mono, because I like it. If you want to learn more about my goals, you can read this old post:

http://www.mono-project.com/Mailpost:longreply

As for CodePlex: it turns out that there are two entities: CodePlex.ORG (owned by the Foundation) and CodePlex.Com (Owned by Microsoft, and has no affiliation with the foundation).

It is beyond unfortunate that the Foundation adopted the name from the hosting site. The logic apparently was "It is already a known brand". In my opinion, moving ahead with this name was a terrible decision as it is incredibly confusing, a point that I have raised with the board of directors.

The CodePlex foundation has no control over the contents of CodePlex.com.

Comment Re:H.264 licensing (Score 3, Interesting) 335

Not many sites used Silverlight 1.0, because to begin with, barely any sites used Silverlight 1.0.

1.0 did not include the .NET runtime, for most people it was just a javascript plugin that did audio and video. Silverlight only became interesting with 2.0 (this is what we were drawn to when Silverlight 1.1 was announced).

Folks have three options for Silverlight on Linux:
(a) Hope that Microsoft supports it.
(b) Ignore it altogether and hope it vanishes.
(c) Support Moonlight.

We have taken the third step as we believe it will gain adoption and Silverlight will be required to access certain web sites in the future. You might disagree and hope for (a) or (b). In the meantime, we have initiated a collaboration with Microsoft where they provide us with licensed codecs and test suites for all of Silverlight (.NET, GUI, video, audio, streaming) to make sure that the open source version of Silverlight is compatible.

Although we had early access to 2.0 and 3.0, we only use this knowledge for planning. Once they go beta, we have used the public information to add some of those features to Moonlight as we go. For example Moonlight 1.9.5 is actually a mix of Silverlight 2.0 and 3.0, it already supports some four or five features from Silverlight 3.

But Silverlight is a large project, and we are a small team compared to the task at hand, so you are right that we will continue to lag behind Silverlight. This trend in my opinion will change when the fundamental principle of open source kicks in: the need to scratch and itch.

Most Linux users have not had a compelling reason to use Moonlight other than for example Moonshine, but as Silverlight continues to gain adoption and more sites require it, we expect open source contributors to join our effort to tune, improve, bug fix and implement the features on time.

Although you might want to portray having an open source version of Silverlight as a "a losing game", we see this as fundamentally important for Linux to continue to have access to the best technologies.

Comment Re:DirectX on WebApps? (Score 4, Informative) 335

The difference is that Silverlight code is CIL bytecode that runs inside a sandbox.

ActiveX was native code, and you only had two options: to trust or to not trust, but once you installed the code, the executable had as many rights on your system as any other application running with your user ID.

Silverlight (and Moonlight) come with a sandbox that limits what the code that you download can do, for instance, they do not get direct access to any of your files.

Comment Re:No mention of X-platform (Score 2, Informative) 598

Right, "Type Erasure" means that none of the semantic information is preserved in the produced bytecode or metadata.

This has several problems, for example, the following is invalid in Java:

class Stack {
        T [] storage;

        Init ()
        {
              storage = new T [20];
        }
}

You might want to read "Generic Gotchas" for Java. There is no such problem with the C# version as they are first class citizens:

http://www.ibm.com/developerworks/java/library/j-jtp01255.html

The implementation is so arcane that it requires documents like this encyclopedic FAQ:

http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html

Or even Sun's Ken Arnold stating that "Generics are a mistake":

http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid_1.html

None of this problems happen in C# and .NET.

Slashdot Top Deals

The moving cursor writes, and having written, blinks on.

Working...