Reputation
1,025
Next privilege 2,000 Rep.
Edit questions and answers
Badges
8 15
Newest
 Yearling
Impact
~411k people reached

Mar
6
comment Why isn't Java used for modern web application development?
@Basic: Backwards from what? In the year and a half since I first wrote this answer, I've moved on and am currently working at Google, and I can assure you that Java is used very heavily for web application development at Google. Of course, Google's needs are very different from the needs of many other companies, but Java is a different beast entirely when you use the right libraries and frameworks -- just check out some of the things Google has open-sourced (Guava, Guice, GWT, Protocol Buffers, etc.).
Mar
6
comment Why isn't Java used for modern web application development?
@Basic: What is your point? There are lots of broken libraries and frameworks for any language. Yes, there is lots of crufty and out of date documentation -- but that's hardly unusual either. Conversely, there are some fantastic libraries, frameworks, and tools for Java. Are you seriously trying to suggest that there should be one end-to-end framework for every application ever?
Nov
20
comment Why is it called Just In Time?
@kevincline: I agree, in the Java world it isn't very interactive. But that's a problem with the Java implementation, not with the approach of JIT compiling in general. For example, Visual Studio allows you to edit C# code while it's running and it re-JITs on the fly, so it can be done.
Nov
19
comment Why is it called Just In Time?
@kevincline: It is possible to get more real-time feedback, even with Java; most Java debuggers allow you to execute small bits of code while at a breakpoint. But other languages do this much better: F# for example has an interactive REPL implemented with a JIT compiler.
Nov
7
comment Why does Java use UTF-16 for internal string representation?
+1 for linking to the "Should UTF-16 be considered harmful?" question. I recently discovered the UTF-8 Everywhere manifesto and I believe I am now pretty thoroughly convinced. For what it's worth, although Java got it wrong, I'm pretty convinced that Windows did much much worse.
Nov
7
comment Examples of when we'll use interpreted language over compiled language?
For various reasons, there is a correlation, but it isn't a requirement. This has actually been asked over on StackOverflow: Why interpreted langs are mostly ducktyped while compiled have strong typing?
Nov
6
comment Examples of when we'll use interpreted language over compiled language?
-1 because you imply that all interpreted languages are dynamically typed and all compiled languages are statically typed, which is completely untrue.
Oct
15
awarded  Yearling
Oct
9
comment Using “Google Guava” in coding interviews
+1 for asking. As a point of interest, when I interviewed at Google I asked if I could use Guava and my interviewer was OK with it. YMMV of course.
Oct
4
comment What functionality does dynamic typing allow?
@WarrenP: You assert that "dynamic type systems reduce the amount of extra cruft I have to type in" -- but then you compare Python to C++. That isn't a fair comparison: of course C++ is more verbose than Python, but that's not because of the difference in their type systems, it's because of the difference in their grammars. If you just want to reduce the number of characters in your program source, learn J or APL: I guarantee they'll be shorter. A more fair comparison would be to compare Python to Haskell. (For the record: I love Python and prefer it over C++, but I like Haskell even more.)
Oct
4
comment What functionality does dynamic typing allow?
@CzarekTomczak: That is a feature of some dynamically-typed languages, yes. But it is possible for a statically-typed language to be modifiable at runtime. For example, Visual Studio allows you to rewrite C# code while you're at a breakpoint in the debugger, and even rewind the instruction pointer to re-run your code with new changes. As I quoted Chris Smith in my other comment: "Many programmers have used very poor statically typed languages" -- don't judge all statically typed languages by the ones you know.
Oct
4
comment What functionality does dynamic typing allow?
@Justin984: I'm glad you enjoyed the article -- it changed how I think about static vs. dynamic typing too. But my comment wasn't really directed at answering your question, just helping to frame it. If you feel the article answers your question, why not add it as an answer yourself? That way you can explain what you think the answer to your question is, and you can mark it as accepted.
Oct
3
awarded  Pundit
Oct
3
comment What functionality does dynamic typing allow?
As Chris Smith writes in his excellent essay What to know before debating type systems: "The problem, in this case, is that most programmers have limited experience, and haven't tried a lot of languages. For context, here, six or seven doesn't count as "a lot." ... Two interesting consequences of this are: (1) Many programmers have used very poor statically typed languages. (2) Many programmers have used dynamically typed languages very poorly."
Oct
3
comment What functionality does dynamic typing allow?
@RobertHarvey: When I was writing a lot of C# code, I used LINQPad as basically a REPL for C#, which allowed me to write code in a more dynamic-ish workflow.
Sep
6
comment How to take a step back and look at code with fresh eyes?
Related to the "rules" based approach, running static analysis tools (e.g. lint for C, JsLint for JavaScript, Findbugs for Java, FxCop for .NET) can often give useful hints, and code metrics (e.g. cyclomatic complexity, LCOM4) can show you what parts of the code may be problematic. Of course, you should always use your brain and take the advice of such tools with a grain of salt.
Aug
3
comment What backs up the claim that C++ can be faster than a JVM or CLR with JIT?
+1 -- overall, this is a good answer. However, I'm not sure the "there is no stack allocation" bullet point is entirely accurate. Java JITs often do escape analysis to allow for stack allocation where possible -- perhaps what you should say is that the Java language doesn't allow the programmer to decide when an object is stack-allocated versus heap-allocated. Additionally, if a generational garbage collector (which all modern JVMs use) is in use, "heap allocation" means a completely different thing (with completely different performance characteristics) than it does in a C++ environment.
Jul
26
awarded  Good Answer
Jul
25
awarded  Nice Answer
Jul
25
answered Are unit tests really that useful?