APL (Dyalog), J, Prolog, Rebol (Red is on the list), PicoLisp, Racket, Factor, 8th (Reva was mentioned and that was the creator's prior project), and Haskell.
Maybe most of the above are too mainstream for the list.
Picolisp being considered mainstream in any capacity is a pleasant surprise. Might I suggest two more Lisps that I use: Carp and TXR? I also like Picat as an evolution of Prolog.
I guess we need to distinguish between mainstream and HN mainstream haha.
I like PicoLisp and wish it was more popular. There are some decent resources on it and the mailing list is pretty active.
I kinda disagree with the primary author's "need for speed" article on why performance doesn't matter anymore. I think there is definitely the majority of common uses in the business where he is right, but we're getting to a point (think data science) where faster is better and necessary. Using C++ is still too painful for most (pointers anyone), so I'm betting languages like Nim, Rust, and D will continue to grow in popularity to some degree.
I would have included Picat and Kitten. Picat is a descendant of Prolog that has some rather nice differences in semantics. Kitten is a statically-typed concatenative language.
I've talked with the author of kitten before and he's responded before when it was put on HN. I haven't looked at it in awhile, but I do like the concept.
Would you say that people interested in languages should first look at certain "mainstream" languages Scheme/Racket, Common Lisp, Haskell, OCaml, Smalltalk, and Prolog, before looking at less-mainstream ones?
Lol nope, not gatekeeping programming languages :)
The above are all pretty cool though and each (as Larry Wall would put it) are the perfect examples of modernism. Each one takes a single idea to a fault.
Lisp => lists, Haskell => functions, Scheme => lists and recursion, Prolog => logic, Smalltalk => objects, Forth => concatenative and extreme minimalism, and APL => arrays.
Most post-modern languages combine many of the above in more practical and less elegant ways. Python is OO at heart, but can be written in a functional style, and can do array programming with Numpy.
So there is value (I think) to looking back at those languages from an educational point of view even if you're not using them in your personal projects or production.
The more novel ones that the author posted are probably also educational in their own way, but probably don't ram just one idea home. I think we're mostly past that now as Wall has stated. Perl6 might not run very fast or be very mature or popular, but it is a very interesting language that does a good job showing the post modern system. It pulls what the language designers felt were the best features from all the past languages (Perl5, Python, APL, Haskell, Smalltalk, Awk, Java, C#...etc).
That list of "modernism" languages has some bits of truth to it, but I think it's misleading to people who aren't already familiar with those languages, and "to a fault" sounds dismissive, and maybe discourages people from learning for themselves.
Perl is an interesting language (and I defended Perl's merits in a language forum within the last year [1]). But people who've mostly done Perl for a long time might want to question cute sayings about other languages, and discover that, today, for example, the evolution of Scheme (especially Racket) has different ways of doing those best features from other languages that you list for Perl6.
I do think "to a fault" is subjective, but things like Prolog make a great example. Prolog is really cool and useful, but it makes anything except for the queries a real nightmare and will therefore never takeoff as a general purpose language. That's all I'm trying to say. Languages like Perl allow you to do logic programming with logic programming libraries, but also make text processing a breeze.
Take it with a grain of salt of course. Smalltalk is amazing, but the way you store code in an image isn't for s everyone.
I don't understand your last paragraph...can you please elaborate? What cute sayings are you referring to?
I meant the cute saying about modernism and "to a fault".
I agree about Prolog being logic-only. (Though it was once included as the query language of the complex data model of a commercial CAD-like system I worked on.)
Now Scheme (not lists and recursion to a fault) and other languages have logic programming as library or language extension: https://en.wikipedia.org/wiki/MiniKanren
Hey, I like your list. Now, tell us, from that list, is there a favourite language? Some you'd pick up to write simple tools for your own personal usage...
* I already use nim and I'm very productive in it.
* Would like to use Zig for "system programming" when and if something like Nim (and D) are inadequate.
* Red because its a REBOL and it can be a mind blowing experience to read some clever REBOL/Red code.
> Maybe most of the above are too mainstream for the list.
While an interesting language may be obscure, an obscure language is not necessarily interesting. In many cases, being relatively well known is a benefit simply because it offers more exposure to new ideas.
I have found languages such as Forth, Racket, and Smalltalk far more valuable primarily because they are sufficiently accessible to be practical learning tools.
> Maybe most of the above are too mainstream for the list.
I'd agree with Haskell and Prolog, and probably people could guess based on the "Lisp" part of PicoLisp, but having experience with Rebol - no one I've mentioned it to has heard of it. I don't think it's mainstream at all.
APL (Dyalog), J, Prolog, Rebol (Red is on the list), PicoLisp, Racket, Factor, 8th (Reva was mentioned and that was the creator's prior project), and Haskell.
Maybe most of the above are too mainstream for the list.