1,120 reputation
715
bio website synaesmedia.net
location Brasilia, Brazil
age 45
visits member for 4 years
seen Jul 8 at 15:19

My programming life is mainly discussed on http://sdi.thoughtstorms.info


Jan
8
comment Phenotropic Program Design
If I understand correctly, Phenotropic Programming is a way to program large (often multi-computer), robust systems. The problem is, all the biological metaphors make it vague and difficult to translate into practical programming terms. Here I'm suggesting that certain programming constructs that aren't vague (ie. Monads, Promises etc.) might be a way to make some of those ideas of Lanier's concrete and practically progammable.)
Feb
12
comment Why has C prevailed over Pascal?
Is it really true that they were ever head to head? I suspect this is a very PC-centric view. I'd guess that C was always way ahead in terms of actual use in production Unix systems right from its invention, and Pascal never got close in terms of number of lines of production code or working programmers.
Sep
29
comment Is MUMPS alive?
Rob. Yes, I do agree, both that its usually stupid to rewrite working legacy systems just because you don't know or like the language. (That sort of thing usually fails) And that the MUMPS db is pretty interesting when looked at from a NoSQL perspective. (And I think your work promoting that is really exciting.)
Sep
28
comment Why isn't functional programming more popular in the industry? Does it catch on now?
Jonas, I didn't say "test", I said "debug" ie. find a mistake that you've made. Testing is part of that, but so is reasoning about the program, etc. bigown - I stand by this. It's a function of FP's power. The more work any particular line of code does, the harder it is to see which line of code is causing a problem. The mapping between line of code, and effect, is more diffuse eg. a single higher-order function might touch dozens of behaviours of the program and vice versa. The symptoms can vary wildly between different points for the same error.
Sep
28
comment Is MUMPS alive?
Rob. On the wider point, that a well disciplined team of MUMPS programmers, writing from scratch, and carefully using "new" to ensure that all variables are local, can avoid the pains of dynamic scoping. Sure, I agree. But why should we need iron discipline and hundreds of extra lines of code, to replicate what every other contemporary language gives you for free? Also, if you're faced with legacy code that wasn't written with this discipline, it's almost impossible to put it in later, because you can't tell if the system is relying on one of these non-locals to pass information around.
Sep
28
comment Is MUMPS alive?
Rob : "Looking at your original example, the value x, when new'd in procedure f is automatically available to g - that's just the way Mumps is." Indeed! And that's what it means to say that MUMPS has dynamic scope and not lexical scope. In a lexically scoped language, you don't need to have the "new x" in function g, because the lexical structure of the program (ie. the fact that g is defined outside the definition of f), is sufficient to guarantee that the xs refered to in g and f are two entirely different variables.
Sep
26
comment Is MUMPS alive?
Rob. I certainly didn't notice the lexical scoping of variables in Cache. What about my example in cachetastic.blogspot.com/2008/07/… ? That uses the "new" keyword, but is absolutely NOT the scoping rule you want. The x in f and the x in g should NOT be the same variable WITHOUT g having to explicitly hide any x that happened to be on the stack. The same thing converted into javascript, replacing COS's "new" with "var" correctly gives x in f as undefined.
Sep
25
comment Is MUMPS alive?
As I mentioned elsewhere, the real disaster / dealbreaker for the language is dynamic scoping. I don't think any engineer, today, can justify choosing a language without local variables that stay local. So, by all means use the MUMPS db as a black box component, but the language is beyond redemption and should be put to rest.
Sep
25
comment Is MUMPS alive?
To push back a bit Rob, while I think the MUMPS db is worth paying attention to, I wonder if just the db, accessed from another language can still be called MUMPS. Anyone who chooses MUMPS expects to be able to run legacy code. So MUMPS, like it or not, equals the db + the language.
Feb
2
comment What is the best way to discern an excellent programmer in a job interview?
doh! this answer seems to be becoming popular. Just as I have to start going out and applying for jobs ...
Oct
27
comment What is the best way to discern an excellent programmer in a job interview?
I think it depends what kind of things they are trying to teach you at college. I don't think I've ever used modulo in a real-world problem, nor taught it explicitly. But it's very common in this kind of exercise (and in exam questions).