Roy Schestowitz wrote:
> Mono, Mainsoft and Cross-Platform Enterprise Development
>
> ,----[ Quote ]
> | At first glance, it may sound like an impossible prospect for .NET
> | developers to engage in cross-platform, open source development in
> | the enterprise.
The problem that I have repeatedly observed with MONO is that it's a
"70%" solution.
Mr Icaza would be the first to admit that you still can't do EVERYTHING
with MONO that
you can do with Microsoft's Windows/VisualStudio/.NET
In particular MONO doesn't really support the CLIENT functionality.
You can create a .NET server, but you need Microsoft binaries to
implement the GUI interfaces and client side functionality, and
Microsoft isn't offering it. You can do a limited amount, but not all
of it.
It's very similar to what happened with DCOM. In 1996, GNOME adopted
CORBA as a remote client standard, and wrote a number of applications
which could communicate with servers using a CORBA interface. In
addition, CORBA was well supported by Java, which made it really easy
to integrate C++ modules using CORBA to Java Enterprise Java Beans or
Java RMI/IIOP.
Microsoft decided that this was a bit too close to putting Linux on the
desktop and proposed DCOM as an alternative standard. The COM API was
well known, and could very easily been converted to be compatible with
industry standard CORBA, but Microsoft decided to create their own
standard. To provide the illusion of cross-platform, they granted a
license to Seimans to develop DCOM for UNIX (but not for Linux). For
some reason, Microsoft decided that Seimans shouldn't do DCOM for UNIX
anymore (Linux port?), and Microsoft began offering the UNIX port
directly. The UNIX port turned out to useless, however, bridges from
DCOM to CORBA were pretty simple to create, and with faster CPUs, most
DCOM efforts simply bridged to CORBA, often on the Windows side.
Microsoft tried to introduced other technologies designed to disrupt
portability, for example MSMQ to disrupt MQSeries, and COM+ designed to
replace EJB. The industry pretty much split, with the multiplatform
community going to JAVA 2, and the Windows Only community going to
.NET.
Fortunately, .NET was based on the SOAP standard, and SOAP messages
could be sent to J2EE servers which could use JAX or JAXB to convert
the request into J2EE requests. Ironically, this portability has
resulted in giving .NET some level of acceptance as a "border"
protocol, similar to the view of web browsers.
> | Such a reality would be unfortunate, because many
> | development teams enjoy the productivity inherent in using Visual
> | Studio .NET and its wealth of tools for rapidly producing
> | high-quality code. However, they would also like the ability to
> | deploy on platforms other than Windows.
> `----
>
> http://opensource.sys-con.com/read/318852_p.htm
> Might be useful for businesses that are urged to escape the instability and
> cost of Windows servers and migrate everything to GNU/Linux. Mainsoft have
> been offering this type of service for about a year, joinly with IBM, I
> think.
The point is that there are plenty of multiplatform solutions that will
make it possible for BOTH client and server to be multiplatform. Java
1.4 and later fully support numerous platforms as both client and
server, including Windows, OSX, Linux, and FreeBSD as well as Solaris
on Intel and Solaris on SPArC. Java also supports HP_UX, AIX, SCO
Unix, and UnixWare.
The gcc compiler and glibc are also very portable standards. Windows
cygwin lets you run the same OSS applications written for Linux on
Windows. The cygwin library fools the clibc library into thinking that
Winows is a Linux system. This API is probably the most universal API
in the industry. Often the GCC compiler exists even before the real
chip,and is often used with a software emulation of the chip to create
software even before the chip is put into silicon.
Microsoft still hasn't figured out that they are NOT the only company
that produces software for PCs, and that Windows PCs are NOT the only
kind of computers in the world. The problem, for Microsoft, is that
the CIO is beginning to discover these alternatives, and is getting a
lot of pressure from the CEO, COO, and CFO to switch to those other
platforms. Many companies now have the CTO making the platform
decisions and the CIO just manages the support organization.
One can't even say "nobody ever got fired for chosing Microsoft",
because each new release of Windows usually involves a shock expense
which requires that people lose their job. And each release, they come
up with new terms. They used call them layoffs, now we have "cost
reduction", "downsizing", "right-sizing", "staff reduction",
"reallocation of resources", and "staffing adjustments". I wonder what
they will call it this year?
The point is that Linux servers have now found their way into the
corporate IT floors of almost 85% of the corporations, and those who
have been tracking "real world" experiences have realized actual
savings of up to 95%, compared to Windows. When you start to consider
that similar savings could be available for Linux on Workstations.
As Bill leaves, Microsoft will be in the hands of Steve Ballmer, who
treats PCs like used cars (ever seen his "Crazy eddie" Windows 1.0
commercial?). When a used car salesmen wants to sell a car, he gives
it a fresh coat of paint, some new upholstry, and drains the oil. The
car won't pass the safety inspection or emissions inspection, but by
the time the buyer realizes this, it's too late, and he can't get a
refund. If he financed it, he can stop making payments, wait for the
repo man to pick it up, but he loses the deposit and destroyes his
credit.
I don't see anyone with really outstanding technical insight at
Microsoft anymore. Mirvold was pretty good, and he's gone. Paul Allen
is gone. Bill is retiring. The rest of the top team are marketing
types.
|
|