[ $davids.sh ] โ€” david shekunts blog

๐Ÿ‘Š In Defense of the Front ๐Ÿ‘Š

# [ $davids.sh ] ยท message #227

๐Ÿ‘Š In Defense of the Front ๐Ÿ‘Š

I've attracted some negative comments about the front, so with this post I want to clarify a few things

#frontend #backend

  • @ [ $davids.sh ] ยท # 1291

    I think frontend is an awesome field, it's just personally very difficult for me due to its chaotic nature.

    And before I start explaining the individual points from the last post, I want to first list the undeniably cool consequences of frontend:

    . It's an amazing springboard for developers โ€“ a looooot of people started with frontend. Why? Because it's interactive, interesting, you can learn it on your own at home in a year and get a decent salary. What's there to even say: 10 years ago I myself started with frontend.

    . Thanks to the web, true cross-platform compatibility has emerged โ€“ billions of dollars, tens of thousands of hours, and 2 truckloads of developer nerves have been saved thanks to the fact that now more than half of desktop applications and 30% of mobile ones are browsers disguised as native apps. And before you start spewing: "but it eats all my RAM" โ€“ think about the fact that it's precisely because of this that (1) you get new and convenient functionality quickly and immediately on all platforms, (2) products now cost around $10 per month, whereas if they were made natively they would cost $30-50 to recoup the native developers.

    . The trend for component-based UI has been created โ€“ I once delved into iOS development and was simply shocked by how complex UI and logic work there... even html + jquery were much more pleasant due to their tree-like structure. And then React appeared, and then it became simply calling functions, and then hooks appeared... honestly, the very process of writing Function React Components + Hooks gives me mini-orgasms, it's indescribably beautiful from concept to implementation and at the same time works perfectly... And the component-based approach has finally started to seep into native development, which is entirely thanks to the web.

    Now for the points from the last post:

    . The browser is a necessary evil โ€“ an important feature of backend is that we don't render graphics. And that's incredibly difficult. If you take a spectrum, with backend on the left and Unreal Engine on the right, the browser would be somewhere in the middle. So, making it so that a person can learn to visualize something in a browser in a couple of months is an incredible achievement that gave the web "mass adoption."

    . UI libs + Compilers โ€“ in general, if you join a good team and use some technologies that have been established over the last 3-4 years, you can get used to everything and choose your own path, and then every 3-4 years replace something with something newer. Again, I hope the JS community cools down with releasing new features for frontend in about 5-10 years.

    . node_modules โ€“ this garbage is inexcusable, BUT it's not a frontend problem, but a JS problem itself (because on Node.js it's a bit better, but roughly the same), we can't escape it.

    To summarize โ€“ frontend, backend, native, ML, blockchain, computer vision, etc. is everyone's choice, each direction has a lot of garbage and a lot of pluses, the important thing is that you choose the garbage that you're okay with.