

Five languages in seven lines, or how not to do web development - siong1987
http://docs.google.com/Doc?id=ddsmkn6m_46j7qxfct4

======
jcl
Truth be told, it's not too bad considering all it does. Each language is
being used for its strengths.

Programming at that level requires HTML and Javascript. Python is integrated
as part of Mako; calling them separate languages is valid but questionable.
(Given that the author is maximizing the number of languages, I'm a little
surprised jQuery wasn't included in the list.)

~~~
cake
I wouldn't call jQuery a language. jQuery is JavaScript.

~~~
jcl
jQuery is JavaScript in approximately the same way CLOS is Common Lisp. Sure,
jQuery is implemented in and uses JavaScript, but idiomatic jQuery differs
enough from idiomatic JavaScript that it might be considered another language.

...And, if that handwaving fails to convince you, jQuery's selector string
format is at least as much a language as the pager formatting string that
merits its own language in the article. :)

------
psadauskas
So in Rails best-practices, you'd still have 3 "languages", they'd just be
spread around in 3 files.

I'm a Haml fan, so I'd have a view template like:

    
    
      = paginate(@employees)
    
      %ul
        - @employees.each do |employee|
          %li
            = employee.first_name
            = employee.last_name
    

and then a helper to fill out the "paginate", or some plugin to handle it for
me, and finally an unobtrusive js file.

So I get 3 languages. The only real WTF I see here is the "onClick", and for
an example in some documentation about a framework, its forgivable. Could also
be broken up into separate files, because the pagination part is a bit complex
for a view. Again, though, its a documentation example, on the paginator
helper, no less.

------
s3graham
I think "$('#my-page-area')" is #6 actually (doing a CSS-style selector
probably via jQuery or something)

I'm not sure that it's "how not to do web development", but it's certainly
"this is common: what's a better way?".

------
datico
The point as I see it, normally one thinks of programming in "a" language, not
5-7 at once! Just imagine trying to rewrite this paragraph in multiple foreign
languages...let's see, nouns in Japanese, verbs in French, adjectives in
Russian, and the remainder in Taglish? Illustrates just how demanding web
development is. And consider, not only are there best practices to follow for
each real language, the conclusion reveals there must be implicit best
practices (or at least opinions) for mixing them as well.

------
thomasfl
Even when using serverside javascript, you still end up with at least 4
languages; javascript, html, css and occasional sql queries.

Rails is actually not that bad, letting you use ruby for everything from
javascript and html templates to sql queries and configuration. The future is
languages that can be tweaked to express anything like lisp, ruby, python,
groovy and one day also javascript.

------
gaika
Bug in parsing: line 2 is mostly javascript, not mako.

------
biohacker42
Python, JavaScript and HTML puts you at 3 and that's the least you need for
web development.

Or are you supposed to do nothing but back end in Python, or just HTML front
ends?

------
mcav
Nothing wrong with this example. Would you rather see XSLT? Really?

~~~
jrockway
There are other ways to build HTML without templating. Take a look at
Template::Refine, for example:

[http://search.cpan.org/~jrockway/Template-
Refine-0.02/lib/Te...](http://search.cpan.org/~jrockway/Template-
Refine-0.02/lib/Template/Refine/Cookbook/Interpolate.pod)

[http://search.cpan.org/~jrockway/Template-
Refine-0.02/lib/Te...](http://search.cpan.org/~jrockway/Template-
Refine-0.02/lib/Template/Refine/Cookbook/Attributes.pod)

(Those are two different examples, which is unclear due to news.yc's URL
truncation.)

------
axod
What's even more worrying is people posting here defending it. It's plain
ugly.

Call me old fashioned, but I'm pretty much a one language per file guy.

~~~
herval
I'm curious to know how do you do web development. Mind sharing?

------
bhiggins
yikes, missing two languages. everyone knows number of lines should equal
number of languages.

~~~
tlrobinson
Technically the first 3 lines have all five languages.

