Discussion Locked

DELPHI vs J2EE

0 helpful
24 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.

Hello there!
Can somebody help me out in this topic
My Questions are :
1. Why would someone convert DELPHI application to J2EE application ?
2. What are the advantages and disadvantages in doing so ?

Thanks in Advance
Rajani

24 replies

by apotheon

J2EE is, of course, Java. Java enjoys the benefit of being ubiquitous: you can always find developers for Java. There's also the simple fact that Java is a powerful, pervasive buzzword in the IT industry these days. In fact, Java is probably the most popularly advertised-for programming language in help wanted ads right now.

Java is also renowned for "portability". In Java's case, what this means is that you can compile Java bytecode and it will run on any machine that has a Java Virtual Machine running. Of course, such bytecode interpreters are essentially just glorified program interpreters like those used for languages like Perl and Python, but that's an argument for another day (especially when you get into the compilation and bytecode options available for Perl).

Java is loved by many, and loathed by many. Delphi is pretty universally scoffed at, though this is more in keeping with the way someone that wears Calvin Kleins will scoff at a pair of Wrangler jeans rather than any actual useful judgment of the design environment's characteristics.

Something to realize about Delphi is that it's just an IDE. The IDE is, of course, for the Object Pascal language, which in many ways is one of the best-designed languages ever created. In others, of course, it lacks some characteristics that many people consider critical.

Probably the most important downside to Object Pascal code is that it's very difficult to find programmers to support the code in the future.

Delphi produces executables (binaries, for the Unixy among us). These executables tend to be rather less bulky, and faster-running, than Java bytecode. In fact, Delphi-compiled binaries often run faster than binaries compiled from C++ source. As far as I'm aware, though, there's no Object Pascal Virtual Machine in existence for running bytecode, so "portability" for Delphi-designed applications will have to be measured by how easy it is to create binaries for different platforms.

The newer Delphi versions can be had with the ability to compile for Unix/Linux. In that sense, at least, Delphi-compiled binaries are extremely portable.

So. That's what I've got, off the top of my head.

by jaqui

Borland's Kylix for linux is literally Borland's C++ builder and Delphi environments.

all ui components for all Borland c++ Builder and Delphi use the same interface code.
a Delphi based wrapper for QT

with the build options available for kylix 3,
you can code once, and build for all os options, with only needing to tweak the configure for each os and platform.
( same as rest of the gnu-linux development tools )

another benefit, is that kylix3 has a personal version, absolutely free.
( targeted at gpl use )

by charles

keep in mind that kylix will compile only to 32-bit x86 processors.

otherwise for cross-platform you'll have to go the mono route.

by jslarochelle

It is difficult to answer your query (specialy item 2) without having more information about your application.
Could you could provide more details ?

In the meantime here are a couple of remarks:

1) Be carefull about arguments mentionning portability as a factor to switch to J2EE. It is nice to be portable but for an existing application the cost is high. For a new application if there is any chance of switching to a new platform then by all means use Java (forget Microsoft .Net).

2) Be sceptical of any arguments mentioning J2EE being too slow. With the right mix of technology and proper design J2EE will work perfectly when appropriate.

3) If you do make the switch get some expert training and/or counseling.

Good luck!
JS

by angelom

.Net has been satanized because it comes from Microsoft but it is a very powerfull development tool, I think that the desition to use one platform or another is application/situation dependent. Delphi it self is a very good development tool and object pascal is a very nice lenguage but it carries with many features oriented to please the old non-object oriented pascal programers and to import others from visual basic; some other important features has been left behind (robust multi threading is a good example). Neverdeless very good programs have been made in Delphi because in the end the brain of the programer is what counts.

(sorry my bad english)

by jaqui

.net only runs on windows so it isn't portable.
the idea behind using java, c, c++, delphi or even cobol is that it is portable, can be used on any os.

the problem with the interpreted languages ( java, perl, python ) is the support for the standard.
I would always recommend using sun's javavm,
and to go to python.org for the interpreter,
and perl.org for the interpreter.

