[{"data":1,"prerenderedAt":403},["ShallowReactive",2],{"project-12677385":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":45,"post_text":46,"what":47,"said":88,"maker_in_thread":206,"shape":215,"grid":219,"attempts":366,"same_week":367,"maker_shows":32,"maker_hidden":396,"reader_version":397,"card":398},"12677385","Nightlight","An editor that runs inside Clojure projects","title","Show HN: Nightlight, an editor that runs inside Clojure projects","https:\u002F\u002Fgithub.com\u002Foakes\u002FNightlight","github.com","gw",1476111222,2016,195,63,139,2264,7,"notable","dev_tools","code editor","web_app",[24,25,26,27,28],"clojure editor","instarepl","live coding","clojure ide","browser ide","mixed",0.13,{"positive":32,"neutral":33,"mixed":34,"critical":35},10,15,4,9,38,{"idea":38,"design":40,"execution":43},{"positive":35,"critical":39},5,{"positive":41,"critical":42},0,3,{"positive":44,"critical":44},1,[44,42,39,41,41,44,41,41,42,41,44,42,42,44,44,42,42,39,39,44,39,39,42,42,44,41,39,42,41,41,42,41,39,41,44,41,39,41,39,42],null,{"problem":48,"audience":59,"pricing":46,"motivation":71,"time_to_build":46,"stack":76,"openness":87,"stage":87,"team_size":87},{"value":49,"source":50,"evidence":51},"Editing and live-patching Clojure code from inside the running application, with code completion.","maker",[52,56],{"id":53,"by":54,"text":55},"12677919","sdegutis","> \"More powerful editors like Cider and Cursive manage to do this with some very complex machinery that I could never duplicate. Instead, I decided to rethink the problem. Since…",{"id":57,"by":11,"text":58},"12678107","The reason code completion is easier with this design is that I don't need to deal with any nREPL server; Nightlight can just go to the relevant namespace and ask for the…",{"value":60,"source":61,"evidence":62},"Clojure developers","inferred",[63,67],{"id":64,"by":65,"text":66},"12677817","runeblaze","Something more advanced yet similar to Nightcode is something I am definitely excited to try as an alternative to Emacs and Cursive. Also gotta try this with play-clj to see how…",{"id":68,"by":69,"text":70},"12677990","yojex","It's the same author, so I'm assuming that this is his spiritual continuation of Nightcode with a huge update. EDIT: They are going to remain separate, here's what he wrote on…",{"value":72,"source":50,"evidence":73},"Rethink editor integration by running the editor in the same process as the project, avoiding complex nREPL machinery.",[74,75],{"id":53,"by":54,"text":55},{"id":57,"by":11,"text":58},[77,83],{"value":78,"source":61,"evidence":79},"Clojure",[80],{"id":81,"by":54,"text":82},"12677875","This is actually really creative and clever! In fact it's the first project of it's kind that I've ever heard of! Basically it's a library that runs a web server that serves a…",{"value":84,"source":50,"evidence":85},"Compliment (code completion library)",[86],{"id":57,"by":11,"text":58},"unknown",{"praise":89,"objections":114,"requests":148,"questions":163,"alternatives":182},[90,102],{"value":91,"source":92,"evidence":93},"Clever approach of running the editor inside the application process","commenter",[94,95,99],{"id":81,"by":54,"text":82},{"id":96,"by":97,"text":98},"12678122","tunaoftheland","Agreed! The author mentioned Smalltalk and it instantly clicked for me. Having a live programming environment sounds awesome, it sounds like it will fit my thinking pattern…",{"id":100,"by":97,"text":101},"12678263","Just wanted to repeat my sentiment in another thread, that I love this approach to problem solving. The outcome appears to be a tradeoff, but one that simplifies the hard part…",{"value":103,"source":92,"evidence":104},"Live programming and Smalltalk-like interactivity",[105,109,110],{"id":106,"by":107,"text":108},"12677838","swalsh","The possibilities of this thing blow my mind. Very cool idea.",{"id":96,"by":97,"text":98},{"id":111,"by":112,"text":113},"12678596","slim","This is amazing. Could you provide a \"starter image\" in the form of, say, an android .apk ? That would get me started on clojure very quickly (that would be the smalltalk way)",[115,128,141],{"value":116,"source":92,"evidence":117},"Embedding an IDE in the project is a dependency and security concern for production",[118,122,125],{"id":119,"by":120,"text":121},"12677849","gravypod","I like the idea of a browser based IDE. I like the idea of an IDE for a lisp-like language that actually offers first-class auto-completion. I don't like the idea of embedding it…",{"id":123,"by":120,"text":124},"12678177","I wouldn't want to risk something this critical being in my project. I'm stupid so I try and limit my own attack surface against myself.",{"id":126,"by":120,"text":127},"12679521","Yea it seems like a great project but I don't really like to think of my IDE as a dependency of my code but rather my code as a dependency of my IDE.",{"value":129,"source":92,"evidence":130},"Offers little over Emacs with CIDER or SLIME",[131,135,138],{"id":132,"by":133,"text":134},"12678582","qwertyuiop924","I don't really see how the integration would be any better than what I'm getting already from Emacs: I can already patch the code live, etc, through a REPL, and run the code as I…",{"id":136,"by":97,"text":137},"12680806","I am ignorant of SLIME\u002FCIDER (though I think I've used the latter with Clojure). Do they have access to the same memory space as the running application and the ability to…",{"id":139,"by":133,"text":140},"12680928","That's true, but the practical effect (having access to application internals, interacting with live program state, the ability to connect to a live program and hotpatch it, even…",{"value":142,"source":92,"evidence":143},"Toolbar buttons duplicate well-known shortcuts",[144,145],{"id":81,"by":54,"text":82},{"id":146,"by":54,"text":147},"12678159","Neat! Better than nothing! Still not as context-aware as IntelliJ does (sometimes), but it's hard to beat Jetbrains, especially as a sole developer. Plus Clojure doesn't exactly…",[149,156],{"value":150,"source":92,"evidence":151},"Credit Light Table as inspiration",[152],{"id":153,"by":154,"text":155},"12679243","fedess","Wish it credited Light Table as inspiration (http:\u002F\u002Flighttable.com\u002F) :\u002F Even the term \"instarepl\" is taken from LT's creator, Chris Granger. Of course LT's inspiration is…",{"value":157,"source":92,"evidence":158},"Support for Google App Engine",[159],{"id":160,"by":161,"text":162},"12678417","Jeaye","I would love to see if this works on Google App Engine. GAE has some strict requirements, as far as what its apps are allowed to do, but, up until now, it's been a pretty closed…",[164,168],{"value":165,"source":92,"evidence":166},"How is code completion easier than with an nREPL-based editor?",[167],{"id":53,"by":54,"text":55},{"value":169,"source":92,"evidence":170},"Can it be excluded from production builds?",[171,174,178],{"id":172,"by":97,"text":173},"12678041","Maybe a Clojure equivalent to NPM's \"devDependencies\" can manage something like this, so that it gets excluded from the final deployment JAR. It's been a while since I'd done…",{"id":175,"by":176,"text":177},"12678651","macmac","Both the major Clojure \u002F ClojureScript build tools - boot and leiningen - support dev only dependencies.",{"id":179,"by":180,"text":181},"12681963","eyelidlessness","Leiningen makes this easy. During development, the :dev profile is run (joined with the project definition), but it's excluded from builds (JAR, WAR, etc.).",[183,190,198,202],{"value":184,"source":92,"evidence":185},"Emacs with CIDER or SLIME",[186,187],{"id":132,"by":133,"text":134},{"id":188,"by":133,"text":189},"12680476","CIDER allow for many of the same features, IIRC. But you likely already knew that, and I'm primarily working in Scheme with Geiser, so what do I know?",{"value":191,"source":92,"evidence":192},"Cursive",[193,194],{"id":64,"by":65,"text":66},{"id":195,"by":196,"text":197},"12678560","lemming","Actually, Cursive doesn't do this, it analyses source for its completions.",{"value":199,"source":92,"evidence":200},"Nightcode",[201],{"id":68,"by":69,"text":70},{"value":203,"source":92,"evidence":204},"Light Table",[205],{"id":153,"by":154,"text":155},{"comments":42,"answered":44,"key":207},[208,211,212],{"id":209,"text":210},"12680899","Everything is a remix ;) Light table certainly was my inspiration for the instaREPL. DrRacket inspired the notion of running code in the same process as the editor. The code…",{"id":57,"text":58},{"id":213,"text":214},"12678010","I'm using let's encrypt, which seems to not work on chrome for android.",{"commenters":216,"max_depth":39,"maker_replies":42,"first_comment_mins":217,"lifespan_hours":218},35,62,30,[220,222,224,226,230,232,234,236,237,240,242,246,248,251,254,257,260,262,264,267,270,271,273,274,275,278,279,280,283,285,287,290,293,294,297,299,300,303,305,306,307,309,311,314,316,317,319,321,325,329,331,333,336,338,341,345,347,350,352,355,357,361,365],[132,41,44,221,133,41],"project\u002Fcritical\u002Fidea",[136,41,41,223,97,41],"commenter\u002Fneutral\u002Fnone",[139,41,42,225,133,41],"project\u002Fneutral\u002Fidea",[227,41,39,228,229,41],"12683870","project\u002Fpositive\u002Fidea","JaumeGreen",[231,41,41,223,133,41],"12684124",[233,41,41,223,229,41],"12685040",[235,41,41,223,133,41],"12685145",[153,44,44,221,154,41],[238,44,41,223,239,41],"12680078","azeirah",[241,44,41,223,154,41],"12680565",[243,44,41,244,245,41],"12686942","other\u002Fneutral\u002Fnone","e12e",[209,44,41,247,11,44],"maker\u002Fneutral\u002Fidea",[119,249,44,250,120,41],2,"project\u002Fcritical\u002Fdesign",[252,249,39,228,253,41],"12677910","quantumhobbit",[255,249,41,244,256,41],"12678445","hashkb",[258,249,41,244,259,41],"12679589","kedean",[261,249,44,221,133,41],"12680462",[172,249,42,263,97,41],"project\u002Fneutral\u002Fdesign",[265,249,42,263,266,41],"12678075","JamesLeonis",[268,249,42,263,269,41],"12678090","BWStearns",[123,249,44,250,120,41],[272,249,42,263,97,41],"12678225",[126,249,44,250,120,41],[179,249,42,263,180,41],[276,249,42,263,277,41],"12682572","jarcane",[175,249,42,263,176,41],[106,42,39,228,107,41],[281,42,42,225,282,41],"12677926","S4M",[284,42,39,228,266,41],"12678052",[286,42,44,221,133,41],"12680432",[288,42,42,289,269,41],"12678065","project\u002Fmixed\u002Fidea",[291,42,42,292,133,41],"12680436","project\u002Fneutral\u002Fnone",[96,42,39,228,97,41],[295,34,39,228,296,41],"12679136","samatman",[64,39,42,298,65,41],"project\u002Fmixed\u002Fexecution",[68,39,42,292,69,41],[81,301,42,302,54,41],6,"project\u002Fmixed\u002Fdesign",[304,301,41,244,245,41],"12686981",[53,18,44,221,54,41],[57,18,41,247,11,44],[146,18,42,308,54,41],"maker\u002Fmixed\u002Fexecution",[100,18,39,310,97,41],"maker\u002Fpositive\u002Fidea",[312,18,42,225,313,41],"12678112","junke",[315,18,42,292,54,41],"12678617",[195,18,41,223,196,41],[318,18,41,223,54,41],"12678611",[320,18,41,223,196,41],"12681932",[322,323,42,225,324,41],"12683388",8,"xg15",[326,323,41,327,328,41],"12683662","other\u002Fneutral\u002Fidea","nextos",[330,323,41,244,245,41],"12686955",[160,35,39,332,161,41],"project\u002Fpositive\u002Fexecution",[334,35,41,244,335,41],"12678465","nothrabannosir",[337,35,41,244,161,41],"12678493",[339,35,41,244,340,41],"12678631","nuschk",[342,32,44,343,344,41],"12677951","project\u002Fcritical\u002Fexecution","wmichelin",[213,32,41,346,11,44],"maker\u002Fneutral\u002Fexecution",[348,32,41,223,349,41],"12679365","kim0",[111,351,39,228,112,41],11,[353,351,41,223,354,41],"12679894","sova",[356,351,41,223,112,41],"12688519",[358,359,39,228,360,41],"12678393",12,"agumonkey",[362,363,42,292,364,41],"12677823",13,"meira",[188,363,41,223,133,41],[],[368,373,378,383,387,391],{"id":369,"name":370,"points":371,"category":372},"12692190","Social Media Fingerprint",911,"security_privacy",{"id":374,"name":375,"points":376,"category":377},"12694004","Tesseract.js",727,"languages",{"id":379,"name":380,"points":381,"category":382},"12679597","TagSpaces",361,"productivity",{"id":384,"name":385,"points":386,"category":20},"12650936","Patat",167,{"id":388,"name":389,"points":390,"category":20},"12685780","Marathono",165,{"id":392,"name":393,"points":394,"category":395},"12665069","RunMyRobot",162,"hardware",false,"v2",{"id":399,"name":5,"line":6,"ai":396,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":400,"maker":11,"domain":10,"tier":19,"attempts":41,"strip":401,"url":9,"mix":402,"praise":91,"objection":116,"sub":21},12677385,[24,25,26,27,28],"1350010030133113355155331053003050105053",[32,33,34,35],1794036548440]