> 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?
My impression is that language innovation in lisp dialects is largely stagnant at present.
Common lisp is flexible enough that it's reasonable for projects to stay within the immutable standard, so only library progress happens.
Scheme has given up on the minimal side to the design and become over-obsessed with complicated macros and static compilation. I suppose that's change, if not progress.
Clojure I can't say much about. I like the hashed trie and do not consider the JVM connection a feature. Maybe that is still changing over time.
Racket is still doing its thing, but the current push (Rhombus) seems to mostly be about removing S expressions.
Kernel is a different lisp. Tragically we lost the author too young. Kernel deletes most of the limitations and cruft of _scheme_. It would benefit from a sbcl-level of development effort which doesn't seem to be happening.
I'm interested anything else strange from the lisp world if people have references.
Innovating in the C derivatives continues at pace of course.
There is language innovation in Common Lisp, but it's either things that need to be in the standard (example: package local nicknames) or in improved implementation of things in the standard.
The latter one I point to often is the problem of efficiently compiling a dynamic language, where (for example) the offsets of slots in objects can be changed at run time, or (another example) where the set of methods for a generic function can change at run time.
There are also innovations in implementations. A recent one was the development of CLASP, a Common Lisp implementation with deep C++ / LLVM integration.
"Clasp is a new Common Lisp implementation that seamlessly interoperates with C++ libraries and programs using LLVM for compilation to native code. This allows Clasp to take advantage of a vast array of preexisting libraries and programs, such as out of the scientific computing ecosystem. Embedding them in a Common Lisp environment allows you to make use of rapid prototyping, incremental development, and other capabilities that make it a powerful language."
That description sounds great but the docs are less compelling. The integration is you can write a C++ file that exposes individual functions to lisp, https://clasp-developers.github.io/clbind-doc.html.
There doesn't seem to be any way to feed C++ headers into clasp and get out template instantiations accessible to lisp. It looks like SWIG or pybind but you write the shims yourself, and it's function pointer based so templates are wrapped one instantiation at a time.
Garbage collection in the docs is a one paragraph stub which suggests you're on your own for lifetime management across the languages.
Cool thing to exist. Seamless interoperation is either overselling it or the docs are out of date.
There is a bit more to it. It allows one to create mixed C++ / Lisp projects with memory management, CLOS methods for C++ classes, CLOS subclass of C++ classes, Lisp and C++ gets compiled to LLVM-IR, debug source output mixing compiled C++ and Lisp frames, ...
The only innovations in the C languages are in making it more like Lisp or working around the deficiencies of a syntax with no macros by adding more syntax on top.
Clojure innovation seems to have largely slowed down, at least from the language maintainers. The last few years have seen lots of little bug fixes, expanding the CLI tool, and better interop with later versions of Java, but nothing major.
> I'm interested anything else strange from the lisp world if people have references.
Hissp just released version 0.4.0. It compiles Python tuples to Python expressions and has multiple readers with different characteristics, not all of which are based on S-expressions.
I'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.
From where, to where? You're saying nothing really.
Most movement I've seen in the last 25 years has been because of price, ease of use for beginners, learning materials, marketing and tooling. Intrinsic qualities of the language matters only to a handful of enthusiastic early adopters that I would put in the marketing category.
IMHO Lisp lacks ease of use for beginners and tooling, it's not about the language at all.
We have come a long way from a time when dynamic languages like Perl, Python, and others were not yet prevalent. Back then, Lisp stood out as a unique problem-solving tool compared to languages like Pascal or C. However, today we live in a world where we have highly capable lisps and dynamic languages that allow us to explore problems quickly and with less verbosity. In this newer world, it seems that younger generations are not inclined to deal with s-expressions. I don't believe it's solely the marketing of other tools that has made them the go-to choices.
I don't think the syntax of Lisp has a damned thing to do with its uptake. Syntax complaints are the shallowest of things and objections of junior programmers are completely unimportant. What kept Lisps out are deeper issues.
> 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
The world hasn't moved on though, Isn't clojure, racket and more showing we're just going to keep re-inventing lisp.
The points you make sound like you're assuming that newer == better, and 'moving on' is innovation. I'm not sure our current batch of fast fashion languages are significant improvements, they would need to provide a feature that lisp does not, and if so, what is it ?
If most of the population did heroine and hard drugs to socialize then probably, yeah?
I've also never drank besides the occasional cocktail, and I can count on my hands the number of times I've bent to a bar. I had other kind of experiences instead and I wouldn't change it, but of course I've missed out on certain things.
„Most of population did“ is not exactly a good meter wether something is good or bad. „Most of population did“ quite a few things that didn't turn out that well.
We're talking about "missing out", not about something being a net positive or a net negative.
But also that was just to point out that IMO the analogy with hard drugs doesn't work, I don't want to debate about a hypothetical world where most people do hard drugs.
That world is not hypothetical: there's a debate whether we should differentiate between "soft" and "hard" drugs (because we might be encouraging people to use the soft ones by doing so), but one thing is for sure: alcohol is a "hard" drug, same as heroin.
Like, the full remainder of the day, until 5-6pm? I like your approach if the company in onboard and accepts that it means I might not be reachable for the same amount of hours during the day.
Not working but having to be reachable doesn't count either
Up to around 4:30 or 5pm. I'll rarely if ever stay online after that unless I'm actively pairing or trying to help someone.
I get what you're saying, though I don't mind being around and reachable. The company expects my time around similar hours to other engineers, so I'm not changing that deal. For me personally, extra hours starting at the buttcrack of dawn is worth it in terms of stress relief and feeling accomplishment. Everyone's different, and that's a good thing because if everyone did what I do then the positive effects would be totally nullified.
Granted, yes, I would be glad to always sign off around 2pm. Maybe this is something I should negotiate with my next company someday.
> There’s just no way I could feel comfortable in a community that supports the right-wing nationalist Putin’s war on Ukraine, or outright denies the harsh repression meted out against Muslims in China.
Which makes up 50% of the article, to "it's slightly different than reddit"?
You could just join a different instance, like the article recommends. The bit you quoted is one paragraph out of 10, not "50% of the article". It's not like Reddit has never had ugly sub-reddits, especially earlier on when it was trying to be a bastion of free speech.
It's more like 3 paragraphs, but that's not really the point. It's one thing to have ugly subreddits / communities, it's another if the developers and the main instance is the ugly one. If one of the main issues of those federated networks is fragmentation, telling me to just ignore the main one doesn't bode particularly well.
In 70 years we will look back at today's kid's toys and wonder how we could ever allow them.
From mobile games casino-style monetization to depression-inducing social networks, passing by Roblox (that takes the usual predatory monetization schema and brings it's own creative touch by using kids to develop their games).
Or probably we won't, because it will be even worse by then.
To be fair, advertisers were psychologically manipulating children for decades before mobile games and loot boxes. maybe they are more brazen about it now, but people are also much more aware of it now.
There is something into it. Remember arcades fondly referenced on HN with some regularity? You had to throw in a coin to play for 2 minutes. Or collectible card games, again, always referenced fondly in here. But those can eat ridiculous amount of money.
I don't understand the Roblox hate I see here all the time.
As a self-taught programmer who learnt via private game servers, I see the importance of making programming fun for kids.
Roblox also needs to be able to sustain itself financially to continue developing the framework and maintaining server resources.
It seems like a lot of the hate is from people who haven't even checked out this community, they just parrot the same talking point and hate that previous people have said.
Same. Roblox is terrible for earning money, and their pricing is truly exploitative indeed, but it’s a great way to learn to code and design games (and random super weird shit) and show it to your friends. Just don’t try to earn (or spend!!) real money on there and you’re all set.
You could invent a language that represents data that is very explicit about having integers, the implementation in javascript would still spit out floating values, because that's all the language has.
So either you don't target javascript (which would be a bit silly in the case of JSON), or you go the other way and forbid integers, even in languages that do support them. Which is also kind of silly.
Ultimately the real issue is that javascript doesn't have integers and if you're interacting with it, you need to be aware of that, JSON or not.
How exactly do you use clojure's repl? You're not supposed to write things in the repl window.
As for functional programming, if your rebuttal is that python has list comprehensions, you still need to do some more digging into it. I suggest you read Peter Norvig's pytudes, he writes python in a functional way and uses both higher order functions (which are there, but really meh) and list comprehensions. They are not the same thing. Clojure also has immutable structures which is imo just as important for functional programming.
Not to say that python can't be used for it (pytudes really looks like art). For clojure maybe you can watch the parent of the dead series on YouTube (there's an ongoing reboot of the series). The repl workflow is so different from other languages that you really need to see people code in clojure live to understand it.
> The repl workflow is so different from other languages that you really need to see people code in clojure live to understand it.
Just wanted to add a channel to this that I recently came across with a few videos about different REPL use. I also suggest seeing how other people use it, I keep picking up a few new tricks here and there by doing so.
With that definition every single big software company is open. Microsoft the most open of all, they don't care if you pirate Windows as it brings them more market share.
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?