Live data from Hacker News

Is Clojure dying, and what has Ruby got to do with it?

lambdaisland.com

221–230 of 261 posts

Re: Is Clojure dying, and what has Ruby got to do with it?

#221

Earlier quoted context omitted.

Explain?

There is basically no foreseeable way for the state-change model of language adoption to see a palpable uptick in Clojure. Python is easier to learn. Python is more useful for data munging/cleaning (lower startup time, loads of input libraries). Python has a repl and eval so code-as-data/data-as-code is not an advantage for Clojure as it is over C-alikes. Python FFI is almost free to call into C so end-to-end perform…

I currently use Python much more than any other language and regularly advocate for its use as a learning language both for formal education and for self-teaching. That said, I don't think most of the below supports your assertion that "Clojure [could definitely never] steal the machine learning niche back from Python"

> Python is easier to learn.

I have not seen a learnability comparison between Python and Clojure as first languages. Python is definitely easier to learn as a second language if you're already a trained programmer coming from the C family.

> Python is more useful for data munging/cleaning (lower startup time, loads of input libraries).

Startup time is indisputable, but also barely matters for interactive programming. In Lisps and in Python, I usually just have a repl going for days at a time.

The availability of libraries is not a "never" thing -- it's a "we'll see" thing.

> Python has a repl and eval so code-as-data/data-as-code is not an advantage for Clojure as it is over C-alikes.

You're conflating two different things that people like about Lisps here. Homoiconicity is a separate benefit from having a repl. And though I use it daily, I think Python's repl kind of blows.

> Python FFI is almost free to call into C so end-to-end performance is better than Clojure. Python has the better libraries for ANN (TensorFlow, Theano) and ML (sklearn).

Clojure is free to call into Java. And I'm sure there's a route to C if that small performance boost really makes a difference for what you're doing. Again, availability of libraries is an obstacle, but not a "definitely never" obstacle.

Re: Is Clojure dying, and what has Ruby got to do with it?

#222
post #132
post #127

Earlier quoted context omitted.

I don't understand: why can't you add a newsline andan indent? (cond (whatever) (thing) (something) (more))

There's nothing preventing you from manually doing that when you type the code, but editors and pretty-printers won't know about it. Special-casing them to have "if the car of a list is cond, or this vector was preceded by let, ..., then every second element gets extra indentation if it's on a different line" vs just using the regular list formatting rules just squicks me.

FWIW, running code through machine-formatting is an idea that squicks me enough that I hadn't even considered that you would be trying to do that... :(.

Re: Is Clojure dying, and what has Ruby got to do with it?

#223
post #92

Earlier quoted context omitted.

Contrast, for a moment: var x = fib(a, b); with (let x (fib a b)) And count the delimiting symbols. I count 5 in the first example. In the second, I see 4. Let's try something a bit harder. function(a, b) { return a * b; }(6, 4); vs. ((fn (a b) (* a b) ) 6 4) 10 first, 8 second. Yes, "why all the [symbols]" indeed.

Quantity is only one aspect. Structure and ability to mentally parse out patterns matters too. I don't mind Lisps and use Clojure regularly, yet I'd still argue your JS examples are easier to read than the Lisp ones. Heck even Clojure seems to agree, just the simple act of using vectors for various things (ie function parameters) helps with the readability ((fn [a b] (* a b) ) 6 4)

Well, vectors are a workaround for the challenges in creating homeoiconic lists that the JVM understands.

And if I'm frank, the JS examples are easy to read because you're familiar with the syntax. When you first started to learn C style syntax, it was likely just as confusing. I've spent a fair bit of time with lisp now, and the parenthesis are no more or less confusing than any of the symbols used in other languages. They're just scope delimiters.

Re: Is Clojure dying, and what has Ruby got to do with it?

#224
post #222
post #132

Earlier quoted context omitted.

There's nothing preventing you from manually doing that when you type the code, but editors and pretty-printers won't know about it. Special-casing them to have "if the car of a list is cond, or this vector was preceded by let, ..., then every second element gets extra indentation if it's on a different line" vs just using the regular list formatting rules just squicks me.

FWIW, running code through machine-formatting is an idea that squicks me enough that I hadn't even considered that you would be trying to do that... :(.

It's incredibly common for Lisps. Check out Parinfer or Paredit - it makes Clojure and other Lisps a real joy to write IMO.

Re: Is Clojure dying, and what has Ruby got to do with it?

#225

