IWETHEY v. 0.3.0 | TODO
1,095 registered users | 1 active user | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Re: Stroustrup remains delusional about his evil little crea
Maybe this interview with Alex Stepanov will help you dislike C++ a lil less [link|http://www.stlport.org/resources/StepanovUSA.html|]

New Not really
Or at least not based on that article. Stepanov advocates algorithms, which is good if you're writing an ultra-performant program to do a specific task. But most programmers now have to do multi-task and ultra-complexity programs. That shopping cart web page is I/O bound anyway and has to handle ever-changing CRM profiling, page style, auditing regulations and tax calculations. Their requirements change independently. I don't need a generic algorithm, I need frameworks, micro-architectures, analysis patterns and design patterns. So, this results in poor performance. CPU time is cheaper than programmer time.

So, languages like Java can't do
template <class StrictWeakOrdered>\ninline StrictWeakOrdered& max(StrictWeakOrdered& x,\nStrictWeakOrdered& y) {\nreturn x < y ? y : x;\n}


Just use the Comparable interface, typecast and use instanceof as needed. That's your 'covariant signature transformation and an ability to obtain types from types'. It's ugly but I'm not going to cry because of that.

Now, if I was writing games, all this would be the wrong approach and Java, OO, layered architecture, design patterns and all the rest would be jettisoned and C++ would be in from the cold. But that's too specialist for me.

I don't need a language with cleverness but third-party libraries with conflicting, garbage collection schemes. That gets in the way of the architectures and algorithms I need to devise.
Matthew Greet


But we must kill them. We must incinerate them. Pig after pig, cow after cow, village after village, army after army. And they call me an assassin. What do you call it when the assassins accuse the assassin? They lie. They lie and we must be merciful to those who lie.
- Colonol Kurtz, Apocalypse Now.
New Generics are a pain in the rear
Collections that deal with objects are much more easy to deal with in my opinion.

And personally, I'd use ObjectiveC over C++ for games.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Oh, I dislike Stepanov plenty as well
Because he doesn't "get" OO either.

He thinks generic programming using templates is somehow special and doesn't understand that templates are a hack that allows what real OO languages already have naturally - duck typing (if it quacks, its a duck).

Here's what he says:


Question:
This mean a radical change of mind from both imperative and OO thinking. What are the benefits, and the drawbacks, of this paradigm compared to the "standard" OO programming of SmallTalk or, say, Java?

Answer:
My approach works, theirs does not work. Try to implement a simple thing in the object oriented way, say, max. I do not know how it can be done. Using generic programming I can write:
template <class StrictWeakOrdered>
inline StrictWeakOrdered& max(StrictWeakOrdered& x,
StrictWeakOrdered& y) {
return x < y ? y : x;
}

and
template <class StrictWeakOrdered>
inline const StrictWeakOrdered& max(const StrictWeakOrdered& x,
const StrictWeakOrdered& y) {
return x < y ? y : x;
}

(you do need both & and const &). And then I define what strict weak ordered means. Try doing it in Java. You can't write a generic max() in Java that takes two arguments of some type and has a return value of that same type. Inheritance and interfaces don't help. And if they cannot implement max or swap or linear search, what chances do they have to implement really complex stuff? These are my litmus tests: if a language allows me to implement max and swap and linear search generically - then it has some potential.


Notice he doesn't discuss a Smalltalk implementation - because he doesn't have a clue what Smalltalk is.

C++ made a fundamental mistake of tying protocol to inheritance hierarchy. Java copied this error.

Stepanov cares about representation of algorithms that allow the algorithms to act on arbitrary data structures regardless of type - as long as they respond to a protocol. That's dynamic typing. He doesn't know that because he thinks C++ is OO. Its not. Neither is Java. OO is dynamically typed. Ask Alan Kay. He made up the word and he made it up to describe Smalltalk. Smalltalk is OO. Anything not like Smalltalk is not OO. CLOS is OO, Python is OO, Ruby is most OO, C++ and Java are not.



"Whenever you find you are on the side of the majority, it is time to pause and reflect"   --Mark Twain

"The significant problems we face cannot be solved at the same level of thinking we were at when we created them."   --Albert Einstein

"This is still a dangerous world. It's a world of madmen and uncertainty and potential mental losses."   --George W. Bush
New Just so you know
under your definition, object rexx is also OO; completely dynamically typed... sort of. It's just that Everything Is A String, so there's never any confusion:P
--\n-------------------------------------------------------------------\n* Jack Troughton                            jake at consultron.ca *\n* [link|http://consultron.ca|http://consultron.ca]                   [link|irc://irc.ecomstation.ca|irc://irc.ecomstation.ca] *\n* Kingston Ontario Canada               [link|news://news.consultron.ca|news://news.consultron.ca] *\n-------------------------------------------------------------------
New OK
Never tried it. I'll take your word for it.



"Whenever you find you are on the side of the majority, it is time to pause and reflect"   --Mark Twain

"The significant problems we face cannot be solved at the same level of thinking we were at when we created them."   --Albert Einstein

"This is still a dangerous world. It's a world of madmen and uncertainty and potential mental losses."   --George W. Bush
New It's good if you ever find yourself working on IBM stuff
I love rexx. It is really easy to program, and really easy to figure out what you were doing last year when you wrote 'that thing'.
--\n-------------------------------------------------------------------\n* Jack Troughton                            jake at consultron.ca *\n* [link|http://consultron.ca|http://consultron.ca]                   [link|irc://irc.ecomstation.ca|irc://irc.ecomstation.ca] *\n* Kingston Ontario Canada               [link|news://news.consultron.ca|news://news.consultron.ca] *\n-------------------------------------------------------------------
New Knowing Todd...
...I know that he has very much disdain to C++ Templates. From a Smalltalkers perspective, templates are just an attempt to capture dynamic message binding. [link|http://www.angelfire.com/tx4/cus/notes/smalltalk.html|Collections in Smalltalk] are infinitely easier to use than Templates in C++ - they are just objects that answer messages like everything else.

Personally, I like the idea of Parametric Genericity as strived for by C++ Templates, but I like them much better in ML and it's HM type inference. C++ Templates have some interesting properties from both a compile time and run time perspective, with some impressive libraries like Boost. But it's still complex to use them (just like everything else in C++). And no matter how you dress up C++, there's no subset of the language that can be used to provide type-safety.
New MOP! I.Love.It.
bcnu,
Mikem

Eine Leute. Eine Welt. Ein F\ufffdhrer.
God Bless America.
     Stroustrup remains delusional about his evil little creation - (tuberculosis) - (9)
         Re: Stroustrup remains delusional about his evil little crea - (systems) - (8)
             Not really - (warmachine) - (1)
                 Generics are a pain in the rear - (admin)
             Oh, I dislike Stepanov plenty as well - (tuberculosis) - (3)
                 Just so you know - (jake123) - (2)
                     OK - (tuberculosis) - (1)
                         It's good if you ever find yourself working on IBM stuff - (jake123)
             Knowing Todd... - (ChrisR)
             MOP! I.Love.It. -NT - (mmoffitt)

OK, I know most of those words...
77 ms