community-development

https://github.com/clojurians/community-development
orestis 2018-03-28T18:25:13.000085Z

@lee.justin.m sorry for being harsh myself before. Please continue to goad this channel, I believe there’s a lot of people that want to smooth the rough edges.

orestis 2018-03-28T18:26:22.000092Z

FWIW, here’s my blog post I was taking about: https://orestis.gr/your-first-clojure-code/ — I’d appreciate any feedback.

seancorfield 2018-03-28T18:26:45.000361Z

Agreed. If there is elitism, I suspect it's unknowing in most cases and should be (politely) called out.

orestis 2018-03-28T18:27:59.000662Z

I realise now that perhaps even the title might be a bit patronising? Native english speakers, any comments?

seancorfield 2018-03-28T18:28:14.000016Z

The main reason we have the #beginners channel (and now #programming-beginners ) here is to ensure that the non-beginners in those channels have opted into helping beginners and can try to be much more aware of that sort of thing (although I'm sure some of us miss the mark at times).

justinlee 2018-03-28T18:28:24.000103Z

I didn’t mean to be harsh, I just meant to point out that there is a constant head-in-the-sand attitude that is unfortunate. Expert programmers forgetting how steep the hill was now do not want to help the next generation up. The finest example of a project that smoothed over “trivial” details in a transformative way is create-react-app, which I was told in no uncertain terms by dnolan that it was a “monstrosity.” I don’t know what to say to that and it clearly isn’t something he or anybody else wants to debate. All I can do is associate with people who see it my way.

the2bears 2018-03-28T18:30:04.000781Z

Yes, discussion is good.

sundarj 2018-03-28T18:30:38.000626Z

doesn't seem patronising to me

seancorfield 2018-03-28T18:30:54.000729Z

I, personally, find the ClojureScript ecosystem/tooling to be an impenetrable mess and I get frustrated when I see beginners struggling with it because I have no way to help them 😞

john 2018-03-28T18:31:53.000114Z

I disagree with "head-in-the-sand attitude." But, you could always say I have my head in the sand 🙂

seancorfield 2018-03-28T18:32:17.000680Z

I think stacktraces and "bizarre" error messages are mostly just a "fact of life" in Clojure (unfortunately) so when folks struggle with those, helping them navigate/comprehend the underlying machinery is pretty much the only option right now.

2018-03-28T18:32:22.000149Z

my feeling there (and maybe this is elitism) is javascript rots anything it touches

3☝️
justinlee 2018-03-28T18:32:45.000412Z

@hiredman and i feel the same way about java

gtrak 2018-03-28T18:32:48.000495Z

I remember a recent conversation about how barriers to contribution are good but now barriers to entry are bad.

seancorfield 2018-03-28T18:32:57.000692Z

I was just about to say the same about Java 🙂

2018-03-28T18:33:44.000152Z

say what you will about java, but it at least has vaguely sane scoping rules

seancorfield 2018-03-28T18:33:48.000284Z

Contribution (to OSS) and learning (the tech) are two very different things tho' @gtrak

2018-03-28T18:34:08.000336Z

also integers (although unsigned ints might be nice)

gtrak 2018-03-28T18:34:41.000094Z

I understand that, but OSS is what motivated me to learn the tech, and I think a lot of people feel that way. They're not inseparable.

fellshard 2018-03-28T18:35:11.000129Z

JS is a machine of hidden complexity that continually re-emerges to bite you. Java is deeply complex, but generally stable and predictable.

orestis 2018-03-28T18:35:33.000357Z

I thought it might have connotations like “my first book” or something like that, like it’s aimed to babies? Not sure 🙂

fellshard 2018-03-28T18:35:57.000052Z

CLJS does its best to keep that complexity manageable, from what I've seen, but when it surfaces I can imagine it's very difficult to wrangle.

gtrak 2018-03-28T18:36:02.000511Z

Getting any CLJS project going takes me a few days of finding the right versions for everything. I recently shipped some Reason at work and it might have taken me a couple hours. I think CLJS is just overly complex and should be cannibalized into libraries.

