question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

This is a major redesign of Folktale, and it’s based on the following principles:

  • Make a better use of the ECMAScript language, specially ES2015-and-future features.

    Arrow functions, async/await, maps, and friends provide a good set of functionalities for basing a functional standard library on.

  • Replace currying-by-default by a heavier use of arrow functions.

    Currying is harder to reason about in dynamic languages because things can compose in too many ways, and there’s no type system to enforce correct composition. Incorrect composition usually results in silent or late errors.

  • Provide free-method versions of functions for This-Bind syntax

    list::groupBy(f), list.sort(compare::on(first)) and others are clearer than their prefix counter-part, and we don’t need to mutate things.

  • Where possible, as long as it doesn’t break our structure’s laws, use the language’s features/native methods.

    Makes it easier to combine Folktale with other existing projects.

  • All methods should provide complete documentation on why they exist, and how to use them (see https://github.com/siren-lang/siren/blob/master/documentation/notes/organisation-and-design.md#how-to-write-documentation). This is being done with https://github.com/origamitower/metamagical

  • Monolithic package over several repositories.

    It’s easier to use, and maintain something in a monolithic package than it is to maintain it across several repositories. It also makes things more consistent.

  • Logically grouped modules, containing only the absolutely minimum necessary for it.

    Each module should be entirely self-contained, and contain only the minimum necessary for that particular functionality. Most of the time this means one function = one module, but not always (see the ADT module, and https://github.com/siren-lang/siren/blob/master/documentation/platform-design.md).


See https://github.com/origamitower/folktale/milestone/1 for tasks pending for this redesign.

Issue Analytics

  • State:closed
  • Created 8 years ago
  • Reactions:1
  • Comments:14 (11 by maintainers)

github_iconTop GitHub Comments

1reaction
robotlolitacommented, Sep 1, 2016

Ah oops, I forgot we had a checklist for this issue. You can see the issues here https://waffle.io/origamitower/folktale?milestone=v2.0.0 and here https://github.com/origamitower/folktale/milestone/1

1reaction
DrBooleancommented, Mar 26, 2016

Meeee toooo

Read more comments on GitHub >

github_iconTop Results From Across the Web

reDesign - Creating learner-centered communities where ...
reDesign is an education design lab committed to meaningful, positive, joyful learning for all young people. We help build and support inclusive learner- ......
Read more >
Redesign Definition & Meaning - Merriam-Webster
The meaning of REDESIGN is to revise in appearance, function, or content. How to use redesign in a sentence.
Read more >
redesign - Wiktionary
NounEdit. redesign (plural redesigns). A plan for making changes to the structure and functions of an artifact, building or system so as to ......
Read more >
Redesign Inc. - Redesign, Inc.
Redesign is a nonprofit community developer that works to build a generative local economy in our service area. We provide brokerage, buildout support, ......
Read more >
Meaning of redesign in English - Cambridge Dictionary
to change the way something looks, is made, or works: The bank is redesigning its branches to make them colourful and contemporary. redesign...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found