Re: Will the JVM will always likely, remain the primary Clojure implementation ?

606 views
Skip to first unread message

Michael Klishin

unread,
Dec 27, 2012, 6:41:41 AM12/27/12
to clo...@googlegroups.com
2012/12/27 Sukh Singh <suckh...@gmail.com>
From the above statements, can I say that  
 
the JVM will always likely, remain the primary Clojure implementation ?

The answer is: nobody will give you a definitive answer. This is open source software, "primary" implementations
are not "assigned", they are what people actually adopt.

Marko Topolnik

unread,
Dec 27, 2012, 7:09:21 AM12/27/12
to clo...@googlegroups.com
Clojure is in many ways bound to the specifics of the Java platform:
  • no tail-call optimization;
  • adopts Java String and Java regex;
  • special handling of Java primitives and arrays;
  • and so on.
All the libraries already depend on those specifics, so it's not just the language, but the whole ecosystem. 

Therefore, the underlying platform is nowhere near an abstracted-away implementation detail. Clojure on another platform is not the same language anymore; it's just a set of language features that share the spirit of Clojure. This means that the changing of the dominating platform will, if it ever happens, be a gradual process and not a sudden shift. There is a much higher chance of another language emerging on another platform, that may choose to adopt certain key features of Clojure, but is otherwise a completely different language.

On Thursday, December 27, 2012 12:26:52 PM UTC+1, Sukh Singh wrote:

 
Hi,

I have noticed that this question is randomly appearing in many minds, and it is frequently being asked, though there is no apparent reason on why it is asked :/ or maybe people are unable to pen down the exact reasons, and sad to say, even myself.
 
There are reasons for which I ask this question ->
  •     People (Majority) tend to stick with the primary implementations of certain multi-implementation software. And in the case of Clojure, the  JVM implementation is the primary implementation now.
          
  •     Having a primary implementation in case of BDFL lead software helps as a glue in the community. For example , CPython is the primary python implementation, even if there is an existance of IronPython or JPython.

  •     The doubts of many, including me, will be cleared by an abstract answer... That 'many' also include the companies adopting something new, in this particular case, adopting clojure....
 
QUESTION
 
Rich Hickey chose JVM as the platform of choice when he invented Clojure. It's
community developed set of tools and documentation grew around the JVM (Leiningen, for example).
 
From the above statements, can I say that  
 
the JVM will always likely, remain the primary Clojure implementation ?


Thank You.
 
 
 
 

Sukh Singh

unread,
Dec 27, 2012, 10:00:11 AM12/27/12
to Clojure
Maybe, Mr Rich Hickey could answer this....

On Dec 27, 4:41 pm, Michael Klishin <michael.s.klis...@gmail.com>
wrote:
> 2012/12/27 Sukh Singh <suckhsi...@gmail.com>
>
> > From the above statements, can I say that
>
> > *the JVM will always likely, remain the primary Clojure implementation* ?

Sukh Singh

unread,
Dec 27, 2012, 10:01:47 AM12/27/12
to Clojure
Maybe, Rich Hickey could answer this question...

On Dec 27, 4:41 pm, Michael Klishin <michael.s.klis...@gmail.com>
wrote:
> 2012/12/27 Sukh Singh <suckhsi...@gmail.com>
>
> > From the above statements, can I say that
>
> > *the JVM will always likely, remain the primary Clojure implementation* ?
>
> The answer is: nobody will give you a definitive answer. This is open
> source software, "primary" implementations
> are not "assigned", they are what people actually adopt.
>

Sukh Singh

unread,
Dec 27, 2012, 11:55:50 PM12/27/12
to Clojure
Is there any chance of clojure community abandoning the JVM as the
primary plaform in the future?

