{"id":109,"date":"2021-10-04T09:06:38","date_gmt":"2021-10-04T16:06:38","guid":{"rendered":"http:\/\/www.barrybriggs.com\/blog\/?p=109"},"modified":"2022-01-03T15:25:15","modified_gmt":"2022-01-03T23:25:15","slug":"a-few-word-about-lotus","status":"publish","type":"post","link":"http:\/\/www.barrybriggs.com\/blog\/uncategorized\/a-few-word-about-lotus\/","title":{"rendered":"A Few Words about Lotus"},"content":{"rendered":"\n<p><em>[This post is a response to <\/em><a href=\"https:\/\/hardcoresoftware.learningbyshipping.com\/p\/049-go-get-this-rock\"><em>Chapter 49<\/em><\/a><em> of Steven Sinofsky&#8217;s wonderful online memoir, in which he talks about competitive pressures facing Office in the mid-90s. Unfortunately you have to pay a subscription fee in order to comment, so I&#8217;ll comment here instead.]<\/em> <\/p>\n\n\n\n<p>Steven,<\/p>\n\n\n\n<p>Excellent and thought-provoking piece \u2013 brings back a lot of memories. During the time described, I was a senior developer at Lotus and I\u2019d like to offer a couple of clarifications. <\/p>\n\n\n\n<p>Re components: you (understandably) conflate two separate Lotus\nproducts, Lotus Components and Lotus eSuite. The former were a set of ActiveX\u2019s\nwritten in C\/C++ and were targeted at app construction. My late friend and\ncolleague Alex Morrow used to talk about developers becoming segmented as \u201cbuilders\u201d\nand \u201cassemblers.\u201d \u201cBuilders\u201d created the ActiveX controls, and \u201cassemblers\u201d\nstitched them together into applications. The idea persists today in the form\nof Logic Apps and so-called citizen developers. We at Lotus had some brilliant\ndevelopers working on Components but I suspect the concept proved premature in\nthe market. <\/p>\n\n\n\n<p>Even more ahead of its time was Lotus eSuite, which was a\nset of Java applets designed to run in the browser. eSuite got its start when a\ndeveloper (actually, me) ported Lotus 1-2-3 v1 to Java as an experiment; Lotus\nand IBM loved it because it was perceived to be disruptive against Office, which\nwhile not yet dominant threatened Lotus\u2019s SmartSuite. <\/p>\n\n\n\n<p>Ironically, however, eSuite ran (by far) the best on Windows\nand IE. I recall attending the first JavaOne, where, at a breakout session, Microsoft\ndemonstrated its rearchitected JVM and Java libraries \u2013 vastly better in terms\nof performance and load time than the Sun-supplied versions. (This was partly\ndue to the fact that where Sun built the Windows libraries on MFC \u2013 pretty clunky\nat the time, Microsoft wrote to Win32, essentially, right to the metal.) And,\nof course, the IDE, Visual J++, supported the UI nuances and superior debugging\nexperiences that we\u2019d come to expect. It really was, as you quite rightly say, <em>a\ntour de force<\/em>.<\/p>\n\n\n\n<p>But it was clear to us at Lotus that Microsoft had mixed\nfeelings about it all. I and several others traveled to Redmond (aboard an IBM\nprivate jet no less!) to talk with Microsoft execs about the future of NT and\nJava (why NT? Because at the time the Lotus Notes server was one of the key \u2013\nif not the key \u2013 driver of NT sales). In a day full of briefings in Building 8 Charles\nFitzgerald, then the PM for VJ++, came last, and for that we were joined by BillG,\nwho couldn\u2019t believe we were building \u201cserious apps\u201d on Java. (He told me I was\n\u201con drugs.\u201d) <\/p>\n\n\n\n<p>I always thought Microsoft\u2019s abandonment of Java was a bit\nof a shame: I\u2019d written an email to David Vaskevitch (then the Microsoft CTO) suggesting\nthat Microsoft\u2019s superiority in development tools and frameworks could be used\nto essentially isolate competitor OS\u2019s \u2013 essentially wrapping Solaris in a\nMicrosoft layer. I never heard back.<\/p>\n\n\n\n<p>As it happened, we did ship Lotus eSuite \u2013 and it remained\nthe case that neither Macs nor Sun workstations could compete performance-wise\nwith Windows. (To this day I\u2019m stumped why neither Apple or Sun didn\u2019t try\nharder to make the technology competitive \u2013 it was existential.) &nbsp;And JVM and browser technology were at the\ntime still evolving, so what worked on one platform wasn\u2019t really guaranteed to\nwork on another (belying the \u201cwrite once run anywhere\u201d slogan).<\/p>\n\n\n\n<p>eSuite also suffered from a particularly stupid design\ndecision in the JVM (which I believe Microsoft was contractually obliged to\nimplement as well). In order to prevent code from jumping out of the sandbox\nthe JVM, on load, analyzed every single code path before launch. For an app like\na spreadsheet, which has hundreds of functions, recursive recalculation, directed\nacyclic graph, etc., the performance hit was murderous. I recall wondering why Sun\net.al. couldn\u2019t use digital signature to implement trust but they never quite\ngot the idea. <\/p>\n\n\n\n<p>Anyway, the time for running productivity apps on the\nbrowser, unquestionably a great idea, hadn\u2019t hit yet. &nbsp;(It has now.)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[This post is a response to Chapter 49 of Steven Sinofsky&#8217;s wonderful online memoir, in which he talks about competitive pressures facing Office in the mid-90s. Unfortunately you have to pay a subscription fee in order to comment, so I&#8217;ll comment here instead.] Steven, Excellent and thought-provoking piece \u2013 brings back a lot of memories. &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.barrybriggs.com\/blog\/uncategorized\/a-few-word-about-lotus\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;A Few Words about Lotus&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"episode_type":"","audio_file":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","date_recorded":"","explicit":"","block":"","filesize_raw":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-109","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.barrybriggs.com\/blog\/wp-json\/wp\/v2\/posts\/109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.barrybriggs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.barrybriggs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.barrybriggs.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.barrybriggs.com\/blog\/wp-json\/wp\/v2\/comments?post=109"}],"version-history":[{"count":2,"href":"http:\/\/www.barrybriggs.com\/blog\/wp-json\/wp\/v2\/posts\/109\/revisions"}],"predecessor-version":[{"id":131,"href":"http:\/\/www.barrybriggs.com\/blog\/wp-json\/wp\/v2\/posts\/109\/revisions\/131"}],"wp:attachment":[{"href":"http:\/\/www.barrybriggs.com\/blog\/wp-json\/wp\/v2\/media?parent=109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.barrybriggs.com\/blog\/wp-json\/wp\/v2\/categories?post=109"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.barrybriggs.com\/blog\/wp-json\/wp\/v2\/tags?post=109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}