Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ramda #79

Open
yosevu opened this issue Nov 18, 2020 · 10 comments
Open

Ramda #79

yosevu opened this issue Nov 18, 2020 · 10 comments
Labels

Comments

@yosevu
Copy link

yosevu commented Nov 18, 2020

What programming language should we add?

Ramda.js. This is a popular library for practical functional programming in JavaScript. It is actually not a new language, but I think it can be treated as such since it uses a significantly different style of JavaScript that requires knowledge and experience with functional programming concepts that would not fit into the main JavaScript track. I think that there is enough interest in Ramda based on its weekly npm downloads that it would be valuable for people who use it or want to learn it to be able to practice it on Exercism.

What is the official website for the language?

https://ramdajs.com/

Is this a language that comes in many variants? If so, which variant should we support?

NA

Does the language have an official logo? If so

  • please include a link to an example

Ramda logo

  • please list the attribution rights of that logo

Attribution rights for logo

Ramda logo artwork © 2014 J. C. Phillipps. Licensed Creative Commons CC BY-NC-SA 3.0.

Does the language have an unofficial logo? If so

NA

  • please explain the ways in which people use the unofficial logo
  • please include a link to an example
  • please list the attribution rights of that logo

Is there a testing framework available for the language?

JavaScript testing frameworks

Is this language listed as 'supported' by Prism.js? If so

  • what is Prism's canonical spelling for the language?

javascript

  • what file extensions should be highlighted?

.js

If it is not supported by Prism.js, what is the closest supported language it maps to?

Who will be leading the effort to launch the track?

This is undetermined. I would like to first see whether this kind of track would be possible.

@yosevu
Copy link
Author

yosevu commented Nov 18, 2020

Pinging @iHiD or @kytrinyx to take a look at this request since it doesn't look like this repo has much activity.

@iHiD
Copy link
Member

iHiD commented Nov 18, 2020

Thanks! We'll have a think and get back to you :)

@yosevu
Copy link
Author

yosevu commented Nov 18, 2020

Great! Thank you.

@yosevu
Copy link
Author

yosevu commented Nov 30, 2020

Hey @iHiD! Just checking back. Have you have had a chance to consider having a Ramda track?

@iHiD
Copy link
Member

iHiD commented Nov 30, 2020

Hello. I have! Sorry for not replying earlier and thanks for the nudge 👍

So I talked with a couple of people and the consensus is that Ramda is more of a JS framework than a language in its own right.

One person added the following:

It feels like they’re saying that the exercises we currently have don’t lend themselves to practicing the concepts that they’d want you to practice to be a good citizen in the Ramda landscape. If that’s the case, then maybe there are practice exercises that are missing? If the practice exercises are good candidates, but there are no good solutions in that style, maybe they could help contribute the crowdsourced guides for the different approaches.

Does that ring true to you? Rather than creating a whole Ramda track, could we maybe work on creating a series of example solutions and docs that someone could refer to to solve the JS exercises in the Ramda way?

Interested to hear what you think :)

@yosevu
Copy link
Author

yosevu commented Dec 2, 2020

Thanks for getting back @iHiD!

Yes. Agree 100%. Ramda is not a language and doesn't make sense as a language track. It's a utility library similar to Lodash, but is specifically for functional programming e.g. using functional composition patterns like currying and pipelines, and working with immutable data.

A small example with gigasecond:

// Core JavaScript
const gigasecond = utcDate => new Date(Number(utcDate) + 10E11)

// Ramda
const gigasecond = utcDate => pipe(
  Number,
  add(10E11),
  constructN(1, Date)
)(utcDate)

I love the Exercism platform and mentoring and I think being able to use a library like this would be a great way for people who are interested to learn and practice the functional side of JavaScript.

the exercises we currently have don’t lend themselves to practicing the concepts that they’d want you to practice to be a good citizen in the Ramda landscape.

A clarification here, it is not necessarily that the exercises do not lend themselves to practicing functional JavaScript. I am just not sure how/if it could fit into the JavaScript track. I imagine it would not be the norm to use a library to solve problems or that all mentors would all be able to give feedback on functional solutions to the problems.

maybe they could help contribute the crowdsourced guides for the different approaches

This sounds like a good idea. I'd be interested in understanding how this might work and whether there is a precedent for it.

Does that ring true to you? Rather than creating a whole Ramda track, could we maybe work on creating a series of example solutions and docs that someone could refer to to solve the JS exercises in the Ramda way?

Yes! This sounds great. How would it work with the JavaScript track? For example, it would need different dependencies installed and mentors to be familiar with functional programming and JavaScript.

@yosevu
Copy link
Author

yosevu commented Dec 10, 2020

Hey @iHiD! Just checking in on this again 😊

Any thoughts on how this could work?

@iHiD
Copy link
Member

iHiD commented Jan 4, 2021

Hello. Sorry for the slow replies. I'm focussed on getting Exercism v3 over the line right now so don't have much brainspace for anything else. I think I'll be best coming back to this once that's launched and I can think about new things!

@yosevu
Copy link
Author

yosevu commented Jan 5, 2021

No problem @iHiD. I'll reach out after the Exercism v3 release. Good luck with it!

@iHiD
Copy link
Member

iHiD commented Jan 5, 2021

Thank you 💙

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants