The OneNote development philosophy

G

Grant Robertson

Now I'm not a professional developer myself, and I do know that things
are never as easy as the advertising hype makes it out to be, so correct
me if I'm wrong but...

Isn't it Microsoft that is constantly espousing the marvels of reusable
code and object oriented technology? Aren't the Microsoft development
tools supposed to be this Nirvana of code management? If Microsoft
actually practiced what it preached when it came to development wouldn't
it be easy to just drop an OLE 'object' into your code and have it just
work? Can't you at least just drop a find-and-replace 'object' into the
Edit menu and have it just work?

All of the explanations I'm reading about how it was "too much work" to
include some features that we had all been lead to believe were 'standard
Office features always and forever' really make it seem as if none of the
standards Microsoft talks about all the time were adhered to at all. Am I
wrong or does it sometimes feel as if some of these Office products were
put together in a vacuum? Even the options dialog is completely different
from the standard Office tabbed dialog. I know OneNote is kind of a new
animal but did you really have to start from scratch with every single
line of code?

As an aside, I am also starting to notice lots of inconsistencies within
the rest of the Office family as well. Little things that used to work
fine now no longer work. (And I'm talking about a RTM only machine with
no beta's. I run my beta's on my Tablet PC, not my desktop.) Certain
settings that should be together are spread out all over the place as if
someone just plunked them down in wherever code they happened to be
editing at the time. To get to commonly used or changed features you have
to go through this button and that tab then another button and another
tab to finally get to a scrollable list where you can select the feature
you need to change. Not all menu item type things are available as
buttons to place on the toolbar and there are other things that can only
be done via a button. It's just totally inconsistent. I'm telling you, it
is starting to look as if you really need an 'Interface Czar' to keep
everything in line. This person should be good at organizing, should not
be a developer at all, and should rule with an iron fist. I thought Bill
Gates was supposed to be that guy but I think he needs to delegate that
to someone else who works under his direction. There are now just too
many details for someone like Bill to keep track of along with his other
duties. If things keep going the way they seem to be going now then the
Office family of products will be no better than a cobbled together pile
of open source software and people will no longer have any reason
whatsoever not to switch.
 
D

Diane Poremsky [MVP]

actually practiced what it preached when it came to development wouldn't
it be easy to just drop an OLE 'object' into your code and have it just
work? Can't you at least just drop a find-and-replace 'object' into the
Edit menu and have it just work?

It's not that simple - the programs use a lot of old code (some because they
don't want ot rewrite it each time, also to maintain backwards
compatability). New programs could be written to use plug and play code.
wrong or does it sometimes feel as if some of these Office products were
put together in a vacuum?

Not exactly a total vacuum, but they all have their own product groups and
htye don't talk as much as they should. A lot of it goes back to the old
code and the fact that they all began as individual products, not an office
suite.
Even the options dialog is completely different
from the standard Office tabbed dialog. I know OneNote is kind of a new
animal but did you really have to start from scratch with every single
line of code?

It's differnet from older office programs, but the dialog wasn't exactly
"written from scratch" either... and you'll be seeing a lot more of that
style in apps.
editing at the time. To get to commonly used or changed features you have
to go through this button and that tab then another button and another
tab to finally get to a scrollable list where you can select the feature
you need to change.

The new options dialog should help get rid of some of the digging... we
hope. :)
everything in line. This person should be good at organizing, should not
be a developer at all, and should rule with an iron fist. I thought Bill
Gates was supposed to be that guy but I think he needs to delegate that
to someone else who works under his direction.

Bill delegated this stuff out a long, long time ago.
duties. If things keep going the way they seem to be going now then the
Office family of products will be no better than a cobbled together pile

The suite really is cobbled together - the early versions were all separate
apps and I think it was about word 6/excel 5 when they packaged them in a
suite. In early suites, individual version numbers didn't even match.
 
G

Grant Robertson

Bill delegated this stuff out a long, long time ago.
Well, he still claims the title of Chief Software Architect. I think the
problem is that he delegated it out to too many people in to many
different departments. Now, no one is in charge. He should have one
person who is in control of all interface related things across the
board. Naturally that person would require a team to help them keep up
but that team should be separate from the individual product development
teams. In My Own Not So Humble Opinion ;^)
 
C

Chris_Pratley \(MS\)

Grant,

Actually, about 80-90% of OneNote is reused code from Office. For a very
rough approximation, compare the size of onenote.exe (~700K unique to
OneNote) with mso.dll (12MB shared with Office) - this is rough of course,
since there are other files involved and onenote does not use all of
MSO.dll, but you get the idea.

As for dropping in an activeX component to add functionality, and that whole
discussion, as an analogy I could ask "since hydrogen powered cars are so
great, why on earth doesn't the automobile industry make those instead of
inefficient gasoline engines - what are they thinking?" The point is that
history determines many things, not the current thinking on best practices.
And FWIW, a fully componentized app would not perform anywhere nearly as
fast as you would like, and would be a memory hog - that is not the answer.

I hear you on the inconsistencies - we do make that sort of thing a priority
but occasionally we slip up - it is hard in a large org to catch all such
things. Tools/Options is an interesting example, where the options dialogs
are actually all unique to each app and are not shareable (historical
reasons), so we were faced with writing a brand new options dialog that
looked like, say, Word and had all the same sorts of problems (multiple rows
of tabs, crowded panels) that we didn't want to inherit, or doing a better
design.

Chris Pratley (MS)
Onenote design team
 
D

Derek Martin

