4 ms·
This comment probably will be downvoted since it doesn't represent popular opinion. I think everyone who has chosen a career of a software developer sooner or
by iLemming 7y ago
This comment probably will be downvoted since it doesn't represent popular opinion.
I think everyone who has chosen a career of a software developer sooner or later needs to seriously evaluate Lisp and Lisp dialects - Racket, Clojure, CL, Emacs Lisp, Fennel, etc.
Lisp has certain qualities that most other languages don't (perhaps except for Smalltalk).
I have personally learned, tried, and implemented working software in numerous different programming languages. I'm not trying to brag about it, that's not the point. The point I'm trying to make is the following:
I've seen many programs - systems, small, medium, and of significant size, and honestly, only systems written in Lisp can give you this genuine feeling like you are dealing with a garden. Even in systems where things get incredibly messy, you still can organically keep growing them and keep adding more and extend existing stuff. They usually do not crumble under their weight.
Take, for example, Emacs. Arguably it is probably the most extensible piece of software that humanity has ever created. It is wildly malleable. Things you can do with Eisp are borderline insanity; you can change things on the fly without even having to restart Emacs - sometimes, it feels like some sorcery. Last time I checked - I pull something over 400 hundred different packages in my configuration. And somehow things just work. Yes, from time to time, "abstractions start leaking," and things would break, but never to the point that it becomes completely unusable. Check out GitHub stats. Github alone contains an incredible amount of Emacs lisp. A language with one sole purpose - configuration. Basically, it is a glorified YAML for Emacs. And the people who wrote that code - most of them never had met each other. They have never worked in the same org. They didn't have to follow strict guidelines or standards. It is a messy, wild, and lawless world. Emacs ecosystem defies any logic. If you think about it - it should not work at all, yet it does. And it's been working for over 40 years.
Many people. Some brilliant individuals every once in a while would claim: "Well, Lisp is just old. Give language X a few more years, and it gets the same and even better features..." And that's been going on for over six decades now. Ironically, almost every single language that is on top of TIOBE and RedMonk today, has borrowed many ideas from Lisp, except the most fundamental one. The concept of homoiconicity. The benefits of homoiconicity are incredibly underrated.
You may dislike or even hate Lisp, but trust me, years later, when Python is no longer sufficient for our needs; when Java becomes too expensive to maintain; and Javascript transforms into a drastically different language - Lisp still would be used, and systems written in it would be thriving.
Learn Lisp. It will make you a better programmer. That is guaranteed. Don't take my word for it. See what the world known CS experts have to say about it. Not a single one has ever said: "Lisp is a waste of time."
- aprdm 7y agoErr I would think the likes of C/Python/Java still being out there with jobs available in some decades are much higher than any Lisp language. In fact there are probably more Cobol jobs than Lisp jobs today. After having played with Clojure (as in, read the book, and did some systems) I still don't know what the kool aid is about. Maybe is because I have been doing python for a long time...
- iLemming 7y agoJobs. You can build a house employing a crew of contractors. But would you let them redesign your garden? Perhaps, you wouldn't. They'd destroy it by walking around in their heavy-duty boots. There always will more jobs for contractors and fewer jobs for gardeners. Going back to using Emacs as an example: You know that no one, not a single developer involved in Emacs, has ever gotten paid for it¹ to do it? There are precisely 0 jobs on the market for working on Emacs. However, I agree with you on one thing - Lisp is a hard-sell if you've never done it before. It took me a few years to finally understand what the "kool-aid" is about. __ ¹ Aside from some voluntary donations
- aprdm 7y agoI don't think I understand what you are trying to say :) Either you're saying that the real garden designers can only use Lisp as a tool or you're saying that no other popular OSS projects have been mostly developed by volunteers. Both cases aren't true so if you're trying to say something else then please elaborate.
- iLemming 7y agoI'm saying that measuring the success of a software language/methodology/tool in the long run (decades of time) based on the popularity of it at any given point in time is useless. Also, I'm saying: Lisps allow you create "gardens", ergo would always require fewer people to build, grow and maintain projects. And in the long run, ROI from choosing Lisp would be much higher, even though languages that typically require more people would be always more popular. It's a known fact - to build and support big Java projects you need to have in order of magnitude more people than to build similar projects with the same set of features in Clojure. ROI from choosing Clojure is higher. Although Java "generates" more jobs.