11

I've been using C, C++ and Python for 10+ years and suddenly I moved to a new job where I had to learn and use JavaScript.
I think that it is different, as many say, but it is full of lacks and it's like a pile of hacks to make things work. It's a scripting language used as a programming language. What do you think about it?

Comments
  • 8
    I love JS and TS, because it runs in browsers and browsers are everywhere.

    But just like Python, it's just a bunch of convenience functions and somehow they blew up like crazy.
  • 0
    Can you elaborate the "lacks" and "hacks"? I'd love to hear more about it :)
  • 2
    I mean yes but same can be said about python
  • 6
    Most of the complaints are just because people who aren't used to dynamic typing are just bitching about not being used to dynamic typing.

    It's a fine language with a few quirks like everything else, which is entirely understandable simply because of the nature of its politics. There isn't a single global entity without company loyalties that decides on the language spec.

    If C++ were chosen to be the language of international browsers with intercompany politics it would've been just as fucked up.
  • 3
    @hashedram well yes, dynamic typing sucks
  • 1
    @hashedram some wise words there.
  • 1
    @LotsOfCaffeine Exactly, why would I want to get used to a language that's worse than what I'm using right now
  • 4
    The things you see now are different than the JavaScript of the past. Since ECMAScript 2015 it is getting much better. It is actually very good for some back-end things. Http, scaling, json wrangling, and async.

    For example if you have a monolithic API that has a route that leads to a costly computing task. Your containers may scale up too easily. You grab the code and run it in it’s own container as a micro service using express with plans to convert that to C++ later. Or maybe you decide to offload the work to the user web browser by lazy loading some front end code. You may decide to replace the code later but you handle a scaling issue with minimal rewrite cost and without service interruption.

    I absolutely hated it when I learned it. Typescript adds a lot of sanity because it abstracts away lots of the annoying details. The flexibility is worth the cost in my experience.
  • 0
    I don't like languages that give the programmer too much freedom. People usually hate Java, but I love it because you have to adapt to it, not the other way around.

    JavaScript is like "do whatever you want, it will work". There are so many ways to do the same thing that is mindblowing. Ever time that I have to read someone else node.js app, I have to learn 10 new plugins that I never heard of.

    I call this type of language "easy to create, hard to maintain".

    Typescript is indeed more "professional" in this aspect.
  • 1
    @Ziron The problem is with the engineering disciplines not the language. You can say the same things about C. Do you dislike C?
  • 1
    @Ziron "with great power comes great responsibility"

    A far fetched analogy : English and French are complex languages where you can say the same thing in multiple ways. By opposition, Esperanto is very simple and has almost no exception.
    The former are widely used (French is still the diplomatic language), the latter is almost never used.
    You can write beautiful English as well as garbage. The same is not so valid with Esperanto.

    In conclusion : it's not the language that is to blame, it is the people using it.
  • 1
    @react-guy @irene I totally agree with you guys. Every language can be messed up and dev discipline will ultimately dictate if the code is good or garbage.

    My argument is that there are languages make it harder to mess up and there are languages that make it easier. Take Python for example: it forces you to indent your code, or it will not work. Great, one less thing that de programmer can mess up. People usually don't like these restrictions. They say things like "oh, this language is so boring because is forcing me up do do x" or "this language is awesome because I can write stuff in only y lines of code". People like this don't understand that some restrictions are good and make code more uniform across different devs with different backgrounds.

    Javascript for me is too indulging. It's like a rich mom that spoil her kid allowing him to do wherever he wants. But nothing bad about the language itself.
  • 0
    The thing I disliked about JavaScript is the referencing, and please don’t bash me for the following example because I’m also just starting

    For example, you build a set which contains bunch of arrays that contains two element like[1, 2], [2, 3].
    Now if you want to check if [1, 2] is in the set, normally you just check if it is in the set, you would expect it is hashed or something like that.

    But nonono, in this particular example, what it stored is somehow a reference of that object, and even when the values are the same, it is not considered to be in the set. This throws me off so much and I just manually hash it and put it in set.

    But like other people said, it runs in browser. And honestly, nowadays, if you have ideas to implement and it’s in java python c++ where people goes through trouble to use it, nobody will. Writing it in JavaScript and publish it on the other hand, will at least attract people.
  • 0
    @Ziron brother?
Add Comment