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,092 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
1 Comment
1 Like
Statistics
Notes
  • 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
No Downloads
Views
Total views
3,092
On SlideShare
0
From Embeds
0
Number of Embeds
1,545
Actions
Shares
0
Downloads
14
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

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

×