off-topic

https://github.com/clojurians/community-development/blob/master/Code-of-Conduct.md Clojurians Slack Community Code of Conduct. Searchable message archives are at https://clojurians-log.clojureverse.org/
Chase 2021-01-13T00:19:49.154200Z

That writeup (found in #announcements) about the new Appsflyer http stack, Donkey, was real interesting. With Reitit and now this, it seems there are some really high speed http libraries out there.

βž• 1
Chase 2021-01-13T00:20:14.154500Z

But what I'm also impressed with is just how performant "regular ole ring clojure" was before they had to start looking for some in house solution help. Those folks seem to be doing some work at a high scale and Clojure scaled really nicely from what I gathered.

2021-01-13T10:39:14.160300Z

hmmm... firefox says that ublock origin block list blocks appflyer, are they an adware company?

2021-01-13T17:10:02.162300Z

Ya I got that as well. I mean, they kind of are. They collect user metrics. They're like an analytics for ads, so it makes sense that ublock has them blocked so websites don't send them usage date.

2021-01-13T05:10:04.154800Z

Ya, pretty crazy the scale they describe

2021-01-13T05:10:56.155Z

I feel I hadn't heard of them before, but they seem like quite a successful Clojure startup

2021-01-13T05:11:43.155200Z

Also, it seems that Donkey is "regular ole ring clojure" as well, just a faster Ring adapter, but compatible with Ring sync/async handlers and middlewares.

2021-01-13T05:12:27.155400Z

So should be a pretty easy switch from an existing Ring app with an existing adapter like Ring-jetty to Donkey

Ben Sless 2021-01-13T08:39:35.157100Z

What's the legal status regarding using the name clojure in a namespace? i.e. clojure.foo.bar. Is it legally reserved to the the Clojure project?

Timur Latypoff 2021-01-13T10:13:51.159800Z

I guess this applies: 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. https://github.com/clojure/clojure - readme.txt

Ben Sless 2021-01-13T10:37:39.160100Z

That's the part I was looking for, thanks!

alexmiller 2021-01-13T14:28:53.161900Z

it is a good idea to prefix your namespaces only with something that you control (reverse dns, trademarked product, etc). you do not control clojure, so you should not use that as your leading prefix.

πŸ‘ 3
sP0re 2021-01-13T17:56:48.166600Z

Hi! I started 3 days ago to study Clojure and I'm very enthusiastic but... Someone said that probably clojure will be a niche language forever because runs on JVM and hasn't got a strong popular web framework (like Phoenix for Elixir for example) what do you think and why? Thank you

2021-01-13T18:00:09.168600Z

It does seem unlikely that there will be a day that 10% or more of software developers throughout the world will be using Clojure for their projects. That potentiality does deter some people from adopting it. Others find Clojure to be a useful enough advantage in their work that it does not deter them.

dpsutton 2021-01-13T18:00:11.168700Z

jvm can be polarizing to individuals but it has a huge market share and doesn't resign Clojure to a niche (imo)

2021-01-13T18:03:17.171600Z

is elixir not a niche language?

phronmophobic 2021-01-13T18:04:36.174800Z

I would agree that clojure gaining mass adoption is unlikely, but not for the reasons provided. Clojure works on the JVM, but isn't anchored to it. The JVM will probably be clojure's main runtime while the JVM is relevant (which will likely be the case for the foreseeable future), but if for some reason the JVM disappeared, clojure could adopt another host. Clojure does have several excellent web frameworks.

Xarlyle0 2021-01-27T02:39:38.147400Z

Well, the incredible popularity of Python and React.js is the exception to everything. I credit React for being a major driving force behind rising interest in functional programming, and Python has proven concepts like dynamic typing and REPL driven development. Those are the two constructs that led me to Clojure in the first place. It remains to be seen whether those trends hold

2021-01-13T18:05:27.176200Z

One clarification: by "niche" do you mean (a) "not used by a large fraction of software developers" or (b) "is only applicable for a small subset of software development projects". If you mean (a), then true it is niche in that sense, and might always be. If you mean (b), then I don't think that is true.

βž• 1
sP0re 2021-01-13T18:06:20.176800Z

So why not?

2021-01-13T18:08:36.177600Z

mostly-immutable programming can make one feel like they are an inadequately talented software developer for a surprisingly long time, if you have years of experience with mostly-mutable programming languages.

phronmophobic 2021-01-13T18:11:09.180100Z

A couple reasons come to mind. There are lots of good languages available and becoming a top programming language requires the right features, luck, and timing. In many ways, clojure is designed with experienced programmers in mind which is great for an experienced team building complex systems, but it does mean that there are less resources available for the "new to clojure" and "new to programming" audiences.

2021-01-13T18:12:35.182500Z

I don't have the answers here, but note that the majority of the thousands of programming languages created are either completely unknown to 99.9% of today's software developers, or known to at most a small fraction. Not all of the reasons for this are technical superiority or inferiority (and even those kinds of judgements are multi-dimensional, and subject to debate). It can also help to ask the question "How did the few languages that became widely used, become so?" A common answer to that question is that many of them were marketed and supported by large organizations, but that isn't the reason for all programming languages. Those languages had to be good enough, that programmers were willing to deal with whatever their disadvantages might be.

πŸ‘ 1
sova-soars-the-sora 2021-01-13T18:13:39.183200Z

LISP is the alpha-language, the mother-language from which all other programming languages can be derived... as long as that's not common knowledge lisp won't be so common πŸ˜…

sP0re 2021-01-13T18:15:19.183700Z

Thanks for your answers πŸ™‚

sP0re 2021-01-13T18:15:54.183800Z

I mean (a) and the presence in the industry

flowthing 2021-01-13T18:16:00.184Z

Clojure is also a dynamically typed language, whereas the industry as a whole seems to be steering pretty squarely towards statically-typed languages such as Kotlin and TypeScript.

sP0re 2021-01-13T18:24:05.186700Z

It's growing a lot.. I don't know about Clojure. LinkedIn offers are quite the same number

2021-01-13T18:24:39.187300Z

My view is that the last couple of decades have given us a long tail of languages. Modern tech and the huge number of software engineers in the world today makes this long tail more and more viable. I see Clojure are one of the long tail languages and that’s great. I have never earned a living writing Clojure (which makes me sad) but I’m still really happy to see people do great work and build great things with it… and even if it never dominates the world like certain (less interesting) languages, I’ll always love it.

❀️ 1
2021-01-13T18:29:43.187400Z

shrug I would be surprised if it actually gets anywhere near as big as ruby or python, let alone C

2021-01-13T18:32:23.189300Z

like, elixir is 10 years old at this point, clojure is maybe a year or two older. pheonix has some interesting stuff in it (I read somewhere it was using delta crdts for maintaining subscriptions, not sure if that is actually the case), but just because there is interesting tech, that doesn't mean there is a market for it

πŸ‘ 1
2021-01-13T18:36:45.193900Z

Most commercial software operations think they are de-risking hiring by only using a mass-adopted language such as Ruby or Python or JavaScript. They believe, correctly, that if they advertise for an experienced Clojure (or an Elixir, Elm, etc.) programmer, they will receive few replies compared to the number of $MASS_ADOPTED_LANGUAGE applicants they can get. This creates a chicken-and-egg scenario: more libraries and frameworks exist in the mass languages, particularly those oriented towards junior engineers. New programmers then learn one of the mass languages, because they hope to get one of the many jobs they see advertised, and because there is a great deal of batteries-included environment to take advantage of without a steep learning curve. Jobs choose one of the mass languages, because they know there will be a large applicant pool anytime they need another programmer. The way out for niche languages is to train people in house. More senior engineers can start writing production Clojure code in a matter of weeks (I’ve trained them on this process more than once), and only slightly longer for those with less experience. But this requires a rather enlightened and unusual management attitude that is sadly rare, where engineering is regarded as engineering rather than a minor technical function to be hired based on resume keyword matches.

πŸ‘ 2
2021-01-13T18:37:35.194100Z

I believe FORTRAN slightly predates Lisp

dpsutton 2021-01-13T18:38:06.194300Z

ah yeah i had that backwards

dpsutton 2021-01-13T18:38:12.194700Z

thanks. was thinking fortran

2021-01-13T18:38:47.195500Z

"mother-language" is vague enough, who knows what relationship is implied

2021-01-13T18:39:05.196100Z

"lisp" itself is a nice vague term

2021-01-13T18:40:05.197200Z

And yes, in my experience many people are intimidated at the superficial level by what appears to be mostly a sea of parentheses. This is greatly offputting for a lot of newcomers to Lisp, who think they will be spending the bulk of their days counting and matching left and right parentheses at various levels of indentation. Most get over it when I explain the paren matching is fully dealt with by tools such as paredit-mode, so they don’t have to count and match manually. But this is not at all obvious to newcomers. Someone has to tell them that.

2021-01-13T18:46:27.198200Z

The median skill level for niche language engineers is also far higher, due to self-selection into that group. An employer gets fewer applicants, but at a much higher quality level.

πŸ‘ 3
alexmiller 2021-01-13T18:47:53.199300Z

Clojure is a niche language used by 10,000s of developers every day in 100s of companies, both big and small

alexmiller 2021-01-13T18:49:14.200500Z

As a smaller pool, it also tends to have a higher than average skill, experience, and salary level

alexmiller 2021-01-13T18:49:56.201200Z

All of those assertions are backed by data from various surveys

2021-01-13T18:59:02.203300Z

there is a big pie, a small slice is a lot

lassemaatta 2021-01-13T19:03:23.205800Z

and even if we assume that the "clojure will never be in the top #N programming languages list" hypothesis is true, I don't think it matters that much from a pragmatic point of view. Does it help me to write better, more reliable software (and perhaps even teach new ways to think about solving problems)? Does it offer the tools and libraries I need to solve problems my customers have? Can I get help somehow if I have a problem? I'd say yes.

πŸ‘ 1
sP0re 2021-01-13T19:08:50.211900Z

I think your various points of view are very interesting and I think that as Java developer I already work with a language on the top N list and for now I don't really need another one. I will continue to study Clojure because is interesting, it can open my mind and learn me a lot of things. It will probably help me to solve problems thinking in a different way and this is so important. And for the future, we will see πŸ™‚

sP0re 2021-01-13T19:10:34.213Z

Thank you another time, see you in the beginners section

2021-01-13T19:27:38.213400Z

I came across an article recently on Cobol and how prevalent it still is for many business / admin domains. I don't know how accurate one aspect of their take on it was, but they claimed that when programming became a profession that was predominantly done by men (it was formerly more often women, e.g. 1950s and perhaps on into 1960s?), that men preferred languages unlike Cobol, and part of the denigration of Cobol is because it doesnt' require such a level of devotion to minutiae to master it. An interesting claim, which sounds to me that there may be at least something to it.

2021-01-13T19:29:06.213600Z

yeah, I got side tracked with a work meeting, but related to my pie size comments in channel, I was wondering what cobols slice of the pie still is

❀️ 1
2021-01-13T19:32:27.213800Z

reading about the size of cobols market share today makes me want to dig out the "learn cobol in 21 days" book I used as a monitor stand for a few years and actually open it

πŸ˜‚ 1
2021-01-13T19:33:41.214800Z

The main disadvantage that I see personally is that it’s much harder for any of us to get a fulltime job programming Clojure.

2021-01-13T19:34:10.215400Z

I’ve had fulltime jobs in Clojure, but they were all either companies I started, or places where I applied and interviewed in some other language and then introduced Clojure once I was there.

2021-01-13T19:34:36.216100Z

I see skilled Clojure programmers here all the time saying they’ve never been employed to write it.

sP0re 2021-01-13T19:34:48.216600Z

It means that companies are started to adopt it maybe

sP0re 2021-01-13T19:34:54.216900Z

It's a good signal

2021-01-13T19:35:37.217900Z

I can imagine using Cobol if I couldn't find a job I wanted that let me use something else. I had one class on it 30 years ago as requirement for Bachelor's degree at my university, and was thoroughly bored because I already had about 5 years of experience in other languages, and couldn't see any technical advantages to it. From more years of experience I can definitely see the argument of keeping the code simple and more readable, means it is more maintainable over time. At that time it wasn't a language for doing arbitrary computation, though (or it was very inconvenient to do so -- it probably has been extended to be more convenient for more purposes now), so I wasn't interested for that reason.

2021-01-13T19:36:12.220200Z

Yes, one can still enjoy all the nice benefits of Clojure without that job, but one can enjoy them even more when one is being paid to do it all day, every day, rather than splitting one’s bandwidth with something else.

sP0re 2021-01-13T19:37:27.221900Z

It's true

2021-01-13T19:37:32.222200Z

when I got my first clojure job(I guess that was in 2010) I overlapped with someone very briefly, maybe a month, who left for a clojure job somewhere else, and at the time there was a fair bit of joking around about him being the first person to get a second clojure job

πŸ˜€ 1
sP0re 2021-01-13T19:38:07.223300Z

Maybe companies will continue to adopt it. We will read the next official stats

sP0re 2021-01-13T19:39:20.223900Z

2020 stats said that clojure are growing in the industry

sP0re 2021-01-13T19:39:31.224500Z

Do they publish new stats every year?

2021-01-13T19:41:55.226600Z

in uh, I guess it was 2008, it took me about a year (of dealing with insane interview processes, applications, being ghosted, getting job offers rescinded when a new manager was onboarded, etc) after my first fully remote clojure job to find a second fully remote clojure job

2021-01-13T19:43:40.228Z

of course going from not having a job, to having a job, is tricky, most people walk out of one and into another, works much better that way

πŸ‘ 1
seancorfield 2021-01-13T19:43:49.228200Z

@mircoporetti There has been a State of Clojure survey every year since 2010 (I think?) and I would expect Cognitect/Nubank to run another survey soon for 2021.

πŸ‘ 1
sP0re 2021-01-13T19:55:07.228500Z

It will be very interesting

alexmiller 2021-01-13T20:09:04.228800Z

it's coming...

alexmiller 2021-01-13T20:12:33.229300Z

needs another pass before I can post it

2021-01-13T20:14:10.229400Z

The State of Clojure survey is better at determining relative popularity among Clojure and ClojureScript developers of what they use it for, what dev tools they use, and things like that -- I don't see much of a way to use its results to tell you how popular Clojure is relative to other programming languages, unless the number of people responding grows or shrinks a lot (and the people responding are only a fraction of people using Clojure).

sP0re 2021-01-13T20:21:41.230300Z

Thanks Alex!

seancorfield 2021-01-13T20:22:28.230800Z

I was thinking of both the overall number of respondents (as a relative measure of increased visibility/usage) and more specifically the percentages of work use vs hobby use. The industry sector usage percentages are also interesting. Large, public surveys tend to have their own agenda and/or use measures that don't necessarily apply the same across different languages so it's hard to extrapolate from those to draw any useful conclusion about Clojure.

sP0re 2021-01-13T20:23:40.231600Z

Yes it's true but in the last one I read something about his adoption by the companies

seancorfield 2021-01-13T20:24:37.232700Z

e.g., one large public survey decided to rather arbitrarily just exclude several languages it had included in previous years; Clojure's "footprint" on StackOverflow is affected by its appeal to more experienced developers and therefore they post (relatively) fewer questions for the size of the community; Clojure also has its own http://ask.clojure.org site which further detracts from SO posts and is used as a specific way to garner feedback for changes in the language itself (and contrib libraries).

clyfe 2021-01-13T20:25:27.233800Z

LISP was 2nd most used language after C in the late 80s according to https://www.tiobe.com/tiobe-index/ Steve Yegge has some blog posts on google mgmt NOeing Lisp hard in the 90s wonder what happend that swang the pendulum like that maybe now will swing back some

seancorfield 2021-01-13T20:26:00.234200Z

tiobe isn't a very useful measure of anything πŸ™‚

seancorfield 2021-01-13T20:28:37.236500Z

(in the '80s I was mostly a C programmer but also did a lot of assembler across many different chips, and quite a bit of COBOL too -- aside from FORTRAN work, the only other language to cross my path, work-wise, back then was Prolog)

bronsa 2021-01-13T20:30:36.238100Z

google didn't exist in the 90s?

clyfe 2021-01-13T20:31:47.238900Z

I was googling in 98 so it did πŸ™‚

seancorfield 2021-01-13T20:32:24.239100Z

(also, back in the '80s, many universities were inventing their own functional programming languages and it wasn't until Haskell was designed that FP coalesced enough to be visible as its own thing... I mean, we'd had ML -- and Miranda, I guess -- for a while but that was about it... and Lisp wasn't really a functional programming language, as we know the term today)

bronsa 2021-01-13T20:34:08.239200Z

yeah I mean, it launched in 98/99, and yegge didn't work there until late 00's so I doubt he's talking about google in the 90s

sP0re 2021-01-13T20:36:08.239400Z

Clear, maybe is not always a negative thing if a language is a niche language. The most important thing I think it's that it will continue to be supported and it won't die. It doesn't necessarily have to become into the top 5 of most used languages.

Phil Shapiro 2021-01-13T21:18:07.239800Z

Not sure if anything changed at google due to this, but in 2010 they acquired ITA which has a pretty big lisp code base.

2021-01-13T21:39:13.240Z

Lisp was overhyped in the early-mid 80s as the means to develop magical AI. The US Department of Defense funded a large amount of research on that basis, but declined to renew funding when the promised magical AI never materialized. This caused the β€œAI Winter,” and a sharp decline in popularity of Lisp. Symbolics and other commercial Lisp vendors went bankrupt.