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

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
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
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
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.
Nov
20
comment type infered statically typed languages?
@CharlesDuffy: It's slow going at the moment, but there's currently an active effort under way to bring it up to a 1.0 release.
Nov
20
comment type infered statically typed languages?
@MichaelKohne: The C language is full of undefined behavior. For one rather egregious example specifically related to the type system, what does the following function prototype mean: void foo(int* bar);? Is the parameter supposed to be an array of ints, or a pointer to a single int (because C doesn't support pass-by-reference so it has to be faked by using this idiom)? And what happens if it's expecting an array but you pass it a pointer to a single int?
Nov
15
comment In Ruby, change global in thread safe block
If something is global and mutable, it can be changed from anywhere at any time, and therefore is not threadsafe, by definition.
Nov
10
comment Is it imaginable to teach a machine how to program itself to a defined specification?
@RobY: Why isn't logging a business function? Knowing what your program's been doing is an important part of the business, one way or another, in a lot of problem domains. At my last job we had a lot of important functionality dedicated to producing a reliable audit trail of all transactions, and that's basically the same thing as logging.
Nov
9
comment Who is to blame for this range based for over a reference to temporary?
Who is to blame for this? Bjarne Stroustrup and Dennis Ritchie, first and foremost.
Oct
31
comment What is the actual reason that locks (sentinels) in OO are hard to reason about?
Exactly what @Snowman said. Rich Hickey is notorious for assuming self-serving but false premises that lead to conclusions that make Clojure look good. STM is very difficult to reason about, especially when you get into non-trivial cases like nested transactions.
Sep
18
comment Protecting application against piracy
@jwenting: First, if you're going to make an assertion that directly contradicts statistical evidence, you're going to need some bigger evidence to back it up. Second, using the S word in the context of piracy completely destroys the credibility of your argument. Theft requires loss, which copying, legal or illegal, does not cause.
Sep
18
comment Protecting application against piracy
@jwenting: There is a small percentage of people who'll do that; the vast majority of people are generally honest. Unfortunately, a small percentage of a few billion people is still a rather large number.
Sep
16
comment Reasons NOT to open source not-for-profit code?
Kerckhoff's Principle says that any serious discussion of security must begin with the assumption that "the adversary knows the system" already, and therefore opening the source cannot possibly make it worse. This may not necessarily be true, but it's a far better starting point than assuming that you're secure because the adversary is too dumb to find vulnerabilities without looking at the code.
Sep
14
comment Is it possible to create an arch that allows for an app to be downloaded and installed at the same time?
Sounds like Steam to me...
Aug
27
comment Why does the .NET framework have no concept of classes as first-class types?
@Bobson: Care to join me in chat?