13,193 reputation
63274
bio website lshift.net
location London, United Kingdom
age 39
visits member for 4 years, 2 months
seen 2 days ago

Delphi/Objective-C/C#/Ruby/Scala programmer by day, Lisper/Smalltalker by night.


Aug
27
comment Is Object Oriented Programming a solution to complexity?
Saying "foo is the most Evil and Bad thing..." is actively corrosive to any argument you might try to make, by the way.
Aug
27
comment Is Object Oriented Programming a solution to complexity?
You make a number of assertions. Perhaps you can either supply arguments backing up your assertions, or references to arguments. Like this, which doesn't quite support your various theses (in the sense of it saying "there are things wrong with OO; this is what it needs to do"): lucacardelli.name/Papers/BadPropertiesOfOO.pdf
Aug
18
comment Advantages of a left to right language syntax
@celavek Indeed, that would be a valid point: reversing the direction of reading for some parts of whatever is much harder to read than a consistent ordering (whether l->r or r->l)
Aug
18
comment Advantages of a left to right language syntax
"More understandable by humans"? Surely that's more properly "more understandable by humans who only read left->right languages"?
Aug
18
comment Class as first-class object
+1 for knowing your roots!
Aug
16
comment Are there problems with using Reflection?
I should add that the second issue - bugs caused during refactoring - is probably the most serious. In particular, relying on something having a particular name breaks instantly when that thing's name changes. The errors thus caused may be less than informative, unless you're very careful.
Aug
15
comment Are there problems with using Reflection?
Bear in mind that the above points may or may not apply to your favourite language. For instance, reflection has no speed penalty in Smalltalk, nor do you lose compile-time safety, because computation is entirely late bound.
Aug
12
comment Should I be concerned if I have nothing to do during an internship?
+1 for advising a pro-active approach.
Aug
8
comment What features contributed to the evolution of Pascal?
To the most recent versions of Delphi, maybe. I used up to Delphi 7, so of course never used either anonymous methods or generics!
Aug
1
comment What can multiple threads do that a single thread cannot?
"Just one thread" can mean several things - you could use delimited continuations to simulate cooperative multitasking within a single (OS or green) thread, for instance.
Jul
14
comment Area calculation of irregular shapes
No, but Delaunay maximises the minimum angle of the triangles!
Jul
13
comment trust factor in code review
If by "thoroughly test" you mean write additional tests, then no, the reviewer ought to fail the code instead, suggesting additional test cases. If by "thoroughly test" you mean the reviewer ought to run all the tests, and be reasonably sure that there's decent coverage, then yes, the reviewer should "thoroughly test" things.
Jul
11
comment Why aren't there explicit access modifiers in Python:
"Simple is better than complex" and "We're all consenting adults here" are why Smalltalk doesn't have access modifiers. Putting a method in the "private" category is a hint that you should think thrice before using it, and no more.
Jul
11
comment Why aren't there explicit access modifiers in Python:
@Mark Trapp: Ah OK. Thanks for the clarification. I can't see how to rescind my vote-to-close.
Jul
11
comment Why aren't there explicit access modifiers in Python:
possible duplicate of Access specifiers in Python:... which was closed as not being constructive.
Jul
8
comment Would it be ok if I decide to write all my Ruby as if it were Haskell?
In one of my Smalltalk tests: self assert: ((m >>= f) >>= g) equals: (m >>= [:x | (f value: x) >>= g]). There's no reason at all why you can't consciously use monads, as opposed to using them without even knowing you're using them (like lists).
Jul
5
comment Learning Haskell and C# Simultaneously
@Sayem ... and yet children learn multiple (spoken) languages at the same time all the time. Further, we learn chemistry, physics and maths at the same time. There's nothing special about programming languages that make it undesirable to learn multiple languages at the same time. And in the real world, it's often required.
Jul
1
comment Do you use unit tests at work? What benefits do you get from them?
@Davy8: In which case you have more serious problems that "do unit tests work?".
Jul
1
comment Do you use unit tests at work? What benefits do you get from them?
@Ryan: Of course your integration tests should drive the entire project. The question was about unit tests so I talked about unit tests, but of course you should demonstrate the need for a piece of code by having a failing integration test. And of course you should have a CI server automatically deploying your codebase and running all testsl
Jun
30
comment Do you use unit tests at work? What benefits do you get from them?
I've written test-driven multithreaded stuff. It's most definitely doable.