On Dec 27, 4:41 pm, Michael Klishin <michael.s.klis...@gmail.com>
wrote:
> 2012/12/27 Sukh Singh <suckhsi...@gmail.com>
>
> > From the above statements, can I say that
>
> > *the JVM will always likely, remain the primary Clojure implementation* ?
>
> The answer is: nobody will give you a definitive answer. This is open
> source software, "primary" implementations
> are not "assigned", they are what people actually adopt.
>

Leon Adler

unread,
Dec 28, 2012, 1:20:45 AM12/28/12
to Clojure
'Always' is not the right term to ask this question. I have the same
question, but it could be asked with the better choice of words.

Leon

On Dec 27, 4:26 pm, Sukh Singh <suckhsi...@gmail.com> wrote:
> Hi,
>
> I have noticed that this question is randomly appearing in many minds, and
> it is frequently being asked, though there is no apparent reason on why it
> is asked :/ or maybe people are unable to pen down the exact reasons, and
> sad to say, even myself.
>
> There are reasons for which I ask this question ->
>
> - People (Majority) tend to stick with the primary implementations
> of certain multi-implementation software. And in the case of Clojure, the
> JVM implementation is the primary implementation now.
>
> - Having a primary implementation in case of BDFL lead software
> helps as a glue in the community. For example , CPython is the primary
> python implementation, even if there is an existance of IronPython or
> JPython.
>
> - The doubts of many, including me, will be cleared by an abstract
> answer... That 'many' also include the companies adopting something new, in
> this particular case, adopting clojure....
>
> *QUESTION*
>
> Rich Hickey chose JVM as the platform of choice when he invented Clojure.
> It's
> community developed set of tools and documentation grew around the JVM
> (Leiningen, for example).
>
> From the above statements, can I say that
>
> *the JVM will always likely, remain the primary Clojure implementation* ?
>
> Thank You.

Stephen Compall

unread,
Dec 28, 2012, 11:45:53 AM12/28/12
to clo...@googlegroups.com

On Dec 27, 2012 11:55 PM, "Sukh Singh" <suckh...@gmail.com> wrote:
> Is there any chance of clojure community abandoning the JVM as the
> primary plaform in the future?

Yes.

Who knows what machines lurk in the hearts of programmers?

--
Stephen Compall
If anyone in the MSA is online, you should watch this flythrough.

Jay Fields

unread,
Dec 28, 2012, 11:54:33 AM12/28/12
to clo...@googlegroups.com
It might help if you told us why you're asking this question. My guess
would be that you want to introduce Clojure, but you're afraid of
backing yourself into a corner if it begins to die off. If that is the
case, I think choosing to adopt is a safe choice (I've made the same
choice, and many others have as well). If you have another motivation
for your question, you should probably share it.

As far as Rich commiting to a platform, why would he? Who knows that
Oracle will do with the JVM? Who knows what Rich will do with his life
(what if he wanted to dedicate all his time to Datomic?) Why would he
want to commit to anything? Clojure is viable now and available now,
but no one knows what the future holds.

You aren't likely to get commitments, so you have to make the safest
bet given the current information. Currently, Clojure is JVM first.
Smart money says it will be for the foreseeable future, but nothing is
or will ever be guaranteed. If you *need* a guarantee, you probably
shouldn't adopt Clojure. If there's a better option than the JVM,
Clojure may move, and so will most of us. We want to deliver software
- not dedicate ourselves to a specific VM. However, if you're
comfortable making a safe bet, then Clojure+JVM are likely to be
around for a very long time.
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@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+u...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en

Softaddicts

unread,
Dec 28, 2012, 12:25:21 PM12/28/12
to clo...@googlegroups.com
Given the number of JVM implementations available, I think you can qualify this
as a low risk for the near future.

If I would have to move our 15,000 lines code base away from the JVM, I would
be able to do it in about four months. Most of that time would be spent finding
replaçements for some Java libs with a little interop remodeling.

What would be my target ? Probably CLR since it is close to the JVM implementation. JavaScript will be an option in a more distant future.

