[aida] [Pharo-project] A trend and an unfair comparison about js everywhere

Janko Mivšek janko.mivsek at eranova.si
Tue Oct 16 10:17:26 CEST 2012

Here we have IMHO an advantage and opportunity with Smalltalk for the
web apps: *JavaScript is very hard for complex apps*. For the reasons
others already expressed: lack of version control, strange errors,
inadequate debugging, etc. That's why they are all that preprocessors
like CoffeeScript and new MS TypeScript out there - to ease development
and specially maintenance of any bit more complex JS web app.

So, Aida plan is to use Amber to *emit* JavaScript code to the client
while still preserve all the power and beauty of developing in classical
Smalltalk environment: browsers, debuggers, inspectors, version control
etc. And specially to develop and long-term maintain very complex web
apps, which is currently near to impossible in plain JavaScript. Such
Aida webapp will be still deployed to the server but with emitting JS to
the client the app will actually run quite autonomous on the client,
with just syncing data changes back to the server, while all UI
interactions will happen locally on the client.

Another Aida plan is to bring to the web all that Smalltalk has in 80's
already on UI front: MVC, dependency mechanism with real-time updating
all views, which are dependent on some data change, etc.

And how MVC GUI architecture ideas from 80's look like? Read from in
this book (which is from 90's actually):
 Smalltalk An Introduction to Application Development using VisualWorks
   p.287: The Dependency Mechanism
   p.312: Introduction to Models, Views and Controllers

Best regards

Dne 16. 10. 2012 02:43, piše blake:
> I've used Wakanda, WaveMaker and Sencha and a number of other one-stop
> solutions and found them unsatisfactory for a variety of reasons.
> Wakanda requires you to use a particular DB (NoSQL?) and is rigid
> about how you can lay out the tables.
> I remember, with WaveMaker, all the code ended up looking like:
> someObject.someOtherObject.yetAnotherObject.ownedObject.property.function()
> = someObject.someOtherObject.yetAnotherObject.ownedObject.property.differentFunction()
> * 0.5
> The common feature these tools tend to have, in exchange for very
> slick interfaces for putting together CRUD apps is a near total lack
> of integration for all the things you come to expect as a modern
> developer: version control and other collaboration tools, test suites,
> refactoring, etc.
> But they definitely have the gee-whiz factor going for them.

Janko Mivšek
Smalltalk Web Application Server

More information about the Aida mailing list