I had hard time with front-end part of M2 at the beginning… Oh, wait. Still have. Unfortunately.
That’s why I decide to create this blog – yeah, it’s my first post here.
“What happens? Everybody says M2 is awesome!”
I really like to be honest, even when shouldn’t, so please have in mind that:
- I’m a developer
- I’m a front-end guy
- It’s just mine point of view
- It’s not an official statement of my employer
Magento 2 is a huge step forward, especially when it comes to open-source part – moving the whole codebase to GitHub is the best what can possibly happen to us.
Overall engine performance was increased, back-end devs says that many things was changed to better solutions and working with 2.x going to be nicer than with 1.x.
But… When it comes to the front-end part, unfortunately, changes aren’t looking that good. At the beginning, let me try to explain, how different are goals of back-end vs. front-end.
Goals of front-end dev
Provide the best possible UI and UX to end users. So we should care about:
- Implementing design fast and precise
- Compatibility with lots of browsers
- Variety of devices – Hardware trends, screen sizes, types of input (touch, mouse, screen readers etc.), performance…
- Overall web app performance
Hardware trends, users and clients expectations, networks speeds and many more factors are changing rapidly through time. That’s why front-end tools evolves much faster than others.
In our beautiful, full of not keeping up standards browsers, world of front-end, every year brings a lot of changes, that’s why people laugh about “day without new JS framework”.
(Possible) Goals of back-end dev
Create cost-effective, rock stable and scalable infrastructure for processing clients data fast and secure. So any rapid changes, just consistent evolution, improving things one by one.
I know that this might be too simplified description, but hey – I’m not back-end guy, just want to notice different.
As you see, differences are huge, almost like two separate worlds (connected via API)
What is wrong with front-end of M2?
- Use PHP to build font-end tools
- These tools are slooooow, and we can’t extend or customize them, because lack of extensions and our knowledge of PHP
- Grunt, LESS, RequireJS, jQuery, Knockout, Prototype and Scriptaculous (yeah, it’s still here for some reason), LiveReload… and possibly many more. All of these things are outdated right now, slowly dying or not popular anymore, but it doesn’t really matter.
You know what really sucks? These things are so damn deeply integrated with the whole Magento and closely unchangeable without hard overrides or creating everything from scratch.
That’s my point – Magento 2 font-end looks like designed by back-end devs.
“But you can use whatever you want”
I dreamed a whole life about spending thousands of hours overriding Magento core. Cool. Indeed. Thanks for making this possible.
I know I’m now just hating someone else (really hard!) work, but don’t get me wrong – I’m happy that M2 is up, but I don’t like marketing bullshit and talking only about pros of some software, because software by design is something with cons.
What we should do?
Definitely keep idea of open source – discuss problems, possible solutions, share ideas, contribute creating documentation or “simply” write code. We have so strong community around Magento and projects like #RoadToImagine with “Four Horsemen of the Apocalypse™”, proves that good people stand behind Magento, not only technology.
“Did you make first step?”
Of course, it’s not a game changer, but definitely a good foundation for further projects.
It’s also entry point for me, that’s my first attempts ever in creating something almost from scratch and sharing them to you.
My English skills are not even close to be good (I’m working on it), so my thoughts were described using simple language and might not express my real feelings in proper way. It might look like hate speech, but I just want to notice the problem and invite people to start working on it.