1,092 reputation
510
bio website gameprogrammingpatterns.com
location Seattle, WA
age 36
visits member for 4 years, 1 month
seen Sep 10 at 0:09

I'm a programmer at Google. Before that, I was a game programmer for Electronic Arts for eight years.


Dec
5
comment Authoritative sources for exception handling best practices
Thanks, @RossPatterson, I added your link to the answer. I couldn't find it online and actually got the quote from my print copy of the book.
Nov
13
comment So Singletons are bad, then what?
"Toolbox" looks pretty similar to "Service Locator" to me. Whether you use a static for it, or make it itself a singleton is, I think, not that important for most programs. I tend to lean towards statics because why deal with lazy initialization and heap allocation if you don't have to?
Jun
10
comment Are the criticisms against Dart valid?
@Hassan, Dart is harder to compile to JS because its semantics are quite different (especially compared to CoffeeScript, which is essentially local syntactic sugar for JS), but our expectation is that we will be able to compile Dart to JavaScript that is as small and fast as the hand-written JS you would have written to solve the same problem.
Feb
19
comment Backquoted symbols, good or bad?
@S.Lott can you point to a reference that all strings are interned in Python? All I see is that identifiers in programs and certain other "name-like" strings are.
Feb
10
comment Why doesn't the DART language use a special character to identify variables?
@DeadMG, it's actually pretty straightforward to make semicolons optional in a C-derived language. JS just has a particularly awful way of doing it.
Mar
18
comment What is the greatest design flaw you have faced in any programming language?
@bit-twiddler: You say LL parsers are just "fun" and LR parsers are more powerful, but the majority of the world's code is being parsed by "far less powerful" recursive descent parsers: GCC, LLVM, Microsoft's C# compiler, et. al.
Mar
18
comment What is the greatest design flaw you have faced in any programming language?
Dangling elses are more a fault of LALR parsers than with the language itself. There's no ambiguity in the language, and it's trivial to write a recursive descent parser than handles them correctly. Requiring curlies for all if statements would make chained else if statements hideous with no actual benefit to the user.
Mar
17
comment What benefits for the developer does the Ruby language offer that C# does not have?
You can do that in one line of C# too. Define an extension method Minutes() on int that returns a DateTime, then an extension method FromNow() on DateTime. That would let you do (3).Minutes().FromNow(). The () are kind of a drag, though. Unfortunately C# doesn't support extension properties, just methods.
Mar
10
comment What is the greatest design flaw you have faced in any programming language?
Well, in that case void basically is unit, but you're right that it works without any problems.
Mar
8
comment What is the greatest design flaw you have faced in any programming language?
@David: Yup. Ruby too.
Mar
8
comment What is the greatest design flaw you have faced in any programming language?
Correct. Expressions for everything.
Mar
1
comment First Class Functions
It's worth noting that for C#, they did not actually need to add VM support for closures. Since objects and closures are conceptually interchangeable, as long as you have one, you can use it to implement the other. In the case of C#, a closure will be translated by the compiler to an instance of an anonymous class.
Feb
11
comment Does this have a name? DRY overloading?
@Frank: Ah, you're exactly right. Somehow I managed to remember the terms all wrong. My mistake.
Feb
10
comment Does this have a name? DRY overloading?
@Frank: "ad-hoc polymorphism" describes overriding, not overloading. "ad-hoc" is used to disambiguate between type polymorphism (what people call "generics" in OOP languages) and overriding, not between overriding and overloading. Static overloading just isn't polymorphism at all.
Jan
27
comment So Singletons are bad, then what?
Done, but I still encourage you to read the whole chapter.
Jan
27
comment Why do some programmers hate the UI part of the development?
@Anna: I've tinkered with a couple of systems that could automatically position sets of controls. If you look at HTML with things like built-in baseline alignment, you can consider it a partial solution to this problem. There are lots of frameworks to automatically do data binding. Take a look at functional reactive programming, or Adobe's Adam and Eve languages. They address exactly these two problems. In general, if the level you're working at is drudgery, try to move up to a metalevel above that and use that to automate the drudgery.
Jan
27
comment Why do some programmers hate the UI part of the development?
Implementation should never be grunt work. If it is, you've either got a poorly factored architecture, or an inefficient process. We're programmers, if we're doing something a machine could do, we should be automating it.
Dec
27
comment Does syntax really matter in a programming language?
Well, fortunately, that code has two bugs. Sure, it'll always enter the conditional, but in there, it's just getting a reference to the LaunchNukes procedure, and never invoking it. Crisis averted!
Dec
20
comment Infix vs Prefix Notation - Which do you prefer?
That's true in theory, but in practice Lispers seem to always go prefix.
Sep
22
comment Killer semi-unique programming language features
To be fair, you should give ML credit for most of that list.