903 reputation
713
bio website google.com/+DanielPryden
location Silicon Valley
age 31
visits member for 4 years, 2 months
seen 10 hours ago

I started tinkering with computers at the age of 6. These days, I'm a senior software engineer at Google, currently working on Java application server infrastructure.

Besides being fluent in English and American Sign Language, I know too many programming languages to count. Lately I've primarily been using Java, plus some odds and ends of Python, C++, and JavaScript. I enjoy C#, even though nowadays I don't get many chances to use it. I'm also a big fan of Haskell and Scala, although I haven't had a chance to use either of them in a large-scale project yet.

In my spare time, I play guitar and read voraciously, including science fiction and books on computing. I'm also a volunteer minister for the deaf, teaching Bible studies in American Sign Language.

Standard disclaimer: my opinions are my own, and not necessarily those of my employer.


Nov
10
comment Why are people so strongly opposed to #region tags in methods?
Not really an answer, but not only do I hate all #region tags, I turn off code folding in Visual Studio altogether. I don't like code that tries to hide from me.
Nov
8
comment Should a programmer fix someone else's failed build?
@KeithS: True. But I've found that, regardless of when I leave, the most likely time for me to break the build is when I'm in a hurry: right before lunch, right before a meeting, right before the end of the day. So I think it's a "personal best practice" to not commit anything when there isn't enough time to watch and fix the build afterward.
Oct
24
comment What exactly is a programming language? What enables us to write in such a language?
+1 for mentioning "Code". That book should be required reading for every entry-level CS student.
Oct
16
comment Is it wrong or bad to use autocomplete?
Good points, but seriously: you can't remember how to add an item to a List? That's not an "obscure" API, it's one of the most commonly used interfaces in the standard library.
Oct
12
comment Is Systems Hungarian notation still a useful practice?
+1 for pointing out that the real argument here is about type theory. Hungarian notation is a technique for augmenting the type system with additional information, and as such should be compared and contrasted with other techniques for augmenting the type system (e.g. templates, typedef, etc.), rather than being discussed on its aesthetic merits (or lack thereof).
Oct
9
answered Why do languages such as C and C++ not have garbage collection, while Java does?
Oct
6
comment Are these signs of a bad developer?
+1 for the iceberg secret.
Sep
24
answered Database source control
Sep
6
comment Do the young minds need to learn the pointer concepts?
@Joe Internet: Correct, except that C# calls its pointer-enabled blocks "unsafe" blocks, not "unmanaged". You can use an unsafe block to manipulate unmanaged resources, but they are not the same thing.
Aug
30
comment Are compilers used outside of development?
@Jan Soltis: I am aware that that is your opinion. I respectfully disagree. I provided counterarguments to support my position, while you continue to make unsupported assertions. You seem to think that there is a sharp line between "developer" and "end user" which I do not believe exists.
Aug
30
comment Are compilers used outside of development?
@Stargazer: Did you mean: "No, compilers translate from a source language into a target language"? Omitting the comma makes your sentence mean the opposite of your intended meaning.
Aug
30
comment Are compilers used outside of development?
@Jan Soltis: I disagree. I've compiled the Linux kernel from source: does that mean that I am a Linux kernel developer? I've never modified Linux kernel code or submitted a patch -- I would say that means I'm not a kernel developer. Plus, for the several years that I used Gentoo as my primary operating system, I compiled every single piece of software on the machine. However, the vast majority of those were compiled automagically by the Portage package management system. I would argue that in that case I was acting as an end user but not as a developer.
Aug
25
comment Why isn't Java used for modern web application development?
@Jordan: Well, some web apps don't do any work other than displaying data -- and for those apps PHP or another lightweight front-end technology is a fine choice. I mostly work on scientific applications with low transaction counts but very algorithm-heavy processing and display. When you're doing things like spatial data rendering, multidimensional data, on-demand simulations, coordinate system transforms, etc., then some of that has to be loaded in the web tier. The real heavy lifting is in the application tier -- the database tier, by contrast, doesn't have that much of a load.
Aug
22
comment What is the benefit of not using Hungarian notation?
Upvoted for a single sentence: "Most of the time, knowing the use of a variable implies knowing its type. Furthermore, if the usage of a variable is not known, it can't be deduced from its type." -- IMHO, this is the #1 reason to avoid Hungarian notation.
Aug
22
comment Why isn't Java used for modern web application development?
But... we're not talking about cross-platform GUI apps: this question is about web application development. And your arguments are mismatched: "Java is tedious and verbose" is a criticism of the Java language, while all the cross-platform benefits are features of the Java platform. It is possible to write apps for the Java platform in languages other than Java: see Jython, JRuby, Groovy, Scala, Clojure, etc.
Aug
22
comment Why isn't Java used for modern web application development?
@James: I've never heard a Java programmer complain that PHP is "too simple". I've heard lots of other complaints about PHP, but simplicity isn't one of them. And to make this point perfectly clear (since this seems to be a misunderstanding a lot of people here have): Java web apps != J2EE. Even in Java circles, "J2EE" is dead, replaced with "JEE" -- Java 6 EE is very different from Java 2 EE. And many excellent Java web apps eschew Java EE entirely, instead using Java SE and a simple servlet container or other web server.
Aug
19
comment Why isn't Java used for modern web application development?
@James: it sounds like what you are saying is: overengineered and/or poorly designed applications have performance problems. That's not specific to Java! Certainly, there are badly-written Java apps out there, but there are also well-written Java apps as well. The same can be said of any language.
Aug
19
comment Why isn't Java used for modern web application development?
@James: do you have anything besides vague anecdotes to back that up? All the top-10 websites out there are either running on managed platforms (Amazon on Java, Twitter on Scala IIRC, Google on a custom backend of Java and C++) or else they have a highly customized infrastructure (Facebook and Wikipedia use PHP, but they both have huge amounts of custom native code for speed). Java regularly outperforms dynamic languages in benchmarks. I'm no Java zealot, but performance is not Java's problem.
Aug
18
answered Why isn't Java used for modern web application development?
Aug
17
comment Using A Debugger (An Interview Question)
@Kevin: I usually follow a similar pattern to what you describe -- except that once I have a theory as to where things are going wrong, I fire up the debugger and confirm my suspicions. Modern debuggers allow you to quickly find the point at which flow goes awry -- in seconds instead of minutes of log tracing or unit test writing. I also will often run my unit tests (especially a specific test that is failing) under the debugger so I can see the exact flow that is being hit. But I will agree with you that a debugger is no substitute for thinking or for writing unit tests.