This idea's been on my mind lately: could Clojure be used as a unifying 
force for all those disparate file formats and frameworks like:
- XML / XLink / XPointer / XQuery,
- JSON,
- HTML / XHTML,
- CSS,
- JavaScript / jQuery,
- Flash (SVG/ActionScript),
- SQL,
- and (of course) Java?

As a disclaimer, I'm no expert on all of these things I'm listing. But my 
thoughts go like this.
- XML and JSON are roughly equivalent.
  - HTML, XHTML, and SVG are subsets of XML.
  - *These "data storage" filetypes are equivalent to Clojure data 
structures like vectors, symbols, keywords, lists, maps, etc. and could 
theoretically be reduced to Clojure S-expressions.*
- Java, JavaScript, and ActionScript all play roughly the same role.
  - Some aspects of their libraries overlap with XML navigation and 
manipulation functions (XLink / XPointer / XQuery).
  - *Clojure covers what these languages aim for. It has direct access to 
Java libraries and the Clojure to JavaScript compiler has already been 
written, so further interop with ActionScript/Flash shouldn't be too 
terribly difficult (there's already a port on GitHub 
here<https://github.com/aemoncannon/las3r/wiki>
).*
- *SQL is a subset of Clojure. It just uses operations on the equivalent of 
Clojure data structures.*
*- *Probably other languages can be included in this set of which Clojure 
is a superset.

As it gains more popularity and notoriety, Clojure could be used 
side-by-side with and eventually in place of all of the above filetypes and 
frameworks I mentioned (and more). Say goodbye to 15 different Web 
technologies and hello to one, much better, more powerful one that envelops 
all of them.

Of course, I think my parade is going to get rained on. Clojure runs on the 
JVM and we've already said goodbye to Java applets long ago. So maybe a 
workaround would be to compile Clojure to a hundred little 
XML/HTML/CSS/SQL/JavaScript files, but to really only code in Clojure.

But not having to compile it would be nice. Think about it: with Clojure 
macros, you can have self-optimizing code, which would make for a 
self-optimizing web. Clojure running on the JVM would mean fairly easy 
concurrency, which would speed up video streaming/processing and (Clojure 
ported) Flash media significantly, especially as Moore's Law kicks in with 
multicore processors.

Thoughts?

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to