- Timestamp
5/27/2018 19:52:54
- Which dojo did you attend?
Austria, Vienna
- Any previous programming experience?
Yes
- Which typed languages have you used, if any?
C++, Flow, Java, Rust
- Which functional programming languages have you used, if any?
Reason, Wolfram Language (Mathematica)
- What did you like about the experience?
nice people, nice please, nice programming, Timo
- What did you dislike about the experience?
sometimes we felt a bit stuck
- Where did the team spend the most time?
writing bindings with abstract types
Option 1
- Did you experience any difficulties with the tools (bsb, merlin, editor plugins, etc)?
yes! 1. often the editor would not reflect the current compiler state, still displaying errors that were not real; 2. refmt sometimes didn't work for unknown reasons
- Did you find any error messages hard to follow? If so, which ones?
at least one where we forgot parentheses around an Array.map function call in JSX (to create children)
- Anything in particular you wish would have been better documented?
how to use abstract types (how to create them and how to access fields)
- What would you change in the ecosystem to make it better?
less error-prone editor integration
- What would you like to build or learn for your next Dojo?
real-world data fetching; maybe to write Reason for the server
- Timestamp
5/27/2018 19:53:18
- Which dojo did you attend?
Austria, Vienna
- Any previous programming experience?
Yes
- Which typed languages have you used, if any?
flow
- Which functional programming languages have you used, if any?
reason
- What did you like about the experience?
Jan, Timo, nice people, getting knowledge in writing bindings
- What did you dislike about the experience?
vienna 26 degrees celcius
- Where did the team spend the most time?
abstract types, how to properly configure bindings
Option 1
- Did you experience any difficulties with the tools (bsb, merlin, editor plugins, etc)?
rfmt didn't work all the time, out of sync
- Did you find any error messages hard to follow? If so, which ones?
Array.map function call where only writing an additional function to create markers worked instead of using the functionality directly in JSX. Probably not proper use of brackets
- Anything in particular you wish would have been better documented?
how abstract types are used properly
- What would you change in the ecosystem to make it better?
bindings in general, ecosystem(editor errors sometimes confusing), error handling with jsx code
- What would you like to build or learn for your next Dojo?
how to properly fetch data with Reason
- Timestamp
5/27/2018 19:54:44
- Which dojo did you attend?
Austria, Vienna
- Any previous programming experience?
Yes
- Which typed languages have you used, if any?
Java, Fortran, C, C++, Kotlin
- Which functional programming languages have you used, if any?
- What did you like about the experience?
The community aspect, I loved that results became visible for everyone on the map and that much of the groundwork like POSTing and GETting has been done for you.
Regarding the toolchain, sometimes you get tripped up by the UNKNOWN SYNTAX ERROR, but otherwise it's been ok.
- What did you dislike about the experience?
Array vs List, always using Array when interacting with JavaScript is not explicitly mentioned in the docs. I think it's mentioned, but in between the lines.
I probably missed something, but the shadowing part of type name vs parameter name tripped us up in the beginning and it wasn't perfectly clear why that's the case.
- Where did the team spend the most time?
Writing bindings, shadowing.
- Did you experience any difficulties with the tools (bsb, merlin, editor plugins, etc)?
Nope, has been quite lovely this time around!
- Did you find any error messages hard to follow? If so, which ones?
UNKNOWN SYNTAX ERROR
- Anything in particular you wish would have been better documented?
In the concrete case where the response body string => JSON => Reason records conversion is taking place. I know it's in the Fetcher, but after ReasonConf I thought I'd always have to use `Json.Decode` or `location##username` etc.
I guess part of it was that the Fetcher was supposed to be a blackbox anyway and from the type definition it was clear that we already get records.
Another thing was https://reasonml.github.io/reason-react/docs/en/element-type-is-invalid.html which is documented, but it also tripped us up. I'm not sure if the tooling can improve this, but it would be nice.
- What would you change in the ecosystem to make it better?
More bindings for popular libraries publicly available and community maintained. But this is a community effort anyway. But since we spent a lot of time writing bindings, this would be the best thing to have.
- What would you like to build or learn for your next Dojo?
Typed server code. Maybe form validation. Nothing where I have to write a UI myself :D
That's also a big plus for this dojo, the styles were already defined.
- Timestamp
5/27/2018 23:08:53
- Which dojo did you attend?
Belgium, Brussels
- Any previous programming experience?
Yes
- Which typed languages have you used, if any?
Java, C, C++
- Which functional programming languages have you used, if any?
- What did you like about the experience?
the autocomplete, the reducerComponent, no need for imports <3, the fact that the language has refmt <3 (no need to engage in big fights about who has the better style :D)
- What did you dislike about the experience?
That for some reason in my mind reason is close to javascript when it's really not.
Writting the binding for the react-simple-maps was a big pain for me as beginner.
Also the doc for someone that is not used to read functionnal programming documentation, it is not very easy.
The ~ is not the best on a non US keyboard.
ReactDOMRe.Style.make(~width="100%", ~maxWidth="980px", ~margin="0 auto", ())) that kind of code is painful to write, I wish the compiler could add the last param () automatically.
[0, 20] vs [|(0), (20)|] as javascript developer I would have prefered if the first one was the array and not the list :D
- Where did the team spend the most time?
Bindings javascript -> reason
- Did you experience any difficulties with the tools (bsb, merlin, editor plugins, etc)?
no
- Did you find any error messages hard to follow? If so, which ones?
yes, the <UNKNOWN SYNTAX ERROR>
60 ┆ <Markers>
61 ┆ <Marker
62 ┆ marker=marker
63 ┆ style={{
64 ┆ default: ReactDOMRe.Style.make(~fill="#FF5722", ()),
This has type:
{. "coordinates": array(float), "markerOffset": int, "name": string}
But somewhere wanted:
MyProjectName.Marker.markerT (defined as MyProjectName.Marker.markerT)
Could not find what was wrong on that one
- Anything in particular you wish would have been better documented?
interop, it was not easy to find how to write
[@bs.module "react-simple-maps"]
external geographies: ReasonReact.reactClass = "Geographies";
- What would you change in the ecosystem to make it better?
As a react developer I would say the availability of interop for most mainstream library. I have the general feeling that TypeScript is more popular than flow just because they have a huge typings community.
- What would you like to build or learn for your next Dojo?
A complex ui with animations if possible
- Timestamp
5/28/2018 9:13:53
- Which dojo did you attend?
France, Paris
- Any previous programming experience?
Yes
- Which typed languages have you used, if any?
Flow, Typescript, Java, C#, Swift
- Which functional programming languages have you used, if any?
JS?
- What did you like about the experience?
Gave me a very clear view about the state of Reason right now
- What did you dislike about the experience?
Found it a bit too much like a mysterious puzzle, since I never knew what to look up
- Where did the team spend the most time?
Bindings with the React library
- Did you experience any difficulties with the tools (bsb, merlin, editor plugins, etc)?
editor plugin sometimes came out of sync so had to close and reopen files
- Did you find any error messages hard to follow? If so, which ones?
unknown syntax error when doing things which aren't possible in reason (forgotten semicolons, using braces instead of brackets)
- Anything in particular you wish would have been better documented?
didn't really use the documentation, bindings doc is a little light https://reasonml.github.io/reason-react/docs/en/interop.html could have some more complex examples and links to how to used published ones
- What would you change in the ecosystem to make it better?
stdlib using more JS stdlib would be cool; Array.mapi and mapWithIndex, map could be a single fn with an optional I right?
- What would you like to build or learn for your next Dojo?
something usable from JS as a third party (without any knowledge of Reason in the JS bits)
- Timestamp
5/27/2018 19:34:46
- Which dojo did you attend?
Netherlands, Amsterdam
- Any previous programming experience?
Yes
- Which typed languages have you used, if any?
Typescript
- Which functional programming languages have you used, if any?
- What did you like about the experience?
Being able to have people around and ask questions
- What did you dislike about the experience?
The format could've been a little bit more specific in terms of hints. There's a few 'gotchas' which were very hard to find out. (like shadowing type names)
- Where did the team spend the most time?
creating the bindings for the external library
- Did you experience any difficulties with the tools (bsb, merlin, editor plugins, etc)?
Just some vague error messages sometimes. When shadowing, or a syntax error
- Did you find any error messages hard to follow? If so, which ones?
The error message when a type with @bs-derive annotation has the same name as it's parent property
- Anything in particular you wish would have been better documented?
There are some language features, like the different pipe operators '|>' vs '|.'
- What would you change in the ecosystem to make it better?
I think error messaging around syntax errors will be very important, as people coming from other languages might not know all the intricacies.
- What would you like to build or learn for your next Dojo?
I would like to go closer to real world applications. Like a backend (node server), react native app, etc.
- Timestamp
5/27/2018 19:40:34
- Which dojo did you attend?
Sweden, Stockholm
- Any previous programming experience?
Yes
- Which typed languages have you used, if any?
TypeScript, Haskell
- Which functional programming languages have you used, if any?
Haskell
- What did you like about the experience?
Meeting people with a common interest and solving problems with them. People!
- What did you dislike about the experience?
The editor installation path took a bit long.
- Where did the team spend the most time?
Modelling the data received from the API and learning about bs-fetch interop and learning about type systems.
- Did you experience any difficulties with the tools (bsb, merlin, editor plugins, etc)?
Editor plugins seems to be a bit hard to setup with a previous ocaml installation on the computer.
- Did you find any error messages hard to follow? If so, which ones?
The hardest ones are the tiny ones, missing a comma in a react component, missing semi colon etc. “Error on line 1 0:0”.
- Anything in particular you wish would have been better documented?
We did not read much documentation. The editor tools themselves helped us a lot, being able to go to the definition of most modules was really helpful.
- What would you change in the ecosystem to make it better?
Precious ocaml and opal installations not conflicting with the reason-cli installation, this seemed to be our biggest blocker and lot of people resorted to the legacy reason plugins.
- What would you like to build or learn for your next Dojo?
The type system! I think “making illegal states unrepresentable” is a great thing to showcase, especially for fetching data.
- Timestamp
5/28/2018 9:59:04
- Which dojo did you attend?
Sweden, Stockholm
- Any previous programming experience?
Yes
- Which typed languages have you used, if any?
Pascal, C, C++, Java, C#, Golang, Haskell, OCaml, Elm
- Which functional programming languages have you used, if any?
Clojure, Haskell, OCaml, Elm
- What did you like about the experience?
The dojo task was interesting because it had a couple of different subtasks so that you could choose one and jump in the deep end.
- What did you dislike about the experience?
Not having any particular JS or React experience (besides what I've gathered from reading off the web and staying up to date), it was frustrating that the tasks were more about React than about Reason itself.
- Where did the team spend the most time?
Figuring out how to interop Reason and React
Option 1
- Did you experience any difficulties with the tools (bsb, merlin, editor plugins, etc)?
No, they worked surprisingly well.
- Did you find any error messages hard to follow? If so, which ones?
Yes, the message about undefined field (because you had forgotten to open the containing module) was not too obvious. To my surprise we didn't get any error message at all when we tried to do List.map instead of Array.map. It actually worked, but produced the wrong result.
- Anything in particular you wish would have been better documented?
- What would you change in the ecosystem to make it better?
I can't really tell yet. I feel like the documentation overall is quite good, but plenty of knowledge of React seems to be expected. That's fine of course as long as there's a big label somewhere warning the reader so that they know that they need to check other sources too.
As with any fairly new language it was difficult to find answers to questions that were not discussed in the documentation. Surely the situation will improve over time.
- What would you like to build or learn for your next Dojo?
Backend stuff!
- Timestamp
5/28/2018 17:35:34
- Which dojo did you attend?
Sweden, Stockholm
- Any previous programming experience?
Yes
- Which typed languages have you used, if any?
Java, C++, C, Elm
- Which functional programming languages have you used, if any?
Elm
- What did you like about the experience?
Welcoming, suitable for noobs, fun!
- What did you dislike about the experience?
nobody who came had enough reason experience to guide the others
- Where did the team spend the most time?
Syntax we weren't used to; Problems with "unexpected syntax errors" everywhere for stuff like missing semi colons; setting up editor for vim users
Option 1
- Did you experience any difficulties with the tools (bsb, merlin, editor plugins, etc)?
VS code: most of the time auto completion/hints just didn't work. Merlin: Unexpected Syntax Error for missing semicolons and colons... Really??
- Did you find any error messages hard to follow? If so, which ones?
Unexpected Syntax Error; Unbound constructors; Hard to google error messages :'(
- Anything in particular you wish would have been better documented?
Some documentation was outdated; there wasn't really any time to more than skim the existing documentation; hard to find other sources e.g. in blog posts or on stack overflow at this point
- What would you change in the ecosystem to make it better?
The name is problematic as it makes googling for solutions really hard; Unexpected Syntax Errors should just burn in hell
- What would you like to build or learn for your next Dojo?
Format could be more workshop-y, with some people who actually know their reason. Really liked the example though, as it included both some frontend and some data fetching!