9,292 reputation
73987
bio website
location
age
visits member for 3 years, 9 months
seen 11 hours ago

0x2B | ~0x2B


Feb
9
comment How can user stories not contain requirements (when written on a card) and still be implementable
@gbjbaanb: Agile is just a new fancy word for "using common sense", i.e. finding the right balance between upfront analysis / design and quickly delivering a partial solution to gather feedback. I find the term agile quite irritating because there is very little new to these ideas, other than the name. The worse happens when a rather inflexible framework like SCRUM is imposed as agile. IMO truly being agile would mean dropping the words agile and SCRUM and adapting your process to your needs, as we had always been doing before the agile wave started.
Feb
9
comment Say I wanted to create a cross platform program that does not require a runtime/VM, am I stuck with C/C++?
+1 for mentioning Ocaml, Haskell and Common Lisp. You might add Scheme to the list, since there are free and open source compilers available as well, e.g. MIT Scheme, Chicken Scheme, ...
Feb
8
awarded  Popular Question
Feb
8
reviewed Close Going TDD in the middle of the project
Feb
4
reviewed Close how do you remember programming related stuff?
Feb
2
reviewed Leave Open How can I configure my programming environment to enable rapid switching between projects?
Feb
2
reviewed Leave Open Are there any concrete examples of where a paralellizing compiler would provide a value-adding benefit?
Feb
2
comment What is the difference between Optionals and Nullable type
Using a null reference (or a NULL pointer, in languages with pointers) is a hack that some languages use to represent optional values, i.e. a container that may have one value or no value at all. This has the limitation that you can only consider optional a type that is based on references (or pointers). So, e.g., in Java you cannot make an integer optional without wrapping it in an object (e.g. Integer). Other languages provide optional types as generic types that can wrap any other type, e.g. Maybe in Haskell, Option in Scala, and so on.
Jan
31
reviewed Close Would you use C, today, for a software project?
Jan
30
awarded  Notable Question
Jan
26
reviewed Leave Open Does functional programming increase the 'representational gap' between problems and solutions?
Jan
26
comment Does functional programming increase the 'representational gap' between problems and solutions?
@RobertHarvey: Ok, so you mean there can be business problems whose solution requires higher mathematical abstractions. I think I understand now. I might have been a bit biased because often mathematical abstractions are considered non-relevant for real-world problems. Thanks for updating your answer.
Jan
26
comment Does functional programming increase the 'representational gap' between problems and solutions?
@Doval: Regarding the expression problem, each paradigm makes it easier to extend you code in a certain way, and needs to use a more complex solution otherwise, or am I missing something? This is why (as you say) the choice for one of the two views depends on the problem you are solving, e.g. programming a GUI (OOP) or an interpreter for a programming language (FP). Regarding values versus side-effects: I would say side-effects characterize the imperative approach, i.e. not only OOP, but also the procedural paradigm.
Jan
26
comment Does functional programming increase the 'representational gap' between problems and solutions?
So, maybe it is only a matter of terminology: I do not consider computing a paycheck or reorganizing bookmarks as mathematical problems, even though I can write FP programs using monads and other abstract concepts (mathematically oriented solutions, if you want) solving them.
Jan
26
comment Does functional programming increase the 'representational gap' between problems and solutions?
@RobertHarvey: Maybe it is just a matter of terminology. An example of a mathematical problem could be something like: decompose a number into prime factors. A more business-related problem could be: produce a report of all worked hours of an employee and compute her paycheck. You can solve both using pure functional programming (and, if you want, monads). You can then argue that this FP solution uses a lot of mathematical concepts, and I can agree. But even if the solution methods use concepts from mathematics, the second problem is not a mathematical problem.
Jan
26
comment Does functional programming increase the 'representational gap' between problems and solutions?
@Euphoric: I have not looked into the details, but the FP counterpart to the visitor pattern should involve an Other variant / constructor in your data type, and an extra function parameter to be passed to all functions to handle the other case. It is, of course, awkward / less natural with respect to the OOP solution (dynamic dispatch). In the same way, the visitor pattern is awkward / less natural than the FP solution (a higher-order function).
Jan
26
comment Does functional programming increase the 'representational gap' between problems and solutions?
@Hey: Have you read the chapter of SICP I have suggested. There is worked out example there. Anyway, suppose you have a function that scales an image (changes the resolution). This function will start by identifying the format of the image and then dispatch to the proper implementation for that image format. If you add a new image format, you have to change the code that identifies the image format to handle the new format. You have to do this for every other function working on images: non local change.
Jan
26
comment Does functional programming increase the 'representational gap' between problems and solutions?
@Hey: Your entry point function still needs to pick the right converter function according to its input. The point is how you organize your dispatch: in FP each function has the responsibility of dispatching according to its input, in OOP each object (piece of data) contains the information that is used to find the correct implementation of an operation.
Jan
26
revised Does functional programming increase the 'representational gap' between problems and solutions?
deleted 1 character in body
Jan
26
answered Does functional programming increase the 'representational gap' between problems and solutions?