[{"data":1,"prerenderedAt":393},["ShallowReactive",2],{"project-38827876":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":32,"aspects":33,"strip":40,"post_text":42,"what":43,"said":72,"maker_in_thread":159,"shape":171,"grid":175,"attempts":355,"same_week":356,"maker_shows":31,"maker_hidden":385,"reader_version":386,"card":387},"38827876","Cassette","A Personal Programming Language","title","Show HN: Cassette, a Personal Programming Language","https:\u002F\u002Fcassette-lang.com","cassette-lang.com","news_to_me",1704060074,2023,231,71,228,3109,8,"notable","languages","programming language","other",[21,24,25,26],"lambda syntax","functional language","language design","loved",0.417,{"positive":30,"neutral":30,"mixed":31,"critical":31},13,1,28,{"docs":34,"design":36,"idea":38,"execution":39},{"positive":31,"critical":35},0,{"positive":37,"critical":35},5,{"positive":37,"critical":31},{"positive":35,"critical":35},[37,37,37,35,35,41,35,37,41,35,41,41,37,37,35,37,35,41,35,41,41,37,37,37,41,41,35,37,35,35,35,35,35,35,31,41,37,35,35,35],3,"I made this simple language over the past year, and it's time for me to say it's \"done\" (for now) and focus on other projects.\n\nI've struggled to answer the question \"what is this language for?\" other than \"it's just for me\" — and that's probably good enough. But I also wanted to make something \"complete\" that others could use if they wanted to. Writing my own language was an incredibly rewarding experience, and I'd recommend everyone trying it.\n\nLet me know if you have any questions or feedback, and please share your own experience if you've also made a language.",{"problem":44,"audience":45,"pricing":44,"motivation":51,"time_to_build":58,"stack":62,"openness":69,"stage":70,"team_size":71},null,{"value":46,"source":47,"evidence":48},"Primarily the maker; open to others who want to use it","maker",[49],{"id":50},"post",{"value":52,"source":47,"evidence":53},"Built a language for fun and learning, to make something complete",[54,55],{"id":50},{"id":56,"by":11,"text":57},"38851385","Thanks! A big part of the project was discovering all of those philosophical sort of trade offs. Going in, I had a naive idea that I could figure out the “perfect language” for…",{"value":59,"source":47,"evidence":60},"Over the past year",[61],{"id":50},[63],{"value":64,"source":47,"evidence":65},"Lisp-like semantics",[66],{"id":67,"by":11,"text":68},"38851569","I think it's pretty similar semantically, though not syntactically — a lot of it is applying the last chapters of Structure and Interpretation of Computer Programs, which shows…","unknown","launched","solo",{"praise":73,"objections":97,"requests":119,"questions":128,"alternatives":137},[74,86],{"value":75,"source":76,"evidence":77},"Clean, concise website and syntax-first introduction","commenter",[78,82],{"id":79,"by":80,"text":81},"38851515","anigbrowl","What a great introduction: what it is, how it looks, why you might like it, what the design goals are, and how to write it - all while being short, to the point, and relatively…",{"id":83,"by":84,"text":85},"38851689","mobiuscog","I agree that it's a wonderful page (although the :symbols confused me a bit), and I want to add that the simplicity of the page, size and lack of complex (almost any) Javascript…",{"value":87,"source":76,"evidence":88},"Syntax feels new and appealing (backslash lambdas, colon symbols)",[89,93],{"id":90,"by":91,"text":92},"38852029","Einenlum","I'm so impressed. I love the syntax (especially the backslash for lambdas and the colon for symbols). I don't know so many languages but it feels quite \"new\" to me, which is…",{"id":94,"by":95,"text":96},"38853283","somewhereoutth","Alternatively, we can go the other way, and dispense with the arrow: ``` \\x \\y x + y ``` rather closer to the lambda notation in maths, and works well for compact expressions…",[98,109],{"value":99,"source":76,"evidence":100},"Lambda and let\u002Fdef scoping choices are unusual and debated",[101,105],{"id":102,"by":103,"text":104},"38851071","lubutu","Thanks for sharing! ``` ; these produce an error, since `b` isn't defined when the body of `a` is compiled let a = \\x -> (b x * 3), b = \\x -> (a x \u002F 2) ``` It surprised me when…",{"id":106,"by":107,"text":108},"38851817","pmontra","By the way, why do you need a backslash to define a lambda? Apparently it doesn't give any additional information. All you need to know that's a lambda is the presence of the ->…",{"value":110,"source":76,"evidence":111},"Build instructions were not working on Linux initially",[112,116],{"id":113,"by":114,"text":115},"38850734","tekknolagi","I really like the syntax! I am having trouble building on Linux but I will send patches your way when I figure it out.",{"id":117,"by":11,"text":118},"38851585","Ah yeah, I got a little lazy at the end so the build process is probably a little macOS specific. I'd love to receive patches or bug reports when you get the chance!",[120,124],{"value":121,"source":76,"evidence":122},"Blog post on lexer and parser implementation",[123],{"id":90,"by":91,"text":92},{"value":125,"source":76,"evidence":126},"Clarify or remove the Robin Sloan link on the site",[127],{"id":90,"by":91,"text":92},[129,133],{"value":130,"source":76,"evidence":131},"Why use a backslash for lambdas instead of a skinny arrow",[132],{"id":106,"by":107,"text":108},{"value":134,"source":76,"evidence":135},"Why let is not recursive while def is",[136],{"id":102,"by":103,"text":104},[138,148,152],{"value":139,"source":76,"evidence":140},"Elixir",[141,145],{"id":142,"by":143,"text":144},"38850937","sergiomattei","Looks a lot like Elixir and reminds me of Swift. Cool!",{"id":146,"by":11,"text":147},"38851573","Yeah, the syntax is heavily inspired by Elixir, which was of the first languages that \"looked right\" to me. And Elixir's syntax is very Ruby-inspired, in turn.",{"value":149,"source":76,"evidence":150},"Swift",[151],{"id":142,"by":143,"text":144},{"value":153,"source":76,"evidence":154},"Lisp",[155],{"id":156,"by":157,"text":158},"38850932","wegfawefgawefg","is this really lisp like?",{"comments":160,"answered":18,"key":161},16,[162,165,168],{"id":163,"text":164},"38851637","Thanks! While working on this, whenever I would browse another language project's site I got into the habit of asking myself what I wanted to see, in what order. For better or…",{"id":166,"text":167},"38834253","Thanks, that means a lot! > I made an abstract programming language in 2023 This is super cool. The block editor is especially impressive.",{"id":169,"text":170},"38851288","To be clear, that isn’t my site, I just linked to the home-cooked app article because it resonated with me and I felt it fit the project.",{"commenters":172,"max_depth":37,"maker_replies":160,"first_comment_mins":173,"lifespan_hours":174},37,163,198,[176,178,180,182,186,190,192,194,198,201,206,208,210,213,216,219,222,225,228,231,234,237,239,243,244,247,249,252,256,257,259,262,264,266,268,270,273,274,276,277,282,284,285,287,288,291,294,298,300,302,304,306,309,312,315,318,321,323,325,328,331,333,336,339,341,343,345,347,349,351,353],[79,35,37,177,80,35],"project\u002Fpositive\u002Fdocs",[163,35,35,179,11,31],"maker\u002Fneutral\u002Fdocs",[83,35,37,181,84,35],"project\u002Fpositive\u002Fdesign",[183,35,41,184,185,35],"38852283","project\u002Fneutral\u002Fdesign","ReleaseCandidat",[187,31,37,188,189,35],"38831890","maker\u002Fpositive\u002Fidea","zerojames",[166,31,35,191,11,31],"commenter\u002Fneutral\u002Fnone",[193,31,35,191,189,35],"38834423",[195,31,35,196,197,35],"38843429","other\u002Fneutral\u002Fidea","pona-a",[199,31,41,200,189,35],"38851807","maker\u002Fneutral\u002Fidea",[202,203,35,204,205,35],"38849972",2,"other\u002Fneutral\u002Fnone","neontomo",[207,203,35,204,205,35],"38851017",[169,203,35,209,11,31],"maker\u002Fneutral\u002Fnone",[211,203,37,212,205,35],"38851430","project\u002Fpositive\u002Fidea",[214,41,41,184,215,35],"38852354","speps",[217,41,41,184,218,35],"38853247","edwcross",[220,41,35,191,221,35],"38854861","I_like_pigeons",[223,41,35,191,224,35],"38855176","pjmlp",[226,41,41,184,227,35],"38853331","kshahkshah",[229,41,41,184,230,35],"38853411","bionsystem",[232,41,41,184,233,35],"38853586","whstl",[235,41,41,184,236,35],"38853666","throw1837",[238,41,35,184,11,31],"38855589",[240,241,37,212,242,35],"38828766",4,"082349872349872",[90,37,37,181,91,35],[245,37,35,246,11,31],"38856547","maker\u002Fneutral\u002Fdesign",[248,37,35,181,11,31],"38857320",[250,37,37,181,251,35],"38860443","prestonlibby",[253,254,37,212,255,35],"38849915",6,"throwaway17_17",[56,254,35,200,11,31],[258,254,35,196,242,35],"38852062",[113,260,41,261,114,35],7,"project\u002Fmixed\u002Fexecution",[117,260,35,263,11,31],"maker\u002Fneutral\u002Fexecution",[265,260,35,179,11,31],"38922094",[102,18,41,267,103,35],"project\u002Fneutral\u002Fidea",[269,18,35,267,11,31],"38851559",[271,18,35,272,242,35],"38852046","commenter\u002Fneutral\u002Fidea",[106,18,41,184,107,35],[275,18,35,184,11,31],"38851863",[94,18,37,181,95,35],[278,279,37,280,281,35],"38829683",9,"project\u002Fpositive\u002Fnone","replwoacause",[142,283,37,181,143,35],10,[146,283,35,246,11,31],[156,286,41,267,157,35],11,[67,286,35,200,11,31],[289,286,35,191,290,35],"38888765","jiyinyiyong",[292,286,41,184,293,35],"38853084","varjag",[295,296,35,204,297,35],"38850578",12,"xwowsersx",[299,296,35,209,11,31],"38851324",[301,296,37,280,297,35],"38856029",[303,296,35,204,233,35],"38853115",[305,296,35,191,297,35],"38855962",[307,296,35,204,308,35],"38859529","Max-q",[310,30,35,204,311,35],"38850063","prezjordan",[313,30,35,204,314,35],"38850127","vitiral",[316,30,35,204,317,35],"38850472","von_lohengramm",[319,30,35,204,320,35],"38850922","hot_gril",[322,30,35,191,314,35],"38852644",[324,30,35,191,320,35],"38856990",[326,30,35,204,327,35],"38850449","norir",[329,30,35,204,330,35],"38850838","electroly",[332,30,35,246,11,31],"38851362",[334,30,31,335,320,35],"38850946","project\u002Fcritical\u002Fidea",[337,30,41,267,338,35],"38852174","sa-code",[340,30,35,191,320,35],"38857051",[342,30,37,212,233,35],"38853075",[344,30,35,204,320,35],"38857032",[346,30,35,204,95,35],"38853371",[348,30,35,204,320,35],"38856212",[350,30,35,196,320,35],"38859145",[352,30,35,263,11,31],"38851340",[354,30,35,204,95,35],"38853469",[],[357,362,367,372,377,381],{"id":358,"name":359,"points":360,"category":361},"38847613","Dillo",599,"dev_tools",{"id":363,"name":364,"points":365,"category":366},"38855337","FrameOS",474,"hardware",{"id":368,"name":369,"points":370,"category":371},"38856999","Ambiphone",357,"creative",{"id":373,"name":374,"points":375,"category":376},"38838946","Schedule-X",232,"productivity",{"id":378,"name":379,"points":380,"category":376},"38794733","Anytype",184,{"id":382,"name":383,"points":384,"category":376},"38809770","Inbox Zero",167,false,"v2",{"id":388,"name":5,"line":6,"ai":385,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":389,"top":18,"kw":390,"maker":11,"domain":10,"tier":19,"attempts":35,"strip":391,"url":9,"mix":392,"praise":75,"objection":99,"sub":21},38827876,0.42,[21,24,25,26],"5550030530335505030335553305000000135000",[30,30,31,31],1793991081063]