10,171 reputation
23355
bio website
location
age
visits member for 2 years, 10 months
seen yesterday

C# developer, pretty standard stuff. SOLID and other such principles drive everything I do for the most part. Other than that, polyglot lover of functional programming in Haskell, F#, Erlang, and javascript. Player of each, master of none.

  • Monads are like buckets, that's what they say anyway.
  • Monoids are easy! I guess?
  • Comonads are just objects... however that works O_o
  • Cartography has nothing to do with these things.

Cheers.


Jul
4
comment Is serialization better done in instance methods or static methods
@ratchetfreak yeah I noticed, I was speaking generally - that's the general rule of why to avoid such things. His particular implementation doesn't break that rule though good point. I suppose I should just mention it violates POLA but I consider getters changing state a much bigger problem so wanted to detail that.
Jul
4
revised Is serialization better done in instance methods or static methods
added 723 characters in body
Jul
4
answered Is serialization better done in instance methods or static methods
Jun
23
comment Why are data constructors with the same name disallowed in different type constructors?
@delnan I wasn't aware of that... sounds like an answer to me. I had always figured the inference was bottom up, though I could see ambiguity resolution using type information from the other side of the type graph as you describe as a deciding factor... my mental image for this is return types at the bottom of the graph and function calls at the top, the resolution is an aggregate formed by folding up from the bottom, but that's not quite the whole picture, is what you're saying? Not surprisingly, in a dependently typed language with perfect inferrence this is probably more accurate..
Jun
18
comment Mental Models or Real-World-Metaphors for Functional Programming
@GuidoAnselmi you have it completely backwards, people analyze the real world with mathematics, it has no basis on the real world. Mathematics is used for analyzing and defining relationships between all sorts of things, real and not. 9 planets is you applying a mathematical construct (the set of natural numbers) to a real world construct (planets) with a mathematical analysis function (count). The real world doesn't have 9 planets, it has what it has, math merely talks about symbolic representations of things wherein the symbols have relations between eachother.
Jun
18
revised Why was C# made with “new” and “virtual+override” keywords unlike Java?
edited title
Jun
18
revised Mental Models or Real-World-Metaphors for Functional Programming
Fixed wrong words, oops.
Jun
18
answered Mental Models or Real-World-Metaphors for Functional Programming
Jun
10
comment Why is a software development life-cycle so inefficient?
While it sounds like waterfall is plausibly working fine for your org, perhaps you really have difficulty with the general concept to the point that you don't enjoy your job, you may wish to look for a new job, just a thought. Alternatively you may want to look at things from the business perspective and come up with a way to not be bothered by the work your asked to do.
Jun
10
comment Why is a software development life-cycle so inefficient?
You're complaining about waterfall, go read about it and realize everybody else recognizes it's terrible inefficient too. That said it's still used because for all it's inefficiency, in a variety of cases given the correct set of constraints, it actually works to the point of getting well-functioning IT products and services to business users. While it's unarguably inefficient, sometimes the inefficiency is worth it for the decreased risk waterfall has in the right scenario. It sounds like it's working well at your place, even if frustratingly overbearing...
Jun
10
comment Why is programming sometimes viewed as a second-rate role?
+1 completely agree. And @SteveJessop I could be wrong, but I suspect tires are designed by some very smart engineers who are highly valued for their craft. Similarly, I've heard good developers are highly valued by car manufacturers - I would say that is one less than apt analogy here because the auto industry is among the most technologically advanced industries there is which values good engineering far more than most industries. That said, I agree with what Telastyn said completely. If you want to understand the perceptions and decisions businesses make, understand their revenue stream.
Jun
6
awarded  Good Answer
Jun
2
awarded  Announcer
May
29
revised How are the conceptual pairs Abstract/Concrete, Generic/Specific, and Complex/Simple related to one another in software architecture?
added 870 characters in body
May
29
answered How are the conceptual pairs Abstract/Concrete, Generic/Specific, and Complex/Simple related to one another in software architecture?
May
29
comment If Scheme is untyped, how can it have numbers and lists?
@delnan I understand what you're saying here and your comment about how type has different meanings, but I don't see this answering the question. Perhaps the question should be closed as unclear because my interpretation I think differs from yours - I think the questioner wants to know if Scheme is or is not based on ULC, and if it is not, what the differences are. Rather than a description of how "type" means something different to programmers in practice than it does in the context of lambda calculi
May
29
revised If Scheme is untyped, how can it have numbers and lists?
added 139 characters in body; edited tags
May
28
comment Relation between objects
I like this and frankly think what you're designing fits an applicative style very well - which I tend to find common when looking at doing OO modeling problems in Haskell. Applicatives allow you to nicely and fluently compose CRUD style behaviours, so the idea that you would model bits independently, then have some applicative implementations that let you compose those types together with operations being slipped inbetween the compositions for things like validation, persistence, reactive event firing etc. This fits very much with what you suggest there. Graphs work great with applicatives.
May
27
revised How to analyze a scenario where a bug didn't get caught and adjust development workflow to prevent similar errors
added 756 characters in body
May
27
comment Websockets VS SSE
@RobertHarvey it's Streaming SIMD Extensions