On Feb 13, 2010, at 4:05 PM, Kristian wrote:

Some ambitious ideas for a new Rails 3 - Sproutcore framework.

Pink Palm framework
-------------------

Client - Sproutcore
Server - Rails 3

Client - Sproutcore
-------------------

Use Statecharts (Sproutcore) to handle state transitions in the
client, see Evin Grano.
Have a Ruby DSL to define/generate the Statecharts code. Each state
has a call to a javascript function with relevant parameters which
handles
the state transition! Generate Statechart graph from DSL using
Graphviz. Somehow the Graph generator should handle splitting a chart
up in multiple pieces. This could be assisted from the code side, by
naming state groups and then have the generator create a new graph for
each such state group.

The first hit I got when looking for statecharts linked them to UML, which triggered my "DO NOT WANT" reflex. :) Further digging turned up the Sproutcore implementation, which bears a striking resemblance to the way GUI apps have been in the past. I'd be interested in learning more, but the sproutcore-statechart repo referenced in several posts appears to be gone...


Define the view using Sproutcore Views. Community creates custom
Sproutcore views that can be used with themes.
Integrates various nice javascript widgets as Views, fx from jQuery UI
etc. See SCUI (SproutCore UI) project.

Again, SCUI looks interesting - but I've got apps to develop *today*, not in 6 months!

Server - Rails 3
----------------

Pink Palm app. generator.
Rails templates for applying addons
Rails generators for adding Mongo models etc.

Rails app.
- Model: Mongo DB with MongoMapper/Mongoid
- Controllers: Rails 3 RESTful (Base)
- Routes: Rails 3
- Testing
 - RSpec
 - Cucumber
 - Capybara (replaces webrat)
 - Shoulda (optional)
 - Factorygirl/Mocha

Scaffold server app from YAML file:
Model, RESTful resource Routes, Controllers, Validations, Indexes and
Scopes (new Searchlogic gem?).
Have 2-way sync between YAML config and app code.

Once again, an interesting idea - but why would I want to fool around trying to say things in YAML that are better said in Ruby? Barring massive intervention like grokking S-expressions into YAML arrays, there's just too much that isn't expressible there: for instance, give me a YAML representation of a named_scope with a lambda (which is all of them, in Rails 3).

A few points in summary:

- the whole idea of configuring an app via a giant YAML file is revolting. It smells way to Enterprise-Javay for my tastes.

- Sproutcore is definitely something to watch, but there are some serious barriers to using it in many apps:

-- you end up repeating everything twice, once on the client side and once on the server. The YAML configuration envisioned above appears to be an attempt to address that, but there's still going to end up being bits that aren't covered and have to be maintained twice as a result.

-- as a corollary, the majority of business logic in the app is on the client. If you ever wanted to watch C-level execs clench their buttholes really fast, mention this. Rightly or not, there's still some paranoia about competitors "stealing the app".

-- the biggest issue facing JS client-side apps: IE6. It's still out there, and will continue to irritate decent web developers for at least the next few years. Between an incompatible and flaky DOM and the 15x slower JS, it's a serious issue.

-- the second biggest issue: the *back* button. No matter how many times you tell users, "don't click back", they'll do it. HTML5 promises some relief for this with better state tracking, but see the preceding point and add IE7's lack of support for HTML5 to the mess...

----

In summary, I'd agree with the idea that richer, client-powered apps are likely the future. Unfortunately, 90% of the businesses and nonprofits out there aren't even running on *today*; big chunks of the world are still being held together by Access DBs, giant cross-linked Excel files and Word documents CCed to everyone in a department. (Seriously - I just set up a Dropbox account for a small professional association who was actually doing the CCed Word docs thing!)

Anyways, I look forward to seeing what you come up with - despite the rest of this post, *somebody's* got to get away from the PHP fumes long enough to actually build the next wave of frameworks. :)

--Matt Jones


--
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en.

Reply via email to