off-topic

https://github.com/clojurians/community-development/blob/master/Code-of-Conduct.md Clojurians Slack Community Code of Conduct. Searchable message archives are at https://clojurians-log.clojureverse.org/
seancorfield 2020-09-02T04:57:25.255400Z

Whenever I need a reminder why I do Clojure instead of Java, I drop into the Java Ranch and read some posts there: https://coderanch.com/t/733444/java/Refactoring-cleaning-code

seancorfield 2020-09-02T04:58:30.256600Z

My first thought reading this is "Argh!" but mostly "Even with Java interop, this would be so much easier to read in Clojure".

seancorfield 2020-09-02T04:59:26.257400Z

(and that really helps after the heavy refactoring of legacy Clojure code I've been going through the past couple of weeks -- today we finally said good bye to some code we wrote eight years ago, when we didn't know much about Clojure)

💯 2
😂 1
chucklehead 2020-09-02T05:46:13.257800Z

tangentially related question that I was getting ready to ask anyway...if one had to learn more Java are there resources you'd recommend? Particularly any that might also teach things that would also be useful to know when working with Clojure (e.g. JVM internals, or other things from the Java ecosystem/technologies, if that makes any sense?) For some context, I've worked mostly with .NET for the last 15-16 years. I had some minimal exposure to Java in university CS 20ish years ago and got roped into building a couple Nuxeo plugins in Java a few years ago, but basically learned just-enough to do what I needed. I'm new to Clojure and have been learning over the summer. Now I'm going back to finish the CS undergrad from 20 years ago and I know some of the upper-level coursework is going to be in Java. I managed to muddle through the exemption exams for the OOP and data structures courses but that was enough to convince me I should brush up on Java before I take anything too serious.

2020-09-02T12:26:20.280100Z

threadpools are also an important concept, and usually java implementations are used

jumar 2020-09-05T05:46:32.365Z

Effective Java, Java concurrency in practice, some of the good Java Performance books, Apangin’s posts on StackOverflow and his talks

chucklehead 2020-09-02T05:50:57.258500Z

I have a little bit of time, since, as luck would have it my first course is actually using C89

seancorfield 2020-09-02T06:13:11.260500Z

I'll be very interested in any answers to that. I started doing Java in 1997 so at this point I've no idea what would be considered good introductory resources, especially in the context of Clojure idioms or ecosystem.

seancorfield 2020-09-02T06:15:14.262300Z

My first reaction is: some basic knowledge of classpaths, stacktraces, and if you're actually going to write Java some familiarity with the Function/Stream stuff introduced in Java 8? (so you've got at least some FP-style Java under your belt) I'd love to hear other folks' responses.

seancorfield 2020-09-02T06:24:06.263600Z

(not that I think that addresses your coursework question, just your Java in the context of Clojure question)

chucklehead 2020-09-02T06:48:26.274Z

thanks, those are the kinds of things I'm looking for. Basically anything for someone with a reasonable CLR background to come up to speed on whatever constitutes idiomatic/clean/modern Java. Anything that might apply in a coursework context would also be a bonus, but I'm fine learning the coursework from the course when I get there. I just don't want to be constantly translating concepts between C# (or Clojure) and Java in my head while also trying to digest something else so just want to get some more actual experience beforehand

chucklehead 2020-09-02T06:48:58.274600Z

probably overthinking it, just odd to be going back to a class setting after so long

slipset 2020-09-02T07:00:21.276200Z

Slightly off topic, but while helping to release clj-commons/clj-yaml I accidentally happened to have look at the underlying Java lib which does the actual work. So much code. So I just left.

Endre Bakken Stovner 2020-09-02T07:11:05.278600Z

@chuck.cassel Beginner/basic Java/OO: Head First Java. For experienced programmers, Java Core for the impatient seems good. TOC here: https://www.oreilly.com/library/view/core-java-for/9780133791563/ You can see that it covers functional stuff like lambdas and streams.

1
chucklehead 2020-09-02T07:18:30.279Z

thanks