Reputation
53,880
Next tag badge:
167/100 score
19/20 answers
Badges
10 153 237
Newest
 Enlightened
Impact
~1.6m people reached

Dec
26
answered How to treat “The field is never used” warnings?
Dec
23
revised Does open source licensing my code limit me later?
added 250 characters in body
Dec
22
answered Will correctness proofs of code ever go mainstream?
Dec
9
comment How was the first Malbolge interpreter tested?
@Williham: Depends on your interpretation. One might wish to test it to assure that its quality is as diabolical and its user experience as frustrating as possible. ;)
Dec
9
answered How was the first Malbolge interpreter tested?
Dec
9
reviewed Approve Finding all nearby points in a point cloud
Dec
8
awarded  Good Answer
Dec
7
awarded  Nice Answer
Dec
7
comment What's your strongest opinion against functional programming?
@Frank: Because it was smaller, simpler, easier to read and maintain and ran faster on Python, apparently. ( aaronsw.com/weblog/rewritingreddit ) And Python is notorious for running slow, so if the Lisp version was even slower, that's not much of a credit to the language...
Dec
5
answered Does simplicity always improve Readability?
Dec
1
awarded  Nice Answer
Nov
29
comment Why isn't literate programming mainstream?
To make it possible to have a single-pass compiler, all declarations had to come in a certain order. A declaration order like that certainly simplifies compiler design, but it doesn't enable/prevent single-pass compilation. Delphi, for example, doesn't have that order restriction, but it's still a strictly single-pass Pascal compiler.
Nov
29
comment What is the supposed productivity gain of dynamic typing?
That study only uses C, C++ and Java as examples of static languages, and then attempts to apply the conclusions found to traditional programming languages in general. All three languages share the same basic syntax, with the same inherent, prductivity-decreasing flaws, making the comparison invalid. It's not that static languages are unproductive, it's that the C family is unproductive. Had they included a Pascal dialect in their tests, they'd most likely have reached some different conclusions.
Nov
29
comment What is the supposed productivity gain of dynamic typing?
Being insulated from implementation details is great, right up to the point when you need to fix a low-level bug that's the root cause of a high-level problem, or find a way to optimize slow-performing code, or any number of expert-level tasks that require access to the implementation details. Anytime a language sets a baseline abstraction that you cannot get underneath, it's limiting your ability to create truly good software.
Nov
29
comment What is the supposed productivity gain of dynamic typing?
I have to disagree strongly with your assertion that "shorter code... is quicker to read and maintain." There's an intermediate step, understanding the code. I've had to maintain other people's code in both Delphi and JavaScript, and the Delphi code is far easier to understand because it is more verbose. And most especially because the Delphi code has type declarations and the JavaScript does not. When dealing with anything more complex than primitives, type declarations make it trivial to see what your variables are and what they can do, which is essential knowledge for maintenance work.
Nov
24
comment Modern programming language with intuitive concurrent programming abstractions
@dsimcha: I'm not talking about calling a function; I'm talking about being inside the function (that's my starting point, because I'm debugging and this is where the exception was thrown,) and trying to figure out what kind of data it's working with.
Nov
24
comment How is fundamental mathematics efficiently evaluated by programming languages?
-1. Hardware multiply has not been done with shifts and adds for close to 3 decades now, and many CPUs can do a multiply in one cycle. Check the Wikipedia article on Binary Multiplier for the details.
Nov
23
comment Modern programming language with intuitive concurrent programming abstractions
I've had to work with another developer's JavaScript code lately at work, and that's the most painful part of the process: with no types on the function arguments, I have to hunt throughout the entire codebase to figure out what they're supposed to be and what they can do based on where they're called from. This would be a non-issue if JavaScript had retained C's type system in addition to its general syntax.
Nov
23
comment Modern programming language with intuitive concurrent programming abstractions
The purpose of static type declarations in strongly-typed languages is not to "improve performance where needed," and I'm getting kind of sick of Lisp advocates trotting out that old strawman. Type declarations have two purposes: to provide certain compile-time guarantees of correctness, and to make the code easier to read, especially for someone other than the original author. The inherently better performance that static typing provides is just a bonus.
Nov
22
comment Where did the notion of “one return only” come from?
So do exceptions violate this interpretation of Single Exit? (Or their more primitive cousin, setjmp/longjmp?)