tag:blogger.com,1999:blog-7094652.post2082302334230223997..comments2024-03-23T14:36:09.980+00:00Comments on Neil Mitchell's Blog (Haskell etc): Selling Haskell in the pubNeil Mitchellhttp://www.blogger.com/profile/13084722756124486154noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-7094652.post-83071385065314748612016-02-19T09:23:19.528+00:002016-02-19T09:23:19.528+00:00A lot of the developers I talk to are big fans of ...A lot of the developers I talk to are big fans of DRY (Don't Repeat Yourself), and have had to fight with junior developers to force them to introduce functions for shared functionality, even though the DRY formulation is longer than the normal formulation. They've seen plenty of bugs due to copy and paste. Cheap abstraction is a way of selling them on making the things they are trying to force people to do easy.<br /><br />I absolutely love the safety, but selling it through refactoring has been easier when I've tried it. When you first write a script, there's a reasonable chance it won't work, either in Haskell or in an untyped language, because you got the design/spec wrong. You debug it. You write tests. Types help, but they don't solve the problem. It's when you get to refactoring a big system that you may not know how to fully exercise that the types turn certain refactorings from impossible to easy. Large projects get to this stage quite quickly.<br /><br />So I guess my arguments are targeted at people who work on big code bases? That probably says more about the people I go to the pub with than anything else.Neil Mitchellhttps://www.blogger.com/profile/13084722756124486154noreply@blogger.comtag:blogger.com,1999:blog-7094652.post-15473499582764904742016-02-19T01:30:08.280+00:002016-02-19T01:30:08.280+00:00Maybe I'm not your target audience, but does t...Maybe I'm not your target audience, but does the low cost abstractions get much traction? Maybe you are dealing with more sophisticated programmers than I'm used to.<br /> <br />I find the safety aspect most appealing to people in this situation. I know lots of people writing scripts and finding out part way through that the list they thought they were getting is actually a dictionary, at which point the script crashes.<br /><br />Knowing (and fixing) this before they pressed "run" would be a god send.<br /><br />Unknownhttps://www.blogger.com/profile/17914230790959652064noreply@blogger.com