47,364 reputation
8126209
bio website tech.turbu-rpg.com
location Seattle, WA
age 32
visits member for 4 years, 3 months
seen 12 hours ago
A lifelong programmer who's been coding in Delphi since its initial release and currently makes a living at it.

20h
comment Where did the three tenets of OOP originate
@JörgWMittag: I certainly wouldn't call either language a success. JS rode HTML's coattails to prominence by being the only game in town, but developers with experience in other languages almost universally hate it. Just look how popular alternative languages that compile down to JavaScript are becoming! And Ruby was popular for a while, but these days it really feels like a fad whose time has come and gone, as people start to (re-)discover the problems inherent in message-passing OOP.
1d
awarded  Notable Question
1d
answered Where did the three tenets of OOP originate
Dec
18
answered Most efficient/cleanest way to Kill a recursive thread safely
Dec
12
awarded  Enlightened
Dec
12
awarded  Nice Answer
Dec
12
comment Modern OOP vs Alan Kays OOP
@Doval: That is a bizarre article, and the author has an extremely poor concept of object-oriented programming. What he calls "Abstract data types" are, in fact, objects and classes, except that he seems ignorant of the existence of interface types that solve the "inherent" problems in the ADT system he describes. And what he calls "objects" are not OOP at all, but appear to be some bizarre system based on lambda calculus and functional programming. If anyone's using this as the foundation of a criticism of OOP, no wonder they get confused! o_0
Dec
12
comment Isn't there a chicken-and-egg issue since GCC is written in C++ itself?
@MichaelT: But an earlier version of GCC can be built with a C compiler, which can then compile later versions written in C++, which is what I said.
Dec
12
answered Isn't there a chicken-and-egg issue since GCC is written in C++ itself?
Dec
12
comment Modern OOP vs Alan Kays OOP
@Doval: Where? I haven't heard anyone asking "why use OOP when we could just use procedural programming" since the turn of the century. In many ways, OOP is procedural programming; the fundamental flow of control is exactly the same, except for virtual method dispatch, which is only slightly more complicated. I've heard plenty of people ask "why use OOP over functional programming?" but that's a very, very different question!
Dec
12
comment Modern OOP vs Alan Kays OOP
@Doval: Sure, there are plenty of languages better than Java, but that's because the Java language itself is pretty mediocre; not because there are serious problems with the underlying OOP concepts. (Surely any developer understands the distinction between a bad idea and a poor implementation of a fundamentally good idea!)
Dec
12
comment Modern OOP vs Alan Kays OOP
@Doval: Poor workmen blame their tools. If you have two classes that are identical in every way except their name, then your problem isn't that your language won't let you use them interchangeably; it's that you have two classes that are identical in every way except their name.
Dec
12
comment Modern OOP vs Alan Kays OOP
@Doval: Assuming you accept the validity of the Blub Paradox. Given that the concept comes from a developer with a strong bias for a failed language, who has never had any problem with stretching the truth well beyond the breaking point in order to support his cause, his self-serving, condescending ideas about developers who use other languages and their incapability to understand why they're wrong should be taken with a grain of salt, if not the entire shaker!
Dec
12
answered Modern OOP vs Alan Kays OOP
Dec
12
awarded  Epic
Dec
9
comment Why isn't software abstract on a grander scale?
@Rawing: The closer programming languages are to natural language, the easier that is, no? NO! Natural language programming languages have been tried before and never really caught on, because they don't work well. It's a very different domain: natural languages are understood intuitively, whereas programming languages are understood formally, with strictly-defined semantics that seek to eliminate ambiguity. This is very important: before you can reason about what your program does, you first need a clear and unambiguous model of its semantics, which you can't do in natural language.
Dec
9
answered Why isn't software abstract on a grander scale?
Dec
8
comment What functionality does dynamic typing allow?
A Python 2 static type checker would reject the Python 3 code (and vice versa), even though it would never be executed. My type safe program contains a static type error. In any reasonable static language, you can do this with an IFDEF type preprocessor statement, while maintaining type safety in both cases.
Dec
5
comment A defense for boilerplate?
@Giorgio: On the contrary, it's much more than just my opinion; it's the opinion of the vast majority of people who have ever tried to study it. And when "difficult to read" is inherently a matter of opinion in the first place, the fact that that opinion is so widely shared pretty much makes it a fact.
Dec
3
answered Creating a sort of 'in-language compiler'