Hi,
I have little knowledge of patterns so was considering buying the GoF
(Gang of Four) patterns book. However, I've seen a lot of posts in
this group recommending "Modern C++ Design" by Andrei Alexandrescu.
Which one should I get, or should I get both? If both, presumably I
should get the GoF book first.
I should mention that my programming environment is currently Visual
C++ 6, though this may change soon to the .Net version. Does the new
version still have problems with some of the the Modern C++ Design
templates?
--
Thanks,
Stuart
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
studennett (5)
|
5/9/2005 10:27:48 PM |
|
studennett@hotmail.com wrote:
> I have little knowledge of patterns so was considering buying the GoF
> (Gang of Four) patterns book. However, I've seen a lot of posts in
> this group recommending "Modern C++ Design" by Andrei Alexandrescu.
> Which one should I get, or should I get both? If both, presumably I
> should get the GoF book first.
Get both. At the same time.
> I should mention that my programming environment is currently Visual
> C++ 6, though this may change soon to the .Net version. Does the new
> version still have problems with some of the the Modern C++ Design
> templates?
Much less so.
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Victor
|
5/10/2005 9:31:36 PM
|
|
I would like to make a little note.
Alexandresku talks not just about patterns, but also of others, several
C++ hints, so probably for you, as for C++ programmer and with little
knowledge of patterns, probably, Modern C++ Design would be better,
unless you don't want to learn other languages, like C# or Java.
--
Hypothetically yours, Alex Beluga.
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Alex
|
5/10/2005 9:34:56 PM
|
|
Both and try GoF first !
Modern C++ Design refers to some kinds of Design Pattern.
I used VC++ 7.0 (VS.net) but it still has problem compiling MCPPD
example code.(ex, nested template)
Higher version of VC++? I didn't tried :)
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
hongseok
|
5/10/2005 9:36:02 PM
|
|
also sprach studennett@hotmail.com <studennett@hotmail.com> [2005.05.10.0027
+0200]:
> I have little knowledge of patterns so was considering buying the
> GoF (Gang of Four) patterns book. However, I've seen a lot of
> posts in this group recommending "Modern C++ Design" by Andrei
> Alexandrescu. Which one should I get, or should I get both? If
> both, presumably I should get the GoF book first.
Well, it depends on what you want to learn. Alex's book is
C++-specific, why GoF uses some pseudo-code examples. So they teach
you the concepts on a lower level, and Alex takes some (not all) of
them and discusses their implementation and pitfalls in C++.
I think you can start with Alex's book, but you will likely get GoF
later. Alex's book is really enticing and nice, and once you are
into design patterns, you will want to know more.
--
martin; (greetings from the heart of the sun.)
\____ echo mailto: !#^."<*>"|tr "<*> mailto:" net@madduck
invalid/expired pgp subkeys? use subkeys.pgp.net as keyserver!
spamtraps: madduck.bogus@madduck.net
"to have the reputation of possessing the most perfect social tact,
talk to every woman as if you loved her,
and to every man as if he bored you."
-- oscar wilde
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
martin
|
5/10/2005 9:38:12 PM
|
|
studenn...@hotmail.com wrote:
> I have little knowledge of patterns so was considering buying
> the GoF (Gang of Four) patterns book. However, I've seen a
> lot of posts in this group recommending "Modern C++ Design" by
> Andrei Alexandrescu. Which one should I get, or should I get
> both? If both, presumably I should get the GoF book first.
It depends on your goals. The GoF book addresses basic
programming, as it is practiced daily in industry. (It is rare,
for example, not to be asked questions about patterns in a job
interview.) Andrei's book is more on the leading edge, almost
experiental in places. It's sort of the difference between
where we are, and where we are going.
> I should mention that my programming environment is currently
> Visual C++ 6, though this may change soon to the .Net version.
> Does the new version still have problems with some of the the
> Modern C++ Design templates?
It might. Perhaps just as important a question: will your
collegues have problems with it? In many places, the first step
in introducing such technology is bringing your collegues up to
date, so they don't feel completely lost when they see your
code.
--
James Kanze GABI Software
Conseils en informatique orient�e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S�mard, 78210 St.-Cyr-l'�cole, France, +33 (0)1 30 23 00 34
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
kanze
|
5/11/2005 12:06:26 AM
|
|
<studennett@hotmail.com> schrieb im Newsbeitrag =
news:1115647069.855064.13510@f14g2000cwb.googlegroups.com...
> Hi,
>
> I have little knowledge of patterns so was considering buying the GoF
> (Gang of Four) patterns book. However, I've seen a lot of posts in
> this group recommending "Modern C++ Design" by Andrei Alexandrescu.
> Which one should I get, or should I get both? If both, presumably I
> should get the GoF book first.
GoF talks about patterns in general. It uses C++ and sometimes Smalltalk =
for the examples.
GoF is a sort of catalogue of patterns.
Alexandrescu book shows how to use C++ features (especially templates) =
to parameterize a "library".
Some of the "examples" are patterns from GoF.
(I use "examples" in quotes, because these "examples" are more than just =
examples; they can be directly used in your programs, using the template =
mechanisms to parameterize the pattern to your needs. You can even get =
the library from Alexandrescus homepage)
So IHMO, you should get GoF first to get a overview of patterns.
You may also consider getting Vandervoorde/Joussutis "C++ templates" in =
between the both.
(I did so, because I had to catch up on some features Alexandrescu =
uses.)
HTH (and waiting for being corrected ;-)
Martin
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Martin
|
5/11/2005 7:41:54 AM
|
|
My personal idea is GoF first, then Modern C++ Design.
GoF will bring you lots of idea of how to design a software based on
pattern. It focus more on design while modern C++ Design focus more on
how to use template or STL to realize the pattern.
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Jeff
|
5/11/2005 7:43:36 AM
|
|
studennett@hotmail.com wrote:
> Hi,
>
> I have little knowledge of patterns so was considering buying the GoF
> (Gang of Four) patterns book. However, I've seen a lot of posts in
> this group recommending "Modern C++ Design" by Andrei Alexandrescu.
> Which one should I get, or should I get both? If both, presumably I
> should get the GoF book first.
Well, GoF ist about Pattern oriented software design in genereal, while
Alexandrescus book focuses on some (pretty nerdy) C++ programming
techniques. The latter has almost nothing to do with pattern design.
> I should mention that my programming environment is currently Visual
> C++ 6, though this may change soon to the .Net version. Does the new
> version still have problems with some of the the Modern C++ Design
> templates?
Are there compilers which doesn't have problems with the MCD-Templates?
--
- Abort, Retry, Fthagn? -
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Hendrik
|
5/11/2005 7:45:11 AM
|
|
studennett@hotmail.com wrote:
> Hi,
>
> I have little knowledge of patterns so was considering buying the GoF
> (Gang of Four) patterns book. However, I've seen a lot of posts in
> this group recommending "Modern C++ Design" by Andrei Alexandrescu.
> Which one should I get, or should I get both? If both, presumably I
> should get the GoF book first.
I highly recommend both books. GoF is the more generally applicable of
the two. I think Modern C++ Design is more interesting though :)
As a professional programmer I would say you could probably get away
with not knowing everything in Modern C++ Design. The GoF on the other
hand is imperative for you to know and understand to produce code of any
quality at the professional level (although you have to adapt the ideas
to be more suitable to C++).
HTH
Neal
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Neal
|
5/11/2005 7:45:40 AM
|
|
Hi there,
I'd recommend "Modern C++ Design" first... beside the GoF book "Design
patterns" should be comming with a 2nd edition soon, so you could hold
till that comes.
>[snip&edit]...Does the new version (VS .NET) still have problems with
some of the the Modern C++ >Designtemplates?
Which version VC++.NET 2003 or VC++.NET 2005(whidbey there's the
express version out now BETA)?
I'm not that sure... some one else may give better advise here.
HTH
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Aerodyne
|
5/11/2005 7:49:20 AM
|
|
On 9 May 2005 18:27:48 -0400, studennett@hotmail.com wrote:
>I have little knowledge of patterns so was considering buying the GoF
>(Gang of Four) patterns book.
What was the "discover" couple years ago today is common knowledge. Of
course it is very good sign of presented patterns but I think it is
not worth buying. I guess you saw a lot of them in action you just
didn't know that was it.
> However, I've seen a lot of posts in
>this group recommending "Modern C++ Design" by Andrei Alexandrescu.
I cannot recommend it since I haven't read it but it will be soon /I
hope so/ published in Poland and of course I will buy it without any
doubt ;-)
have a nice day, bye
--
Maciej "MACiAS" Pilichowski http://bantu.fm.interia.pl/
M A R G O T --> http://www.margot.cad.pl/
automatyczny t�umacz (wczesna wersja rozwojowa) angielsko-polski
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Maciej
|
5/11/2005 7:50:17 AM
|
|
I would buy both. For a C++ programmer I think these books complement
each other very nicely. GoF will provide you with information on how to
solve certain classes of problems that crop when designing software.
"Modern C++ Design" builds off GoF and shows you how these design
patterns can be implemented elegantly in C++ using some of the more
advanced features of the language. Given that "Modern C++ Design"
references GoF extensively, it makes since to get them both. GoF is a
priceless in and of itself though.
>From what I remember VC++ 6 is not that great with heavy-duty template
programming, something which "Modern C++ Design" does a lot of. VC++ 7
and VC++ 7.1 are much better when it comes to template programming
(well, much better with Standard C++ in general).
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
meadori
|
5/11/2005 10:33:55 AM
|
|
* kanze@gabi-soft.fr
| Perhaps just as important a question: will your collegues have
| problems with it? In many places, the first step in introducing
| such technology is bringing your collegues up to date, so they don't
| feel completely lost when they see your code.
What is a good strategy to do this (bringing the collegues up to
date)? I bought a bunch of books for the company, read them, tried
the 'new' stuff (many things here were based on pre-'95-style C-struct
based 'design'), but sure don't have the time and expertise to teach
them. I barely get them to recognize there are new books on the
shelf, let alone to open them. They just keep on hacking the old
style, using unchecked return codes and object type flags, and
wondering what the * I'm talking about in the code review.
R'
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Ralf
|
5/11/2005 11:41:10 AM
|
|
Hello, I help administrate the Loki-lib project on sourceforge (loki is
the name of the library that accompanies "Modern C++ Design").
If anyone is having trouble with Loki, please download the latest
source from http://sourceforge.net/projects/loki-lib/, this contains
the original (with bug-fixes) source and several ports.
I would recommend you read GoF first, as I think it will make the
techniques used in Modern C++ seem more worthwhile. Without some
background with patterns the advanced template code may seem
over-whelming. With some pattern knowledge the purpose should be
clearer and make the book more interesting. In addition to DP, there's
a newer series called Pattern-Oriented Software Architecture, and I
think volume 1 is about general patterns (vol2 is about networking,
vol3 is about resource management).
Rani Sharoni ported Loki to MSVC6 & MSVC7. MSVC 7.1 is one of the best
compilers to use with Loki - it compiles the 'golden'
standard-compliant code. I have no reason to believe the latest beta
compiler will not work with Loki; IIRC Herb Sutter has made it a
priority that MSVC compile boost, loki, blizt++, and other such
publicly available C++ libraries cleanly.
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Shannon
|
5/11/2005 11:46:03 AM
|
|
In article <d5q8bu$31p$1@news.mch.sbs.de>, Martin Jost
<Martin.Jost@siemens.com> writes
>So IHMO, you should get GoF first to get a overview of patterns.
>You may also consider getting Vandervoorde/Joussutis "C++ templates" in =
>between the both.
>(I did so, because I had to catch up on some features Alexandrescu =
>uses.)
This is a response to both this post and several others in this thread.
I think that the GoF book is ill-suited to programmers who have not yet
had experience of large scale software development. The patterns in it
concern large scale design and several of them require a good deal of
practical experience before it becomes clear how they differ. I suspect
that it gets recommended so often because people easily remember 'GoF'
and actually have often not read it. GoF has just managed to become
synonymous with 'Patterns' in many people's minds.
Andrei's book 'Modern C++ Design' is an entirely different book which is
well worth study to broaden the mind in respect to what you can do with
C++ (specifically C++, the GoF book is pretty weak on the C++ side)
Someone who thinks that these two books somehow address similar issues
is confused (or has not read both books). Note that neither book is
suitable for less (for some meaning of less) experienced programmers.
However the GoF book is a useful tool when mentoring because when a
specific pattern surfaces in the 'mentoree's work the mentor can suggest
they read up about it. In other words the GoF book is a kind of
reference study book.
--
Francis Glassborow ACCU
Author of 'You Can Do It!' see http://www.spellen.org/youcandoit
For project ideas and contributions: http://www.spellen.org/youcandoit/projects
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Francis
|
5/12/2005 7:13:50 AM
|
|
Thanks to everyone for the replies. I've bought the GoF book (on my
company's behalf) and expect I will buy Modern C++ Design later.
As regarding whether my colleagues will have problems with the Loki
library and the complex templates in Modern C++ Design, they may well
do, but that doesn't mean I shouldn't know about them!
Thanks again,
Stuart
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
studennett
|
5/12/2005 11:29:56 AM
|
|
Francis Glassborow wrote:
> I think that the GoF book is ill-suited to programmers who have not
> yet had experience of large scale software development. The patterns
> in it concern large scale design and several of them require a good
> deal of practical experience before it becomes clear how they differ.
I find this statement rather surprising. What is large scale about
Singleton, State, or Composite, and for what defintion of "large"?
What I would agree with is that practical experience (though not
necessarily at a large scale) is necessary in order to benefit from the
GoF book. A pattern is hard to grasp unless you have stood yourself
before the mental problem which the pattern is tailored to solve.
--
Gerhard Menzl
#dogma int main ()
Humans may reply by replacing the thermal post part of my e-mail address
with "kapsch" and the top level domain part with "net".
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Gerhard
|
5/12/2005 11:39:49 AM
|
|
Francis Glassborow wrote:
> In article <d5q8bu$31p$1@news.mch.sbs.de>, Martin Jost
> <Martin.Jost@siemens.com> writes
> >So IHMO, you should get GoF first to get a overview of
> >patterns. You may also consider getting
> >Vandervoorde/Joussutis "C++ templates" in = between the both.
> >(I did so, because I had to catch up on some features
> >Alexandrescu = uses.)
> This is a response to both this post and several others in
> this thread.
> I think that the GoF book is ill-suited to programmers who
> have not yet had experience of large scale software
> development.
I think you have it reversed. Trying to do any large scale
software development before being familiar with the GoF book is
making things unnecessarily difficult.
> The patterns in it concern large scale design
Say, any project of more than about a thousand lines.
> and several of them require a good deal of practical
> experience before it becomes clear how they differ.
That's a detail. One could argue that some of the patterns
should be merged, or that others should be split up into two
different patterns, but it doesn't change anything of the
basics.
> I suspect that it gets recommended so often because people
> easily remember 'GoF' and actually have often not read it.
> GoF has just managed to become synonymous with 'Patterns' in
> many people's minds.
Maybe because it was the first book to talk about them.
> Andrei's book 'Modern C++ Design' is an entirely different
> book which is well worth study to broaden the mind in respect
> to what you can do with C++ (specifically C++, the GoF book is
> pretty weak on the C++ side)
That's not its purpose.
To a certain degree, both books are about software design.
Andrei's book is specifically C++, but I don't think that the
thrust is getting the most out of C++, per se. It's more a
question of some pretty advanced development techniques which
happen to work particularly well in C++. In C++ as specified by
the standard, of course; not necessarily in the C++ understood
by the compilers we actually have to use.
In practice, Andrei's book is very interesting theoretically,
but isn't of much practical use yet, until compilers catch up.
The GoF book is simply required reading; you don't even hire
someone who is not familiar with its contents.
> Someone who thinks that these two books somehow address
> similar issues is confused (or has not read both books). Note
> that neither book is suitable for less (for some meaning of
> less) experienced programmers. However the GoF book is a
> useful tool when mentoring because when a specific pattern
> surfaces in the 'mentoree's work the mentor can suggest they
> read up about it. In other words the GoF book is a kind of
> reference study book.
That is perhaps a legitimate criticism. Much of the GoF book is
more of a catalogue or a reference book than a tutorial.
Although the first couple of chapters are more or less required
reading, the rest should be rapidly scanned through, then the
exact pattern consulted as needed.
--
James Kanze GABI Software
Conseils en informatique orient�e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S�mard, 78210 St.-Cyr-l'�cole, France, +33 (0)1 30 23 00 34
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
kanze
|
5/12/2005 11:42:16 AM
|
|
Ralf Fassel wrote:
> * kanze@gabi-soft.fr
> | Perhaps just as important a question: will your collegues
> | have problems with it? In many places, the first step in
> | introducing such technology is bringing your collegues up to
> | date, so they don't feel completely lost when they see your
> | code.
> What is a good strategy to do this (bringing the collegues up
> to date)?
To tell the truth, I don't know. It obviously depends on the
individual, and in some cases, there is probably no way.
Generally, however, if you're discussing how to solve a
particular problem, showing them how some new technique can
result in a much simpler solution can go a long way.
> I bought a bunch of books for the company, read them, tried
> the 'new' stuff (many things here were based on pre-'95-style
> C-struct based 'design'), but sure don't have the time and
> expertise to teach them.
The important thing is to motivate them. If they are engineers,
I'd expect them to be able to learn the technology if they see
any real interest. And if they don't, even the best teacher
probably won't help.
> I barely get them to recognize there are new books on the
> shelf, let alone to open them. They just keep on hacking the
> old style, using unchecked return codes and object type flags,
> and wondering what the * I'm talking about in the code review.
Well, if you have good code reviews, half the battle is won.
Don't worry so much about what you say when reviewing their
code; use a new technique in your own code, and see what they
say. (Do it gently, however. If they're still just barely at a
C level, introducing the most radical technique from Loki will
only scare them off.)
--
James Kanze GABI Software
Conseils en informatique orient�e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S�mard, 78210 St.-Cyr-l'�cole, France, +33 (0)1 30 23 00 34
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
kanze
|
5/12/2005 1:18:24 PM
|
|
{Note that the poster's news reader does not seem to identify quote
material. -mod}
james kanze wrote in response to francis glassborow
" > I think that the GoF book is ill-suited to programmers who
> have not yet had experience of large scale software
> development.
I think you have it reversed. Trying to do any large scale
software development before being familiar with the GoF book is
making things unnecessarily difficult."
it is always unnecessarily difficult
no pattern books change any of that
everyones first few large scale projects involve a lot of learning
where some stupid mistakes get made
(usually involving some amount of rework in later iterations)
coding for scalability and reuse takes practice
GoF was not the first book aimed at these principles
and there is a large foundation it does not cover
"> The patterns in it concern large scale design
Say, any project of more than about a thousand lines.
> and several of them require a good deal of practical
> experience before it becomes clear how they differ.
That's a detail. One could argue that some of the patterns
should be merged, or that others should be split up into two
different patterns, but it doesn't change anything of the
basics."
those are the basics the GoF do not cover
patterns are not good design criteria
patterns emerge from regular application of the same design criteria
good patterns emerge from good design criteria
but good use of a pattern requires that it fit a large-scale projects
architectural structure
or it can be a source of unnecessary difficulty
coplien, booch, the original papers on the objectifcations of
procedural and functional languages
there are many sources of motivations for particular design choices
(including experience and problem solving)
"> I suspect that it gets recommended so often because people
> easily remember 'GoF' and actually have often not read it.
> GoF has just managed to become synonymous with 'Patterns' in
> many people's minds.
Maybe because it was the first book to talk about them. "
that is not true
many books discussed patterns before GoF
they just did not necessarily call them patterns
many books emphasized the importance of certain common type
relationships
GoF explicitly builds on the knowledge of many of these books
mathematical papers alone go back to before category theory became a
common language to express term dynamics and their logical calculus
"> Andrei's book 'Modern C++ Design' is an entirely different
> book which is well worth study to broaden the mind in respect
> to what you can do with C++ (specifically C++, the GoF book is
> pretty weak on the C++ side)
That's not its purpose.
To a certain degree, both books are about software design.
Andrei's book is specifically C++, but I don't think that the
thrust is getting the most out of C++, per se. It's more a
question of some pretty advanced development techniques which
happen to work particularly well in C++. In C++ as specified by
the standard, of course; not necessarily in the C++ understood
by the compilers we actually have to use.
In practice, Andrei's book is very interesting theoretically,
but isn't of much practical use yet, until compilers catch up.
The GoF book is simply required reading; you don't even hire
someone who is not familiar with its contents."
i see andres book entirely opposite
its strength is the practicality of its points
the pattern library should be only secondary
it does not matter that the original version was not widely supported
it illustrates many interesting type relations
some even used in the design choices of the standard library
something like a sutter or meyers
and a natural progression from czarnecki and eisenecker
there are many idioms in that book which have been quite portable for
some time
even before standardisation
but again it is incomplete
it does not mention large scale layering or component techniques
that is not its purpose
"> Someone who thinks that these two books somehow address
> similar issues is confused (or has not read both books). Note
> that neither book is suitable for less (for some meaning of
> less) experienced programmers. However the GoF book is a
> useful tool when mentoring because when a specific pattern
> surfaces in the 'mentoree's work the mentor can suggest they
> read up about it. In other words the GoF book is a kind of
> reference study book.
That is perhaps a legitimate criticism. Much of the GoF book is
more of a catalogue or a reference book than a tutorial.
Although the first couple of chapters are more or less required
reading, the rest should be rapidly scanned through, then the
exact pattern consulted as needed. "
i don't quite think that was a criticism
it sounded more like the point
there are many books out there on architecture
there are conference proceedings and IEEE publications
there are technical and popular
the proposition should not be A or B or both
it should be what paths one may find helpful
in hindsight
now that one has encountered all those unecessary difficulties
and maybe learned something
i dont think MCD or GoF would fit any complete recomendation
they merely fulfill niches in a learning process
different niches
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
galathaea: prankster, fablist, magician, liar
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
galathaea
|
5/13/2005 11:21:04 AM
|
|
studennett@hotmail.com wrote:
> Hi,
>
> I have little knowledge of patterns so was considering buying the GoF
> (Gang of Four) patterns book. However, I've seen a lot of posts in
> this group recommending "Modern C++ Design" by Andrei Alexandrescu.
> Which one should I get, or should I get both? If both, presumably I
> should get the GoF book first.
I have boths, I buyed the "Modern C++ Design" first and I recommend you
to buy GoF first. Then "Modern C++ Design". These are really must have
books.
>
> I should mention that my programming environment is currently Visual
> C++ 6, though this may change soon to the .Net version. Does the new
> version still have problems with some of the the Modern C++ Design
> templates?
You really should try VC7.1 (.NET 2003), it is a really improvement
over 7.0(.NET [2002]). VC6 should really be retired.
> --
> Thanks,
> Stuart
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Felipe
|
5/16/2005 4:48:46 PM
|
|
I have to agree with Kanze, perhaps we are misunderstanding what you
meant Glassborow?
I can see MCD standing on its own. Andrei Alexandrescu does a good job
creating easy-to-grasp examples that demonstrate the patterns he
'templatizes', so DP need not be a prerequisite. I guess a lot of
us see it as a natural progression though.
I also have to whole-heartedly disagree that the GoF patterns are only
for larger projects. Design patterns are very much low-level details,
abstracted away from code by a single step - information you want to
know if you create or read any UML class diagrams, or just create any
abstract classes.
I had worked essentially with "single-pilot" projects when I bought and
read DP and it was a real eye-opener. I do agree that it is very
difficult to really understand a pattern with having a genuine cause to
use it. I had to read the book twice before some of it started to sink
in (I think this is the only book I have ever read twice). I was
3-years out of college when I read it, so I do agree that some
experience programming is essential.
The general feedback I've received from newer programmers reading the
book, is that they are familiar with one or two patterns because they
have discovered the patterns on their own (observer & factory method
myself). Then they read about several more that would have been
extremely useful in some situation they struggled with. I was
enthralled by the 'prototype' pattern, the idea had never occurred to
me before, and that hooked me for the rest of book even though it is
very dry material.
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Shannon
|
5/17/2005 10:05:51 AM
|
|
> In practice, Andrei's book is very interesting
> theoretically, but isn't of much practical use yet,
> until compilers catch up.
Well, two things have happened; some very innovative and determined
programmers have back-ported loki to deficient compilers and the
main-stream compilers have caught up! Conversion is the only
functionality that still gives us any trouble (I think it's bugs in
conversion myself, but haven't dug into it).
I think the biggest detraction to loki is that it makes use of more C++
than people are comfortable with (i.e. it's not the compilers need
updates :). Even those of use that are comfortable with it, believe
our colleges aren't. Also boost updated its generic function library
to be much more usable and added the mpl library. That may re-direct
people away from loki, since boost may already be in use for some other
functionality. It's easier to start using more of boost than add
another library dependency.
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Shannon
|
5/17/2005 10:07:06 AM
|
|
"Shannon Barber" wrote:
> I think the biggest detraction to loki is that it makes use of more C++
> than people are comfortable with (i.e. it's not the compilers need
> updates :).
>
Also: Loki unfortunately doesn't look like maintained library
one could rely on in important projects.
/Pavel
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Pavel
|
5/18/2005 9:17:16 AM
|
|
also sprach Pavel Vozenilek <pavel_vozenilek@yahoo.co.uk> [2005.05.18.1117 +0200]:
> Also: Loki unfortunately doesn't look like maintained library
> one could rely on in important projects.
I have just uploaded it to Debian unstable ("libloki-dev") and I do
intend to fix bugs as they come in. I hate the sf.net bugtracker
though, so I am not sure whether I will use it too.
Anyway, we'll see what comes from it. It is a nice library after
all.
--
martin; (greetings from the heart of the sun.)
\____ echo mailto: !#^."<*>"|tr "<*> mailto:" net@madduck
invalid/expired pgp subkeys? use subkeys.pgp.net as keyserver!
spamtraps: comp.lang.cpp.modderated.bogus@usenet.madduck.net
madduck.bogus@madduck.net madduck.bogus@debian.org
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
martin
|
5/18/2005 2:08:16 PM
|
|
If you have no knowledge of patterns then you will most likely find the
GoF book hard to read.
Start off with "Design Patterns Explained, A New Perspective On
Object-Oriented Design" 2nd Edition. By Shalloway and Trott, Addison
Wesley. Oct 2004.
My advice since you already have the GoF book is to read about a
pattern in the Design Patterns Explained book, then reference the same
pattern in the GoF book to see how they describe it.
Then, if you're feeling really brave -- look at how Andrei IMPLEMENTS
the pattern in his excellent book Modern C++ Design.
Now obviously Andrei implements the patterns using templates, but you
don't necessarily have to do this.
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Andy
|
5/19/2005 9:12:44 AM
|
|
galathaea wrote:
[...]
> i dont think MCD or GoF would fit any complete recomendation
> they merely fulfill niches in a learning process
> different niches
I think that's the real key. Neither come anywhere close to
covering the entire spectrum of what you need to know; it's not
the goal of either to do so, either.
Beyond that, there are two issues: how important is the
particular information presented, and how likely are you to get
it otherwise. For the first, I'd say that the information in
GoF is of primordial importance with regards to software design
(and you shouldn't be coding without design); understanding the
individual patterns, and their importance, probably does require
some experience, but the first couple of chapters are a fairly
good introduction. On the other hand, it's quite true that
today, there are a number of other books which treat the subject
as well. I would qualify the information in Andrei's book as
optional. It's quite possible to write high quality
applications, in C++, without it; you may even have to, if the
place you work uses an older compiler. On the other hand, I
don't know of any place other than Andrei's book to get this
information. In that sense, his book is vital.
--
James Kanze GABI Software
Conseils en informatique orient�e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S�mard, 78210 St.-Cyr-l'�cole, France, +33 (0)1 30 23 00 34
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
kanze
|
5/19/2005 1:50:21 PM
|
|
also sprach Andy Turner <andyturner74@yahoo.com> [2005.05.19.1112 +0200]:
> If you have no knowledge of patterns then you will most likely find the
> GoF book hard to read.
This is what I did and even though it wasn't easy, I appreciated
every bit of it. But I am also the person that learnt C++ from
Stroustrup's book and nothing else, and a little masochistic on the
side.
--
martin; (greetings from the heart of the sun.)
\____ echo mailto: !#^."<*>"|tr "<*> mailto:" net@madduck
invalid/expired pgp subkeys? use subkeys.pgp.net as keyserver!
spamtraps: comp.lang.cpp.modderated.bogus@usenet.madduck.net
madduck.bogus@madduck.net madduck.bogus@debian.org
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
martin
|
5/20/2005 10:22:42 AM
|
|
-- Aerodyne wrote:
> the GoF book "Design patterns" should be comming with a
> 2nd edition soon
Where did you read that? According to an article from this January
(http://www.devx.com/DevX/Article/26755/0), "no plans are in the works
for another edition as of yet."
Cheers!
M
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
mlimber
|
5/21/2005 12:13:22 PM
|
|
martin f krafft <comp.lang.cpp.moderated@usenet.madduck.net> writes:
[snip]
> This is what I did and even though it wasn't easy, I appreciated
> every bit of it. But I am also the person that learnt C++ from
> Stroustrup's book and nothing else, and a little masochistic on the
> side.
[snip]
IMO, prior to to the Koenig & Moo book, Stroustrup's was by far the
easiest way to learn C++ .
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Llewelly
|
5/22/2005 9:02:06 AM
|
|
also sprach Llewelly <llewelly.at@xmission.dot.com> [2005.05.22.1102 +0200]:
> > This is what I did and even though it wasn't easy, I appreciated
> > every bit of it. But I am also the person that learnt C++ from
> > Stroustrup's book and nothing else, and a little masochistic on the
> > side.
>
> IMO, prior to to the Koenig & Moo book, Stroustrup's was by far the
> easiest way to learn C++ .
Damn, and I felt proud of doing it the "hard way". You know, like
the rough guys from back then when men were still men...
--
martin; (greetings from the heart of the sun.)
\____ echo mailto: !#^."<*>"|tr "<*> mailto:" net@madduck
invalid/expired pgp subkeys? use subkeys.pgp.net as keyserver!
spamtraps: comp.lang.cpp.modderated.bogus@usenet.madduck.net
madduck.bogus@madduck.net madduck.bogus@debian.org
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
martin
|
5/22/2005 4:55:54 PM
|
|
Llewelly wrote:
> martin f krafft <comp.lang.cpp.moderated@usenet.madduck.net> writes:
> [snip]
>>This is what I did and even though it wasn't easy, I
>>appreciated every bit of it. But I am also the person that
>>learnt C++ from Stroustrup's book and nothing else, and a
>>little masochistic on the side.
> [snip]
> IMO, prior to to the Koenig & Moo book, Stroustrup's was by far the
> easiest way to learn C++ .
I suspect that it depends on your background. I learned C++
from Stroustrup (the first edition), but I came to the language
with almost 20 years experience, and a very strong background in
C. Less experienced collegues reported finding it difficult,
and preferring Lipmann. I obviously can't judge. For me, the
Stroustrup felt right. But independantly of the level,
different people react best to different approaches, and a book
that is perfect for one might be totally desasterous for someone
else. (At least at the introductory level; I suspect that it is
less true the more advanced the level.)
--
James Kanze mailto: james.kanze@free.fr
Conseils en informatique orient�e objet/
Beratung in objektorientierter Datenverarbeitung
9 pl. Pierre S�mard, 78210 St.-Cyr-l'�cole, France +33 (0)1 30 23 00 34
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
James
|
5/23/2005 1:12:06 AM
|
|
In article <867jhshvxq.fsf@zorthluthik.foo.bar>, Llewelly
<llewelly.at@xmission.dot.com> writes
>IMO, prior to to the Koenig & Moo book, Stroustrup's was by far the
> easiest way to learn C++ .
I would say that it was one of the few correct books on C++ but hardly
easy. And what about 'The C Primer' by Stan Lippman?
--
Francis Glassborow ACCU
Author of 'You Can Do It!' see http://www.spellen.org/youcandoit
For project ideas and contributions: http://www.spellen.org/youcandoit/projects
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Francis
|
5/23/2005 1:19:59 AM
|
|
James Kanze wrote:
> > IMO, prior to to the Koenig & Moo book, Stroustrup's was by far the
> > easiest way to learn C++ .
>
> I suspect that it depends on your background. I learned C++
> from Stroustrup (the first edition), but I came to the language
> with almost 20 years experience, and a very strong background in
> C. Less experienced collegues reported finding it difficult,
> and preferring Lipmann. I obviously can't judge. For me, the
> Stroustrup felt right. But independantly of the level,
> different people react best to different approaches, and a book
> that is perfect for one might be totally desasterous for someone
> else. (At least at the introductory level; I suspect that it is
> less true the more advanced the level.)
>
IMHO the key point is whether you're going to understand or memorize.
(See "The Programmers' Stone" http://www.reciprocality.org/Reciprocality/r0/
to read about "mappers" and "packers" respectively).
--
With all respect, Sergey. http://ders.angen.net/
mailto : ders at skeptik.net
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
0
|
|
|
|
Reply
|
Sergey
|
5/23/2005 5:05:11 PM
|
|
|
34 Replies
84 Views
(page loaded in 0.414 seconds)
Similiar Articles: Quad Bilateral Switch (4066) replacement? - comp.sys.cbm ...... with you guys first if anyone has used a more "modern ... has been around for ages, was part of original design, is ... pdfserv.maxim-ic.com/en/ds/MAX4610-MAX4612.pdf >> >>Or ... FAQ -- assembly-language/x86/general/part1 - comp.lang.asm.x86 ...Although programmers tend to use C, C++ or Pascal ... 1997 ) http://download.intel.com/design ... > This is still available on modern hardware (or via emulation ... OOPS in matlab - comp.soft-sys.matlabOOP is not for small "use once or twice and forget" programs. Many user ... Matlab is dynamic and most texts on Design Patterns (e.g GOF) target compiled languages. References for FPGA implementation of OS-CFAR - comp.arch.fpga ...Design and Implementation of a CFAR Processor for Target ... time.ntp But if a user is really running Mills NTP or ... rate(OS-CFAR) processing is an important method in modern ... RCGA (Real Code Genetic Algorithm) - comp.soft-sys.matlab ...IIR filter design - comp.dsp... but it takes a real man to ... Any helpful code, links, or suggestions would be ... ... Code ... 12th Edition, Freund, Perles, Test Bank Modern ... A couple of CPLD design challenges for the group - comp.arch.fpga ...... post is to try to get a discussion going on various design ... (External SRAMs or EPROMs for example?) What kind of ... CascadeOut TotPT SO MC1 4 on HourL0 C ... Non Intel & AMD Arch - comp.lang.asm.x86... you claim which is the most popular -- Intel & AMD, PowerPC, or other processors? Most modern ... Why do Intel decide to design IA64 that uses RISC instead of CISC. It ... Updated List 2011. Solutions Manuals, Instructor Manuals & Test ...... dot)com ) You can contact us directly at REQUEST(at)TESTBANK(dot)NET Or ... Defense, 2nd Edition, Simpson.Backman.Corley, Test Bank History of Modern Design, 2nd ... Access 2010 Backstage and the Custom Ribbon - comp.databases.ms ...Actually, I think you're missing the point of backstage, the design view = or=20 ... with the VERY MANY=20 maintenance tasks and OPTIONS we now have in modern ... code speed moving from fortran 77 compiler to f2003 compiler ...The problem with converting to C/C++: If the program is badly written (with regards to modern software design) a simple ... that don't do much I/O, the conversion to C or ... Automatically resize font when component size changes? - comp.lang ...... essentially a digital clock, but I want the user and/or ... was that I'm trying to make this reusable so on a modern ... Bent C Dalager wrote: > In article <1174393441.687014 ... Uninitialized variables, why do they equal their name? - comp.lang ...IIRC just a design decision... Someone, maybe even Mike C., will be along with TRL ... No modern language works this way because ... I mean, in C or Perl, uninitialized ... sign extension in verilog - comp.lang.verilogOr use a signed right expression and the tools should take ... as a HDL: http://www.myhdl.org VHDL development, the modern way: http://www.sigasi.com Analog design ... SOLUTIONS MANUAL FOR Introduction to Elementary Particles 2nd Ed ...SOLUTIONS MANUAL FOR Fundamentals of Modern ... Histand SOLUTIONS MANUAL FOR Introduction to Operations Research ... and Air Conditioning Analysis a= nd Design, 6th ... Compiler for 16bit architecture - comp.compilers.lccOf course, I might be wrong or you might want to ... targets (e.g. all existing lcc backends and modern ... suggested by Fraser & Hanson ("A Retargetable C Compiler: Design ... GOF - Wikipedia, the free encyclopediaThe acronym GOF may refer to: Gang of Four (disambiguation), a generic title with several meanings General Operations Forces, a branch of the Malaysian police ... Software design pattern - Wikipedia, the free encyclopedia... format is the one used by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides (collectively known as the "Gang of Four", or GoF for short) in their book Design ... 7/28/2012 4:11:04 AM
|