[{"data":1,"prerenderedAt":322},["ShallowReactive",2],{"project-6578584":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":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":37,"post_text":29,"what":40,"said":65,"maker_in_thread":146,"shape":156,"grid":161,"attempts":286,"same_week":287,"maker_shows":32,"maker_hidden":315,"reader_version":316,"card":317},"6578584","YinYang","A usable live programming language","title","Show HN: YinYang, a usable live programming language","http:\u002F\u002Fresearch.microsoft.com\u002Fen-us\u002Fpeople\u002Fsmcdirm\u002Fliveprogramming.aspx?iedz00","research.microsoft.com","seanmcdirmid",1382230545,2013,134,55,155,1739,9,"notable","languages","live programming language","other",[24,25,26,27],"live programming","programming language","type inference","edit and continue","quiet",null,{"positive":31,"neutral":32,"mixed":33,"critical":32},2,1,0,4,{"idea":36},{"positive":32,"critical":32},[33,33,33,33,33,33,38,38,39,33,33,33,33,32,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33],5,3,{"problem":41,"audience":29,"pricing":29,"motivation":48,"time_to_build":29,"stack":54,"openness":63,"stage":64,"team_size":63},{"value":42,"source":43,"evidence":44},"Gives programmers a tight feedback loop by repairing program execution retroactively as code changes.","maker",[45],{"id":46,"by":11,"text":47},"6578717","Any language can support edit and continue, its more a matter of your debugger than programming model. Live programming goes beyond edit and continue in that your program…",{"value":49,"source":43,"evidence":50},"Make development easier by creating a live feedback loop between programmer and program.",[51],{"id":52,"by":11,"text":53},"6578936","I basically agree, but live programming is not live coding. Live coding is about programming while the program is actively running (we can argue if performance is involved in…",[55,59],{"value":56,"source":43,"evidence":57},"C#",[58],{"id":46,"by":11,"text":47},{"value":60,"source":43,"evidence":61},"WPF",[62],{"id":46,"by":11,"text":47},"unknown","prototype",{"praise":66,"objections":75,"requests":97,"questions":102,"alternatives":110},[67],{"value":68,"source":69,"evidence":70},"Looking forward to type inference talk.","commenter",[71],{"id":72,"by":73,"text":74},"6584893","untothebreach","Can't wait!",[76,83,90],{"value":77,"source":69,"evidence":78},"Unclear whether it scales to large enterprise applications.",[79],{"id":80,"by":81,"text":82},"6578617","keyle","Loving that concept of the @ symbol. Sadly I don't see that scaling to enterprise large applications, where you have little clues about what's calling your library with what…",{"value":84,"source":69,"evidence":85},"Live demos seem limited to small projects.",[86],{"id":87,"by":88,"text":89},"6578929","granttimmerman","All these live demo applications (like http:\u002F\u002Flivecoding.io\u002F) are interesting and may be useful for teaching the basics of a language, but I don't see them being used at anything…",{"value":91,"source":69,"evidence":92},"Continuous testing with unit tests already gives similar feedback.",[93],{"id":94,"by":95,"text":96},"6578705","joshribakoff","This is sort of possible with any language, in the sense of unit testing. You can even setup a file watcher to run your unit tests automatically whenever the code changes, and…",[98],{"value":99,"source":43,"evidence":100},"Port to JavaScript for a public prototype.",[101],{"id":46,"by":11,"text":47},[103],{"value":104,"source":69,"evidence":105},"Isn't this already achieved with a REPL?",[106],{"id":107,"by":108,"text":109},"6578971","adamwk","Isn't this already achieved with a REPL? I mean other than GUI programming, which something like this would be useful in the same spirit as a REPL.",[111,119,126,133,140],{"value":112,"source":69,"evidence":113},"REPL",[114,115],{"id":107,"by":108,"text":109},{"id":116,"by":117,"text":118},"6579050","markus2012","I edit and re-edit code in my vim Clojure REPL all the time.",{"value":120,"source":69,"evidence":121},"Smalltalk \u002F Pharo",[122],{"id":123,"by":124,"text":125},"6579234","philippeback","Well, looks like Pharo can do all of this for a while. http:\u002F\u002Fpharo-project.org Type inference is an object of interest: http:\u002F\u002Fgsoc2013.esug.org\u002Fprojects\u002Ftype-inference-tools…",{"value":127,"source":69,"evidence":128},"LightTable",[129],{"id":130,"by":131,"text":132},"6579151","integricho","This very much reminds me of Chris Granger's LightTable.",{"value":134,"source":69,"evidence":135},"Interlisp",[136],{"id":137,"by":138,"text":139},"6579160","fsck--off","I'm not quite sure what you mean. By \"rewind execution\" do you mean something similar to Interlisp's \"undo\" function?…",{"value":141,"source":43,"evidence":142},"Koka",[143],{"id":144,"by":11,"text":145},"6578729","You might want to check out Koka [1], which includes an effect system to separate pure and effectful computation. I believe there is also a demo of it online [2]. [1]…",{"comments":147,"answered":34,"key":148},22,[149,152,155],{"id":150,"text":151},"6578637","My previous live programming language [1] focused on separating out state, but it was not very scalable from an expressiveness standpoint. I'm of the opinion today that state…",{"id":153,"text":154},"6578690","Even if we factor state into a monad and\u002For pass it in as a parameter, imperative updates still exist and must be dealt with! Try writing a type checker or even a parser with…",{"id":144,"text":145},{"commenters":157,"max_depth":158,"maker_replies":147,"first_comment_mins":159,"lifespan_hours":160},21,13,15,56,[162,164,165,167,168,170,172,175,178,181,184,186,189,190,193,197,198,201,204,205,207,209,210,212,215,217,219,221,223,225,227,228,230,233,235,237,239,241,243,245,247,249,251,253,256,258,260,262,264,266,269,272,275,279,282],[80,33,33,163,81,33],"commenter\u002Fneutral\u002Fidea",[150,33,33,163,11,32],[166,33,33,163,81,33],"6578673",[153,33,33,163,11,32],[169,33,33,163,81,33],"6578713",[144,33,33,171,11,32],"other\u002Fneutral\u002Fnone",[173,33,33,163,174,33],"6589975","Sirex",[176,33,33,163,177,33],"6580034","darkxanthos",[179,32,38,180,73,33],"6578700","maker\u002Fpositive\u002Fidea",[182,32,33,183,11,32],"6578712","project\u002Fneutral\u002Fidea",[72,32,38,185,73,33],"maker\u002Fpositive\u002Fnone",[187,31,39,183,188,33],"6578687","teyc",[46,31,33,183,11,32],[191,39,33,171,192,33],"6579251","Mikeb85",[194,34,33,195,196,33],"6578699","commenter\u002Fpositive\u002Fidea","taliesinb",[123,38,33,171,124,33],[199,38,33,200,11,32],"6579273","other\u002Fneutral\u002Fidea",[87,202,32,203,88,33],6,"project\u002Fcritical\u002Fidea",[52,202,33,183,11,32],[107,202,33,206,108,33],"commenter\u002Fcritical\u002Fidea",[208,202,33,163,11,32],"6578979",[116,202,33,163,117,33],[211,202,33,163,11,32],"6579070",[213,202,33,163,214,33],"6580212","yaxu",[216,202,33,163,11,32],"6580542",[218,202,33,163,214,33],"6581036",[220,202,33,163,11,32],"6582208",[222,202,33,163,214,33],"6583787",[224,202,33,163,11,32],"6584236",[226,202,33,163,214,33],"6584645",[137,202,33,163,138,33],[229,202,33,183,11,32],"6579255",[231,202,33,232,214,33],"6579839","commenter\u002Fneutral\u002Fnone",[234,202,33,232,11,32],"6579868",[236,202,33,232,214,33],"6580068",[238,202,33,232,11,32],"6580672",[240,202,33,232,214,33],"6580936",[242,202,33,232,11,32],"6582274",[244,202,33,171,214,33],"6583870",[246,202,33,232,11,32],"6584215",[248,202,33,171,214,33],"6584587",[250,202,33,232,11,32],"6590058",[252,202,33,232,214,33],"6590486",[254,202,33,200,255,33],"6579864","eddyparkinson",[94,257,33,200,95,33],7,[259,257,33,203,11,32],"6578724",[261,257,33,163,95,33],"6579936",[263,257,33,163,11,32],"6580722",[130,265,33,171,131,33],8,[267,265,33,268,11,32],"6579274","project\u002Fneutral\u002Fnone",[270,18,33,200,271,33],"6578903","lcnmrn",[273,18,33,200,274,33],"6579592","_random_",[276,277,33,171,278,33],"6579211",10,"theboywho",[280,277,33,281,11,32],"6579226","maker\u002Fneutral\u002Fnone",[283,284,33,200,285,33],"6579679",11,"Dewie",[],[288,293,298,302,306,310],{"id":289,"name":290,"points":291,"category":292},"6567967","copy.sh x86 emulator",765,"dev_tools",{"id":294,"name":295,"points":296,"category":297},"6598441","Sketchology",212,"creative",{"id":299,"name":300,"points":301,"category":20},"6588802","Unirest",174,{"id":303,"name":304,"points":305,"category":20},"6569690","WordsForThat.com",151,{"id":307,"name":308,"points":309,"category":20},"6572349","Turbo Pascal compiler in JavaScript",101,{"id":311,"name":312,"points":313,"category":314},"6564878","Food News",84,"consumer_social",false,"v2",{"id":318,"name":5,"line":6,"ai":315,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":319,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":320,"url":9,"mix":321,"praise":68,"objection":77,"sub":21},6578584,[24,25,26,27],"0000005530000100000000000000000000000000",[31,32,33,32],1794036510727]