3 ms·
In my experience, most application-level domain problems benefit significantly from strong static types. My most salient experience in the area is from working
by nbouscal 11y ago
In my experience, most application-level domain problems benefit significantly from strong static types. My most salient experience in the area is from working on a data analysis pipeline web app written in Haskell. The type checker regularly caught bugs that would have taken me hours to deal with if I had had to track them down after something broke at runtime.
On the other side of the equation, again in my experience, the actual cost of a good static type system is minimal. Type inference means that you don't waste time on annotations, and the time you spend writing up the types themselves is time you would be spending anyway, since the primary difficulty is understanding the domain and the shape of your data.
- jonnybgood 11y agoThanks. It seems you are more concerned more about the software development experience and in that regard you see benefits. But I'm more curious and concerned about the benefits in solving real world problems. For example, in what way would Haskell be more beneficial in solving the problems that Erlang currently solves at Ericsson.
- deeviant 11y agoI generally feel that solving problems with software is the easy part. Solving in the way that is extensible, maintainable, bug-free as possible, and efficiently is the important part.
- Dewie3 11y ago> It seems you are more concerned more about the software development experience and in that regard you see benefits. But I'm more curious and concerned about the benefits in solving real world problems. I don't see the distinction.
- nbouscal 11y agoThe software development experience is the real world problem. Programming languages are force multipliers. My argument is that statically typed programming languages are force multipliers with bigger coefficients. I doubt that Haskell would be more beneficial for Ericsson, because Erlang was literally designed for their exact use case. I would be more inclined to pitch Haskell to the >99.9% of companies who don't have battle-tested custom programming languages.
- jonnybgood 11y agoReplace Ericcson with WhatsApp. What benefits would WhatsApps product see if they had used Haskell? The software development experience is exactly that, an experience. You see problems in it, but others do not in regards to static and dynamic typing.
- coolsunglasses 11y agoHaskell has more options WRT concurrency and parallelism than Erlang does at a single-machine level and the options for clusters are widening quickly. Examples: https://github.com/bitemyapp/blacktip https://github.com/bitemyapp/blacktip (simple MVar based synchronization producing a much faster program than the Erlang version with zero optimization effort) http://haskell-distributed.github.io/ http://haskell-distributed.github.io/ http://hackage.haskell.org/package/courier http://hackage.haskell.org/package/courier But don't take my word for it. I'd rather train coworkers eager to learn and retain an institutional competitive advantage than convince HN users :)
- the_af 11y agoThe software development experience is not only about subjective opinions ("I like static typing better!") but also about reliability and bug-catching. Forget Haskell. I'm sure you know this is flamewar material, but the purported advantages of statically typed languages over dynamically typed languages are that it's easier (less bug prone) to refactor code written in statically typed languages, and also that there are fewer tests you have to manually write, since the compiler "writes" those tests for you, so to speak, helping write correct software with less effort. In general, the argument goes "all else being equal [1], it's easier to write correct software using a statically typed language". As an end-user, the software development experience affects you even if you are not a programmer! I'm sure you won't agree with this. You could as well ask Paul Graham "what benefits would WhatsApp see if they had used Lisp?", and his answer would likely be as unconvincing to you as mine in this post. ---- [1] availability of libs, performance, and not competing with a custom language designed specifically for the problem at hand.
- sanderjd 11y ago