Tag Archive for 'Linux'

xLim portability issues

As you know, one of the long-term “nice-to-have”s of the xLim 2 architecture is the ability to run web/server/desktop/engine pieces under the Mono environment (and this would open new OSes as targetable platforms).

Given the dependencies of the current xLim version, efficient desktop cross-platform compatibility for desktop client apps is yet out of the reach:

  • DevExperience WinForms components are never to run under Mono (heavy PInvoke dependencies are the payment for the beautiful UI). Try running MoMA to see that yourself. Although I would really miss only the XtraGrids piece (and these have a decent chance of being re-implemented under Silverlight).
  • Pure GTK# and WinForms client apps could do the trick but they neither feel nor they are efficient to use.
  • The best long-shot would be the WPF-based architecture with the cross-platform support for the Silverlight (or full-blown WPF) UI, but this is yet to come (and there’s still some uncertainty with that)

So we have web/server/engine pieces that could be made Mono-compatible in the mid-term. The situation is good with these. Mono web servers successfully host ASP.NET starter kits and different web services. And if DevExperience.Web has some portability issues, then it could be ditched. The only piece that I would really miss is the grid again (and there’s that “Silverlight-to-the-rescue” thing again).

Services and remoting do work under Mono with some quirks (binary compatibility for the cross-platform remoting is there also), although GC for now might be far from being perfect.

There are two major obstacles on this way (and they come from the major dependencies):

  • Autofac IoC compatibility with Mono
  • XPO compatibility with Mono

Luckily autofac is almost there (there are just some tests that fail under Mono).

XPO is in worse shape. It does not run at all. Luckily Mono Migration analyzer does not have a lot of arguments with the XPO code (some of these could be completely ignored).

Well, we’ll see. The good thing with the “nice-to-haves” is that they deal with the future probabilities and thus their effect on the present architecture is rather flexible.

PS: If you are interested about the reasoning behind the business need for cross-platform support xLim, then you might want to check these posts:

Windows vs. Linux from the developer’s point of view - Part 2

I want to wrap up the politics discussion started in this post and get back to the development. So here we go.

I doubt that the Linux will become more popular commercial solution than the Windows OS any time soon. Microsoft has too much inertia and resources to be easily beaten (however it is a bit helpless against political regulations in the countries outside USA, since the governments make the rules and the businesses have to follow them – but that’s the different story).

But the Linux will definitely keep on increasing its presence on the market. Especially if Microsoft keeps on embedding some suspicious random number algorithms that could have NSA backdoors (remember the recent story with the Dual_EC-DRBG in Vista SP1?). Even this suspicion is enough to push some users away from Microsoft – some organizations just can not take such risks (I’m talking about military, big financial institutions, nuclear power plants, national security and infrastructure organizations of different countries). So the governments and nationally critical organizations around the world is the first piece of market where Linux could steal get some share from the Windows.

Another one piece of market for the Linux to capture is in the countries that have lower living standards (when compared to the USA or EU). There the high-tech labor force is relatively cheap and thus the total cost of ownership for Linux is lower. That means there are more organizations where the advantages of running Linux outweigh its disadvantages (and in general organizations tend to stick to the efficient behavior in this world). 

And then just imagine, what would happen if some organization has released the compelling replacement for the Windows (and bundled with it all the common enterprise software) that just costs the fraction of the Microsoft’s price for the year subscription (with the support) and is quite easy to manage and use. All these organizations that have been saying “I would’ve ditched Windows if I had some cheap and easy-to-manage replacement that can do [here goes the list of your everyday office tasks]” could consider buying such a subscription.

Well, Novell is already trying to do that by delivering SUSE Linux Enterprise Desktop (with the help from Microsoft). This would definitely have some positive impact on the market share captured by Linux systems.

So if you couple these arguments with the facts from this post, then it does become a bit more obvious that Windows desktops are going to lose some market share to Linux systems, does not it?

This “some” market share actually has quite some money in it. In FY06 Microsoft had revenue of $13 billions just from the Client operating segment. Even a tiny fraction of that (Linux environment is still not really good at being commercial) could open up interesting possibilities to the ISV companies that will be able to jump into this niche as it gradually expands.