Like others said, nothings is as still as stone in the software world, otherwise
things like Clojure would not even exists, we would still be rolling on square
weels...

Luc
> > -- > You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@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+u...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
--
Softaddicts<lprefo...@softaddicts.ca> sent by ibisMail from my ipad!

Eric MacAdie

unread,
Dec 28, 2012, 12:38:00 PM12/28/12
to clo...@googlegroups.com
Also: Isn't the JVM open source?

- Eric MacAdie

Softaddicts

unread,
Dec 28, 2012, 12:57:55 PM12/28/12
to clo...@googlegroups.com
OpenJDK is.

Marko Topolnik

unread,
Dec 28, 2012, 4:08:01 PM12/28/12
to clo...@googlegroups.com
If I would have to move our 15,000 lines code base away from the JVM, I would 
be able to do it in about four months. Most of that time would be spent finding
replacements for some Java libs with a little interop remodeling.

You would also have to wait for each and every Clojure library you depend on to do the same.

If you had any optimized code relying on primitives/arrays, you'd probably be looking at a full rewrite to whatever gives performance on the new platform (this takes a lot of time and experience with the platform). The same applies to all other libraries. With CLR you may get by easily just because it is such a close match to the JVM. With JavaScript, no way.
 
Like others said, nothings is as still as stone in the software world, otherwise 
things like Clojure would not even exists, we would still be rolling on square
wheels...

 My prediction is, Clojure dies with the JVM. This will not happen any time soon and when it does, there will be other exciting languages around, sharing much of the spirit with Clojure. If Clojure migrates to another platform, it will be an effort strictly by -- and for -- the hard-core (and old-school, by then) Clojure afficionados.

David Nolen

unread,
Dec 28, 2012, 4:14:52 PM12/28/12
to clojure
On Fri, Dec 28, 2012 at 4:08 PM, Marko Topolnik <marko.t...@gmail.com> wrote:
If you had any optimized code relying on primitives/arrays, you'd probably be looking at a full rewrite to whatever gives performance on the new platform (this takes a lot of time and experience with the platform). The same applies to all other libraries. With CLR you may get by easily just because it is such a close match to the JVM. With JavaScript, no way.

In my experience the code style that is fast on Clojure JVM is fast for ClojureScript.

Also I suspect by Clojure/conj 2013 if not sooner you'll see a bootstrappable ClojureScript for those people who don't need the concurrency features yet could benefit from a JVM-less Clojure.

David

Softaddicts

unread,
Dec 28, 2012, 7:54:04 PM12/28/12
to clo...@googlegroups.com
You are quite wrong in asserting how our software is written.

Most of the clojure libs we refer to are layers around a Java lib.
When I state that we would have to move away from these in four months,
it includes these layers and a replacement for the Java libs.

On top of that we have isolation layers between our core and a few Java
libs. As far as performance critical code, we stay away from this type of tuning.
Our business domain allows us to do that plus an early decision to stay
away from Java in our core as much as possible.

As for waiting for these libs to show up by themselves, no way, we would take
things in our hands as soon as such a move would be required.

For any project your mileage may vary but I stated in my post that this depends
on your reliance on interop. If it's everywhere in your code then such a move
requires more work obviously.

Luc P.
>
> >
> > If I would have to move our 15,000 lines code base away from the JVM, I
> > would
>
> be able to do it in about four months. Most of that time would be spent
> > finding
> > replacements for some Java libs with a little interop remodeling.
> >
>
> You would also have to wait for each and every Clojure library you depen on to do the same.
>
> If you had any optimized code relying on primitives/arrays, you'd probably
> be looking at a full rewrite to whatever gives performance on the new
> platform (this takes a lot of time and experience with the platform). Th
> same applies to all other libraries. With CLR you may get by easily just
> because it is such a close match to the JVM. With JavaScript, no way.
>
>
> > Like others said, nothings is as still as stone in the software world,
> > otherwise
> > things like Clojure would not even exists, we would still be rolling on
> > square
> > wheels...
> >
>
> My prediction is, Clojure dies with the JVM. This will not happen any time
> soon and when it does, there will be other exciting languages around,
> sharing much of the spirit with Clojure. If Clojure migrates to another
> platform, it will be an effort strictly by -- and for -- the hard-core (and
> old-school, by then) Clojure afficionados.
>

