From: Ian Collins on 23 Jul 2010 18:43 On 07/24/10 10:36 AM, Francis Glassborow wrote: > neil wrote: >> I'm learning c++. I own a book by Meyer called 'object oriented software >> construction' which is language independent. >> I have a long way to go before I can claim to have a good basic grasp of >> c++ and was wondering if attempting to read a book like Meyers would >> help. >> Do you folks think I should hold off reading stuff like this? Or would >> it help me to learn oo programming in c++? > > Unlike the other respondents, I do know the book and what it is about. I > would strongly suggest that you leave it on the shelf until you have a > good grasp of C++. > > For those that do not recognise it, the book is by Bertrand Meyer (the > creator of Eiffel) and though it is about the general principles of OOSC > it will IMO act as a distraction until you have a firm grasp of the > language(s) you are going to develop in. I see. Does your comment apply specifically to that book, or learning OO in general? I found C++ much easier to grasp having gained an understanding of the principles from using an OO cased GUI platform in C. I have coached a number of experienced C programmers into C++ and those who don't have OO experience find the transition much harder than those who do. -- Ian Collins
From: Rui Maciel on 23 Jul 2010 19:21 Ian Collins wrote: > Which is the chicken and which the egg? > > It's interesting that posted the exact opposite with the same logic! > > OO is a concept, the language is a detail. The language is a means to express these sort of concepts. If it isn't possible to implement the concepts then the learning curve will be steeper. Adding to that, the concepts which will be understood will be disassociated from the programming practice, which quite possibly has the nasty implication of being necessary to re-learn them. Rui Maciel
From: Francis Glassborow on 23 Jul 2010 19:48 Ian Collins wrote: > On 07/24/10 10:36 AM, Francis Glassborow wrote: >> neil wrote: >>> I'm learning c++. I own a book by Meyer called 'object oriented software >>> construction' which is language independent. >>> I have a long way to go before I can claim to have a good basic grasp of >>> c++ and was wondering if attempting to read a book like Meyers would >>> help. >>> Do you folks think I should hold off reading stuff like this? Or would >>> it help me to learn oo programming in c++? >> >> Unlike the other respondents, I do know the book and what it is about. I >> would strongly suggest that you leave it on the shelf until you have a >> good grasp of C++. >> >> For those that do not recognise it, the book is by Bertrand Meyer (the >> creator of Eiffel) and though it is about the general principles of OOSC >> it will IMO act as a distraction until you have a firm grasp of the >> language(s) you are going to develop in. > > I see. Does your comment apply specifically to that book, or learning > OO in general? This is a massive (1250+pp) text which expects the reader to be a pretty competent programmer. In addition, though he avoids references to Eiffel he has a very distinctive view of OO (as manifested by the design of Eiffel) > > I found C++ much easier to grasp having gained an understanding of the > principles from using an OO cased GUI platform in C. I have coached a > number of experienced C programmers into C++ and those who don't have OO > experience find the transition much harder than those who do. But the major error is in thinking that C++ is an OOP, it isn't it is a language that provides support for OO along with a considerable number of other programming 'paradigms'. This maybe because of your own view of C++ as an OOP. For example, those that do not have experience of a functional language may find template metaprogramming hard to grasp. Those who have no experience of a procedural language such as C might find top level C++ programming hard to grasp (as well as bottom level). Those whose view of OO is based on Smalltalk might find C++ static binding a pain etc. I will however stick with the advice that reading OOSC is not for the faint-hearted and requires a good deal of programming expertise. This is an advanced text, not a basic intro.
From: Ian Collins on 23 Jul 2010 20:01 On 07/24/10 11:48 AM, Francis Glassborow wrote: > Ian Collins wrote: >> >> I found C++ much easier to grasp having gained an understanding of the >> principles from using an OO cased GUI platform in C. I have coached a >> number of experienced C programmers into C++ and those who don't have >> OO experience find the transition much harder than those who do. > But the major error is in thinking that C++ is an OOP, it isn't it is a > language that provides support for OO along with a considerable number > of other programming 'paradigms'. > > This maybe because of your own view of C++ as an OOP. That is most definitely not my view of C++. I fully embrace the "multi-paradigm" nature of the language. I even use this in my approach to training people to use it. I adopt differing strategies when teaching say a Java programmer or a C programmer C++. I start out teaching the aspects of the language they are familiar with. I guess I'd have to start with meta-programming if I had to train a Haskell programmer! > For example, those > that do not have experience of a functional language may find template > metaprogramming hard to grasp. Those such as me! I found meta-programming difficult until I'd explored and understood the necessary concepts. If I'd already studied functional languages, it would have been less of a chore. > Those who have no experience of a > procedural language such as C might find top level C++ programming hard > to grasp (as well as bottom level). Those whose view of OO is based on > Smalltalk might find C++ static binding a pain etc. I think that strengthens my point, to more programming paradigms a student is familiar with, the better they will understand and be able to fully utilise the power of C++. -- Ian Collins
From: Stuart Golodetz on 24 Jul 2010 05:37 Ian Collins wrote: > On 07/24/10 11:48 AM, Francis Glassborow wrote: >> Ian Collins wrote: >>> >>> I found C++ much easier to grasp having gained an understanding of the >>> principles from using an OO cased GUI platform in C. I have coached a >>> number of experienced C programmers into C++ and those who don't have >>> OO experience find the transition much harder than those who do. > >> But the major error is in thinking that C++ is an OOP, it isn't it is a >> language that provides support for OO along with a considerable number >> of other programming 'paradigms'. >> >> This maybe because of your own view of C++ as an OOP. > > That is most definitely not my view of C++. > > I fully embrace the "multi-paradigm" nature of the language. I even use > this in my approach to training people to use it. I adopt differing > strategies when teaching say a Java programmer or a C programmer C++. I > start out teaching the aspects of the language they are familiar with. I > guess I'd have to start with meta-programming if I had to train a > Haskell programmer! > >> For example, those >> that do not have experience of a functional language may find template >> metaprogramming hard to grasp. > > Those such as me! I found meta-programming difficult until I'd explored > and understood the necessary concepts. If I'd already studied > functional languages, it would have been less of a chore. > >> Those who have no experience of a >> procedural language such as C might find top level C++ programming hard >> to grasp (as well as bottom level). Those whose view of OO is based on >> Smalltalk might find C++ static binding a pain etc. > > I think that strengthens my point, to more programming paradigms a > student is familiar with, the better they will understand and be able to > fully utilise the power of C++. Whilst understanding multiple programming paradigms is evidently "a good thing" (tm), and should be encouraged, that doesn't necessarily mean that one is best advised to initially learn object-oriented programming from an advanced book like OOSC. Like Francis, I've come across the book (i.e. got a copy on my shelf), and it's not simple - the front cover describes it as the author's "tour de force" for a reason IMHO :) Cheers, Stu
First
|
Prev
|
Next
|
Last
Pages: 1 2 3 Prev: calling a function within another function Next: Off topic: Anyone tried Unixlite? |