My understanding though is that most of the statements I made also apply in CL though my impression at least from the point of view of scientific computation is that Julia's community is more energetic than CL's. Certainly Julia still has lessons to learn from CL though.
Source: I do computational biology with Julia, hobby projects in Common Lisp.
http://p-cos.blogspot.com/2014/07/a-lispers-first-impression...
I’d like to come back to CL at some point though and gain some proficiency as I think there’s a lot in CL left for Julia to learn from.
Sorry, couldn't figure this out from your comment whether you prefer Julia or some other language for doing the prototype and full implementation. If you can clarify this explicity, it would be helpful.
I find this approach to be straight up superior to the usual pattern where one starts out in a slow dynamic language to build the prototype and then either replaces certain functions with interop calls to a fast language (losing all the features that brought you to your dynamic language in the first place!) or straight up replacing your entire prototype with a production version written in your fast language and providing bindings to your slow language.
It just seems so unnecessary when you have a language where you can start out in a highly interactive state that seems a lot like Python or Matlab but then you can seamlessly start optimizing or generalizing functions and end up with something that runs basically as fast as C but retains all the dynamic advantages from the prototyping phase.
Yes, Julia's namespace isn't as polluted as Mathematica's is and I think that's a good thing. It's got an amazingly vibrant package ecosystem and packages are treated on such a first class level that as soon as you load a (well made) package, it composes so well with everything else, including other packages that it feels built in. I've never really felt like I was 'writing some shim' to utilize code from a julia package.