Skip to content

Commit

Permalink
[doc] book: big blob of changes
Browse files Browse the repository at this point in the history
  • Loading branch information
François-Régis Sinot committed Sep 8, 2011
1 parent 0a61ab3 commit 3c855e0
Show file tree
Hide file tree
Showing 9 changed files with 290 additions and 182 deletions.
45 changes: 23 additions & 22 deletions doc/book/about.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,40 +7,41 @@ myriads of applications. Web applications and technologies available
to developers have evolved tremendously since the first days of the
web.

Opa is a new generation of web development platform that let you write
distributed web applications using a single technology. Throughout
the pages of this book, we will introduce you to all to the many
features of Opa. To quote but a few, Opa is concise, simple,
Opa is a new generation of web development platform that lets you
write distributed web applications using a single technology.
Throughout the pages of this book, we will introduce you to the
many features of Opa. To quote but a few, Opa is concise, simple,
concurrent, dynamically distributed, and secure.


What problem does Opa solve?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Unfortunately, the process of web application development has evolved
neither quite as far nor nearly as fast. Indeed, developing a web
application in 2011 is not so different from developing a PC
application in 1991: an impressive amount of developer time is spent
not working on features or improvements but on _gluing_ together
antagonist technologies that were never designed to quite work
together or in this context. In 1991, the technologies were the
various hardware components, the low-level operating system, the
high-level operating system and the memory itself, which could only be
hacked into compliance through copious amounts of machine code. Per
se, none of these technologies was wrong, but they just failed to fit
together -- a problem now known as _impedence mismatch_.
The web is evolving at a very fast pace. Unfortunately, the _process_
of web application development has evolved neither quite as far, nor
nearly as fast. Indeed, developing a web application in 2011 is not so
different from developing a PC application in 1991: an impressive
amount of developer time is spent not working on features or
improvements but on _gluing_ together antagonist technologies that
were never designed to work together or in this context. In 1991, the
technologies were the various hardware components, the low-level
operating system, the high-level operating system and the memory
itself, which could only be hacked into compliance through copious
amounts of machine code. Per se, none of these technologies was wrong,
but they just failed to fit together -- a problem now known as
_impedance mismatch_.

Today, the technologies involved include the various incompatible
browsers, the server components or the database components, to quote
but a few. As in 1991, none of these technologies is wrong, but they
do not fit together. Because of this impedence mismatch, developers
do not fit together. Because of this impedance mismatch, developers
need to add to their application logic copious amounts of glue code
just to get the components to agree on communication mechanisms and
application-level protocols. Not only is this glue code tedious,
repetitive and error-prone, but this is also where most safety and
security issues arise.

In 1991, the answer to impedence mismatch was Software Development
In 1991, the answer to impedance mismatch was Software Development
Kits, and indeed these SDKs proved very useful at allowing developers
to develop anything at all, but failed to address the underlying
issues. This was only achieved later, through better operating
Expand All @@ -49,8 +50,8 @@ Platform, C#, Objective-C or Python, for instance.

In 2011, web frameworks, both client-side and server-side, have the
same role as the SDKs of the 1991s, with the same success but also the
same shortcomings. But the problem remains: Building applications is
hackish, relies on glue code and is barely reusable.
same shortcomings. But the problem remains: Building web applications
is hackish, relies on glue code and is barely reusable.


How Opa solves it
Expand All @@ -67,7 +68,7 @@ Opa is a programming language and a standard library comprising a
database management system, a web server, a server-side framework, a
client-side framework, a distribution middleware, a security audit
tool, but without the complexity of deployment, administration, or
impedence mismatch stemming from the use of many different
impedance mismatch stemming from the use of many different
technologies.

Developing with Opa is as simple as it gets: First, write your code
Expand Down Expand Up @@ -212,7 +213,7 @@ If you have any question or feedback, do not hesitate to contact us.
A few ways to get in touch:

- Opa https://lists.owasp.org/mailman/listinfo/opa[mailing list];
- http://stackoverflow.com[Stack Overflow], an excellent site for seeking
- http://stackoverflow.com/questions/tagged/opa[Stack Overflow], an excellent site for seeking
help with programming problems (do not forget to mark Opa related questions with
the ``Opa'' tag);
- through http://twitter.com/opalang[Twitter], as opalang.
Expand Down
2 changes: 1 addition & 1 deletion doc/book/asciidoc.conf
Original file line number Diff line number Diff line change
Expand Up @@ -131,4 +131,4 @@ filter=source-highlight -f {backend-xhtml11?xhtml}{backend-html4?html}{backend-d
\\<\==<=

# Opa
OPA==Opa
OPA=Opa
Loading

0 comments on commit 3c855e0

Please sign in to comment.