[{"data":1,"prerenderedAt":258},["ShallowReactive",2],{"project-3460224":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":33,"aspects":34,"strip":39,"post_text":41,"what":42,"said":64,"maker_in_thread":141,"shape":144,"grid":148,"attempts":221,"same_week":222,"maker_shows":32,"maker_hidden":250,"reader_version":251,"card":252},"3460224","Twostroke","A JavaScript interpreter written in Ruby","title","Show HN: A JavaScript interpreter written in Ruby","http:\u002F\u002Fgithub.com\u002Fcharliesome\u002Ftwostroke","github.com","haileys",1326456951,2012,75,27,318,1677,19,"notable","languages","javascript interpreter","library",[21,24,25,26],"ruby","pure ruby javascript","coffeescript","curious",0.071,{"positive":30,"neutral":31,"mixed":32,"critical":32},3,6,1,11,{"idea":35,"execution":36,"performance":38},{"positive":30,"critical":32},{"positive":37,"critical":37},0,{"positive":37,"critical":37},[37,40,37,30,37,37,37,37,37,37,37,37,37,37,30,30,30,40,30,37,37,30,40,32,30,37,37],5,null,{"problem":43,"audience":41,"pricing":41,"motivation":51,"time_to_build":41,"stack":55,"openness":62,"stage":63,"team_size":63},{"value":44,"source":45,"evidence":46},"Runs JavaScript where no native JavaScript engine can be embedded","commenter",[47],{"id":48,"by":49,"text":50},"3460346","charliesome","Something like Twostroke could be useful if for some reason or other you can't embed V8 (eg. no platform support, no access to compilers, etc.) Twostroke is dog slow compared to…",{"value":52,"source":45,"evidence":53},"Fun project that taught the maker about parsers and JavaScript's object model",[54],{"id":48,"by":49,"text":50},[56],{"value":57,"source":58,"evidence":59},"Ruby","maker",[60],{"id":61},"post","open_source","unknown",{"praise":65,"objections":81,"requests":100,"questions":108,"alternatives":122},[66,77],{"value":67,"source":45,"evidence":68},"Fun and interesting project",[69,72,73],{"id":70,"by":11,"text":71},"3460225","Twostroke is also capable enough to run the CoffeeScript compiler: http:\u002F\u002Fgithub.com\u002Fcharliesome\u002Fcoffee-script-pure",{"id":48,"by":49,"text":50},{"id":74,"by":75,"text":76},"3460516","vidarh","Fun is always a good reason... I need to dust off my (horribly incomplete) Ruby compiler project.",{"value":78,"source":58,"evidence":79},"Can run the CoffeeScript compiler",[80],{"id":70,"by":11,"text":71},[82,86,93],{"value":83,"source":45,"evidence":84},"Very slow compared to real JavaScript engines",[85],{"id":48,"by":49,"text":50},{"value":87,"source":45,"evidence":88},"No clear use case",[89],{"id":90,"by":91,"text":92},"3463301","jemeshsu","I see no use case for this. You must be masters of both languages after this project.",{"value":94,"source":45,"evidence":95},"Project appears stagnant",[96],{"id":97,"by":98,"text":99},"3462066","sreque","The front page for the project hasn't been updated in over 3 years, and a quick search for github activity shows stagnation too. What direction is this project heading and how…",[101],{"value":102,"source":45,"evidence":103},"Add a Twostroke adapter to ExecJS",[104],{"id":105,"by":106,"text":107},"3461088","sstephenson","Very cool! If you added a Twostroke adapter to ExecJS (https:\u002F\u002Fgithub.com\u002Fsstephenson\u002Fexecjs), the ruby-coffee-script gem would work without modification.",[109,115],{"value":110,"source":45,"evidence":111},"Why build this instead of embedding V8?",[112],{"id":113,"by":75,"text":114},"3460334","Looks fun, but it'd be interesting to hear more about your rationale for this vs. embedding V8 etc.",{"value":116,"source":45,"evidence":117},"Why hand-write the parser instead of using a parsing library?",[118],{"id":119,"by":120,"text":121},"3460590","Xion","I'm quite flabbergasted seeing this: https:\u002F\u002Fgithub.com\u002Fcharliesome\u002Ftwostroke\u002Fblob\u002Fmaster\u002Flib\u002Ftwostroke\u002Fparser.rb That is, a parser which is essentially coded by hand, with all…",[123,127,134],{"value":124,"source":45,"evidence":125},"V8 embedding",[126],{"id":113,"by":75,"text":114},{"value":128,"source":45,"evidence":129},"HotRuby",[130],{"id":131,"by":132,"text":133},"3461545","endymi0n","You should check out HotRuby, which is a Ruby interpreter, written in Javascript: http:\u002F\u002Fhotruby.yukoba.jp\u002F Should be pretty interesting to see Twostroke running on HotRuby…",{"value":135,"source":45,"evidence":136},"treetop, kpeg, citrus parsing libraries",[137],{"id":138,"by":139,"text":140},"3460605","andrewvc","Sure there are, kpeg, citrus, treetop... Probably more I don't know about.",{"comments":32,"answered":37,"key":142},[143],{"id":70,"text":71},{"commenters":145,"max_depth":146,"maker_replies":32,"first_comment_mins":37,"lifespan_hours":147},21,4,14,[149,151,153,157,159,161,164,167,169,171,174,176,179,182,185,188,190,194,195,197,199,201,205,208,210,215,218],[70,37,37,150,11,32],"project\u002Fpositive\u002Fperformance",[105,37,40,152,106,37],"project\u002Fpositive\u002Fidea",[154,37,37,155,156,37],"3461762","commenter\u002Fneutral\u002Fidea","jewel",[119,32,30,158,120,37],"project\u002Fneutral\u002Fexecution",[138,32,37,160,139,37],"commenter\u002Fneutral\u002Fnone",[162,32,37,163,49,37],"3460637","commenter\u002Fneutral\u002Fexecution",[165,32,37,160,166,37],"3460679","jhchabran",[168,32,37,160,49,37],"3460726",[170,32,37,160,166,37],"3462536",[172,32,37,163,173,37],"3460695","groovy2shoes",[175,32,37,163,75,37],"3460973",[177,32,37,163,178,37],"3461033","daeken",[180,32,37,160,181,37],"3462024","wglb",[183,32,37,160,184,37],"3461922","wycats",[113,186,30,187,75,37],2,"project\u002Fneutral\u002Fidea",[48,186,30,189,49,37],"project\u002Fmixed\u002Fperformance",[191,186,30,192,193,37],"3460473","project\u002Fneutral\u002Fnone","lloeki",[74,186,40,152,75,37],[196,186,30,192,75,37],"3461923",[131,30,37,198,132,37],"other\u002Fneutral\u002Fnone",[97,30,37,200,98,37],"other\u002Fcritical\u002Fnone",[202,146,30,203,204,37],"3460718","maker\u002Fneutral\u002Fidea","kyle_martin1",[206,40,40,152,207,37],"3461002","jiaaro",[90,31,32,209,91,37],"project\u002Fcritical\u002Fidea",[211,212,30,213,214,37],"3461048",7,"maker\u002Fneutral\u002Fnone","georgemcbay",[216,212,37,160,217,37],"3461677","almost",[219,212,37,160,220,37],"3462031","mbetter",[],[223,228,233,238,242,246],{"id":224,"name":225,"points":226,"category":227},"3477081","HackPad",209,"productivity",{"id":229,"name":230,"points":231,"category":232},"3464607","Fisher–Yates shuffle visualization",176,"learning_science",{"id":234,"name":235,"points":236,"category":237},"3469347","CSSDeck",165,"dev_tools",{"id":239,"name":240,"points":14,"category":241},"3471405","DirtyShare","web_saas",{"id":243,"name":244,"points":245,"category":241},"3458214","Scrollsy",73,{"id":247,"name":248,"points":249,"category":241},"3473220","Hello Bar Stop SOPA\u002FPIPA notification bar",57,false,"v2",{"id":253,"name":5,"line":6,"ai":250,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":254,"top":18,"kw":255,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":256,"url":9,"mix":257,"praise":67,"objection":83,"sub":21},3460224,0.07,[21,24,25,26],"050300000000003335300351300",[30,31,32,32],1794036492570]