A Comfortable Couch

Thursday, January 06, 2005

Formula Engine Response

Thanks to everyone who has read my story and especially those that have responded. I'm honestly a little surprised about how much attention is receiving, had I known I probably would have clarified things a bit more.

Thing one:
I said that most of the good work gets done by a "handful of talented people, the others often produced barely functional crap." Well, its true, but you have to put things in perspective. The level of talent and production of some of the top level guys at Iris was amazing. These guys are the best of the best, I'm still in awe of some of the guys I worked with, and a lot of them still work on product. Most good IT shops have one or two guys that seem to be a couple notches above everyone else, they work 5 times faster than everyone else and with fewer bugs, they know what they're doing and they can get things done. At Iris, those guys where middle of the pack. The really elite guys at Iris could produce at levels I didn't think was possible, and their code was tight.

And barely functional crap? Ok, maybe that's a bit harsh, but my standards of what qualifies as really reliable code are different than most peoples. When writing a commercial grade email and application server, there are no edge conditions you can disregard, it must work, all the time, every time. It's really hard to write code for 8 different platforms that will get translated into dozens of languages and must run and be reliable in the face of downed networks, power outages, hardware failures, low memory, etc. Domino has its warts, but it is very solid. Exchange can't hold a candle to it in terms of reliability or disaster recovery.

Thing Two:
I point out that the old code base was hard to understand and maintain. Part of that is because that stuff is tricky, I've done some work on the internals of the Netscape JavaScript engine and it was no walk in the park either. The internals of the new engine are even more complicated than the old. The improvements in maintainability aren't in the core of the engine, it is the individual @functions which no longer use pointer arithmetic.

But in the old formula engine's case, as Ray Ozzie politely points out, had a very different set of constraints that we don't have on modern hardware. Addressable memory was the limiting factor, and hence paramount to most other design concerns. Many computation problems can be thought of as a time vs. space issue, and the new engine by design uses a lot more memory. My new engine would have never, ever worked back when this stuff was first written, close to 20 years ago now.

And yes Ray, I did find Compile to be harder to understand. Above the main decompilation loop, there is a comment that says "Good luck figuring this out". I never did figure it out.

Thing Three:
And as far as my rips at IBM, they are justified. It's not like it horrible to work at IBM, but compared to the old Iris it's a joke. Upper management at IBM should read PeopleWare, they might understand a great deal more the true effects of their policies and why Iris flourished as it did. And no, it wasn't the free snacks and drinks.

Thing Four:
Notes sucks. Yes, we all know how bad it sucks. Horrible this and horrible that. Well I still love it. Now go away.

Thing Five:
Producing UIs is hard. I don't know where Notes UI problems come from. I know that when I was doing UI work it was a struggle. One thing I noticed is the more visible something is in the UI (like mail or the Welcome page), the more people weigh-in with their opinions. Some of them have lots of sway and very little UI knowledge, which can be deadly. Dealing with many different people all wanting their pet feature or color or icon or whatever requires a great deal of patience and fortitude, the pressures are immense. I had the fortitude but not the patience. I'm not sure what it is about the culture that made this hard, maybe there was nothing wrong and even the people at Apple and Intuit have to deal with this stuff constantly. Maybe we just had too many of the wrong people, like me, producing the UIs. The Notes UI, particularly mail, have made dramatic improvements recently, I wish I knew more about why that is.

Thing Six:
Thanks for all the positive comments and feedback about my work. I'm lucky to have gotten the opportunities to hack at the core of such an innovative product. Even if no one knew who I was I still had fun, but having so many people express their thanks totally rocks.

15 Comments:

Anonymous said...

