1,251 reputation
411
bio website
location Germany
age
visits member for 3 years, 7 months
seen Aug 6 '12 at 19:31

Feb
6
comment Is there a programming language with not a tree but tags idea behind OOP?
I want tag-based filesystems too :) Any hints? What's the current state-of-art?
Feb
6
comment Is there a programming language with not a tree but tags idea behind OOP?
@kolupaev: Certain things are modelled well by trees, other things aren't. Inheritance has it's place, tags have other uses - take both where appropriate, everything else would be useless ideology ;)
Feb
6
comment Is there a programming language with not a tree but tags idea behind OOP?
@Slomojo: Yes. One easily gets distracted by the fact that interfaces kinda look like ordinary inheritance in languages like C#, though they're fundamentally different. One should be able to add them one the fly, without changing the underlying type. Currently, Haskell typeclasses have modelled best what interfaces could be like.
Feb
6
comment Is there a programming language with not a tree but tags idea behind OOP?
@kolupaev: Edited the answer. Take a look at type classes. Do you know .NET'S extension methods? Tags describe too, as typeclasses do. Adding functionality once you got that generic description is just a matter of syntactic sugar.
Feb
6
revised Is there a programming language with not a tree but tags idea behind OOP?
added 351 characters in body
Feb
6
answered Is there a programming language with not a tree but tags idea behind OOP?
Feb
2
comment Are specific types still necessary?
+1 Great question
Feb
1
comment When to use abstract classes instead of interfaces with extension methods in C#?
@Gulshan: If it does - for some reason - not make sense to actually create an instance of the base class. You can "create" a Chihuahua or a white shark, but you cannot create an animal without further specialization - thus you would make Animal abstract. This enables you to write abstract functions to be specialized by the derived classes. Or more in programming terms - it does probably make no sense to create a UserControl, but as a Button is a UserControl, so we have the same kind of class/baseclass relationship.
Feb
1
comment What should I know about C++?
OOP does not solely mean programming with objects, it implies certain design-patterns, runtime polymorphism through inheritance, class hierarchies ... C++ is not really great in expressing these - you need (smart) pointers and often explicit memory management for runtime polymorphism, it's relatively slow and full of pitfalls (ever forgot a virtual destructor?). You often have cleaner ways of expressing the same with pure objects and e.g. generic programming / static polymorphism.
Feb
1
answered What should I know about C++?
Jan
31
answered When to use abstract classes instead of interfaces with extension methods in C#?
Jan
26
comment The most mind-bending programming language?
The cool thing about Scheme (and Ruby!) continuations is that they are built-in into the language. Haskell basically just adds it's monadic syntax around ordinary continuation passing style, which you can do in Scheme too. But having call/cc built-in everywhere without having to embed the whole thing in a monadic construct definitely allows many mind-bending constructs.
Jan
18
comment Challenges for the experienced coder to learn functional programming?
+1 I like the easy to grasp characterization of Monads/Functors/Applicative. (Arrows as a even more powerful generalization would also fit in)
Jan
15
comment Prefer algorithms to hand-written loops?
const auto& is possible? Didn't know that - great info!
Jan
15
revised Prefer algorithms to hand-written loops?
added 113 characters in body
Jan
15
answered Prefer algorithms to hand-written loops?
Jan
11
awarded  Critic
Jan
11
revised Preferred lambda syntax?
added 7 characters in body
Jan
11
answered Preferred lambda syntax?
Jan
8
comment What are some reasonable stylistic limits on type inference?
While the type-first approach is very elegant in Haskell, I doubt that it's suitable for C++. Without concepts, a C++ template signature basically says nothing - it's the implementation that defines the requirements types and arguments have to meet. Templates just do duck typing at compile time - "try and look if it works". Thus I'd say, we can rather be implicit with the types just as dynamic duck-typed languages are too.