What The Stack?!(*)

Had this idea to do an overview of modern Web technologies, to try and get a grip on the quickly evolving state of the art… Must be a Wiki, but where and how to do it?

(* Apologies for the vituperation, and exclamation marks, but that's precisely how I feel about it! ;o)

Scope

Worldwide Web (WWW): essentially HTTP and HTML (or DOM), as a ubiquitous (lowest common denominator?) platform, as opposed to the Internet as it existed long before the Web, or emerging extensions (digressions?) — AJAX, canvas, browser plugins, RESTful APIs, etc.

Focus

Used to organize topics by topology, but it doesn't seem a useful typology (ha!) anymore. The evolution/ary forces/issues that interest me relate to the software engineering process, the software development lifecycle… and "real world" applicability.

Topics

  1. Foundations
    1. HTML: sucks. (Not as horribly as XML — a historical mistake — but still yucky.)
      1. HAML (and SASS, LESS?) instead of templates (engines, languages, tag libraries…)
      2. DOM: OK, sort of. I mean, twenty (20!) years ago we had (er, were promised) OpenDoc, et al, and… HTML is what we've come to? WTF?
        1. (Google) Wave?
    2. HTTP
      1. Caching
      2. Multipart trick (in the response!), etc
      3. REST (Much ado about nothing…)
      4. Hosting: URLs, shared hosting, DNS, HTTP "host" header, Apache (ugh)…
    3. CSS?
    4. Semantic Web: nu? Will it ever?
      1. Scraping for scraps
      2. RDFa, SPARQL…
  2. Architecture
    1. CGI, FastCGI… WSGI/PSGI…: efficiency, concurrency? Node.js?
    2. AJAX: jQuery. Rumors of (yet another?) impending demise of (server side) frameworks? (Django, Rails, Catalyst, Node.js…)
    3. Scalability: Memcached, Nginx, Node.js, Unicorn?
    4. GAE
    5. NoSQL!
  3. Client side? jQuery! Bespin? Does it work?
  4. Frameworks? Eco systems!
    1. WSGI middleware — bah, Unix pipes again.
    2. Django, WordPress, Drupal, Rails, Dancer…
  5. "Quality of service"
    1. Performance: see scalability.
    2. Deployment? Capistrano, Fabric…
  6. Software engineering
    1. Programming languages (PL)
      1. Python: best so far, but, what next? I'd love to see PLs die! (What, as in CASE, UML… again?!)
      2. Ruby? Really cute. So?
      3. Perl6? Interesting, but ugh.
      4. JavaScript: forever misunderstood… (Prototype oriented. Enough with the type systems, already!)
    2. Testing
    3. NoSQL: because we want object models!
  7. And Web 2.0 trends, of course, eg, rounded corners. (Just kidding! ;o)

And more…

AMQP, AWS S3, Metric_fu, Plack, Passenger, Rack, Rake, REST, Sinatra, Unicorn, URL, Virtualenv, Vlad, 960 pixels…


Notes

  1. See my blog posts about WordPress.

(Appending notes disabled temporarily.)


Last modified 2010-12-25 01:52:08 +0000