john 2018-03-28T18:36:47.000322Z

@lee.justin.m We haven't forgotten how steep the learning curve is. We just don't have an awesome answer to that problem yet. And a lot of us don't have a lot of sympathy for that position because, like @hiredman, we know that it's actually an illusion. I am an expert clojure programmer, but that's because of my experience with it and the leverage it gives me. As result, I have become an expert programmer of sorts, but without clojure, I would not consider myself an expert programmer. Clojure turns to the computer into a thing I can understand.

sundarj 2018-03-28T18:36:51.000729Z

yeah, at least to me it doesn't at all, i wouldn't worry about it 🙂

gtrak 2018-03-28T18:36:58.000593Z

When they can shed the jvm it'll be fine for a JS dev, it's still a hassle for someone with a lot of experience.

michaels 2018-03-28T18:37:11.000479Z

responding to earlier comments in #clojure, just my personal experience! I find the clojure docs to be great. But I was just talking to another guy who though they assumed to much. I think they’re clear, concise, and frequently give examples!

john 2018-03-28T18:37:18.000302Z

I think I would have to be more expert and more elite in order to get things done in Java or Javascript, that I can get done in Clojure

1👍3☝️
michaels 2018-03-28T18:37:42.000741Z

And, compared to elm or something, the assumptions about academic language seem much less.

michaels 2018-03-28T18:38:06.000550Z

But, I like having some - I want to be pulled up to knowing more - as long as the bridge is there to climb.

michaels 2018-03-28T18:38:59.000414Z

Aspect oriented programing, DI containers, enterprise patterns - I constantly feel like “no one can possibly understand this stuff.”

fellshard 2018-03-28T18:40:20.000355Z

Teaching Elm in the right way can really dodge that 'overly academic' feeling. The Pragmatic Studio course did a fantastic job at walking through the pieces with solid explanations without feeling patronizing.

fellshard 2018-03-28T18:41:04.000363Z

Maybe there's a faulty assumption at play - that all you need is a set of resources you can read without needing anyone's help.

fellshard 2018-03-28T18:41:31.000423Z

'If I have the right tutorials / books / StackOverflow references...'

sundarj 2018-03-28T18:41:48.000340Z

it is perfectly possible for something to be both a monstrosity and something to draw inspiration from. you'd need to pull out the specific aspects of create-react-app you find cljs could learn from, rather than just saying 'create-react-app' (which would mean different things to different people)

fellshard 2018-03-28T18:42:02.000094Z

When in reality, the much more difficult and necessary learning is transmitted from one-on-one discourse.

2018-03-28T18:42:34.000538Z

I don't think that is the case either

sundarj 2018-03-28T18:42:45.000412Z

if you say 'static typing', different people will have different reactions to it; but if you say 'no runtime errors', you'd be hard pressed to find someone that thinks that's a bad thing

2018-03-28T18:42:55.000723Z

but most of the resources are not blog posts or stackoverflow questions

gtrak 2018-03-28T18:43:00.000520Z

CRA is a project template and fails in the same ways as all project templates.

justinlee 2018-03-28T18:43:17.000487Z

CRA is NOT a project template and it does not fail in the same way

fellshard 2018-03-28T18:43:21.000301Z

But is that what beginners are looking to?

2018-03-28T18:43:22.000256Z

they are pdfs of scanned in typed up memos from the ai lab at mit

justinlee 2018-03-28T18:43:31.000676Z

it can update the entire stack from underneath your project

justinlee 2018-03-28T18:43:46.000465Z

i know of no other template that can do that for you

justinlee 2018-03-28T18:44:03.000604Z

it may fail, but it fails in otherways

sundarj 2018-03-28T18:44:39.000537Z

you need to get across what you like about create-react-app specifically, rather than relying on the other person's ability to figure out what you mean

justinlee 2018-03-28T18:45:17.000645Z

@sundarj my real point is that is a lousy way to run a community

michaels 2018-03-28T18:46:32.000313Z

