Skip to content
This repository has been archived by the owner on Jun 6, 2024. It is now read-only.

Explore rewrite in elm #61

Open
starsinmypockets opened this issue Jul 24, 2017 · 3 comments
Open

Explore rewrite in elm #61

starsinmypockets opened this issue Jul 24, 2017 · 3 comments

Comments

@starsinmypockets
Copy link
Contributor

This is ambitious but we should consider doing a future version in elm or another strongly typed functional language with javascript interop

@acouch
Copy link
Contributor

acouch commented Aug 4, 2017

Can you share why you feel this way? Could you try introducing Flow or something similar?

@starsinmypockets
Copy link
Contributor Author

Elm, Flow, Typescript or another javascript type system could address many / most of the same issues:

• eliminate bugs around data mutation, state mutation, and type errors in both (especially type errors in data - especially resulting from null / undefined values) - my guess is that this would greatly reduce the amount of production bugs and reduce development cycles
• type definitions would offer a sort of self-documenting API that could be leveraged for external docs, data schemas, 3d-party library interoperability (for instance writing clean(er) interfaces to multiple data visualization libraries)
• javascript interoperability allows for a scaled approach to refactoring (for instance, we could refactor the data pipeline (datahandlers) to get benefits listed above quickly)

I've been getting deeper into functional programming concepts and decided to give Elm a go specifically for:
• Community - very active / energetic / outward- and forward-looking community
• A lot of resources for beginners
• Promote soundness in code - no runtime errors in compiled code
• Good tooling, especially the compiler
• compiler and the general methodology add a lot of safety to refactoring which I'm guessing we will want

This is new territory for me but I'm impressed with the Elm language which seems well suited to what we are doing, and the community which seems to place a high priority on keeping people from getting stuck. I've gotten a lot of help getting started and feel confident that the community would be a resource moving forward. As I said, I think we could start with the data pipeline, where I think we would really benefit from a more rigorous approach including stronger typing and immutable data structures, etc...

@starsinmypockets
Copy link
Contributor Author

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

No branches or pull requests

2 participants