Introduce yourself!

Yes, the goal of the Eta team was “purity” – complete Haskell compatibility – and that’s part of why they looked down on Dierk and Ingo who had taken a more pragmatic approach with Frege. I recently checked in on the Frege community (on Gitter) and there’s a small core of users still relying on it (I suspect Eta also still has a small core of active users). I think it’s a real pity that the core Haskell team don’t take the JVM more seriously as a target: if I language doesn’t run on the JVM, I’m unlikely to be able to use it for anything more than a learning exercise.

I’ve had a love/hate relationship with Haskell ever since it appeared – because my PhD work was the design and implementation of functional programming languages in the '80s and all of us working in that field were hopeful that a unified FP language, combining the best that the various academics had created, would take over the world… I love Haskell until I actually try to use it to build something practical… then the hate comes back :slight_smile:

I have a similar feeling. I’ve used it for some work stuff, and it always makes me feel quite dumb, tbh. And while I have managed to make it work for what I needed it to, it never felt natural. With Clojure is quite the opposite, it matches my way of solving problems nicely.

That being said, as an undergrad (late 90s) I was around some seriously good Haskell people (formal methods guys working on Martin Löf’s type theory), and it was amazing what they could do with it (one of them is actually referred to in this old Haskell joke text: The Evolution of a Haskell Programmer). So, after my grad studies I came back to FP, via Haskell, and I’m happy I did, because eventually led me to using Clojure :slight_smile:

i always felt like tackling a new language each year sounds like a marvelous resolution ( in theory ), except for that fact that ( in practice ) it is just WAAAY too time consuming / fatiguing. :sweat_smile:

It certainly takes some time, but I don’t spend more than maybe 1-2 hour per day reading books, watching talks, tinkering with the language and digging into the wider ecosystem/community.

To be clear, I’m by no means proficient or even effective with all of these languages. What I find interesting is to get a high-level understanding of the languages and how they compare; their unique features, strengths and weaknesses, etc. Broadening my horizon. Reducing unknown unknowns.

anyway, when you say that you managed to pull if off more often than not over the past 8 years, i am thinking KUDOS! ( …just out of curiosity, may i ask what languages you picked? )

I sat down yesterday and tried to list them all from memory the first time… I’m sure I forgot something and probably got the order wrong. To my surprise, it seems like there are more languages than years! I realize now that I’ve only spent a couple of months with some of these languages for a particular purpose, so I wrote down the context/my main motivation for checking them out at the time.

Here is the list:

PHP - Quick and dirty websites (mostly WordPress) for various “friends and family projects.” You know, when someone asks “Hey, could you make a website X for me?”

Python (for work) - Pipeline tools for MMORPG asset baking for Windows, XBos and Playstation. Game server deployment orchestration. Later, data science/machine learning.

C/C++ (for work) - Huge and old codebase for proprietary client-server MMORPG game engine and 3D real-time rendering engine for DirectX and OpenGL. Games targeting Windows, XBox and PlayStation.

C# (for work) - Developed suite of proprietary desktop tools for game content creation. The tools were used by game designers to create NPC behavior, in-game items and loot system, skill systems, etc. Replaced a bunch of legacy tools written for Microsoft Access in Visual Basic. Later, worked on bespoke web applications (.NET MVC) for banks internal compliance processes.