It’s hard to even know what you need until you had it in retrospect. I’m still a Clojure beginner: I’ve dabbled, and love it, but I haven’t “built anything” yet. I like the language, the documentation, and solving problems with it Codewars. My “points of difficulty” are all infrastructure. Understanding how to wire in dependencies, work with build tools, etc. Especially when I don’t yet have a frame of reference for how far they’re going/what they’re doing - and where I should dig in or not.

john 2018-03-28T18:47:04.000286Z

There's also the issue that lisps attract opinionated people, which in modern discourse is often mistaken as "toxic" discourse, which is sad

john 2018-03-28T18:47:35.000508Z

Seems like having an opinion is toxic these days 😞

2😞
justinlee 2018-03-28T18:47:37.000191Z

if you’ve read anything that’s come out after this survey, you must surely be aware that I’m not the only one!

sundarj 2018-03-28T18:48:29.000100Z

oh, i agree. communication is important on both ends. i was just trying to point out a possible reason for you being shut down in such a manner

fellshard 2018-03-28T18:49:17.000826Z

There's a much deeper discussion to be had about that, but the roots of that observation run very deeply.

sundarj 2018-03-28T18:50:20.000282Z

i cannot speak for dnolan

justinlee 2018-03-28T18:50:31.000402Z

The problem isn’t having an opinion, the problem is that there seems to be resistance to even acknowledge the thematic complaints that came out of the survey. It’s like pulling teeth just to get the barest concession that it could be improved.

justinlee 2018-03-28T18:51:01.000762Z

Maybe you really do think things are fine. I disagree. That’s fine.

john 2018-03-28T18:51:05.000466Z

Yeah, I'm not really trying to start a debate about cultural currents. But I'd like it if the 'suffocation of sensitivity' we're seeing these days had less of an impact on our community

john 2018-03-28T18:52:01.000632Z

has it really been like "pulling teeth?" I hope your critiques haven't been met with anger or grief.

2018-03-28T18:52:03.000099Z

@wmichaelshirk are you using the new clj tool at all? I am just curious because it seems like an attempt to stream line the getting started infrastructure, but it is still very new itself

justinlee 2018-03-28T18:53:26.000081Z

@john no they’ve been met with resistance and apathy, the ultimate killers

john 2018-03-28T18:53:56.000230Z

Apathy isn't ideal. Resistance should be expected.

michaels 2018-03-28T18:54:17.000185Z

I have used it - and loved it so far! Especially with the ClojureScript release on monday - getting off the ground is amazingly faster. I call those definite wins. My next hiccup is that using them is not envisioned with old tutorials that expect lein or boot - the work of sort of feeling through adapting from one to the other is what’s difficult. I don’t know if there even “is” a way to make that easy: Three years later I still have no clue what’s going on with Maven in my java development.

ghadi 2018-03-28T18:54:23.000546Z

@lee.justin.m I find your characterizations pretty denigrating to those of us who are not at all apathetic. my 2c.

fellshard 2018-03-28T18:54:54.000258Z

Sensitivity <- Perceived assault on truth <- Holding truth as being 'personal' <- The concept of relative truth <- Post-modernism The roots go very deep, so even if you try and dampen the effects of sensitivity, it won't change the roots: that individuals no longer have to discuss or justify why they hold an opinion; it is simply enough to say that you have one, and therefore it must be defended simply because it is held.

ghadi 2018-03-28T18:54:58.000366Z

there are major initiatives to address a lot of the recurring themes surfaced in the survey

justinlee 2018-03-28T18:55:17.000320Z

Okay sorry @ghadi.

ghadi 2018-03-28T18:55:25.000108Z

spec is a holistic effort that can improve error messages significantly

ghadi 2018-03-28T18:55:30.000700Z

Look at expound, pinpointer, etc.

john 2018-03-28T18:55:47.000022Z

I can admit to a slight apathy towards the years of the same complaints, over and over... I could do better. A lot of folks are super accommodating though.

ghadi 2018-03-28T18:55:47.000054Z

there will be more coming, I guarantee

