Re: C# is a proprietary programming language ??

From: Nick Malik (nickmalik_at_hotmail.nospam.com)
Date: 07/03/04


Date: Sat, 03 Jul 2004 07:28:27 GMT

This used to mean something... back when every company had their own Fortran
compiler, and everyone was trying to write code in one Fortran compiler that
could be used by all others... (write once, run anywhere... sound familiar?)

Java tried this too, of course. Everyone was supposed to have the same
"Java." Difference is, SUN kept the intellectual property rights for Java,
so when Microsoft added some extensions to the language to make it useful
for calling the Windows API, SUN sued, and won. Microsoft had to drop the
Java platform (even though most folks agree that the Microsoft JVM was
head-and-shoulders faster than any other JVM at the time).

So, Java is the language where you can write code on one operating system
(say LINUX) and run it on another (say WINDOWS). For the most part, it's
true.

The downside is that any changes to the language have to be made either by
the mothership (SUN) or they have to be delivered in Java class libraries,
written in Java itself. This effectively prevents the language from
changing to meet new needs. Java is done. Either it's perfect, or it
isn't, but it isn't changing.

C# is the brainchild of Microsoft. MS owns it. True, a spec for the
language has been released as a standard, and MS doesn't object to third
parties creating a C# compiler that will run on UNIX. On the other hand, MS
isn't going to invest much money in any OS but Windows (with the minor
exception of the Mac). But C# is changing. A new version is about to be
released with major new features. Fundamental features that couldn't be
done by just adding a library. This is the strength of a language that one
company owns, and cares for.

Of course, if you write code in C# on Windows, you can't run it on UNIX.
It's proprietary. One company owns the language, and they have decided not
to support UNIX, so your code doesn't run there. You are restricted. This
is the limitation of "proprietary." In theory, anyway. In practice, there
are C# implementations growing on UNIX, written by open source folks. So
while the charge is true, it doesn't mean much.

Given the fact that over 90% of all desktop machines run Windows, the point
is pretty thin. Java's ability to run on multiple platforms has effectively
unified all the UNIX flavors, and has allowed some software companies to
deliver to both UNIX and Windows customers. This is the greatest challenge
to the Microsoft dominance of PC-based software. But it doesn't really
matter when it comes to the language you should choose to do your work.

These days, the notion of "proprietary" doesn't mean "locked in" like it
used to. One can say that Java is proprietary, since it is owned by SUN.
One can say that a Java programmer is locked in, in that you cannot develop
some libraries in VB, some in C#, some in COBOL, some in Forte, etc (all
available in .NET flavors), and make them all work together. You are locked
in to one language on many platforms. With .NET, you are locked in to one
platform, with many languages.

I know of a software company that is moving their substantial code base
(currently in COBOL) to Java. Doesn't make sense to me. If they'd move it
to .NET, they could recompile 60% of their code out of the box (Fujitsu
COBOL), and could use the skills of their existing programming staff to
complete the conversion. By moving to Java, they have to throw away working
code and start over, probably by replacing people, as well as modules. I
hope that their finances outlast their irrational behavior, because their
stuff is good, even if their company is poorly run.

Back to the original question: What is proprietary? My answer: Everything
is proprietary... it doesn't matter. Pick the language that will work for
you in the long run.

As for me, I'm sticking with .NET.

--- Nick Malik
     Biztalk Bum

"Matt" <mattloude@hotmail.com> wrote in message
news:egwWNNMYEHA.2500@TK2MSFTNGP09.phx.gbl...
> Some people identify Microsoft C# is Proprietary programming language.
> What is Proprietary programming language then? How does it differ
> from other languages such as C++, or Java??
>
> Please advise. thanks!!
>
>



Relevant Pages

  • Re: Help from fellow Fortran Users
    ... >> of the UNIX and Linux communities or to the intensity of general desire ... > difference in fklavor between UNIX and Windows. ... of a language useful for writing portable programs. ...
    (comp.lang.fortran)
  • Re: C# is a proprietary programming language ??
    ... >> Java tried this too, ... >> so when Microsoft added some extensions to the language to make it ... >> Of course, if you write code in C# on Windows, you can't run it on UNIX. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Comparing Lisp conditions to Java Exceptions
    ... All the ISO standards in the world will not make the world ... Nothing keeps you from annotating your program with exceptions based on what ... language should adhere to your theory. ... Curiously, although you don't say it, Java has the opposite problem. ...
    (comp.lang.lisp)
  • Re: MFC updates and enhancements
    ... We're not talking about some fringe niche tool here, ... applications to run on Windows. ... I may not like the language but it is far from being a nice tool. ... To a large part the relative simplicity of the Java language is ...
    (microsoft.public.vc.mfc)
  • Re: C, really portable?
    ... > Wait, is Java a modern language superior to C, or is it still ... It is a much better OO language than C++, ... It depends what you are doing, Java aims for rigorous portability - the same ... regardless of platform. ...
    (comp.lang.c)