"C++ is like a sharp razor... either the best tool to remove your facial hair or slit your throat."

RuebaiYat:  why is it that people want to build programs and 
are unable or unwilling to accept the necessary preconditions, like 
assembling the needed knowledge from books?
SNIBRIL: I wish i knew. :-))
SNIBRIL: Humanity uses (printed) books for about 400 years now,
 to conserve and distribute knowledge. it worked. it works today. but you 
 have to READ in order for it to work.
SNIBRIL: Personally, I _need_ books to a) expand my knowledge
 and keep up  to date (which is also important for one's job)
SNIBRIL: and b) re-read things i either forgot and didn't want to memorize 
in order to keep my head from blowing up.

RuebaiYat: how big is your library of books?
SNIBRIL: about 50..60 computer books.

RuebaiYat: which is your favorite book? which was a total lamer?.
SNIBRIL: My current favourite is "More Efficient C++" from Meyers. That's 
because I haven't read it yet :-) and because "Efficient C++" was an 
excellent resource.
SNIBRIL: my worst book is from a local (German) publisher, "Das 
Amiga-Handbuch".
SNIBRIL: u know these publishers known for one good book inna 
century, always has the hootest topics (All you never wanted to know 
about JAVA), and authors that deem it inventive to plagiate computer 
magazines.
SNIBRIL: topped with lots of typos and simple factual errors.
SNIBRIL: the opposite of this has a name:  Addison-Wesley. Highly 
recommended, you 99% get a GOOD book usefull for years.

RuebaiYat: why are patterns important?
SNIBRIL: for many reasons. ;-)
SNIBRIL: 1st: they enable us to talk in "big" concepts.
SNIBRIL: If i say "bridge", they average pattern-enabled person will know 
from just this word what i speak of.
SNIBRIL: it's what enables experts to communicate concise and efficient.
SNIBRIL: and since language forms what we think, using a pattern language 
enables us to invent complex structures quite rapidly and show them to 
others.
SNIBRIL: 2nd: see above, they enhance our tool chest.
SNIBRIL: the beauty of patterns is that u will recognize some of them on 
the spot, since YOU yourself used them in the past, you just didn't call them patterns.

RuebaiYat: are patterns standardized?
SNIBRIL: they can't. since the mainly describe design processes and 
thoughts, which is some kind of "blury" (as oppsed to code, code is 
concise)

RuebaiYat: is there some ISO definition for the paterns?
SNIBRIL: this isn't easily done. there is an agreement though, some kind 
of template (or a meta-pattern :-).
SNIBRIL: it's very similar to UNIX man pages, you have sections in a 
certain order (name, aliases, forces, description, examples, uses, 
references, ...)

RuebaiYat: wha is your opinion on methodologies such as BOOCH etc?
SNIBRIL: u should know at least know the basics of one of Booch or OMT.
SNIBRIL: since almost certainly the new "Unified Method" (Booch and now 
Rumbaugh and Jacobson all work for Rational) will blow away any other 
method.
SNIBRIL: it will teach you how OO can be formalized somewhat (long time, 
OO was anything, but surely not formal :-). well, using them in real life 
is another thing. 
SNIBRIL: You _absolutely_ need tools to use such a method. and those are 
expensive (serveral thousand $$$).
SNIBRIL: By "using" i mean following them more or less 100%, not 
background knowledge of the methods that you use while designing.
SNIBRIL: Also, all the charts and cards and diagrams are really only 
needed for huge projects. there, you need them bad, though.

RuebaiYat: ah...but paper/pencil will work..for the smaller designs?
SNIBRIL: pencil and paper (cards) is good for CRCs (obviously).
SNIBRIL: for the other methods, it's a waste of time using them for more 
than sketches while trying out ideas.
SNIBRIL: that's because the information on them will age rapidly in a OO 
design process that is iterative and evolutionary.
SNIBRIL: which every OO process is...
SNIBRIL: paper and pencil is also good for learning

RuebaiYat:what are common C++ programmers prejudices of smalltalk?
SNIBRIL: well, i think they use C++ because their smalltalk is to slow and 
big, and because they get too much run-time errors

RuebaiYat:  why is it that people (read: Smalltalkies) expect things   from C++ that 
it never was designed for?
SNIBRIL: They don't switch their mind-set to the concepts 
behind C++.
SNIBRIL: one of these concepts is "be as compatible as possible to C, even 
if it hurts sometimes". 
SNIBRIL: this is, btw, what made C++'es _amazing_ commercial success (i.e. 
industry acceptance) possible.
SNIBRIL: (breaking the COBOL vicious cycle, which is "we need COBOL 
programmers to maintain our old code... we need new programs, we have 
COBOL programmers, let's do COBOL)
SNIBRIL: to learn more about the ideas, forces and historical descisions 
behind what C++ is today, read Stroustrup's "The design & evolution of 
C++". Very insightful for the already fluent C++ programmer.

RuebaiYat:  What will be the impact of Java to the "programming community",   and 
SNIBRIL: IMHO, Java will have the same success story as C++, for the 
same   reasons.
SNIBRIL: Java is C++ compatible (somewhat), which provides a nice learning 
curve for many people.
SNIBRIL: Also, it's portable, more so than C or C++, where only the source 
is relatively easily ported. No, Java produces code for a stack machine, 
which is inherently portable to all platforms with very little effort 
(porting the stack machine).
SNIBRIL: btw, i know of a university project to translate java byte code 
to c++, allowing portable "native compilation".
RuebaiYat: WOW!
SNIBRIL: which also shows that most people's 1st reaction to Java ("it's 
interpreted?! man, THAT must be SLOW!") is, well... uninformed.

RuebaiYat: java may rule the world?
SNIBRIL: it actually may do so, or large parts of the computer part of the 
world. :-)
SNIBRIL: Oracle's NC is not _just_ hype, the industry does not invest _so_ 
much money and time into vapourware (we regard MS as its own industry 
here :-).
RuebaiYat: what is NC?
SNIBRIL: Just "Network Computer". 
it's an attempt to get some flesh 
behind that "Internet Terminal 
for under US$500" thing.
SNIBRIL: NC is a set of guidelines 
comparable to the PREP thing or 
IBM's "Advanced Technology" (i.e. 
last decades technology that is 
the basis for today's Intel PCs).
SNIBRIL: Of course, Java could die as fast as it was born (see Taligent).
SNIBRIL: But that is not very probable. It will be accepted technology by 
1st or 2nd quarter of 1997 (if not sooner, Merlin will be released in 
fall of 1996).


Currently, SNIBRIL has the big 3 in his age for about 4 months now and works as a software engineer for a little company producing internet software (virtual shopping mall, information technology systems via WWW, ...) SNIBRIL is German, began around 1976 to hack on computer keyboards (PET 2001 ones, at school) and everything currently, German only, you were warned. SNIBRIL's 1st own computer was a TSR Color Genie compatible plastic housing thing. had a Z80 as a heart, and ran a Z80 assembler which he wrote. SNIBRIL is not married, has no children (that he knows of :-), and aspires to stay healthy and get wealthy...

Want to know more about SNIBRIL? [SNIBRIL]
jh@schiele-ct.de