lisp-rosetta-stone

Languages and libraries

language implementation comparison

SHOW HN2021

128points
57comments
#398of 2,533 in 2021
Top 16%of 2021 by points

How HN took it

CuriousMostly questions and neutral comments

4 positive, 12 neutral or asking, 2 mixed, 5 critical, out of 23 comments about the project. Thread score -0.02.

Execution: 1 for, 3 againstDesign: 2 for, 0 againstIdea: 1 for, 1 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Small and concise implementations; a nice idea for comparing languages

    From 4 comments
    • Jeez, 7 comments and not a single "Well done." Well done. I love the smallness. Small is strong.
      sillysaurusx on HN
    • I'm impressed every implementation is under 300 lines. Very nice.
      0xdeadb00f on HN
    • Cute idea! It looks like several of your implementations have extremely similar styles. If you want to realistically compare verbosity between languages, it makes sense to adapt…
      Straw on HN
    • Damn. This is cool. I need to more of this. Write something in multiple languages to really get a feel for looking at it from multiple angles.
      nojvek on HN

Objections

  • Line count alone is a weak verbosity metric; formatting and idioms skew results

    From 3 comments
    • is it fair to use line count alone ? maybe the character count should be used as well (excluding whitespace)
      muzster on HN
    • I think it's pretty clear from the description that it's only a ~250 line toy project. Looks like it's meant to act as a test for implementing the same project in different…
      throwaway34241 on HN
    • Cool project! Interestingly, the actual size of the files is almost inversely distributed compared to the line count: Line count, sorted: C# 246, Java 247, TypeScript 253, Python…
      simiones on HN
  • Toy project, not a real Lisp

    From 2 comments
    • It has been discussed many times already. Projects like this don't produce a Lisp. It's a toy, Lisp-like language at best. Calling it a Lisp does a disservice to the proper…
      nesarkvechnep on HN
    • Meh, I agree with the parent you're responding to. Calling these toys Lisp just leads to more ignorance in the general public. "Oh, Lisp is so small and elegant" and "Lisp is…
      the-smug-one on HN
  • Implementations not idiomatic; TypeScript and C# could use modern features

    From 3 comments
    • Very cool! I hate to be negative, but the typescript is terrible. Full strictness is a must. Once you have that, you will notice why the code is bad: You have a kind-property on…
      geon on HN
    • Very good effort! RE: modern C# 1) you can use pattern matching instead of switching 2) you can use native named tuples instead of Item1/Item2 ones
      nodejs_rulez_1 on HN
    • I thought the same, the c# Code is not very modern. It is possible to make it even nicer. But I guess it’s a great start, maybe I’ll submit a pull request :)
      andix on HN

Requests

  • Use more idiomatic modern features in each language

    From 3 comments
    • Very good effort! RE: modern C# 1) you can use pattern matching instead of switching 2) you can use native named tuples instead of Item1/Item2 ones
      nodejs_rulez_1 on HN
    • I thought the same, the c# Code is not very modern. It is possible to make it even nicer. But I guess it’s a great start, maybe I’ll submit a pull request :)
      andix on HN
    • When using Java 16 and C# 9 the code can almost be Rust/Haskell like, even more in upcoming Java 17 and C# 10.
      pjmlp on HN
  • Add tests

    From 1 comment
    • I know the project is probably for some fun. Since you already have a sample lisp code to test, why not write tests for it.
      frogcoder on HN
  • Add more metrics than line count

    From 2 comments
    • Would be interesting to have some extra metrics besides line count regarding verbosity. My intuition based on experience is that Java/C# might have much longer or more complex…
      oersted on HN
    • is it fair to use line count alone ? maybe the character count should be used as well (excluding whitespace)
      muzster on HN

Questions

  • Why write TypeScript in this style rather than idiomatic JavaScript

    From 2 comments
    • Why would you write Typescript this way? The Lisp > EcmaScript should be way more terse.
      arcosdev on HN
    • Agreed. But why choose if it's easy to add an idiomatic pure-JavaScript/EcmaScript 2021 implementation to compare with as well?
      branneman on HN

Alternatives named

  • Norvig's lispy.py in Python

    From 1 comment
    • Classes definitely make sense for some things, especially those that don't have a Python analogue, such as symbols. What do you gain by wrapping a native representation of the…
      Straw on HN
  • MAL (make a lisp)

    From 1 comment
  • Hissp

    From 1 comment

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/28164398)