[{"data":1,"prerenderedAt":313},["ShallowReactive",2],{"project-8734307":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":80,"maker_in_thread":147,"shape":157,"grid":162,"attempts":277,"same_week":278,"maker_shows":33,"maker_hidden":306,"reader_version":307,"card":308},"8734307","Iota","a text editor written in Rust","title","Show HN: Iota – a text editor written in Rust","https:\u002F\u002Fgithub.com\u002Fgchp\u002Fiota","github.com","gchp",1418300015,2014,221,45,80,2272,4,"notable","dev_tools","text editor","cli",[21,24,25,26],"rust","terminal editor","termbox","loved",0.31,{"positive":30,"neutral":31,"mixed":32,"critical":33},7,8,0,1,16,{"docs":36,"design":38,"idea":39,"privacy":41},{"positive":37,"critical":32},2,{"positive":32,"critical":32},{"positive":40,"critical":33},3,{"positive":32,"critical":32},[40,32,32,32,32,32,32,43,43,32,32,32,32,32,32,32,32,32,32,40,32,32,32,40,40,43,32,40,43,32,43,40,32,33,43,32,40,32,32,43],5,null,{"problem":46,"audience":44,"pricing":44,"motivation":54,"time_to_build":44,"stack":62,"openness":77,"stage":78,"team_size":79},{"value":47,"source":48,"evidence":49},"Existing editors are too slow, bulky, hard to customise, or platform specific","commenter",[50],{"id":51,"by":52,"text":53},"8785171","bbcbasic","You say on the readme: \"Iota was born out of my frustrations with existing text editors. Over the years I've tried combinations of simple text editors, IDEs and everything in…",{"value":55,"source":56,"evidence":57},"Frustration with existing text editors; fun side project","maker",[58,59],{"id":51,"by":52,"text":53},{"id":60,"by":11,"text":61},"8734908","Thanks for checking it out! > Text editors to me (a web programmer) look too intimidating to build from scratch. Honestly, this was my thinking too before I started working on…",[63,71],{"value":64,"source":56,"evidence":65},"Rust",[66,68],{"id":67},"post",{"id":69,"by":11,"text":70},"8735329","I guess you could say that! I initially found it much harder to work with Rust, as the language is more strict in a number of ways. But once I began to understand how it works,…",{"value":72,"source":56,"evidence":73},"rustbox (Rust wrapper around termbox)",[74],{"id":75,"by":11,"text":76},"8734626","I actually contributed quite a bit to a fork of godit called vigo [0]. It gave me lots of insight into how text editors work. When I went to start writing Iota, I found that…","open_source","beta","solo",{"praise":81,"objections":100,"requests":105,"questions":110,"alternatives":124},[82,93],{"value":83,"source":48,"evidence":84},"Good write-up of how the maker learned editor internals",[85,89],{"id":86,"by":87,"text":88},"8736061","Fede_V","This is an absolutely awesome answer, and in the best tradition of old school hackers. This is why open source rules. If you have some time - would you mind writing a high level…",{"id":90,"by":91,"text":92},"8735982","krat0sprakhar","Thats a lot for the excellent answer, Greg! Really appreciate it :)",{"value":94,"source":48,"evidence":95},"Interest in Rust as a language",[96],{"id":97,"by":98,"text":99},"8737569","kolev","I'm so excited to see more and more projects in Rust, which will bring more speed and security in our digital lives. Thank you very much, Greg!",[101],{"value":102,"source":48,"evidence":103},"Unclear what advantage Iota has over Vim",[104],{"id":51,"by":52,"text":53},[106],{"value":107,"source":48,"evidence":108},"Offer a higher-level write-up of editor architecture",[109],{"id":86,"by":87,"text":88},[111,117],{"value":112,"source":48,"evidence":113},"Which resources were used to learn how editors work",[114],{"id":115,"by":91,"text":116},"8734792","Thanks for sharing Greg! I've been waiting for Rust to reach 1.0 so that I can dive-in and work on side projects. Text editors to me (a web programmer) look too intimidating to…",{"value":118,"source":48,"evidence":119},"Why use termbox instead of ncurses or terminfo",[120],{"id":121,"by":122,"text":123},"8737658","thristian","What's the advantage of using the limited termbox interface over (n)curses, or just using the low-level terminfo library directly?",[125,129,136,140],{"value":126,"source":56,"evidence":127},"Vigo",[128],{"id":75,"by":11,"text":76},{"value":130,"source":48,"evidence":131},"godit",[132],{"id":133,"by":134,"text":135},"8734601","swah","This[1] emacs inspired editor, written in Go, also uses termbox (pure go port: https:\u002F\u002Fgithub.com\u002Fnsf\u002Ftermbox-go) - great little library. I'm rewriting a python command line…",{"value":137,"source":48,"evidence":138},"Vim",[139],{"id":51,"by":52,"text":53},{"value":141,"source":48,"evidence":142},"Neovim",[143],{"id":144,"by":145,"text":146},"8734432","leonardinius","Great work, thank you. I was awaiting for something like this for a while. Thanks for sharing. As a side note: In the long term what I would really love to see - is Rust GUI for…",{"comments":148,"answered":18,"key":149},12,[150,151,154],{"id":60,"text":61},{"id":152,"text":153},"8736099","Sure, I could give it a go! I've been thinking about writing a few articles on my experiences so far in writing the editor. Sorta covering what I wrote above. I could definitely…",{"id":155,"text":156},"8739434","Cool! Spent some time reading this last night, its very interesting. Hope to get more time in the coming days to read more of it. Thanks for sharing!",{"commenters":158,"max_depth":159,"maker_replies":148,"first_comment_mins":160,"lifespan_hours":161},30,6,37,273,[163,165,169,172,175,178,181,184,186,188,189,190,194,198,201,203,206,209,212,213,215,218,220,221,224,227,229,231,234,238,240,244,245,247,248,251,253,255,257,260,262,266,268,271,275],[115,32,40,164,91,32],"maker\u002Fneutral\u002Fnone",[166,32,32,167,168,32],"8734855","commenter\u002Fneutral\u002Fnone","hnnewguy",[170,32,32,167,171,32],"8735052","Patient0",[173,32,32,167,174,32],"8735445","libria",[176,32,32,167,177,32],"8735545","illumen",[179,32,32,167,180,32],"8735711","dminor",[182,32,32,167,183,32],"8735980","JoshTriplett",[60,32,32,185,11,33],"maker\u002Fneutral\u002Fdocs",[90,32,43,187,91,32],"maker\u002Fpositive\u002Fdocs",[86,32,43,187,87,32],[152,32,32,185,11,33],[191,32,32,192,193,32],"8736614","other\u002Fneutral\u002Fdocs","hga",[195,32,32,196,197,32],"8738162","other\u002Fneutral\u002Fnone","webjprgm",[199,32,32,192,200,32],"8738362","dguaraglia",[155,32,32,202,11,33],"other\u002Fpositive\u002Fdocs",[204,32,32,196,205,32],"8739977","eigenrick",[207,32,32,208,11,33],"8740037","maker\u002Fpositive\u002Fnone",[210,32,32,196,211,32],"8740538","kibwen",[133,33,32,196,134,32],[75,33,32,214,11,33],"maker\u002Fneutral\u002Fexecution",[216,33,32,196,217,32],"8734684","Argorak",[219,33,40,164,134,32],"8735162",[69,33,32,208,11,33],[222,33,32,196,223,32],"8735352","agumonkey",[225,33,32,196,226,32],"8738814","Guthur",[228,33,32,167,223,32],"8739365",[121,33,40,230,122,32],"project\u002Fneutral\u002Fdesign",[232,33,40,230,233,32],"8738145","tomjakubowski",[235,37,43,236,237,32],"8735567","project\u002Fpositive\u002Fidea","tatterdemalion",[239,37,32,185,11,33],"8735612",[241,40,40,242,243,32],"8734758","project\u002Fneutral\u002Fidea","brickmort",[97,18,43,236,98,32],[246,18,32,208,11,33],"8739308",[144,43,43,236,145,32],[249,43,40,242,250,32],"8734440","Dewie",[252,43,40,242,145,32],"8734945",[254,43,32,208,11,33],"8734462",[51,159,33,256,52,32],"project\u002Fcritical\u002Fidea",[258,30,43,208,259,32],"8736404","cjfont",[261,30,32,208,11,33],"8736510",[263,31,40,264,265,32],"8738911","project\u002Fneutral\u002Fprivacy","Animats",[267,31,32,214,11,33],"8738952",[269,31,32,196,270,32],"8740500","paulmlewis",[272,273,43,208,274,32],"8736341",9,"zedr",[276,273,32,208,11,33],"8736512",[],[279,283,288,293,297,301],{"id":280,"name":281,"points":282,"category":20},"8735937","Gitfs",196,{"id":284,"name":285,"points":286,"category":287},"8745263","um-hn",180,"ai",{"id":289,"name":290,"points":291,"category":292},"8743374","ssh-chat",171,"consumer_social",{"id":294,"name":295,"points":296,"category":20},"8753369","PhantomJS Pad",120,{"id":298,"name":299,"points":300,"category":292},"8762455","things.gnod.com",96,{"id":302,"name":303,"points":304,"category":305},"8733976","TouchstoneJS",92,"languages",false,"v2",{"id":309,"name":5,"line":6,"ai":306,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":28,"top":18,"kw":310,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":311,"url":9,"mix":312,"praise":83,"objection":102,"sub":21},8734307,[21,24,25,26],"3000000550000000000300033503505301503005",[30,31,32,33],1793990916655]