Mocha vs Helma?

My Mocha stuff consists of an "abstraction layer" and an "object engine" that currently run on top of Web Crossing which is a proprietary product. What I'm trying to do with Mocha would be what I consider "commodity software" - software that should be free and therefore it needs something to run on that is free.

Both the Mocha Object Engine and the Mochascript Library are written in Javascript and "feel good" together with Helma. Generally, I feel that Helma fits the way I'm thinking. Having said that, I'm not a fan (yet) of the skin/macro concept and I'm still digesting Hannes' relative willingness to accept relational databases as "not from hell" - but I'm starting to get the picture (ie. pBeans + Groovy Beans).

Here's why I think the skin/macro stuff doesn't fit right with the Mocha concept: I believe it draws the line between application logic and layout to early. I think you Helmaists have started to discover this yourselves: When you start generating HTML dynamically (a similarity between the Mochascript lib and the AntvilleLib) and when you start to add some kind of GUI-translation lookups then you remove both HTML markup and GUI-Text from the skins - and you're left with gibberish of mixed layout, string and content lookups. I claim that kind of gibberish is more difficult for a non-programmer to disekt than a Javascript syntax with a very high level of abstraction.

Mocha adds an additional level of abstraction where all of these lookups are expressed in Javascript. I call these elements "Mocha Objects" and they might look for example like this:
+ openPage({backpath:'hide'}); 
+ openSidebar() + makeList('siblings') + closeSideBar(); 
+ openContentBlock(); 
+ makeTitle({style:'alert'}) + makeDescription(); 
if (userIs('editor')) { 
	+ openForm(); 
	+ makeTextarea('content'); 
	+ makeDropbox('status',['Pending','Active',Resolved']); 
	+ makeButton('Save Changes','submit'); 
	+ closeForm(); 
} 
else { 
	+'You need to ask your editor to make the changes.'.lookup(); 
} 
+ closeContentBlock(); 
+ closePage();

Translations and string customizations are handled by a lookup string method that checks for available string replacements based on a hash lookup. If I wouldn't be against software patents, I would patent this.

When running Mocha on top of Helma, a .hac file would basically call the Mocha Object Engine that determines which Mocha Objects need to be evaluated in order to respond to the current request. That collection of Mocha Objects is then evaluated and the result returned to the client. Skins wouldn't really be needed in this picture. However, the skins in Helma provide a security and access control layer that allows a user to make edits that are jailed from the applications Javascript environment. Adding a separate second tier Javascript environment in which Mocha Objects are evaluated would be the trick.

But I might be changing my mind about that skin/macro criticism: In earlier days, I once implemented a Mochascript library that ran on the client-side (with Broadvision on the server-side). I never intentionally abandoned that concept - I just didn't have the time to maintain/update it. Think of skins as an additional layer of Javascript code that will dynamically generate the HTML markup on the client-side. Client's have plenty of CPU power available to first evaluate Javascript before rendering the resulting markup. The Mochascript library on the server side would then generate/output client-side Javascript code instead of HTML, like both my Mochascript lib and for example the AntvilleLib do now. Helma's skins are the intersection between HTML and server-side macro calls. Mocha's "skins" would be the intersection between server-side and client-side Javascript - on the server-side, we would basically never see an HTML tag.

Some might argue that Javascript is not as easy to learn for a non-programmer as for example python. I believe while that might be true, the reality sports a bigger picture: Sooner or later "everybody" has to learn that kind of syntax anyway. The advantage of a "mono-syntax" environment from the client-side to the server-side and beyond (Java, C, etc.) by far outweighs the learning curve. Speed can be gained by abstraction instead of syntax.

So, Mocha is mainly about abstraction and how different levels of abstraction are layered. Helma might be the ideal underpinnings for Mocha.

27.05.2004, 09:41


Schattenwahrheit: Coup d'etat underway against the Cheney Circle?

The Bush administration might be heading for turmoil (read that both ways, if you can) leading up to the elections, facing a power struggle against the Pentagon, CIA and Senat. Richard is taking his analysis of past, present and future world order to new heights . At least we won't be surprised in case we'll soon be BBC World watching a military coup in the USA, possibly following a major disruptive Terror attack, the declaration of martial law and the cancellation of the elections - and followed by the "Cheney Circle" facing a military tribunal for bringing terror to the world. Now, that's what I call a "Schattenwahrheit"!

23.05.2004, 10:16

Abschluss Bilaterale II Schweiz-EU

Das bilaterale Gesamtpaket, auf das sich der Bundesrat mit Brüssel geeinigt hat, besteht aus neun Abkommen der Bilateralen II sowie einer Reihe weiterer Regelungen. Die entscheidende Frage wird vor allem sein, ob zukünftige Entwicklungen im entsprechenden EU-Recht von der Schweiz autonom nachvollzogen und ausgehandelt werden können. Falls nicht, müssen wir's ablehnen. Die Unterhändler der Schweiz behaupten, dass dies explizit so ausgehandelt und ausformuliert worden sei.

23.05.2004, 15:56

From Adam Smith to Open Source

A report from the Open Source and Free Software conference held at the University of Toronto stops where it starts to become interesting.

Source code is about a "belief" of how a problem should be solved. The emphasize here is on "belief" - not on "how". A free market in this industry needs to compete on that belief - and no one can claim a monopoly on what they believe.


19.05.2004, 09:41

Linux - the desktop for the rest of them

The drunkenbatman has blogged a rhapsody on desktop apps development .

Maybe Linux will be the desktop for the rest of them. That still leaves room for up to 10% MacOSX market share - which is more than will ever be good for Apple. If Apple's market share ever gets above 10% then they are not thinking different enough!

02.05.2004, 15:35

Big Bang

If time is the fourth dimension then that neutralizes or stretches the other three and you are left with nothing or everything - depending on the perspective - which certainly would explain it all :-)

24.04.2004, 16:00

Leaky Hop Objects

Jetzt weiss ich wie es kam, dass Hop Objects Leck geschlagen haben. Aber zum Glück lerne ich von Hannes das als Leaky Abstraction zu interpretieren, was ja dann doch wieder sehr kompatibel mit Mocha ist.

24.04.2004, 19:44

Return Path Rewriting (RPR) - Mail Forwarding in the Spam Age

While digging through the net for info morsels on SPF and SRS I found Daniel Röthlisberger - or his site, to be more exact. He's offering yet another alternative approach to implementing a mail forwarding SPF work-around.

19.04.2004, 01:45

>>> Microsoft Discloses Huge Number Of Windows Vulnerabilties

> Steuerungsabgabe statt Steuern
> Anno 2003: deployZone
> The war against terror
> The war against terror (continued)
> The relativity of Apple's market share
> Are humans animals?
> Server-side Javascript
> Anno 1999: Der Oberhasler
> Anno 1998: crossnet
> Think different
> Geschwindigkeit vs Umdrehungszahl
> Anno 1997: Xmedia
> "The meaning of life is to improve the quality of all life"
> Anno 1996: CZV
> How do I set a DEFAULT HTML-DOCUMENT?
> Crossnet - der kollektive Intellekt der Schweiz
> Global Screen Design Services
> Anno 1993: Macro-micro navigator
> Anno 1992: Intouch i-station
> Anno 1991: mediacube
> Anno 1990: RasterOps
> Anno 1988: Perfect by Fairground Attraction
> Anno 1968: Mony Mony and People Got to Be Free
> August 28th 1968: William Buckley Vs Gore Vidal



server-side javascript
sovereignty, subsidiarity,
solidarity and sustainability

Chris Zumbrunn's Mochazone
> Server-Side Javascript since... way back: RingoJS!
> Modules, Proxies, and Ephemeron Tables
> Helma 1.7.0 has escaped its stealth existence
> The Moon And The Sky by Sade
> Written In Reverse by Spoon
> Keep Cool My Babies!
> Module system strawpersons
> You find what you google for.
> Move your money - It's a Wonderful Life
> ServerJS - Brewing The Perfect Storm
> While society must do things the right way, its people must find ways to do the right thing
> CommonJS effort sets JavaScript on path for world domination
> ServerJS - putting Javascript to work on the *other* side
> Eating healthier would safe the planet
> JVM Web Framework Smackdown
> Before implementing a solution to a problem, always search for a workaround, because the workaround is often better than the original solution
> If they are not ready for what they need, give them the backbone for their future baby steps
> Been there, but haven't done that
> Unus Pro Omnibus - Omnes Pro Uno
> Hang You From the Heavens by The Dead Weather
> Web-based editing of sandboxed server-side javascript apps
> PubSubHub against spam and walled gardens
> CometD at a glance
> Be part of the solution, not part of the problem
> Surrender by Cheap Trick
> A car has nothing to do with a carpet
> ES5 Candidate Specification
> ReverseHttp and RelayHttp
> The best solution is that one isn't needed
> New Eclipse Helma plugin project
> Is the Bespin web-based code editor the ideal future ServerJS IDE?
> Server-Side Javascript Standard Library
> First Soleil on Mont-Soleil
> Helma turns 1.6.3
> Helma 1.6.3-rc3 ready for testing
> Helma 1.6.3 Release Candidate 2
> Release Candidate 1 of Helma 1.6.3
> Helma at the 2008 OpenExpo in Zurich
> Large Hadron Collider
> Ecmascript Harmony
> The A-Z of Programming Languages jumps to Javascript
> Fresh Javascript IDE in Ganymede Eclipse release
> Helma at the Linuxwochen in Linz
> Brendan on the state of Javascript evolution
> Is AppleScript done?
> ES4 Draft 1 and ES3.1 Draft 1
> Want ES4 in Helma today?
> SquirrelFish!
> Permaculture 101
> ES4 comes to IE via Screaming Monkey
> Apple's position on ECMAScript 4 proposals
> Helma Meeting Spring 2008
> Attila Szegedi about Rhino, Helma and Server-Side Javascript, and scripting on the JVM in general
> Helma 1.6.2 ready to download
> Larry Lessig's case for creative freedom
> Earthlings - Can you face the truth?
> The Story of Stuff
> A Quick Start to Hello World
> The Overlooked Power of Javascript
> Adobe's position on ES4 features, plus the Flex 3 SDK source code is now available under the MPL
> Solar cell directly splits water for hydrogen
> Asynchronous Beer and Geeking and other opportunities to talk about Helma, Rhino and Javascript on the server-side
> Openmocha and Jhino updated to 0.8
> Even more Server-side Javascript with Jaxer
> e4xd and jhino - javascript server-side soft-coding
> Additional Filename Conventions
> Update to Helma 1.6.1
> Netscape, the browser, to live one more month
> SimpleDB vs CouchDB
> Helma powered AppJet - Takeoff!
> CouchDB for Helma
> Bubble bursting friendship bracelets
> Evolving ES4 as the universal scripting language
> Helmablog and an article in Linux Pro Magazine
> More praise for Helma
> Javascript as Universal Scripting Language
> So, what's up with World Radio Switzerland?
> Helma Conspiracy Theory
> JSONPath and CouchDB
> Hold the whole program in your head, and you can manipulate it at will
> Keeping track of localhost:8080
> Rhino 1.6R6 with E4X fix and patches for Helma
> Helma 1.6 is ready!
> Junction brings Rhino on Rails to Helma
> Javascript for Java programmers
> The server-side advantage
> John Resig on Javascript as a language
> Rhino on Rails
> Release Candidate 3 of Helma 1.6.0
> ECMAScript 4 Reference Implementation
> Antville Summer Of Code 2007
> Helma 1.6.0-rc2
> Using H2 with Helma
> Helma warped around existing db schemas
> Rocket the Super Rabbit
> Bootstrap is out of the bag
> The last mention of Microsoft
> Helma 1.6.0-rc1
> Introducing Planet Helma
> Helma ante portas
> Fixing Javascript inheritance
> Shutdown-Day the Helma way
> Upcoming Helma 1.6, new reference docs and IRC channel
> Making Higgs where the Web was born
> Jala for Helma
> See you at Lift'07
> More on Javascript Inheritance
> Mocha Inheritance
> Helma 1.5.3
> Fresh Rhino on Safari
> Truly Hooverphonic!
> Helma 1.5.2
> RFC 4329 application-ecmascript
> Helma 1.5.1 ready to download
> Aptana - Eclipse reincarnated as a Javascript IDE
> Building the Conversational Web
> Drosera steps in to debug Safari
> Helma 1.5.0 has been released!
> Helma 1.5 RC2 is ready
> Helma 1.5.0 Release Candidate 1 available for download
> FreeBSD Jails the brand new easy way
> Javascript 2 and the Future of the Web
> Frodo takes on chapter 3
> No Rough Cut :-(
> Welcome to Helma!
> 40th Montreux Jazz Festival
> trackAllComments
> Rails' greatest contribution
> Consensus vs Direct Democracy
> A candidate for CSCSJS or a Mocha Fetchlet
> A (Re)-Introduction to JavaScript
> coComment Roundup
> Track your comments
> Sketching image queries and reinventing email
> ECMAScript - The Switzerland of development environments
> I love E4X
> Tutorial D, Industrial D and the relational model
> Stop bashing Java
> E4X Mocha Objects
> Logging and other antimatters
> Stronger types in Javascript 2
> Javascript Diagnosis & Testing
> Homo Oxymora
> Yeah, why not Javascript?
> Moving beyond Java
> Spidermonkey Javascript 1.5 finally final
> Helma Trivia
> Finding Java Packages
> JSEclipse Javascript plug-in for Eclipse
> Catching up to Continuations
> Mighty and Beastie Licenses
> Tasting the OpenMocha Console
> "Who am I?", asks Helma
> Savety vs Freedom and other recent ramblings
> Mont-Soleil Open Air Lineup
> Rhinola - Mocha reduced to the minimum
> OpenMocha 0.6 available for download
> E4X presentation by Brendan Eich
> What is Mocha?
> Do you remember Gopher?
> The current.tv disappointment
> OpenMocha Project Roadmap
> MochiKit Javascript Library
> Getting your feet wet with OpenMocha
> People flocking to see global warming
> Rails vs Struts vs Mocha
> The JavaScript Manifesto
> OpenMocha is ready for a spin
> The limits of harmonization
> Le Conseil fédéral au Mont-Soleil
> Amiga History Guide
> The people must lead the executive, control the legislature and be the military
> Copyback License
> Looking at FreeBSD 6 and Beyond
> Qualified Minority Veto
> The Doom of Representative Democracy
> Violence in a real democracy
> Concordance and Subsidiarity
> Wrapping Aspects around Mocha Objects?
> Future of Javascript Roadmap
> Baby steps towards Javascript heaven
> Mac OS X spreading like wildfire
> Trois petits filous à Faoug
> Jackrabbit JSR 170
> Rich components for HTML 5
> More Java Harmony
> Mac goes Intel
> Google goes Rumantsch
> Oxymoronic Swiss-EU relations
> Rico and Prototype Javascript libraries
> Paul Klee - An intangible man and artist
> Incrementalism in the Mozilla roadmap
> Mocha multi-threading
> Moving towards OpenMocha
> Google goes Portal
> What Bush doesn't get
> Unique and limited window of opportunity
> Persisting Client-side Errors to your Server
> Dive Into Greasemonkey
> Brown bears knock on Switzerland's door
> The experience to make what people want
> "Just" use HTTP
> Yes, what is gather?
> A Free Song for Every Swiss Citizen
> Java in Harmony
> Jan getting carried away
> Evil Google Web Accelerator?
> JSON.stringify and JSON.parse
> Ajax for Java
> The launching of launchd
> Timeless RSS
> Kupu
> SNIFE goes Victorinox
> AJAX is everywhere
> Papa Ratzi
> How Software Patents Work
> Ten good practices for writing Javascript
> Free-trade accord with japan edges closer
> Mocha at a glance
> Adobe acquires Macromedia
> Safari 1.3
> View complexity is usually higher than model complexity
> Free Trade Neutrality
> SQL for Java Objects
> Security Bypass
> Exactly 1111111111 seconds
> Kurt goes Chopper
> Choosing a Java scripting language
> Spamalot's will get spammed a lot
> The visual Rhino debugger
> The Unix wars
> EU-Council adopts software patent directive
> FreeBSD baby step "1j"
> Never trust a man who can count to 1024 on his fingers
> Visiting the world's smallest city
> Finally some non-MS, non-nonsense SPF news
> Swiss cows banned from eating grass
> Ludivines, the "Green Fairy" of absinthe
> First Look At Solaris 10
> EU Commission Declines Patent Debate Restart
> Alan Kay's wisdom guiding the OpenLaszlo roadmap towards Mocha?
> 1 Kilo
> Re: FreeBSD logo design competition
> Schweizer Sagen
> Europas Eidgenossen
> XMLHttpRequest glory
> Art Nouveau La Chaux-de-Fonds 2005-2006
> The Beastie Silhouette
> The Number One Nightmare
> Safe and Idempotent Methods such as HEAD and TRACE
> Sorry, you have been verizoned.
> Daemons and Pixies and Fairies, Oh My!
> Sentient life forms as MIME-attachments: RFC 1437
> Anno 2004: CZV
> Web Developer Extension for Firefox
> Refactoring until nothing is left
> Brendan, never tired of providing Javascript support
> Catching XP in just 20 Minutes
> Designing the Star User Interface
> Rhino, Mono, IKVM. Or: JavaScript the hard way
> Re: SCO
> Judo
> Convergence on abstraction and on browser-based Console evaluation
> Today found out that inifinite uptimes are still an oxymoron
> New aspects of woven apps
> Original Contribution License (OCL) 1.0
> Unified SPF: a grand unified theory of MARID
> BSD is designed. Linux is grown.
> 5 vor 12 bei 10 vor 10
> Mocha vs Helma?
> Schattenwahrheit: Coup d'etat underway against the Cheney Circle?
> Abschluss Bilaterale II Schweiz-EU
> From Adam Smith to Open Source
> Linux - the desktop for the rest of them
> Big Bang
> Leaky Hop Objects
> Return Path Rewriting (RPR) - Mail Forwarding in the Spam Age
> More >>>