Since 2.0 is nearby, I would like to ask for some ...
# arrow-contributors
a
Since 2.0 is nearby, I would like to ask for some collaboration regarding our website. We expect that with the new version some new people may be interested in Arrow, so this is a perfect moment to make a good first impression. So I would like to ask: • do you think that the website is good for a newcomer to understand what Arrow is and how to get it in the project? • do you miss any content in the website? we could clearly have more everywhere, but is there something where particular effort should be put? Feel free to drop your thoughts in this thread, or to send me a message in Slack. thank you color in advance!
c
Not something specific, but more of an open-ended remark. I have seen many people avoid Arrow immediately because "it's functional programming, it's too complex for me", without even reading a single article. Especially since
Raise
, I think this distinction is becoming harmful to us. A codebase that uses
Raise
isn't particularly more functional™ than a codebase that uses coroutines or exceptions, the three follow the same rules. Of course, Arrow is about functional programming, but that's very different from what the mainstream understands as functional™ (which can be summarized as "endless nested `flatMap`"). That's even more true when we talk about libraries other than Arrow Core. For example, Arrow Resilience is just a good Kotlin library, it's about adding new features in an idiomatic way, it's not even particularly about functional programming. I'm not really sure what the solution is, though.
d
Text a bit too fade in dark mode here:
Also, maybe some real world use-cases section in some How-to section could help show that it's not only for the functional world AND give hints on good practices in more practical/complex situations (like use of a combination of multiple Arrow components in Ktor or Android, in different situations etc...)
The docs usually deal with much simpler examples...
p
Also I noticed the other day, the footer "Community" link points to https://arrow-kt.io/community/support/ which is full of placeholder text
@CLOVIS maybe the headline "Arrow brings idiomatic functional programming to Kotlin" needs to focus more on "Arrow brings the power of functional programming to idiomatic Kotlin"? - i.e. not bringing FP (and the math/cat-theory etc) but the benefits of FP.
a
@CLOVIS what do you think would be a better catchphrase? I don't think that people actually have an opinion about "functional", those programmers are (still) a minority.
@dave08 we added https://arrow-kt.io/learn/design/projects/ some time ago for the goals you mention; should this maybe be more prominent?
j
An image is better than 1000 worlds, from my point of view, sharing a little snippet/gif showing the potential of Arrow would be great. For example, I was seeing impossible to create a compiler plugin easily with my knowledge in those days. But I saw the gif from Arrow Meta showing how to create a compiler plugin with a nice and accurate DSL in seconds so I tried it instantaneously and I got a POC working in minutes.
hello-world-compiler-plugin.gif
d
Javier is right, having a few snippits from those projects on the site or maybe even comparisons before/after in those use-cases portraying how code looks w/ and w/o arrow would be great! And that page is in the Design section, which I would NEVER look at as a beginner using the framework... it for sure could be a more prominent...
Also links to videos or important points in videos on features in Arrow could be interesting.
I really liked what Prepared did for example code (w/ those popup comments to show the features), but this is only one example of what could be done: https://opensavvy.gitlab.io/groundwork/prepared/docs/features/index.html
❤️ 1
c
@phldavies yeah, I like "Arrow brings idiomatic functional programming to Kotlin", with focus on "idiomatic". I feel like today, Arrow contributors focus a lot more on "being idiomatic in Kotlin" than "bringing stuff from functional languages" (which I think is great!)
It'd be great to emphasize projects other than Core, too. Right now, Arrow Core is fairly well-known, but Arrow Resilience is almost unknown, and IMO it deserves at least the same popularity
a
being a bit of devil's advocate, I think that the mainpage shows the main use cases (including resilience) quite well (https://arrow-kt.io/) but... maybe it would be better if one didn't need to scroll that much to see it?
right now we showcase videos on every related page, maybe it's worthwhile haing all of them also linked in a single place?
j
I am checking the docs and from the main page I need to do 3 or 4 clicks to find code.
c
@Alejandro Serrano.Mena The main page just says "resilience exists", but it doesn't emphasize nor explain it much
👍 1
e
One thing I love about Arrow is that it feels like a pragmatic/practical approach to FP in kotlin, as opposed to a more idealistic/pure approach. This may be more important than it being idiomatic for folks who are curious. You could argue that it being idiomatic is expected?
a
I agree that being pragmatic is important. But I think that idiomatic is also very important to people, because in some communities there's a big split between the "regular" and the "FP" code (for example, if you use Scala with ZIO, you get something very different that regular Scala)