[{"data":1,"prerenderedAt":617},["ShallowReactive",2],{"project-35712163":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":46,"post_text":50,"what":51,"said":93,"maker_in_thread":237,"shape":248,"grid":253,"attempts":578,"same_week":579,"maker_shows":47,"maker_hidden":610,"reader_version":611,"card":612},"35712163","ScrapScript","A tiny functional language for sharable software","title","Show HN: ScrapScript – A tiny functional language for sharable software","https:\u002F\u002Fscrapscript.org","scrapscript.org","surprisetalk",1682509538,2023,503,135,55,3109,2,"legend","languages","functional programming language","other",[24,25,26,27,28],"functional language","content addressed code","code sharing","scrapyard","merkle tree","curious",0.16,{"positive":32,"neutral":33,"mixed":34,"critical":35},16,33,1,12,62,{"idea":38,"execution":41,"privacy":43,"docs":44,"design":45},{"positive":39,"critical":40},11,6,{"positive":42,"critical":34},0,{"positive":42,"critical":34},{"positive":42,"critical":18},{"positive":34,"critical":18},[47,48,42,42,42,42,34,48,48,34,18,48,34,49,48,42,42,42,42,48,48,49,48,49,48,48,48,48,34,34,48,48,47,48,47,48,48,47,47,48],5,3,4,"Hi friends,\n\nI started casually working on scrapscript in 2015. I built a few compilers over the years to test out various ideas\u002Fimplementations, and I think I'm finally happy with the overall design.\n\nThe code is not public yet. Email me at hello@taylor.town if you're interested in joining the core team later this year.\n\nLet me know if you have any questions or feedback :)",{"problem":52,"audience":62,"pricing":62,"motivation":63,"time_to_build":62,"stack":70,"openness":90,"stage":91,"team_size":92},{"value":53,"source":54,"evidence":55},"Software is hard to share and reuse; dependency management and friction between systems","maker",[56,59],{"id":57,"by":11,"text":58},"35752715","> As I see it most of the more unique ideas could be implemented in form of some tooling on top of some existing languages. I deeply hope that's true, because it'll save me a lot…",{"id":60,"by":11,"text":61},"35743124","Just think of it as more powerful JSON :) You can send things around without converting everything into strings and objects that don't quite fit your use-case. Plus you have the…",null,{"value":64,"source":54,"evidence":65},"Vertically integrate software lessons and reduce friction; a cheap web like geocities",[66,67],{"id":57,"by":11,"text":58},{"id":68,"by":11,"text":69},"35736862","Wow, you totally get my vision! This is pretty much my plan for the next few years, with some added surprises :) I really want to rekindle the days of geocities and flash. I call…",[71,77,84],{"value":72,"source":54,"evidence":73},"Elm (early bootstrapper)",[74],{"id":75,"by":11,"text":76},"35739274","My latest iteration uses a bootstrapped compiler written in scrapscript :) The bootstrapper was written in Elm, because its parsing combinator library is by far the nicest to…",{"value":78,"source":54,"evidence":79},"Rust (bootstrapper considered)",[80,81],{"id":75,"by":11,"text":76},{"id":82,"by":11,"text":83},"35752749","Yes, but I wasn't super happy with it. Rust was a much better option IMO. I only chose Elm because I was experimenting with some visual debugging stuff, and boy, it's really a…",{"value":85,"source":54,"evidence":86},"Fira Code font",[87],{"id":88,"by":11,"text":89},"35736874","The font is Fira Code for anybody interested!","unknown","prototype","team",{"praise":94,"objections":130,"requests":160,"questions":180,"alternatives":210},[95,111,126],{"value":96,"source":97,"evidence":98},"Content-addressed hashing and Unison-like ideas are appealing","commenter",[99,103,107],{"id":100,"by":101,"text":102},"35737224","VTimofeenko","Looks extremely fun. Coming from nix background, content addressability of stuff is a huge win. Looking forward to be able to play with this.",{"id":104,"by":105,"text":106},"35738197","zubairq","Author of a framework that also stores it's code in IPFS for easy sharing (https:\u002F\u002Fgithub.com\u002Fyazz\u002Fyazz). ScrapScript is a really nice concept with how it stores code. I…",{"id":108,"by":109,"text":110},"35740915","zephraph","This is incredible. I’ve been thinking a lot about personal software systems and a hypothesis that I have is that simpler code sharing\u002Fversioning mechanisms is key to greater…",{"value":112,"source":97,"evidence":113},"Concept is exciting and cool",[114,118,122],{"id":115,"by":116,"text":117},"35735843","andybak","It's late and I'm tired but this is one of the most interesting things I've seen in a while.",{"id":119,"by":120,"text":121},"35737798","noman-land","This is nuts and incredibly cool.",{"id":123,"by":124,"text":125},"35739952","dangoodmanUT","Super cool!!",{"value":127,"source":54,"evidence":128},"Typed, JSON-like language for sending programs",[129],{"id":60,"by":11,"text":61},[131,142,149],{"value":132,"source":97,"evidence":133},"Code not open source yet",[134,138],{"id":135,"by":136,"text":137},"35736486","haolez","Looks fun, but doesn't look like it will be open source. That's a shame, since it considerably raises the risk of adopting such a platform.",{"id":139,"by":140,"text":141},"35737849","leke","Did I miss the reference to the license? Looks interesting though. Would like play with this when it's released.",{"value":143,"source":97,"evidence":144},"Custom esoteric syntax is a barrier",[145],{"id":146,"by":147,"text":148},"35736436","ivoras","Neat but... Someone will make a crummier version of this in a language which doesn't feature parts looking like Unicode white noise and the original authors will be frustrated…",{"value":150,"source":97,"evidence":151},"Versioning and upgrade of dependencies is unclear",[152,156],{"id":153,"by":154,"text":155},"35737691","verdverm","Would the IPFS-ness of this make updating all the programs that suffer from an exploit or error a difficult thing? Kind of like smart contracts, once it is published, there is no…",{"id":157,"by":158,"text":159},"35743001","al2o3cr","Since each function is independently versioned, how does ScrapScript deal with functions that need to upgrade together? For instance, suppose \"foo\" produces a structure and \"bar\"…",[161,172,176],{"value":162,"source":97,"evidence":163},"Grammar or spec documentation",[164,168],{"id":165,"by":166,"text":167},"35751181","lionkor","Would you mind publishing a EBNF or similar grammar spec? That would make the syntax clearer.",{"id":169,"by":170,"text":171},"35753051","jayjader","Very interesting! I'm especially curious on how the live-coding experience plays out. I wish there was an example of a moderately-complex scrapbook, so that I could see what the…",{"value":173,"source":97,"evidence":174},"License information",[175],{"id":139,"by":140,"text":141},{"value":177,"source":97,"evidence":178},"Example of a moderately complex scrapbook",[179],{"id":169,"by":170,"text":171},[181,192,203],{"value":182,"source":97,"evidence":183},"How does hashing treat equivalent programs and variable renames",[184,188],{"id":185,"by":186,"text":187},"35736130","sagebird","This is lovely. I’ve had a vague notion that I wanted something like this… but never quite solidified my understanding of what is necessary. This is a super minimal-maximal…",{"id":189,"by":190,"text":191},"35737071","alephaleph","You might want to look into the way Unison does things: [1], they've got a lot of similar ideas and IIRC the way their hash system works avoids that ambiguity. [1]:…",{"value":193,"source":97,"evidence":194},"How is the language used and where is code executed",[195,199],{"id":196,"by":197,"text":198},"35756875","bibanez","I haven't fully understood this. Is this a way to share code? Where are the functions executed?",{"id":200,"by":201,"text":202},"35740752","thrrwy007","everyone says this is cool, but I didn't understand it at all, so embarrassing :(( please eli5, honestly, want to understand this, what is this and how is it useful?",{"value":204,"source":97,"evidence":205},"Is there semantic versioning or security updates",[206],{"id":207,"by":208,"text":209},"35738210","quickthrower2","One question. If you reference a package by hash. Is there semantic versioning? Can you get security updates?",[211,223,230],{"value":212,"source":97,"evidence":213},"Unison",[214,218,222],{"id":215,"by":216,"text":217},"35737988","offlinehacker","Reminds me of what unison already does, I just wonder what will be license and scope https:\u002F\u002Fwww.unison-lang.org\u002F",{"id":219,"by":220,"text":221},"35736244","quaintdev","Not 100% sure but there is another project with similar ideas https:\u002F\u002Fwww.unison-lang.org\u002F",{"id":189,"by":190,"text":191},{"value":224,"source":97,"evidence":225},"Val Town",[226],{"id":227,"by":228,"text":229},"35736049","panphora","So it's like a social network with every type of relationship imaginable built into a low level programming language? That's wildly cool. This and Val Town [0] feel like they…",{"value":231,"source":97,"evidence":232},"Joy programming language",[233],{"id":234,"by":235,"text":236},"35744113","carapace","Neat! Maybe check out the Joy programming language? It seems well-suited to this domain.",{"comments":238,"answered":239,"key":240},25,18,[241,242,245],{"id":68,"text":69},{"id":243,"text":244},"35757655","Author here. The more I dig into mmm.page, the more I'm loving what you've built! I can't wait to play around with it next week. The design is gorgeous so far. Somebody is giving…",{"id":246,"text":247},"35739086","I'm still not sure about the exact license yet, but everything will definitely be free and open :)",{"commenters":249,"max_depth":250,"maker_replies":238,"first_comment_mins":251,"lifespan_hours":252},73,10,2148,349,[254,256,258,262,265,268,272,274,276,280,283,286,289,291,293,297,301,303,305,307,309,313,317,319,320,322,324,326,328,330,332,334,337,340,343,345,346,348,351,355,357,359,361,363,364,366,369,371,375,378,380,382,384,386,388,390,392,395,397,400,402,405,408,410,412,414,417,420,423,426,430,433,435,438,441,443,445,447,448,452,453,458,460,463,467,469,471,475,479,482,485,488,490,492,495,499,500,502,503,505,507,509,512,515,517,519,521,523,524,528,532,534,536,538,541,545,547,551,555,559,561,563,565,569,573,576],[227,42,47,255,228,42],"project\u002Fpositive\u002Fidea",[68,42,42,257,11,34],"maker\u002Fneutral\u002Fidea",[259,42,42,260,261,42],"35740615","other\u002Fneutral\u002Fnone","CodexArcana",[263,42,42,260,264,42],"35750851","rapnie",[266,42,48,257,267,42],"35741106","ilaksh",[269,42,42,270,271,42],"35748911","commenter\u002Fcritical\u002Fidea","spicybright",[273,42,42,270,264,42],"35751085",[275,42,42,260,124,42],"35739956",[277,42,42,278,279,42],"35740239","other\u002Fpositive\u002Fnone","mstade",[281,42,42,260,282,42],"35743151","depingus",[284,42,42,260,285,42],"35743205","xhfloz",[287,42,42,260,288,42],"35749355","javajosh",[243,42,42,290,11,34],"maker\u002Fneutral\u002Fnone",[292,42,42,260,285,42],"35759482",[294,42,42,295,296,42],"35750025","other\u002Fcritical\u002Fdesign","still_grokking",[298,42,42,299,300,42],"35751760","other\u002Fneutral\u002Fdesign","patpatpat",[302,42,42,295,296,42],"35756888",[304,42,42,299,285,42],"35759479",[215,34,48,306,216,42],"project\u002Fneutral\u002Fidea",[246,34,42,308,11,34],"project\u002Fneutral\u002Fnone",[310,18,34,311,312,42],"35739392","project\u002Fcritical\u002Fexecution","chrismorgan",[314,18,42,315,316,42],"35741242","commenter\u002Fneutral\u002Fexecution","layer8",[318,18,42,315,312,42],"35741505",[115,48,47,255,116,42],[153,49,34,321,154,42],"project\u002Fcritical\u002Fidea",[323,49,42,306,11,34],"35739161",[325,49,48,306,154,42],"35742281",[327,49,42,306,11,34],"35742897",[329,49,34,321,154,42],"35743794",[331,49,42,306,11,34],"35744190",[333,49,34,321,154,42],"35753369",[335,49,34,321,336,42],"35760457","etherealG",[338,49,34,321,339,42],"35895962","LeonB",[341,47,47,255,342,42],"35736931","eggy",[344,40,48,306,296,42],"35750087",[57,40,42,306,11,34],[200,347,48,308,201,42],7,[349,347,48,306,350,42],"35754680","will5421",[352,347,34,353,354,42],"35758864","project\u002Fcritical\u002Fprivacy","ivanjermakov",[356,347,42,260,11,34],"35758910",[104,358,47,255,105,42],8,[185,360,48,306,186,42],9,[362,360,42,306,11,34],"35736782",[189,360,48,306,190,42],[365,360,42,306,11,34],"35737180",[367,360,48,306,368,42],"35737512","pcl",[370,360,48,306,186,42],"35743101",[372,360,42,373,374,42],"35743234","commenter\u002Fneutral\u002Fnone","xigoi",[376,360,42,260,377,42],"35748494","amelius",[379,360,42,260,374,42],"35748541",[381,360,42,260,377,42],"35748613",[383,360,42,260,374,42],"35748631",[385,360,42,260,377,42],"35751271",[387,360,42,260,374,42],"35751365",[389,360,42,260,377,42],"35751411",[391,360,42,260,374,42],"35753424",[393,360,42,260,394,42],"35748659","dragonwriter",[396,360,42,373,374,42],"35748683",[398,360,42,260,399,42],"35749998","scythmic_waves",[401,360,42,260,374,42],"35751342",[403,250,48,306,404,42],"35739644","substation13",[406,250,48,306,407,42],"35739681","andreypopp",[409,250,42,255,11,34],"35741141",[411,250,48,306,404,42],"35741851",[413,250,42,306,11,34],"35742115",[415,250,42,373,416,42],"35746746","debugnik",[418,39,47,255,419,42],"35747044","motohagiography",[421,35,48,306,422,42],"35735942","noduerme",[424,35,48,306,425,42],"35736719","andyferris",[427,428,42,260,429,42],"35737847",13,"crowdhailer",[157,431,48,432,158,42],14,"project\u002Fneutral\u002Fexecution",[434,431,42,306,11,34],"35752862",[169,436,48,437,170,42],15,"project\u002Fneutral\u002Fdocs",[439,32,47,255,440,42],"35747188","TeeMassive",[207,442,48,306,208,42],17,[444,442,42,306,11,34],"35739176",[446,442,48,306,208,42],"35739268",[219,239,48,306,220,42],[449,450,48,308,451,42],"35741089",19,"nightowl_games",[60,450,42,306,11,34],[454,455,48,456,457,42],"35746871",20,"project\u002Fmixed\u002Fdesign","azubinski",[108,459,47,255,109,42],21,[146,461,34,462,147,42],22,"project\u002Fcritical\u002Fdesign",[464,461,48,465,466,42],"35736600","project\u002Fneutral\u002Fdesign","fernmyth",[468,461,48,465,425,42],"35736689",[88,461,42,470,11,34],"maker\u002Fneutral\u002Fdesign",[472,461,47,473,474,42],"35737140","project\u002Fpositive\u002Fdesign","beeburrt",[476,461,34,477,478,42],"35738435","project\u002Fcritical\u002Fdocs","detrites",[480,461,34,462,481,42],"35738546","unwind",[483,461,48,465,484,42],"35738682","alwillis",[486,461,42,260,487,42],"35740562","runlaszlorun",[135,489,34,477,136,42],23,[491,489,42,290,11,34],"35736628",[493,489,42,373,494,42],"35736709","Bjartr",[496,489,48,497,498,42],"35737608","maker\u002Fneutral\u002Fexecution","elbear",[75,489,42,497,11,34],[501,489,48,497,498,42],"35750385",[82,489,42,497,11,34],[504,489,48,497,498,42],"35769834",[506,489,42,497,11,34],"35774329",[508,489,48,290,498,42],"35798691",[510,489,42,373,511,42],"35737616","teaearlgraycold",[513,489,47,514,429,42],"35737868","maker\u002Fpositive\u002Fnone",[516,489,42,290,11,34],"35739239",[518,489,42,373,208,42],"35738193",[234,520,48,306,235,42],24,[522,520,42,260,11,34],"35752834",[100,238,47,255,101,42],[525,526,42,260,527,42],"35748125",26,"dllthomas",[529,530,47,255,531,42],"35736240",27,"amitlzkpa",[196,533,48,306,197,42],28,[535,533,42,306,11,34],"35757160",[165,537,48,437,166,42],29,[539,537,42,540,11,34],"35752727","maker\u002Fneutral\u002Fdocs",[542,543,48,306,544,42],"35750037",30,"acchow",[546,543,42,306,11,34],"35750398",[548,549,47,255,550,42],"35738070",31,"snthpy",[552,553,42,260,554,42],"35735850",32,"mftb",[556,33,47,557,558,42],"35736118","project\u002Fpositive\u002Fnone","thomasfromcdnjs",[139,560,48,437,140,42],34,[123,562,47,557,124,42],35,[119,564,47,255,120,42],36,[566,567,47,557,568,42],"35748719",37,"carterschonwald",[570,571,34,321,572,42],"35742077",38,"aktuel",[574,571,42,373,575,42],"35744512","replwoacause",[577,571,42,373,572,42],"35752401",[],[580,585,590,595,600,605],{"id":581,"name":582,"points":583,"category":584},"35639810","Stretch15",550,"consumer_social",{"id":586,"name":587,"points":588,"category":589},"35665142","Lost at SQL",547,"learning_science",{"id":591,"name":592,"points":593,"category":594},"35690753","Homemade rocketship treehouse",410,"hardware",{"id":596,"name":597,"points":598,"category":599},"35649245","newgrounds.com",267,"creative",{"id":601,"name":602,"points":603,"category":604},"35712238","GB Renewables Map",245,"data",{"id":606,"name":607,"points":608,"category":609},"35705063","kevzettler",236,"games",false,"v2",{"id":613,"name":5,"line":6,"ai":610,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":614,"maker":11,"domain":10,"tier":19,"attempts":42,"strip":615,"url":9,"mix":616,"praise":96,"objection":132,"sub":21},35712163,[24,25,26,27,28],"5300001331231430000334343333113353533553",[32,33,34,35],1794036634670]