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

Feb
1
comment Most difficult subject/theory in Computer Science?
Gotta agree with the Dragon Book criticism. It particularly bugs me the way Dragon Book does parsing and semantic analysis in three phases when they can be done much more simply in two.
Feb
1
comment Most difficult subject/theory in Computer Science?
@Martin: Well, considering that D is supposed to be a more evolved version of a language with formally undecidable grammar, I'm not surprised that writing a compiler for it would be difficult. The first step to writing a compiler easily is defining a sane language. :P
Feb
1
comment Most difficult subject/theory in Computer Science?
Compilers are really only difficult because most of the theory dates to times of insanely severe hardware constraints and a lot of the formal instruction hasn't advanced too far beyond that. Take a look at Let's Build A Compiler to see how easy compiler-writing can be if you approach it from a different angle.
Feb
1
comment Is learning how to use C (or C++) a requirement in order to be a good (excellent) programmer?
I must be missing something. What does Lisp have to do with learning fundamentals? It's the biggest abstraction inversion ever invented. One of its original, fundamental design goals was "let's pretend we're not really on a Turing machine and see how much we can simplify things by doing that."
Jan
31
comment Delphi doesn't have Lambda Expressions and I'm a Delphi programmer, what am I missing out on?
@Thorbjørn: Yes. They're called "anonymous methods" in Delphi, but they're closures.
Jan
31
comment Why are most browsers developed in C++
@David: What does the file manager have to do with memory limits? And are you honestly saying you honestly prefer the model where every process on the system supposedly has the entire multi-gigabyte virtual address space to play with and ends up consuming a good fraction of it as often as not, leading to several seconds of disk thrashing for simple tasks like restoring a minimized window? I once heard, back in the late 90s, someone say that "every coder should be required to ensure their app runs properly on a 486." 486es are a bit more dated now, but I like the basic spirit of that idea.
Jan
31
comment Why are most browsers developed in C++
@David: You say that like it's a bad thing. Memory limits are something I really miss. If Windows had that, there would be a lot less bloatware clogging up our systems today.
Jan
31
comment Why are most browsers developed in C++
@Jerry: How did you pull that off in Pascal? It's a lot harder to screw up because the length of the buffer is part of the parameter type and the compiler can apply bounds checking. (Unless you're working directly with pointers, of course, which 99% of the time you shouldn't and don't have to in Pascal.)
Jan
31
comment Why are most browsers developed in C++
@Jerry: gets isn't the fundamental flaw I'm referring to; the buffer overflow in gets is, and the number of buffer overflow errors that have consistently shown up since then indicates that it's not as simple to write solid, secure software in C as you seem to think.
Jan
31
comment Why are most browsers developed in C++
@Jerry: You're missing the point. It's not the one specific exploit, (and IIRC the Morris Worm utilized more than one exploit to propagate,) it's the fact that the underlying language flaw that made the exploit possible cannot be fixed, and it keeps showing up even today, more than 20 years later, causing millions upon millions of dollars worth of damage repeatedly.
Jan
31
comment Why are most browsers developed in C++
@Jerry: You can call it "bigotry" if you want, but that doesn't change the facts, and the fact is that this has been known to be unsafe since freaking 1988!
Jan
31
comment Why are most browsers developed in C++
WRT point 3, I will definitely assert, without qualification, that writing network-facing software in the C family is either stupid or evil, because it entails either unknowingly (stupid) or knowingly (evil) working with a system widely known to introduce security holes that will cause harm to your users. It's morally equivalent to giving a soldier body armor with a target painted on it.
Jan
31
comment Why are most browsers developed in C++
@Berin: Well, your experience was very different than mine. The only time I ever saw Mac OS Classic crash and require a reboot was when I was programming on it and did something stupid.
Jan
31
comment Why are most browsers developed in C++
@Charles: I didn't mean to imply that those are insignificant. Just that they weren't needed at the time, and when they were needed, they got added. Mac OS had virtual memory and pre-emptive multitasking by the mid 90s. On the other hand, the *nixes are just barely beginning to get good, workable UIs over the last couple years.
Jan
31
comment Why are most browsers developed in C++
@Charles: As for the 68k assembly, most of the OS was in fact written in Pascal, with QuickDraw being one of the major exceptions. On the very early models, the hardware was too limited to run the output of the pascal compilers they had fast enough to have a usable system, so they basically compiled the code to optimized ASM by hand.
Jan
31
comment Why are most browsers developed in C++
@Charles: Your list of things that the Mac OS didn't have is a bunch of things that it didn't need. It was designed to fit the needs of ordinary users and make it simple to work with, which is far more difficult than building a system for other engineers like UNIX, VMS, etc. And yes, some of the underlying concepts came from PARC, but most of the fundamental UI principles we still take for granted today were Apple innovations, not PARC stuff.
Jan
31
comment Why are most browsers developed in C++
@Jerry: Or some flavor of Pascal in general. It tends to get the details that the C family gets wrong right, frequently before the C family gets them wrong in the first place.
Jan
31
comment Is it OK to live without knowing how the program you created works?
Allocating fixed-size buffers for anything is a buffer overflow waiting to happen. Much better to use a language that supports dynamic arrays and let the callee manage its own buffers.
Jan
30
comment What quantitative metrics do you use to measure the quality of an offshore testing team?
@Testerab: I've never really understood the "each bug that gets fixed will introduce several more" idea. That has not been my experience at all as a software developer. The vast majority of bugs are caused by the coder overlooking something, which becomes obvious and easy to fix once you isolate it with a debugger. Less than 10% of fixes end up creating new bugs, usually just one new bug to replace the one old bug that got fixed. If this isn't the case where you work, something's very wrong with your development process.
Jan
28
comment Why are a seemingly disproportionate amount of programmers just, well, not nice?
I'd say "whatever it is" is a simple matter of definition. Weird is that which is noticeably different from the normal, and brilliance definitely fits.