There are two types of workflow engines: sequential and finite state machines. The latter is more general and includes the former. In a finite state machine external event let you move through the nodes of a graph. The present node is the state. In workflow.py the creation/update of a file is the external event. The state is also characterized by the files present in the file system. The change of state is associated to the execution of a program. I agree it is a little different than what people are used to and I am not arguing semantics. It was useful to me. Hope it is useful to others. That is all. I will be happy to take patches to improve functionality.
From my prospective if one likes the web2py libraries, one should use just web2py and not other frameworks. Some web2py users have also complained: what's the point? I think the point is that everybody could learn something from trying to use different tools. I have learned a lot about the other frameworks just trying to implement this. I think others could learn something too from just reading the example code.
This is based on a web2py which has a full web based IDE although the web2py web based IDE does not run on GAE because of GAE file system limitation. cube2py has a partial workaround by storing everything in the database. Still before you run it GAE you have to run the code locally to create the indexes.
Both Rails and web2py follow "convention over configuration" while Django follows "configuration over convention". Each has pros and cons but coming from a Rails background you'll probably find web2py closer.
Mostly:
- Group Based Access Control: login, logout, registration, etc.
- CRUD
- Built portable CRON capability
- More powerful DAL
- Read only forms
- runs on Jython and IronPython (except for web server, lack of csv module, and third party database adaptors)
By the way... I think you cannot even define "best of breed" since requirements are subjective. You can only list specific issues where one system is better than another.
By the way... I think you cannot even define "best of breed" since requirements are subjective. You can only list specific issues where one system is better than another.
I do not know him personally and judging from his programs I agree that he is one of the smartest programmers out there.
Yet, who determines what the best of breed is? How much time have you spent evaluated the web2py DAL vs SQLAlchemy to reach this conclusion? Or are you basing your judgement solely on the fact that SQLAlchemy has been out there longer and therefore it is more popular?
If you have pros/cons about web2py vs SQLAlchemy I would like to hear some concrete examples. They could help us improve it.
Who determines what the best of breed is? Is SQLAlchemy the best of breed because it predates web2py? Then SQLObjects is the best of breed ORM. Kudos to SQLAlchemy because I learned a lot from it and it is a good product. It is just too verbose for my taste.