6 ms·
Language theory and lambda calculus classes were some of my favourite in college. I wonder how many serious bugs would be averted if programming languages came
by mFixman 8y ago
Language theory and lambda calculus classes were some of my favourite in college. I wonder how many serious bugs would be averted if programming languages came with more complete type systems.
- wespiser_2018 8y agoYou might think this: but there is a major time and complexity cost to using more advanced type systems that sometimes doesn't pay off in simpler applications that must ship fast!
- dope99 8y agoCan you support when this trade off ought to go one way or the other with any objectivity?
- warent 8y agoBut the question is why "must" it ship fast? That seems to be a poor, irrational agreement we've made as a tech society for no better reason except because people are impatient.
- lacey 8y agoI don’t think the argument is centered around impatience. There is a (perhaps wrong) belief that being first to market greatly increases your chances of success if not outright dominance in an area. People are unconcerned with the possibility that if successful they will be left with a mess to clean up and a system that is hard to evolve. They believe those are easy problems to fix.
- wespiser_2018 8y agoYea, its at least my thinking that having a tech debt problem is better than a failed company that results from not moving fast enough with constrained funding to either find product market fit, or fully self actualize the product concept.
- recursive 8y agoIn my case it's because the paying customers only find any value in the product if it helps them remain compliant with controls that go into and out of effect on specified dates. But it's mostly staticly typed already anyway.
- chriswarbo 8y agoThis is a common meme, but I'd like to see some robust empirical evidence either way (the only studies I've seen so far are with e.g. a handful of undergraduates, implementing a toy problem, well-specified up-front, with no maintenance/feature-drift/etc.) As a trivial counterargument, there's nothing preventing programmers from ignoring even the most advanced type system (see "stringly typed programming", for example). In fact, my experience with "advanced type systems" (e.g. Agda, Idris and Coq), the types have never been a hindrance; it's their totality checking that can be painful (that's why Idris makes it easy to turn that off, either completely or for certain pieces of code).
- hota_mazi 8y ago> This is a common meme, but I'd like to see some robust empirical evidence either way I wouldn't call that datapoint robust nor empirical, but Scala developers have been complaining about the slowness of their builds for more than ten years now, and it's pretty much accepted that the Scala compiler will never get marginally faster than it is today. The Scala 3 compiler is not looking much better either.
- chriswarbo 8y agoThat sounds like the compiler vs interpreter flamewar, rather than the strong vs weak or static vs dynamic typing flamewars ;) Is there a Scala interpreter to compare performance against? I've not used Scala much, but I know that while Haskell's de facto implementation is the Glasgow Haskell Compiler, there are also (unmaintained) interpreters like HUGS, so compilation isn't a necessity. Plus there's the whole spectrum of Futamura projections, JITs, etc. ;)
- cinnamonheart 8y agoScala's builds from fresh are slow, but this is never a hindrance during development; you just leave `sbt ~compile` running in a terminal, which gives you constant feedback. I find in this case the type system of Scala allows you to quickly reach a sensible solution using the compiler and types to guide you. This allows faster shipping, not slower.
- 8y ago
- wespiser_2018 8y agoRe: Diminishing Returns of Static Typing: https://blog.merovius.de/2017/09/12/diminishing-returns-of-static-typing.html https://blog.merovius.de/2017/09/12/diminishing-returns-of-s...
- justinmchase 8y agoI don't think its type checking that is bad per se, but classes specifically.
- neurotrace 8y agoI am currently checking in a fix due to a null reference exception. How I miss Option/Maybe when working in C#.
- recursive 8y agoNullable reference types in C#8 will help.
- neurotrace 8y agoVery true. I'm very excited about nullable reference types.