This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-08-24
Channels
- # announcements (3)
- # beginners (128)
- # boot (2)
- # braveandtrue (97)
- # calva (13)
- # cider (4)
- # cljdoc (12)
- # cljs-dev (16)
- # clojure (78)
- # clojure-germany (8)
- # clojure-italy (5)
- # clojure-nl (1)
- # clojure-spec (59)
- # clojure-uk (29)
- # clojurescript (46)
- # core-async (9)
- # cursive (63)
- # data-science (3)
- # datomic (22)
- # devcards (1)
- # duct (7)
- # emacs (4)
- # flambo (2)
- # fulcro (37)
- # instaparse (6)
- # jobs-discuss (38)
- # juxt (1)
- # off-topic (35)
- # om-next (1)
- # parinfer (7)
- # re-frame (14)
- # reagent (6)
- # reitit (21)
- # rum (1)
- # shadow-cljs (74)
- # spacemacs (8)
- # specter (1)
- # sql (3)
- # testing (2)
- # unrepl (2)
- # yada (6)
yeah I’ve found in my current role being able to mentor on what I know is almost as valuable to the org as using what I know
sharing knowledge is a force multiplier (kinda obvious in hindsight) but every other thing I’ve done has been head down at the keyboard so it’s a new thing
It's also incredibly rewarding. Bashing out code for new features or whatever can feel a bit hollow. Helping colleagues and friends grow and improve just feels better
yeah, it’s been a pleasant surprise. Just bummed out my teaching people clojure hasn’t stuck
even trying to explain why closing over and removing shared state in say python or whatever can reduce bugs… it’s quite hard to get the new way of thinking to click, and it’s probably just that I’m a bad teacher
¯\(ツ)/¯
and it’s really about the student mostly, if they are not ready the best teacher won’t make a difference
things only truly stick once a person has encountered the problem, and found that your way solved it more efficiently than their way
there can be a long delay between the moment of you sharing the knowledge/technique and the moment of AHA! in the student, which you don’t always get to witness unless that person comes back to say thanks, maybe years later
it’s not about the quality of your teaching, it’s inherent in how teaching works 🙂 (and also why I make an effort to go back and thank people who taught me something which perhaps I didn’t appreciate enough at the time.)
> there can be a long delay between the moment of you sharing the knowledge/technique and the moment of AHA! in the student, which you don’t always get to witness unless that person comes back to say thanks, maybe years later this is very true
> and also why I make an effort to go back and thank people who taught me something which perhaps I didn’t appreciate enough at the time me too 🙂 it feels good
Is it just me, or does it seem like there’s been a recent-ish swing from from back-end to front-end in the Clojure(Script) jobs that are showing up here?
no, it’s not just you
cljs and re-frame are booming
It's still on my TODO list to use re-frame (most of my friends don't like ClojureScript because they say the tooling is too weak). What are the killer features of re-frame?
Why Should You Care?
Perhaps:
1. You want to develop an SPA in ClojureScript, and you are looking for a framework.
2. You believe Facebook did something magnificent when it created React, and you are curious about the further implications. Is the combination of reactive programming, functional programming and immutable data going to completely change everything? And, if so, what would that look like in a language that embraces those paradigms?
3. You're taking a Functional Design and Programming course at San Diego State University and you have a re-frame/reagent assignment due. You've left the reading a bit late, right?
4. You know Redux, Elm, Cycle.js or Pux and you're interested in a ClojureScript implementation. In this space, re-frame is very old, hopefully in a Gandalf kind of way. First designed in Dec 2014, it even slightly pre-dates the official Elm Architecture, although thankfully we were influenced by early-Elm concepts like foldp and lift, as well as Clojure projects like Pedestal App, Om and Hoplon. Since then, re-frame has pioneered ideas like event handler middleware, coeffect accretion, and de-duplicated signal graphs.
5. Which brings us to the most important point: re-frame is impressively buzzword compliant. It has reactivity, unidirectional data flow, pristinely pure functions, interceptors, coeffects, conveyor belts, statechart-friendliness (FSM) and claims an immaculate hammock conception. It also has a charming xkcd reference (soon) and a hilarious, insiders-joke T-shirt, ideal for conferences (in design). What could possibly go wrong?
but tl;dr it makes dealing with state, UI updates and the limitations of JS a lot less painful when writing javascript applications for the browser
@mauricio.szabo single-source-of-truth for app-state, simple (comprehensible) model for updating app-state in response to events, straightforward way of letting view components depend on parts of the app-state
the tooling is pretty good too, hot reloading etc and debugging are not bad at all 🙂
@mauricio.szabo Speaking of tooling and re-frame, these are great: https://github.com/Day8/re-frame-10x https://github.com/flexsurfer/re-frisk
I gave a presentation at our last meetup on re-frame: https://www.youtube.com/watch?v=Pq5oof3SJXA slides here: https://www.slideshare.net/PaulBostrom/build-your-next-single-page-app-in-clojurescript-and-reframe sorry for the poor quality, I recorded on my phone
@gadfly361 10x also ships with the lein template doesn't it?
@alex.lynham yeah, if you add +10x option
👍 thought so
10x is what I tend to use so I figured it must ship with the template as I like having some batteries included 🙂
Honestly I never liked re-frame, starting from the gratuitously dense chosen concepts ("coeffects"), to ugly fn-names (`reg-sub`), glorified fn invocations (`re-frame.core/dispatch`), to a fostering of ad-hoc patterns (keyword soup + 'data clumps' as per
)
At work we use https://github.com/metametadata/aide , it's not perfect but you can check how its source is smaller than re-frame's README.
And we got a large, impeccable app out of it
(`/rant`)
Aide looks interesting, but I quite like reframe
Took some time to really understand but now I feel very productive with it, and by the way you can also use namespaced keywords which improves the keyword situation
I wanted to agree with that first bit in particular…I haven’t been super impressed by re-frame but I don’t know anything about aide
.
Back in the day, before they updated their docs, re-frame had a bunch of confused and confusing links to various FRP docs which showed me there wasn’t a lot of thought placed into that side of the project.
All of that aside, I’ll take it over om.next any day of the week…