News for hackers. Stuff that matters.
Re:Clojure: A Lisp that wants to spread by lgrapenthin on Monday March 02, 2020 @02:38AM (#22462441)
Instead of just measuring how many developers adopt Clojure and how difficult/easy that is, I'd also love a measure of how many developers Clojure "puts out of business". IME Clojure is quite aggressive on that front.

In 2017 a customer wanted a set of services written in Clojure. Based on their Java experience they wanted to hire 10 devs. When I arrived they had 4, over the 1.5-year period I was there, they hired and fired 4. When I left they had 3. All 3 were not experienced in Clojure prior to the project (Java), but by 2018 each knew the entire codebase and was able to modify it and able to step in for each other. They spent less than half of their budget and all goals were met ahead of schedule.

IME learning how to put Clojure and its ecosystem in good use takes more time and effort than other languages, but its effectiveness really compensates.

Re:Clojure: A Lisp that wants to spread by tabtab on Tuesday March 03, 2020 @12:01PM (#22476308)
I've heard this "mass productivity" claim from Lisp fans multiple times before, and am skeptical. Lisp has been around for about 60-ish years, yet no software house has been able to conquer the software market using it. It doesn't seem to scale to bigger teams and long-term maintenance. Developers can easily create abstractions that fit their own head, but not necessarily other heads. They blame the problems on the other readers rather than their spaghetti mind map.

If I could make my own language and stack, I too would be mega-productive. However, others likely wouldn't like it and be confused by it, even though it's dirt obvious to me. Roll-your-own has limits. Sometimes 2 or 3 like-minded Lisp developers connect and roll for a while, but over time they will find it a lucky match-up that the real-world can't repeatedly recreate. Lightning in a bottle evaporates easily.

The bottleneck of "paycheck" programming productivity is communicating between human beings, who may shift over time. Cranking out compact code fast is secondary to this. Program for people, not machines and not cleverness graders.

Re:Clojure: A Lisp that wants to spread by lispm on Tuesday March 03, 2020 @10:49PM (#22481061)
Actually quite a bunch of 20 year or older Lisp software is developed in teams.

Cyc is developed by a team since the early 80s. Reduce since the mid 70s. The SBCL and CMUCL Lisp implementations come out of the early 80s. Maxima has its roots in the late 60s/early 70s. The commercial Lisp systems from Franz and LispWorks are developed since the mid/end 80s. ACL2 (a theorem prover used in the chip business) comes from the early 90s. ITA (now Google) started mid 90s. GNU Emacs is from the early 80s. Autocd/Autolisp comes from the early 80s. PTC's Lisp-based CAD system (with a few million lines of Lisp code) must have been originally 2000 or earlier...

Re:Clojure: A Lisp that wants to spread by tabtab on Wednesday March 04, 2020 @11:28AM (#22485128)
I don't dispute it has niches where it does well, or at least "works". The implication often given is general purpose productivity superiority.
Re:Clojure: A Lisp that wants to spread by lispm on Wednesday March 04, 2020 @03:33PM (#22487732)
Well, you claimed that Lisp programmers can not work in software teams over a long period of time, because they don't understand each others code. I gave a few examples.

There are also a bunch of examples where Lisp was used to prototype or for rapid application development. This enables exploring ideas or conquering early markets. Later iterations may then reimplement the thing... That's another model and is also fine - though there are projects which had not much experience and were not able to get the thing off the ground. For example the first version of the Postgres database was written in a mix of some Lisp implementation and C. This did not work well for them and they switched early away from Lisp. Similar the first version of Reddit was written in Lisp, but it did not really work that well for them and they switched to Python.

> The implication often given is general purpose productivity superiority

I don't think that claim makes sense in general. Much of the productivity in modern software development does not come from the programming language. Much more important nowadays is the general eco-system.

For example it makes very little sense to develop apps for iOS in Clojure, since there is zero support for it from Apple. Thus most iOS applications are written in Objective-C and/or Swift. An assumed 'general productivity superiority' doesn't help at all to compensate the total lack of platform support from the platform provider.

Re:Clojure: A Lisp that wants to spread by tabtab on Thursday March 05, 2020 @11:25AM (#22494951)
Re: you claimed that Lisp programmers can not work in software teams over a long period

I meant for "general" programming. I apologize for not wording it clearer earlier.

Re: There are also a bunch of examples where Lisp was used to prototype or for rapid application development.

Yes, this is a niche it often does well in. It's partly how Paul Graham beat competitors in the store app arena.

Re:Clojure: A Lisp that wants to spread by Goladus on Thursday March 12, 2020 @11:05AM (#22557592)
> The implication often given is general purpose productivity superiority.

The post you responded to specifically used Java as an example, though. Clojure specifically is clearly targeted as an alternative to writing raw Java. A number of other languages rushed in to compete for that space, and while Scala and Kotlin seem to be more popular than Clojure, I have to admit the only JVM app I actually rely on now, uses Clojure.

Puppetdb, specifically. Puppet is a ruby project, but the database component is written in Clojure. I dislike Puppet for many reasons (syntax, coupling, architecture), but not because of its database backend.

Re:Clojure: A Lisp that wants to spread by bambataa on Monday March 02, 2020 @03:17AM (#22462616)
Were they fired because they weren’t good enough at Clojure? Perhaps all Clojure did was filter out less capable performers. The small team of skilled developers might have been just as fast in Java if they weren’t encumbered by the mediocre ones.
Re:Clojure: A Lisp that wants to spread by lgrapenthin on Monday March 02, 2020 @05:13PM (#22469600)
I was mainly concerned with teaching Clojure in this project as everyone had little or no experience prior, so nobody was blocked by learners. Those who were fired all had one thing in common: They refused to adopt Clojure beyond its syntax in favor of patterns they learned to rely on in another language. This varied from porting Scala polymorphism to just banging out imperative while loops with atoms. I don't think they were incapable. They simply didn't want to learn it. Code reviews turned into arguments quickly, took endless time and lead nowhere.

Their code was never touched by those who stayed and were able to work together. Later it was rewritten, because in spite of tons of unit tests (which passed), it was full of bugs. The code was considered "write-only". The rewrites averaged at 5-10% LOC.

Re:Clojure: A Lisp that wants to spread by christophilus on Monday March 02, 2020 @06:57AM (#22463657)
That’s still an argument in favor of Clojure. People spend loads of time and money trying to figure out how to do such filters. If it comes for free by choosing Clojure, that’s pretty great.
Re:Clojure: A Lisp that wants to spread by The_Colonel on Monday March 02, 2020 @07:16AM (#22463724)
I doubt this filtering is in any way done by Clojure though. It's difficult to recognize top performers in interviews, but it's much easier to see that in day to day work. What is usually missing is the willingness to fire people for not being top performers.