Hi Esteban 
let me write an example: (lots of time at the moment)
--------
Hypothetical CASE 1 Stand Alone Solution:

Currently it's just a pilot/study project, but let's assume for a moment
that after a year so of really hard working on it in Pharo, I finally
completed my dental application system, that is, as as a stand-alone desktop
application...

After splatting a few initial bugs, the dental clinic is happy with my new
dental application, and they paid my bill. Mods were relatively easy to
implement, because it is Smalltalk, not to mention the fantastic debugger
facilities, simply very cool. 

They need to run the app simultaneously on 4 computers: that is 4 stand
alone apps running their own separated Smalltalk images. Using a Postgress
server as a DB on one of their PCs tied everything together. Apart from
having to install live Smalltalk images om each computer, backing them up
etc. not much of a problem, one would think, right? So far so good. ...apart
from having to install and maintain the app on each and every computer they
use, that is...

Two weeks later after my app went real: The clinic is expanding and another
3 computers will be added soon, meaning yet even more to install and
maintain. Hey! also a new update of Pharo arrives, I need to update 7 images
import my apps packages in the new images again. ( let alone the many system
updates on especially Windows machines) Test if everything works ok again
etc. Having no down-time is crucial: all done outside of the clinic's
working hours, of course. Great.

Oh, I almost forgot: they will install a iPads and/or Android tablets soon,
which will mounted close near each patient chair. They do that anyway
because analytical imaging apps and a drill controlling app of other firms
run on these tablets. They would be happy if they could run my dental app on
these tablets too, so they don't have walk back and forth to their PCs all
the time.

Jikes! Now I am really stuck! Because I wrote a stand alone app that doesn't
run on these tablets! What can I do? 
Write special versions of my app for Androids and iPads? Impossible! this
would take me a year or so. Nightmare.

In the end the clinic dumped my app and thus me, and bought another app from
another firm, which runs on all devices because it is a web app. How could I
be so stupid not to make it a web browser app in the first place?
--------
Hypothetical CASE 2: App as Web Browser App:

Took a more modern approach: programmed my app for user access via a web
browser, A web browser is, if you really look at it, in fact nothing more
than a very advanced user terminal with endles GUI possibilities. Which btw
allowed me to style the app esthetically in any way my customer likes. Now
the cool thing is, on many devices, whether PCs, Macs, Android and Apple
tablets and Phones the user GUI presentation and interaction is nearly
identical. Which implies, I have to write my dental app only once, and it
will run on any device that is connected to an intranet or internet.  Not
only that, there is  just *one* single Pharo Image running instead of many
stand alone apps on an ever changing nr of computers. .When installing a new
Pharo version or update the app, I test it on another Pharo/Seaside server
and can switch seamlessly between the two. The dental clinic is happy
because it runs flawlessly on all devices they have and expanding or
shrinking the number of devices is no problem. Not only that, In case of
problems one can switch in no time to the shadow server app so we have
continuity here.

There is another important advantage as well. The users interacts with the
app in a browser window only, (a thin client)  that means they don't have
access to the real application, that is, the delicate Smalltalk image of the
Pharo/Seaside server app which runs 24/7 on a reasonably fast computer in a
locked room with an emergency power supply of course, together with its
friend the Database, and the room is only accessible by a responsible
employee(s). 

I am happy too, not only because the customer is, but also because I avoided
a nightmare and can do maintenance and updates, say, in 5 % of the time
needed when I had to do maintenance for e.g. 7 stand alone apps running om
separate computers.
--------- 
So far for my hypothetical examples, just to illustrate.

Note that on the internet, each site that you might visit is of course a web
app of its own. So you probably interact with more web apps than you'd
realize. Note that some are really advanced like e.g. web shops like Amazon.
There are many good websites that function really great, but a lot are
almost depressing. You're absolutely right that a lot of it is inferior, but
you might have noticed also that things are slowly improving.  

This bad quality with (still) many web apps/sites is because as you know
these are mostly built with chaotic hybrid systems/tools and unsafe
languages like Javascript, ever changing packages, interfaces, tools etc.  

Compared to that, building web apps with Pharo/Seaside is a lot more
straight forward and reliable, because everything is done in the Smalltalk
image.

Note that the web browser is not the limit itself, but rather the web app
using the browser GUI. You can really design and build beautiful and
ergonomically sound web apps, because there are so many possibilities.

However, the main reason for choosing to make apps as web apps is that it is
the only way to get your app and data accessible op nearly all devices.
Build it once and run it everywhere.

You see, this is a typical application developer's perspective, not that far
from reality, I can tell you that.

Kindly asking Tool Developers to learn more about the people and their
environment they build tools for.
because it's not only tech but a lot of things around it too.

In any case Smalltalk/Pharo/Seaside is a great to build apps with.
Unfortunately a lot of people still don't know this.
Kind Regards
Ted













 




--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Reply via email to