Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Better than X
Happstack: The framework
formerly known as HAppS

   Presented February 10th, 2009
 Thomas Hartman and Matth...
A brief history of HAppS
                                                                    • Big Bang 2005
             ...
A Lonely 2008 for HAppS
            • Few commits
            • Low mailing list traffic
            • Hard to get help on...
Happstack Announced
• In 2009 Matthew Elder decides to rebrand
  HAppS as “Happstack”
• It turns out a lot of people want ...
It works!
How does it work?
• Happstack has a builtin HTTP Server
• Templating system agnostic (common
  choices are HSP and HString...
Why bother
     When we have:
     • Rails
     • Django
     • Zope
     • Catalyst
     • (…)?
Haskell is better than Ruby
           The Ruby claim to fame? terse and beautiful code

quicksort in Ruby
def quicksort(l...
Happstack is better than Rails
              Model
Rails                    Happstack


Object-Relational        No ORM ne...
Happstack is better than Rails
               View
Rails                  Happstack


ERB allows mixing      HStringTempla...
Happstack is better than Rails
            Controller
Rails                   Happstack


Scaffolding creates a   Composab...
Haskell is better than Ruby/Rails
              BUT . . .
Ruby programmers have jobs!
Clicks Per Day:
• Ruby: 1613
• Haske...
Haskell programmers need jobs!
               • Some Day . . .
               • Soon . . .
               • Haskell Devs w...
Rails Envy? Not us!
Clicks Per Day:
• Ruby: 1613
• Haskell: 69
• HAppS: Not enough data to give estimates
• PHP: 8672

 Th...
The End?
• Happstack may not really be better than
  everything, but we try.
• Patch-Tag and happstutorial are proof that
...
Upcoming SlideShare
Loading in …5
×

Better Than X

3,127 views

Published on

Better than X. Happstack: The framework formerly known as HAppS. Source: http://happstack.files.wordpress.com/2009/02/better-than-x.pdf

Published in: Technology
  • good on the rails comparison -- makes it more easy to frame and contextualize
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Better Than X

  1. 1. Better than X Happstack: The framework formerly known as HAppS Presented February 10th, 2009 Thomas Hartman and Matthew Elder 4760 Boelter Hall, UCLA campus
  2. 2. A brief history of HAppS • Big Bang 2005 • Alex Jacobson markets aggressively • Interest starts to wane in 2007 * For more information see http://www.reddit.com/r/haskell/comments/7ug41/mathew_elder_joins_patchtagcom_as_a_partner_the/c07frjk
  3. 3. A Lonely 2008 for HAppS • Few commits • Low mailing list traffic • Hard to get help on IRC • Happstutorial released
  4. 4. Happstack Announced • In 2009 Matthew Elder decides to rebrand HAppS as “Happstack” • It turns out a lot of people want to work on HAppS • Matthew Elder joins Patch-Tag as a partner
  5. 5. It works!
  6. 6. How does it work? • Happstack has a builtin HTTP Server • Templating system agnostic (common choices are HSP and HStringTemplate) • State is serialized to disk for durability (like MySQL) • Entire state is kept in ram for maximum performance (no memcached needed)* * This was inspired by Prevayler For more information see http://www.prevayler.org
  7. 7. Why bother When we have: • Rails • Django • Zope • Catalyst • (…)?
  8. 8. Haskell is better than Ruby The Ruby claim to fame? terse and beautiful code quicksort in Ruby def quicksort(list) return list if list.size <= 1 pivot = list.pop left, right = list.partition { |e| e < pivot } quicksort(left) + [pivot] + quicksort(right) end quicksort in Haskell qsort [] = [] qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs) Haskell Wins.
  9. 9. Happstack is better than Rails Model Rails Happstack Object-Relational No ORM needed, Native Impedance Mismatch datatypes via MACID Error-prone database Typesafe migration migration strategy strategy via MACID Database queries scale In-memory map lookups pretty good scale awesomely
  10. 10. Happstack is better than Rails View Rails Happstack ERB allows mixing HStringTemplate presentation and enforces separation of business logic Controller / View ERB does not prevent HSP guarantees well- malformed xml output formed XML
  11. 11. Happstack is better than Rails Controller Rails Happstack Scaffolding creates a Composable Server huge mess of Parts keep things simple unmaintainable code Routing logic is Routing logic is unnecessarily magic straightforward
  12. 12. Haskell is better than Ruby/Rails BUT . . . Ruby programmers have jobs! Clicks Per Day: • Ruby: 1613 • Haskell: 69 • HAppS: Not enough data to give estimates • Source: Google Adwords Estimator Ruby Wins.
  13. 13. Haskell programmers need jobs! • Some Day . . . • Soon . . . • Haskell Devs will be paid for developing webapps in Haskell • Instead of doing ruby/java/.net by day and Haskell by night
  14. 14. Rails Envy? Not us! Clicks Per Day: • Ruby: 1613 • Haskell: 69 • HAppS: Not enough data to give estimates • PHP: 8672 The real nemesis of Happstack is PHP.
  15. 15. The End? • Happstack may not really be better than everything, but we try. • Patch-Tag and happstutorial are proof that Happstack is usable today. • Visit the website: happstack.com • Join us on #happs on irc.freenode.net • OR http://groups.google.com/group/HAppS

×