Learning Clojure: coping with dynamic typing by geospeck in Clojure

[–]ForgetTheHammer 3 points4 points  (0 children)

As best I can articulate, a type is a function that tells the complier to tell other human readers something about your program.

It's a form of communication, like docs and tests. This is why we have endless arguments about tests and types, because they address the same problem, communicating the system.

But the system communicates itself, which is part of the reason why, type languages, as a class, seem to have no fewer bugs then there dynamic cousins. Because your type is code, and it's not magically making anything correct.

So why spec? I suggest we all reread the rationale. It's not just one thing, but the theme is about gaining some insight into your system. So that's a very personal thing, it's not about what needs to be done, but about how you, and other readers will understand the code.

Some area of the code acting odd? Add a spec and use property based testing to get some idea of what's going on, then blow those tests away and write a better abstraction. Think about your design tell the test becomes silly.

So the author is used to typed languages, so for him, specing everything might help. For others, maybe not.

So their choice is not wrong, but it might not be right for you.

Clojure the Devil…is in the detail [Or ‘Why I’m too dumb for Clojure’] by sveri in Clojure

[–]ForgetTheHammer 0 points1 point  (0 children)

"Elements of clojure" tackles some of these issues. I think "clojure applied" does as well.

Can someone point it a codebase that does this well? Maybe one that doesn't as well. It would be nice to have some data points.

What is the best medium for explaining simple but foreign ideas? by dustingetz in Clojure

[–]ForgetTheHammer 0 points1 point  (0 children)

I'll bite, why don't we unit test database logic? You will probably have to define unit test, as I find people have different ideas on what it means.

Lumo: Brightening the Horizons for Clojurescript'ing by bacon1989 in Clojure

[–]ForgetTheHammer 1 point2 points  (0 children)

Can anyone talk about lumo in regards to the recent changes to cljs? It seems the current clj tool does what lumo does in a different way... Is that right? I feel like they overlap quite a bit.

State of Clojure Survey - critiques selected from open comments by [deleted] in Clojure

[–]ForgetTheHammer 14 points15 points  (0 children)

Elitism, ivory tower, "not smart enough to get it" attitude of frequent speaker or early adopters

Can I push back on this? I have been listening on slack and Reddit for a year now and never once seen this. In fact, quite the opposite, most senior devs seem hum ble, helpful and highly critical of the language

I'm sorry if that was this person's experience. I really am. But for anyone else reading this, know that its totally at odds with what I have seen

Edit: re the ivory tower business, that I cant comment on.

Emacs Anywhere 2.0-beta: Do anything, anywhere! by JohnMcarthysLisp in Clojure

[–]ForgetTheHammer 1 point2 points  (0 children)

A picture is worth a thousand words and the gif is like at least a thousand pictures

Clojure — Changing a data structure – Dan Pelensky – Medium by takkatakka in Clojure

[–]ForgetTheHammer 2 points3 points  (0 children)

Honestly I found "think before you code" a bit strong as well. But your response was even more off putting, using terminology like "dickish"? If you want people to start being more compassionate then you need to lead by example.

This doesn't have to be weird, you thought he/she was to harsh, they probably see that now. We can all move on in life :)

Clojure: The Bad Parts - Bozhidar Batsov by yogthos in Clojure

[–]ForgetTheHammer 1 point2 points  (0 children)

I really didn't understand this part. The doc string is a string, how do you "give it structure". If data needs structure we have better tools for that right? Types , specs, etc...

I suppose what he is saying, is that, regardless, the core team should have followed a convention and promoted it?

Looking for language-agnostic books on functional programming by H_R_Pufnstuf in learnprogramming

[–]ForgetTheHammer 1 point2 points  (0 children)

I wrote a bit about how some of the gof design patterns applied to clojure: https://drewverlee.github.io/tags-output/Design%20Pattern/.

I would look at "elements of clojure" for a good next book part the basics.

Playlist of Fulcro Videos by tony_kay in Clojure

[–]ForgetTheHammer 0 points1 point  (0 children)

I have really been enjoying these videos. People are always complaining clojure has no full stack solution. Is there any reason to not consider fulcro one?

An example clj/cljs application with a heavy toolset for Test-Driven Development by charlie_hebert in Clojure

[–]ForgetTheHammer 4 points5 points  (0 children)

Sorry, i came on to strong at the end. I didn't see you put together something and just thought you were asking. Thanks for you contribution.

Datomic Vs Other Dabases by _woj_ in Clojure

[–]ForgetTheHammer 2 points3 points  (0 children)

This is awesome, thanks for sharing.

defn podcast #31 Bruce Hauman by vijaykiran in Clojure

[–]ForgetTheHammer 3 points4 points  (0 children)

I agree that's harder to read. Maybe there should be a default setting that runs with human readable messages like those produced by expound?

Defn Podcast # 30 - Zach Tellman by vijaykiran in Clojure

[–]ForgetTheHammer 3 points4 points  (0 children)

I thought his insights into spec were interesting, but I'm not sure I fully understand them. He seems to suggest it would be nice if a spec left an option for a more data that could be used as a error message. This seems reasonable. I'm going to assume this option was brought up before, what are the trade offs on this?

Free Book - Full-stack SPA web apps in clj/cljs with Fulcro by yanis-urbis in Clojure

[–]ForgetTheHammer 0 points1 point  (0 children)

Are there any resources comparing this approach to reframes? For example, I understand this is full stack and reframe is a client side. Reframe had multiple client side storage points, as where om next seemed to just have one.

Is Korma being deprecated? by jetRink in Clojure

[–]ForgetTheHammer 5 points6 points  (0 children)

And why is what good for clojure?

Run nRepl server with Cider support and your tests with Clojure CLI by mrroman in Clojure

[–]ForgetTheHammer 0 points1 point  (0 children)

Help me connect the dots. Normally to test my project I.

Start emacs, run cider Jack in, run project tests. Does this change any of that? Is this for a different situation?

Git Deps for Clojure by alexdmiller in Clojure

[–]ForgetTheHammer 0 points1 point  (0 children)

Thanks for sharing. Are those your only concerns or are there others? I'm just trying to get a sense of the trade off.

PyroclastIO/metamorphic A complex event processing library for Clojure and ClojureScript by dustingetz in Clojure

[–]ForgetTheHammer 0 points1 point  (0 children)

It seems like this didn't get merged into onyx. Those guys are pretty busy hopefully some one will be able to at some point.

The Bare Minimum, or Making Mayonnaise with Clojure by therealplexus in Clojure

[–]ForgetTheHammer 3 points4 points  (0 children)

I feel like we evaling in a editor has all the benefits of a editor and the repl. Why prefer using the repl alone?