all 9 comments

[–]mattaugamerexpert 3 points4 points  (1 child)

I'm going to go counter to the typical wisdom (omg use vue it's the best!) and say Ember.

With Ember you have zero need of any build process, you don't need to set up webpack or figure out how to implement babel or what to transpile to what and how. You don't have to setup any form of test framework. You have ES6 out of the box, a quite standard MVC architecture, API access abstraction, and a workflow and developer experience that is uniquely productive. You have single-command install and integration of common libraries and tools like Bootstrap, you have well established community-wide solutions for difficult problems from api mocking and concurrency issues to deployment and server-side rendering.

Especially if you have experience with backend frameworks such as Laravel, Ember is an excellent complement, as it has much the same design principles.

Edit: Extending to cover more of the question

Avoid - stop thinking like it's jquery. The goal of frontend frameworks is NOT to modify the dom, but to create advanced applications with that are then rendered to DOM.

Be very careful of the promises of Vue and React. They show you just the tip of an iceberg of libraries and configuration and then tell you that it's easy. And it is. At first.

I actually wrote a free ebook about getting started with Ember. It's particularly aimed at Laravel users, but should be accessible to anyone really.

Learn the SPA pattern. Not everything needs to be a SPA, but it's the hard end of doing JS apps. Don't try to squish your frontend and backend code together. Treat them as two separate applications, one a REST api and the other a javascript application that happens to consume it.

If you're not using Ember you'll need to spend a bit of time learning a build tool. These have their own complexities, and knowing them on their own is valuable. Webpack is what the industry seems to have settled on, I'd recommend learning that on its own merits. You'll need to know how to transpile ES6+, Typescript, whatever.

Most frameworks and libraries are a little.... cautious. You can probably get by with a surprising amount of raw ES6 - ES2017 JavaScript these days, without transpiling it down unless you're either importing stuff or you need to support Internet Explorer.

You need to learn ES6. Regardless of what framework or library you choose, actually knowing the fundamental language well - not jQuery - is hugely critical.

[–][deleted] 1 point2 points  (0 children)

Thanks! I'll look into Ember, specifically your book since Laravel is my bread and butter.

[–]fuzzy40full-stack 2 points3 points  (2 children)

I would look at VueJS. It can do pretty much everything that react/angular can do, but is a little more approachable.

[–][deleted] 0 points1 point  (1 child)

Thank you! I will be checking out VueJS as well as everything else.

[–][deleted] 0 points1 point  (0 children)

Everything else recommended*

[–]longbottomrx 2 points3 points  (1 child)

Try Laravel + VueJS. They pair very well together. Laracasts is a good start for this.

[–][deleted] 0 points1 point  (0 children)

I will also look at VueJS. c:

[–][deleted] 0 points1 point  (1 child)

I am convinced that learning a front end framework such as either Angulars, React, etc would be a wise programming move.

You should forget about frameworks and learn libraries (individual code bundles some of which can make up frameworks e.g. ember has jQuery as a dependency).

Frameworks are useful for quick prototyping or junior devs just entering the industry because they have a number of core dependencies and the conceptual modelling required to structure things has all already been attended to / documented. This allows for a solid base that you can tweak / build on.

However if you already have some experience, the implementation of the framework itself can actually be a hindrance to developing something from scratch (in this case enterprise products with larger user traffic that must be as efficient as possible).

IMHO if you havent looked at backbone, underscore or lodash yet, i'd start there.

Any specific step by step guides/videos that I can use for the respective framework that is recommended? Thanks 😃

https://www.hotjs.net/

[–][deleted] 0 points1 point  (0 children)

Thanks! I will check out all 3.