Re: The struggles many of us have with UI... I think part of it is you just have to have the right attitude coupled with the feeling that it is "your thing". For instance, you know that writing tight enterprise-level product code is "your thing" (or was, given your desire to change professions ;) ). My "thing" is to try to figure out innovative ways to solve problems, and then teach those techniques to others. Some people's "thing" is UI - I can't for the life of me understand it (much like I can't understand why some people like liver & onions), but that's just because I'm wired differently - and you are too.

I also think attitude does play a big part of it. For instance, as much of a PITA as he was, I always laughed at Bill Andreas' attitude towards UI - "byte me". I have always thought Bill was innovative and a bit out there, and I know he could be difficult to deal with, but I liked the work he did. Granted, my opinion of him is strictly as an outsider, but I think he wore his approach pretty openly.

I also would like to know what the "breakthrough" was between the interface prior to R6 and the one we have in the templates in R6 -> forward. There was a definite shift in functionality and form, and I don't know why. It also seemed some underlying technical hurdles were overcame to make much of it possible (e.g. advances in calendar views, etc.).

But love it or hate it, you still can't beat the product that Notes/Domino has become. I think you, your predecessors, and your peers from Iris have a great deal to be proud of, and I hope some of the others will share their experiences as well. This stuff is fascinating to many of us, especially those of us who have been around since the "early days".

--Rock ( http://www.LotusGeek.com )

4:05 PMlink  
Ed Brill said...

you seem to have lost all your comments on the original post, Damien...

6:45 PMlink  
Anonymous said...

Thanks Ed, fixed now.

7:31 PMlink  
Anonymous said...

> Notes sucks. Yes, we all know how bad it sucks. Horrible this and horrible that. Well I still love it. Now go away.

That's nice, but you have a choice. I am forced to use Lotus Notes every day by corporate mandate.

Here's another example: if I accidentally cut and paste anything from Internet Explorer directly into a Notes 6.x email, it freezes up for (and I am not exaggerating here) nearly 60 seconds. This is on an Athlon 3200+ system. Eventually it snaps out of its stupor and pastes in the paragraph of text. As a workaround I have to copy from IE into Notepad, then paste that into Notes, and there's no delay.

I know you are not personally responsible for this, but Notes is software that only a masochist could love. It makes Hotmail look like the best email client ever written. I wouldn't be going out of my way to promote my association with a product like that.

So, uh .. what was I saying? Oh yeah, NOTES ROCKS!

10:24 PMlink  
Ed Brill said...

Dear last anonymous person,

What we have here is a configuration problem. Notes gets blamed for everything, because most people "live" in e-mail. But your experience is definitely not how Notes should work, it certainly doesn't work that way for me.

If you really are stuck in this weird setup (have you called your company's helpdesk? have they called IBM?), you might at least try a "paste special" and then choose text, instead of going to Notepad.

8:30 AMlink  
Anonymous said...

Dear misconfigured anonymous person,

Perhaps you should call an IBM Business Partner with a long history of support notes. I'm willing to bet any one of us could resolve you problem -- probably in less time than you spend bitching about the product.

When you paste something from IE, its probably attemptint to past it as an OLE object since IE is an OLE container. Given that, what's crashing is -- OLE. Doh!

Switch away from Microsoft products, and start using Firefox, and these problems will go away.

On the other hand, you could go to exchange. Then, if a single user has a single problem in a singel mailbox, the entire environment can be offline for DAYS while some poor sucker has to rebuild the single objet store.

Morons who sit in 8x8 cubes and have no real insight into how an enterprise application has to be supported, should not post about which are better than others.

7:12 PMlink  
Anonymous said...

> Perhaps you should call an IBM Business Partner with a long history of support notes.

It's true, since using Notes, I've called the helpdesk more than for any other application on my PC.

I guess it is unreasonable to expect copy and paste to "just work" between IE and Notes, because it works in every other application I use. What's the variable here?

Today I'm trying to figure out how to grant public company-wide access to a group mailbox. It's about a 10-step process involving many cryptic "File, Database, Open" dialogs and multiple calls to the helpdesk.

Gotta love ROI.. LONG LIVE NOTES!

Whatever crack you guys are smoking, I want some.

2:40 PMlink  
Anonymous said...

"Morons who sit in 8x8 cubes and have no real insight into how an enterprise application has to be supported, should not post about which are better than others."

The morons in the 8x8 cubes are the ones who are forced to use the software. They have other things to worry about (their job function, for one) than finding the optimal configuration settings. They want their application to work out of the box. If the software doesn't work right for them immediately, the software has failed.

The software that works correctly (or "as expected") without tweaking is the better software.

I'm not saying Notes is good or bad. This is just a general comment on software that programmers tend to forget.

No Blogger account, former programmer, posting anonymously.

4:18 PMlink  
Anonymous said...

>>
The morons in the 8x8 cubes are the ones who are forced to use the software. They have other things to worry about (their job function, for one) than finding the optimal configuration settings. They want their application to work out of the box. If the software doesn't work right for them immediately, the software has failed.
<<
It is more complicated than blaming the software itself. The attitudes of users and support staff are often skewed. They are subject to marketing and even to habit. People say a UI is intuitive, when most of the time it is just that it is what they are used to, or similar to what they are used to. And to show you how marketing can skew the perception of even IT professionals: I once heard an experienced IT trainer blaming OS/2 when he couldn't get the outliner indendation to work in Word 6 running under Win-OS/2. He wasn't even in a pressuresed environment like a classroom, but just sat at his desk. Not being a user of Word nor a trainer, but knowing that it was not OS/2 that could be blamed here, it only took me a minute to look in the right place in Word and train the trainer to use the product he supposedly knew. Equally Microsoft's mindshare is so great (and for most of its offerings, for most of the users, there is no alternative), that however bad it is people put up with it, or blame computers in general, or blame their particular IT department, or blame the other programs they are trying to use. I've seen some home computers which are unusable because they have been taken over by pornographers and spam merchants, but never here Microsoft be blamed for building such an easily compromised platform. Most people think Bill Gates is a technological genius, and Microsoft couldn't be so rich if their products weren't the best.

7:50 PMlink  
Charles Miller said...

"One thing I noticed is the more visible something is in the UI (like mail or the Welcome page), the more people weigh-in with their opinions. Some of them have lots of sway and very little UI knowledge, which can be deadly."

This phenomenon is often known as "bikeshedding" (the term originated in the BSD community). Present your plans for a nuclear reactor (or in your case, a rewritten Formula Engine), and you'll be so out of peoples comfort zones that nobody will have anything to say. Ask what colour a bikeshed should be painted, and EVERYONE has an opinion.

1:15 AMlink  
Anonymous said...

"Morons who sit in 8x8 cubes and have no real insight into how an enterprise application has to be supported, should not post about which are better than others."

That's a typical pompous comment from the Notes community. If you have a problem with our software, it's because you are a moron. Not a genius like all of us who work with Notes.

4:00 PMlink  
Anonymous said...

'Today I'm trying to figure out how to grant public company-wide access to a group mailbox. It's about a 10-step process involving many cryptic "File, Database, Open" dialogs and multiple calls to the helpdesk."'

That's cuz you lack training and/or knowledge.

It's a 2 stage process, takes about 30seconds.

Ben Rose
http://blog.jaffacake.net

4:53 AMlink  
Steve said...

this was great fun to read.

I feel bad for the non-notes advocate thats getting trashed left and right by all these lotus geeks on this site.

by his remarks its obvious he's a usual caller for code-10's and the reason he prefers outlook or even hotmail is cause he obviously enjoys viruses, worms, and trjoan horses on a weekly basis.

its ok, i dont expect people to love or even like notes. i hated it when i was first introduced to it back in 1998. i thought it was a piece of junk, and when u only take the time to look at the books cover, comments like that are no surprise.

to his defences about the copy/paste, yes 'notes' is notoriusly slow at psating in 'rtf' crap, but you know what, so are many applications, try pasting the stuff in MS Word and ull still get a delay, maybe not as long as Notes but there will be some delay. its not the programs fault. but as user u dont care about the underlying issues that go along with functionality, u just want it to work well and fast, regardless.

OLE isnt one of Notes strongest points, sure MS programs in general are great at OLE, but what about everything else? Liek damien said, exchange /outlook does not even hold a candle to domino/notes.

mr.user, this is not just mu opinion, but a community of educated programmers that know the insides and outs of both notes and outlook and there is a 100% (ok maybe its more like 99.99%) that outlook is no where near the level of notes. seriously now, its like comparing a toyota echo to a rolls royce.

1:06 AMlink  
Jesper Kiaer said...

Great story!

And to all those having problems pasting into Notes from Internet Explorer...it is always because you are accessing the internet thru a proxy.
Just open up your location document and on the Basics tab put in the IP for the proxy server ...Bingo! it works now!
I have seen tears (almost) of relief in Notes users eyes when I share this information..

Best Regards
Jesper Kiaer

http://www.jezzper.com

6:16 PMlink  
Rafael Vogel said...

Damien,

I still remember talking to you at a "birds-of-a-feather" session, with Wai Ki Yip at your side... You're telling me that Notes were written in C++, with more than 100,000 lines of code...

It's great to know in deep how Notes was made (at least the formula engine). Now it's easier to understand why it took so many time to have looping!

Reading your article, brought me memories when I first met Notes...

It was in version 3, and I had no idea what was a form nor a view. I started writing reports on "Lotus VIP", with LotusScript 1.0 (I think)... The server was an OS/2! So it was a complete strange environment, since I use to code in assembler and Clipper, using the "amazing" XTree Gold!

I hated the R3 interface, Do you remember, 16 colors, and the navigation pages (actually forms) should be populated with buttons or hotspots?

But, amazingly, it was fast and easy to move (everything was in ONE .NSF file!)

Then, the R4, with... LotusScript and... Navigators! I remember a fair here in Brazil that we did a Notes app with the new enhancements... It was amazing, shining among a lot of R3 apps!

Then, R5... Thanks god I was at Lotusphere to see it with you guys... That time i bothered Wai Ki with some LotusScript... (let's say..) issues! ;-)

I'm far away from Iris, actually I'm from Rio de Janeiro - Brazil, but believe me, you/Iris and Notes live in my heart.

Unfortunatelly, as my own company grows, I getting far away from coding, but ata least, I have some weekends to have fun coding in... Notes!

7:17 PMlink  

Post a Comment

<< Home