'Type Systems - The Good, Bad and Ugly' by Paul Snively and Amanda Laucher

preview_player
Показать описание
Tired of esoteric conversations about theoretical type systems but not actually having any meaningful ways to compare? At Strange Loop 2012, Amanda Laucher and Paul Snively talked about Types vs. Tests: An Epic Battle? At the beginning, they put a stake in the ground: not all type systems are good. Some are better than others. In this presentation, Amanda and Paul will unpack that claim. They’ll start with an informal comparison of several type systems, move on to introduce a more formal framework for comparison, and round out the discussion with a look at pragmatic considerations that aren’t covered by the framework. They'll cover languages we all know and [ love | loathe ], some you may have heard of but never tried, and maybe a few you haven’t heard of yet. This presentation should give you the tools you need to at least have a meaningful conversation.

Paul Snively
@psnively

Paul Snively was a Lisp programmer for two decades before finally growing up and using static types. He was the technical editor for ‘Beginning Scala’ and thankfully uses Scala on the job every day.

Amanda Laucher
@pandamonial

Рекомендации по теме
Комментарии
Автор

A little PSA if you're thinking about watching this for educational purposes:

They start out saying that this is going to be a TL;DR about type systems. But they don't do any actual explaining of anything, they just comment on things. Between all the references to things that are never explained, they give a lot of advice they ignore during their own talk. It's kind of fascinating really..

- "Simple, expressive syntax is key!" -> only show complicated code snippets which aren't explained
- "Explain things easier, don't just talk about math stuff" -> constantly talk about math stuff
- "It's really hard to learn about this stuff" -> constantly make fun of people who don't know about this stuff

Apart from that, if you do know a thing or two about type systems, you might be interrested in what they have to say. I can't comment on that, I admit that I don't really know anything about type systems. But I watch a lot of talks on subject matters I don't know much about, and I usually learn stuff. Not here. And at least I don't think this stuff is really over my head, they just move on to something else as if mearly mentioning something is enough to make a point *. And hey, if you know lot's about this stuff, maybe it is, but there isn't much you can really learn here. All in all, the whole talk feels really disjointed, just a bunch of things that would be more effective as a list of links of the concepts they're refering to. There doesn't seem to be a real point besides "static typing is good, idiots"

* Example: "If you haven't seen a statically typed language with genuine sum types and pattern matching you're really missing out" -> ... and you're not going to see one here.

argh
Автор

I have a couple of issues with this talk. Firstly let me say that I loved the last talk these two speakers gave, and was excited to hear "part 2". 

Sadly, I found that the talk started with a "no true scotsman" argument, in the form of (paraphrased): "those who think they don't need types apparently haven't used them before, or haven't used a good type system". This is an argument that cannot be argued against, since "good type system" can be used as a moving goal-post. 

Secondly, ad hominem attacks were leveled several times in this talk. One particular case was one where those who don't use static typing were labeled as "unethical". Especially those dynamic language programmers who didn't practice TDD. This completely rejects other forms of testing, such as property based testing, and or simulation testing. 

Thirdly, after attacking many languages available, the speakers admitted that they couldn't find any language that fit their criteria, except perhaps Idris, which they admitted was not production-ready. But they claimed that the perfect statically typed language wasn't far off. 

But over all the talk contained quite a bit of vitriol and sarcasm. I started watching this video with the goal of learning about type systems and how they could benefit me, but instead all I found were appeals to authority, and a general lack of hard facts. Where are the studies that show all the effort gone into all these types of typing are actually worth the cost? Where are the papers that show that software-in-the-large is much more reliable when it relies on advanced type systems? None of this information was provided by the speakers. 

In short, there are many ways to convince someone of your point-of-view, accusing them of being immoral is rarely a good place to start. 

halgari
Автор

Reminds me of the quote:
"There are only two kinds of programming languages: those people always bitch about and those nobody uses."   -- Bjarne Stroustrup

ericdefazio
Автор

Ugh..the is probably some good info tucked away in here but it's sneering tone seems very un-strangeloop. Spends more time in the intro setting it up so anyone with an alternate view is ignoring facts, than it does making points.

CBaggers
Автор

I am half way trough this talk an so far i am disapointed. just swings at programming languages people use every day to solve problems. so what if Go dosent have parametric polymorphism. it's easy to write http-connected services which is great. did these 2 ever have to work in an enterprise environment where time to market and in house know-how counts more then theoretical aspects?

svenrobert
Автор

I think you'd have to be a little sensitive to find this talk insulting. Most Type systems are terrible, and languages without type are also terrible. Usually it is a trade off. JS is awesome in ways java is not, but at the cost of being terrible in ways java is not. Namely, with finding errors in your code. It doesn't have to be a logical error, it could just be a misspelled word in javascript, and it can take a lot of time finding why the object.lenght is never changing. Conversely, in java it can take a lot of verbage and complex casting to do something rather simple. I do like optional typing. Dart to me seems like a much better language then javascript for this reason.

theoriginalanomaly
Автор

This was one of the most thought-provoking talks I attended.

KelvinMeeks
Автор

This is an interesting and useful talk, but very pretentious in my opinion. Many times, the speakers try to sound funny, but mostly at the expense of someone or something else. They claim a lot of things, but without bringing any substantial evidence. I'm sorry to be harsh but, despite some interesting content, this talk looks like a political meeting more than an engineering conference.

nicolasgrilly
Автор

The Haskell community is super nice and respectful. People will definitely listen to you even if you do not have a PHD. Come to IRC and hang! irc.freenode.net #haskell 

SchellScivally
Автор

There was absolutely nothing of value in this talk. It's all subjective opinions being asserted as facts, and ridiculing other languages and the people who use them.

Yes, having expressive type systems can be useful; but it's just one aspect of a metaprogramming facility, and there is truth in the statement that a majority of the errors that occur in code are not related in any way to the use of weak or dynamic typing. Strong type systems have a tendency to introduce a lot of friction, which reduces productivity. However, they can be very useful in statically compiled languages by annotating objects with information that allows the compiler to generate optimal machine code. It's a double edged sword, and it's best to explore all approaches to find a balance.

deftlyhacked
Автор

Big swing and a miss with this talk.  

BostonRubyEric
Автор

Wow, I couldn't finish this video. Stopped after talking about parametric polymorphism. I hate it when people share their emotional feelings and then label it as pure logic. Why must people be so condescending?

biggiefrosty
Автор

Whether you are crappy programmers or great programmers purely depends on if you accomplish crappy software project or great software project. It has NOTHING to do with your understanding level of "Type System". That is FACT. 

KunLi
Автор

This talk is incredibly condescending and obnoxious. 

vitfirringur
Автор

there isn't really much information in this talk

badpotato