Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Here are the things that I really really hate about javascript:

I find javascript really hard and annoying, even if I have enough experience with JS that lets me build a basic react framework, I still find it hard to use.

On top of that, getting javascript jobs is harder compared to other programming languages. IE: you need 7 years of experience for a company at the same level where they only need 1 year of IOS/Android experience.

You always have to be keep up to date. The popular libraries that you can use changes so fast, and sometimes they don't even work.

Javascript gets a lot of disrespect from beginner engineers. Something about doing frontend work, isn't hard and it isn't software engineering in their perspective

There are so too many ways to do the same thing, unlike something like lets say golang

You always have to learn more than javascript to compete with other javascript developers. IE: dev ops, backend, database, sre, ux design



So from your perspective, what are the languages (besides iOS/Android) that you believe to be far more ideal when it comes to job prospects, quality of language and ecosystem, and developer happiness? I don't really disagree with most of what you said, but they feel like complaints that I'll hear about any language from its professionals (i.e. familiarity breeds contempt).

(I definitely agree with you about the disrespect JS gets from those who don't grok frontend work. And the fundamental annoyances baked in JS from the start)

I think most everyone agrees JS is an outlier when it comes to the speed of breaking changes and obsolescence, but IMHO that is nearly inextricable from JS being the most widely-adopted language, compatible with the widest variety of end-user devices and applications, reaching by far the most humans across the world. To put it another way, you could easily learn and become proficient in COBOL. There's currently a bigger demand than ever for young blood, and there's presumably great career rewards (if not in salary, in benefits, timeoff, and pension funds), and the language and end-user application is extremely stable.

And of course there are plenty of disadvantages (higher chance of landing somewhere that is not SF or NY, if those cities happen to be your home). Do the benefits of COBOL, especially the ones that line up with Javascript's weakness, hypothetically meet your ideal of a developer job?


For job prospects, top 10 tech companies would make it hard to get in as a javascript developer

The most ideal languages at a certain time is based on what is most in demand, relative to the supply company needs

Right now mobile developer demand > supply, for top tech companies at least relative to JS developers


>IE: you need 7 years of experience for a company at the same level where they only need 1 year of IOS/Android experience.

Job requirements for iOS & Android might say one thing, but you'll still be competing with people who have way more experience than that, unless the company behind the listing refuses to budge on compensation and is up-front about it.

One thing that iOS really has going for it is that (IMO) it suffers from ageism far less than other SWE verticals do. I'm having trouble with putting the reasons for why I think this is the case into succinct words, but I would say that the primary reason is that iOS knowledge & experience gained while working is, in most cases, additive. The only exceptions are when things are deprecated, but from what I've seen, this usually just involves API signature changes. The core framework has stayed the same, and SwiftUI is going to be the first significant change. You're also forced to constantly learn new things every year, because you're forced to update, and forced to accommodate new screen dimensions with designs.

The downside of this is that it can be extremely difficult to break in as a beginner without doing an internship at a company that can afford interns. You are competing with people who have anywhere from 3-12 years of experience. Or you're competing with people who did the aforementioned internships and did not receive an offer.


It's gotten better over the years and some good things came with es6.

The half life of all these frameworks and libraries that come into fashion is pretty annoying. The principles don't change much though.

I don't like that it caters to both the object-oriented and fp world and becomes a mishmash of both.


This comment of mine going from +20 upvotes to -1 upvotes in 1 hour is surprising

edit


Your comment got 5 upvotes and 8 downvotes so far. The maximum score it reached was 2. It might seem odd how 2 turned into 20 in your mind, but actually it's not unusual at all. Perceptions of other people are routinely off by an order of magnitude on HN (and, I assume, elsewhere on the internet). That's the main reason why moderating a forum like this is so hard.

Posting like this breaks the site guidelines. If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html and sticking to the rules when posting here, we'd be grateful.


fair enough, i see, left side points, right side comments


What do you mean by "right side comments"? I wonder if there's something in HN's UI that is misleading. (Or perhaps you're using a third party extension of some sort?)


sorry, this is what i meant, which i never realized since 2015

left side of my name has a number

far right side of my name has a number

left side of my name is the points of my comment

right side of my name is the comments beneath my comment

I never realized that

also thanks for pointing out the rules of the forum, sometimes people forget

and thanks for modding hn

the bug that i find surprising is when i type a text, i need to make two breaklines to show one breakline


> right side of my name is the comments beneath my comment

Do you mean the number like [+11] that shows up after you've collapsed a subthread? If you click it, do the comments beneath your comment reappear and the number goes away?

Edit: I'm pretty sure that is the confusion, because it's the second time in a few weeks that this has come up. I've changed the "collapsed" indicator to say "[5 more]" instead of "[+5]". Hopefully that will solve the problem. The strange thing is that it took almost 4 years to hear about this.


Right that was the confusing part

Wow, great job of getting that shipped real fast, It's really obvious now

Maybe other people already experienced this issue in the past but didn't really know who to report it to, or wasn't big enough of an issue


> Wow, great job of getting that shipped real fast, It's really obvious now

I love it when you can take years to fix something and someone will still say that anyway :)

(The same thing happens in the HN inbox. "Wow, thanks for the fast reply"...if they only knew.)


lmao well out of curiosity why have you folks never open sourced hn?

even if its just the fronend?

wouldn't it help if your community of hackers decided to contribute? it seems like a good majority of people are willing to work on it

im assuming that since a lot of people are playing with the hn api


I'm sure you will be downvoted as hell because you're critic and not upbeat, HN just likes everyone saying good words all the time, i.e. stay politically positive. However I strongly believe critic is more meaningful most of the time as long as it does not have bad intention, thus I upvote you.

JS is indeed hard, learning vuejs for the sake of 'it's simpler than react' right now.


Client dev was always hard. People just mistake that for Javascript because they don't have any experience building clients.

For example, I'd say JS/React is vastly easier than learning Cocoa/UIKit. Writing GUI code that runs on N user devices is harder than writing headless code running on a single server.

Btw, if they're getting downvoted, it's because "oh, Javascript is in the title? time for me to complain about it like people do in every JS-related HN thread!" is a tired HN comment.


I disagree. Headless code on a single server can still be very difficult. For instance, nginx, mariadb, etc, which allow the frontend to function well, are difficult to write. You have to deal with multiple threads, search algorithms, handling tcp/udp requests, and optimizing all of that so it isn't dead slow. Whereas writing GUI in JS/React involves less "computer science" complexity and more compatibility complexity-dealing with things like, what is the screen-size, the locale, etc.

On the note of the HN's perceived hatred of JS, I think its because Javascript has tried to do too many things. Despite its quirks I like Javascript in the context of the web browser, but what I dislike it that it exists in applications and on the server side. The Atom editor should not take up 200 MB and take forever to boot. But it does because instead of taking the time (like sublime text) to write a rockstar system code, they instead used electron. The feeling I get sometimes is that JS developers want to program the same way they do in the browser, everywhere.


Are there easy ways to write GUIs without Electron that still can use HTML+CSS for layout and design that allow you to have an identical experience on Windows/MacOS/Linux? I think this is the main thing webdev-land people like (myself included). Also, there are so many npm libraries to handle stuff for you that staying within that ecosystem is enticing.


My point was more along the lines of the code bloat that comes from essentially emulating a web browser on system, when in reality you can write much faster code in C/C++ or even C#/Java. But, GUI design for applications can be a nightmare, with QT on the one hand versus fragmented Cocoa/Windows Whatever in C#.

I think Electron was the webdev community's response to this, and we really haven't gotten one on the app/systems developer side besides QT.

Or to rephrase, using Electron to "emulate" a web browser is cross-platform from the perspective of the electron user, while most other gui-ing solutions in C/C++, are not necessarily cross-platform, and therefore this leads to different set of challenges.


I have been waiting for this for a long while, a downsized and embedded lightweight html+css+js engine will solve all desktop GUI porting issues.

or just bundle a html/css/js with a single go-http-server-executable that use browser as the GUI interface.


> HN just likes everyone saying good words all the time, i.e. stay politically positive

Are we reading the same HN? Because I would say being too critical and negative are HN's two biggest flaws.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: