Helma NG
Jetzt fängt wieder alles von vorne an
Hannes Wallnöfer
Some Facts about Helma 1
- In development since late 1990s
- Started with FESI EcmaScript interpreter
- Replaced with Rhino in Helma 1.3 (summer 2003)
- ca. 50.000 LOC
- 14.000 LOC for DB layer
- 11.000 LOC for application framework
- 8.000 LOC for scripting layer
- Diseconomies of scale
- COCOMO estimate: 12 person-years
The slow arrival of Helma 2
- Announeced as early as
2003
- Fueled by the feeling that something smells wrong
- Everything is in Java and feels rigid
- Things are more complex than they need to be
- Application structure is idiosyncratic
Scopes in Helma 1 ...
... and in Helma NG
Helma NG basics
- global functions:
- importModule(), importModuleAs(), importFromModule()
- getResource()
- parseSkin()
- modules can be shared, by default they're not
- compiled scripts are cached, scopes are not
- ...except for the shared ones
Helma NG modules: simpleweb and skin
- Mimic Helma 1 web framework
- ...but not really strictly
- Web modules are like apps in apps
- Skins can extend other skins
Helma NG modules: minibase
- Mimics Django style persistence
- Storable interface
- Storage imlementation
Helma NG shell
Try it!