Clojure's not dying, but it's also not thriving[1]. I think it will continue on as a solid niche language for the foreseeable future, but it's highly unlikely that the language will grow by leaps and bounds barring some must-have innovation in the Clojure language and/or ecosystem that gets the tech world to take it more seriously. There are so many options these days that it's tough to stand out from the crowd. Cloj…

Lisp used to be the language for AI, could Clojure possibly steal the machine learning niche back from Python?

The way we did AI in the 70's was well suited for Lisp. The way we do it now - with numeric-heavy techniques - isn't so much or, at least, isn't that much better than Python/scikit-learn.

Lisp (and Clojure) is still great for exploratory programming (Python too, but Lisp allows you to dive deeper).

Re: Is Clojure dying, and what has Ruby got to do with it?

#226
post #158

Earlier quoted context omitted.

Yup, front end development is light years ahead of JS. sad

Exactly. Wave goodbye to Webpack, Babel, Redux, Gulp, Grunt, Browserify, Brunch, Yeoman and the rest of the usual suspects. I'm baffled as to why Clojurescript + Leiningen isn't the preferred way. Javascript Stockholm syndrome perhaps?

Don't look for such an elaborate explanation, it's just the parentheses that set most JS programmers off

Re: Is Clojure dying, and what has Ruby got to do with it?

#227

Earlier quoted context omitted.

It's not really clear to me why, but lisps keep trying and keep dying. Best guess is that in the end, syntax really does matter and lisp just doesn't have enough of it. Whether it's scheme or clojure or arc, every once in a while a new lisp comes along, and they never make it. This through decades and generations of programmers.

My (half-serious) take on this is that LISPs are too easy. A lot of little things that are hard in other languages are easier in LISP, which results in you writing the code yourself instead of pulling in a library some else wrote. This greatly reduces both the need and offering of a package manager which usually plays an important role in establishing a ecosystem and community in other languages. In all seriousness,…

[deleted]

Re: Is Clojure dying, and what has Ruby got to do with it?

#228

Earlier quoted context omitted.

There is basically no foreseeable way for the state-change model of language adoption to see a palpable uptick in Clojure. Python is easier to learn. Python is more useful for data munging/cleaning (lower startup time, loads of input libraries). Python has a repl and eval so code-as-data/data-as-code is not an advantage for Clojure as it is over C-alikes. Python FFI is almost free to call into C so end-to-end perform…

I currently use Python much more than any other language and regularly advocate for its use as a learning language both for formal education and for self-teaching. That said, I don't think most of the below supports your assertion that "Clojure [could definitely never] steal the machine learning niche back from Python" > Python is easier to learn. I have not seen a learnability comparison between Python and Clojure a…

Well these are the hurdles that Clojure needs to get over. And it's not good enough that Python fails because R and Julia are competing with Python. So is Matlab. So to take the ML pole position, Clojure would need to gain traction beyond all of these.

So I don't have a reasonable doubt when I say "Clojure will take not the machine learning niche from Python."

Re: Is Clojure dying, and what has Ruby got to do with it?

#229
post #96

Oddly, as someone who was reasonably into Common Lisp, what really viscerally turned me off to Clojure was the use of square brackets. This sounds petty but I actually have some rationalization for it. Once you learn to read Lisp (mostly looking at the indentation and ignoring the parens) it's really nice that there's only one kind of delimiter in the language. It allows a lot of easy structure editing with a decent…

As a former CL dabbler I didn't mind the square brackets in let but I really liked the use of them for vector and curly braces for map. To me bringing two useful data structures beyond lists into the language syntax felt very powerful and simple.

Re: Is Clojure dying, and what has Ruby got to do with it?

#230

“What is right is not always popular and what is popular is not always right.” -- Albert Einstein I love Clojure, am more productive in it than any other language (and I've done a lot in my time, including the other FP languages mentioned in this thread) but I have to concede that most people will just not like it or get it. And that's fine by me. I also like alternative music. Most people will never like it. Most pe…

I heard somewhere that over half of developers are new to the field.

What disheartens me is that the majority of developers care very little about programming. They care about things going out the door fast, quality be damned!

I never thought of Clojure as a language that would catch on to the 90% of shops out there. That's what ruby and python are for (and of course Java, but that's for historical marketing reasons.)

What I have thought the niche of Clojure and other languages like it are larger scale projects and established places that care about robustness and correctness. Where the wishy washy ways of the pythons and rubies of the world can can a real issue when not done correctly.

Post reply on HN