Re: what's the differents between MFC Wnd && .net winform??
"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message
news:h8ue339dk61r46nr09cojlpg7ku48652s9@4ax.com...
No, the optimization was one largely for the operating system; most users
did not care
about it at all. String loading was rarely an issue, and it was
documented that strings
were grouped in multiples of 16, based on their string IDs, so a tool that
hid the
boundary issue had no impact whatsoever on your ability to optimize
clustering of strings
by assigning the number yourself. What it did do was make it hard to
simply add strings.
If I had a group of strings I cared about enough to want to optimize, all
I had to do was
ensure that they had the same quotient if I took the id / 16, and having a
tool that made
it impossible to edit a string that was in another cluster without having
to do a separate
operation to get to that cluster was just plain silly. It hid nothing,
but it made an
almost totally irrelevant detail of the representation be in my face all
the time. Note
that we are only talking about the issue of hiding the boundary issue from
the interface,
which is different from hiding the string ID numbers. The Microsoft
tooling allowed me to
do both, but made the typical case easy and the optimization case was no
easier than in
the Microsoft tools. So there was a net loss.
****
I can see your point, but also having hand-edited .rc files with multiple
stringtables, can also see where having the raw structure present is also
beneficial, similar to modern XML editors showing both WSYWIG and raw text.
Whatever, I'm sure that whatever time you lost as a result of that UI
deficiency is less than the time we are taking to debate it.
My problem was that I had to deliver product that people could compile
with a Microsoft
compiler, or in those days, several others. By the time Borland had
licensed MFC, the
issue became irrelevant.
In those days, the Microsoft compiler was a joke. It succeeded only due
to
the monopolistic bundling of the SDK along with it, which Borland,
Zortech,
and Symmantec finally succeeded in stopping them from doing.
*****
And Zortech was a truly fine compiler? I remember how many C++
implementation bugs
Zortech had. I had customers who used it, but could not use the C++
version because of
the truly massive number of bugs (destructors for local variables failing
to execute when
an exception was thrown was one classic). I had the Zortech compiler
(given to me by a
client) but I never installed it, although I did follow a newsgroup for a
while
(Compu$erve, if you remember them...). The company I was doing work for
had an internal
memo about what features of the compiler were usable, which I have long
since lost. But I
had to write to that subset.
I used the Lattice, Microsoft and Borland products, and a few
cross-compilers, and overall
tlhe Microsoft compilers were uniformly better. The biggest problem they
had was they
implemented a subset of C++, and that was a real pain, but I never hit a
bug in the subset
I used.
In fact, I can recall only one bug I had in the Microsoft C compiler; if
you passed a
structure by value, and the structure had an odd number of bytes, it
pushed an even number
of bytes onto the stack and popped an odd number of bytes off. By the
time I hit it, it
had already been fixed on the Microsoft BBS (yes, BBS. Internet? What's
that?) and after
I downloaded the fix (at 28.8, or maybe 14.4) using Kermit (anyone
remember Kermit?) the
problem was gone.
It was a common misconception at the time that the Microsoft C/C++ compiler
(so named because they had such a piss poor implementation of C++, it could
not stand on it's own) was the only "industrial strength" compiler which was
not true for the vast majority of usages out there. It was multi-pass, it
was slow, it was a memory hog.
It would take me far too long to put into the Microsoft editor the massive
amount of
support I've added to Epsilon to conform to my editing style. Incremental
search is just
a tiny piece of the world. I need paragraph justification,
auto-line-wrap, change log
facilities, indentation that works right in the simple case, my own
annotator, and the
last time I looked, much of this was not even possible because you
couldn't map arbitrary
keys (such as space, /, *, {, }, etc.) to user-specified code.
*****
Obviously this is possible given the vast number of IDE plug-ins out there.
You can create a plug-in export functions, then bind those functions to any
keystroke you desire. Check out the VSIP interface.
Borland's Turbo C++ and QuickBasic both got their ideas from existing
editors.
QuickBasic? Turbo C++? They were so late in the game that it was simply
seen as an
obvious feature to add, copying work that had been done many times, by
many people, over
many years before.
Heh, so what if some editors we've never heard of, let alone had no access
to, had those features? If we can't use them, they might as well not exist.
My point is that they had it before Epsilon and other readily available
editors that we could have used instead.
-- David