Live data from Hacker News

Interesting Programming Languages

btbytes.com

41–50 of 85 posts

Re: Interesting Programming Languages

#43
Missing: Icon. I think Icon is a fascinating language in spite of being dynamically-typed. I've not used it in many years though.

What makes Icon interesting is that its functions ("procedures" in Icon terminology) are essentially generators in that they can "fail" (prune, produce no [further] results), or "suspend" results as many times as desired. "Failure" drives backtracking. So it's Prolog-like, but with Algol-family syntax.

Not surprising then that I find jq interesting too: it has pervasive generators and backtracking, just like Icon, though with a fundamentally different syntax, and very limited type system.

Re: Interesting Programming Languages

#44

Notably missing: 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.

And K, Icon, and others.

Re: Interesting Programming Languages

#45
post #12
post #6

The list seems rather arbitrary. To add to the list, I would consider also: CLIPS, Coq, Dhall, Factor, Inform, Stan.

> The list seems rather arbitrary As opposed to what list? An exhaustive one? The quality he asks of the languages in the list is "interesting", which is by definition rather arbitrary itself.

I think it would be more useful if there was some criteria behind the list. Maybe there are, but I do not see what. It doesn't have to be exhaustive, there might be criteria like "not well known" or "representative of a certain idea".

This is a good (albeit exhaustive) list too: https://en.wikipedia.org/wiki/List_of_programming_languages_...

Re: Interesting Programming Languages

#46

Missing: Icon. I think Icon is a fascinating language in spite of being dynamically-typed. I've not used it in many years though. What makes Icon interesting is that its functions ("procedures" in Icon terminology) are essentially generators in that they can "fail" (prune, produce no [further] results), or "suspend" results as many times as desired. "Failure" drives backtracking. So it's Prolog-like, but with Algol-f…

Do you like writing jq? I really tried to like it, appreciated the ideas, but found even simple programs extremely hard to write in it. (Obviously, this is possibly just an artifact of me being thrown into a functional deep-end with an extremely terse syntax).

Re: Interesting Programming Languages

#47

Missing: Icon. I think Icon is a fascinating language in spite of being dynamically-typed. I've not used it in many years though. What makes Icon interesting is that its functions ("procedures" in Icon terminology) are essentially generators in that they can "fail" (prune, produce no [further] results), or "suspend" results as many times as desired. "Failure" drives backtracking. So it's Prolog-like, but with Algol-f…

Do you like writing jq? I really tried to like it, appreciated the ideas, but found even simple programs extremely hard to write in it. (Obviously, this is possibly just an artifact of me being thrown into a functional deep-end with an extremely terse syntax).

It took some getting used to...

I "like" it the same way that I "like" writing XSLs: I thank my lucky stars that jq and XSLT/XPath exist, but if I didn't have to deal with JSON/XML I wouldn't use jq/XSLT. That reasoning seems circular, but at least jq is significantly more general than XSLT. Though to be fair I like jq a lot better than I like XSLT.

All functional languages tend to take some getting used to, at least for me. Now that I have a mental model of jq, I do actually enjoy using it.

The terse syntax is a double-edged sword.

Re: Interesting Programming Languages

#49
post #23

Earlier quoted context omitted.

> bidirectional transformations Isn't that called an isomorphism?

Bidirectional implies bijections, for isomorphism you'll need a morphism, a function that preserves/transposes some kind of structure or internal composition law (addition, multiplication,...)

Interestingly, from the point of view of category theory, an isomorphism in a category is just a morphism with a two-sided inverse. A bijection is then just an isomorphism in the category of sets.

Re: Interesting Programming Languages

#50
post #12

Earlier quoted context omitted.

> The list seems rather arbitrary As opposed to what list? An exhaustive one? The quality he asks of the languages in the list is "interesting", which is by definition rather arbitrary itself.

A more interesting list might be an with the first few languages to learn to cover the most good concepts. But such a list would be a lot more decisive.

This is essentially the premise of the book Seven Languages in Seven Weeks.
Post reply on HN