Hey Chris, good response. I love OneNote and for a first version, it's
really a great tool, pretty stable and while it does have its quirks, I look
forward to continuing to use it on through V2, whenever that may be :)

Derek
 
G

Grant Robertson

"Chris_Pratley \(MS said:
Grant,

Actually, about 80-90% of OneNote is reused code from Office. For a very
rough approximation, compare the size of onenote.exe (~700K unique to
OneNote) with mso.dll (12MB shared with Office) - this is rough of course,
since there are other files involved and onenote does not use all of
MSO.dll, but you get the idea.

Wow, that's amazing. It's kinda like how our DNA is 99% the same as a
chimpanzee but that 1% makes all the difference.
As for dropping in an activeX component to add functionality, and that whole
discussion, as an analogy I could ask "since hydrogen powered cars are so
great, why on earth doesn't the automobile industry make those instead of
inefficient gasoline engines - what are they thinking?" The point is that
history determines many things, not the current thinking on best practices.
And FWIW, a fully componentized app would not perform anywhere nearly as
fast as you would like, and would be a memory hog - that is not the answer.

Now you are starting to talk like me. I drive my friends nuts with all
the analogies. Basically what you are saying is that Microsoft doesn't
practice what they preach because they preach what they know they can't
practice.
I hear you on the inconsistencies - we do make that sort of thing a priority
but occasionally we slip up - it is hard in a large org to catch all such
things. Tools/Options is an interesting example, where the options dialogs
are actually all unique to each app and are not shareable (historical
reasons), so we were faced with writing a brand new options dialog that
looked like, say, Word and had all the same sorts of problems (multiple rows
of tabs, crowded panels) that we didn't want to inherit, or doing a better
design.

What you gotta do in that case is market it as an improvement in the
first place. Just add a bullet item to the feature list saying,
"Experimental New Options Dialog". Perception manipulation works on me
too. ;^)
 
C

Chris_Pratley \(MS\)

Grant - I am not sure I follow you on the practicing and preaching thing.
Generally speaking, the Office team tries to:
a) use the good things Windows does, and help them improve what they design
so that all application developers benefit (having a good platform for
anyone to develop on with Windows is actually more important than Office,
believe it or not)
b) be as internally consistent as we can, within reason. We don't often go
re-implement old things just to make them consistent if we have no plan to
improve them other than that. We have finite resources, so we can't tweak
everything, and in software, as in medecine, the first rule is "do no harm".
For another analogy, in a house remodel, do you fix every single thing you
want to, or just the ones that really matter or that you are going to
improve anyway?

OneNote has tried to do its own thing a few times because we want to
experiment - we have that flexibility because we are new - Word, Excel and
so on have commitments and huge customer bases so they can't take as many
risks.

Microsoft as a whole really does try to practice what it preaches - it may
not happen immediately and may not be complete and may take a couple of
versions - but we're only human after all.

Chris Pratley (MS)
OneNote design team
 
G

Grant Robertson

"Chris_Pratley \(MS said:
Grant - I am not sure I follow you on the practicing and preaching thing.

I just mean that the way they advertise the development tools as creating
this nirvana of object oriented, reusable code with easy drag and drop
development is apparently not practical for the size and life span of the
other products they sell. Not as much a criticism any more, more of an
ah-ha.
 
C

Chris_Pratley \(MS\)

Well, the tools are good for what they say, and people writing new apps
using these tools get those benefits. They do not claim to rewrite all your
old code for you.

Chris Pratley (MS)
OneNote design team
 
G

Grant Robertson

"Chris_Pratley \(MS said:
They do not claim to rewrite all your old code for you.

Oh come on...

And I want them to just be able to write a program as I describe it
verbally, like eon Star Trek. ;^)


Seriously, I was agreeing with you. The development tools may be great
for the custom apps that regular sized companies need developed. But for
a company whose whole business is software, who writes more code in a
month than most of these regular sized companies do in a year or more,
and they have decades of history to keep compatibility with or they will
piss off all the complaining customers like me, I am seeing how it is
pretty impossible to create an all encompassing development environment
that meets the ideals that are possible when creating new apps from
scratch.

It's kind of like this old Isaac Asimov story where these two workers are
stuck on this isolated planet and every piece of equipment that arrives
must be hand assembled. So they order this machine to automatically
assemble all of their equipment for them, except when it arrives not a
single part has been assembled. It is just a pile of nuts, bolts,
resistors, and stuff. The point being that you can't ever make something
that will automatically handle all your past, present, and FUTURE
technology.
 
C

Chris_Pratley \(MS\)

Ok, ya got me.

Chris

Grant Robertson said:
Oh come on...

And I want them to just be able to write a program as I describe it
verbally, like eon Star Trek. ;^)


Seriously, I was agreeing with you. The development tools may be great
for the custom apps that regular sized companies need developed. But for
a company whose whole business is software, who writes more code in a
month than most of these regular sized companies do in a year or more,
and they have decades of history to keep compatibility with or they will
piss off all the complaining customers like me, I am seeing how it is
pretty impossible to create an all encompassing development environment
that meets the ideals that are possible when creating new apps from
scratch.

It's kind of like this old Isaac Asimov story where these two workers are
stuck on this isolated planet and every piece of equipment that arrives
must be hand assembled. So they order this machine to automatically
assemble all of their equipment for them, except when it arrives not a
single part has been assembled. It is just a pile of nuts, bolts,
resistors, and stuff. The point being that you can't ever make something
that will automatically handle all your past, present, and FUTURE
technology.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top