Introduce yourself!

Why not Eta? :slight_smile:

Frege came first and whilst Eta seemed to burn bright, its maintainers were pretty condescending about Frege, and now it looks like Eta is abandoned ā€“ and yet Frege continued to get updates.

I created a Frege plugin for Leiningen: Frege/frege-lein-plugin: Support Frege compiler via leiningen (github.com) (and it still works ā€“ I just tested it!)

Yeah, I remember seeing Frege years ago. IIRC, the advantage of Eta was that it was closer to actual Haskell (as in, Haskell libraries would compile in Eta). Pity the devs dropped the ball. I had had a look when it came out, and I remember submitting a fix to their tutorial docs (which were really nice), but tbh, after picking up Clojure, I havenā€™t really done anything Haskell-relatedā€¦

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