One of the ways of doing that – is to use development tools, principles and resources that are capable of efficiently delivering cross-platform solutions. Obviously these technologies should be supported by some solid experience, reputation and the energy.

Who’s the primary market driver in the Linux vs. Windows competition? Microsoft.

Does it care about Linux? Yes.

What’s its favorite development technology? .NET

Can .NET work on Linux? Yes.

Does the mentioned primary market driver care about making his favorite development technology better and more popular in Linux systems? Yes.

So it’ll be.

Phew, that should do it with the politics. Back to the development world I can return.

.NET and Mono development could repeat the “browser wars” story

As I’ve said in the previous post, Windows is gradually loosing the market to Linux systems. Such thing would obviously lead to the increased demand in software development for the Linux world.

NB: I’ll be talking right now about the desktop applications with the feature-rich UI and capabilities. That’s the Smart Clients. Web applications are partially immune to the problem of Windows-to-Linux transition (plus the efficient delivery and the maintenance of the feature rich UI is not something they are extremely good at).

Here are things that could possibly matter in the future for the desktop applications:

1. SUSE Linux Enterprise Desktop (SLED) is going to be one of the frontier points in the Windows-to-Linux migration, since it is supported by both Novell and Microsoft. This Linux system is also the most friendly to the Windows refugees (I’ve experienced that) and is supported by the major PC vendors (see the previous post).

2. The only rich and efficient development technology that is supported by Microsoft and Novel is .NET. It works natively under the Windows and with some limitations it could run under Linux or Mac systems via the Mono (see the list of the supported platforms). And Mono is the Novell’s project.

By the way, if you are deep into this new Silverlight thing – do you know that Microsoft has “announced a deal with Novell to have Mono provide Silverlight support for non-Microsoft platforms”? That statement delivers some message about Microsoft’s expectations on the future importance of Linux and Mono. And this company should have some qualified analytics.

Consequences:

  • There will be demand for the developers/teams that could efficiently deliver solutions capable of running in two worlds (or in three, if you count Mac). That’s not a trivial task, since every operating systems has its own quirks (remember the consequences of the browser wars?).
  • The market supply of the experienced development resources in this area is quite limited (and the entire knowledge area itself is quite specific and young) so the prices will be quite interesting (means “high”).
  • The applications blocks and other recipes being delivered by the Microsoft patterns & practices group will favor solutions that add more flexibility to existing .NET solutions and simplify .NET-to-Mono transition. Novell would do the similar thing.
  • Desktop applications will start using the “Mono compliant” logo and it will bear the same message as the “W3C valid” image.
  • One of the big differences between .NET and Mono is in the UI. Currently developers could easily get astonishing UI by using components that hack deeply into the Windows API (P/Invokes and such). Unfortunately this experience is not easily portable to Mono. So there’s likely to be an effort to create some high level unified UI abstraction layer capable of rendering great UI on any OS (Windows Presentation Foundation?!). I just hope there will be no analogue for the ActiveX technology.

3. The most productive tool for the .NET development is Microsoft Visual Studio. Yet it is not ready for the Mono development. And #develop along with MonoDevelop still feel quite immature (and there is nothing like Resharper there). So the Novell and Microsoft could be delivering some solid Visual Studio Mono packages. They should let developers become more efficient in developing Mono-compatible applications (or porting the existing ones). I’m talking not just about the “Execute under the Mono VMWare image” button, but rather about code analyzers (some that bring MoMA capabilities to the new level), guidance packages and reference implementations.

Consequences:

  • Virtualization technology is going to stay popular these years.
  • Development machines will obviously require quite a number of hardware upgrades to support virtualization. This will corellate with the new FSBs getting higher, processors getting more cores,  DDR3 and hybrid memory becoming more popular.
  • The actual development is going to get even more complicated (yes, the “quirks” factor again). So in addition to the simple unit tests, there will be more of testing of interactions:
    • Functional testing.
    • It will be a common thing for the integration servers have nightly runs of functional tests on multiple virtual machines.
    • Diagnostics and configuration validation modules will be more common in complex solutions.
  • There’ll be new component packages and development solutions that promise to make Mono development as simple as drawing a couple of boxes and assembling these together (these always do show up on any frontier).

