Fork me on GitHub
#off-topic
<
2019-02-24
>
Chase01:02:39

Sounds like the ClojureD conference in Germany was a great time. https://news.ycombinator.com/item?id=19233839 I'm jealous! I'm excited for when I can check out one of these conferences. They almost always post videos of these talks right?

idiomancy01:02:01

if anyone is super bored I'm trying to implement this function and am having trouble. use whatever language you want

Brian02:02:15

Interesting problem

Brian02:02:32

(defn pop-first-non-sequence-value [s]
  (let [fst (first s)]
    (if (sequential? fst) 
        (let [[rst fst lvl] (pop-first-non-sequence-value fst)
              rst (if (and (sequential? rst) (seq rst))
                      (cons rst (rest s))
                      (rest s))]
          [rst fst (inc lvl)])
        [(rest s) fst 0])))

Brian02:02:03

A bit rough, but that at least solves your examples. Not sure how you'd want it to handle empty lists.

idiomancy02:02:55

so it does! nice!

idiomancy02:02:51

I'll be implementing this in a couple languages, so thats very useful, thank you!

👍 5
borkdude15:02:16

is anyone using neo4j as an alternative for datomic in their apps?

borkdude15:02:43

I wonder how they compare (if you don’t need the time dimension from Datomic)

borkdude15:02:02

@quoll had an interesting talk about it yesterday at ClojureD

dominicm15:02:11

There are approaches to modelling temporality in neo4j btw

borkdude15:02:42

Should I be surprised I don’t see neo4j used a lot in open source Clojure projects? At least that’s my impression

drone15:02:51

As opposed to datomic open source projects?

drone16:02:33

I have used neo4j with Clojure. The cypher query language is decent. Neo4j can be run in embedded mode and has a nice traversal API in Java. It’s also extensible via plugins

borkdude16:02:46

as opposed to e.g. sqlite or something

borkdude16:02:31

are datalog and this cypher query language isomorphic, i.e. would it be possible to write a 1-1 mapping?

drone16:02:49

I don’t know datalog

mpenet17:02:07

@borkdude Neo4j license for oss is quite limiting

drone17:02:15

What is quite limiting about the community edition? The comparison between community and enterprise edition is here: https://neo4j.com/subscriptions/

mpenet17:02:56

No HA for starters

mpenet17:02:13

Unless that changed

jaide19:02:45

I just saw this got announced, I think it’s relevant to this discussion? https://github.com/threatgrid/asami/blob/master/README.md

borkdude19:02:38

@jayzawrotny That’s what sparked my question: I saw the presentation on ClojureD yesterday 🙂

👌 5
blance22:02:18

any recommendation on what to learn after clojure? background: learned java/c/python in school, some js as side projects, then clojure professionally until now. so far i love clojure, and hate those c-like languages. but to be fair, i don't have many enterprise experience with them, plus emacs is not the best editor when it comes to writting java.. now i'm hoping to learn a new language to get out of my comfort zone, and hopefully can get fresh perspectives just like when I first learned clojure. so would it be better to install an IDE and go back to dive deep into c#/java/python? or should I look at scala/f#/haskell instead?

dpsutton23:02:35

Non functional languages feel a bit clunky to me now. Rust has a good balance and tooling is excellent if you want a bit more algol based languages. Else I would probably look into f#

dpsutton23:02:23

Haskell seems cool but it seems most people just talk about the types and laws rather than what you can actually do with them. (from my perspective anyways)

andy.fingerhut23:02:42

I'd recommend F# / Haskell if you want to stretch your mind in terms of fancier type systems, and what they can/cannot do for you. Python is good to dive into given awesome library support available, but as far as overall language features I doubt there is much that any of C# / Java / Python would teach you that the others would not (there are differences between them, but less then their similarities I think)

dpsutton23:02:32

Agree about python too. I really like it's focus on doing cool things and having libraries to help you do lots of stuff

blance23:02:56

thanks! so sounds like python is a great productive because of its awesome library, where as f#/haskell is a larger paradigm shift?

andy.fingerhut23:02:28

f#/haskell is less of a paradigm shift for someone accustomed to immutable data structures, as you are from using Clojure. Still a shift, but not like if you were coming from no use of a language that focused on immutable data.

blance23:02:59

i'll probably go with haskell then, f# doesn't look like it has much of real world usage:thinking_face:

dpsutton23:02:28

