bloc referral

If you are interested in learning to code with a mentor, try bloc and get $100 off.

Friday, April 10, 2015

JS frameworks in SF

These past few weeks have been extremely busy and challenging without a place to live but luckily I am now secure in a place and stable enough to writing blog post on the regular.

I have had the opportunity since arriving in the city of San Francisco to attend a number of meetups and training Sessions.

Ember:
I have been partial to Ember for the reason that I felt like focusing on one framework first prior to branching out, the main reason I chose Ember is because I actually personally knew people who used Ember in projects and could ask them questions. Even with Angular being a larger community; I just did not have an opportunity to meet any of them prior to starting my first frontend project.

Ember has a very impressive community in SF, and I had the opportunity to attend my first EmberSF and was very impressed with the caliber of talent that attended the event. I am still very pro Ember but like the fact of peeking/using other frameworks at different times.

Ember is great for teams because of its structure, no matter what Ember project you can, similar to Rails, know where important components are located and understand the basic structure.  This reason is due to the "Ember Way" of doing things is generally the same across the board. A

Another nice thing about Ember is they had an early adoption of ES6, which actually has helped me in understanding other frameworks like React and even the differences between node and io.js. There is a lot cool things happening with ES6 and I had the opportunity to learn it through Ember even while being very new to Javascript development.

Some things I am finding challenging with Ember is finding the libraries that match the newest way of package management with ember-cli. I know there is a ton of libraries out there but just not a ton of documentation due to "newness" of everything. With that being said, I am excited at the opportunity contributing to the community in that way while I discover different better practices.

Angular:
When I took the job at Bloc, I was made aware of the use of Angular in the project and began researching Angular right after I accepted the position. Probably due to my love for Ember, I did not find the excitement in learning Angular, as much I did with Ember. I however attended an all-day Intro-To-Angular workshop the second weekend I was in SF.

Now that I have gotten past the initial beginner phase with Angular, I have come to appreciate the stability of Angular and how has fast it is to get up and running in a project. Ember is big into separating the API from the concerns of the frontend framework, but Angular seems separate but still knowledgeable about everything.

In a conversation I had with neighbor while pairing at the event, Angular is still new to developing best practices in creating an app and it has been a struggle to newer devs to Angular. I believe things will be getting better when Angular 2.0 is rolled out and I have heard word that there will be a planned upgrade path for those on Angular 1.x, which is contrary to what was announce last year - which is good.

I do have to say it is nice knowing how to use a framework as popular as Angular and being able to contribute to the JS framework conversations. I also think it will take a lot to unseat Angular as the leader in the framework battler for the simple reason that chaos of how customizable Angular is probably one of its strengths. Ember has a lot of the conventional ideas of Rails and some of it own and it does not seem conducive for a non-ruby/ post-ruby dev to learn these conventions. If someone writes PHP or JAVA in a way and wants to apply Angular to a project, they can with their own special conventions.

I think the next year of Angular will be pretty interesting and I am appreciative that I know a bit of it and have gotten up to speed enough to be able to work with it on a day to day basis.

React

React is definitely a framework I have hardly any experience with but I did attend a react meetup last night and very impressive with what it can do. I do know some of the React creators were big Ember evangelist at one time and saw many similarities to Ember in the React 101 talk last night. I am definitely impressed with the speed of React and what it does on the View layer, but the idea of calling a "framework" doesn't seem right.

The React core team addresses the product as a "library",  which I will from now on. React actually should be thought of as a jQuery replacement tool. It does a lot of work to speed the rendering of your views and like the full-service frameworks react only needs your api, regardless of what language it is written in.

The other portion that makes React be considered a framework is Flux, a separate project that helps with data stores. When you receive an object from a JSON API (one of many options) the framework/library grabs the data and stores that object and attaches "observes" to watch for any changes to update. Flux is very similar to Ember-Data and js-data, actually js-data copies a lot of what Ember-Data does and Flux has a lot of similarities Ember-Data as well.

I envision that Flux and React to become synonymous with each other in the future to make that "framework" everyone is looking for. I have plans to actually start a React project soon and even take a chance React-Native with that same project, but per the presenters comments there are a lot of things to left to be desired in React as they continue to iterate on this new product.

Conclusion:
There is actually a lot to be desired in all the frameworks and in reality, I don't any framework will ever solve every known problem.  

As soon as I wrote about my experiences with Ember last summer I received a lot of feedback on why I did not choose Angular and I did not have a great answer other than fact that I didn't know any Angularist I could get feedback from. I understand there is a "Holy War" going on right now about which Javascript frameworks is the best, but that is dumb.

My recommendation is to pick one framework and learn it and don't be afraid to branch out to learn from other frameworks, because at the end of the day its all still Javascript.

P.S. I hear Meteor is by far one of the easiest to learn and though it was not mentioned here, I highly recommend reading up on that one too.

No comments:

Post a Comment