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

Jan
12
comment Pointer ownership tips
-1 on accuracy grounds. What he's asking for is not what Java or .NET do. Java and .NET are garbage-collected languages; he's specifically asking for a way to keep track of object ownership in a non-GC language.
Jan
11
comment Overused or abused programming techniques
You say that as if the coder is poking around blindly in the dark trying to do something--anything--to get the code to somehow compile. That's not how it works IME; the compiler gives you a useful error message and points you at the location of the error, and usually if something's not compiling it's new code that you wrote yourself, so you have a pretty good idea what's wrong and how to fix it once it's been pointed out. (Although if you're tossing random *s around, you might be working in C++, where compiler errors are known to be supremely unhelpful, so what I said may not apply.)
Jan
11
comment Overused or abused programming techniques
I think a huge fraction of the Unicode issues would have never come up if Borland had declared a DataString type that was basically the same as AnsiString but specifically for use with blobs, and then made sure people knew about it.
Jan
11
comment Overused or abused programming techniques
What's wrong with "using the compiler as a debugger"? Having a compiler that's able to point out errors in your code before they become an issue at runtime is a tremendous advantage.
Jan
11
comment Rationale behind freeware projects
+1 for Drive. Great book, though I don't like the name. The only "surprising" thing about it is that its principles are surprising to so many people today.
Jan
7
comment What features are helpful when performing remote debugging / diagnostics?
@Pemdas: Yes, it's very nice, especially because it provides full stack traces. That makes debugging so much easier! I'm not sure what you're coding in or what options are available for it, but we work in Delphi and I can name two different packages that will do that for you: MadExcept and EurekaLog.
Jan
7
comment Business case for decentralized version control systems
A centralized server failure wouldn't take down all your code. Even if you didn't have backups, the worst it could do is take down your revision history. But as long as all the developers have the code checked out, it exists in current form on their systems too.
Jan
6
comment Dealing with a fundamental design flaw when you're new to the project
@Matt: Then phrase it as "I don't know I'm right," and try your best to avoid making it sound sarcastic or accusatory.
Jan
5
comment What do you wish language designers paid attention to?
You ought to use Pascal. You can define a type that covers an arbitrary range of numbers, such as -5..25, which the compiler can verify at compile-time. (As long as you're only assigning constants, of course.)
Jan
5
comment “Software features that can't be demonstrated by automated tests simply don't exist”— Is it too extreme a statement?
@S.Lott: It starts out talking about proofs, but later on it gets into tests and user experience, which is more than just visual/GUI stuff. The point is that the stuff that really matters, that makes the users really care about a product and think it's well-made, tends to be precisely the stuff that "can't be demonstrated by automated tests."
Jan
4
comment Delphi doesn't have Lambda Expressions and I'm a Delphi programmer, what am I missing out on?
@Larry: Yeah, so you have to go and rewrite it as a normal method. I guess my objection is that I just tend to view "terse" code in general as a form of premature (and improper) optimization. It's optimizing for writing time at the expense of maintainability, which has been shown over and over again to comprise a far more significant piece of developing a program than the initial writing.
Jan
4
comment Delphi doesn't have Lambda Expressions and I'm a Delphi programmer, what am I missing out on?
@Larry: That's just fine in principle. Makes a lot of sense when you originally write it. But what happens over the next few months when what you need your tiny, simple little filter to do becomes more complicated?
Jan
4
comment Do you keep your ideas secret? and why?
@Matthieu: You seem to have posted that as a joke, but the movie makes a very good point.
Jan
4
comment Delphi doesn't have Lambda Expressions and I'm a Delphi programmer, what am I missing out on?
@Oscar: They're objectively hard to read because they provide less useful information than a normal function. Specifically, there's no function header with parameter types. In a strongly-typed language, that's important. It isn't apparent in trivial examples like Jader's demo, but when you start passing objects instead of numbers, especially if you use more than one argument, things can get very cryptic very quickly.
Jan
4
comment Delphi doesn't have Lambda Expressions and I'm a Delphi programmer, what am I missing out on?
The 900% more code he mentions is also a severe exaggeration. While I agree that anonymous methods in Delphi could use some syntactic reduction, they're really not all that bad, especially for the amount of information they provide to the reader.
Jan
4
comment Delphi doesn't have Lambda Expressions and I'm a Delphi programmer, what am I missing out on?
@Larry: Lambdas in general. Delphi doesn't have lambdas as such, but it has anonymous methods which are functionally the exact same thing, as Jader points out.
Jan
4
comment What do you wish language designers paid attention to?
Sorry, but I've gotta give you a -1 for being completely wrong on this. Terseness helps to write code faster, but it most definitely does not make code more readable, beyond a certain minimum. A certain level of verbosity makes code much easier to read, because those extra words and symbols mean something and impart meaningful information to the programmer, especially if it was originally written by someone else and you don't have the advantage of already having a mental model of it in your head.
Jan
4
comment What do you wish language designers paid attention to?
If explicit is better than implicit then why aren't you required to declare variables? When a simple typo can cause hard-to-debug errors, (as opposed to errors that are caught at compile time or runtime errors that are obvious and easy to debug,) that's a major strike against the language IMO.
Jan
4
comment Aggressive Auto-Updating?
Mostly. One thing Windows Update gets very, very wrong--to the point that I wouldn't be surprised to hear of it provoking a class action lawsuit--is rebooting your system without the user's explicit permission. No software should ever do that under any circumstances, especially on a multitasking machine where the possibility for lost work exists.
Jan
3
comment Abstraction: The War between solving the problem and a general solution
+1 for useful principles, -1 for making it all about money.