The Clojurescript community is friendlier, IMO.
I've been to Elixir conferences, and they felt like people were just encouraging each other to build solid software WITH each other. I've not seen this level of camaraderie for other programming language communities.
Elixir devs — and I am super biased here — are a special bunch :)
Sure, we have Luminus in the Clojureverse but its just not as easy and straightforward as the Rails-like experience of Phoenix. You don't have Hickey personally responding to comments on HN/Reddit etc.
I've won the lottery. There's no other way to describe it. Every day is Saturday. I wake up on most days deciding what I want to do. It rekindled my passion for programming. I travelled more, went on more bicycle rides, cooked more, and spent more time messing in the garage. I always have time for friends too.
The downside is constantly feeling that I am squandering that time, that I'm not adding enough bullet points to my life resume to justify my lifestyle. It's trivially easy to do things "next Saturday" when I have 7 times more of them, but I end up feeling like I should still use every single one of them.
Digital detox is extra important. I keep an eye on time spent on the computer. It's too easy to browse mindlessly for hours, instead of doing something rewarding and meaningful. The Internet is the biggest threat to my goals, and I try to keep it tamed.
Another problems is that my friends are still at work. They're busy, then tired. They're also not super interested to hear about my weekday adventures, obviously. It's a little lonely in that sense.
Career-wise, I am still writing code (an average of two commits a day), but not in a team context. My skills are still fresh. I'm still running a website too. I often get job opportunities through contacts, so I don't think I would struggle to find work.
Is Java dying, what is its future? Where is Kotlin heading, currently it is the hottest language for Android development, can it also compete with Python in some branches?
Java will likely never truly die because of legacy applications. It's also still firmly set in the market and that is not looking likely to change in the future. Its also the king of microservices with Spring Boot.
Kotlin could well take over the mobile space. Many of the touted benefits of Kotlin are slowly being added to Java itself.
Java itself may decline as a language, but I'm near certain that the JVM will be with humanity forever. Someone will be programming in a JVM language somewhere. Whether it's some future language or Java 532.
You don't need to use <new framework on reddit>! You don't need JSX! You don't need <CSS alternative>! Surely you still don't need to support <version of IE released in 1997>!? Vanilla JS is fine! Most modern browsers have rich enough feature sets that you don't even need transpilers like babel or dozens of polyfills (or Webpack, which almost nobody needs unless you're averaging 10M+ views a month...)
Or maybe you do, or think you do. Maybe your bosses made these choices in the past. Maybe you had to compromise in a team. In which case, I get it. You call the shots or you're working for someone who does.
But don't blame the language, the frameworks, or the ecosystem. JavaScript stepped up to the plate because nobody else did. Electron is there because nothing else could provide the same level of power for total novices to come in and make groundbreaking applications. Node is there because nothing else let you hire a guy who could handle literally every single aspect of your business's digital presence, from front end sites to internal employee portals to mobile apps to APIs to vendor integrations. And there's so much stuff on NPM because everyone who works in this space for a few years always gets a brilliant idea for some abstraction that could fix everyone's lives. Many people who make packages on NPM have only a few months experience programming in general, which is why (1) we have so many dumb problems that "professional" software organizations avoid and (2) there are so many new frameworks all the damn time.
And that's a good thing! The whole point of our field has been to make computers more helpful to humans. A dumb little language like JavaScript (or Python if that's your cup of tea) is the perfect candidate to take any normal person and get them working on critical business problems, whether those require web dev skills or data science or anything in between.
For most of computer history, the role of today's pioneers has always been to offer up their shoulders for the pioneers of tomorrow to stand on. I'm sure bare metal logic electricians made fun of COBOL developers when it first came out, and COBOL developers made fun of C developers, and C developers made fun of Java developers, and Java developers made fun of Python developers...JavaScript is neatly filling the need for a "stepping stone" language that gives everyone the power to build their own applications, as opposed to using someone else's application which previously cemented the wall between "users" and "developers."
I'm excited to unleash a world where everyone has the power and know-how to develop their own applications, social networks, data processing services, etc. It sure beats a world where only an elite few have the power to manipulate society and capitalism to such a large degree.
-
Full disclosure: I'm currently writing a web service back end for my small business in Racket, so I'm not just a JS developer. However, I have 4+ years of Node experience professionally and recreationally, having built Express/React/Mongo web apps, Electron desktop apps, and React Native mobile apps, so I've experienced most of the ecosystem at this point I think. It's really not that bad.
Elixir libraries are also pleasantly backwards compatible in my experience (with the occasional exception to be sure). At my company the effort required to maintain currency has been 1/10 that of Ruby in my experience.
I frequently hear that elixir lacks the 3rd party library support of Ruby. If you use sheer quantity as the criteria, then definitely, but in the 6 years I’ve been using Elixir, this has interestingly never gotten in my way. I’ve always either been able to find a library or the problem simply isn’t gnarly enough to deserve a library. Maybe I just haven’t picked the right problems with which to experience this lack though :).
All that to say I think Elixir and Clojure are very similar in these regards!