[{"data":1,"prerenderedAt":252},["ShallowReactive",2],{"project-6427498":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":34,"aspects":35,"strip":42,"post_text":44,"what":45,"said":84,"maker_in_thread":178,"shape":183,"grid":188,"attempts":215,"same_week":216,"maker_shows":30,"maker_hidden":244,"reader_version":245,"card":246},"6427498","Solid","A scripting language with a tiny VM","title","Show HN: Solid, a scripting language with a tiny VM","https:\u002F\u002Fgithub.com\u002Fchameco\u002FSolid","github.com","chameco",1379875691,2013,63,15,404,1739,24,"notable","languages","scripting language","library",[21,24,25,26],"embeddable language","virtual machine","lua alternative","mixed",-0.033,{"positive":30,"neutral":31,"mixed":32,"critical":33},2,4,1,3,10,{"idea":36,"design":38,"performance":39,"docs":40,"execution":41},{"positive":32,"critical":37},0,{"positive":37,"critical":30},{"positive":37,"critical":32},{"positive":32,"critical":37},{"positive":37,"critical":37},[43,37,32,32,33,37,43,33,33,37,33,37,33,37,32],5,null,{"problem":46,"audience":44,"pricing":44,"motivation":56,"time_to_build":60,"stack":66,"openness":81,"stage":82,"team_size":83},{"value":47,"source":48,"evidence":49},"Embedding a scripting language is inconvenient; Lua's object model felt awkward to the maker","maker",[50,53],{"id":51,"by":11,"text":52},"6427899","Thanks! Quite honestly, my primary reason for making it was that I didn't like the Lua object model and Python\u002FRuby\u002FGuile are a bit inconvenient to embed.",{"id":54,"by":11,"text":55},"6428001","Without debug symbols (the default Makefile includes them), the executable is 83KB (93KB with -g), less than half the size of Lua. The shared library is a bit larger, at 102KB.…",{"value":57,"source":48,"evidence":58},"Dislike of Lua's object model; Python, Ruby and Guile are inconvenient to embed",[59],{"id":51,"by":11,"text":52},{"value":61,"source":48,"evidence":62},"About 6 months, with breaks for school and exams",[63],{"id":64,"by":11,"text":65},"6428709","It's been about 6 months total, I think, but there were significant breaks for school and exams.",[67,75],{"value":68,"source":69,"evidence":70},"C","inferred",[71],{"id":72,"by":73,"text":74},"6428259","helloTree","Just wanted to say, kudos! I think it is essential for a language to have a good C interface otherwise it will be insulated. However some more example would be nice. Furthermore…",{"value":76,"source":48,"evidence":77},"Bison\u002FFlex",[78],{"id":79,"by":11,"text":80},"6428090","The VM, the AST parser, and the Bison\u002FFlex frontend are built in a layered manner: you could (with the appropriate Makefile) build only the VM, the VM+the AST parser, or all…","open_source","unknown","solo",{"praise":85,"objections":102,"requests":127,"questions":150,"alternatives":164},[86,94],{"value":87,"source":88,"evidence":89},"Small and simple embeddable language, smaller than Lua","commenter",[90],{"id":91,"by":92,"text":93},"6427878","zserge","Great job! I was looking for a small and simple embeddable language (smaller than Lua) for a long time. Solid looks very promising to me.",{"value":95,"source":88,"evidence":96},"Good C interface and well written",[97,98],{"id":72,"by":73,"text":74},{"id":99,"by":100,"text":101},"6429062","beagle3","It's a nice little language, and I dislike Lua's 1-origin indexing a lot (no real problem with its object system otherwise). However, despite taking some 200K compiled, Lua does…",[103,113,117],{"value":104,"source":88,"evidence":105},"No built-in array; lists are linked lists, so random access is slow",[106,109],{"id":107,"by":100,"text":108},"6429065","Given that there is no array built in type, and the closest thing (list) is a lisp style linked list, I wouldn't expect it to be speedy in any non-trivial benchmark (or…",{"id":110,"by":111,"text":112},"6428763","theseoafs","Are there any performance benchmarks? EDIT: The language looks pretty cool in general. I'm not a huge fan of the recursion syntax. In particular, the `this` keyword seems to just…",{"value":114,"source":88,"evidence":115},"Recursion syntax and this keyword are confusing",[116],{"id":110,"by":111,"text":112},{"value":118,"source":88,"evidence":119},"Global namespace is cluttered",[120,124],{"id":121,"by":122,"text":123},"6428522","smilekzs","The core seems much more interesting than the Pawn language. I'd like to see more comparisons once this matures. A few points: 1. I'd like to see the FFI implemented natively…",{"id":125,"by":11,"text":126},"6428711","Yeah, the namespacing is somewhat poor, sorry about that. I'll get around to prefixing the names at some point.",[128,132,136,143],{"value":129,"source":88,"evidence":130},"Native FFI declared in Solid rather than object file parsing",[131],{"id":121,"by":122,"text":123},{"value":133,"source":88,"evidence":134},"Performance benchmarks",[135],{"id":110,"by":111,"text":112},{"value":137,"source":88,"evidence":138},"Persistent immutable data collections like Clojure",[139],{"id":140,"by":141,"text":142},"6428331","arthuredelstein","Very cool. I would love to see immutable, persistent data collections as offered in Clojure.",{"value":144,"source":88,"evidence":145},"Separate VM build for small microcontrollers",[146,149],{"id":147,"by":92,"text":148},"6428072","Can VM be built separately from the compiler, so it could be used on small MCUs?",{"id":79,"by":11,"text":80},[151,158],{"value":152,"source":88,"evidence":153},"How big is the executable?",[154],{"id":155,"by":156,"text":157},"6427921","cldr","Awesome work. How big is the executable? Also, what did you not like about the Lua object model?",{"value":159,"source":88,"evidence":160},"How long did it take to write?",[161],{"id":162,"by":156,"text":163},"6428514","How long did it take to write this once you had all the ideas? I looked at the github history but they only went back 5 months and it looks like there was already a significant…",[165,170,174],{"value":166,"source":88,"evidence":167},"Lua",[168,169],{"id":91,"by":92,"text":93},{"id":99,"by":100,"text":101},{"value":171,"source":88,"evidence":172},"Pawn",[173],{"id":121,"by":122,"text":123},{"value":175,"source":88,"evidence":176},"Lobster",[177],{"id":99,"by":100,"text":101},{"comments":43,"answered":33,"key":179},[180,181,182],{"id":51,"text":52},{"id":125,"text":126},{"id":54,"text":55},{"commenters":184,"max_depth":185,"maker_replies":43,"first_comment_mins":186,"lifespan_hours":187},8,6,97,9,[189,191,193,195,197,199,201,203,205,207,209,210,211,213,214],[91,37,43,190,92,37],"project\u002Fpositive\u002Fidea",[51,37,37,192,11,32],"maker\u002Fneutral\u002Fidea",[110,32,32,194,111,37],"project\u002Fcritical\u002Fdesign",[107,32,32,196,100,37],"project\u002Fcritical\u002Fperformance",[121,30,33,198,122,37],"project\u002Fmixed\u002Fidea",[125,30,37,200,11,32],"maker\u002Fneutral\u002Fdesign",[72,33,43,202,73,37],"maker\u002Fpositive\u002Fdocs",[140,31,33,204,141,37],"project\u002Fneutral\u002Fidea",[155,43,33,206,156,37],"project\u002Fneutral\u002Fperformance",[54,43,37,208,11,32],"project\u002Fneutral\u002Fdesign",[147,43,33,208,92,37],[79,43,37,208,11,32],[162,43,33,212,156,37],"maker\u002Fneutral\u002Fexecution",[64,43,37,212,11,32],[99,43,32,194,100,37],[],[217,222,226,231,235,240],{"id":218,"name":219,"points":220,"category":221},"6415822","UI Concept",388,"dev_tools",{"id":223,"name":224,"points":225,"category":20},"6444027","Drawingboard.js",233,{"id":227,"name":228,"points":229,"category":230},"6427031","tweet-secret",128,"security_privacy",{"id":232,"name":233,"points":234,"category":221},"6445675","OpenTokRTC",93,{"id":236,"name":237,"points":238,"category":239},"6438925","Clever Routines",88,"productivity",{"id":241,"name":242,"points":243,"category":221},"6444413","Nightcode",68,false,"v2",{"id":247,"name":5,"line":6,"ai":244,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":248,"top":18,"kw":249,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":250,"url":9,"mix":251,"praise":87,"objection":104,"sub":21},6427498,-0.03,[21,24,25,26],"501130533030301",[30,31,32,33],1794036509807]