[erlang-questions] Two beautiful programs - or web programming made easy
Alceste Scalas
alceste@REDACTED
Tue Feb 15 15:20:43 CET 2011
I just wanted to quote a few excerpts of Frédéric's emails,
because I completely agree with them (see below).
I think that if you want to develop good web applications, then
you need to know HTTP, and design the client-server interaction
around its principles and its stateless nature, i.e. following a
RESTful approach [1]. The user interface elements (HTML, CSS,
Javascript...) just come on top of it, and usually require
dedicated knowledge and experience in order to get them right.
I also think that everything which tries to circumvent the
HTTP/web architecture in order to "help" the programmer reach
from the server-side to the client-side is doomed to fail,
especially when scalability becomes an issue, either on the
developer side (more than a few programmers are expected to
work on a project) or the client side (more than a few users
are expected to interact with a web application).
Just to make a few examples, I'm referring to "cool" stuff like
continuation-based web frameworks from the Smalltalk/Lisp/Scheme
world, or automatic server-side Javascript generation (which
reminds me of automatic SQL schema or query generation: it
usually sucks, and thus it is hated and avoided by developers
and DB admins who are actually proficient in SQL).
IMHO, it is an error to focus on toy applications (and/or
single-user applications, like the Appmon) and assume that an
useful solution (at least from the POV of a single developer,
or a small group) could "scale up" to real-world application
development. When projects start this way, and they grow,
they usually need to be thrown away and rewritten ground-up.
Here's a famous example: a few years ago, Reddit was considered
a proof that "Lisp works", because it was a prominent web
application written in Lisp. When the user base grew, Reddit
was completely rewritten in Python [2]. This was considered a
"betrayal" by the Lisp community, and thus several developers
started to write "a Reddit clone in just 20 lines of Lisp".
Those were interesting exercises, but they didn't address any
of the problems of the first Reddit: they didn't scale,
didn't support templating, didn't support l10n or l18n,
dind't offer battleground-tested libraries...
From my experience, I can say that it's much better to
start from the complete and realistic scenario of a "real" web
application, and see if (and how) an approach that works at
this level could "scale down" and become "easy" in single-user,
single-developer scenarios. IMHO it's also the most effective
way to propose Erlang as a sound alternative for web
development.
References:
[1] http://en.wikipedia.org/wiki/Representational_State_Transfer
[2] http://blog.reddit.com/2005/12/on-lisp.html
On Mon, 14 Feb 2011 07:43:57 -0500, Frédéric Trottier-Hébert
<fred.hebert@REDACTED> wrote:
> The truth here is that most programmers are awful at design. In any
> somewhat large setup, your backend programmers, your designers and
> your integrators (the guys just handling HTML, and CSS, maybe some
> Javascript) are not necessarily the same person.
>
> Right now the ring of web technologies is divided in a way that makes
> it somewhat simple to have different people from different background
> and knowledges to work on different part of your software. It makes
> sense to have the designer or integrator to be able to change the
> look
> and feel of a website without having to play in your code and maybe
> mess up database queries. Modern template engines in fact try to
> forbid all kinds of seriously side-effecting code (like DB queries)
> from happening in the templates.
>
> There should be no worry for your guy working in Javascript that he'd
> not need to suddenly learn Erlang to be able to debug your
> application.
>
> Then again, this separation of concerns allows specialists to work on
> their speciality with more ease. It makes things somewhat simpler in
> larger organisations, but quite painful for one-man operations. I'll
> tell you that it makes a lot of sense when you know all of the tools
> in the toolkit though :)
On Mon, 14 Feb 2011 20:50:11 -0500, Frédéric Trottier-Hébert
<fred.hebert@REDACTED> wrote:
> There is nothing wrong with what Joe is doing. There is nothing wrong
> with exploration. However, things already exist in Javascript and on
> the web in general and we shouldn't reinvent the wheel all the time
> because we might be coming from a different domain or we don't have
> the same experience as real web developers have.
--
Alceste Scalas <alceste@REDACTED>
More information about the erlang-questions
mailing list