Tech is the new Wall Street in a lot of ways. But instead of being honest about where the paycheck comes from we gloss it up so it’s less morally reprehensible. I actually have more respect for people on Wall Street these days. At least they are honest with themselves about the game. I think I have more respect for Jordan Belfort and Lou Pai then the exec teams af Facebook and Uber.
I see this mindset in Seattle very often. A lot of my friends have recently been quitting their jobs to do something other than tech because of the overly inflated egos and the need for software engineers to constantly "do something new" instead of just maintaining & fix what they already have.
So is not pushing negative externalities inherent to web apps to customers just because it makes web devs more productive.
Today's web is a monster.
Same could be said of bailouts, recycling, MLM, and other sucker games...
That's almost certainly what's needed. The fundamental structure of the HTML-CSS-JS triad is the problem that all this complexity tries to abstract around.
Separation of concerns is only good if you're separating the right concerns. Back when web pages were really PAGES (ie documents), the Content-Styling-Interactivity division made sense. But now that web pages are applications that division makes very little sense.
All the different solutions represent different approaches to redefining the separation of concerns, but what they all agree on is that Content-Styling-Interactivity is the wrong separation.
I'll go as far as to say that will never change. Applications are only one part of the web; the other parts matter too.
I care more about reading documents on the web, and I'm glad it has a nice simple way of presenting them (HTML) and styling them (CSS).
CSS works OK as long as you aren't trying to control things pixel-for-pixel, which is not what it's meant for. It obviously could be better, but the problem is not easy by any means.
>I'll go as far as to say that will never change. Applications are only one part of the web; the other parts matter too.
That's true, but it's also not the problem domain.
No one is having trouble creating document websites on the internet. That problem is, more or less, solved to the point that almost anyone with no technical background can do it.
Application-type sites are where all the pain points lie.
(Whether that complexity is 'justified' is an entirely different discussion that, while no doubt interesting, has nothing to do with this person's post)
IMHO that has everything to do with it. It's hard to have any other opinion of web developers when you constantly see the large amounts of unnecessary complexity they foist upon everyone else. As I said, I worked in that space briefly, with others who had severe "framework envy", and largely see this complexity as being self-inflicted --- in some ways it was like Enterprise Java (another thing I did for a similarly brief time), except with much more churn. On more than one occasion I've had to clean up the mess they made by rewriting large web apps with simpler means, and the result was better by every metric (speed, memory, lines of code, etc.) except perhaps fashionability and job security.
I mentioned to some people I was learning clojure. Everyone was super into this. People started telling me I was really cool.
The author of this article must certainly not be in the same "tech bubble" I'm in, where telling someone you're interested in Clojure is going to be met more with neutral "what?" and "why?" reactions. However, I certainly agree with the title of the article: "signaling in tech is some fucked up shit".
“Aren’t you just trying to walk to the store?”
“Look! I added a fifth! Everyone do this now!”
(You might think it cheating somewhat because HoneySQL is just a thin syntactic wrapper on SQL, but then again, if I weren't cheap/poor, I could use Datomic, where it really is the same language.)
I don't have a good explanation for either of those phenomena, but I think language-counting isn't a good way to combat them.
With web development, I have to know HTML, CSS, and JS at least. I probably really need to know SQL. And I switch between those four (at least) every day, many times a day.
The context switching existed but not at the same frequency.
Putting up a simple web site that does something basic, that you then walk away from is easy, and is what a lot of people who call themselves web developers do.
Building something like Gmail or Facebook OTOH are endeavors only slightly below the moon landing in complexity and “solving cool problems”.
And it is equally legitimately "web development"...
Facebook is about an order of magnitude less, so the Apollo program fits nicely between them.
I realise looking back that comparing a company to a project/program isn't really correct. One kind ends, the other tries very hard not to end.
But you're of course right that I exaggerated a bit for effect. I do that sometimes.
My point still stands if you slice a few orders of magnitude off my hyperbole.
But the Apollo program and the Manhattan project were something else. Arguably they represent the historical highwater marks in terms of megaprojects which had effectively unlimited resources in the face of wide-open, unsolved problems.
[1] https://qz.com/726338/the-code-that-took-america-to-the-moon...
[2] https://github.com/chrislgarry/Apollo-11
[3] https://www.quora.com/How-many-lines-of-code-is-Facebook
...which, if I were to guess, consists of a significant amount of "do nothing" or otherwise useless abstractions that either were put there dogmatically or once served a purpose but no longer does. This is reasonably prevalent in Enterprise software but I imagine the much higher churn in Facebook code also increases the amount of cruft that gets thrown in or otherwise left behind.
Search HN or the Internet in general for mentions of Facebook's app being bloated and you'll find that even non-technical users are at least somewhat surprised by this gross inefficiency.
My personal experience has been that the label "web developer" is typically used by less experienced people if only because after a little while in the industry, even if your focus is primarily web-related, you start to develop skills that are more widely applicable and don't want to be "pigeonholed". It doesn't have anything to do with the difficulty of the problem set, the quality of the ecosystem, or any other specific value judgment.
It's the difference between a package delivery service characterizing their employees as "box movers" v. "logistics coordinators".
From my experience, it seems like a lot of web dev people struggle with OS/Compilers/Embedded/Robotics work, but people who don't struggle with OS/Compilers/Embedded/Robotics work tend to handle web dev just fine.
Why is that? The only explanation I can think of is because the work is easier (easier, not trivial).
(Note: I don't think a web developer (or anyone) should be considered a "lower class" of coder, but saying web dev is the hardest and most intimidating dev work feels untrue).
Those people who are good at OS/Compilers etc would still need to use a tutorial to pick up HTML/CSS/JS...and due to the popularity and inclusiveness of the web dev community, they will find it relatively easy to find high quality interactive tutorials that can get them up and running quite quickly. Additionally a lot of the web is designed to be easy to use...its the reason why we're all using HTML5 and not XHTML right now. I think of the current competition between Vue, React, Angular and others to basically be an ease-of-use competition. Its genuinely quite cool that web developers are making fairly tricky concepts easy to use with these libraries.
On the other hand, a lot of material about OSes, compilers, embedded systems is relatively obscure, frequently out of date, possibly difficult to find outside textbooks and research papers, and open source libraries in these domains might even require looking through source code just to figure out how to use a library. A lot of these communities are also indirectly elitist, leading to various sorts of bootstrapping problems for newcomers (I've heard "if you can't build the Linux kernel, why are you even trying to learn about it" several times on different mailing lists :/)
As a personal anecdote, I work on compiler and OS things as part of my job, and most people on my team have a high degree of respect towards web dev work. There are only 2 people on my team who think that we could easily do some light web dev: me and another colleague, both of us who've done actual web dev jobs for several years before transferring to our current team. So I don't think web dev is easier, but just far more accessible than a lot of other fields.
The lack of respect for how difficult it can be to make a smooth user experience is in a way understandable. But the truth is front-end people spend at least 1/2 their time in Chinese finger traps ...
That's because of:
* an over-inflated sense of importance (see the comparison with the moon landing)
* aggressiveness (see the endless statements about killing the desktop, mobile, etc)
* low barrier to entry and high population numbers to entry resulting in lots of ignorance
* attention deficit (see the endless churn in frameworks, libraries, solutions)
* and poor technical craftsmanship (at the end of the day, the solutions offered have poor performance and poor platform integration). This is justified by the fact that these poor technologies are making webdevs more productive.
Not all of the above apply to back-end webdev, those devs are more relaxed. Unfortunately they're being assimilated by the front-end.
More to the point, why would people want to work in a hard and intimidating area anyways? If it was fun and interesting, it might be challenging but not intimidating. Again, I’m not making judgements in web dev, just on how biased perceptions go.
The reason is how a lot of companies do web: sloppyly and pay peanuts.
I think Web Dev and App Dev get such a bad rap because the half-life of the knowledge there is so short that length of experience isn't the signal that it is in other areas (and sometimes it can be an anti-signal).
Even of people who look down on "web development", I don't see anyone claiming that writing Google.com is easy.
There's lots of types of projects that I don't think very highly of, even if technically challenging and competently implemented, simply for being not worthwhile.
Of all the stupid arrogant awfulness in tech that has crossed my path this one is definitely high on the list of the most baffling. Web dev is the hardest and most intimidating dev work I've ever done, by a country mile.
(Whether that complexity is 'justified' is an entirely different discussion that, while no doubt interesting, has nothing to do with this person's post)