Original Spec for Lotus Notes (1984) [pdf]
kapor.com
kapor.com
I haven't dealt with any Notes systems in years, but my memories of the one time I did are largely good. The client had its quirks and Lotus could have done themselves a big service if they had adopted more conventional behavior and terminology, but the end user experience -- judging by easy adoption by new employees -- wasn't as bad as is frequently alleged.
I was a big fan of the Domino back end too, in spite of the ridicule it got. When Couch and Mongo came out, it was kinda refreshing to me to see "document" oriented dbs come back.
The Interface Hall of Shame website (a now defunct, but once popular website with examples of badly designed UIs) did a critique of Lotus Notes back in 1999:
http://hallofshame.gp.co.at/index.php?file=lotus.htm&mode=or...
I was a MacOS (8 or 9) user when I got that job working with Notes. The thing that I found that helped me learn Notes very quickly was my background using Filemaker Pro. This was before Filemaker Pro had "gone relational".
Well then its become progressively worse since. Been using it for 3 years now and each version has gotten progressively worse (unstable, slow, bloated).
Random people's Notes crashes multiple times a day, others have mysteriously slow ones, sync issues etc.
Its only redeeming feature is SameTime...
Not surprised to hear the Eclipse based client isn't loved; I imagine you'll see a 5x memory usage increase right off the bat, and every operation will take 1k more CPU cycles than it should.
Anyhow, mostly I limit my praise to the trouble free and robust replication and distribution of content through Domino, the server side of the platform, a name this thread reminded me of after 12 years. A client could dial in to any Domino server in the company, efficiently and quickly sync all of their databases with the global network and immediately and get to work using their fast local storage. No drama, no glitches, no calls to the help desk. Good stuff. It obviated the need for shared file systems anywhere, which would have been next to impossible anyhow given the degree of distribution and poor connectivity available. It mostly obviated the need of backing up clients and several of the further flung servers; Domino naturally does multi-way replication, so the backups at the best resourced sites are sufficient.
Which started life as a re-skinned AOL Instant Messenger.
On the other hand, it's the world's worst email & calendar client and much of its bad reputation stems from users having to put up with that when there's really no need for it ever to have been installed. (EDIT: given that, it's interesting to see the prominence that email receives in the design doc. I'd always thought it was a post-Lotus bolt on, but it was a day zero consideration.)
But far, far worse than that is the stuff you don't realize when you embark on the Notes path. It's a very powerful tool, but a dangerous one too: I saw a telecoms company in the late 90s/early 2000s blow up partly because it relied too heavily on a custom Notes solution that became prohibitively expensive to change as the business evolved. Management got hooked on formalizing all their business processes inside Notes, seduced by the promise of total transparency and operational control. The system got big, and Notes scales badly. Reporting runs that took a few minutes with a few hundred attributed documents in 1998 took over four hours by 2000; I helped put in a SQL Server instance to create a relationally structured copy of the unstructured attributed documents to reduce that time, but of course that was more money. The poor chap that owned the company ended up having a stroke and the company was wound down. That's an anecdote, but on the other two occasions I've seen Notes used for its real value (as a document DB with associated processes) it's ended up in a similar, sprawling and unmaintainable end state.
I guess one way to think of it is as a kind of Excel for processes and documents. End users can do things with it very easily - you can set stuff up that exactly reflects the flow of information and control processes unique to a business, and that's a great tool for helping a business mature and control its operational risks - but its limitations and the systemic risk it introduces are not well understood and only become apparent when you've gone too far with it.
Even gmail, which is quite outdated today , beat this thing...
"Notes should stand in relation to word- and idea-oriented tasks as 1-2-3 stands in relation to number-oriented tasks."
Receiving documents-nee-apps in your email does make sense for one-off apps (Google Forms-like stuff: one could author a poll on where to get lunch, and then send it to their coworkers, who could then respond without ever having installed said polling app before.)
But I think they mis-considered the "hierarchy" of users: for every 1 person who can write such a poll in Notes from scratch, there's 100 who'd be willing to use a pre-programmed poll template document, but who would never even consider authoring such a thing themselves.
Instead of Notes having an email client "home page", they could have had an "app store": a directory of all the templates published to your Domino server, which you might configure and then send out. Like the opening screen of a word processor or spreadsheet program.
And, with the discovery mechanism out of the way, Notes wouldn't need to "absorb email" at all. They could have gotten away with just sending the resulting .nsf files over SMTP, reading them back over POP3/IMAP, and then distributing a Notes Outlook plugin that would render MIME-multipart messages that contain an application/x-com.lotus.nsf part using Notes.
That sounds like bad coding. The downfall of many Notes systems is that it made it so easy to write simple apps, you ended up with a lot of poorly written apps because you did not need to be a proficient coder to deliver a working product. I, too, have seen downright horrific apps. I've seen teams of consultants hired just to maintain one form. And I've come in, re-written those apps (still in Notes), and turned them into self-maintaining, scalable apps that are 100% maintained by the business owners.
At the end of the day, it is a technology stack. People can use it well, or they can use it badly.
It's a kind of tech debt for which a re-write is the appropriate solution, but that was the prohibitively expensive part.
To me as well. Reading the PDF, it reminds me of WinFS, which I worked on. (Though I don't remember WinFS's collaboration story.)
Dreaming in Code [1] is a great book about Kapor's attempt to build such an open source platform, post-Notes. I strongly recommend it to anyone interested in the problem space.
[1] https://www.amazon.com/Dreaming-Code-Programmers-Transcenden...
A more idealistic (and younger) version of me would love to help build an open platform...
This is still my dream. :)
I was enamored with BeFS. When I heard about WinFS I was excited to think it might bring some of the coolness that BeFS provided to a mass audience. It's a shame what happened to both BeFS and WinFS.
Thanks for the link to the book. I had no idea that it existed. For awhile I kept checking-in on Chandler, hoping it was going to actually happen.
https://github.com/owenmorris/chandler https://github.com/owenmorris/chandler2
In good part, this consisted of problems and cruftiness with the UI, and Management's use of it for a blizzard of very verbose, fragmented, and therefore difficult and time-consuming to navigate documentation. E.g. what should have been one quarter or half page document -- at most -- ended up spread, sentence by sentence, checkbox by checkbox, around 30 - 50 Notes documents within an often overwhelming hierarchy of template documents only sparsely completed to alleviate the most annoying and insistent badgering of project managers and the like -- the only ones to really seem to have any oversight over the whole documentation package and to feel any ownership of same. (The rest of us? Hate, hate, hate... Not for the idea of documentation, but for the reality that could make it more difficult than the project itself.)
Eventually, I came across a description of Notes that commiserated with this state of things but also said, 'Hey, wait. You should understand that the technical design and underpinnings of Notes itself -- its data management -- was actually quite solid and innovative.
And... I guess I could see that, in terms of how it generally held up to the abuse of an entire, large corporation's daily use and abuse of it. And how it could work well, when somebody clue-full laid their hands on it.
I'm not in a position to speak to this, further. Except to say that there are a few documents out there -- that I skimmed, a long time ago -- that apparently paint a pretty good picture of this upside of Notes. Those in the know describe them as interesting and edifying.
P.S. If and as I recall, Kapor was also responsible for Lotus 1,2,3 , which was initially far ahead of Excel and had a perspective on data representation that took a long time to propagate to its competitors.
Maybe it doesn't scale well for late 90's internet-enabled desktops, but Ray Ozzie developed software with a solid 15-year shelf life.
I'm happy to have had the few years experience as a lotus notes developer, and also happy to have it in my past.
It's crazy for me to think back to those times. I remember when someone came around the office saying "Hey check out this new cool thing called Futuresplash" and that product would end up becoming known as Macromedia Flash.
[1] https://books.google.ca/books?id=jlIEAAAAMBAJ&pg=PA52&lpg=PA...
Sorry to hear that many of you had to deal with our 1985 design choices all through the subsequent years. But I think many of the commenters here are maybe forgetting or not aware of what personal computing and networking were like 32 years ago: Windows 1.0 (beta), EGA graphics (640×350 w/16 colors), 640KB main memory (kilobytes not megabytes), Ethernet/TokenRing LANs, dial-up 9600 baud modems (kilobits/sec not megabits/sec or gigabits/sec). https://en.wikipedia.org/wiki/Windows_1.0
The Internet was just being formed out of the Arpanet and other research networks. Mail services and protocols like SMTP and POP3 didn't exist.
We worked with Ron Rivest to define BSAFE and build the first real commmercial product with public key crypto.
As far as the Notes database (again circa 1984): it seemed obvious to us, especially Ray, that relational was not the best model, but we took endless grief for not using a relational database.
In hindsight, we obviously could have made quite a few better decisions and evolved the design and code more quickly, but as one commenter pointed out, we were trying to maintain app and data compatibility across multiple client and server software and hardware environments that were continually evolving around us.
Suffice to say that all of the user settings were preserved and the data was readily usable on each platform. This happened over the span of 10 years.
Given the observation, I wonder how many other applications with similar complexity would last even one migration, let alone rolling migration across 4 completely different platforms.
I managed to migrate a few TB of email from a dying server and it handled mid migration crashes surprisingly well!
I think the domino stack was getting better while the notes client was losing the plot. Most people where I used to work were happiest with mobile clients connected via exchange active sync to the domino servers.
Strangely, at the last (and only, thankfully) place where I had to use Notes, it was not used for that purpose. Instead, it was used as an e-mail system and an inventory management tool.
I found my love of using PIM in Notes.
The UI was not for the Non-Tech crowd and even then drove everyone a little batty. F5 in Notes locked your account as opposed to Refresh and the like. Different parts of the program would have very different UIs. I didn't mind it.
They say more people use it now then ever but ....
In addition to all the usual Notes gripes, the Hebrew translation was very buggy.
As collaborative software, quick way to create databases, documents, forms, wikis etc - it ain't half-bad, especially considering its legacy and customers (large corporations unlikely to purchase any new, "cool" startup-like collaborative spaces).
As an email system (which is what I have to use it as), it leaves much to be desired, including performance.
Scares me everyday I log in.
Believe it or not, it still is a highly functional NoSQL database, with strong security, and can be put behind other web servers... so while it is mostly a dead platform, some folks do still use it. (If you find one of the few people who know how.) But so much crap has been built with it, it has a terrible reputation. Even most of the people still using it are doing so poorly. Most of the people who do know how to use it well have moved on to new technologies, and the folks I know who still use it don't intend to stay with it much longer.
Really it was ahead of its time, but got side-tracked and messed up instead of growing into its full potential.
A local newspaper used Lotus Notes to serve up stories on their website, before Python Django replaced it.
Symphony was initially proprietary, then freeware and finally, in 2012, turned over to the ASF as a donation. It basically consisted of a typical spreadsheet, word processor, presentation suite all using ODF as a document format.
So, not what I thought I would find but still slightly related to your question...
I had the "pleasure" of using a Notes/Domino solution back in the mid 90's but it was only for a couple of months; when I joined they were most of the way through a migration to MS Exchange/Office. Can't say I loved/hated it with the same zeal as other posters, just didn't have enough time to form an opinion at the time.
Some loved it, some hated it but it was certainly unique.
I'm happy not to be using it any more but I thank Lotus Notes for paying my rent and food bills for a long time.
Notes databases were easily replicated for offline use and encrpyted for data security (when I was using it was back in the mid 2000's before Full disk encryption became common).
In the days of poor Internet connectivity this made it immensely valuable for travelling consultants who could easily take large quantities of information on the move with them and synch it when in the office.
These days for end users I guess OneNote comes closest to that, but even there I don't think it has all the features that Notes did...
Anyone who reduced it to a email client didn't understand where its true powered lied which was workflow and document / record management. If you knew how to combine the ACL with forms, views, and agents you could build some pretty amazing apps really quickly. Unfortunately it was always known as a email client which was actually just a Lotus Notes App.
Naturally at this point we use a different email client, but I don't think there's any incentive to shift away from Notes as it just works.
I bumped into it again in the mid-90s when Notes 3 was released and the lightbulb went off. I became a Notes developer overnight.
Things Notes solved years before its time include:
1. distributed databases everywhere even over a crappy pipe
2. distributed software releases through replication (this was genius - everyone forgets in the 90s most end-user software was still distributed on floppies, but with Notes you just push the design out in a replica and all of your end-users get their client apps magically updated)
3. A fully integrated visual app dev + server admin platform that made design of apps a snap. It became possible to sit down with a team and instead of writing down requirements, actually building a working model of the app in the meeting as they describe their needs. This was 1994, and it's still hard to do in most development environments compared to the ease of Notes.
4. Public-Private key identity management and a terrific security model all the way down. It made it very easy to enforce a very granular security policy across all the apps down to individual rows of data with the same global security mechanism. As a dev it made it trivial to build a highly secure app without having to think much at all about security.
5. OS independence!
I worked in one shop in a ~$1B/rev company in 1997 - this team had 3 admins and 4 devs handling email and all the internal corporate apps, pretty much all built in Notes except the financial system which was its own team. This company had fully embraced Notes as an internal app dev platform and had built a marvelously powerful set of workflow apps for all of their core business processes - some 30+ apps total - all of which integrated with each other.
Watching a team of 7 people manage and develop this awesome backoffice system was a big eye opener for me. This company leveraged their IT staff 10:1 or better compared to similar companies using typical tools. A well-run Notes shop in the Glory Years of Notes (1995-2005) was truly a sight to behold.
My longest-lived solutions are Notes apps I built ~16 years ago still being used today.
Fun fact: CouchDB was built by Damien Katz based on a lot of his experience working on Notes / Domino while at Lotus, and Damien Katz is a badass it turns out.
Notes left a bad taste in my mouth in 96-97, as I was working at a company doing custom Notes app (not originally, but we morphed in to Notes after I started). I was tasked with doing Notes app customization and creation on and for laptops with Win95 and a whopping 8m of RAM. Doing anything in Notes was painful. We had one project where we got... 32m I think, and that was certainly bearable, but I was canned shortly after that...
If Notes could have done more to solve that problem, I think people would have flocked to it as a distributed application platform.
See, Lotus Notes is essentially (the modern conception of a) web browser: an MDI navigation chrome, plus rendering engine, plus VM runtime. Each time you open a Notes "document" (like an HTML file), the code embedded in it is run through the VM to create a DOM, which is rendered by the rendering engine and displayed in the window/tab representing the document. One of the common DOM element types is a text link, and Notes documents frequently link to other .nsf files, which then are downloaded and which then open in Notes in new windows/tabs.
The one crucial thing that Notes has over web-browsers, though, that made all the difference in how the two ended up evolving, is that in Notes, each Notes document has a remote database associated with it, that the document can read from and write to.
It's a bit like a site or mobile app that uses Parse or Firebase: there's no need to write backend logic; you just write your client, and then point it at a generic app backing-store server. In this case, the backing-store server is called Lotus Domino.
Like Parse or Firebase, Domino handles authenticating clients. For each Domino server a Notes client is signed into, they have an "identity file" (PGP keypair) the server recognizes as "them", and which their Notes client uses to sign any documents it authors (where an update sent by a document to a Domino server is sent as a small signed document.)
This is in a lot of ways similar to how browsers use TLS client certificates, but lighter-weight, in a similar way to how e.g. an Apt repository's pre-signed packages are lighter-weight than HTTPS. In TLS, a piece of data will lose its origin once it passes out the other end of a TLS tunnel, and so the server must make a metadata record of who it was talking to, and vouch for the data itself (with another TLS tunnel) when someone else requests it. With pre-signed documents, the server can be a dumb store-and-forward server, and the documents will always just "stay" signed by whoever first created them, without needing un-wrapping and re-wrapping on every transmission.
And that means that, unlike Parse or Firebase where linearization is done on the server, a Notes document can just download all the store-and-fowarded update message-documents representing its database, and then linearize them itself, using the Notes client's own configured trust settings to decide what operations in the event stream were authorized changes, and then the document's own merge policies to decide how to linearize the data (i.e. what fields are CRDTs, what fields are last-write-wins, etc.)
Then, finally, you can understand what is going on when Lotus Notes opens up and shows you what looks to be an email client: it's a Notes document (like a web-app) syncing down a Domino database full of signed update-messages from other Notes clients (one of which can be an SMTP gateway server, allowing messages to get pushed in from outside the Notes system.) The email client document chooses to represent its (considered-authorized) update-messages as individual email messages in a list—but some of them are also other things, like e.g. edits to previously-sent messages.
Each signed update-message might just contain a plaintext message, or it might effectively be a publish-event pointing the Notes client at a Notes document. The email-client document is responsible for deciding how to render the plaintext messages when you focus those; but if you focus a message representing a reference to a Notes document, it just downloads/syncs that Notes document into your local database and then the preview pane displays it in the Notes equivalent of an <iframe>, allowing it to run all its own code.
So, you could picture the default Lotus Notes email client as being less like Gmail, and more like Slack: it syncs a history of update-messages, some of which are modification-events for real "messages". Like Slack, you can upload files "to the service" and then just send references to them to other users in your team. And some of these files could be small, self-contained HTML5 apps, talking to a service like Firebase.
The key differences, then, are that 1. you actually interact with such documents within the client (so, picture if you could post HTML documents into Slack that would be displayed as an <iframe>); and 2. the messaging service itself is hosting the Firebase-alike functionality, such that every "app" built with the Firebase-alike functionality gets an implicit User model mapped to the user of the messaging app.
When described like that, it actually sounds a bit less braindead than Google Wave, doesn't it?
There's some more good background here: http://www.ibm.com/developerworks/lotus/library/ls-NDHistory...
Page 123 of the pdf (page 3-3/3-4 ) is a massive state machine showing all of the commands and modes.
It would be better if you wrote substantively about some of your experiences with Lotus Notes.
Also, shallow is a direction, but only in a relative sense ️
What we want instead is comments that share experience, so others can benefit from it. It's basically a variant of 'show, don't tell'.