25 July 2011

Future of Lazarus / FreePascal

(This post was taken from excellent subject in Lazarus Forum)

... But thats because everybody wants web bases applications and no more locally installed applications so most of the industry is working on that, abandoning desktop applications.

"Everybody wants":THAT'S SIMPLY NOT TRUE!

I face 1 customer every 1000 who prefer a web app instead of a desktop one.

If we are talking of fashion ok... I'm italian... but the truth is that only some (AND FEW ONES ) scenarios can benefit from web based applications.

Simply ask to the extreme: what do you prefer, developing on your computer or using an online IDE? Do you prefere Aptana or Titanium? What you prefer a desktop chat client to put on the systray panel or a google chat in the browser?

Obviously if a global shared task manager is needed, surely web app is better.

But the main reason the industry/developers TRY to make everything web based, is for a WRONG paradigm: web app are OS independent and everywhere (or nowhere ). Yes, right, but are isolated from browsers, components (hundreds that born and die every year), servers, protocols, glue that interconnect a component/framework together, etc.?

Even entering the domain of what is "best" (at least more than system tools ) suited for web application, that is, business, financial and accounting management software, there are many caveats and problems, not only technical problems, but also legal and from from user point of view.

Some examples:

1) Usual user sentence when he try demo web apps: "It is too slow!!!". ALWAYS! Even using a Cray-X server! That's due to a more complicated verbose protocol. Even in the best case where java is used in the client side instead of JS, the overall software is perceived SLOW compared with a native/dedicated client.

Real case

Do you know Zurich Insurance? They had a DOS based software till last year, on novell LAN, called OASI. They have only recently changed to a web based equivalent software.

RESULT:EVERY USER feel this new application a down grade! Everyone feel it bad because of the low responsiveness compared to the previous super quick software. Obviuosly it's not a matter of money because Zurich... you know..., nor config: dedicated lines, backup lines, etc. The problem is that there is nothing to do for phisics reasons. As the best truck of the world can't compete with a Ferrari or a Lamborghini Gallardo so a web app cant compete with a desktop one.

Responsiveness and other features are the reasons you can find desktop clients even for twitter, facebook, and other web app etc.

What developers have to understand is that end users are not developers. They don't rejoice only because we have an easy life making "write once execute everywhere" web app. When a user see a click response after 1s he think: "WHAT A SLUGGISHNESS!!!! What's wrong? (click click click click click click)".

End users are not like us. If a user wants a car and you give him a truck, is not more happy reasoning that it is tecnologically better, can carry more stuff, has more value in the industry, and so is OK that is slower.

2)

I both develop RIA and Desktop applications. Small/medium companies that call us to buy a software, after 2 seconds ask: "Isn't a web software, right?" (That means: if it is a web app I'm not interested at all).

Why? Simple:

a) They want data on their LAN, not in fantasiland or distributed all over the clouds of the world even if we are proud to hilight "cloud server" or GlassFish in the brochure!

b) They want to work even when DSL is down, and are not interested if the app is slow because of the line.

They also want to work if notebook don't have a line (for many could seem strange but in many nations trains, bus and ferry boats are places that rarely or often NEVER have a hot spot).

c) They would like to work from a pen drive if needed.

d) They know that online software (at least in Italy) is subject to the Guardia di Finanza (italian police whose specific task is to enforce tax evasion laws etc) WITHOUT ANY ASK OR ADVICE.

3) Initially I was willing to simplify my work making web app for everything. I thought I could gather every user under the same web app simply changing the location of the server:

- installing the app/server on the customer LAN (VMware/VBox) to cope with the clients mandatory will to have a desktop app

- installing on the web for those who need global access and no installation, working even from a pub client.

... but today I ask myself: what is the real benefit againsts a real dedicated client? It's only because I can't give them pub client access?

So after some years I have the evidence that only some web solutions are really well accepted from the users:

1) Software intended for occasional use, touch and go

2) Software for the big mass (es. communication like facebook, twitter, gmail)... by the way... about google.... try asking people to use Google Apps instead of m$ Word . Have you ever tried a serious documents? Try the speed/responsiveness.

3) Software for huge companies where slowness is less important that everywhere + no maintainance (no manteinance... only idealistic idea! Let's say: Today is: I have all of the problems distributed on the cloud )

and I'm now oriented to:

1) Hybrid apps (web app only for some functions)

2) Portable app (real native executable), that are also useable the way java web start do.

This can cope with almost every need the best way we can (in the user view point).

Developer view

Despite I have no problem developing RIA applications (I have also developed a framework), to me, there is nothing more satisfying than working with native applications, for plenty of reasons. Beyond a certain line, it's even easier because RIA apps is not that panacea. The worst thing for a desktop app is OS changes.... but now browsers war, technologies that appear and disappear, frameworks, GUI components (YUI, etc), servers, etc, brings more changes and need of mainteinance than a desktop applications using something like lazarus, all in one.

Just an example: In a small web app, i'm using jQuery and some jQ visual components, plus TinyMce + AjaxFileManager. Some days ago I update jQuery: problems!

So there is no better relief developing web apps. Don't counting problems such as resize images client side before uploading, dialogue with a cash register and other devices, changing the printer if the software has to print an invoce, using another printer if it has to print a chart, or using a Zebra card printer if it has to print a new fidelity card. Let's do it with a web app! How easy is it?

Web apps are limited to some targets: out of that targets the only benefit are... problems!

Quote

Not sure if you are thinking that Swing itself is dead, but from what I have read, this is referring to an enhancement that was planned for Java 7 to build a framework around Swing to make it easier for developers to build Swing apps.

That's referring to what it says: Netbeans Platform.

About the Swing framework (the best way Netbeans had to compete with VB/Delphi/Lazarus/RealBasic/code:blocks/and the rest of the desktop world), what you see when you choose New Project->Desktop application, IS DEAD!.

Swing probably will last for a long time, but the web is full of question like: "Is Swing dead?" Probably there is a real reason!

Whatever the case, I don't trust Oracle! Sun was another matter. Oracle is very similar to m$: you can aspect everything, even they shut down Java tomorrow (exaggeration but... not too much ).

About Netbeans Platform: is something like developing.... how can I say.... just imagine developing under Open Office or Microsoft Access. The developer get tied to Netbeans more than Java. With the previous way, you could choose to migrate the app to Eclipse. With NetBeans Platform is not possibile anymore.

Even though I was not very attracted from Pascal (reason why times ago I used C++ Builder instead of Delphi), Lazarus is so interesting that I changed my mind and I'm seriously studying it (I exhumed from my shelf a tome of Marco Cantu` on Delphi 6 ).

So thanks to every developer and your great work with this product!

Blame the inexperienced developer, don't blame the tool.

From Lazarus forum

11 July 2011

gedit in OpenSuse 11.4

I tried to run the command “sudo gedit” which throwed me the error:

(gedit:9901): Gtk-WARNING **: cannot open display:

I discovered recently that you could run “gnomesu gedit” which, I think, is more easy to remember...

(from Blogging googling)