Friday, November 27, 2009

Interesting Delphi alternative - RIA Ajax Gui Builder

Your reviewer was looking at doing his next Delphi-IntraWeb based app and was wondering what was around.

Costs
Let's say you have 5 people working on this project:

Price Proposal #1:
- Delphi 2010 enterprise * 5 = US$2499 * 5 = US$12,495
- TMS IntraWeb studio * 1 team license = US$1300
- MadExcept * 5 = US$99 = US$495
Others:
- Arcanatech Open-source
Total price for Delphi solution = US$14,290

- Possibly throw in RemObjects SDK, AnyDac, DataAbstract?, UniDac, PaxScript.
- Alternate would be kbmMW or Real-Thin-Client solution.

Price Proposal #2:
- WaveMaker community * 5 = US$0
- Apache = US$0
- (did not use anything else)


IntraWeb Alternatives
Your reviewer was looking around for credible alternatives to IntraWeb. Few days later, your reviewer found WaveMaker - www.wavemaker.com

There are several GUIs for JavaSript - ExtJS (commercial), Tibco General Interface, IBM WebSphere Mash, Aptana, SmartClient.com and WaveFusion.

For commercial solutions:
- ExtJs has bindings to Delphi (search around Torry's Delphi Pages),
- TibCo General Interface can communicate via SOAP (if you have RemObjects SOAP SDK) or Ajax/Json via DoJo.

[ExtJS is free if you are doing GPL work, like adding extra GPL code to your Delphi project and expecting nobody to find out about it. (smile)]

[TibCo, you have call them up for alternate payment methods, unless you want to get more frequent miles points on your credit card.]

Free offerings:
- Java/Eclipse have Ajax Toolkit you might want to look at
- IBM WebSphere assumes you use Java, the SOAP builder is interesting.

IBM WebSphere was impressive because it has Javascript GUI builder. TIBCO was also professionally done.

Aptana have embedded Javascript-server, the kind that could challenge IntraWeb into building stand-alone EXE files. It was very tastefully done. Your reviewer was impressed by DoJo and WaveMaker.


Problem #1: Learning many languages
The "problem" with Website development is, it's either using FireFox/XPCOM interface /FireBug with tedious coding with PHP/Java/Python/Perl.

That is:
- you can make a good site with Perl, to make "damn" good site with Perl, you would need very good Perl knowledge, JavaScript, DBI and so on.

- you can make a good site with PHP, to make "damn" good site with PHP, you need to learn PHP, PHP database interfaces, PHP Classes and so on.

- Ditto with Python, C#, NET, ColdFusion and Delphi/IntraWeb.

- The lingua franca you always had to learn were IE DOM Model, Firefox DOM Model, JavaScript and CSS.

There's also some Photoshop work. Your reviewer found free older versions of Corel Paintshop somewhere on Corel's website.


Problem #2: Desktop, Website?
The Win32 client does not play well with Web-based development tools. The familiar Delphi has IntraWeb (so long as you can pay for it), Visual C++ have ISAPI (Server-side), NET has two different classes, WebForms and WinForms.

People had to use embedded Cassini, mini-Java TomCat server (btw, most Java solutions have it, like Eclipse). The PHP folks have Apache/PHP stack (LAMP) under Windows if they wanted to serve-up "web-based Destkops"

Both Desktop programming and Web-based development are two different things.

Have you seen any successful IntraWeb EXE files lately? Me neither.


Problem #3: New protocols, open-standards
The Win32 client with Delphi, you have to use Indy (there's always the occasional Indy bashing going in the Borland newsgroups) or ICS or RemObjects (if you can see their HTTP server sources). If you have money, you can use the not-very-Clever components, which have not been updated for 2 years (to be fair, they updated it only for Delphi 2009 compatibility) in their history list. right.

There's JSON Ajax calls, any VCL for that?, or JMS?
(To be fair, there's Michael Justin's betasoft for JMS, with paid "trial").

It's pay, pay and pay to get involved into Web for Delphi.


Problem #4: GUI Builder?

This is where What you see is not what you get. With PHP, it would be constantly refreshing browser, emitting PHP + JavaScript, learning good PHP (server-side valiation) also means learning JavaScript, along with getting good IDE (such as UltraEdit or SlickEdit) that have Intellisense as well.

With Perl, there are those hard-core Perl-monk (:

I'm a Perl monk, I use Linux command-line, either VI or VIM, Emacs, :! to bash and then run Perl with stdin my Perl scripts and emit HTML on-scren, read it with lynx (text-based) HTML browser and program my way from there. Use Visual Studio? That would be way too tempting and over my head"

The problem is POST needs to parse data, GET needs to have pre-filled-in data or dynamic HTML web-pages, session needs to be handled, JavaScript needs to be emitted, and so on.

There is ASP.NET, JSF (Java Server Faces) which have direct GUI builders, until recently...

Your reviewer looked at IBM WebSphere, TibCo General Interface, SmartClient, ExtJS GUI builder, DoJo Bok(something) (by some Uncle on a blog).


DeskDrive WaveMaker
Your reviewer looked at Delphi 2010 and wondered if he should get this (and waste his Christmas bonus) or look at WaveMaker

The community was friendly, even so much your reviewer got assistance in hours. (Try posting on Embarcadero's forum and wait days for response).

The cost was free, as in US$0/- for community edition,

- the SOAP was working (did you try Delphi 2006, 2007, 2008, 2009's WSDL import only to plunk down a thousand more for RemObject's SDK?)

- the JSon was working correctly (why are there no examples to use JavaScript YUL (Yahoo Library) or DoJo toolkit with Delphi-back-end?)

- the speed was fast (did anyone try loading 1000 records?)

- the GUI looks amazing (did anyone making nice GUI in IntraWeb?)

- instant connections to databases (with Delphi, you plonk down more cash for this)

- plays well with C# (with DoJo.NET), Java, Perl and PHP.

There is really no need to play well with Delphi-socket-servers, since Delphi socket-server uses blocking code (hint: Indy), no ability to emit SOAP *with* serving JSon, HTTP or let alone connect to database or use scripting (what scripting?), without paying so much money.


The Love-Hate affair
This lead to a heated arguement here at DelphiHater's place:

DelphiLover: I need US$6,000 to buy RemObjects for the team, probably DataAbstract, or maybe RealThinClient or maybe AnyDac/or UniDac/ and some third-party to make HTTP server.

DelphiHater: How about I take US$6,000 from your bonus instead? :)

DelphiLover: We need a socket server and custom HTTP library.

DelphiHater: How about you use C#/NET or Java? There's Glassfish (Java stack) or IIS stack. You can even download Eclipse for free, Glassfish for free and use it. Visual Studio Lite is free, and you can build web-services that don't crash and burn.

DelphiLover: You really hate Delphi right?

DelphiHater: No, I don't hate Delphi, read what I wrote again, if I'm gonna make an RIA application, I need *reliable* products, things that work (24/7), things that perform as expected, things that play well with others. DelphiDeveloper, I can get you all these libraries, but if you cannot deliver results, whose fault is it?

DelphiLover: Why don't you just gimme the cash and I deliver results?

DelphiHater: After I give US$6000 (and pay for your salary) to the vendors, how long will it take for you to code the solution, make sure everything is tested, and then deliver results?

DelphiLover: humm...

DelphiHater: Did you see anyone else who made what you did? Did anyone see production sites for IntraWeb or Socket server successes? Why is it other people are successful using C# and Java and we're so behind in this game?

DelphiLover: Can we still develop a Win32 client?

DelphiHater: If the RIA client works well, customer is happy, there is really no need to use Delphi anymore.

Take these as words of wisdom.


:)

16 comments:

Unknown said...

And what's about Morfik ? It seems to be a good solution for Delphi users.

Delphi Haters said...

I downloaded it some time ago...

it would be additional costs., e.g., US$500 ontop of each user.

either way, it feels like either your bonus or a new copy of Morfik for you.

do you Delphi guys ever count the cost of doing things?

John Small said...

Mmm, I went the whole way from Delphi for web apps into the OpenSource/Linux/Ruby on Rails world. Miles and miles better, but a bit of a culture shock.

In the windows world if you find a bug or need a new feature you have three options (1) Whinge, (2) Wait, (3) Workaround. In the opensource model there's a fourth, (4) get the source code and code it yourself. If you're used to (1) and (2) and keep the habit going you'll get the cold shoulder, you're expected to do (4).

I much prefer it to Delphi for web apps; I wish it could be used for GUIs as well.

Mauricio Longo said...

Why would Morfik be an "additional" $500? In addition to what?

Morfik doesn't require Delphi and it does 95% of the work you might use Photoshop for. If you want to partition you application in multiple layers and remote modules, it can be done using web services.

publisher said...

There are TONS of free components. COST = 0$

There are FREE VERSION of Delphi = Turbo Delphi Explorer. COST = 0$.

Jumping from tool to tool you'll quickly get yourself status of "MASTER OF NONE".

WBR, from Delphi lover

Delphi Haters said...

Hi Alex,

Can you use TurboDelphi? Embarcadero stopped issuing keys.
https://forums.codegear.com/thread.jspa?threadID=30806

Can you use TurboDelphi 2006 for commercial? No longer for sale. Have to buy sometime expensive...

Please tell me what language phpBB is written is?

Show me one website that uses IntraWeb for website, IntraWeb for forums, I'll show you 10 other Delphi people who use WordPress, phpBB and Python.

Anonymous said...

RealThinClient.org - develop non-blocking web servers in delphi. Very stable, open source.

publisher said...

I know I know, but look around in google and you will find some magic :))) Turbo Delphi Explorer still can be downloaded from here (http://www.turbomirror.com/)
keys available in multiple forums.

Yes, Turbo Explorer ALLOW to produce commercial apps, its not restrictive as you might think.

I know php, ruby and many other scary words... but in reality people use appropriate tools for certain tasks. You dont fix a watch with a hammer dont you?

I can tell you about people who using ECOII/III if you know what i'm talking about. I can tell about banks and insurance companies that using extensively WebServices written in Delphi 7 (yep it possible). About HP/Epson printing drivers written in Delphi. Skype written in Delphi.... I can continue you know.

All this guys making MONEY and choose Delphi for a reason.

PHP and Pyton just scripts. There are several weaknesses as well as benefits. Up to you, I dont wanna start holly war and compare what is the best to do forum or chat. Delphi is not a right tool to do this. But it does not mean that is making it weak. You cannot do chat in SAP R/3 or T-SQL but it does not mean these two are useless...

"Use your WHOLE brain." (C) Wikipedia

Delphi Haters said...

And those keys on certain forums are legal?

Anonymous said...

RemObjects -> Did you take a look at tiOPF ?
This works perfectly for us and it's free!

Sergio said...

Hi guys, I am actually porting a very big project from Delphi 7 to a RIA web aplication, and I have found several really nice ways of doing so without re-wrinting almost anything (I CAN'T port it to a new languaje in less thasn 5 years).

There exists a free wrapper for delphi events into ExtJS so a delphi app. become an apache/IIS module -or stand alone web server- in an automated way: you program delphi, the app is used in a web browser with ExtJS front end, but events do fire on the delphi app. and refreh the browser side using AJAX, but you don't even notice it.

This magic is done by ExtPascal (do google if interested) and it is free and compatible with almost all delphi versions, included freepascal/lazarus, so cost is zero if you prefer freepascal.

For real usage -ExtPascal is not so usable out of the box- you have 2 nice options:

Raudus is a set of components that mimic those on VCL and that internally conects with ExtPascal, it is free and source will be released, so using it with freepascal and you have a free, open source, global solution.

My personal choice is the second one: uniGUI.

It is more mature, more component rich, and more important: components are dual, so you can compile the same app for VCL Win32 destop usage (plain .exe), or as a apache module -for instance- and both will be the same thing, just in a win OS or on a web browser.

My final choice is: Delphi2007 or 2010 + unuGUI + ExtJS, so as it is for commercial non GPL apps., it cost you about 1550 euros per programmer.

Not free, but so powerfull for converting big legacy apps. to web RIA, that it is a gift for us.

Delphi Haters said...

Discussed here:

http://forum.vingrad.ru/forum/act-ST/f-84/t-293346.html

Hai Bison said...

Delphi is verbose. All the things that Borland/ CodeGear/ Embarcadero have been trying to do is following M$. They want to make an old man teenager. Everyone knows that Java is better than Delphi. And to me, Java is an old man now :-)

Delphi XE, XE2? Just the suits, outfit of the bone. To a coder, he needs the bone. To a customer, he likes the suit.

Javier Paniza said...

Yes, open source solutions from Java world are free, but they have a serious problem, they are not productive for creating business applications. A simple application that costs several hours to develop with Delphi can take days or weeks with Java + Spring + Hibernate + Maven + ...
However, there are some Java frameworks focuses in productivity for business application, such as OpenXava.

Unknown said...

Next time go with UNIGUI.

Marcello said...

IW17 will put Delphi again in the golden age.
It has a lot of these new javascript frameworks ,but in a easy
and fast way to code and maintain.