Fork me on GitHub
#untangled
<
2017-01-27
>
tony.kay00:01:55

@currentoor That's been my experience overall: everything I think is going to be "hard" turns out to be surprisingly simple. It's refreshing

currentoor01:01:04

@tony.kay have you worked extensively with CLJ(S) before this product?

tony.kay01:01:51

@currentoor no. My prior gig was Scala, Java before that.

tony.kay01:01:19

When I started here I knew FP was the way to go, but I was a bit disappointed by the practical day-to-day of Scala. The compiler is soooo slow, the setup is kind of a pain, and the developers tend to fetishize complexity. Has some great ideas, but in practice I was torn.

tony.kay01:01:09

I was worried about the lack of a static type system when I started using Clojure (thinking about proposing a talk on that for clj west), but after doing some case studies on the kind of code we wanted to write, the "value of values" became apparent.

tony.kay01:01:19

We originally started out thinking maybe clj on the back-end. Then saw the elegant and useful stuff happening on the front-end.

tony.kay01:01:50

and as David Nolen puts it: "it was the first time I looked at a way of doing UIs on a browser that didn't make me want to put my eye out"

jasonjckn18:01:36

@tony.kay every word you wrote about scala was my exact experience too

jasonjckn18:01:01

@tony.kay it's very perplexing because on paper it looks like a solid choice of language, at least it checks every box, but in practice you're torn

jasonjckn18:01:14

my progression was C++ -> Clojure -> Scala -> Clojure -> adding Clojurescript

tony.kay18:01:09

roughly mine as well...but I think I'm older 😉 Basic -> 8-bit assembly -> C -> C++ -> Java -> C++ -> Java -> Scala -> Clojure

jasonjckn20:01:03

Hah nice, i did a bit of visual basic, but yes basic is before my time

jasonjckn20:01:17

8-bit assembly, i didn't even know that existed

jasonjckn20:01:08

x86 architecture began on 16 bit right?

tony.kay20:01:52

not quite punch cards...commodore 64

tony.kay20:01:55

did a lot of manually putting numbers into RAM and then saying: OK, run those

tony.kay20:01:27

boy was C a nice upgrade

jasonjckn20:01:36

hah i guess I can't appreciate how far things have come

jasonjckn20:01:55

C++ was my first language, and clojure is still OOP in some sense

tony.kay20:01:59

oh man...garbage collection (salivates)

tony.kay20:01:13

Java was like a god-send in the 90's

jasonjckn20:01:22

and C++ is even faster than clojure for most programs, so it's not a massive leap

jasonjckn20:01:48

i was using smart pointers pretty early on, so once again I probably don't appreciate GC as much as you

tony.kay20:01:21

smart pointers helped...but you still had library issues, random leaks....bleh. Don't miss it

tony.kay20:01:59

and compiler errors...people think they have it rough with Clojure

jasonjckn20:01:01

i'm widly more productive with clojure, there is something I miss about C++ that I can't quite put my finger on, but it's certainly not the memory leaks and segfaults

tony.kay20:01:14

or infinite (compiler) loops on templates

jasonjckn20:01:25

yah nightmare , if you ever read boost library code

tony.kay20:01:37

boost is exactly what I was thinking

jasonjckn20:01:04

one nice thing about C++ was you were closer to bare mental, whereas with clojure i don't understand what the JVM does

jasonjckn20:01:16

maybe it's just a lack of education, how about you? do you have confidence in the final x86 asm in your mental model

tony.kay20:01:46

yeah, but the JVM is actually capable of getting closer to the metal in many cases...and in modern architectures no one understands the metal...not even the meta designers 😉

tony.kay20:01:59

branch prediction, MMU caching, ...

jasonjckn20:01:27

yah, that's the reality these days i guess, but it changes the feeling of being a programmer i think, talking purely psychological now

tony.kay20:01:43

yes, I agree there...feels less "muscle car" ish

jasonjckn20:01:30

for one thing you felt proud of cryptic code

jasonjckn20:01:07

"wow writing that high performance function, the code is crazy complex, i gotta show my friends" type feeling

jasonjckn20:01:29

dropping down into assembly was a badge of honor

jasonjckn20:01:33

in clojure it's like the opposite

tony.kay20:01:11

I don't know. I see a lot of ppl gettin' fancy for fancy sake 😉

jasonjckn20:01:43

hah ya, i guess those badges are still available if I want them

tony.kay20:01:05

but more in the "I can write that algorithm in 4 characters"

tony.kay20:01:15

sort of a "name that tune" of coding

jasonjckn20:01:52

i think mathematics is the new 'assembly' in that sense that JVMs/VMs/virtualization/transpiling are winning and these are all cases where you're trying to solve problems by leveraging a higher level semantic

jasonjckn20:01:24

in my mind it's similar to something mathematics does all the time, e.g. mapping geometry to number theory

jasonjckn20:01:38

any kind of 'mapping'

tony.kay20:01:54

It's coming full-circle. Math came first, Lisp came (nearly) second...50 years pass...back the to math we knew in the 50's 😉

jasonjckn20:01:19

hah funny how things evolve

tony.kay20:01:35

Yeah, it fascinates me how far ahead math usually is. Fourier analysis was invented long before we found fun uses for it like audio compression and quantum physics

jasonjckn20:01:18

yes me too, people strong in math make leaps of logic effortlessly that seem brilliant to me

tony.kay20:01:38

we should probably stop annoying the channel with our Friday banter 😉

jasonjckn20:01:56

back to work 😉

currentoor21:01:36

@tony.kay did you study physics?

currentoor21:01:55

also I for one enjoyed reading this banter 😄

monjohn22:01:45

I enjoyed listening in as well

tony.kay22:01:38

@currentoor In fact I did. Undergrad. Did graduate work in CS.

currentoor23:01:37

@tony.kay oh cool I majored in Physics and CS for also 😄

currentoor23:01:28

I hadn’t thought of Fourier transforms for a long while. Brings back memories.

tony.kay23:01:10

You guys watching the #om or #clojurescript channels?

tony.kay23:01:24

new cljs dropped with js module support as first-class citizen

tony.kay23:01:46

our world just got a LOT bigger...or a lot easier, depending on how you look at it

kenbier23:01:44

yeah really excited about that

kenbier23:01:01

any immediate plans to use extern generation or js module support @tony.kay ?

tony.kay23:01:55

you mean in Untangled? Or do you mean personally in a project?

kenbier23:01:58

just personally

tony.kay23:01:44

I've been wanting to use some more advanced React charting and visualizations that are not in cljsjs yet

tony.kay23:01:09

but most of them are in module formats that made it a pain, so I've just been waiting