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