Fork me on GitHub
#off-topic
<
2018-04-16
>
shooodooken12:04:19

@ericnormand just FYI.. the http://purelyfunctional.tv issues archive page(s) needs a look. the pagination links all include a url param (`type=issues`) that's causing the server to have issues and display error in place of issues [1]. removing the url param manually solves it. same issues page[https://purelyfunctional.tv/topics/issues/] is also displaying oldest issues first. [1]

Warning: call_user_func() expects parameter 1 to be a valid callback, no array or string given in /var/pftv/wp-content/plugins/pftv_lessons/pftv_lessons.php on line 474

Fatal error: Call to a member function have_posts() on null in /var/pftv/wp-includes/query.php on line 767

Denis G18:04:36

Do you guys wonder why did LightTable die? It appears to me to be a very good replacement to an IDE, but actually even providing a new experience to writing code

tbaldridge18:04:57

@denisgrebennicov the main author (Chris Granger) moved on to another project (EVE), and most recently moved on from that as well.

Denis G18:04:12

but what about the community

Denis G18:04:18

is anybody interested?

tbaldridge18:04:45

I think other projects took the userbase. Namely Cursive, protorepl, Nightcode

Denis G18:04:46

of course writing an “IDE” is not the same as a mini framework or app.

tbaldridge18:04:17

Cursive - easy setup good for professional use Protorepl - Instarepl stuff (from what I understand) Nightcode - super-simple setup for new users

Denis G18:04:12

Do you see some sense in contributing to the project? Cause I found it quite interesting

hiredman18:04:28

I think lighttable was sold as basically an interactive way to develop side scrolling video games, which very few people write in clojure

tbaldridge18:04:39

And sadly I felt like Lighttable never really delivered on its goals. It had a massive refactor on every major release, and each time it became harder to understand.

tbaldridge18:04:03

I'd love a hackable editor, written in Clojure, but I'd want all the functionality found in Cider or Cursive first.

dpsutton18:04:21

Random thought. I'd love to see deftype become better. I'm reading the clojure.AVL code and just the deftype form is 325 lines, and most of that is telling it how to be equal, what to do if someone asks for its first member, etc. Compare to an OCaml version which is 123 lines in total and obviously its type definition is 1 line. The functions which operate on it are obvious. I know ztellman has worked on this a bit with https://github.com/ztellman/potemkin#def-map-type and the like. just wondering if anyone else ever thought this

👍 4
dpsutton20:04:14

thanks. reading through

bronsa20:04:41

it's quite old

dpsutton20:04:01

maybe not put in production but for sure read it 🙂

sophiago20:04:58

I realize I'm several days late on this, but I very strongly agree. Clojure is the only language I'm aware of that makes a distinction between structural types like trees and data types (both of these terms are very lacking, but hopefully my point is clear) like shape/circle/square/etc., but I find the former really obnoxious to write. I never got into the whole "using Clojure to write Java" thing; frankly I'd rather just write that code in Java (and I really dislike Java). And compared to languages with actual algebraic data types like OCaml/SML/Haskell/etc. it's horribly unappealing. I'm not sure what the solution is, though. You have a fundamental problem with implementing recursive types using immutable data structures, e.g. as in defrecord, hence why we fall back on interop 😕

tbaldridge18:04:03

Seems like a problem rooted in Clojure being based in interfaces instead of protocols.

dpsutton18:04:41

yeah. wasn't sure if there was a good answer. i just can't imagine a paper ever describing their algorithm or data structure in clojure rather than some ML

tbaldridge18:04:51

You can do something like mixins with protocols. You can call extend-type on a interface. Using that its possible to provide default equality semantics to something like IMap

tbaldridge18:04:28

I've worked on lisps that have protocols and allow extending protocols to protocols, that also works fairly well for this.

dpsutton18:04:09

just a pain point i wish i had thought of during the developer survey. I have no good answer to it. just wanted to put it on the radar of what could be better.

dpsutton20:04:04

it surprised me to see that update was only introduced in 1.7. i figured that would have been around for a while. must have been painful without that

ddellacosta20:04:08

I think everyone just did like (update-in m [:whatever] f)

ddellacosta20:04:18

it wasn’t that bad

dpsutton20:04:26

ohh. update-in was around though. ok that makes sense

ddellacosta20:04:29

at least, I remember not thinking about it much

dpsutton20:04:42

hacker rank is pre 1.7 and i was super surprised to see update not recognized

ddellacosta20:04:00

yeah, it’s a pretty obvious function I guess

dpsutton20:04:12

i thought everyone was jsut associng with a let binding of current value and doing the update manually

ddellacosta20:04:42

not in my experience, not that I remember when update-in showed up. I think I started using clojure around 1.3-ish?

dpsutton20:04:23

oh for sure. i didn't think to look for update-in. figured teh whole notion of update came in 1.7

ddellacosta20:04:45

so maybe before that, that’s what folks did (something like what you were suggesting)

ddellacosta20:04:59

it’s funny, because ironically it took me a while to remember to use update, I just got in the habit of update-in for everything

fellshard21:04:42

Yeah, I've had a couple cases where update wasn't available. You don't realize how handy it is 'til you miss it.

arrdem22:04:32

I still catch myself writing update-in [:foo] every now and again >.>

dpsutton22:04:55

i've done that when there are other ones in a threading macro that are also update-in

dpsutton22:04:13

but never accidentally. i got here in the good 1.7 days