Some thoughts on community building

Indeed, I felt heart broken in that post, it was a tough week but I moved on.

The best thing you can do is just focus on thing you care.

10 Likes

I think all new languages – even on existing platforms – need that to succeed. The “better TypeScript” that people will adopt is TypeScript next year. I don’t think that’s a winning stragegy for ReScript – it’s not a library.

So I worry that ReScript might be in the process of either losing its own USPs, or pushing its rebranding so far that people think it has.

But what do I know, that might not be the path you (as a team) go down, or you might go that way and suceed. And either way I do expect to enjoy the results of the improvements you’re making.

OK, no more of that from me :slight_smile:

5 Likes

I just made an account to discuss this exact topic :laughing:

I’ve been using ReScript for over a year now and love it. However, the lack of visible community has been concerning. Here are two actionable suggestions:

  1. A Roadmap
    Make this big-and-visible on the homepage. Get people excited and set expectations. Don’t make changes feel like a burden or surprise.

  2. Newletters
    A good newsletter keeps less active members informed on changelogs, conferences, community articles/libraries/products, job postings, etc. This is my prefered way to get developer news. Ruby, Elixir, and CSSTricks have great newsletters to mimic. Even emailing only the blog posts would help.

11 Likes

I don’t think this point is very important, but I generally have two categories of languages that I recommend to people. There is a category of languages that I would recommend to others because it seems like a choice that isn’t too difficult to learn and navigate, with some elements of what I am excited about. I put scala, elm, ReScript, f#, and clojure in this category. Then there are the languages which I would be excited to use. I put ocaml, purescript, rust, and haskell (and reflex-dom) in this category. I put more effort into advocating for the second category of languages, which is free marketing and labor for that language. ReScript used to fall within the second category for me. Overall, I don’t think free marketing is that valuable.

2 Likes

One thing that might be able to help out, is getting like a rescript course out there on Udemy.

There are a few instructors with great scores there, and a fanbase to just buy courses simply because it is of “X” instructor. Perhaps it is worth some consideration sponsoring an instructor to write a course on Rescript.

There are quite some good instructors, but one of my favourite is Stephen Grider, and I recall him saying he might do a reason course some day (but that was a few years ago). I think perhaps now is a good time to get started.

2 Likes

Beginner friendly Forum

I think that the onboarding on this forum should include welcoming messages for beginners.

I’ve seen several people starting their posts with “I wish there was a category for beginner questions”. Beginners should feel at ease of posting their “stupid” questions. I feel that they perceive this forum as for Experts-Only. Myself I’m not an expert but I’ve been using Rescript for more than a year. Coming from the Discord chat, I knew that this forum was beginners-friendly. But others who land here as their first contact with the Rescript community might feel intimidated.

3 Likes

We actually did that recently!

^ This particular post should show in the pinned message when they join for the first time. I also think they will get a notification pointing to that resource if I am not mistaken?

3 Likes

Maybe there could be a dedicated “small questions” topic? (Not even necessarily for “beginner” questions.) I think there’s some hesitancy people experience when they want to ask a seemingly small or “noob” question and they’re expected to create a new topic for it. Replying to an existing topic (or asking in a Discord chat) feels like less of an investment.

4 Likes

I’ve seen some Reddit channels creating a topic for beginner questions weekly so that it doesn’t become one overlong thread.

4 Likes

Hi, I wanted to provide a perspective from an ex-react/js developer.
I started using ReasonML, because our app had grown too much and got error-prone. Of cource i first looked into typescript, but for me it felt like it would only add noise to the code base. So i kept using js until i stumbled upon reasonml.
I started rewriting half of our app in reason, learned about functional concepts and even made a presentation for my colleges.
It took me a year to convince my colleges, but now we are slowly adopting reasonml. And hopefully rescript will follow.
The only thing i didnt like with reasonml was the array syntax and [@bs…]. Those look very nice in rescript, unfortunatly list-syntax got worse imo. Also my exitement about new consice ways to write code with Infix-O. or ppxes etc. were crushed when the intial announcements were out.
It was already hard for me to find sources for advanced stuff one can do like type-classes and such (learned a lot by reading Relude btw), but it feels like all those thing are discouraged and were almost not mentioned. And all the fun (pun intended) part is gone :cry:

