I propose a translation of a recent interview with Miguel for the InfoQ portal.We had a chance to contact Miguel de Icaza, the founder of the Mono project and the parent company Xamarin. We covered several topics, including the future of ASP.NET MVC in Mono and the termination of the development of Moonlight.
InfoQ : Mono has supported ASP.NET since the earliest times. Was this done for show or are you interested in ASP.NET on the Mono platform?
')
Miguel de Icaza : We haven't done any surveys for some time, but judging by the last, ASP.NET on
Unix is still an important function for people. I would say that interest went down when Microsoft changed its licensing policy for Windows Server. Because of this, Mono's financial appeal has fallen in some way. Currently, the main reason for using ASP.NET on Mono is to bind to Linux other components of the software system.
InfoQ : ASP.NET MVC has been an open framework for some time. If you look back in time, how much effort was required to make it compatible with Mono?
Miguel : MVC 1 and MVC 2 were launched on Mono quite simply. With MVC3 everything was different, because MVC3 was open, but depended on several libraries that were either not open at the time or were transitional. So directly combine MVC3 and Mono was not difficult, in contrast to the deployment of sites. The site on MVC3 was rarely seen working on Mono, it was very difficult to implement.
After the recent transfer of ASP.NET libraries to an open license, everything changed, and we managed to get MVC3 to work with Mono out of the box.
However, launching MVC4 for a while will fail. For MVC4, the ASP.NET core needs to be updated to add support for async, but for now nobody is working on it. The only question is whether it is enough for people to add the necessary changes to Mono.
InfoQ : Do you think that the ability to make changes directly in ASP.NET MVC is a significant advantage for maintaining compatibility?
Miguel : The main benefit of publishing the ASP.NET MVC source code is its community: the painful introduction of innovations and the correction of errors was limited by the capabilities of Microsoft developers, what they did, could implement or revealed. Now ASP.NET is in line with other open-source frameworks that are rapidly evolving and responding quickly to changes.
InfoQ : Now there are 4 different XAML-based user interface technologies: WPF, Silverlight, Silverlight for Windows Embedded and Silverlight for Windows Phone. With the advent of Windows 8, we will see the fifth technology? What is your point about this diversity?
Miguel : Now we are focused on C # for Android, iOS and Mac, so we are not very eager to interact with XAML frameworks.
There are interesting solutions to XAML, but I have never supported XML as a markup language. For a long time, I dreamed that Microsoft was adapting some more comprehensible markup technology for people, for example, Json or the one that was part of JavaFX. They would be equally easy to use and maintain both with the help of utilities and manually.
At some point, we implemented an open source rendering engine that can work with Silverlight 3/4 markup.
Now we tell developers to split their applications into two parts: one common layer that will be used on all .NET / Mono platforms, and the other, the presentation layer, either with a native interface for iOS, Android, Mac and Windows, or with its HTML version.
InfoQ : Many developers are switching to platforms like PhoneGap to standardize the interface between all platforms. Have you ever considered having such a UI library for C # that could work between iOS, Android and Windows Phone?
Miguel : There will be a whole mix of them.
Sometimes you have a small budget and you use write-one-time-use-everywhere presentation level. This is what made Java so popular, and we use this approach for some of our utilities using the Gtk # and Xwt libraries.
But sometimes you want to provide a best-in-class user interface, then you need to write your own native code. We also use this approach for some utilities, for example, our new documentation system for Mono, which now uses the native interface on each platform.
In particular, people working on Mac and iOS, highly appreciate the quality of the finished product and the native interfaces, so the cross-platform UI will not leave the best impressions.
InfoQ : Before Novell was bought out, some people worked on launching Moonlight on Android tablets. Are you still working in this direction?
Miguel : We refused to develop Moonlight.
InfoQ : Sad to hear such news, Moonlight seemed very promising. You do not have enough human resources or do you no longer think that browser
Silverlight / Moonlight is a bright future?
Miguel : Silverlight was not widely spread on the Internet, and, accordingly, did not become an important technology, which I thought it would become.
Well, Microsoft added artificial restrictions to Silverlight, which made it useless for creating desktop applications.
Now we no longer believe that Silverlight is the right platform for write-one-time-run-everywhere technology, there are just too many limitations to be useful. At the moment, we believe that in the C # world it is best to separate the presentation code. Programmers will use a single core application across all platforms and write a separate interface for each target platform: iOS with MonoTouch, Android with MonoDroid, Mac with MonoMac, Windows with WPF / Winforms, Web with ASP.NET and Windows / Linux with Gtk.
Of course, this is not write-one-time-run-everywhere, but the result will be applications that use native tools and platform capabilities.
InfoQ : If you had more contributors for the open part of Mono, which part of the project would you most like them to work on?
Miguel : Perhaps over the upcoming API version 4.5 and WCF.
Microsoft updated a large number of APIs in .NET to support async from C # 5. Despite the fact that we did work on the base class libraries, I personally would like System.Data and its derivatives, like our Sqlite provider, to support async, as well as the entire ASP.NET stack, which now also supports async.
To improve ASP.NET, you need to take advantage of all the open source that Microsoft recently published for ASP.NET. Without this, Mono will be able to run only half of this new open source.
InfoQ : I assume you were following the Oracle / Google litigation over the Android API. What do you think about the current situation?
Miguel : It looks like a war, and after the first volleys there are no innocent and "good" ones. The reputation of both companies suffered greatly.
InfoQ : Are you afraid that if the API is recognized as a copyright object, then Microsoft will jeopardize the Mono project?
Miguel : No
In Google and Oracle, some of the core APIs are controversial, because none of the high-level APIs could be useful in this multi-billion dollar struggle. Essentially, Google decided not to use the high-level part, for the reason that they needed a different set of APIs suitable for Android. In the case of Mono / .NET, the copyrights of the main APIs were transferred to ECMA / ISO for distribution, and high-level APIs became very questionable for use in the multi-billion dollar industry. If the multi-billion dollar business arose with the advent of .NET / Mono, then it would probably use the kernel (runtime and BCL. -
Approx. Lane ) and abandon the high level in the same way as we did for MonoTouch and MonoDroid : we use the kernel, but do not implement any high-level Windows APIs, and instead replace it with the native API for Apple or Android.
This is my first translation, if you see any errors, please report them to PM.PS Thank you very much to the kekekeks habraser for help with translation and stylistics.