4. There’s also the psychological factor – people will be more willing to invest in the software solutions that work in the both worlds or enable existing solutions to do that.

So the next years are going to be fun. Do you see here the opportunities of turning these consequences to your advantage?

If interested, stay tuned as I’ll be talking more about the LIM architecture of Landor and the changes we plan to make in order to simplify its transition to Mono.

Why do people switch from Microsoft Windows to Linux?

That’s the first of the two posts dedicated to the current changes in the software world – Microsoft Windows loosing the battlefield to Linux. In this one I’ll make an attempt to prove that this is actually happening. In the second post I’ll talk about the opportunities that open up to the software developers in this time of changes (we all want to be efficient in this situation, do not we?)

Ok, here’s the argument: “Microsoft Windows is rapidly loosing its positions to the Linux-based operating systems”. Here are the reasons why this happens in the first place:

  1. Linux is cheaper. Initially it is free, (but there is still is some TCO associated with it), while Windows costs some decent money for its licenses.
  2. Linux has accumulated a huge number of free software solutions. Software of the similar functionality is rarely free in the Windows world. So in addition to the free OS you also get a bundle of:
    • Free professional office applications (StarOffice or OpenOffice are quite recognized these days)
    • Free Graphical Editing Applications
    • Free Project Management Software
    • Free Software Development tools
  3. Users could also save some money on the firewalls and anti-virus software as well. Those are simply not needed, since Linux is inherently more secure than Windows. So you also get the invaluable sense of feeling safe.
  4. Linux is open, while Windows does not easily reveal the sources (and thus the organizations with extremely high security standards are worried about the privacy and security).
  5. Linux has less requirements to the hardware, while new versions of MS Windows are extremely hungry for those. So in order to keep up with the Windows not only you need new licenses, but also new hardware/upgrades. NB: I was able to get really neat desktop 3D effects in SLED on my old notebook way before the arrival of Vista Aero interface (and everyone remembers that Vista Aero has some decent requirements, do not they?).
  6. Microsoft forces users to go to Vista by stopping support for Windows 2000 and XP (widely used).
  7. Microsoft is tightening the screws on the anti-piracy around the world. As the result the small organizations have to use the legal software or get sued by Microsoft. So what would you do if you didn’t not have the money for MS Windows, MS Office, etc? It does not look like there’s the other cheap way except Linux.
  8. For a long time the main obstacle on the users’ way from Windows towards Linux desktops has been the absence of well-known operating systems that are free to use. Well, Novel’s changing that right now by pushing the popularity of the SUSE Linux. SUSE Linux Enterprise Desktop (SLED) is considered to be the most friendly operating system for the Windows refugees.

Those are nice arguments, are not they?

Well, these are more than just words. And organizations with the financial interest in this problem know about that:

  1. Governments know about those arguments and ditch Windows for Linux or promote this transition: Russia, China, France, Japan, Korea, India, Venezuela.
  2. PC makers know this as well and offer machines with the pre-installed Linux systems (so more and more users will not have that psychological barrier of installing Linux on their own):
    1. Dell has started selling machines with pre-installed Ubuntu and SUSE Linux. It also refunds those users who prefer using Linux instead of the pre-installed XP.
    2. HP has picked Red Hat.
    3. Lenovo goes for the SUSE.
    4. IBM for some reason prefers Linux to Vista
  3. Microsoft knows it
    1. Microsoft has made numerous agreements with Novell on pushing together SUSE Linux
    2. Microsoft is already selling SUSE Linux licenses and support!

All this movement has just started recently (last couple of years) and it is not going to get somewhere really quickly or simply stop. Instead, it will keep on rolling with increasing speed, while altering the IT world in unpredictable ways. That’s the snowball effect in action.

Additionally this change is not simply about the “Windows vs. Linux”. The whole fun just starts here. When switching the OS here people also change one set of the software for the another (since it is not common for the program to run natively under Windows and Linux at the same time). And since “Windows software development” and “Linux software development” ecosystems are quite different by nature (and in the spirit), the transition is not going to be a smooth one.

Are you ready for those changes?

In my next post I’ll talk a little bit on the subject of the new threats and opportunities for the software developers.