[{"data":1,"prerenderedAt":422},["ShallowReactive",2],{"project-15357394":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":44,"post_text":46,"what":47,"said":77,"maker_in_thread":198,"shape":203,"grid":207,"attempts":386,"same_week":387,"maker_shows":31,"maker_hidden":414,"reader_version":415,"card":416},"15357394","RMStudio","300k lines of Java UI code running as JavaScript in browser","title","Show HN: 300k lines of Java UI code running as JavaScript in browser","http:\u002F\u002Freportmill.com\u002Fcj\u002FRMStudio\u002F","reportmill.com","jeffreportmill1",1506609515,2017,154,66,244,2242,11,"notable","dev_tools","java in browser demo","web_app",[24,25,26,27],"java in browser","cheerpj","java to javascript","swing in browser","mixed",-0.231,{"positive":31,"neutral":32,"mixed":31,"critical":33},3,6,10,22,{"execution":36,"performance":38,"idea":39,"design":41,"docs":43},{"positive":37,"critical":31},1,{"positive":37,"critical":31},{"positive":37,"critical":40},2,{"positive":42,"critical":40},0,{"positive":42,"critical":42},[42,42,42,42,31,42,37,45,37,42,42,42,42,42,31,42,42,42,31,42,31,37,42,42,37,31,42,42,42,42,42,31,45,37,31,45,37,31,42,37],5,null,{"problem":48,"audience":46,"pricing":46,"motivation":46,"time_to_build":46,"stack":55,"openness":75,"stage":76,"team_size":75},{"value":49,"source":50,"evidence":51},"Running Java UI code in the browser without rewriting it","maker",[52],{"id":53,"by":11,"text":54},"15358920","It was possible, but there were issues with performance, compatibility, security and configuration. Everyone had a different version of the Java plugin implemented with different…",[56,62,69],{"value":57,"source":50,"evidence":58},"Java",[59],{"id":60,"by":11,"text":61},"15358963","Cheerp really did it the right way - starting with the C++ compiler for the Java native runtime. This implementation of Java in the browser is very similar to a normal Java…",{"value":63,"source":50,"evidence":64},"CheerpJ",[65,66],{"id":60,"by":11,"text":61},{"id":67,"by":11,"text":68},"15360706","The standard java.io.File and java.net.URL work as normal. CheerpJ provides a choice of filesystem access methods. This includes a read-only filesystem based on HTTP, a local…",{"value":70,"source":50,"evidence":71},"JavaScript",[72],{"id":73,"by":11,"text":74},"15359014","This version is all JavaScript - the WebAssembly version should be truly amazing. Though probably next year, when WebAssembly matures (adds threading and improved memory model,…","unknown","launched",{"praise":78,"objections":102,"requests":144,"questions":159,"alternatives":171},[79,92],{"value":80,"source":81,"evidence":82},"Technically impressive, compatibility and functionality remarkable","commenter",[83,87,88],{"id":84,"by":85,"text":86},"15358842","killjavascript","This is impressive! Are they using WebAssembly here?",{"id":60,"by":11,"text":61},{"id":89,"by":90,"text":91},"15358201","yuchi","This is… actually not bad. :shocked:",{"value":93,"source":50,"evidence":94},"Performs well on modern hardware",[95,98],{"id":96,"by":11,"text":97},"15359614","I get 40fps+ on my Retina iMac, dragging around composited images, 3D Graphs, and shapes with filter effects. Should only get better as CheerpJ improves (they're only getting…",{"id":99,"by":100,"text":101},"15360824","whipoodle","Seems to perform pretty well. Much more usable than I was expecting.",[103,118,125,133],{"value":104,"source":81,"evidence":105},"Slow load times and large download size",[106,110,114],{"id":107,"by":108,"text":109},"15360066","nneonneo","I’m on a 2G mobile connection right now, and that site refuses to load. I’m going to guess this has something to do with bundling all of Java, but surely there must be a better…",{"id":111,"by":112,"text":113},"15358365","recursive","Uhh... It seems very bad. I clicked \"Run RMStudio DOM\" in Chrome. It loaded dozens of java packages for half a minute, and then showed me a 90s looking splash screen with three…",{"id":115,"by":116,"text":117},"15360453","LeanderK","it's impressive, granted. But it feels like a parody, the long loading-time, the horrible UI, the weird scrolling. It just screams Java.",{"value":119,"source":81,"evidence":120},"Poor accessibility",[121],{"id":122,"by":123,"text":124},"15358783","TheAceOfHearts","This is really nifty as a proof of concept, major kudos to the authors. However, it completely kills accessibility, so it's probably best to avoid for any serious projects. I've…",{"value":126,"source":81,"evidence":127},"Swing-style UI feels dated and parody-like",[128,129],{"id":115,"by":116,"text":117},{"id":130,"by":131,"text":132},"15358218","throwawaydbd","Ah, the cycle is complete. Straight back to Java Applets now that we have 8000000 layers of abstraction in the middle. Good riddance horrific ball of JS\u002FHTML\u002FCSS",{"value":134,"source":81,"evidence":135},"Performance concerns with heavy rendering",[136,140],{"id":137,"by":138,"text":139},"15359504","neurotrace","And how's performance? I have a terrible feeling this is really slow.",{"id":141,"by":142,"text":143},"15361313","jbergens","Some of their demos were very slow and reminded me of old java applets.",[145,152],{"value":146,"source":81,"evidence":147},"Firefox support",[148],{"id":149,"by":150,"text":151},"15360000","kelvin0","\"We test extensively on the latest versions of Chrome and Safari. For the best experience, we recommend Chrome.\" Why no FF? What could possibly cause them not to support it? Any…",{"value":153,"source":81,"evidence":154},"Mobile keyboard input fix",[155],{"id":156,"by":157,"text":158},"15358490","bsaul","runs on my iphone, but text input doesn't seem to trigger the appearance of the keyboard. Other than that, it's pretty impressive.",[160,164],{"value":161,"source":81,"evidence":162},"Is WebAssembly used?",[163],{"id":84,"by":85,"text":86},{"value":165,"source":81,"evidence":166},"How file and network I\u002FO work",[167],{"id":168,"by":169,"text":170},"15360570","fenesiistvan","How file and network I\u002FO works here?",[172,183,191],{"value":173,"source":81,"evidence":174},"GWT",[175,179],{"id":176,"by":177,"text":178},"15358299","le-mark","Appears the tech behind this \"cheerpj\" a java transpiled to javascript[1] system that appears to contain all of openjdk including swing(!?!). That's kind of cool actually. But…",{"id":180,"by":181,"text":182},"15359711","kenoyer130","See also GWT if you are just hell bent on running Java in the browser. As one of our developers commented, 'it is webforms all over again'. Also see…",{"value":184,"source":81,"evidence":185},"Java applets",[186,187],{"id":122,"by":123,"text":124},{"id":188,"by":189,"text":190},"15358852","pavlov","Yes, around 1996-97 there was a lot of hype around desktop applications delivered as applets. E.g. Corel Office for Java: http:\u002F\u002Fwww.edm2.com\u002Findex.php\u002FCorel_Office_for_Java",{"value":192,"source":81,"evidence":193},"Vaadin",[194],{"id":195,"by":196,"text":197},"15359066","Sharlin","Vaadin [1], a fairly popular open-source Java UI framework, is still using GWT on the clientside, but it's more of an implementation detail given that the whole point of Vaadin…",{"comments":32,"answered":45,"key":199},[200,201,202],{"id":73,"text":74},{"id":60,"text":61},{"id":96,"text":97},{"commenters":204,"max_depth":32,"maker_replies":32,"first_comment_mins":205,"lifespan_hours":206},54,87,23,[208,210,214,218,222,225,228,231,233,235,236,238,240,244,245,248,249,252,256,259,262,265,268,271,275,278,281,284,286,288,291,294,297,300,304,307,308,311,315,318,321,323,325,326,328,331,335,337,339,342,345,348,351,354,355,357,360,363,364,368,370,373,376,377,380,383],[176,42,42,209,177,42],"other\u002Fneutral\u002Fidea",[211,42,42,212,213,42],"15358394","commenter\u002Fneutral\u002Fidea","gschrader",[215,42,42,216,217,42],"15359128","other\u002Fneutral\u002Fpricing","ramses0",[219,42,42,220,221,42],"15359864","other\u002Fneutral\u002Fnone","CamperBob2",[223,42,42,220,224,42],"15360168","abraae",[226,42,42,220,227,42],"15360309","wolco",[229,42,42,220,230,42],"15358561","stupidcar",[84,42,31,232,85,42],"project\u002Fneutral\u002Fexecution",[73,42,42,234,11,37],"project\u002Fpositive\u002Fexecution",[60,42,42,234,11,37],[137,42,37,237,138,42],"project\u002Fcritical\u002Fperformance",[96,42,42,239,11,37],"project\u002Fpositive\u002Fperformance",[241,42,45,242,243,42],"15361479","project\u002Fpositive\u002Fidea","copperx",[141,42,37,237,142,42],[246,42,42,220,247,42],"15358965","revelation",[195,42,42,209,196,42],[250,42,42,209,251,42],"15359415","ganonm",[253,42,42,254,255,42],"15361913","commenter\u002Fcritical\u002Fnone","always_good",[257,42,42,209,258,42],"15359507","cromwellian",[260,42,42,220,261,42],"15361005","underwater",[263,42,42,264,258,42],"15361153","other\u002Fneutral\u002Fperformance",[266,42,42,220,267,42],"15359557","dillon",[269,42,42,220,270,42],"15360046","LoSboccacc",[272,42,31,273,274,42],"15360105","project\u002Fneutral\u002Fidea","solomatov",[276,42,42,212,277,42],"15360121","dragonwriter",[279,42,42,209,280,42],"15360185","merb",[282,42,42,209,283,42],"15361501","unclebucknasty",[285,42,42,209,177,42],"15362257",[287,42,42,209,283,42],"15362750",[289,42,42,220,290,42],"15365295","skavish",[292,37,31,273,293,42],"15359020","jimbokun",[295,37,42,209,296,42],"15359460","olegkikin",[298,37,42,220,299,42],"15359540","favorited",[301,40,31,302,303,42],"15359065","project\u002Fmixed\u002Fidea","mattnewton",[305,40,42,306,131,42],"15360107","other\u002Fpositive\u002Fidea",[107,31,37,237,108,42],[309,31,42,310,11,37],"15360240","maker\u002Fneutral\u002Fperformance",[312,313,42,220,314,42],"15359400",4,"slig",[316,313,42,220,317,42],"15359811","JBiserkov",[319,313,42,220,320,42],"15359904","quuquuquu",[115,45,37,322,116,42],"project\u002Fcritical\u002Fdesign",[122,32,31,324,123,42],"project\u002Fmixed\u002Fdocs",[188,32,42,209,189,42],[53,32,42,327,11,37],"maker\u002Fpositive\u002Fidea",[329,32,42,220,330,42],"15359580","switchbak",[332,333,42,209,334,42],"15359094",7,"malkia",[336,333,42,209,330,42],"15359516",[338,333,42,220,303,42],"15360286",[340,333,42,220,341,42],"15360427","SunboX",[180,343,42,344,181,42],8,"other\u002Fcritical\u002Fidea",[346,343,42,209,347,42],"15359824","rpeden",[149,349,31,350,150,42],9,"project\u002Fneutral\u002Fdocs",[352,349,31,350,353,42],"15360164","hxtk",[89,33,45,234,90,42],[111,33,37,356,112,42],"project\u002Fcritical\u002Fexecution",[358,33,37,356,359,42],"15359082","wwweston",[361,33,31,302,362,42],"15358632","imron",[99,18,45,239,100,42],[365,366,42,209,367,42],"15358232",12,"_pdp_",[156,369,37,356,157,42],13,[371,369,37,322,372,42],"15358795","yomansat",[168,374,31,375,169,42],14,"project\u002Fneutral\u002Fnone",[67,374,42,350,11,37],[378,379,42,220,227,42],"15360321",15,[130,381,37,382,131,42],16,"project\u002Fcritical\u002Fidea",[384,381,37,382,385,42],"15361974","topspin",[],[388,393,397,401,405,409],{"id":389,"name":390,"points":391,"category":392},"15393446","Thousand Ether Homepage",344,"creative",{"id":394,"name":395,"points":396,"category":392},"15383336","fast-style-transfer-deeplearnjs",266,{"id":398,"name":399,"points":400,"category":20},"15367645","ARKit Playground",151,{"id":402,"name":403,"points":404,"category":20},"15386981","InstaBuild",124,{"id":406,"name":407,"points":408,"category":20},"15356599","Sitebulb",120,{"id":410,"name":411,"points":412,"category":413},"15392777","Nematoduino",101,"hardware",false,"v2",{"id":417,"name":5,"line":6,"ai":414,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":418,"top":18,"kw":419,"maker":11,"domain":10,"tier":19,"attempts":42,"strip":420,"url":9,"mix":421,"praise":80,"objection":104,"sub":21},15357394,-0.23,[24,25,26,27],"0000301510000030003031001300000351351301",[31,32,31,33],1793990964539]