2012/11/8 Sankrant Chaubey <sankrant.chau...@gmail.com>

> Clojure runs on multiple platforms namely the JVM, CLR and Javascript, but
> the ecosystem in all these mentioned platforms is quite different from each
> other; i.e the process of thinking methodologies change when working with
> different kinds of environments. I work mainly with the JVM implementation,
> but I have to constantly write in the browser too, and believe me clojure
> in the browser dosen't feel like that on the machine.
>

I write a lot of Clojure and ClojureScript too. In my experience the
language feels pretty much the same. Of course, the way I develop differs
due to differences in runtime, tooling and APIs.

What I really want is, to focus on *the one primary implementation* guaranteed
> to be supported as is in the future.
>

I'm not the one to call what Clojure does or doesn't guarantee. I would
certainly expect to see Clojure and Clojurescript remain useable for the
forseeable future.


> Will the JVM remain the primary implementation in the future? Even after
> Clojure-in-Clojure? Does Clojure-CLR, and Clojurescript compete with
> Clojure?
>

I don't see competition rather than serving different ecosystems. Of course
you could develop a given application in either JVM Clojure or
ClojureScript on NodeJS, but the driving consideration there would be which
platform you would rather use, not which variant of Clojure.

I think most of those concerns disappear when you consider the following:
Clojure isn't a platform. The language is designed with the intent of being
as transparent towards the underlying platform as possible. In practice
this means: The dot interop form is utterly platform dependent. No
'wrapping' or 'portable base classes' whatsoever.

Fortunately all the other forms work the same on all platforms (modulo some
like tag metadata or numerics). This, in turn, means that code that doesn't
do interop (i.e. algorithmic code) will run as is.
This has been reported for core libs like clojure.zip. I have experienced
it myself when porting enlive to clojurescript. It works.

So say, we had Clojure-in-Clojure and hence a new JVM backend. I see no
reason to make incompatible changes to the dot form, or any metadata.

To note, I have no dependency on any platform... I just ask this, because
> 'porting stuff from python to python3', is what I don't want to do again in
> future....
>

Python 3 is a slightly different matter. It was an overhaul of the language
and a chance to make incompatible changes. There are a few of those waiting
for Clojure 2: http://dev.clojure.org/display/design/Wart+Removal

- Giving builtin forms a namespace
- Maybe overhauling the ns form?

Supposedly such changes would happen simultaneously on all variants of
Clojure. There have been efforts to keep Clojure and ClojureScript in sync
syntactically (see (.-prop o))

-- 
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

Reply via email to