That is backwards in my experience. Way more real world f# than Haskell

dpsutton23:02:12

Every .net job is a potential f# job. Just toss a new assembly in the project. I've had a job exactly like that.

blance23:02:22

the same can be said for clojure with java right? the hard part is actually convincing people to let you toss a new assembly there

blance23:02:18

just did a bit more reading, sounds like f# is clojure + static typing + ml syntax?

dpsutton23:02:50

F# can much easier live adjacent to a big c# project in my experience

dpsutton23:02:17

And yeah that description of f# sounds right to me

blance23:02:50

in terms of learning static typing, would i miss much if I pick f# instead of haskell?

drone23:02:37

Haskell is at the edge of static type system research/exploration while remaining a language that people get real things done with

dpsutton23:02:42

Lazy is cool but it's not transferable to other languages. 3 years ago I chose clojure and every single algorithm or play around I've done since has been in that language so that I wouldn't be a tourist in a bunch of languages but live in one. I haven't regretted it. I would choose f# and do only f# (outside of work) for at least a year

seancorfield23:02:11

@blance Have you gone through Seven Languages In Seven Weeks, and the sequel Seven More...?

5
blance23:02:41

this sounds very interesting! i think i'll give it a shot

drone23:02:20

You’ll learn a lot more about types (and future directions of type systems) in Haskell than you will with F#

dpsutton23:02:45

My recommendation is whatever language you choose (and it's not very important which) you use it for a year and really learn it rather than looking again in a few months.

👍 10
Chase23:02:57

Rust seems like a cool complement to Clojure. Get to try out some low level, systems programming! Static typing. It's kind of described as Haskell meets C++. Syntax is a bit much for me and compile times are rough but hey, that'll make you appreciate Clojure's elegance and instant repl feedback even more!

seancorfield23:02:08

Of the languages I've learned "for fun" over the last decade-ish, Go was the only one I was disappointed with. Elm was a lot of fun. Rust was interesting. Kotlin is nice and practical. F# has typed providers which I don't think has been adapted to any other languages and seems like a very useful and powerful feature. I did the University of Washington online course "Programming Languages" to learn Ruby, Racket, and refresh my Standard ML (last time I used that had been in the 80's at university).

seancorfield23:02:34

In addition, I've done Java, ColdFusion/CFML, Groovy, Scala in production. And lots of Clojure.

seancorfield23:02:26

Earlier languages I've worked with include Prolog and APL which are both sufficiently different from mainstream languages that I think everyone would learn new stuff from both of them.

seancorfield23:02:57

(although I never used those in production, I worked at companies that did use them heavily in production -- APL at an insurance company where I mostly did COBOL and assembler; and Prolog at a firm of actuaries where I did C and Parallel C for the Inmos Transputer).

dpsutton23:02:17

Did they have special keyboards for APL?

blance23:02:31

thanks for all the input! i don't think i'll go wrong with any of the recommendation here. i'll try out each of the recommended one (and probably more), then dive deep into one

seancorfield23:02:34

Yup, and special golfball print heads on their teletypes.

dpsutton23:02:56

Haha that's awesome. It's so neat reading APL

seancorfield23:02:38

If I was on the Windows/.NET platform instead of Linux/JVM, I think I'd be a fairly hardcore F# user @blance so I think that's a good option, and fairly practical too.

dpsutton23:02:10

Visual studio is a fantastic product

dpsutton23:02:20

(if you're on Windows)

blance23:02:27

how's f# on linux? i don't have a windows machine for development:joy:

blance23:02:10

i read it's possible, but haven't seen anyone mention if it's as good as on windows machine

dpsutton23:02:34

I hear much better than when I was on .net.

👍 5
dpsutton23:02:15

Also I've seen a bit of f# community on Twitter and they seem awesome

seancorfield23:02:58

Yeah, the F# community is excellent in my limited experience. I attended an F# workshop at a conference several years ago to learn it for fun and the F# folks at the community sort of "adopted me" for the week and made sure I always had company for lunch and dinner.

seancorfield23:02:09

Partly so they could evangelize F#, I will add 🙂

jaide04:02:37

Not a bad strategy, can we steal it?

seancorfield04:02:07

I think we already did? 🙂

jaide04:02:15

Adopted you or or evangelize Clojure by wining and dining local neophytes?

seancorfield04:02:39

Hahaha... yes, all of the above! 🙂

cvic14:02:01

I just use alcohol.

😆 5