Absolutely happy with my choice of Clojure as a startup (doing data science, analytics, some front-end work). Biggest wins for us are: - ClojureScript / figwheel as an awesome front end development combination. - The…
Clojure on the back end and ClojureScript on the front end. Some reasons: 1. It's a proper full-stack solution. You can share code between client and server if you need to. 2. There is some amazing front end technology…
This is great stuff, but it should really be designed as a core.matrix implementation rather than providing it's own API. The last thing the Clojure community needs is fragmentation with more incompatible libraries.
Silverline Mobile (http://silverline.mobi/) uses Clojure in production - managing data from sensors installed in the homes of senior citizens in Singapore.
We're using Clojure in production at Datacraft (http://www.datacraft.sg). Main usage is on the server side: for web applications, APIs and data analytics back ends.
I'm actually trying to address this in my current language experiment: https://github.com/mikera/kiss The idea: add static types to Clojure without compromising on the dynamism / flexibility / convenience
IMHO Clojure's omission of reader macros is sensible: it prevents proliferation of custom syntax, which makes it harder for a human to read code and reason about reader behaviour. The Clojure reader also already has its…
Also I would guess that people who like Clojure's philosophy are much more likely to build simple / loosely coupled / composable services than a big monolithic project.
Agree with everything you say, but it is worth noting that the insights you get from static analysis on desugared forms (which can be very large and complex!) is much harder to interpret than static analysis on the…
The problem is the design paradigm where you enforce an arbitrary fixed hierarchy on real-world data. This doesn't work for several reasons: * In the real world there are multiple overlapping hierarchies, which have…
It concerns me when people confuse the idea of gender equality and rights (which I think most reasonable people agree is a good thing) with the idea that men and women's lives have to be the same in all aspects. I think…
Erlang has a very nice concurrency approach, particularly if you are into distributed and fault tolerant systems. But it's ridiculous to say that "only Erlang can do concurrency". Many other languages do concurrency…
vectorz-clj has sparse vector support.... it's bit of an hidden feature at the moment (you'll have to use Java interop to instantiate a SparseIndexedVector) but it works and is pretty fast for many operations.
You've just pretty much described the motivation for core.matrix: it's an API that wraps various other back end vector/matrix libraries (including JBlas etc.) with a nice, standard Clojure API.
core.matrix developer here :-) we're definitely looking at expression compilation. Also hiphip could be very useful for writing fast core.matrix implementations for the standard API. So definitely good room for…
Refcounting?? I thought that idea died years ago. Refcounting is an extremely poor choice for memory management on modern machines. Even putting aside the issue that it can't handle cycles: constantly writing to memory…
The JVM isn't even that slow to start nowadays: a simple hello world app runs in about 0.1sec on my machine.
I'm the author. Yes I find it useful in various ways. If the learning rate is too high, you can visibly see see weights flicker between different colours. In simple nets you can use it to identify the "meaning" of…
That chart is statistically meaningless. It just shows % change since an arbitrary date in the past. Obviously, since different languages are on different parts of the growth curve, it results in a pretty unfair…
Java is a great platform to build on - and the sweet spot is definitely for server side applications like this. You can safely ignore the people who bash Java - they are generally clueless. The Java language is…
I think it is worth learning both. Clojure is more "practical" in the sense that it is dynamic, impure and gives you access to the huge JVM library ecosystem, which is a huge advantage for real world projects. Haskell…
You also need to learn some economics. There is substantial evidence and supporting theory to suggest that absolute material wealth (once it exceeds a certain level of basic needs) makes relatively little difference to…
This is basically a desciption of Clojure, in particular: - Explicit model of time (http://www.infoq.com/presentations/Value-Identity-State-Rich...) - Homoiconic / Extensible syntax (shared by most Lisps) -…
Clojure also supports prototype-based polymorphism via Associative objects, inheritance polymorphism via Java interop/proxy, interface-based polymorphism with deftype/defrecord, polymorphism via abstraction (see the…
Wow this is the most uninformed FUD I've seen all week - author picks one Rhino browser security vulnerability and extrapolates to "Java Considered Harmful". Might as well say "All Software On The Internet Considered…
Absolutely happy with my choice of Clojure as a startup (doing data science, analytics, some front-end work). Biggest wins for us are: - ClojureScript / figwheel as an awesome front end development combination. - The…
Clojure on the back end and ClojureScript on the front end. Some reasons: 1. It's a proper full-stack solution. You can share code between client and server if you need to. 2. There is some amazing front end technology…
This is great stuff, but it should really be designed as a core.matrix implementation rather than providing it's own API. The last thing the Clojure community needs is fragmentation with more incompatible libraries.
Silverline Mobile (http://silverline.mobi/) uses Clojure in production - managing data from sensors installed in the homes of senior citizens in Singapore.
We're using Clojure in production at Datacraft (http://www.datacraft.sg). Main usage is on the server side: for web applications, APIs and data analytics back ends.
I'm actually trying to address this in my current language experiment: https://github.com/mikera/kiss The idea: add static types to Clojure without compromising on the dynamism / flexibility / convenience
IMHO Clojure's omission of reader macros is sensible: it prevents proliferation of custom syntax, which makes it harder for a human to read code and reason about reader behaviour. The Clojure reader also already has its…
Also I would guess that people who like Clojure's philosophy are much more likely to build simple / loosely coupled / composable services than a big monolithic project.
Agree with everything you say, but it is worth noting that the insights you get from static analysis on desugared forms (which can be very large and complex!) is much harder to interpret than static analysis on the…
The problem is the design paradigm where you enforce an arbitrary fixed hierarchy on real-world data. This doesn't work for several reasons: * In the real world there are multiple overlapping hierarchies, which have…
It concerns me when people confuse the idea of gender equality and rights (which I think most reasonable people agree is a good thing) with the idea that men and women's lives have to be the same in all aspects. I think…
Erlang has a very nice concurrency approach, particularly if you are into distributed and fault tolerant systems. But it's ridiculous to say that "only Erlang can do concurrency". Many other languages do concurrency…
vectorz-clj has sparse vector support.... it's bit of an hidden feature at the moment (you'll have to use Java interop to instantiate a SparseIndexedVector) but it works and is pretty fast for many operations.
You've just pretty much described the motivation for core.matrix: it's an API that wraps various other back end vector/matrix libraries (including JBlas etc.) with a nice, standard Clojure API.
core.matrix developer here :-) we're definitely looking at expression compilation. Also hiphip could be very useful for writing fast core.matrix implementations for the standard API. So definitely good room for…
Refcounting?? I thought that idea died years ago. Refcounting is an extremely poor choice for memory management on modern machines. Even putting aside the issue that it can't handle cycles: constantly writing to memory…
The JVM isn't even that slow to start nowadays: a simple hello world app runs in about 0.1sec on my machine.
I'm the author. Yes I find it useful in various ways. If the learning rate is too high, you can visibly see see weights flicker between different colours. In simple nets you can use it to identify the "meaning" of…
That chart is statistically meaningless. It just shows % change since an arbitrary date in the past. Obviously, since different languages are on different parts of the growth curve, it results in a pretty unfair…
Java is a great platform to build on - and the sweet spot is definitely for server side applications like this. You can safely ignore the people who bash Java - they are generally clueless. The Java language is…
I think it is worth learning both. Clojure is more "practical" in the sense that it is dynamic, impure and gives you access to the huge JVM library ecosystem, which is a huge advantage for real world projects. Haskell…
You also need to learn some economics. There is substantial evidence and supporting theory to suggest that absolute material wealth (once it exceeds a certain level of basic needs) makes relatively little difference to…
This is basically a desciption of Clojure, in particular: - Explicit model of time (http://www.infoq.com/presentations/Value-Identity-State-Rich...) - Homoiconic / Extensible syntax (shared by most Lisps) -…
Clojure also supports prototype-based polymorphism via Associative objects, inheritance polymorphism via Java interop/proxy, interface-based polymorphism with deftype/defrecord, polymorphism via abstraction (see the…
Wow this is the most uninformed FUD I've seen all week - author picks one Rhino browser security vulnerability and extrapolates to "Java Considered Harmful". Might as well say "All Software On The Internet Considered…