raganwald
(This is a snapshot of my old weblog. New posts and selected republished essays can be found at raganwald.com.)

Wednesday, July 18, 2007
  Bill de hÓra on Designing for the Web


The relative verbosity of programming languages isn’t the interesting thing; nor is typing doctrine. What’s interesting is the culture of frameworks and what different communities deem valuable.

My sense of it is that on Java, too many web frameworks—think JSF, or Struts 1.x—consider the Web something you work around using software patterns. The goal is get off the web, and back into middleware. Whereas a framework like Django or Rails is purpose-built for the Web; integrating with the internal enterprise is a non-goal...

There are so many things frameworks like Rails/Django do ranging from architectural patterns around state management, to URL design, to testing, to template dispatching, to result pagination, right down to table coloring that the cumulative effect on productivity is startling. I suspect designing for the Web instead of around it is at least as important as language choice.

It’s hard to explain sometimes just how time-consuming it can be to get Web things done on some Java frameworks.

&mdash Bill de hÓra, Design for the Web
 

Comments on “Bill de hÓra on Designing for the Web:
I take -strong- exception to this view of condemning a programming language because of sucky libraries. The libraries in question here are simply the 'grandfathers'. Rails wouldn't be rails if Struts and JSF hadn't gone before, to highlight what works, and mostly, to highlight what does not. Standing on the shoulders of giants and what not.

Of course, established frameworks don't just go away without a 'fight' - so the fact that those older frameworks are still around is no slight to the language or the community that spawned them.

Take a look at GWT, for example. A completely new idea (at least relatively speaking), that hasn't just been focussed on java, but builds on java's unique strengths. GWT is a 'closed environment' - the compiled result makes the assumption that no further libraries or code ever enters the system. This kind of thing requires static code analysis and is thus impossible in languages that lean heavily on dynamic meta programming - turing's halting problem is rather annoying in that way.

Now, that's my opinion on the idea.

If I may comment on Bill de hOra's post, and in particular your quote, it's much, much worse.

Take, for example, the use of "Struts 1.x". I don't know much about struts, I've pretty much skipped the whole J2EE stuff, but struts 1 has been retired specifically because new versions are better. That's the way of technology; it improves!
 




<< Home
Reg Braithwaite


Recent Writing
Homoiconic Technical Writing / raganwald.posterous.com

Books
What I‘ve Learned From Failure / Kestrels, Quirky Birds, and Hopeless Egocentricity

Share
rewrite_rails / andand / unfold.rb / string_to_proc.rb / dsl_and_let.rb / comprehension.rb / lazy_lists.rb

Beauty
IS-STRICTLY-EQUIVALENT-TO-A / Spaghetti-Western Coding / Golf is a good program spoiled / Programming conventions as signals / Not all functions should be object methods

The Not So Big Software Design / Writing programs for people to read / Why Why Functional Programming Matters Matters / But Y would I want to do a thing like this?

Work
The single most important thing you must do to improve your programming career / The Naïve Approach to Hiring People / No Disrespect / Take control of your interview / Three tips for getting a job through a recruiter / My favourite interview question

Management
Exception Handling in Software Development / What if powerful languages and idioms only work for small teams? / Bricks / Which theory fits the evidence? / Still failing, still learning / What I’ve learned from failure

Notation
The unary ampersand in Ruby / (1..100).inject(&:+) / The challenge of teaching yourself a programming language / The significance of the meta-circular interpreter / Block-Structured Javascript / Haskell, Ruby and Infinity / Closures and Higher-Order Functions

Opinion
Why Apple is more expensive than Amazon / Why we are the biggest obstacles to our own growth / Is software the documentation of business process mistakes? / We have lost control of the apparatus / What I’ve Learned From Sales I, II, III

Whimsey
The Narcissism of Small Code Differences / Billy Martin’s Technique for Managing his Manager / Three stories about The Tao / Programming Language Stories / Why You Need a Degree to Work For BigCo

History
06/04 / 07/04 / 08/04 / 09/04 / 10/04 / 11/04 / 12/04 / 01/05 / 02/05 / 03/05 / 04/05 / 06/05 / 07/05 / 08/05 / 09/05 / 10/05 / 11/05 / 01/06 / 02/06 / 03/06 / 04/06 / 05/06 / 06/06 / 07/06 / 08/06 / 09/06 / 10/06 / 11/06 / 12/06 / 01/07 / 02/07 / 03/07 / 04/07 / 05/07 / 06/07 / 07/07 / 08/07 / 09/07 / 10/07 / 11/07 / 12/07 / 01/08 / 02/08 / 03/08 / 04/08 / 05/08 / 06/08 / 07/08 /