News for hackers. Stuff that matters.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by eafkuor on Monday July 02, 2018 @03:26AM (#17439861)
Clojure for me is the perfect modern LISP, too bad it seems it's dying (happy to stand corrected there)
Re:The Machine That Builds Itself: The Strengths of the Lisp... by yogthos on Monday July 02, 2018 @09:30AM (#17441441)
Clojure is past its hype phase, but it's certainly not dying. The yearly surveys consistently show more and more people using it professionally. It's used by large companies like Apple, Boeing, and Walmart for important large scale projects, and both the ecosystem and the community continue to grow at a steady pace. I've been working with Clojure for over 8 years now, and I've seen the community grow tremendously over that time.

My view is that Clojure has enough critical mass now that it's not going anywhere. There is a large community that's very active and enthusiastic about the language. There are many companies building their businesses around Clojure, and it's only going to continue to get better.

I don't think Clojure is ever going to become a mainstream language like JavaScript or Python, but that's very different from saying that it's dying.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by kbuchanan on Monday July 02, 2018 @11:58AM (#17442755)
Clojure, like so many of the functional languages, struggles to attract beginners. I mean for rilz beginners.

I don't mean it's unsuited to them. My company has a developer with one year of Javascript programming experience productively working in Clojure. But, I think often about how hostile FP's vocabulary is to non-experts. (Personally, the baggage I brought from OO made FP incomprehensible for quite some time). Clojure documentation, and most tutorials aimed at it, for example, take for granted newcomers' comprehension. If we could measure the average number of languages a programmer brings to the table when he learns Clojure, I'd be willing to bet it's more than two.

Ruby and Python on the other hand are languages where beginners thrive! Not only are many of the language concepts self-evident, the communities are often driven by recently graduated beginners spawning beginner-level documentation, beginner-level sympatico, etc.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by jandrese on Monday July 02, 2018 @03:20PM (#17444598)
I think the rule is the more mathematics background you have the more natural functional programming will feel. Most programmers didn't take math electives in college.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by workinfunk on Monday July 02, 2018 @12:46PM (#17443222)
I and a few others in my workplace are Clojure beginners. It's really not hard to pick up once you suck it up and stop bitching about parentheses. I don't think the language owners are terribly concerned about picking up beginners though, for all it seems they may actually like Clojure's reputation as belonging to Serious Programmers.

My biggest beef is actually with all the lisp true believers who wax on about their moment of clarity when all the pieces fit together and they realized that the universe is written in lisp. So far for me, it's just code.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by cutler on Monday July 02, 2018 @09:02AM (#17441257)
As far as jobs are concerned I'm not sure Clojure was ever alive. Search the Indeed.com API for title:Clojure and Location:London and you'll find 10 Clojure jobs. Extend that to Location:United Kingdom and you'll find the same 10 Clojure jobs, ie. nothing outside London. For other countries it's: France:0, Germany:7, Netherlands:3, Spain:1, Italy:0, Japan:0, China:0, United States:22, Canada:2 . Elixir seems to have suffered a similar fate. In fact the only functional language which has any real adoption is Scala but even here the numbers are patchy and well below the figures for Ruby which some say is in decline.

I think the best we're ever going to see is mainstream languages like Kotlin, Swift, Ruby and Python which mix functional features with OOP. In fact Scala really falls into this category so it seems OOP is here to stay.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by kamaal on Monday July 02, 2018 @10:01AM (#17441666)
The whole point of lisp is competing with 500 programmers blub programmers with 5 lisp programmers.

I wouldn't measure Clojure's success with those kind of numbers. The number of applications running Clojure code would come close to a real metric.

The whole point of Java and Python is to provide VPs with massive departments to bloat their egos with head counts. Clojure or Lisp don't aim for such goals.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by potta_coffee on Monday July 02, 2018 @11:27AM (#17442466)
I find it odd to see Java and Python lumped together. The companies I've seen using those respective languages (by job listings) seem to be quite different. I'm a Python developer and I've only ever worked in small, fast moving teams (biggest team I've worked in had 4 developers).
Re:The Machine That Builds Itself: The Strengths of the Lisp... by workinfunk on Monday July 02, 2018 @12:51PM (#17443266)
You must not be in SF or NYC. Python and Ruby (and even Node, to an extent) have supplanted Java as the language of fungible mass-market headcount du jour.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by pjmlp on Monday July 02, 2018 @01:54PM (#17443910)
I am in Germany, here they have hardly supplanted anything, specially when one actually cares about performance.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by potta_coffee on Monday July 02, 2018 @03:46PM (#17444782)
You're right, I'm in neither of those places. Where I'm at, there's C#/.NET or Java, and then there's everything else.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by udfalkso on Monday July 02, 2018 @09:59AM (#17441650)
Anecdotally I've seen quite a few job postings recently mentioning Elixir. That it can be seen, along with Phoenix, as a more performant, easier to maintain successor to Ruby/Rails gives it some legs imo.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by cutler on Monday July 02, 2018 @07:48PM (#17446341)
Beyond the superficial syntax similarities and the fact that Jose Valim was a major Rails contributor I really don't get this Elixir = Ruby++ thing. The languages are poles apart, based on opposing paradigms (FP vs OOP) and data structures (immutable maps/lists vs mutable objects).
Re:The Machine That Builds Itself: The Strengths of the Lisp... by udfalkso on Tuesday July 03, 2018 @11:39AM (#17451065)
It's more about Phoenix than Elixir alone. The language is approachable enough, although clearly different, and the frameworks are similar enough (router, controllers, templates, gem -> hex, etc.) that a rails dev can become productive in this environment relatively quickly. And, the effort to do so comes with a number of serious benefits.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by StreamBright on Monday July 02, 2018 @07:48AM (#17440869)
I am not sure about dying. Any time I need to use Clojure I have all the libraries I need and if I don't it takes me very little time to write a small wrapper around the Java library that provides the functionality. Saying Clojure is dying is the same as saying Java is dying. There are unmaintained libraries, no doubt of that, yet, it does not mean that the entire language is dying. Java8 was a great improvement for Clojure and I expect more coming down in the pipe for later Java releases.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by cutler on Monday July 02, 2018 @09:23AM (#17441378)
A language cannot survive if it doesn't compete for adoption in the software industry, ie. paid jobs, and with so many languages competing for adoption Clojure's lacklustre marketing has cemented it's place in the history of also-rans. That doesn't mean Clojure isn't a great language. In fact I'd say it's the best language we have today.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by yogthos on Monday July 02, 2018 @09:33AM (#17441459)
Language viability isn't a zero sum game. What you ultimately care about is that the language is actively developed, and that there is a viable ecosystem around it. Clojure has both those things, with plenty of companies using it to do real world work.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by edem on Monday July 02, 2018 @03:57AM (#17439975)
You seem right. Every metric I can check says it is going downhill. Too bad, I used to go to the Clojure meetups in my area, I even had a talk about Clojure + Emacs.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by xixixao on Monday July 02, 2018 @04:28AM (#17440103)
Many reasons. S-expressions would be the least of my worries. Java is dying, not on the whole, but certainly in mindset of people who are picking new languages. It’s integration with OSs, which Clojure depends on, is arcane by today standards. Second, it’s tightly controlled by one person, and they happen to hate types. Similar to CoffeeScript, couple years after the language inception people figure out that they miss types. Adding them back in is super tough.

And third, abstractions have costs. There is no wide-spread popular LISP, and people should really ask themselves why. We have lots of code generation, and depend on it more and more. But it’s “simple” (or “primitive”). It’s usually one step. You can read the input, and you can read the output.

I’m starting to get a sense that macros are like currying. Elegant, beautiful, powerful. But net negative if your concern is to get lots of people to create software together.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by pka on Tuesday July 03, 2018 @01:56AM (#17447885)
Re macros, I had a similar thought this morning. Except for code instrumentation and boilerplate generation I've actually never found macros to be useful.

ADT DSLs + free monads or similar abstractions give you everything you need, in a more principled way.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by pjmlp on Monday July 02, 2018 @11:33AM (#17442531)
Yeah, dying on SV startups maybe, that end up rewriting on Java if they ever manage to go big.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by realusername on Monday July 02, 2018 @07:54AM (#17440896)
> Java is dying, not on the whole, but certainly in mindset of people who are picking new languages

Even as a whole it's slowing down heavily now, even Android is switching to Kotlin. The language is already not that trendy but Oracle's aggressive lawsuits is making it even worse.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by knightofmars on Monday July 02, 2018 @08:38AM (#17441113)
Re:The Machine That Builds Itself: The Strengths of the Lisp... by realusername on Monday July 02, 2018 @08:58AM (#17441241)
I did not say that it's still not used heavily, just that it's slowing down. And C is the second on that list so I'm not sure I would believe this ranking, I have not seen much C jobs for a while now.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by Tomte on Monday July 02, 2018 @10:06AM (#17441724)
That‘s because you‘re only thinking of desktop applications, mobile applications and web stuff.

Embedded software is a vast market, and it‘s mostly C with a rising share of C++.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by realusername on Monday July 02, 2018 @10:10AM (#17441750)
> Embedded software is a vast market

Is it really? IoT still isn't taking off much and the more powerful the machines are getting (so every year), the less people are going to use C for that only tiny segment people are still using it for.

Where I've used C on a microcontroller 10 years ago, you would likely use a cheap Android board nowadays.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by Tomte on Monday July 02, 2018 @10:13AM (#17441781)
Are you kidding me?

Look around your home. Right now. How many things have software in them?

How many things don‘t you see in your home? Everything in your home that doesn‘t include software has been manufactured and packaged.

My employer makes components for industrial automation. Have you ever thought about it? Nobody does, unless he has direct contact.

Building automation? Special machinery (huge presses or packaging machines). Whatever.

And re: your Android board: come back when your bricolage conforms to all kinds of requirements. Extended temperature range. Vibration. Electromagnetic compatibility (it‘s easy to accidentally broadcast in the naval emergency band). Etc. etc.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by realusername on Monday July 02, 2018 @10:24AM (#17441871)
> Look around your home. Right now. How many things have software in them?

Not much as much as you think, apart from the routers, computers and phone, the only other thing I can think of is the dishwasher because it's half-recent. And I suspect the new ones just include a cheap Android board.

> And re: your Android board: come back when your bricolage conforms to all kinds of requirements. Extended temperature range. Vibration. Electromagnetic compatibility (it‘s easy to accidentally broadcast in the naval emergency band). Etc. etc.

I've worked on a company which manufactured their own card, that is much harder to do by yourself than buying a board which has been produced at millions of units where they solved all those issues directly. You can't compete with that easily. We had at least 5 iterations to solve the magnetic and heat issues, all of that comes for free in a mass-produced board.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by iainmerrick on Monday July 02, 2018 @02:06PM (#17444016)
Not much as much as you think, apart from the routers, computers and phone, the only other thing I can think of is the dishwasher because it's half-recent. And I suspect the new ones just include a cheap Android board.

I suspect you’re thinking at the wrong level. Your washing machine definitely does have software even if it’s not “recent”. When you press the buttons or turn the dials and it does stuff, even if it doesn’t have pretty graphics on the display, that’s software.

If you have a microwave, that has software, if you have a car that has a ton of software. Your car keys and your credit cards probably have software.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by Tomte on Monday July 02, 2018 @02:27PM (#17444203)
Battery charger. Camera. Camera lenses. TV. Blu-Ray player. HiFi/audio system. Radio. Dimmable lamps (probably). Electric toothbrush. Shaver. Possibly electric kettle. Blender. KitchenAid. Telephone (the wired one). Possibly door opener. Rice cooker. Garage door opener. Coffee machine. Toaster.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by Tomte on Monday July 02, 2018 @10:33AM (#17441941)
No, it doesn‘t come for free, because it simply fails all those requirements.

A developer board simply doesn‘t care about most of that, and if it does, to a much lower degree.

But we‘re done here, you‘re clearly not discussing in good faith. Stay in your web bubble if you want to.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by dang on Tuesday July 03, 2018 @01:52AM (#17447870)
You post a lot of great submissions to HN, but if you continue to be uncivil in comments we're going to ban you. This is the second time I've had to warn you in as many days. Not cool!
Re:The Machine That Builds Itself: The Strengths of the Lisp... by realusername on Monday July 02, 2018 @10:47AM (#17442062)
> But we‘re done here, you‘re clearly not discussing in good faith. Stay in your web bubble if you want to.

Thanks for your well detailed argumentation, that was convincing.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by dang on Tuesday July 03, 2018 @01:52AM (#17447871)
Please don't respond to a bad comment with another bad comment and thereby make this place even worse.

https://news.ycombinator.com/newsguidelines.html

Re:The Machine That Builds Itself: The Strengths of the Lisp... by realusername on Thursday July 05, 2018 @08:56AM (#17462853)
sorry about that
Re:The Machine That Builds Itself: The Strengths of the Lisp... by knightofmars on Monday July 02, 2018 @09:16AM (#17441335)
"I have not seen much C jobs for a while now."

Because your anecdotal evidence is more accurate than what this list (which describes its methodology) is showing you?

Re:The Machine That Builds Itself: The Strengths of the Lisp... by realusername on Monday July 02, 2018 @09:32AM (#17441448)
Yeah it is, because their methodology is shitty: https://www.tiobe.com/tiobe-index/programming-languages-defi..., they just use the google popularity of "[name] programing", it's not a mesure of anything.

C jobs are very rare, and it's certainly not 14% of the programming jobs. Putting Java and C on the exact same level is a good sign something is wrong with what they are doing.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by Tomte on Monday July 02, 2018 @10:07AM (#17441732)
C jobs are certainly much more than 14%. Believe it or not.

Most software developers don‘t hang out in internet forums, commit to GitHub or write blog posts about JavaScript frameworks. They just do their day job and go home to their family.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by kickopotomus on Monday July 02, 2018 @11:23AM (#17442434)
C jobs are not rare at all. I think you are failing to consider large chunks of the tech sector that operate outside of the web.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by realusername on Monday July 02, 2018 @11:31AM (#17442501)
> that operate outside of the web.

Outside of the web, mobile, desktop apps and even gaming (mostly C++) you mean? C is used mainly in low level computing and embed nowadays.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by kickopotomus on Monday July 02, 2018 @11:37AM (#17442569)
Yes. That is correct. I fail to see your point since that is a large chunk of tech.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by realusername on Monday July 02, 2018 @12:05PM (#17442814)
I would not use "large" for that, it's certainly a chuck yes but is it comparable to web, mobile, gaming and desktop? I'm not really sure.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by kickopotomus on Monday July 02, 2018 @01:58PM (#17443941)
It most definitely is large. It's not just about all of the recent IoT devices. Firmware for all of the controllers on your motherboard is written in C. Most device drivers are still written in C. Many operating systems (linux) are written in C. Then you have all of the controllers in the devices in your home (e.g. microwave, oven, digital clock, entertainment devices, etc.)
Re:The Machine That Builds Itself: The Strengths of the Lisp... by knightofmars on Tuesday July 03, 2018 @02:04PM (#17452375)
Feel free to show me a link to a site with a better methodology to support your claim. Otherwise I'm going to continue believing you lack evidence to support said claim and are therefore wrong.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by nordsieck on Monday July 02, 2018 @04:53AM (#17440205)
> Every metric I can check says it is going downhill.

I've seen a fair number of metrics that show it's losing market share on a proportional basis, but holding steady on an absolute basis. Have you seen anything to contradict this?

Re:The Machine That Builds Itself: The Strengths of the Lisp... by wool_gather on Monday July 02, 2018 @08:25PM (#17446523)
Shouldn't the proportion be your concern (assuming you actually have a horse in the race)? Steady absolute numbers basically indicates that nobody new is choosing it, which is just the first step to a decline of those absolute numbers.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by edem on Monday July 02, 2018 @06:38PM (#17445966)
What do you mean by absolute metric?
Re:The Machine That Builds Itself: The Strengths of the Lisp... by nordsieck on Tuesday July 03, 2018 @12:10AM (#17447459)
A metric based on raw participation numbers rather than one that is inherently relative to other languages.

E.g. the number of commits on Github vs percent of total commits on Github.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by joncampbelldev on Monday July 02, 2018 @04:20AM (#17440070)
Can you list some of these metrics?
Re:The Machine That Builds Itself: The Strengths of the Lisp... by cutler on Monday July 02, 2018 @09:26AM (#17441409)
See my comment above re the Indeed.com API.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by geokon on Monday July 02, 2018 @04:57AM (#17440222)
Having just learned Clojure, I'm kinda sad to say that I agree... It kinda seems like there are a lot of unmaintained libraries and relatively few things being worked on (mostly in the web-tech space which I don't really know anything about)
Re:The Machine That Builds Itself: The Strengths of the Lisp... by fnordsensei on Monday July 02, 2018 @09:54AM (#17441599)
I've come across my share of unmaintained libraries in Clojure, but for anyone reading, lack of activity doesn't necessarily mean that a library is unmaintained.

In JS in particular, activity is often used as a proxy for the "maintainedness" of a library. I think this is because JS is (currently) a moving target.

Clojure is one of those languages where, occasionally, problems get solved and don't require any significant further development.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by BWStearns on Monday July 02, 2018 @02:56PM (#17444435)
Was about to say the same thing. It took a little while to get used to the idea that seeing `Last updated 2 years ago` didn't mean the library was dead. If I ask in the slack channel about a library I'll very often get a message back in a matter of minutes from the author confirming that it still works.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by dorfsmay on Monday July 02, 2018 @09:29AM (#17441436)
For me personally I gave up on Clojure because of the JVM. Had there been a Clojure, supported by its main author and community compiling to native, it'd probably be my main language today.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by vt100 on Monday July 02, 2018 @11:38AM (#17442573)
Clojurescript is pretty good, too, and can now be self-hosted. So it seems Clojure is not too tightly-bound to JVM.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by fnordsensei on Monday July 02, 2018 @09:45AM (#17441535)
Early experiments with Graal seems to tell a promising story with regards to compiling to native.

Whenever Graal is mentioned, a host of reservations towards Oracle usually appears though.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by pjmlp on Monday July 02, 2018 @11:29AM (#17442482)
Might be, then again no one else bothered to actually save Java, so we get whoever cared, regardless of the monetary reasons.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by dorfsmay on Monday July 02, 2018 @10:03AM (#17441688)
My concerns about the JVM aren't so much CPU, but memory usage and ease of distribution. Those two factors have, IMO, helped take golang where it is today. Today you cannot run your Clojure apps on a small 250 MB VM, and distributing it means getting the right version of the JVM, the right libraries etc...

I don't know how Graal will handle those two issues, it'll be interesting to watch.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by fnordsensei on Monday July 02, 2018 @11:36AM (#17442555)
I found this pretty interesting: https://medium.com/criciumadev/serverless-native-java-functi...

Single data point, but nevertheless.

Cold Execution Times:

  Java Function -> 660 ms
  Native Java Function -> 460 ms
  Go Function -> 470 ms
Hot execution times:

  Java Function -> 30 ms
  Native Java Function -> 30 ms
  Go Function -> 30 ms
Container Memory usage of Hot Function:

  Java Function -> 17.8 MiB
  Native Java Function -> 0.9 MiB
  Go Function -> 1.2 MiB
Container Image Size:

  Java Function -> 266 MB
  Native Java Function -> 13.6 MB
  Go Function -> 15.1 MB
Re:The Machine That Builds Itself: The Strengths of the Lisp... by dorfsmay on Monday July 02, 2018 @02:25PM (#17444184)
What are "Native Java Functions"?
Re:The Machine That Builds Itself: The Strengths of the Lisp... by tkxxx7 on Monday July 02, 2018 @02:48PM (#17444364)
Already compiled to bytecode?
Re:The Machine That Builds Itself: The Strengths of the Lisp... by pjmlp on Tuesday July 03, 2018 @07:59AM (#17449423)
Machine code.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by pjmlp on Monday July 02, 2018 @11:32AM (#17442512)
Where is Go?

Still not a match for Hotspot and around me everyone still asks for .NET and Java projects.

And those data structures with indirect calls are never going to go away.

Re:The Machine That Builds Itself: The Strengths of the Lisp... by typon on Monday July 02, 2018 @08:21AM (#17441023)
There should be a Clojure based on C or Rust or a Clojure without garbage collection. High performance backend just can't be done in Clojure.
Re:The Machine That Builds Itself: The Strengths of the Lisp... by yogthos on Monday July 02, 2018 @09:34AM (#17441466)
Re:The Machine That Builds Itself: The Strengths of the Lisp... by typon on Monday July 02, 2018 @10:04AM (#17441696)
That's really an interesting project, thanks for sharing!

Now about all the other Clojure features...immutable, persistent collections by default, built-in async library, spec, standardized way of handling state and concurrency, and many more...

Re:The Machine That Builds Itself: The Strengths of the Lisp... by yogthos on Monday July 02, 2018 @11:33AM (#17442524)
Clojure has been around for a decade, so it'll be a long while before Carp starts matching its features and ecosystem.