By: JasonB (no.delete@this.spam.com), March 10, 2008 6:35 am
Room: Moderated Discussions
Michael S (already5chosen@yahoo.com) on 3/10/08 wrote:
---------------------------
>Violently disagreed. Static polymorphisms is evil. More here: http://groups.google.com/group/comp.std.c++/browse_frm/thread/52128201a14517df/7eca715a6200b04d#7eca715a6200b04d
>I was handed a good beating :(
I think you deserved it. :-)
1. I hate encoding type information in names. I never call you "Person Michael", I don't want to have to do the same thing for my functions, either. If I want to give OpenGL a vertex, then I should only have to declare the type I want to use for my vertices once, not every single time I submit one.
2. I see operator overloading as critical. Without it, user-defined classes are second-class citizens of the language and can never be substituted for/added to the built-in types as if they were one. The only way to get a type you want to be a first-class citizen is to plead with the language maintainers, and they have to satisfy multiple, conflicting desires.
3. References are good. I always use them for parameters unless it is allowed to be NULL, and I normally use them for variables unless the variable is allowed to point to different objects at different times. It makes the code self-documenting. (It isn't really any shorter to type, because VisualAssist automatically converts a '.' to a '->' if it is appropriate, so you I just type '.' all the time anyway.)
>>None of that requires the use of OO to be of benefit, and most of it doesn't create unexpected code.
>
>Wishful thinking.
Most of it doesn't. (Well, none of it does if you know the language well enough because you know what to expect, but even for a C programmer who expects it to behave like C, most of it is pretty safe. Even stuff like templates won't contain any more code than is necessary to implement to type-specific stuff on a good compiler (i.e. small stuff will be inlined depending on optimisation settings, larger stuff will be out-of-line and all but one copy eliminated by the linker). Even iostreams is pretty good these days, although in the case of iostreams, it's relative.)
---------------------------
>Violently disagreed. Static polymorphisms is evil. More here: http://groups.google.com/group/comp.std.c++/browse_frm/thread/52128201a14517df/7eca715a6200b04d#7eca715a6200b04d
>I was handed a good beating :(
I think you deserved it. :-)
1. I hate encoding type information in names. I never call you "Person Michael", I don't want to have to do the same thing for my functions, either. If I want to give OpenGL a vertex, then I should only have to declare the type I want to use for my vertices once, not every single time I submit one.
2. I see operator overloading as critical. Without it, user-defined classes are second-class citizens of the language and can never be substituted for/added to the built-in types as if they were one. The only way to get a type you want to be a first-class citizen is to plead with the language maintainers, and they have to satisfy multiple, conflicting desires.
3. References are good. I always use them for parameters unless it is allowed to be NULL, and I normally use them for variables unless the variable is allowed to point to different objects at different times. It makes the code self-documenting. (It isn't really any shorter to type, because VisualAssist automatically converts a '.' to a '->' if it is appropriate, so you I just type '.' all the time anyway.)
>>None of that requires the use of OO to be of benefit, and most of it doesn't create unexpected code.
>
>Wishful thinking.
Most of it doesn't. (Well, none of it does if you know the language well enough because you know what to expect, but even for a C programmer who expects it to behave like C, most of it is pretty safe. Even stuff like templates won't contain any more code than is necessary to implement to type-specific stuff on a good compiler (i.e. small stuff will be inlined depending on optimisation settings, larger stuff will be out-of-line and all but one copy eliminated by the linker). Even iostreams is pretty good these days, although in the case of iostreams, it's relative.)
Topic | Posted By | Date |
---|---|---|
Multicore is unlikely to be the ideal answer. | Anders Jensen | 2008/02/14 04:24 AM |
And the links.. | Anders Jensen | 2008/02/14 04:25 AM |
Disappointing.. | Linus Torvalds | 2008/02/14 10:17 AM |
Disappointing.. | Mark Roulo | 2008/02/14 11:03 AM |
LOL (NT) | Linus Torvalds | 2008/02/14 05:43 PM |
Disappointing.. | David Patterson | 2008/02/15 11:53 AM |
Disappointing.. | Linus Torvalds | 2008/02/15 05:01 PM |
Disappointing.. | anon | 2008/02/15 08:54 PM |
Disappointing.. | JasonB | 2008/02/19 07:45 PM |
Disappointing.. | Ilya Lipovsky | 2008/02/22 06:27 PM |
Disappointing.. | Scott Bolt | 2008/03/16 11:36 AM |
Need for new programming languages | Vincent Diepeveen | 2008/02/19 06:18 AM |
Need for new programming languages | Pete Wilson | 2008/02/24 11:41 AM |
Disappointing.. | Zan | 2008/02/25 10:52 PM |
Disappointing.. | Robert Myers | 2008/02/19 09:47 PM |
Disappointing.. | Fred Bosick | 2008/02/22 06:38 PM |
Disappointing.. | Robert Myers | 2008/03/01 01:17 PM |
The limits of single CPU speed are here. | John Nagle | 2008/03/14 10:55 AM |
The limits of single CPU speed are here. | Howard Chu | 2008/03/15 01:02 AM |
The limits of single CPU speed are here. | slacker | 2008/03/15 08:08 AM |
The limits of single CPU speed are here. | Howard Chu | 2008/03/17 01:47 AM |
The limits of single CPU speed are here. | slacker | 2008/03/17 10:04 AM |
And the links.. | Howard Chu | 2008/02/14 12:58 PM |
I take some of that back | Howard Chu | 2008/02/14 01:55 PM |
And the links.. | Jesper Frimann | 2008/02/14 02:02 PM |
And the links.. | Ilya Lipovsky | 2008/02/15 02:24 PM |
And the links.. | iz | 2008/02/17 10:55 AM |
And the links.. | JasonB | 2008/02/17 07:09 PM |
And the links.. | Ilya Lipovsky | 2008/02/18 01:54 PM |
And the links.. | JasonB | 2008/02/18 10:34 PM |
And the links.. | Thiago Kurovski | 2008/02/19 07:01 PM |
And the links.. | iz | 2008/02/20 10:36 AM |
And the links.. | Ilya Lipovsky | 2008/02/20 03:37 PM |
And the links.. | JasonB | 2008/02/20 06:28 PM |
And the links.. | JasonB | 2008/02/17 06:47 PM |
And the links.. | Ilya Lipovsky | 2008/02/18 02:27 PM |
And the links.. | JasonB | 2008/02/18 10:00 PM |
And the links.. | JasonB | 2008/02/19 03:14 AM |
And the links.. | Ilya Lipovsky | 2008/02/20 04:29 PM |
And the links.. | JasonB | 2008/02/20 06:14 PM |
And the links.. | Ilya Lipovsky | 2008/02/21 11:07 AM |
And the links.. | Howard Chu | 2008/02/14 01:16 PM |
And the links.. | Jukka Larja | 2008/02/15 03:00 AM |
Berkeley View on Parallelism | David Kanter | 2008/02/15 11:41 AM |
Berkeley View on Parallelism | Howard Chu | 2008/02/15 12:49 PM |
Berkeley View on Parallelism | David Kanter | 2008/02/15 03:48 PM |
Berkeley View on Parallelism | Howard Chu | 2008/02/17 05:42 PM |
Berkeley View on Parallelism | nick | 2008/02/17 09:15 PM |
Berkeley View on Parallelism | Howard Chu | 2008/02/18 04:23 PM |
Berkeley View on Parallelism | nick | 2008/02/18 10:03 PM |
Berkeley View on Parallelism | Howard Chu | 2008/02/19 01:39 AM |
Berkeley View on Parallelism | rcf | 2008/02/19 12:44 PM |
Berkeley View on Parallelism | Howard Chu | 2008/02/19 03:25 PM |
Average programmers | anon | 2008/02/18 12:40 PM |
Berkeley View on Parallelism | JasonB | 2008/02/15 08:02 PM |
Berkeley View on Parallelism | JasonB | 2008/02/15 08:02 PM |
Berkeley View on Parallelism | Dean Kent | 2008/02/15 08:07 PM |
Berkeley View on Parallelism | Ray | 2008/02/20 03:20 PM |
Berkeley View on Parallelism | JasonB | 2008/02/20 06:11 PM |
Berkeley View on Parallelism | FritzR | 2008/02/24 03:08 PM |
rubyinline, etc. | nordsieck | 2008/02/22 03:38 PM |
rubyinline, etc. | JasonB | 2008/02/23 05:53 AM |
rubyinline, etc. | nordsieck | 2008/03/02 01:40 AM |
rubyinline, etc. | Michael S | 2008/03/02 02:49 AM |
rubyinline, etc. | Dean Kent | 2008/03/02 07:41 AM |
rubyinline, etc. | Michael S | 2008/03/02 08:19 AM |
rubyinline, etc. | Dean Kent | 2008/03/02 08:30 AM |
rubyinline, etc. | JasonB | 2008/03/02 05:26 PM |
rubyinline, etc. | JasonB | 2008/03/02 06:01 PM |
rubyinline, etc. | Anonymous | 2008/03/03 02:11 AM |
rubyinline, etc. | JasonB | 2008/03/03 09:40 AM |
rubyinline, etc. | Foo_ | 2008/03/09 09:59 AM |
rubyinline, etc. | JasonB | 2008/03/10 01:12 AM |
rubyinline, etc. | Gabriele Svelto | 2008/03/10 02:22 AM |
rubyinline, etc. | JasonB | 2008/03/10 04:35 AM |
C++ for beginners | Michael S | 2008/03/10 05:16 AM |
C++ for beginners | JasonB | 2008/03/10 06:35 AM |
C++ | Michael S | 2008/03/10 04:55 AM |
rubyinline, etc. | Linus Torvalds | 2008/03/03 11:35 AM |
rubyinline, etc. | Dean Kent | 2008/03/03 02:35 PM |
rubyinline, etc. | JasonB | 2008/03/03 03:57 PM |
rubyinline, etc. | Dean Kent | 2008/03/03 08:10 PM |
rubyinline, etc. | Michael S | 2008/03/04 01:53 AM |
rubyinline, etc. | Dean Kent | 2008/03/04 07:51 AM |
rubyinline, etc. | Michael S | 2008/03/04 08:29 AM |
rubyinline, etc. | Dean Kent | 2008/03/04 08:53 AM |
rubyinline, etc. | Michael S | 2008/03/04 11:20 AM |
rubyinline, etc. | Dean Kent | 2008/03/04 02:13 PM |
read it. thanks (NT) | Michael S | 2008/03/04 04:31 PM |
efficient HLL's | Patrik Hägglund | 2008/03/04 03:34 PM |
efficient HLL's | Wes Felter | 2008/03/04 09:33 PM |
efficient HLL's | Patrik Hägglund | 2008/03/05 01:23 AM |
efficient HLL's | Michael S | 2008/03/05 02:45 AM |
efficient HLL's | Wilco | 2008/03/05 05:34 PM |
efficient HLL's | Howard Chu | 2008/03/05 07:11 PM |
efficient HLL's | Wilco | 2008/03/06 02:27 PM |
efficient HLL's | anon | 2008/03/05 08:20 AM |
And the links.. | Groo | 2008/02/17 04:28 PM |
And the links.. | Vincent Diepeveen | 2008/02/18 02:33 AM |