Continuing on from my previous article Want to learn JavaScript in 2015 / 2016. I’m going to walk you through what else I’ve been up to in the world of Javascript.

Initially I’d planned to talk about Functional Programming and give another set of easy steps into learning it within JavaScript. As my interest in Cycle has grown and the two subjects are very much related. I felt I should first let newcomers know a little more about what is happening in the thriving Cycle community, there has just been a new version released too!

First things first, why Cycle?

Don’t worry about the terms you don’t yet understand in the image above, to me Cycle is a way to handle data and user interaction in a clean and easy to reason about way. I will further explain the diagram, but first, let’s just build some more foundations as to why I came to using Cycle.

Cycle is one of the least intrusive Frameworks out there! How can that be? Get ready for it click here and view the entirety of it’s codebase!! Only 143 lines of code and so what does that tell me?

I’ve always been fairly reluctant to learning a full blown framework. Not because they aren’t good, or useful, but purely on the fact that I like to control as much as I can. I just prefer knowing I’m writing my own JavaScript, not the JavaScript the framework want’s me to use! I know that might be a little over dramatic but it boils down to wanting to grow skills in javascript, not those skills into a framework. Especially when said framework is bound to be replaced in a matter of years if not months, knowing the Javascript world!

For those reasons I fell towards React, because with it you can mix and match different technologies and use them to build your app the way you want to. In those circumstances React doesn’t have a preference on what you use for the logic or backend etc, which is great. Also React offers really great concepts, here are a few key ones: it’s one-way data flow, modularisation and splitting of the codebase into components.

So why don’t I just stay with react? React is great at dealing with the view but the dataflow concepts are not at it’s core. If you look at the diagram below, that is a visual example of flux. The React team offered this data-flow solution to the community!

I know, I’m being a little unfair and Flux is no longer the best data-flow implementation that React community has to offer. But Flux was what everyone was learning as they started (probably still is to newcomers). I’m personally feeling the pain of trying to control how the data is going around my app codebase and returning the results of that journey to the user.

The one-way dataflow is superb, but the complexity of reasoning about that dataflow can be somewhat confusing. Unfortunately React has it’s intent and view combined, things are pre determined. You end up having to use built in helpers like componentWillMount, this.state, this.props, componentDidMount. There is nothing bad about that but I was after more flexibility.

I still think React is great and use it but I want to be able to explore new concepts and deal with more complexity in an easier manner.