7 ms·
Whenever a post about Lisp graces the front page of Hacker News, I typically observe two main categories of commenters. The first group is composed of devout Li
by submeta 3y ago
Whenever a post about Lisp graces the front page of Hacker News, I typically observe two main categories of commenters. The first group is composed of devout Lisp enthusiasts who have either applied it to solve problems in the past or continue to utilize it in their personal and professional projects. They are well-versed in the numerous advantages of Lisp over many contemporary programming languages. Their familiarity with the language extends to its versatility in writing DSLs using its macro system, its adaptability in altering running programs, and its debugging prowess. They value the ability to scrutinize the internals, apply multiple programming paradigms, and appreciate various other benefits.
The second group, conversely, is characterized by its perennial question whenever a Lisp-related article surfaces: "Does anybody use Lisp these days?" In response, the first group can usually cite a small collection of projects that still use Lisp, including Clojure shops, a Brazilian startup, and the Hacker News website, which is written in Arc, among others.
This dichotomy serves as an apt illustration of how one's perspective can be distorted, causing them to overlook the broader reality. As much as I admire and appreciate Lisp (and I genuinely do!), it's hard to ignore that the technological world primarily operates on languages such as C, Java, JavaScript, Python, C#, and a handful of others. The communities surrounding these languages seldom feel the need to prove their viability by listing projects that use them.
The undeniable truth is that the world has largely embraced C-type languages, and in doing so, has achieved remarkable feats. The "absolute best" programming language was not a requirement for this progress.
Management professor and esteemed writer Peter Drucker offered valuable insight in his book "The Effective Executive." He stated that effective executives don't become preoccupied with the tools they use; instead, they employ whatever tools are necessary to accomplish their tasks. This notion, I believe, is applicable not only to management but also to the realm of programming languages.
- kunley 3y agoI don't know why the observation above gets downvoted....
- davexunit 3y agoIt comes across a little dismissive (like "all due respect but <disrespect>") to me, as if Lisp programmers are not making good choices by going against the grain of the strong network effects of mainstream languages. I agree that trying to constantly justify why we choose one thing over another (how many times can we point out that Naughty Dog used Lisp for Crash Bandicoot and Jack and Daxter??) is not a good use of time, though, unless of course you're trying to get someone to give you money. Why do I use Lisp? The vibe is good and I'm usually happy when I'm hacking.
- dunefox 3y ago> The communities surrounding these languages seldom feel the need to prove their viability by listing projects that use them. They also don't get bothered about the viability of their languages every time they're mentioned.
- davexunit 3y agoIn my experience this happens because people tend to react with skepticism when you tell them you used Lisp for something. You can't just tell someone about a neat thing you made without a high probability of being asked to justify why you didn't just use Javascript. So, Lisp people tend to develop some stock answer when they're inevitably asked about it.
- p_l 3y agoBack in 2008... In a world where Facebook was eating social media in PHP, Google was famous regarding its python use, Ruby on Rails was the startup darling (and that was before byte compilation!)... Just mentioning you had a project in Lisp would get you questions like "isn't it interpreted and slow?" - fortunately good business clients rarely care about language something is written in...
- jb1991 3y agoDon’t forget that, perhaps one of the greatest accomplishments of mankind, landing on the moon, was because of a bunch of lisp code.
- submeta 3y agoClassic example of "cherry-picking" or "selection bias." The reality is this: Many of the technologies we use daily operate on C, through Unix/Linux/Windows, and the whole web runs on JavaScript, among other languages. Yet, we don't see constant mentions or braggings about these accomplishments.
- jb1991 3y agoI don’t see it as cherry picking, rather, a celebration of what is possible. We’re all just having fun here, enjoying the different ways to do things in an interesting industry. It’s important to remember that quantity and quality are not the same thing.
- fredrikholm 3y agoSource? The only LISP-in-space I know of was Deep Space 1, some 20 years after the moon landing.
- jb1991 3y agoSorry, I was remembering incorrectly. It was the mars landing, the Pathfinder, not the moon landing.
- monsieurbanana 3y ago> The undeniable truth is that the world has largely embraced C-type languages, and in doing so, has achieved remarkable feats. The "absolute best" programming language was not a requirement for this progress. It's hard to argue with that, but I'm not sure what point you're trying to make. Should we stop striving for better programming languages, because the status quo is good enough? Or just stop for lisp languages but try to innovate in C-like languages?
- submeta 3y agoI'm not suggesting we should stop striving for better programming languages or even that the status quo is good enough. My point was not to discourage innovation in Lisp or in any other language. Quite the contrary, I believe that the world of programming is constantly evolving and not revolving solely around whether Lisp is the best. There is a plethora of new languages being generated that are designed to solve problems in unique, innovative ways. For example, languages like Rust, Elixir, Go, and Haskell are much younger than Lisp and are great in their respective fields. You know, in some ways, the situation often seems reversed. Some Lisp enthusiasts treat non-Lispers as if they are yet to grasp 'the truth', implying that with enough effort and enlightenment, they too will understand and embrace Lisp. While I recognize the merits of Lisp and the passion of its community, it's important to remember that the technological world isn't static; it continues to evolve and innovate. The reality is this: The world has moved on. A multitude of new languages, paradigms, and methodologies have emerged, each excelling in its unique way and suited to specific problems or contexts.
- medo-bear 3y ago> The reality is this: The world has moved on. A multitude of new languages, paradigms, and methodologies have emerged, each excelling in its unique way and suited to specific problems or contexts. When talking about programming languages, these type of comments are equivalent to those you describe being made by some lispers claiming to know "the truth". Plenty of languages have their evangelists and their detractors. Common Lisp is no different. Use the tool that suits you. Religious attitude toward anything is likely to be counter productive
- erik_seaberg 3y agoHardware has drastically improved. We should have used the extra capacity wisely to catch serious mistakes and automate away our low-value grunt work. Instead we deliver systems that still randomly blow up only faster, and I do largely blame that on the languages we use. I’m not going to say Lisp got everything right. Everything was mutable until Clojure came along, lack of type checking and inference hurts, and the condition system was so complicated that it’s been mostly ignored. But it’s still unrivaled in backing the domain-specific languages we should graduate to.
- lispm 3y ago> The undeniable truth is that the world has largely embraced C-type languages Extremely popular languages like Python and Javascript aren't C-type. Neither is Java particular C-type (besides a few syntactic features).
- minhm 3y agoBeautiful (parenthese tree), powerful, energy efficient (http://greenlab.di.uminho.pt/wp-content/uploads/2017/09/paperSLE.pdf http://greenlab.di.uminho.pt/wp-content/uploads/2017/09/pape...), standardized, battle-tested, and with a glorious past, Lisp reminds me of Gollum's "the precious" ring in Peter Jackson's "The Hobbit" series, and just like the ring, it can make one invisible just by using it too. Maybe it's one of those "precious" tools out there, being the best or not.
- lproven 3y ago> it's hard to ignore that the technological world primarily operates on languages such as C, Java, JavaScript, Python, C#, and a handful of others. I think you are focusing on the trees and so not seeing the size and the shape of the forest. Most organisations use C and languages implemented in C, on OSes implemented in C, because they do the job, the people are cheap and readily available, and the dominant OS is free and costs nothing to deploy. Which can be reduced to: Most people use the tools most people use. That's not a very useful observation, but it poses an interesting question: Why? That's easier. Here is the shape of the outside of the answer: They use them not because they are good -- they aren't very good, measured objectively -- but because they are ubiquitous and cheap. Other tools are better, and just as free, but then the people cost more, and the associated tooling costs more. (Frameworks, supporting libraries, deployment costs, whatever. E.g. it's very cheap to deploy Javascript because all you need is a reasonably modern browser, and those are free and almost all OSes have them.) Those are the externalities, in a manner of speaking. But the other side of the answer is the inside: the area, not the shape. The mainstream, conventional, software industry is huge, and hugely lucrative. Writing just-barely-good-enough apps, minimum viable products, gets you out there and making money. Then you can put a share of your revenues into incrementally improving it. Every now and then you can push out a big new version, with disruptive changes. You can charge for getting the new major releases, but more to the point, once an old version is officially obsolete, you can charge for continued fixes to the now-obsolete versions. It makes money. It's an ecosystem, a food chain or more accurately a web. Some members are predators, some are prey, but they all work together and if you just eliminate either predators or prey, the system collapses. In other words: Most people use the tools most people use, because most people use them, because you can make big money from volume of cheap junk. But there is another model of making and selling stuff: make small volumes of really good products, using highly skilled workers, and sell those high-quality products in very small volumes but for very high prices, to discerning customers who know they're buying something built to last and who may not come back to you for new versions every couple of years, but that's fine if you made a couple of decades' revenue from them on the original sale. Because cars are a long standing metaphor in computers and computing: If you have a mass market for cars, then you get cheap cars, and everyone's cars are much the same because they are built down to a price and mass produced. These car consumers can be upsold some extra buttons and minor features, and a lot of those combined may double the price of the car. (This is how different Linux distros survive. Some have more buttons. Some have A/C. Some are fully automatic, others have fully manual controls. Some have power steering, some don't.) But such a market also supports hand-made sports cars (and, inevitably, superficially similar cheaper sports cars from the mass-producers). It also supports vast tanklike cars that weigh as much as 10 normal cars, but produce 10x the engine power of those cars so they still perform. Very different products, but they cost an order of magnitude more than the mass-produced cars... and do the same job. Some owners of mass-produced cars aspire to own fancy sports cars, and some aspire to own luxury behemoths. Most never will. People who don't care much for cars and just see them as a tool for getting from A to B do not see why anyone would pay for fancier cars. That's OK, too. Some people live in other countries and see more clearly, because for them trains and bicycles are a perfectly viable way of getting from A to B, and are both cleaner, healthier, use less resources and create less waste. Tools like Lisp are the artisanal hand-made cars compared to the mass market. People who've never used anything but cheap mass-produced tin boxes can't even imagine that there are things that are so much better, let alone that in the long run, you might be better off using them. As Terry Pratchett put it: « “The reason that the rich were so rich, Vimes reasoned, was because they managed to spend less money. Take boots, for example. He earned $38 a month plus allowances. A really good pair of leather boots cost $50. But an affordable pair of boots, which were sort of OK for a season or two and then leaked like hell when the cardboard gave out, cost about $10. Those were the kind of boots Vimes always bought, and wore until the soles were so thin that he could tell where he was in Ankh-Morpork on a foggy night by the feel of the cobbles. But the thing was that good boots lasted for years and years. A man who could afford $50 had a pair of boots that'd still be keeping his feet dry in ten years' time, while the poor man who could only afford cheap boots would have spent a $199 on boots in the same time and would still have wet feet. This was the Captain Samuel Vimes 'Boots' theory of socioeconomic unfairness.” » Some of us live in countries with really good public transport, and know that it's possible to replace the entire category of personal automobiles with something better for everyone... But try telling that to an American. They won't even try to understand; they will instead earnestly explain why they need cars, and their country is better because everyone has cars. More wild generalisation: In the late 20th century, there was another model of software construction, an alternative to the "Worse is better" model. The WIB model is that one type of software fits all, and build one (or a very few) minimum viable operating systems, from minimal viable programming languages, and make them cheap or give them away for free. The artisanal software model was more common in Europe and Japan: pick the best language for the job, and build tiny bespoke OSes for each category of device. Have multiple whole incompatible families of desktop OSes, and families of totally different unrelated server OSes, and families of different OSes for handhelds and games consoles and school computers for teaching kids, and so on. Unify them, minimally, with some standard formats: network protocols, disk and file formats, maybe some quite similar programming languages in lots of weird little nonstandard dialects. iTron, RISC OS, SiBO/EPOC/EPOC32/Symbian, QDOS/Minerva/SMSQe, Con-Tiki, Symbos, GEOS, Novell Netware. Keep the complexity are the market level, in which multiple radically different products compete for sales in their market segments. Lots of overlap, lots of duplication... but also competition, evolution, rivalry, advancement. The software remains small and relatively simple. This aids development, but mainly, it keeps the resource requirements low, so the devices are cheaper. Human brainpower is cheap: spend it on clever software to enable cheap hardware. The approach I am calling WIB is of vast general-purpose OSes which can do anything, so you only need a handful of them... but you need massive hardware to run it, so devices powered by WIB software are expensive, and very complicated, and the software is vastly complicated, so you need armies of programmers to maintain it, meaning frequent updates, so you need lots of storage and fast connections. And there is no overview, because it's much too big to fit into a single human head, so improvement is incremental, not radical. The end result is a handful of vast monoliths, full of holes and leaks, but a vast economic machine that generates continuous income and lots of jobs. When you live in one of these monoliths, the fact that there are happy accomplished people working in weird tools making weird little products for tiny markets seems incomprehensible. Why would they? Most people use the standard tools, meaning the ones most people use. So obviously they are good enough: look at these trillion-dollar corporations that use them! So obviously, there isn't really any point to the weirdoes.
- r9550684 3y agooh look, it's the balanced and measured lisp skeptic. If you're going to construct commenters taxonomy, you should include yourself in it, because "I really like lisp, but surely we can rationally agree that the world/we/commercial shops/society has moved on to C" balanced and measured meta-commenter has existed since at least usenet comp.lang.lisp lisp days. oddly enough this kind of meta-commenter primarily appears in lisp threads. possibly because lisp is one of the few languages that started in 1950s and is being used still, to the utter confusion and dismay of the balanced lisp skeptic. this meta-comment fundamentally has a faulty premise, that the single dominant language development paradigm is the exclusive one. this was not true in the 90s, when it seemed all but inevitable that the computing world is going to standardize on c++ or java, but it's particularly faulty now, when heterogenous stacks are significantly more popular and the overall number of developers, with varied interests and preferences has increased. the second faulty premise is that the mass of development and corporate preferences somehow matter in viability, particularly in such an individualistic field as computer programming. personally I reach for Common Lisp when I need to solve a problem where I understand neither the problem nor the solution, what's known as explorative programming. having established the parameters of the solution, I can then communicate the architecture to senior programmer team. the solution then will be communicated by people like you as "success story for Java", ignoring the fact that the successful architecture might have not even materialized without a lisp prototype. many lisp success stories are like that. if you already understand your solution space, then the value of lisp is equivalent to any other dominant language, and things like library support and easy development availability become core differentiator. lisp is not the only language in this space, smalltalk come to mind, Julia, and to a lesser degree mathematica and Matlab. so we're going to continue to use lisp in our special and mysterious ways to the utter dismay and confusion for people like you "but guys guys we've moved ooon!"
- nerdponx 3y agoIt's just weird how people like to show up in threads about niche languages specifically to tell people that their language is dead and/or that C or Go is better. Let people use the tools that they like.
- 3y ago
- kstrauser 3y agoI write mostly Python at work. I do some Rust and a smattering of JS for personal stuff. Those are good languages with huge ecosystems and are very practical choices for productive work. That said, it feels so good to think in Lisp sometimes. It’s just elegant. When I write Python, I see code manipulating data. When I write Lisp, I see data flowing through code.
- vindarel 3y agoHey there, newer member of the first group here. Please see https://github.com/azzamsa/awesome-lisp-companies/ https://github.com/azzamsa/awesome-lisp-companies/ to update your meta-comment. So, is CL used in the industry today, yes or no? Personal note: I much prefer to maintain a long-living software in Common Lisp rather than in Python, thank you very much. May all the new programmers learn easily and all the teams have lots of ~~burden~~ work with Python, good for them.