michaels 2018-03-28T18:55:50.000430Z

In my java work, like someone else said, my real advances have come more often from a team mate walking me through things that from documentation or a tutorial - so that’s normal, i think. On Clojure - I have no teammates - trying to get off the ground on my own!

ghadi 2018-03-28T18:56:11.000625Z

One thing unaddressed with error messages is something that interprets stackframes

justinlee 2018-03-28T18:56:24.000149Z

@john I am definitely not directing any of my criticisms to you personally

bjr 2018-03-28T18:56:29.000712Z

Is the root cause of this feeling of discontent and not being listened to the speed of the reaction, as opposed to its content?

fellshard 2018-03-28T18:56:33.000441Z

Perhaps cross-referencing concerns with initiatives and libraries in one place could be helpful? Part of the perception problem might be that beginners expect to see 'one central solution' instead of a whole ecosystem of possible solutions. The Lisp Curse again.

bjr 2018-03-28T18:57:18.000162Z

I feel like there is major ongoing work to address the themes in community feedback, but it’s not done. It takes time and it may never be truly done.

sundarj 2018-03-28T18:57:57.000304Z

@lee.justin.m like most disagreements, the chances are people agree more widely than they are aware. the issue often lies with talking past one another

fellshard 2018-03-28T18:59:13.000242Z

This is where community is important, not just blogs and books - there needs to be people to help coach and mentor beginners, to help see that it's a continual work in progress, never perfected, but always maturing. To help appreciate 'good enough' while always striving for 'better'.

2
fellshard 2018-03-28T18:59:34.000587Z

It's a learned ability, not innate.

alexmiller 2018-03-28T18:59:40.000622Z

there are problems and things that could be improved

john 2018-03-28T18:59:55.000517Z

right, post modernism is partly to blame, on the cultural front. It's definitely complex.

2018-03-28T19:00:09.000057Z

usually what I see is someone complains about X a lot, X is not a priority for rich, at some point if it is doable rich will land a feature to make clojure extendable outside of core to handle X if someone writes that extension, the original people who complained about X vanish, and a continuing wave of new people complaining about X pass through without anyone bothering with the extension

2018-03-28T19:01:08.000122Z

I think communication here is key. @ghadi may be right, that cool things are coming, but I haven't heard anything about that. I'd love to hear/see a goal in place here. What's the end-goal for tools.deps? What's the end-goal for spec? We hear about things like "specs as data" but none of those have been in official channels.

5☝️
bjr 2018-03-28T19:01:20.000738Z

Is there an end goal?

2018-03-28T19:01:30.000411Z

And a lot of the time it's fine to say "we're working on X, Y and Z have to wait" but again that's communication.

ghadi 2018-03-28T19:01:39.000414Z

sometimes you don't know what the end state is

bjr 2018-03-28T19:01:42.000026Z

Does there have to be?

alexmiller 2018-03-28T19:01:56.000441Z

tools.deps is already past the initial end goal

john 2018-03-28T19:02:02.000156Z

@lee.justin.m well, with respect to the core team, for me personally, I really don't want dnolen wasting his time translating his opinions into words palatable by the whole world. And doubly so for rhickey. There is an economy of words, and I just don't want the core team burning cycles on marketing

3☝️
justinlee 2018-03-28T19:02:25.000541Z

“marketing”

alexmiller 2018-03-28T19:02:44.000078Z

my priority for tools.deps right now is finishing windows installers and after that reducing friction for integrating with various external things

alexmiller 2018-03-28T19:03:38.000398Z

the next thing for spec is going to be an update that has some api changes for more programmable/data-like versions of specs. Rich is still working on it.

1👍
bjr 2018-03-28T19:03:42.000378Z

Would a list of outstanding areas of improvement, libraries, core features, etc with current status, current resources, end goal, etc get everyone on the same page?

alexmiller 2018-03-28T19:03:51.000431Z

imo, no :)

bjr 2018-03-28T19:04:00.000322Z

right..is it about that?

john 2018-03-28T19:04:05.000659Z

