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.
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.
hmmm... firefox says that ublock origin block list blocks appflyer, are they an adware company?
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.
Ya, pretty crazy the scale they describe
I feel I hadn't heard of them before, but they seem like quite a successful Clojure startup
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.
So should be a pretty easy switch from an existing Ring app with an existing adapter like Ring-jetty to Donkey
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?
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
That's the part I was looking for, thanks!
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.
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
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.
jvm can be polarizing to individuals but it has a huge market share and doesn't resign Clojure to a niche (imo)
is elixir not a niche language?
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.
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
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.
So why not?
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.
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.
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.
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 π
Thanks for your answers π
I mean (a) and the presence in the industry
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.
It's growing a lot.. I don't know about Clojure. LinkedIn offers are quite the same number
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.
shrug I would be surprised if it actually gets anywhere near as big as ruby or python, let alone C
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
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.
I believe FORTRAN slightly predates Lisp
ah yeah i had that backwards
thanks. was thinking fortran
"mother-language" is vague enough, who knows what relationship is implied
"lisp" itself is a nice vague term
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.
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.
Clojure is a niche language used by 10,000s of developers every day in 100s of companies, both big and small
As a smaller pool, it also tends to have a higher than average skill, experience, and salary level
All of those assertions are backed by data from various surveys
there is a big pie, a small slice is a lot
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.
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 π
Thank you another time, see you in the beginners section
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.
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
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
The main disadvantage that I see personally is that itβs much harder for any of us to get a fulltime job programming Clojure.
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.
I see skilled Clojure programmers here all the time saying theyβve never been employed to write it.
It means that companies are started to adopt it maybe
It's a good signal
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.
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.
It's true
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
Maybe companies will continue to adopt it. We will read the next official stats
2020 stats said that clojure are growing in the industry
Do they publish new stats every year?
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
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
@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.
It will be very interesting
it's coming...
needs another pass before I can post it
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).
Thanks Alex!
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.
Yes it's true but in the last one I read something about his adoption by the companies
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).
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
tiobe isn't a very useful measure of anything π
(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)
google didn't exist in the 90s?
I was googling in 98 so it did π
(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)
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
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.
Not sure if anything changed at google due to this, but in 2010 they acquired ITA which has a pretty big lisp code base.
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.