Open rudradesai200 opened 4 years ago
Thanks @rudradesai200 for these great suggestions!
I've split out the first two into separate issues as I think they raise great points. As for the third, the problems you and your colleagues had is exactly the things we should mitigate whenever it falls in our remit.
I think the "library management with opam and dune" is somewhat covered in a... decentralised way across multiple pages for example:
Is this the kind of content you were thinking of? Do you think a "Installing and using libraries" workflow would be a better place to bring these ideas together?
I think it might be. I think some of the hurdles most (including myself) struggle with are:
I think, as you have pointed out, modules and functors is covered by RWO very well and are more concerned with aspects of the OCaml language rather than workflows for being productive in the language.
However, there is also a concept that has come up time and time again about "Design Patterns" in OCaml which I believe you are eluding to which isn't covered as much in RWO. For example how Irmin uses a lot of functors. I'm not sure it is suited for Explore either as it is v. subjective and project dependent. Is this what you mean? Or am I missing something?
"Do you think a "Installing and using libraries" workflow would be a better place to bring these ideas together?" Yes, I completely agree with you. This workflow could indeed resolve most of the issues faced by beginners like me. Also, I have not yet properly explored the Switches and Pinning part myself, to be honest. Let me get back to you on this.
I am currently learning Library and File management in OCaml and interaction between dune and opam, as I explored OCaml using Jupyter Notebooks only. So, I will start creating a rough design about what we can include in this workflow, and maybe we can review it later. What do you think?
"I'm not sure it is suited for Explore either as it is v. subjective and project dependent. Is this what you mean? Or am I missing something?" Yes, I agree it is very subjective as well as project dependent. The problems which I was facing was mainly concerned with "Interaction between dune and opam", and we are already covering it above, so no worries.
Also, I am mostly done with the beginner's workflow as of now, I must say you guys have done really impressive work. This project is more than sufficient enough for beginners to get started with OCaml.
Great sounds like a plan! Once you are ready, feel free to open a third issue for creating that workflow to track it separately and we'll review it :) Thanks again for all of the wonderful suggestions!
Evidence that this a needed resource:
As discussed with @patricoferris , These are some of our suggestions
Rename the "Configuring Ocaml tools for your Editor" To "Setting up an OCaml development environment" would be more appropriate and we can also add a few more headings under this workflow like
Add a sitemap for the website, or we can add a search bar to help new users navigate through the website more efficiently.
There are already separate pages for tools like opam and dune, but a good-explanation involving the use of top-level in jupyter-notebook, bytecode compiler and the assembly compiler can be helpful. Also, I found that the explanation for library management using dune and opam is not present for complete beginners. Some common problems faced by some of my colleagues and even me were
I am also attaching some references which I found to be quite useful for setups and other tools.