then you have the system with full compatability for the languages.
instad of distro / vendor limited.
( Active State is not the same interpreter as perl.org has, yet perl.org is the group developing perl. )

by tony hopkinson

Does not come from a language but from a design, you can do it in any language that is thread aware. As for carrying old pascal features that is one of Delphi's biggest assets, it would be very difficult to write your own objects without it. Also OO is not always the best way to do something, though it is the nicest.

by tony hopkinson

a delphi application, then there are no technical advantages in porting it as it is.

In the UK
Delphi with it's pascal basis is definitey less popular than it used to be. C based languages have grabbed the bulk of the market. There are developers out there, but the youngest I know of is 28 and I taught him myself.

We can go down the Delphi vs C religious debate, or the even dumber Delphi vs VB one.
From the purist code point of view ObjectPascal done properly creams the opposition, but quick and easy has pushed not as easy and robust out of the development market. So if you are looking at this from a resource point of view you are probably right.

The only other reason I can think of doing it is portability of code, but if you are talking hitting alot of platforms, your code will be very dependant on the quality of the JVM in place and the vendor's interpretation of what java is. So poratbility may cost you a lot.

From a technical point of view, I'd be having a serious think about this for any major/complex piece of code, even if you were going from J2EE to my beloved Delphi.

Any programming language makes certain things easier and others harder, a powerful optimized design will make use of the enablers and design round the constraints.

Pascal and C style languages 'the way things should be done' start off different and diverge rapidly. So it may not be a question of whether you should, but whether you can, without a substantial re-design anyway.

by stevef199

1. They are doing this on an experimental basis, to weigh the pros and cons of Java over Delphi.
OR
Need to make the application portable; for
example: a global corporate intranet application.
OR
Cost factors? J2EE programmers are a dime a dozen
these days versus the rare-to-find Delphi team of
developers.

2. As previous posters have stated : it depends on
a variety of factors.

This is just my opinion though.

by jaqui

if it is for portability issues, you may want to port to delphi.
if it is a complete rewrite to do so, then talk to sun about including the vm for the target os with the app.

then you have the app functioning, with the best interpreter possible.

by stevef199

He asked why someone would port an existing Delphi app to J2EE.

Borland had come out with a *nix version of Delphi, called Kylix which produced GUI apps that could run on Unix / Linux, but this project has been suspended for some years now - there are no new versions being released. So, Delphi is not really portable.

Why would someone take the trouble to spend time and money to re-write existing code ? The answer is : everyone has their fancy, their so-called way of seeing and doing things, their idea of how things should be gotten done. Person doing this must probably have gotten the J2EE fever..

by jaqui

"Borland had come out with a *nix version of Delphi, called Kylix which produced GUI apps that could run on Unix / Linux, but this project has been suspended for some years now - there are no new versions being released. So, Delphi is not really portable. "

1) Borland doesn't have anywhere on thier site that they are no longer supporting or developing kylix.
( I have both kylix 2 and 3 )

2) and, since gcc will compile objective pascal, even without Borland's delphi compiler, delphi is completely portable.
( gcc will compile c, objective c, c++, java, pascale, fortran77, ada, lisp* ... )
[ gcc = Gnu Compiler Collection ]

* yes it will compile emacs lisp

3) Delphi 2005 out
http://www.builderau.com.au/program/0,39024614,39170720,00.htm

by kaceyr

The moment that Microsoft released the .Net CLI to ECMA, the Mono project was born. The Linux community has worked quite hard, and had a lot of help from Microsoft itself, to create Mono 1.0, which is the .Net Framework release for the Linux environment. Use that and the #Development IDE for a very powerful .Net development environment on the Linux platform.

by joe mctroll

You're right, the Mono project set forth a framework for working with .NET at libre unix systems...

Problem with both JVM and .NET is their bytecode represents the machine code of virtual RISC machines, which runs ultra-fast when interpreted at RISC machines (such as SPARCs) but is turtoisely slow running on CISC (such as Intel and compatibles).

But now we have the parrot virtual machine project, aiming at providing a common base for python, perl and tcl. It represents a virtual super-CISC machine, so it will run ultra-fast at our computers. And since it is open source, it will be available almost everywhere...