yeah, you know, "CLJS is awesome because we don't use async/await!" rather than "javascript is just doing it wrong"

gtrak 2018-03-28T19:04:11.000573Z

there's a design page with a lot of vestiges on it

ghadi 2018-03-28T19:04:13.000576Z

value types in java is like 5+ years of research and experimentation. clojure.spec had a very very rich history / predecessors. It is a different situation for smaller more focused things like tools.deps. Different things have different story arcs

john 2018-03-28T19:04:14.000777Z

which is bad marketing

justinlee 2018-03-28T19:04:22.000387Z

tooth pulled, no anesthetics needed

alexmiller 2018-03-28T19:04:33.000660Z

there are at least 3, maybe 4 other projects that Rich, Stu, or I have spent significant time on in the last year that are not yet public as they are in various states of thinking/development

bjr 2018-03-28T19:05:14.000715Z

that’s exciting

alexmiller 2018-03-28T19:05:31.000670Z

I first started working on tools.deps in 2016

alexmiller 2018-03-28T19:05:46.000463Z

maybe 2015 even

2018-03-28T19:06:21.000347Z

@john where did you see someone make that critique?

john 2018-03-28T19:06:46.000169Z

@hiredman I manufactured that one synthetically

john 2018-03-28T19:07:37.000291Z

but I think it's a common refrain

hypirion 2018-03-28T19:08:06.000282Z

Is the rationale for not exposing these to the "outside world" because you think they will be thought of as promises, or is there some other reason? Or perhaps you already do, but to a limited set of people?

alexmiller 2018-03-28T19:08:09.000275Z

could all this be public? sure, probably. the issue is that then you spend all your time responding to people rather than trying to realize an idea. that’s a tradeoff. I know where Rich is on that tradeoff. :)

hypirion 2018-03-28T19:08:24.000091Z

hah, zing.

hypirion 2018-03-28T19:09:41.000540Z

I think some people in the community could give valuable feedback on some of these ideas. For tools.deps.alpha for example, it would be really nice to approach the problem by talking to the Lein/Boot developers (Not sure if you spoke with the Boot ones), as they have insight into the community pains and may already have some ideas on their own

alexmiller 2018-03-28T19:10:14.000114Z

the goals of tools.deps are imo completely different than the goals of lein/boot

alexmiller 2018-03-28T19:11:19.000489Z

and we have at times sought feedback from individuals in advance. I had several discussions with @cfleming about his macro grammar stuff and with others about various related work prior to spec for example.

1👍
alexmiller 2018-03-28T19:12:02.000734Z

I did 2 complete impls that were thrown away before Rich started the thing that became spec

alexmiller 2018-03-28T19:14:02.000381Z

if I had released one of those early impls, people would have been picking that to pieces. would we then have been able to just throw it away? dunno. once things reach a certain level of popularity / visibility, you are constrained in your ability to experiment in public without being tied to those experiments.

6☝️
hypirion 2018-03-28T19:14:22.000325Z

I'm happy to hear that you bring in individuals in the community with expertise/knowledge on particular subjects when you feel it's sensible

fellshard 2018-03-28T19:14:29.000592Z

Even the spec alpha showed signs of that.

alexmiller 2018-03-28T19:14:32.000032Z

people would instead complain that we had released something without documenting it

2018-03-28T19:14:32.000207Z

Sounds like we're about to get that anyway with the spec-as-data updates?

john 2018-03-28T19:14:53.000515Z

should have waited longer 😉

alexmiller 2018-03-28T19:15:23.000108Z

this is just an inherent tension in these things. there is no right answer to any of these questions.

3☝️
alexmiller 2018-03-28T19:15:34.000383Z

afaict, all answers gather complaints :)

bjr 2018-03-28T19:16:08.000635Z

That’s not fair - there should be no penalty to publicly recognizing one has learned and previous work must be thrown away.

alexmiller 2018-03-28T19:16:28.000247Z

it should be largely api compatible from what I’ve seen

3
alexmiller 2018-03-28T19:16:48.000668Z

but there is

