{"id":1085,"date":"2020-12-29T15:48:00","date_gmt":"2020-12-29T23:48:00","guid":{"rendered":"https:\/\/www.skierpage.com\/blog\/?p=1085"},"modified":"2021-03-20T16:42:10","modified_gmt":"2021-03-20T23:42:10","slug":"software-news-as-james-goslings-best-weird-idea","status":"publish","type":"post","link":"https:\/\/www.skierpage.com\/blog\/2020\/12\/software-news-as-james-goslings-best-weird-idea\/","title":{"rendered":"software: NeWS as James Gosling&#8217;s best weird idea"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Lex Fridman talked to James Gosling, famous for the Emacs editor and the Java language.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"James Gosling: Java, JVM, Emacs, and the Early Days of Computing | Lex Fridman Podcast #126\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/IT__Nrr3PNI?start=6470&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"> At 1:47:40 he says &#8220;I&#8217;ve got this weird history of doing weird stuff.&#8221; I was fortunate to be writing documentation at Sun&nbsp;Microsystems in the Programming Environments team when he came up with one of the best &#8220;weird ideas&#8221;: <a href=\"https:\/\/en.wikipedia.org\/wiki\/NeWS\">NeWS<\/a>, the Network\/extensible Window System. It used the PostScript language from printers enhanced with object-oriented programming, not just to draw things on your screen, but to exchange and invoke code between your program and the window system (which might be running on another computer across the network).&nbsp; So instead of calling a fixed triangle drawing function to &#8220;draw two long skinny triangles with these points&#8221;, a clock program could send the definition of a <code>drawClockHands<\/code> operator to the window system, and then just send <code>10 42 drawClockHands<\/code> to make the window system show the time at 10:42. And you could redefine <code>drawClockHands<\/code> to draw Mickey Mouse hands, or LED segments, or whatever.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NeWS was an incredible conglomeration of networking, rendering, and language ideas; phenomenal stuff in a world that was only just adopting network programming and OOP, and where program windows with rounded corners only existed on graphics supercomputers. Sun offered it to the other workstations companies, but they didn&#8217;t want Sun to control the window system as well as the file system with its <a href=\"https:\/\/en.wikipedia.org\/wiki\/Network_File_System\">NFS<\/a> [*], so they cast around for an alternative and settled on the far more basic <a href=\"https:\/\/en.wikipedia.org\/wiki\/X_Window_System\">X11 window system<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[*] Sun&#8217;s Network File System became a standard on the level of <a href=\"https:\/\/en.wikipedia.org\/wiki\/File_Transfer_Protocol\">FTP<\/a> between networked computers, but it didn&#8217;t successfully jump onto PCs when they got networked. It was overtaken by Netware which was then destroyed by Microsoft&#8217;s Windows for Workgroups.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lex Fridman talked to James Gosling, famous for the Emacs editor and the Java language. At 1:47:40 he says &#8220;I&#8217;ve got this weird history of doing weird stuff.&#8221; I was fortunate to be writing documentation at Sun&nbsp;Microsystems in the Programming &hellip; <a href=\"https:\/\/www.skierpage.com\/blog\/2020\/12\/software-news-as-james-goslings-best-weird-idea\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-1085","post","type-post","status-publish","format-standard","hentry","category-software"],"_links":{"self":[{"href":"https:\/\/www.skierpage.com\/blog\/wp-json\/wp\/v2\/posts\/1085","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skierpage.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skierpage.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skierpage.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skierpage.com\/blog\/wp-json\/wp\/v2\/comments?post=1085"}],"version-history":[{"count":6,"href":"https:\/\/www.skierpage.com\/blog\/wp-json\/wp\/v2\/posts\/1085\/revisions"}],"predecessor-version":[{"id":1153,"href":"https:\/\/www.skierpage.com\/blog\/wp-json\/wp\/v2\/posts\/1085\/revisions\/1153"}],"wp:attachment":[{"href":"https:\/\/www.skierpage.com\/blog\/wp-json\/wp\/v2\/media?parent=1085"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skierpage.com\/blog\/wp-json\/wp\/v2\/categories?post=1085"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skierpage.com\/blog\/wp-json\/wp\/v2\/tags?post=1085"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}