Instead of provding verbose syntax for lists e.g. maybe for discouraging the use of it (?), i would have preferred a some-what hidden advanced section in the docs, so less enthuasiastic new-comers were not scared off.

Enough of crying: I learned A LOT about programming, languages & sw in general thanks to this project and i appreciate it! Thanks a lot to @Hongbo and whole rescript team :love_letter:

One last thing regarding windows: with wsl2/wslg there are almost no issues left and it keeps getting better, im even on arch with the latest kernel :partying_face:

2 Likes

what do you use now?

For me, as a new comer to Rescript, the biggest turnoff, is that I cant use Rescript stand alone
While I understand that compiling to JS is Rescript raison d’être

I was hoping, I can just install and use Rescript to write Rescript scripts
I thought it can just compile to JS and run using node, hopefully transparently

I will probably go back to Purescript, or F# , but I will surely keep a look on Rescript , once I start doing any real web work, I might focus on it more

I am not saying we need native Rescript, RS can use Node as its interpreter, I am saying if we can use RS standalone as an interpreted language, to write everyday script, to manipulate files, or get data from db, will be a great plus

I hoped I could just download Rescript, and go into a repl, or write and execute simple .res file

You can currently call the compiler (not the rescript executable) directly to do this and pipe it into node.
This is assuming you have a global npm installation of rescript.

npx bsc MyScript.res | node

If the script contains parts of the ReScript Stdlib, you will need to npm link it before.
npm link rescript

You can put it in a shellscript, npm link automatically checks if something already has been linked:

#! /bin/zsh

npm link rescript
npx bsc $1 | node
2 Likes

Thanks

I am on windows so I used powershell

res.ps1

param(
  [string]$FileName
)

npm link rescript
npx bsc $FileName | node

hello.res

let greeting = "Hello World!" ++ " Hello Again!"

Js.log(greeting)

Result

Not the best experience, but at least I can now play with the language
And I guess it can be refined,
installing rescript as a standalone command, that does this stuff in the backend and maybe open a repl. would be nice

So this is not really the use case for ReScript. It’s not meant to be a direct scripting language. There are plenty of others that can be used as scripting languages, even OCaml (from which ReScript was derived): shell/AWK/Perl-like scripting in OCaml

1 Like

Not that Rescript being a general purpose scripting language is a bad idea
I was thinking of it (the standalone commands) as a learning tool

To learn any language, I like to start with basic command line scripts
open a file find something in it, print it etc … just to learn, not for real use
or just calculate stuff and print it on the command line

1 Like

For learning and testing things, I’ve found the playground to be actually quite handy. I realize it’s not what your’re talking about but just mentioning it just in case.

I dont understand the playground
There is no run button (seems someone fixed this, but still didnt merge https://github.com/rescript-association/rescript-lang.org/issues/414)

Compare it to Purescript playground
Where I can try stuff as if I am running in the console

https://try.purescript.org/?session=2b0aa8fa-9989-475d-5f70-ea05af3e6ed1

there is no going back to plain JS of course :blush: It is just more efficient to model some typings and fix compiler errors than console.logging everthing :sweat_smile:

we use reason syntax for now, cause vscode syntax highlighting is not better but a little bit “more” and we are more comfortable with it.
We have a couple of rescript files as well though.
Both syntaxes work very well in combination, e.g. i can use .res if i want to have capital-letter exports or vice-versa .re for lets say nicer list or type syntax( somehow those <> produce more cognitive load in my head lol). Converting back & forth is also no problem at all using the playground (actually, i made little but nasty adjustments to the orignial code to enable switching also from ML syntax and removing [@ns.**] :see_no_evil::see_no_evil::see_no_evil: ) .

So, ReScript is still the best and nicest choice to compile to JS imho.

Yeah you are right, but i think once rescript playground has this too, it’ll be much nicer cause faster :slight_smile: it already has type information onHover and better look & feel. My method in the meantime is copy-paste-action ^^

1 Like