So perhaps it won't be such a bad idea to program in perl 6 or the comming versions of python and tcl/tk, now that we'll have both portability, multilanguage programmin (as in .NET) and *speed*...

by tonyb

If you dont want X platform portability then why change ? Delphi is simply the best developer envireonment that has ever been produced for Windows. Java performance is poor. Java gui really is bad.
Why would you want to take 10 times as long to develope something that runs at a 10th of the speed ?

On the other hand... If it was web development the maybe Java is a good consideration ... that is until ASP.net came along.

The port you should really be looking at is a port from Delphi to Delphi for .net using Delphi2005.

Tony

by tonyb

If you dont want X platform portability then why change ? Delphi is simply the best developer envireonment that has ever been produced for Windows. Java performance is poor. Java gui really is bad.
Why would you want to take 10 times as long to develope something that runs at a 10th of the speed ?

On the other hand... If it was web development the maybe Java is a good consideration ... that is until ASP.net came along.

The port you should really be looking at is a port from Delphi to Delphi for .net using Delphi2005.

Tony

by charles

there was a discussion not to long ago about why borland went the .net way, instead of making a delphi to jvm compiler...

http://groups-beta.google.com/group/borland.public.delphi.non-technical/browse_frm/thread/ab50b6418788338d/82dfe1a033a9a914?q=group:borland.public.delphi.*+insubject:java#82dfe1a033a9a914

tinyurl...
http://tinyurl.com/5t7wz

as for why one would convert to delphi from java,
you could always post on newsgroups.borland.com to get a delphi-biased viewpoint...

news://newsgroups.borland.com/borland.public.delphi.non-technical

by jaqui

the non delphi input from here be more valuable?
here you get numerous opinions that will present both arguments so have better data to evaluate.

by jaqui

a kylix limitation, that's a compiler limitation.
which even includes windows versions of delphi, as kylix and delphi both use borlands compiler.

give them a bit of time and they will address the 64 bit issue.

by josir

Hi rajanikanth,

you didn't specify what architecture are you using on Delphi application. Is Client/Server, Web, SOA ?

Assuming that it is client/server, it will be a hard work because J2EE has a Web architecture: before the language stuff, there will be the architecture problems that have to be surpassed.

Advantages of J2EE over Delphi: portability, deployability and more resources (human and documentation)

Disadvantages: the HTML/Web architecture itself; hard to learn (if you are a Delphi programmer); difficult server configuration.

In my opinion: try a n-tier solution incrementally. Write some web services that will be used by your current Delphi app and later by your J2EE app.

Good Luck,
Josir Gomes

by ivoxlab

Hi there,
Some background , am Delphi + Java Developer
1. reason is because Delphi's strenght is mostly in Desktop application. To develop client server application, Delphi uses socket conenctions, and for Web Application Delphi 5 used to run on ISAPI DLL for web application through IIS.

The real question is in the scalability and the availability of these ISAPI DLL. They consume loads of memory and you can run out of windows handlers if your server is receiving too much hit. Eg. ebay's website can sometimes be too busy. It is running on ISAPI.

J2EE was built and designed for Distributed Client Server Application in mind. It is able to scale , and provide the kind of availability no other technlogy is able to match up. They can even talk to legacy systems and provide a very beautiful architecture in terms of program maintainability and expandibility (object oriented)

2. I think I have answered this briefly

by tony hopkinson

server code with Delphi, but you have to know what you are doing as the bulk of the Delphi IDE's support is for Desktop stuff.
You certainly don't have to use ISAPI for web based stuff and you can distribute ISAPI based applications anyway.
Nothing to with the language or the IDE as such, but with the design architecture.

by ivoxlab

Hi Tony,

I must say I agree with you. The design architecture is very important. However if you have designed it in such a way that you are limited by some constraints which you did not foresee, eg. Windows handler runs out, how do you expand the scalability of the distributed application?

I am not sure who they put behind the ebay site to work on, but I can see that the dll is being hit so severely that it has to return messages like server busy , try again later.

Joshua

This discussion is closed to new replies.