Sukh Singh

unread,
Dec 29, 2012, 5:23:12 AM12/29/12
to clo...@googlegroups.com
Having read the posts all over again, can I say that the JVM will remain the primary target/platform for Clojure, while Oracle remains good i.e. it doesn't get Barmy ? Isn't that unforeseeable?


On Thursday, December 27, 2012 4:56:52 PM UTC+5:30, Sukh Singh wrote:

 
Hi,

I have noticed that this question is randomly appearing in many minds, and it is frequently being asked, though there is no apparent reason on why it is asked :/ or maybe people are unable to pen down the exact reasons, and sad to say, even myself.
 
There are reasons for which I ask this question ->
  •     People (Majority) tend to stick with the primary implementations of certain multi-implementation software. And in the case of Clojure, the  JVM implementation is the primary implementation now.
          
  •     Having a primary implementation in case of BDFL lead software helps as a glue in the community. For example , CPython is the primary python implementation, even if there is an existance of IronPython or JPython.

  •     The doubts of many, including me, will be cleared by an abstract answer... That 'many' also include the companies adopting something new, in this particular case, adopting clojure....
     
    QUESTION

     
    Rich Hickey chose JVM as the platform of choice when he invented Clojure. It's
    community developed set of tools and documentation grew around the JVM (Leiningen, for example).
     
    From the above statements, can I say that  
     
    the JVM will always likely, remain the primary Clojure implementation ?


    Thank You.
     
     
     
     

    Leon Adler

    unread,
    Dec 29, 2012, 5:58:35 AM12/29/12
    to clo...@googlegroups.com
    That's unforeseeable because, that represents a very long time.

    Having said that, this statement deserves a resay...

    The JVM will remain the primary target/platform for Clojure, while Oracle remains good i.e. it doesn't get Barmy.

    What say the other people?

    Andy Fingerhut

    unread,
    Dec 29, 2012, 11:25:47 AM12/29/12
    to clo...@googlegroups.com
    If you don't get a flood of responses, I think it is because in this thread and the one linked earlier that Leon Adler started, several different people have explained evidence that Clojure on the JVM has had active development for five years, it is open source, and no one knows of any evidence that this will change any time in the future.  That isn't the same as saying "will remain", but it is the best anyone can give you that is based on evidence and reason, rather than some other dubious methods.

    If you believe another language will give you better assurances than that about its future target/platform, I don't see how you came to that conclusion, unless it is by making up conclusions out of thin air.

    Andy

    Softaddicts

    unread,
    Dec 29, 2012, 11:49:39 PM12/29/12
    to clo...@googlegroups.com
    If longevity is your top most concern, I have a suggestion here:

    http://www.itarchitectforumblog.com/content/application_development/cobol_dead_language_rising.html

    And if you do not think it's all around us:

    http://itsacobolworld.blogspot.ca/?m=1

    This thing has been alive and kicking since the 60s and has it seems a bright future.

    However, do not expect to do anything significant under 15000 locs per code
    units (aka namespace) or to become functional any time soon :)))

    Life is made of compromises...

    Luc P.

    Softaddicts

    unread,
    Dec 30, 2012, 1:12:44 PM12/30/12
    to clo...@googlegroups.com
    IDE tools also picked up the trend !

    http://itsacobolworld.blogspot.ca/2012/12/free-mainframe-cobol-developer-ide.html?m=1

    Happy New Year Cobol fans !

    :)
    Reply all
    Reply to author
    Forward
    0 new messages