Why you struggle so hard with JS?

Written by quanla2003 | Published 2018/08/23
Tech Story Tags: react | javascript | programming | software-development | base-technologies

TLDRvia the TL;DR App

It has been years since the Reactive programming revolution happened with all the EmberJS, AngularJS, ReactJS, VueJS and stuffs… Yet when I look around I see every one is struggling so hard, why is everyone not enjoying? we have evolved, grow out of MVC, a huge leap forward, and yet no one seems to know what’s happening, some even want to go back to Swing, for what? This whole evolution isn’t forced on you, you don’t approach it as if your project require you to do, it is here to make your life better, but you have to learn the way to enjoy it, as I do.

Embrace it, it’s dynamic in nature, and it’s awesome because of that

I see people complaining about no typing in Javascript, many flock to Typescript to find back their safe house (that they used to have with Java, .NET ). Well, don’t. You want to enjoy it, you first have to accept it, it’s dynamic, and it’s amazing. You don’t put the hell lots of protection on yourself if this is the first time you can go out there, into the wild, fully naked, and it’s totally safe, little spiders can’t bite you, because you are god now. This evolution is THAT good, it makes you GOD. So please, throw out your clothing, let yourself evolve.

I am not here to tell you about how clumsy and anti-performance Typing can be, which it is, I am here to tell you to forget about it, totally, it’s a thing of the past, and the more you linger around with it, you miss the chance to step into the future, a future where nothing can ever touch you, you do the whole big system without a single bug, let alone type mismatches !

The direction to go is toward Declarative programming, and full abstraction, that is where you find Separation of Concern at its best. If you stick around with Typing, everyday just think about what type this variable is and what is its members, you are going back to Procedural Programming before you know it. Yes, Procedural, the Stone Age of programming, where developers hit problems with stones, with hand force.

Now, a bug-free programming is here, right at your door step, and all you need to do is to open the right door. Why it is possible? Because there is a way to code that no bug can exist, and it’s Declarative programming! Why? because you can’t make bugs when you are declaring things, it’s that simple, you may miss some thing while doing it, and a tester may yell out that it is a bug, but it is not, nothing is wrong with your logic here, because there is no logic in your declaration, and there mustn’t be.

So yes, Dynamic opens door to Declarative, I don’t say Typing can’t do Declarative, but when you have to declare types for your declarations, you will feel that it’s stupid. Believe me, ditch your typing and enjoy.

And there are Abstraction, the huge beast that can take you to mountain top or trample you down on the ground, you can live without it, but if you want to go to the top, you have to ride it. It’s an elephant in the room, but if you can’t feel it, it is thin air. Again, this is a very dedicated job, you have to be very sensitive or you will never can feel it. My suggestion? Close the door, turn off the light, strip off your cloths, close your eye, extend your perception, keep it still, and you might be able to feel it. Just might be, because it could take you months and you still can’t. So, good luck with that, and the feeling of riding that beast, is sure fun, full of joy and achievement.

When base technologies is so strong, you are left out

Because it’s stronger than you are, so good luck with that! But why it’s even possible? the technologies are here to support us, to make our work life easier, right? Why on earth a good technology will not help you but instead kicks you out? Yeah, but it’s true, that if you are not so good, then you will find yourself stranded. Here is why:

First, if I am a good developer, I wouldn’t go look for a library if I can do the same thing with 100 lines of code. It’s not only me who say this, I came across this quite a few times already, and the last time I saw is Sophie Alpert twitted it. It’s may sound irrelevant but be patient and stick around.

Second, if I am a good developer, and for something that I created with less than 100 lines of code, I wouldn’t bother share it, it’s lame. It’s true, sharing is a hard work, and it requires courage, and boldness too, the public is not always nice. So if you are going to share, make sure it worth sharing.

Third, if you can’t do something by yourself, and you can’t find a solution shared somewhere, it’s not because people can’t do it, it’s because good people did it with less than 100 lines of code, and they won’t bother share it! so you either have to hack up yourself a temporary solution until someone come to help, or plug into your code a big library that kind of solve your problem, but it mainly does 10 other things, which make itself big, and make it worth sharing, that’s why you can search for it on Google. Both ways will bring you more troubles than it solves.

And finally, when you work with very good technologies, you should know that the definition of “Good technology” is: with that technology, you can basically do everything with less than 100 lines of code! OOPS. You got it? See why you are left out? Because every thing is now small, and trivial, and people won’t bother share it, so “NOTHING” is ready for you to grab from internet. The yesterday BIG things that you can look up and grab from internet when you still work with old and bad technologies, are now SMALL and trivial things, that you can no longer look it up. Too bad.

So, that explains why the world of technologies are so harsh now, basic things became so easy, there are only hard problems left, and the game is for true talent only, programming now no longer have room for mundane, typing-without-thinking kind of work, that lousy developers found a safe home to spend their days. Of course there are still old-school managers who you can report to that “today I typed 500 lines of code”, but they are fewer and fewer each days, so grow up, or get out.

A new era

The whole programming industry is pretty young so every thing in this industry is new, but it is particularly true with JS world. It is so new that you can’t even bring things from somewhere else in the programming world here, not from Java, not from .NET, not even from FP libs like Lisp or Haskell… It is a whole new world.

So start to explore, and rest assure that every one else is exploring like you. You are newcomer? Welcome, but don’t look at the guy ahead and assume that he knows more than you, or does a better job than you do, he may be lost himself, so good luck following him.

There may be some guys here that do hit jackpot and found the gold mine, but they are so few and silent too, so you probably never heard about them. Don’t look at me, I can claim that I am one of them, but you wouldn’t believe it anyway.

Don’t even look at big statues of the industry, because there are none. If you look at big names, big companies, see their decision and follow them, you may be lost too, because they are exploring too. Recently Uber and AirBnB switch out of React/React Native, I am not saying they are right or wrong, but the fact that they switch means that they are exploring too. When you hit dead end, you back off and change route, that’s exploring.

You can’t even look at technology author itself, they created the technology, but that doesn’t mean they fully know or understand about it. Sound strange? But it’s true. Yes, I am saying you don’t ask Facebook how to do a React app. Don’t get angry, here comes why: If creator knows everything about what they created, then everyone should go to Nike and Adidas to learn how to kick the ball. It’s true. Facebook created React, but both their Web app and mobile app suck, and if every one takes those apps as flagships of React world, then everyone should leave React. I am not saying React is excellent, or perfect, but I know it’s much better than that. It’s just that Facebook is not using React with its full potential, so does every one else.

So, yes, this is a new world, it is a challenge and if you can enjoy it, it is fun. And sometimes after a hard day exploring, you find yourself a high ground, sit and watch people hitting trees, or falling into mud pit, it is so much fun.


Published by HackerNoon on 2018/08/23