Fork me on GitHub
#off-topic
<
2017-07-29
>
mobileink00:07:44

what's missing is a unified model of computation that encompasses both Turing a-machines and o-machines (aka interactive computing). ie one that anwers once and for all "what is oo?"

mobileink00:07:30

(not to mention io. funny how many really smart people claim that monads make io functional.)

qqq04:07:14

@dpsutton : do you have a talk title for the seattle clojure/west gradual typing racket talk? I want to watch it and see the issues they run into

noisesmith04:07:47

(I remembered it because I was there and he picked me out in the audience)

mobileink05:07:46

watching Inglourious Basterds. Confused. Is is supposed to be a farce? Mike Meyers?

qqq06:07:22

@noisesmith : thanks; amazing talk title

fellshard09:07:00

@mobileink To my memory, yes.

flaviohenriquecbc12:07:24

Hey, i've just written an article about startup mindset and how I successfully could use it. Take a look and tell me what you think 😉 https://medium.com/@flaviohfreitas/how-did-i-use-the-startup-mindset-to-successfully-sell-everything-before-moving-abroad-2a5def65ab3f

qqq17:07:49

can't you get nominal types just by "wrapping" the Int or String or whatever primitive type ?

qqq17:07:10

i.e. data ProductName = ProductName String

qqq17:07:18

now, you have a "ProductName" type instead of just raw Strings

qqq17:07:37

(referring to jsa-aerial 's comment to tbaldridge's gist on type systems )

dpsutton17:07:56

ah. yeah. type alias

dpsutton17:07:07

and i agree with you on that

qqq17:07:08

I'm not sure if it's alias

qqq17:07:20

if you ahd alias, you could do (concat ProductName "hello world")

qqq17:07:35

but in this case, you'd have to deconstruct the ProductName to get the underlying string before being able to run concat on it

dpsutton17:07:54

in that case yes, but you can do things like type ProductName = string

qqq17:07:56

on one hand, this makes it more clumbersome, but on the other hand, you precisely want to make it so that you can add "meter" with "meter", but you can't add "meter" to an Int

qqq17:07:32

to be clear: I view it as a feature that you can't concat ProdutName with String, and that you can'ta dd Meter to Int // (without explicitly defining it)

tbaldridge18:07:17

Yes, something like a type alias would work @qqq, as long as you don't do it like C where a typedef int PersonID is still 100% a int. A type alias should be a completely different type that at least requires an explicit cast.

jsa-aerial19:07:40

That's just nominal types with a different name.

qqq20:07:07

languages like OCaml / Haskell alreadc provide that; so it's 1 bullet down from tbaldridge's list of requirements

tbaldridge20:07:37

sure, many languages do one or more things from that list, but none do all of them

tbaldridge20:07:12

I have yet to see a language (aside from Clojure) that embraces the whole "set of things that must exist, but there can be more, and auto convert to other sets/subsets of this group"

qqq20:07:26

really? for every bullet point, there exists some language that implements it? the first bullet that looks really hard

qqq20:07:22

by 'clojure' you mean 'spec with required + optional keys' ? or is this something else

tbaldridge20:07:04

yes, although spec has codified that "maps can have extra stuff in them" idea, the paradigm has existed in clojure for years. It kindof just falls out of the whole data-first nature of Clojure.

qqq20:07:26

i.e. I want tables as a fundamental collectin type, and I want to define reactive tables in terms of other tables

qqq20:07:38

and I want diffs of all my datas as transactions

qqq20:07:11

for whatever reason, I find clojure's nested free form data hard to use beyond a certain level, and I really want the rigidity of relations and tables

tbaldridge20:07:10

So the problem with the tarpit model though is that reaction based programming can be really hard to understadn

tbaldridge20:07:19

it's "triggers on tables" from SQL all over again.

tbaldridge20:07:43

Same kindof applies to FRP.