Lua (for work) - Scripting language for game designers (embedded in C/C++ game engine). We also created an in-house IDE (written in C# .NET) with “Intellisense”-style auto-completion, etc. for game designers and scripters who had previously been using an old visual programming tool we made.

Ruby (for fun) - I dabbled with some web apps with Rails, hoping to replace PHP/WordPress at first. Wrote some simple language-learning scripts for to help my wife learn Norwegian. We also considered embedding Ruby into our game engine at some point, but opted for Lua instead.

Objective-C (for fun) - Got interested in developing apps for iPhone (prior to the advent of Swift). Read a bunch of the “Nerd Ranch” books, but never actually made any apps except some “toy projects.”

Classic ASP (for work) - Worked for a company who had a legacy CMS written in it… that had many active customers who we wanted to keep. Eventually replaced those sites with PHP/WordPress.

XSL (for work) - Pre-processing/re-formatting/layout of physical books prior to printing. Whoever thought is was a good idea to code in XML must have been a self-masochist.

Common Lisp (for fun) - Was gifted with a copy of “Land of Lisp” and absolutely loved it. This was also my first “real” experience with a functional programming language.

JavaScript (for work) - Working on SPA-application for bank compliance processes. Long story short: It was painful. I never want to touch JavaScript again in my life if at all avoidable, especially on the server-side (Node.js is an abomination). Prototypal inheritance is kind of cool, though.

Scala (for fun) - I enrolled in the course “Functional Programming with Scala” with Martin Odersky on Coursera. Tried to force myself to complete the course, but I eventually dropped out. The language seemed extremely verbose/complicated and the course material was way over my head at the time.

Erlang (for fun) - My interest was peaked by a former coworker years ago, when we considered rewriting parts of our MMORPG game servers from C/C++ to Erlang, primarily due to insidious memory leaks and race conditions. I put it off for a long time due to the alien syntax. Some years later, I challenged myself to learn this language because of its “weirdness” and I absolutely loved it. The low-level support for processes and message-passing (actor model implementation) is superb. The “happy path”-style coding with pattern-matching also makes for very terse and readable code.

Elixir (for fun) - Really liked Erlang, but the syntax was rather exotic. I wanted to see what Elixir brought to the table. I really like Elixir and it’s probably my favorite language so far. The community is fantastic.

Clojure (for fun) - Interest was peaked by a friend :slight_smile: Put it off for a long time because I am (was) allergic to the term “JVM.” I eventually swayed to check out some talks because I love Lisp. Rich Hickey’s talks blew me away and convinced me to take the plunge. I’m really enjoying it so far!

These languages are currently on my radar for possible future exploration:

R - It seems to be very useful for data science and machine learning with “tidyverse.” My day job is data science/machine learning and some of my peers are raving about R. It also looks more “Lispy” and functional than Python, which I enjoy. I also like the wholistic development environment with R Studio.

Elm - I’ve heard many people raving about Elm in various communities, especially in the Elixir community (prior to the advent of Phoenix’s Live View). It also seems to be a hot topic in the Clojure community as an alternative to ClojureScript. I would prefer to keep it all in the same language.

Rust - Looks like it’s shaping up to be a “safer C/C++.” When I was learning Erlang/OTP and Elixir, I kept hearing about interop with Rust for computationally heavy aspects through NIFs, etc. I suspect Clojure could fulfill the same need. Nevertheless, I suspect Rust will see an adoption surge.

F# - The algebraic type system looks neat and clean for domain modelling. I’ve watched several of Scott Wlaschin’s talks on functional programming and he uses F# for his examples. There’s something very appealing about the composability of algebraic type systems.

Swift - Really like what I’m seeing with “Switch for TensorFlow.” Chris Lattner is doing a fantastic job on this. I would also like to be able to develop native apps for iOS. Learned Objective-C some years ago, so I’m also curious to gauge the difference in experience for iOS app development.

Go - Their deployment story seems amazing with just a single artefact. The language itself seems a bit “boring,” but its adoption rate looks promising. Google seems to be committed to it as well, but who knows… maybe they’ll drop it at some point. They seem to have a tendency to drop things.

Haskell - I like the idea of static typing in general, and its type system looks great. I tried learning it some years ago, but couldn’t grok it. It felt too “mathematical” and impractical. Still keeping an eye on it from a distance. It doesn’t seem like I’m smart enough to use Haskell :smile:

I should also mention that I have spent most of my career as a technical project manager/team leader; not as an engineer. This also meant I was moved around a lot between different teams and projects, and thus exposed to many different technologies. As I do not have a university degree, I felt the need to learn to “keep up” with my teams, understand the code and partake in the conversations.

Edits: Expanded a bit and fixed some typos.

3 Likes

Hi all,

I’m Florian, from the Netherlands. I’ve been a professional software engineer for 5 years. +/- 2 years writing in C, and 3 years in Python. In my past time, I’ve been interested in other languages, especially functional ones, since they seem to work better with the way that I think (my background is in mathematics).
I think I’ve discovered Clojure about a year ago. Currently reading ‘The joy of clojure’, and learn-clojurescript.com. I’ve started on a hobby project this summer that should become a web app + backend, but which is mostly about learning new stuff.
I’ve been reading on the Clojureverse for some time now, and thought it was a good community to join more actively. So here I am :slight_smile:

6 Likes

Hello everyone!

I’m Wilson from Colombia. I’ve been a software developer for almost 20 years now, most of them working as a fullstack java developer and working remotely for more than 14 years for companies outside my country.

When I’m not programming I’m playing dolls with my daughter, learning, studying, riding motorcycles, taking pictures.

In the last 2-3 years I’ve been doing some little developments using clojurescript, specifically with reagent and re-frame but now I’m in a moment where I want to start learning this tools and all the ecosystem seriously.

3 Likes

Hi, I’m Ivan Pierre. I’m a Polymorphic Analyst programmer and R&D at kilroySoft, in the French part of Switzerland. Clojure addict in a non-addicted country. :frowning:

I started to have some interest in Clojure as soon as it became public, I searched some language to manage musical language. I first used Common Lisp and already began a Java compiler for CL but was struck on the bytecode generation.

When I found Clojure, all the problems were managed and I jump immediately into the code to see how it worked. I even began to read the commits from a version before 1.0 to see the history of the creation, the way he tried and retracted across all the choices.

I manage the Clojure Users, ClojureScript Users, and Clojure Jobs groups on LinkedIn since the beginning of 2010.

I was before at Google+ group, but I was like others wiped out when It stopped.

As I have tested Rust I saw that both Clojure and Rust are opinionated. But in the quite opposite direction. So I just try a proof of concept with a Rust compiler I’m breaking my teeth on. A functional language, with running compiling, dynamic variables, garbage collection into an AOT compilation, strongly typed, w/o garbage collection, very strong type, timeline, owning and borrowing verification is quite a challenge. But after an overwhelming beginning, searching a way into these paradigms, with hopes, breakdowns, libraries… Clojure gave the solution, the protocols… Just implement protocols with the traits, enabling all the way across polymorphisms.

For now, I work across the macros to ease to make wrappers between Rust and Clojure data structure in a manner it would be completely regular and have an automatic way to generate them, that will help when it will be completely standard.

I was helped with the persistent data structure, by the ‘im’ library created by Bodil that implement them in Rust. Afterward, I’ll have to begin to implement the clojure.lang library.

A problem will be to implement compilation and loading of executables. I’ll make it in three steps:

  • Evaluation keeping the code as data structures,
  • A virtual machine with a concatenation engine FORTH-like.
  • Machine code compilation, with a loading system for code, executed in memory. This has to be entirely done as there is, for now, no possibility to load dynamic libraries…

So I like projects impossible to achieve, so it’s more fun.

I’m sorry for my bad Globish as my country is more French, German and Italian, plus Rumantch (but not for me, or very little).

I’m glad to be in such a friendly and active community, even if it is not as massive as JavaScript, C, C++, C#, Java, … But it is not bothering… :wink:

So have a good time and happy programming.

8 Likes

Totally love the work you are doing there! I’ve started to use LinkedIn because of that, even.

3 Likes

Hi, I guess I missed introducing myself.

My name is Dimitar from Bulgaria, and in my a career I’ve been doing DevOPS (Kubernetes and Cloud Infrastructure), Application Support, little bit of Presales, Webhosting Support, and other aspects of operations in a Software company in including managing teams and clients on the above.

I’ve been drawn to programming for a while, writing little programs as a hobby or work tools and I recently decided to make a career pivot to Software Engineering, taking a sabbatical from work. I think of doing some personal projects to improve my skills and maybe even some open-source work if I can contribute somehow. Cross your fingers for me as I would love to work with Clojure full-time.

What attracted me to Clojure was the maturity of the community and the language, and I’m been interested in Lisps and Functional programming for quite a number of years. I really enjoy REPL-driven development, I’m quite used to troubleshooting using interaction and introspection and I never really enjoyed debuggers.

I drink both tea and coffee. My favourite is black tea with lemons or condensed milk.

3 Likes

Hi. My name is Diego and I discovered Clojure/Lisp concepts recently. The sheer amount of new computer science and programming concepts are already stressing me out (there are too many!).

How do you guys handle the there’s so much to learn! stress?

4 Likes

Hi! I have been learning Clojure/Lisp on and off for over 2 years now. I love lisp languages. I am very fond of clojure especially. I love the language. The thing is though, I hate clojure tooling. I dread using clojure in a project. it’s such a mess. It’s an absolute turn off for beginners!!! so just you know if there are people out there listening to beginners. Other than this, I still continue to learn the language!
Thank you for this forum!

3 Likes

If you take a look at this community survey lots of Clojure devs don’t use Emacs:

However the ones that do use it don’t because they have to, but because using CIDER and inf-clojure in Emacs can be quite convenient :slight_smile:

2 Likes

Hi I’m Jan. I’m from north-eastern Poland (aka. the end of EU). I’m doing Java in mostly telecommunication industry for a living but at the moment I’m a little on the crossroad of my career.
Clojure is my favorite pet language. I don’t use it (sadly) too much in my work projects, and even I’m very unconvinced to propose it as part of the solution but since discovery of babashka I’m abruptly less pissed off with shell scripting.

I’m a caffeine addict and usually drink a lot of yerbamate and coffee

5 Likes

Hi everyone, my name is Zach!

I’m a physics graduate student in the US. I just started writing my thesis, so I’ll be done soon and I want to transition to software engineering once I’m a free man :slight_smile:

I’ve been programming for about 8 years at this point. I mostly use Python, but I picked up Rust a few years ago and I generally like it when it’s the right tool for the job. I’ve done some writing over at tinkering.xyz and I’ve given some talks at local conferences and meetups.

I recently saw an article from Tyler Hobbs about a generative art technique called “flow fields.” That got me interested in generative art. There is a nice generative art library called Quil, but I didn’t know Clojure so I tried my hand at it with Rust instead. Hoo boy that was frustrating. I knew Clojure was a functional language and a Lisp, which checked off a couple of items on my programming bucket list, so I decided to learn Clojure in order to use Quil.

I’m pretty impressed with Clojure as a general purpose language, so I plan on using it for some personal projects once I get a better handle on it. My univeristy provides access to Safari Books Online, so I have access to the latest versions of a handful of Clojure books:

  • Programming Clojure, 3rd edition
  • Clojure Applied
  • The Joy of Clojure, 2nd edition
  • Web Development with Clojure, 2nd edition (looking forward to the 3rd edition when that comes out!)

I’m also looking forward to reading Elements of Clojure once I have a better grasp of the language. I’m sure all of these are great books, but in the interest of time I’m wondering if anyone thinks one book or another handles any given topic particularly well e.g. “this book handles state and concurrency well” or “that book has a good explanation of macros”.

I’m definitely a coffee person. I have a nice hand grinder and a temperature controlled kettle, so I have my whole process dialed in pretty well. When I run out of beans I typically pick a city/state at random and look for roasters there.

My biggest hobby is disc golf, and it seems like there’s a high concentration of both disc golf and Clojurists in Finland, so that’s definitely something I’m looking at in the future :slight_smile:

7 Likes

Hi Everyone, Charles’s here.

I’m from France and Clojure is my goto lang now, even if I worked with Rust, Common Lisp and Scala before.

I did a PhD in Computer Science on media news tracking. Most of my PhD was written in Clojure/script and I still use it as my hobby lang. I’m currently trying to industrialize my work, still using Clojure and I search opportunities for working in Sweden.

I’m interested in game dev (but didn’t fully grasp Arcadia yet), web dev, ML and scripting (babashka is such a blessing). I noticed in the shadows how these differents aspects improved during the last 5 years. Clojure is today such a joy thanks to all of you, I’m really glad.

Oh, and I drink coffee without sugar and overinfused tea.

8 Likes

Hi everyone!

My name is Andrey Listopadov (a.k.a Andrey Orst), I live in Moscow, Russia, and I can be shortly described as text editor enthusiast and fan of Lisp :slight_smile:. I contribute to many OSS projects related to text editing, and semi-regularly write about various text editors like Emacs or Kakoune, and about Clojure and another Lisp like languages at https://andreyorst.gitlab.io.

Clojure is my second main language I use for day job – the first one was C, and I wrote bare-metal stuff, but at the same time my interest in Lisps grew very strongly, so I’ve learned Scheme, yet I’ve never imagined that I will ever work in something completely different from C, like Clojure :smiley:, but now I do and I absolutely love it! I’m still relatively new to the language, and Java ecosystem, but I’m learning fast and Clojure has a lot of awesome material to dig in.

3 Likes

With joy. :smiley: And also with stride. I can only take in so much at a time and I let myself dig quite deep into a few things while almost completely ignoring other things. It is wonderful how each thing seem to burst into hundreds of new things and that that happens in all directions. The future is bright!

3 Likes

The thing I love the most about learning Clojure is precisely the fact that there’s so much to learn! Personally, I start to find programming quite boring when I just rehash the same old code patterns all the time. The learning-by-doing is where I find the most joy in the work. Luckily, many of the advanced Clojure topics you can learn on a need-to-know basis, they’re not explicitly required for all types of issues. I rest assured that Clojure is a sound foundation to build on in most directions I wanna go.

2 Likes

Hello ClojureVerse, it’s Csongor.

I know, it’s Hungarian :slight_smile:

In short, I’m a developer (with degree in Computer Science) who designs (self-taught, works featured in online galleries) websites and apps. I prefer the front-end but pretty comfortable on the back-end when necessary.

Since 2006 I’ve used many languages and frameworks - PHP, Ruby, JavaScript - and recently I’ve got fed up like Rich Hickey. Instead of writing a new Clojure I’ve found Clojure. Better for everyone :stuck_out_tongue:

I pursue interactive design and for that I need a powerful language. I hope Clojure/script will do it. More, I’m pretty sure.

I’ve started learning the language and the ecosystem a few weeks ago. On both ends, by writing code, and trying to get the big picture by watching tons of videos on YouTube. So far so good, I like it.

Occasionally I write important findings to https://osequi.substack.com/. If you, eventually, find them hilariously incorrect - please let me know. Or else, I’ll ask questions here, sooner or later :slight_smile:

My goals are simple. Finish a few current React / Typescript projects to sponsor learning Clojure. Then forget Typescript, stick with React and Clojure. Then find a Clojure job to sponsor learning Interactive Design. Then start making wonders.

Thanks for making me feel good from the first moment here,
Keep up,

Csongor

7 Likes

Hi all!

My name’s Avi (short for Avital). I’m from NY, and I currently live in Richmond, Virginia. I’ve also lived in Japan, and I speak and read Japanese :jp: :us: I’ve worked now for a few years as front-end React developer and software engineering instructor.

Lately I am volunteering as a Clojure developer for Athens Research. I’m particularly interested in Clojure for education, literate programming, reproducible research, software development, machine learning… Actually, I think I’m interested to learn everything that can be done with Clojure :grin:

I love both coffee and tea, though I’m trying to cut down on my caffeine to improve my sleep quality.

Recently I’ve been on a 30 Days of Clojure Challenge where I post one Clojure notebook each day on the Clojure Koans. You can see the full directory of my studies.

Other things I am passionate about are:

  • EduTech, EdTech, and eLearning (how to improve education through technology)
  • Non-Violent Communication (how to promote peace and compassion)
  • Anki Spaced Repetition (how to remember things forever!)
  • Meditation (how to improve my mind)
  • Acro Yoga (how to improve my communication skills and body awareness)
  • Rationality, cognitive biases, and logical fallacies (how to improve my problem solving skills and detect BS in myself and others)
  • Effective Altruism (how to make the world a better place)
  • Bullet journals and list making in general (how to stay organized & increase my impact)
  • Accessibility or a11y (how to improve everything for everyone)

Things I would like to learn more about:

  • How to make knowledge graphs programmatically
  • How to create my own LMS
  • How to make simple robotics
  • How to create my own apps with Clojure/ClojureScript
  • How to make the world a better place through programming
  • How to make an artificial intelligence tutor that can efficiently and effectively teach me anything I want to learn

Resources I’ve used to learn Clojure so far:

6 Likes

My name is Daye, I’m from Beijing, I like driving cars in my spare time.
I want to try clojure for my daily job – I’m a quality engineer for VDI(virtual desktop infrastructure) focus on Linux desktop.

3 Likes