12,626 reputation
52770
bio website lshift.net
location London, United Kingdom
age 38
visits member for 2 years, 9 months
seen 16 hours ago
stats profile views 708

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


Nov
21
comment Are Get-Set methods a violation of Encapsulation?
Getters provide access to an object's state. By definition they break encapsulation... albeit in a controlled/mediated manner. Setters are even worse.
Nov
14
comment What's the point of adding Unicode identifier support to various language implementations?
Do you mean names for things, or do you mean special characters like stars, lambdas and middle dots?
Oct
22
comment Why are weakly-typed languages still being actively developed?
"Strongly typed" is not a well defined term. Mostly it means "you cannot subvert the type system". It's orthogonal to what you describe above which might be latent versus manifest typing, or static versus dynamic typing.
Oct
11
comment Is hungarian notation a workaround for languages with insufficiently-expressive (i.e. Haskell-style) static typing?
@Péter Török: "I might think, though I'm not quite sure if I believe this or not, but Erlang might be the only object oriented language because the 3 tenets of object oriented programming are that it's based on message passing, that you have isolation between objects and have polymorphism." -- Joe Armstrong
Sep
27
comment Is there any reason lazy initialization couldn't be built into Java?
Thanks for the pointer to Alessandro's paper!
Sep
23
comment Is OOP hard because it is not natural?
@Donal Fellows: Indeed, hence the many "folksonomies" that arise. I wasn't talking about the real world, but about OOP, and when most people say "is-a" they mean inheritance, and it's well known (Cook, Cardelli, ...) that inheritance causes serious issues.
Sep
22
comment Is OOP hard because it is not natural?
By using a term like "hierarchical taxonomy", I think you're thinking of, well, inheritance. Inheritance is indeed hard to reason about. That's why people suggest using composition over inheritance.
Sep
14
comment Is there a language out there in which parameters are placed inside method name?
Brad Cox and Co. got this idea, unsurprisingly, from Smalltalk.
Sep
14
comment Suggest a good programming language to learn that is not OOP and definitely not in C style syntax
Knowing some ML helps enormously when reading the FP literature, and ML's been widely pillaged for concepts.
Sep
14
comment Suggest a good programming language to learn that is not OOP and definitely not in C style syntax
@SK-logic: although a judicious choice of languages leads one to naturally learn those paradigms and fundamental theories!
Sep
8
comment Is Java instanceof operator considered reflection, and what defines reflection?
Your first sentence is correct, and redundant in the face of previous answers. The rest is just wrong.
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!