john 2018-03-28T19:16:53.000122Z

Different strokes, different folks. Rich may have some regrets not waiting longer now. Maybe not.

alexmiller 2018-03-28T19:17:32.000167Z

no regrets - it needed to be public and get feedback when we released it

bjr 2018-03-28T19:17:33.000196Z

@alexmiller agreed there is - just hope we can be more supportive in this forum

fellshard 2018-03-28T19:18:53.000360Z

It's a balancing edge, and you have to play it by ear. Give some grace. : )

john 2018-03-28T19:19:56.000627Z

@bjr well I was just kidding, btw

alexmiller 2018-03-28T19:20:19.000293Z

I’m taking off for some spring break time with the kids, talk to y’all later

3👍6👋
john 2018-03-28T19:20:42.000574Z

Thanks for the feedback Alex!

justinlee 2018-03-28T19:22:40.000393Z

yes and since i was the one griping let me say to all the people who contribute, I really appreciate all the work they do and all the grief they get. i only complain because i love what’s being done here and i want it to work

6➕
john 2018-03-28T19:27:22.000150Z

Also, with respect to complaints, I think it's important to remember, the gift of Clojure has already been given. All this other stuff is mostly icing on the cake. You're here because you like the cake, not the icing. Some icing is disgusting and I'm not much for sugar these days, but regardless, I'm here for the cake and if and when I leave, it'll be because I found a better cake, but not because I couldn't work with the icing.

gtrak 2018-03-28T19:28:00.000053Z

no, I pick tech because I think it'll be good in the future, too, after the project I'm doing right now is done

john 2018-03-28T19:28:24.000319Z

That's what I mean by the cake

john 2018-03-28T19:28:43.000383Z

seems like most (valid) complaints these days pertain to the icing

seancorfield 2018-03-28T19:28:49.000156Z

As an active Boot user and maintainer of several Boot tools — including boot-tools-deps — I feel that @alexmiller has been super accommodating and inclusive with the tools.deps stuff.

3👍
bjr 2018-03-28T19:29:56.000537Z

the keep the metaphor going — the beginner often fails to see beyond the icing

gtrak 2018-03-28T19:30:04.000164Z

in 2011 it was a smaller cake but went down easier :)

john 2018-03-28T19:34:22.000561Z

indeed

john 2018-03-28T19:35:00.000652Z

and from the outside looking in, folks could easily think that all this complaining going on has to do with the cake itself. When, in reality, everybody is arguing about the icing.

john 2018-03-28T19:51:34.000126Z

Well, it's no ocaml cake 😉

gtrak 2018-03-28T20:13:00.000533Z

Basically anyone using ocaml is either a die-hard or new JS developer looking for something less insane.

gtrak 2018-03-28T20:13:45.000354Z

I just happen to work at a company that uses it, because, hey, it's not java.

gtrak 2018-03-28T20:14:12.000233Z

We're also totally happy with being broken every few months because jane st libs don't pretend to be a community project.

gtrak 2018-03-28T20:15:18.000664Z

they do use github though

john 2018-03-28T20:15:26.000440Z

lol

cfleming 2018-03-28T20:51:16.000236Z

@fellshard Do you have a link to that? I’d like to see it.

fellshard 2018-03-28T20:54:17.000637Z

https://pragmaticstudio.com/courses/elm

fellshard 2018-03-28T20:54:55.000437Z

Less exercises in this one than they have in their Elixir course, but in general it's sturdy for a video course. YMMV : )

cfleming 2018-03-28T21:41:46.000272Z

Thanks!

cfleming 2018-03-28T22:23:46.000280Z

While it’s true that we had some discussions about what I presented at the conj, after that I heard nothing for a long time and then spec came out, which looks basically nothing like what we discussed. I don’t think I had any meaningful level of input into it.

cfleming 2018-03-28T22:24:23.000442Z

I mean, it is what it is, it’s how Clojure is developed. But I don’t think it’s a good example of community feedback shaping a feature.

bjr 2018-03-28T23:36:31.000261Z

exactly