|
Which platform should you migrate your Centura Team Developer applications is a complex decision. Here is some useful information to help you with this process.
Java and .NET platforms have many similarities:
Java and .NET allows your applications to be Operating System (OS) independent (.NET is available for Windows systems only yet);
Java and .NET have a special run-time engines:
- Java - JVM (Java Virtual Machine)
- .NET - CLR (Common Language Runtime)
JVM and CLR work like a mediator between platform and language independent code and the specific software and hardware platforms, providing this independency, security and other fundamental features;
Java and C# languages have very similar syntax, so it's not so hard for
developers to switch between them;
Both platforms have a very extensive APIs usable in applications;
Both platforms have rich extensions for Web development: JSP/Servlets and ASP.NET
accordingly;
Multiple platforms support:
Java runs on just about every computing platform in existence, because Sun licenses Java to anybody that is willing to develop a pure Java implementation for their platform. As a result, Java is everywhere. It's on Windows, Mac and most of UNIX systems. It is available on mainframe and minicomputer operating systems as well. It's starting to show up in phones, PDAs and even in appliances.
The .NET architecture is also inherently capable of delivering "write once, run anywhere", but Microsoft has delivered .NET for Windows family only. Some experts are afraid, that Microsoft is not interested in .NET platform on other platforms, like UNIX, because they still earn most of their revenue from sales of operating systems. So if you feel, that "write once, run anywhere" paradigm is what you really need, Java is the only alternative.
Multiple languages support:
Microsoft supports multiple languages in .NET, so they can potentially support
for just about any language including popular legacy languages like COBOL and
FORTRAN. Projects using one language can exist in the same solution as projects
written in another. Multiple language support will pay tremendous dividends
because it shortens the .NET learning curve. After all, programmers will not
have to learn another language to move to .NET. They can also port logic from
their old code directly to .NET. But you should keep in mind, that many of languages
ported to .NET differs from the original ones, because of many CLR restrictions,
that .NET implies.
Unfortunately SAL (programming language developed by Centura) is completely
incompatible with this restrictions. It allows multiple inheritance, its data
types are not CLR compatible and so on. Thus we don't expect Centura development
solutions to become a real .NET family member.
Third party libraries and tools:
Java platform is of course more mature, than the .NET framework. Thus there is a
big variety of available Java tools and libraries. Some of them are commercial,
but many are open-source projects, that you can easily integrate
into your software for free. It is important to note that open-source solutions can be as good as the commercial ones and these became de-facto standards for the whole industry.
.NET platform is de-facto controlled by Microsoft and restricted to Windows. Its standards are very likely to change in the future, because of platform immaturity. The number of available .NET libraries and tools is increasing, but open source is much less than in Java community. From the practical side, the absence of code sources (even for .NET framework itself) makes the maintenance of software harder.
Security:
At this time our opinion is that Java wins here. .NET has a very promising security system, but this platform still based on Windows Operating system and thus currently suffers from its security flaws.
Summary:
You should choose Java platform if:
... you want your application to be available on Mac or UNIX systems too;
... you don't want to depend on Microsoft solutions and want to be sure of openness
of the chosen platform in future;
... you want to be able to use a huge number of free open-source solutions,
saving your costs and making the maintenance of your software easier;
... you need a mature and robust platform that has been tested in a real world;
... the security is very important for you.
You should choose .NET platform if:
... your application will run on Windows systems only and you want to gain
from this restriction (simple access to platform dependant features, faster
GUI and code execution);
... you need to maintain the integration with the Windows based legacy software and its impossible or too hard to do from Java program;
... your staff doesn't know Java language, but there is a .NET dialect of
the language they know well (Visual Basic or Eiffel for example);
... you want to use the modern platform that is supported by the market
leader.
|