I may belong to that silent majority. I have learnt a lot from the discussions here in HN and other sites, but I rarely participate on them. This post made me think about being a little more active because, sincerely, most of the times it is just laziness what prevents me from commenting anything.
In fact, this is my first comment here in HN. Little by little.
I will say that in my own experience, if you go against the zeitgeist on HN you can often get by as long as you're sensitive/respectful and intelligent on the issue. There are people who downvote things they disagree with, but I think most people on here downvote people who sound unconstructive or argumentative.
And at the end of the day, if you're respectful etc, who cares about being downvoted or having people argue back to you? Just take it on the chin.
you're supposed to downvote things you disagree with on HN. Here's Dang pointing to PG saying that downvoting for disagreeing is what you're supposed to do
I think it's healthy for the website that many people reserve downvotes for stuff that really 'deserves' it. But good to remember the mods position so you don't go around moaning about rule breaking voting. And how could you police that anyway?
I sometimes upvote replies to my own comments that I disagree with, because I think they make a good or interesting point (even if I disagree). Am I doing it wrong?
Agree. Downvoting disagreeable people will eventually completely silence them with that logic. One has to be generally agreeable to maintain positive karma. Not sure if the side effect is worth it. There are a lot of amusing assholes out there with unpopular opinions. Opinions that are highly relevant to the topic at hand can be polarizing, but these will likely result in the poster having negative karma long term. pg and dang are simply wrong. It encourages a hive mind.
> That isn't true, I am very disagreeable and argumentative and post before I think, and still maintain positive karma without any issues.
Oh, I see. You personally haven't been downvoted into oblivion and/or had the door slammed in your face, so everything is cool then. 100% of the people who were censored must have been terrible people. Heil Dang, etc.
I've always been the vocal outspoken critic. XML, EJB, annotations, aspects, ORMs, everything JavaScript, agile, ad nauseum. (My non-technical list is way longer.) It's always cost me.
I really wish I could tell young me to just smile and STFU.
I know many developers (over 35 years old) in Europe doing the same (they earn above the average european salary, so like 140K EUR/year or so): Java, no HN, no Linkedin, no FAANG, no leetcode, no switching jobs every 2 years. They have families, they are normal people. If you ask them about monads, they would have no idea (like me) what are you talking about. That's the path I'm heading to (hopefully).
140k EUR for a dev role? Normally I'd say you're delusional, but since you say you actually know people who consider that normal, may I ask which country(ies) you're talking about (since it's apparently not Switzerland or Norway, where I might have believed it)?
I still have a strong suspicion that either your friends gave you wildly inflated numbers, or you happen to know some serious outliers. Check this out for a reality check - the highest-paying Eurozone country is Germany, with an average dev salary of about 60k, and 76k for seniors: https://blog.helloastra.com/2021/10/18/the-average-software-...
140k is possible, it's probably an outlier though for a perm role. I worked at a SF based start up and that is around the salary they paid EMEA principal engineers. FAANG will pay more than that for a senior engineer (around 200k). As a contractor you can also hit this number pretty easily (it's around 600/day).
The GP said 140k was at or above the average, while the data suggests that it's an extreme outlier. But tbh I struggle to believe it even for senior roles at a SV start-up. Do you know what the reasoning was for paying so far above the market?
That site seems to exclude Ireland entirely, which would I think would come in ahead of Germany for salaries and is both a European and Eurozone country.
>they earn above the average european salary, so like 140K EUR/year or so: Java, no HN, no Linkedin, no FAANG, no leetcode, no switching jobs every 2 years
Do you have more details about the country and industry? As this is way way above the Java dev salaries in Austria and they'd kill for this kind of money without grinding leetcode. Nobody pays Java devs that kind of money here.
Positions like these don't grow on trees and since you say there's no leetcode, Linkedin or big-tech involved, I'm guessing there's other forms of gatekeeping for such a lucrative and easy gig, like having the right industry connections or knowing the right people in order to hear about the openings I would assume, as if they were to advertise this salary on Linkedin or other places they would be drowning in quality applicants, for even less money than that.
140k a year in most of the countries in the EU would mean you are working in trading/banking or some Big Tech, which means they probably had to do go some of the leetcoding to end up there.
Contractor do pass f** leetcode tests to enter the banking sector, as well as weird interview about DevOps and agile. The comp is the best though, easily 2x what you do in more 'interesting' avenues. And the code is changing from 95% Java to python/TS/go + 50% Java (gotta keep those Jenkins and airflow going).
My friend’s father is a firmware engineer in Bulgaria and he hadn’t even heard of Rust. I’ve noticed that it takes a looong time for technologies to propagate globally
Depends, if I were writing low-level code like firmware or embedded systems, I would be casting envious eyes and dreaming of the day in 10 years when I'll get to start using it in production code. As a web dev, that's the way I used to view new APIs when I was still marching to the beat of someone else's supported browser list.
Don't forget the silent majority in FANGs either. A lot of us aren't working on crazy machine learning models, were just copying protobufs from one form to another.
I used to be part of the silent majority of software developers but that changed after I became disillusioned about the direction of the industry. Nowadays, I'm basically forced to use certain inefficient tools in order to get a job because a bunch of highly vocal junior devs who got their way.
It's a bit like in politics; when times are good for the majority, most normal people aren't interested in politics; they have better things to do; this apathy makes it easier for freaks to get power and start messing with things... Until it gets so bad that regular people start noticing and begrudgingly getting involved in politics.
I am regularly up at night in a cold sweat worrying about how if I suddenly needed to find a new job I’d have to learn some sort of front end JavaScript framework.
I am regularly up at night in a cold sweat worrying about how if I suddenly find a technically fulfilling job, realizing I forgot everything about computers after a decade on working on meaningless front end JavaScript framework.
Where is the job where you get to work on compilers. If it is not React it is probably the glorious back end, making some graphql endpoints talk to mongodb or suchlike. Or devops, fight k8s!
There are a few thousand compiler jobs in the world. Maybe in the tens of thousands, i'm not sure. For everyone of them there are thousands (again I don't know how to measure, could be in the ten thousands) of programmers using the compiler.
If I got a job in writing compilers I could becomes skilled at it. However I have a job in a different area. I doubt few as as skilled at writing the type of code I write as me, but the world only needs a few handfuls of people who write the type in the niche I'm writing code in. The world needs lots of websites, and so the world needs lots of people skilled in writing them.
What you do as your first job massively influences you career. I did .NET for years by the fluke that is what my first job did. If they did Java, I would be an expert in Java. If I worked somewhere they needed a compiler written in C++ I would have done it and may have a compiler career.
The paradox is as a graduate you generally, unless very exceptional or well connected, or live in the (not "a") tech city, just need to get that first job.
It is hard to get that breaking opportunity, and so that thing that will have echoes throughout your career, you don't have much control over! The reason it is hard to get the first job is because it needs interview experience, and you have very little proof yet. You are asking a company to take that leap of faith.
Later side stepping is possible but very hard as you are competing with people who can be paid the same as a web dev with deep experience.
Also as a young person back then, I had approximately zero confidence, both in myself and even that programming is a good thing to do. Getting into it was very weird, I was probably the only person at my high school of hundreds who geeked out on electronics and programming, for example.
Nowadays with HN and other sites, there is an online community such that even in a country town you can get a sense of community and what is possible. With that any graduate now could hatch a decent plan for their career. They might take any job to pay the bills, but aim to get into a FAANG for example, knowing what it pays and how to go about it. 2020's are amazing.
Even worse when backend is javascript framework too. Welcome to isomorphic thingy (don't even know what that really means). SSR today only means nodejs server. No, not ruby, go, rust, python, php, elixir, it's javascript. Island architecture, partial hydration, and the latest backend js framework is "Zero JavaScript Runtime" wow. One language to rule them all pipe dream is not dead yet.
Honestly that's why I swapped from front-end at the beginning of my career. Back end and infra moves much slower, jobs tend to be more secure and specialized, and pay seems higher overall. Learning Java back in the 00s was one of my best career moves.
I agree. Also, back end tends to have fewer mega-trends. You usually have the option to stick to your old tools. There are still plenty of C/C++ back end jobs for example. The community keeps branching off.
On the front end, the trends tend to be more extreme; people will not take you seriously unless you give up on whatever tools you use and go straight for React or VueJS... Then when TypeScript comes along, everyone has to switch to that... I couldn't believe it when people started combining JSX with TypeScript... It's essentially a double-transpiled language now... The trends keep adding more complexity and everyone is forced to switch to that regardless.
As someone who really appreciates strong typing, I will die on this hill - I hate Typescript.
Introducing a transpiled typing system on top of a dynamically typed language is a recipe for all sorts of insane complexity, which is what I experience whenever I try to use TS. If you consider all the time and effort it took to introduce types for every NPM project out there, all the development of the language itself, the effort expended by individual devs and teams to learn the syntax...
...might it have been the same amount of effort just to introduce some strong types into Javascript itself? It's not like the language can't adapt, and there are already some strong types when you're working with the graphics APIs.
I'm in a similar boat. I appreciate static typing and although I don't have any strong objections to TypeScript purely as a language, I can't get past the way it's transpiled into a dynamically typed language with source maps... Seems like a hack.
It doesn't make sense; kind of like transpiling lower level assembly code into higher level C code. You could always argue that there is value in forcing arbitrary constraints onto developers but in the end, you need to ask the question "is it worth the complexity?"
I consider JS an anti-pattern and won't allow more then 50 lines to be anywhere near me without TypeScript. The issues raised are innumerable.
TS is really flexible and you can do some crazy gymnastics with it - I don't favour that. Just keep it very simple and don't go crazy with the generics.
I've never had a problem at all, I've never had to dig into what was transpiled.
Someone else in the thread mentioned how The Good Parts™ idea applies to TS just as much as JS, and I think that's what kinda frustrates me about it. If they'd just kept the damn thing simple, I don't think I'd have a problem with it.
Did a personal web project and chose TypeScript to see what the rage was about.
I spent a ridiculous amount of time trying to design types. At some points I couldn't figure it out, or I ran into some limitation of the language to express what I need. So my code has a bunch of exclamation points everywhere to assert that a null ain't coming. It feels dirty.
After years and years in C# I spent half a year writing Typescript full time.
IMO it's not that Typescript is limited at all, it's just that the type system is different, more complex and also more flexible - there are typically more ways to define types compared to Java/C#, so a lot more decision points trying to write something elegant, or even just idiomatic/understandable, so IMO the learning curve is steep. And then you get to the fun stuff with more abstract type definitions, infer keyword...
It screwed with my head way more than I thought it would. Structural typing was really different, I had to spend a long time rewiring my brain. But when I went back to C#, I felt like the type system was crude. I lost all the nice and easy ways of writing dynamic code and had to revert to defining surplus kludgy interfaces, delegates, etc. And in Typescript I'd finally figured out how to write null-safe code and remove almost all ugly coercions, then back in C# null references were a real possibility.
Interesting, yeah I had one or two good moments after spending a few hours wrangling my interfaces.
But the frustration left a worse impression than did the benefits. Perhaps if I was being paid to do it and had mentors around to ask for help. But I couldn't find any good advice online.
I had a pretty terrible experience at that job - no engineering manager, never had any code reviewed, hardly any collaboration with other team members so I was basically stabbing away in the dark trying to get my shit together in TS.
It took me far longer than a few hours to feel comfortable, probably more like over a month of coding to get to the point where I mostly understood how to express what I wanted with the type system, and had stopped doing C# things in TS and adhering to style guidelines - functional modules, types instead of classes, injecting dependencies etc. And another month or two? to really figure out how everyone has been (ab)using the type system to do more complex stuff.
Are you using "?" optional fields in your classes/interfaces a lot? If so, do you need to? Unless it's truly optional, you're basically making the type system less useful if you put that all over the place. If you have a lot of sparse objects, it's probably an indicator of a data type doing too much. You might be much better off splitting it into smaller interfaces and using union types when you need combined objects.
Even if you can't do the above, checking for null at the start of a function/block will "prove" to the compiler that it's not-null for the rest of the block, so an upfront check can save you from a lot of "!" assertions.
Even if you can't do either of the above, you can probably use the elvis operator "?." to safely dereference things that might possibly be undefined.
In my experience with typescript, there's a few good rules of thumb and things to keep in mind:
- Prefer "interface" over "class" for describing most data types. Especially plain old data objects that don't have methods. I'd forget about the definition of "interface" you might know from Java. It can be used that way, but it can also be used like you would use "struct" in C
- Use the "Partial" modifier instead of using "?" in the base structure if you need to do something like sparse updates. For instance a pattern I use a lot is:
- Always prefer readonly fields and non-optionality.
- If you're not worried about GC pressure, it's almost always better to return a new object than mutate an old one. The spread operator is great for this.
- Within reason, it's better to prefer smaller data structures and use type unions when you need fields from both in one object.
Thanks. It's definitely not obvious to me coming from Java/c++/python.
I think I went into the deep end with some non trivial generic functions. It's been a few months, but I remember ditching interfaces for classes so I could do some run time type checking.
I wouldn't have fallen into these traps with something like Java.
It's just so awesome that a thread on "Silent Majority" has the typical loud protests against JavaScript, against the web, against React, against TypeScript. The irony is loud to me.
It's not even that there's only happy heads-down programmers off HN who support these mainstream techs. Even in the active userbase here, I'd wager there are tons of people who have an adequate or better experience with typescript or react, and may disagree with the dislikers. But we're not as invested in our liking, don't feel like it's worth engaging in, and none of the banter changes what is or where things are going. These are the de-jure tools that the majority definitely uses widely, which at least the first anti- comment, on front-end frameworks, acknowledged. Whatever the targets-of-the-day happen to be, they will crop up repeatedly, which further dissuades from trying to come back with a positive or even neutral opinion that might represent that silent majority's take. And the silent majority must constantly face Brandolini's Law; what it's doing may be working & have good reason, but it's hard to keep supporting & reasoning through with a pact invested in disbelieving.
I liked the top post talking about disagreeing with the direction. That can be contributive, be value based. So often though the protests amount to gatekeeping "you've done too much." I evaluate where these comments would fall on Steve Yeggie's Software Political axis, from Notes from the Mystery Magic Bus[1], and almost universally the voices are conservative; they object rather than suggest, they refuse rather than support. I'd like to see more progressive protests, that can surface good, that acknowledge value & need but reflow or redirect the energy elsewhere, rather than being unhappy with what is.
HN can be conversational, not always a well researched debate. Most of us are over-involved with these debates with coworkers at our day jobs, where we HAVE to spend the energy having productive disagreements.
I appreciate the high quality HN posts, but sometimes just like at a water cooler a bunch of us just wanna say, "agh I'm so sick of object oriented" and it doesn't mean "all object oriented programming is of no use".
What's so hard about designing types? I'm Java developer and when I need to use TS, I just write Java with it. Works fine. The only times I encounter weird types is when for some reason I need to read type definitions for some weird JS library. But that's relatively rare.
I’ve found that working with the DOM can be really difficult because the types built into TS don’t accurately capture the underlying API. In just a few hours I found 2 cases where it seemed obvious that the type definition was incorrect.
> might it have been the same amount of effort just to introduce some strong types into Javascript itself?
TypeScript exists as a first step to adding types to JS. Some folks are currently trying to figure out a way to add type annotations that the JS engine will just ignore for now based on what we've learned from TS.
> ...might it have been the same amount of effort just to introduce some strong types into Javascript itself?
And how would it be different?
I've been using TS since 2016, both for front and back-end, and I can count an amount of times the transpilation abstraction leaked on one hand (and most of these were when I just learning TS and worked on weirdly configured projects). Aside from these, I could just forget about the fact that it's transpiled to JS under the hood.
Interesting, maybe it's just been my personal experience. I often work at the native DOM level, where the API is extremely forgiving and dynamic. The type system does not work well there, as I found several instances where the underlying type definition didn't match what the native API actually had available. My only recourse in those moments was to either use `any` or to write my own type definition (which I am not going to do).
Reminds me of javascript the good part thin vs thick book meme. TS the good part is thin as well, though no one sets rules how many features they should use. Unsound type is bad enough, too many features make it worse. I wish they delete TS features, not trying to add more things to already broken underlying language (js)
Back end seems to be changing quite quickly too. Docker, k8s, serverless, a million different specialized cloud services, all kinds of non-sql DBs etc. I'm sure you can find a job doing backend that doesn't involve following these trends but you can also still find plenty of front end jobs using jQuery.
If anything, it feels like frontend has slowed down tremendously whereas backend has sped up. That said, both are pushing for more cross-discipline experience in some form (fullstack, devops, UX/UI for frontend, etc.)
While I admit to enjoying some of the debate aerobics on HN, this is the prime reason I try and give my voice to some of the discussion here. I kind of view it similarly to voting: you have to make your opinions known.
It's had the pleasant side effect of also educating me on quite a lot--mixing in with people with different experiences and values has enriched my life, so I think it's a win-win. I just try and be careful to not get too wound up: that's the failure case haha (I'm not saying constantly check your blood pressure while using HN, but I'm not not saying it).
One of the [few] advantages of becoming a crusty old fart™, is that we tend to waste a lot less time, worrying about what others think of us, and just do what we need to do, to get the job done.
I was just talking about this, to someone, yesterday.
I'm often accused of being a "killjoy," or a "dreamkiller," by today's yutes. This is because I say 'orrible things, like "Have you considered what happens if..?" or "We tried that, a couple of years ago. It didn't work out, and here's why...".
In actual point of fact, I'm exactly the opposite. It's my job to Make Things Happen. I plan to ship everything that I do, and my work is generally focused around the endless practicalities and compromises, necessary to get products out the door.
This has often resulted in me being called every name in the book, as I try to avoid chasing shiny, and keep the eye on the ball. In my days of yute, this would keep me awake at night, worrying whether or not I had made the right decision, if I was an unintended, out-of-wedlock child, or if I really was a goose-stepping fascist.
But I have been getting stuff out the door, for pretty much my entire adult life.
> and my work is generally focused around the endless practicalities and compromises, necessary to get products out the door.
This hits too hard. I’m still in the “acceptance” phase of grief over the death of my ideal that there’s a “right” technical solution for every problem. And I’m in my 40’s.
It starts by accepting them, right off the bat, then using the time that I'd otherwise spend in fruitless pursuit of shiny, doing things like testing and documenting the codebase.
Experience gives me the ability to see them, at the start of things, other than waiting to run into them, later.
Would you mind sharing some things that juniors have forced that you think are bad?
I’ve recently switched jobs and my team doesn’t write integration tests for our services but rather manually test them with postman. It’s definitely odd and very inefficient.
Not OP, but front end JavaScript frameworks are the first thing that comes to mind as an inefficient antipattern that was forced into the dev mindshare by (effective) mega-cap marketing and jr devs who didn’t know any better.
I’ve been programming ~15 years, and from my perspective, those frameworks helped us move on from a world riddled with XSS, “better than fail whale”-level reliability expectations, and software ossification (Gmail, Facebook, etc).
Today, the frameworks bite me in the ass about once a week, but I think it’s worth it to get safe React with strict TypeScript, and plenty besides.
Caveat: All infrastructure requires a lot of maintenance, though! YAGNI still applies, and hopefully you have (or are on) a team dedicated to supporting the tools that you do need.
Assuming your entrypoints are typed, TypeScript makes it much harder to accidentally mishandle data of the wrong type and frameworks make it much harder to inadvertently change state at a distance in a way that was unintended. These are the two most common ways that undesired behaviors are introduced to JavaScript UIs.
You may call me junior, although I have over 10 years of programming at different things. But IMO React is hands down best thing happened with frontend. It's beautiful tech. Sometimes I write javascript without frameworks, but I'm doing it just for fun, because I have strange love for tiny code, when entire "webapp" fits in few kilobytes. That's something like demo scene from the old days. I'll never do that for any commercial project.
Right now my position is something like tech lead, at least I do technical decisions in our company. And there's no way I'll allow to write anything complex without React.
And sites are bad not because of React. Sites are bad because of other things. If anything, React helps making sites less bad.
Second best thing is TypeScript. I don't like tooling, though, but I think it gets better.
Webpages were designed to avoid complex state management. URLs, HTML and forms, i.e the original REST, is a model with a lot of power and flexibility, and almost none of the complexity of desktop UI toolkits.
Frontend web frameworks have their use in rich apps, but using them for general web pages is just complicating things for no good reason.
Yes, that's the point I'm trying to make. At the end of the incredibly complex and long modern road, you end up looking at text, images, etc, in a browser.
At the end of an incredibly complex and long modern road, I end up looking at text and images in any application, but I wouldn't wish upon the developers of, say, IntelliJ that they render the user interface by making their own JNI calls directly to "draw a rectangle" APIs...
I agree that would be ridiculous, but I'm talking about people using some huge front end library, react, k8s, etc, to make a form. With a logo. Obviously do whatever you want, but it's a lot.
A form with a logo... that looks consistent across most browsers, scales automatically between mobile and desktop user-agents, and already has all its sticky a11y metadata sorted properly, if they've picked a good framework. The gap between modern expectations and the bare-bones AJAX page is pretty wide these days.
It would definitely be better if there were a way to side-load those libraries as a standardized strata underneath the main browser content to save resources. So if someone uses React to do their form, yes it seems costly but the cost only needs to be paid once, and then the relevant framework is cached more statically than the transient web cache (and with an alternative to domain-based cache, such as checksums or signed binaries, to determine if two domains are using the same framework and save the download cost for all sites you visit using that framework).
... but only better if the tricky engineering questions around caching were sorted. There's plenty of risk that you'd end up with gigabytes of cached frameworks, because the current solution means I don't have to care if one site is using React 12 and another is using React 12.1.
To me what youre writing sounds like a parody given the context. And I feel like I could write a form webpage with a logo in significantly fewer characters than used in your explanation for why you need all that stuff.
But this isnt my field of expertise so I'll have to take your word for it that you're not joking.
Like I said, doing a form is just a few lines of HTML in a <form> tag (assuming you have a cooperative server that isn't expecting anything unusual and just digests POSTed form bodies).
Doing a form that will do things people expect these days (client-side validation, formatting, error-handling and highlighting / locating fields with errors in them, auto-fill of addresses... What, you don't expect the user to type in a whole address without verifying it's a real address, do you, there's validation services these days!) is the kind of thing you may want a framework for.
This relatively simple "Contact us" form (https://aflcio.org/contact) loads nine custom fonts, JQuery, an email-decoder script from Cloudflare, and a host of other things. Why nine custom fonts? Because the AFL-CIO has a brand and they're not obliged to deviate from it just because your browser doesn't have the font they use, anymore than they wouldn't show their logo because your computer doesn't have the logo yet. Why JQuery? Probably because there's a button on the page that hides and shows a field, and even in The Year Of Our Lord 2022 those are still an absolute witch to write without bugs in plain JavaScript. The email-decoder script is, I think, self-evident; lets them save the bandwidth of rejecting your input if you put "no" as the email address. And of course, the tracking scripts because they want to know how people are finding the "Contact Us" form (are they coming in from the main page? Is there some specific page that should be answering their question that they're falling over into "Contact Us" instead? Are they coming in from completely outside our org because someone shared a deep-link on a political site and said "Go bug the AFL-CIO", because if yes they can use that tracking to pre-filter the messages they get from that entry-path and bin them all low-priority). I'm seeing some inefficiencies in the Inspector (it's loading some Android-specific icons, probably because it's not good about refraining from loading assets for its mobile layout), but a lot of that stuff I'm not surprised at all to see.
There are several driving factors underpinning this phenomenon. One is that frameworks are more flexible (per unit of code written) than bare-AJAX development, so there's plenty of "everything looks like a nail" thinking going on; once you've paid the up-front cost to build out a dev environment using a framework, it's cheap to keep using it. Another huge factor is that relative to the web experience of, say 15 years ago, there are many incentives to push a lot of work (especially validation of inputs) client-side; few places have truly full-stack developers (or, more often, don't allow the authority for one developer to go hacksaw into the front and backend whenever they feel like it), so simply implementing one new validation rule may be a bunch of back-and-forth tickets if implemented server side or a couple hour's work if done client-side. And client-side work saves the server computation costs (and often bandwidth costs, even when one factors in the up-front cost of loading all that framework boilerplate if the site's used long enough per session).
All of this pushing of complexity to the client does come at a cost of client performance (and sometimes bandwidth, depending on how solid the caching logic is), so (especially at big companies like Facebook and Google) it's a constantly-shifting tradeoff. Google in particular has some incredibly clever partial-rendering logic in-house to allow them to push pieces of a big page on-the-fly to the client, saving bandwidth by rendering a mock button with no behavior attached until the user tries to click on it (and then the behavior script flies in as-needed). Of course, that's a huge amount of complexity that requires tight hand-in-glove coordination between client and server, so the framework that supports it is even more thick and robust, etc.
At the end of the day, "simple web sites" (unless they are truly read-only, in which case just use Hugo and call it a day) are still client-server distributed computing problems with complexity that scales nonlinearly.
It's so frustrating to find a nice job advert, then you read through the (very specific) list of requirements and you're thinking to yourself "JavaScript: Check, Node.js: Check, Postgres: Check, Docker: Check, REST: Check, WebSockets: Check, Redis: Check, RabbitMQ: Check, Distributed systems: Check, nginx: Check, Kubernetes: Check, GraphQL: DAMN IT! This was almost a match..."
Companies will generally tolerate developers to not have experience with certain tools but they will only hire them based on the assumption that they will learn those tools on the job. The problem arises when the developers don't like a specific tool; maybe they know better tools to use for this project. For me, as a developer, it's a deal breaker if a company expects me to use some tool which I'm experienced with but which I don't like.
It's a mistake for companies to assume that just because someone has 3 years of professional experience with a particular tool, that they like that tool. I've witnessed many developers catch Stockholm syndrome after spending lot of time using (and becoming an expert in) a specific tool but I regard this is as a sign of inexperience.
Older me is now super embarrassed by my prior enthusiasm for object oriented programming and misc methodologies. I have very vivid memories of grey beards dismissing my naivety and me thinking "they just didn't get it." [0]
If there's any kind of karma, today's noobs will live long enough to be mocked by even younger noobs.
Small solace, I know.
[0] I always remember criticisms. I've got the voice of doubt in the back of my head always wondering what I'm missing, what if they're right, etc. It's a serious bummer.
> I've got the voice of doubt in the back of my head always wondering what I'm missing, what if they're right, etc. It's a serious bummer.
There's probably a saying somewhere along the lines of "There are two kinds of programmers: those who admit they get Imposter's Syndrome, and those who are too afraid to admit it."
We all have those doubts. I've been in this since... what, 1994 professionally I suppose, and I still have doubts. It's totally normal. IS is not limited to software development either.
Strangely enough I feel that we tell ourselves again and again that this problem is not as hard, the previous iteration of programs trying to solve it were just written by incompetent people. It can be made so much easier - the program gets built but in the process the developers realize that it has plenty of edge cases not solved by this easier version and the same complexity gets bolted on later.
The fact is, there is an essential complexity that simply can not ever be reduced. But we should also strive to not get blinded by the n+1 failed, bad attempt because true, novel approaches do turn up from time to time, e.g. nix actually solves the dependency hell problem.
Well… many of those tools are written while building those critical systems and scale, so they may include both the learnings as well as the mistakes. And, frankly, most people aren’t building things that are critical or require scale (no matter what they say to make their work sound interesting).
> many of those tools are written while building those critical systems and scale
Very, very few come out of teams working on the real stuff. Both FAANGs and other companies are not going to release their crucial internal tools and not even discuss them in public.
> may include both the learnings as well as the mistakes
"release early" is not something anybody should do for production critical tools like devops stuff.
> frankly, most people aren’t building things that are critical or require scale
100% agree, but if I build ships they have to fit safety standards even if most people never meet rough seas.
The actual silent majority was a violent, reactionary, prowar group led by Nixon. They were not anti war, and they were not silent. The comparison the author made is an incredibly bad analogy, at least to anyone who actually understands reality.
Sure, but if your premise for the article is "This thing in my field is a lot like Nixon's politics", I'd expect you to not get Nixon's politics wrong, specifically because a lot of people may not know it enough to tell if your comparison is correct.
> Sometimes I’ve seen Pull Requests from empty accounts with a brief explanation of what was implemented. They just submit bug fixes, no drama.
Over half my coworkers including some very talented developers have no public repos. As someone with almost 200 that always blows my mind.
How do you work in software for years and not find some little hole you want to fill. That’s not a judgment call, that’s an honest question on my part. I want to understand.
Great salespeople aren’t expected to run lemonade stands after work. “You’re so good at sales, how come you don’t want to sell something in the evening? There must be something you’re itching to sell to your neighbors.”
Software engineers seem unique among professionals that you’re expected to maintain a hobbyist body of work that’s also your professional calling card.
I will occasionally file bug reports or even submit fixes to open source projects as part of doing my job. As an engineer, one of my responsibilities is to maintain the commons - without it I would be much less productive. On the other hand I have a lot of autonomy in my work, a chill boss and a team that doesn't need to crunch. If someone I report to got grumpy I would stop, and I definitely don't do this on my own time.
I think that applies to a lot of creative industries. Certainly when I was looking to be a designer some 20 years ago you were expected to maintain a portfolio.
I don’t even mean in that sense though, I just don’t understand having a skill like that and not using it for fun.
For what it’s worth, the best salespeople I know have almost no purely home life and are taking calls and making deals all hours of the day.
> How do you work in software for years and not find some little hole you want to fill
That's not the right conclusion to make. There are lots of developers who code in their spare time, but don't make their code public on Github.
I have had several side projects, but I am not inclined to share my code on Github. Either because I intend to make money off them, or because I don't have time to manage an open source project. Part of it is also caused by "imposter syndrome", where I don't have time to make the code good enough for public view.
You have over 200 public repos, which means you have a different view. But that doesn't mean that your coworkers don't do things on their spare time.
To be honest, I feel this attitude is beginning to spread to potential employers. Now we are expected to publish and be rated on our public repos, and it will just lead to lots of burned out developers in a few years that feel pressured to publish OSS and practice leetcode.
Just because you write code doesn't mean it ends up in a public place. I have lots of friends who like writing web scrapers and their code never sees the light of day. I write hundreds of programs and scripts for my house (media sorting programs, programs to help my friends and I choose restaurants, MILP programs for optimizing game actions, Bayesian models, etc, etc.) and only a small fraction end up online.
Because there are a great bunch of developers who just code for work and want to maximize leisure/family time (including me). Sometimes I also do that _fun script_ you were thinking about over the week, or play with some random programming language, but I let those cases be the exception not the norm.
For me, I like coding, just like I like eating and I like socializing. The fact that I eat and socialize at work doesn't mean I try to avoid eating and socializing outside of work. Similarly the fact that I use a computer at work and or code at work doesn't mean I try to avoid using a computer and or code outside of work.
My working on whatever my company wants me to work on is not the same as me pursuing a hobby even if they overlap in the activities required to do both.
Totally agree, I'm not saying there is a right path.
In my case, when I started in this industry 10 years ago I found most of my joy in coding, as time passed by I engaged into different hobbies that brought more joy to my life and ended up allocating more time on them than coding.
Most of the code I ever wrote in my spare time never made it to a public repo. Usually because I either didn't finish it (I enjoy experimenting and prototyping the most), it was incredibly specific and hardcoded to my personal environment, or I just couldn't be bothered to go make sure I removed all the hardcoded secrets, implement environment variables instead, etc. I'm slowly trying to do better (and I did at least start a company that publishes pretty much everything it does).
It's surprising (and awesome!) to me how much open source repos have become a part of many people's CV/resumé.
> how much open source repos have become a part of many people's CV/resumé.
This is also possible because of competition. I am a student. All my peers grind much more Leetcode than me. So I put at least some code on GitHub and add that to resume. Not necessarily useful for others, but experiments I did etc.. included.
I spend significant time outside work on programming, and have no real usable public repos. The public repo route only works if what you want to build is something that's shareable. I build random experimental image processing software or physics simulations that are held together with hardcoded ducktape. There's nothing there that's usable for anyone else so I don't share it
>How do you work in software for years and not find some little hole you want to fill. That’s not a judgment call, that’s an honest question on my part. I want to understand.
Because most people (myself included, 16 yrs professional experience) don't want to do unpaid work outside of work hours. How do you not understand that?
It sounds like you're starting with the assumption that if someone writes software to fill a hole of theirs, that they would almost certainly make it public. I don't think that's true for everyone.
I found repos a good conversation starter, but I'm far more interested in how one troubleshoots and works together in teams than code creation. Code creation is table stakes, and I can ascertain that in a variety of ways and repos are just a partially sufficient but not necessary signal.
I don’t have any public repos because I’d much rather spend my personal time with my family doing non-work things. I think it just comes down to what you value in your personal time. For some people, it is coding. For others, it isn’t. Neither is good or bad.
I’m generally averse to offering my skilled labor for free, so I spend the same effort fixing stuff on internal things and coaching coworkers. This has paid off big time for my career.
I also have a lot of hobbies that scratch the same itch, like making music. In fact, making music feels like more of a whole brain workout than programming, so I’d much rather spend more of my limited time on Earth doing that than writing more code.
Because they have no love for the job. They are doing it for something else and so are only interested in working on things that have a visible and clear return.
These people are also good at politics. There is a reason bill gates is rich and rms isn't.
If you do your day job for your employer with total dedication then you are not likely to 'need' to post public repos or get involved in slagging off different programming trends. Plus you have already heard what people have to say about your toolset and you know they know little about your domain expertise.
No word of a lie, a few years ago a 'crypto' person told me that all the code I was working exceptionally hard at was a complete waste of time. Blockchain technology would solve everything. I just had to wait. And I am still waiting!
I have a lot to show for the work I have done since that conversation with buttons I have put online getting clicked millions of times with nobody personally thanking me. It is 'silent majority' code. No idea where the 'crypto' person got, I stick to my own lane and I don't need to rubber-neck.
Although it is good to share one's work so nobody else has to reinvent the wheel, if I have a better solution and I have developed it in the context of dedication to the day job, then that software gives a commercial advantage to my employer. Even if the core of the idea is mine and that I developed it in my own time, I 'bat' for my employer, and, if it is in their interests to keep the repo private, then I will.
There is also the matter of peer review. My colleagues are too busy to spend time on my pet projects.
The 'crypto' person has one of those LinkedIn profiles where they have more than the maximum amount of connections, with all kinds of grand job titles and the rest of it. I am just a programmer and I do not need a job title. I don't even need LinkedIn and I do not spend time inventing a grander version of myself online.
For code samples I can share the code that I worked on, albeit removing any business logic that is not mine to share. In my niche, with recruiters that know me, this 'just show me the code' works fine.
What if everyone worked like me? There would be no fine repos to plunder!!! Well, there are a few pull requests I have put into public repos and the majority of the population cannot say that. Plus, if I spend two decades silently writing code, then, one day, post a repo, it is going to be good.
To be honest the code I was writing two years ago makes me cringe with shame at how naive it is, so I doubt that my efforts from before that would have been for the wider public good, even if they did fix a business problem at the time. I have sometimes had to get working code rather than beautifully refactored code, then onto the next project.
> Usually, the comments on HN/Reddit are polarised by a single group of people who have the same opinion,
Can't speak for Reddit, but that's not at all the case here. For example, I often speak of my hatred of microservices here. I'll get some upvotes and agreement, some people telling me it's a dumb opinion, and some people telling me we're doing it wrong and explain their right way. Believe it or not, I learn a lot from different people and their experiences.
I can't think of a single topic that seems to be prevelant here that doesn't have a sizeable amount of disagreement, in fact. And I wouldn't have it any other way.
I don't think microservices are silent majority. They seem like more of a blogger architect who likes to tinker with stuff thing.
I would expect the true silent majority just uses monoliths. If it works and doesn't make people complain every day when they work on it, why use a microservice? That's more work.
Everyone likes to think of microservices as a modern high tech thing, but to me it seems like old fashioned unix stuff, that appeals to people who enjoy doing simple weekend projects, trying to make their job into a series of tiny projects of the type they might do at home for fun.
The focus seems more on individual parts than on the vision of the complete project.
Of course it seems to just mostly move complexity into the high level gluing it all together, and spread it out in bits of interface code, but if you are more interested in working on simple but interesting challenges, and don't mind the more hands on dev ops maintenance work, and aren't that into building complex systems, I imagine you would like it.
The silent majority are mostly corporate devs building internal tooling. Microservices are a fantastic method for building distributed, horizontally scaling, dynamic services in a way that's sane. But the overwhelming vast majority of services would be perfectly ok with a simple monolith that occasionally gets a VM spec bump.
Yeah, I'm probably just explaining poorly. That's what I was thinking: horizontally scaling subsets of your verticals that need it (they don't usually all need to scale at the same rate)
> but to me it seems like old fashioned unix stuff
It's exactly this for me. Unix has been around longer than I've been around and will outlive my career if not my life. Components have been successfully updated and replaced mostly without significant disruption. Unix is a model for producing and maintaining complicated systems.
I forget the exact quote I read on HN once, but it made me laugh, all concurrent systems will eventually recreate Erlang. If you think of Microservices and even Kubernetes Clusters and company, they're all barely doing a fraction of what Erlang can do, because Erlang had the right concept, it was just 40 years ahead of its time.
"Any sufficiently complicated concurrent program in another language contains
an ad hoc informally-specified bug-ridden slow implementation of half of
Erlang."
That's the one! Thank you! I didn't realize it was from one of the founders of the language, which actually makes a LOT of sense. I wonder what tech he saw back then that made him think of it, I can only come up with more modern examples.
I saw the quote attributed to a book they wrote back in the late 90s as well, but I'm not sure how accurate the attribution is... If it is accurate, I'm genuinely curious what project in the 90s was remotely comparable. The answer could be as simple as whatever they were using prior to creating Erlang.
I've joined a company with a silent majority monolith, and joined at the inflection point where they realise their monolith is strangling them...
If your dev guide in the wiki says "to run unit tests, use docker-compose exec monolith test some.package.test_class", you're in danger.
This company needs to start breaking the monolith down into, well maybe not microservices, but at least smaller monoliths, if they want to achieve what they want to achieve.
I have no particular dog I wish to back in the Microservice vs Monolith debate. But I think since you joined at the inflection point it's probably worth it to take a good look at why their monolith landed them in such a poor place and so that no matter what direction you go for the future you can at least make different mistakes.
Microservices won't magically fix issues with tightly coupled components or poor achitecture. Those problems can and do still happen with them.
No, you just need a sane test architecture. I've worked on monoliths, and none of them required docker compose for unit tests.
Now, you may need some extra infrastructure for integration tests, depending on how you architect them, but that's also not a requirement. You could also use mock services, test containers, ... - essentially there's enough ways to make this sane.
It's annoying that people take badly written monoliths as an excuse to proceed to write badly written microservices.
Let me just say, Django was designed to be a monolith.
Also, people who put code that reaches out to external systems in __init__.py are the devil, but the people who decided "sure, let's execute code when we import a module or package, even if we're just importing it to use a class, that sounds reasonable" are the super-devil.
Well you can do the same with a monolith too right, just pull some random code out of the codebase and compile it without anything else, plus the tests for it. It gives the same guarantees as the microservices unit tests.
The hard part is to recognize when to start moving towards microservices.
As long as the team is small enough and the core product is still undergoing rapid development, I think it's premature to use microservices. Too much overhead without any tangible benefit.
But with multiple teams working on different parts of a profit-generating system, it makes sense to the transition - ideally, having a relatively stable core monolith and developing new services around it, occasionally extracting some core functionality as needed.
I don't know what _they_ think is wrong with it, but if you need docker-compose to run unit tests, they're not unit tests. Unit tests really shouldn't have external dependencies of the kind docker-compose helps to provide.
That's more of a terminology point IMO, and probably not what they were talking about.
I'm guessing it is something like "works with version X of dependency Y which is only available on Linux distro Z" and distro Z is only available with an ancient kernel which makes it a pain to run on modern laptops so everyone just develops in Docker.
It's very complex. It has it's business use cases, but if you don't need it (or don't need full-blown OAuth2) then don't use it. If you're worried about the future separate auth user from account internally in your application (SSO ready) and move on.
It sometimes feels like there's a cabal of people who think the more complex something is, the more skilled they are for being able to implement it. That's not really where the skill lies for an engineer.
Microservices vs monoliths with nothing in between is a false dichotomy itself of course. There's been SOA and n-layer applications for decades now. Not every service is a microservice and not everything bigger than a microservice is written as one big application.
From the discourse on forums these days, someone fresh to the field might think there's no such thing as an internal API or an ongoing ETL layer without breaking each feature down to its own container and throwing the whole thing on Kubernetes. All those systems that are two to four layers and decomposed into half a dozen or so parts at the outer interface still exist in the world, even if they're not on track to be one container per feature.
I think your experience actually proves the point and touches on why many dangerous and crazy POV have also been getting so much air time in the news.
Let's say you have 2 opposing POV: A or B
"A" has a silent majority so only 5 of the 5,000 people post a comment about A being the right POV.
"B" is a passionate minority so 5 of the 50 people post a comment about B being the right POV.
To the viewer, it looks like a balanced discussion and a topic open to much debate, both sides have equal voice but in reality "A" is by far the most accepted position.
Very sorry but it absolutely is the case here. Your anecdotal data is limited to you, but HN very much operates as a hive mind, it just hides it better.
Considering this place to be "superior" to other places only leads to complacence and further strengthens the echo chamber.
The only niche tech subreddit I know of that's anywhere near the level of discourse on HN is r/zfs, and even then, it's mostly people asking for help because they broke their zpool; it's just that the answers are often quite detailed in their explanation. r/sysadmin is Windows-centric but isn't awful in terms of depth of knowledge. r/kubernetes is mostly blog spam and "can you troubleshoot <problem I've put zero effort into solving> for me," and r/devops is mostly "how do I get a job in devops."
HN culture is quite like a subreddit IMO. The only real difference is that it doesn't receive drive-by comments and upvotes from redditors browsing /r/all while not subscribed to it. This helps to curb most forms of reddit humor
However; check out subreddits like /r/rust, it looks a lot like HN
For this reason alone, the two sites are night and day to me. I don't have the stomach or nerves for Reddit anymore, but I can sip the cool, refreshing draught that is HN all day long.
I have a slightly different view on microservices. They are not a technical solution but a business solution. Technically it's a fairly dumb idea ... but if every microservices is actually a tiny business function (that is some "atom" of the domain) then suddenly the business can see and manipulate and monitor and see stats in usage for each atom of its processes. Things become isibke that were hidden in giant "oh the refund section of screen four does that and bobbys team is working on that".
I think Programmer Anarchy was a early adopter of microservices and as they ran a business as developers I think this may have been useful
> Usually, the comments on HN/Reddit are polarised by a single group of people who have the same opinion,
> polarize: divide or cause to divide into two sharply contrasting groups or sets of opinions or beliefs.
> "the cultural sphere has polarized into two competing ideological positions"
At school, they used to say that two don't fight if one doesn't want to. Except that was a lie. Bullies didn't get the memo, while teachers and parents were happy to repeat the lie, wash their hands and blame the victims.
I also think HN usually come from the same background with predominantly comments from California USA or USA in general.
Compare any topic relating to capatilism, the plights of the low income classes or politics in general. I often amuse myself comparing the takes between the two sites relating it those topics.
Also HN is more clinical, it discussed the death of Swedish reporter like it was a cold case ready to be ripped through.
And also more easily distracted by seemingly innocent open questions like in politics for example "Why is it X job to care about this?" since you can't dismiss it with a short meme it creates discussion that the OP only wanted to distract from the original article.
Apart from that HN discourse is 100% better than reddit and I agree with you in some terms.
There is a tendency towards proactive change here on HN, which is fine with this old retired programmer. I'm all for making new systems that utilize all that's been learned since the 1960s.
What I'm NOT in favor of is the disrespect of legacy. There are millions of systems out there in the world in manufacturing environments. These systems are ancient, I worked in a shop making gears for 5 years. The CNC lathe we used had a GE computer running it from 1970, and it used mylar punched tape to store programs. It was a huge investment when it was purchased, and there was an old guy (about 70) who they called for repairs on it and much of the other ancient hardware. This shop had 6 employees, including me. At it's peak, there were 50 or so, during and after the Viet Nam war.
That hardware was sooooo old, but it still worked, reliably turning out the same few types of shafts and other parts we need to turn into gears and splines and other gear shaped objects (like turbine blades).
The programmer in me desperately wanted to keep the lathe, the motor, and just replace the control system with GRBL, but even if that was free, and worked the first time, the risk that an upgrade represented was completely unacceptable.
When you're in a job shop, there are parts you've been making for a generation in small quantities (less than 500). Those parts are relied upon by other businesses as part of their product. If you "upgrade" any part of your process, you risk producing a part which doesn't work somewhere down the supply chain. If you make that happen too many times, you'll lose your customers.
It's also important to know that gear cutting was only a step in the production chain... we didn't start from raw materials most of the time, we were given a "blank" on which to cut teeth, that already had many operations performed on it. It was almost never just a matter of sawing off a new piece of metal and starting over. You had to respect the work already put into a gear blank, or shaft to cut splines on.
The incentives in manufacturing are strongly against any type of change. However, they aren't blindly obeyed. If there are new jobs, then it's reasonable to try out the new machines or new systems in those cases. If something can cut the cost of a part by half, then it might be worth the risk, if the customer approves a change.
Please don't think that those in the silent majority of the world are un-reflective of the needs for security and other patches... but if things break every Wednesday, they'll disable Windows Updates forever, for very good reason.
I think what the author says is true. The mass of digital workers use
older, established and unfashionable technology, and are neither vocal
nor particularly curious about the work.
But there's an implication of moral purity at play. Are those who just
quietly "mind their own business" a good, wholesome but misrepresented
group?
On the contrary, I think that in matters with far reaching
consequences, which computing is, silent majorities are the
problem. Unreflectively going along with the programme becomes a
kind of passive negligence which should not be lionised in a folksy
way.
The insane race to adopt any fad to be cool, is a mindset I find far worse
morally than using tried and true tools.
It enhances risk.
The latest tool language and/or framework is uncharted territory
A tried-and-true solution has had a lot of bugs and issues documented
and some of them solved.
It also mean the team must take a break from development to learn whatever
the new thing is. Some will need more time than other, which may slow it down even further.
A lot of systems are developed in domains where "go fast and break things",
A/B testing etc. would not be at all advisable.
The main selfish focus on "adopt whatever is hip this week" is to pad resumes with it, consultant can come in to help train people $$$.
Consultants will fight for it to use the newest and greatest since it may
increased development time $$$.
This is a false dichotomy though. Your comment makes it sound like the only options are to keep using the same tech stack for 30 years or to "race" to adopt the "newest fad". What about switching from a moribund 30 year old technology to a mature 5-10 year old technology every now and then, based on an assessment of the very real drawbacks of living in the past. Security is one of the biggest problems with outdated software that many people are only too happy to ignore.
Switching wholesale is often detrimental itself. Often the best thing is to leverage new tools for new development, and as certain older parts of your stack are retired move those from the legacy technology to something more modern. If something's getting so old that you're getting short on people who understand it, that part becomes more urgent to move to the newer technology. It doesn't kill a business to have two or even three generations of tech spread across teams so long as it's manageable.
An older tech stack doesn't mean never updating the system. either. Perl still gets updates. Linux distros still get updates. In fact, often a newer piece of software will introduce bugs including security bugs that were fixed in older software long ago. All things being equal, though, using a language with better string handling and memory safety can be a boon if your old stuff is in something like C.
It happens at the company level too. You end up with a lot of decisions being made by the minority that (1) feels strongly and (2) is willing to speak up.
It's an interesting dynamic. I've been on both sides in my career. Silent is much easier but doesn't get you recognition & promotions.
>>You end up with a lot of decisions being made by the minority that (1) feels strongly and (2) is willing to speak up.
...and don't forget to include the wonderboy/girl from the overpaid consulting firms that come in and tell the CEO they are doing everything wrong and should move everything to: (pick the latest technology fad)
and then 2-3 years later they come back and convince upper management to move to the next big thing...
> First of all, when you're vocal, you're more likely to be heard.
Why is being heard a good thing? When I was at school I was the insufferable kid who always put their hand up as I knew the answer. Thinking somehow that the teacher wanted to know the answer. What I learned as I grew up is a lesson learned is better than a lesson told.
I’d argue people greatly underestimate confinement by the Status Quo, or producing what stakeholders asked for... rather than what they needed. As an engineer one may have opinions about how things should be done, but in reality it is often not really your call if you are just an employee.
Put another way, if you are not listening to the person who signs the checks, than your career will be rather short.
"Nor would a wise man, seeing that he was in a hole, go to work and blindly dig it deeper..." (The Washington Post October 25, 1911)
I don't think that 10% comments, the numbers I remember are 10% votes and 1% comments. And looking at some random topics it seems to be roughly there, 10% comments is way too high.
I'd suppose that on a personal level and for HN, activity also changes with experience.
I've been passively reading HN for a few years as a junior dev after my team lead introduced the site to my before even creating an account.
I've been making comments on a few topics of interest now and then in the past three years.
Since a few months I feel like "yeah, I should probably write some docs + blog posts" which might be interesting to other HN readers.
I've also noticed that some HN users write a lot of comments to any kind of post whereas others mainly commment on articles related to their are of expertise.
It's not just that they are silent, most of them don't even speak English that well; or at all. And they build a lot of software. And they are all over the world. Any tech stack that ever mattered, there are still countless of people using working with that on a daily basis.
There are a lot of developers out there, tens of millions. That little bubble of users actually commenting on HN is tiny in comparison. So, yes it's good to be aware of that and appreciate the world is bigger than that. At the same time, like with politics, just because they are silent does not mean they don't have opinions. And they vote. With their feet. They'll adopt practices, tools, and technology they like or need and walk away from other things.
> While browsing HackerNews, [...] you might think that PHP is never used nowadays because whenever it’s mentioned, everyone is hating on it in the comments.
This is one of those things that "everyone knows". It may have been true at some point, but it definitely isn't true anymore. The reality is that most discussons here treat PHP fairly, giving it credit where it deserves it and also pointing out its weaknesses.
- (2019) https://news.ycombinator.com/item?id=19917655 : the top comment is someone praising Laravel and the "modern" approach to php. The general feeling is that PHP got some things right (shared-nothing), doesn't offer anything particularly unique but is surprisingly effective in reality.
> There also seems to be an assumption on HN/Reddit that vocal activity on the internet, in any form — be that videos, blogging, podcasts, etc. — is proportional to activity behind the screen.
Personally, I dislike this attitude. I think the internet is a good signal for what will be in the streets in 2-4 years time unabated. The attitude OP reflects is one that was valid in the 90s and early 2000s, but not today.
No, I think that's very wrong, now more than ever. What you read "on the internet" is almost always fabricated and published with manipulative intent and asymetric capabilities to promote a product, lang/skill, or whatever. It's the negative comments you should care about.
I think you and I may be talking about different things. I do agree with your point that there's lots of hot garbage on the internet. We might as well be doing Olympic laps in it. My point was more at trends in general. If you see something appear on the internet that has even moderate staying power, it will weave its way into society eventually.
I would say, less "naive", and more "to forget". I remember reading about russian bots like eight years ago, the Facebook scandal, and more on the topic once in a while. But. Maintaining vigilance 24/7 is bloody tiring, as any guard/soldier knows.
I simply forget. Maybe that's how they get you. They wear you down.
I agree with both of you. There are useful contents indicating trends and there is so much shilling and fake news online. We need somebody to sift through it all - like an honest, ethical media ...
I totally disagree. Slacktivism is a thing. It's easy, especially when you're jobless or still at school or without any social life or hobbies to be an activist online. It's less easy when you have to face the material world.
Moreover "the internet", whatever the meaning, is not a faithful representation of the "real world". Go tell the millions of people without toilets or working the whole day the slacktivists spending their days on twitter represent their struggle...
I do feel like engineers who put themselves out there and engage on HN, Github, Chat groups, etc, get "polished" and get better as engineers, assuming that association in these forums causes them to read more code or think about paradigms.
If "silent" are mostly keeping to themselves, they might have some of their own innovations independent from mainstream engineering, but lack common knowledge, which can be accounted for by reading a lot of programming books, release notes, docs, etc.
Unrelated, some unsolicited feedback for bloggers, I like to click on images to zoom in (quicker than ctrl+equal 5 times). So at the very least please wrap the images in a link to the image src. a humble request.
> Unrelated, some unsolicited feedback for bloggers, I like to click on images to zoom in (quicker than ctrl+equal 5 times). So at the very least please wrap the images in a link to the image src. a humble request.
I suggest using a TamperMonkey script to accomplish this on your end; outside of thumbnail galleries, it runs against common expectations, so you'll have better luck taking control yourself.
These are still non controversial. Controversial bubbles on HN are:
* Everything should be free and open source. Just because small portion of the HN can donate to their favorite projects, everyone should run on donations. Ads are forbidden on the internet. No internet business should be a profitable company.
* Tiring and useless interview process designed by FAANG etc is no way a farce and a totally justified practice (some version of Stockholm syndrome there)
* Private companies should not interfere in the politics/internal matter of another country. (This view quickly changes when they see the negative effect of same companies in their own country)
* YC is the best and the most exclusive startup accelerator/incubator in the world. If you got accepted in YC, you have won in life.
> * Tiring and useless interview process designed by FAANG etc is no way a farce and a totally justified practice (some version of Stockholm syndrome there)
I'd say it's the opposite. The view you're expressing: that the standard software interview process is somehow "useless" strikes me as a bubble here.
I'd wager most people not on hackernews don't hold your view.
The problem isnt the ads (I have an ad blocker), it's that the ad companies think they should be allowed to build a profile on me everywhere I go. No thanks.
Yea, I'd be fine seeing ads for camping gear on a site for neat hikes in my area... it's the fact that the advertisers are tracking everything I do instead of just putting relevant ads in relevant places.
It’s marginally useful, but it also is extremely slow to roll out given the extremely limited range of the cell towers (at least the ultra high speed ones anyways).
Personally I have it turned off on my device, there’s not enough of a noticeable benefit and a non zero hit to my battery to have that part of the modem turned on.
> Entry level Web Developers are getting $200K per year working in FAANG or Big Tec
What inflated most in the past 3 years is the ego of engineers. :-) On blind and job-seeking forums/groups, people incessantly flaunted their packages: $500K with 3-year experience. > $1M for an L7 applied scientists, getting promoted to staff engineer 3 years after graduating, and etc.
I think it all started after 2020.03. The market dipped, and then bounced back, and there was a talent war, thanks to an influx of cheap capital. I remember that my Amazon friends were very happy for a $600K package for their L7 positions, but all of sudden that number seemed normal after the great package inflation since 2020.
Yep. And either the Oracle support is completely incompetent at my workplace region, or the more servers you add to your multimaster replication, the less is your total throughput. Starting at the 1 to 2 change.
I still believe it's a case of the Oracle people being incompetent, and the system technically being able to scale at a rate somewhat larger than 1. But if a potential gain can be acquired for a few million grand, but nobody has the technical capacity to actually acquire it, is the potential actually there?
>Entry level Web Developers are getting $200K per year working in FAANG or Big Tech. Non-FANNG are getting $150K anyway.
I don't browse job threads much and I don't pay attention to people mentioning salaries so I can't say.
>Ruby may be dead, but PHP is even more dead.
>Java may rule the enterprise, but you should not mention Java.
For PHP and Java, there is a very strong case to be made that "dead" means "utterly flawed and completely uninteresting and somewhat ugly\repulsive and only worth writing if the money is very very good", which is (in my very humble opinion) trivially true. It doesn't matter how much they are written, they are dead branches on the PL evolutionary tree, they won't have progeny or nostalgic mind share rooting for them as languages.
I don't know what people declaring Ruby "dead" mean, perhaps its about Rails falling off the hype train or Python eating a lot of its potential mind share and market niche. But Ruby is definitely nowhere close to Java or PHP in bad design, it's a descendent of Smalltalk (which Java aped badly) and Perl (which PHP aped badly), the union is very fruitful and the language is delightful.
And for what it's worth, I remember 2 times I was pretty heavily downvoted because I criticized java. Same goes for C++ and JS. I don't remember seeing anyone downvoted for hating PHP, but also none for defending them. Seeing bubbles is very correlated with what your own biases are.
>No one uses Oracle or MySQL, why would you want that? Postgres is the only DB forward.
Maybe Oracle Bad, that's real and very popular here on HN, for good reasons. I don't remember anyone seriously saying you can't use MySQL or only use Postgres.
>Everything should be Remote.
God no, that's aweful. This position has fierce opposition, including me.
>Communication should always be Async
Maaaybe ? I see plenty of opposition to this. My personal opinion is that good comm is not sync or async, it's exactly what it needs to be to get the message across.
>Oh, Ada is the second Forbidden Fruit on HN.
Not really, it doesn't get mentioned alot because it has miniscule online resources but whenever it's mentioned (e.g. in the context of formal verification with Ada\Spark) there is broad enthusiasm and interest.
>Facebook is...... OK I guess we shouldn't go there.
Haha, yes. Very true. But (like Oracle) also for very good reasons. But I agree that Apple, Amazon or Google aren't angels either, and it rarely get mentioned. In fact, if I can choose a single FAANG company to destory overnight, it would be Apple, their way of treating customers disgust me so much.
>USB-C will solve all cabling problems. Everything should be USB-C.
>5G is useless.
>AV1 and AVIF. The video and image standard to rule them all.
Interesting, I never even saw those opinions expressed once, and I'm fairly addicted to HN. I'm beginning to suspect there are "Meta-Bubbles", bubbles where your perception of what things are bubbles is itself bubble-like.
>Nothing should be centralised. Everything should be distributed.
Hmmm No ? There is an HN bubble against cryptocurrency, which should be impossible if what you're saying is true.
>You do not criticise The Rusted Holy Grail and the Riscy Silver Bullet
True-ish, especially Rust. But there is plenty of aweful criticisms of Rust that always go something like "Everything the Rust compiler can do my own custom home-grown linter tool can also do, nobody needs memory safety if we just be careful also smart pointers and RAII". There is plenty of bad things to say about Rust, none of it leaves C and C++ in good light.
made me think of a thread here recently, can't remember which one exactly, that had the general tone of "who even develops on Windows?". People in the .Net ecosystem at least it seems like are very underrepresented here given how large of a platform that is.
There are "arcane" development communities that are far less engaged in "social programming". The Basic Community is quite large as well and I think I have never met a developer on the net. .net is even larger but increasingly the community seems to withdraw as well. As someone who formerly developed on that platform I wonder where they exchange themselves nowadays.
I know quite a few companies that develop on .net, mainly in C# instead of Basic of course. But I rarely see any discussions about it. Wouldn't know where to ask in-depth technical questions.
> But let’s be straight, that’s like 1% of all of the developers out there — the rest of them are just lurking and coding with their language of choice and being content with it. Be it Fortran, COBOL, Perl, or PHP.
Assuming all developers who are using something like COBOL or Perl are content with it is hilarious. It doesn't really get much worse than something like COBOL or Perl in terms of ergonomics and ease of use.
As a once and, who knows, maybe future Perl dev I find it a weird choice of grouping, no disrespect to Fortran, but I also think there are probably quite a few mature Perl codebases tended by mature Perl programmers who have their ergonomics and ease of use very dialed-in.
Whether you would enjoy it is a different question, but my impression from years of doing Perl is that the most committed hackers tuned their environments and organized their projects just so, and would laugh at anybody else’s idea of “ergonomics.”
I like Perl for small codebases heavily focused on manipulating text. It has first-class support for regular expressions, which means you can make them more readable in addition to doing more things with them more conveniently, and it largely stays out of my way.
COBOL, on the other hand, is a domain-specific language for a domain most people here have no experience with: Software involving fixed-format input and fixed-point numerical calculations. It would be amazing if some language integrated a clear way to describe modern, recursively-defined input formats with the same degree of language support COBOL has for its data definition language. Go is still too verbose, sadly.
Fortran suffers from FORTRAN, by which I mean if you mention Fortran to people they think of 1960s-era mainframe software with no string support, column-oriented fixed formatting, and GOTO use by people who'd never even heard of Dijkstra. Modern Fortran is not like that; sadly, much like Lisp, they never changed the name, so old ideas linger. (This is also true of Cobol.)
Php had pretty good docs online. COBOL presumably has good docs (though I think it’s a bad example and not used much). Perl used to have a thriving online community so it seems pretty conceivable to me that people could like the language. And CPAN still exists and is full of reasonably practical packages for doing lots of reasonable things, as well as packages like marpa which don’t really have equivalents outside of Perl.
I am reading this as someone a little too young and too European to yet know much about Nixon, but would prefer if HN could avoid potentially making an idiot out of myself, when talking about recent history.
> They do not participate in controversial discussions about Visual Basic or Pascal — they just do their work in those languages without even knowing that there’s so much controversy surrounding their language of choice.
Serious question: are these languages actually controversial? Doesn't "controversy" usually mean people holding strong opinions and frequently disagreeing? I rarely hear anything at all about Pascal or Visual Basic. Maybe they were controversial in the 1990s? Now I'd call them merely unfashionable.
Perhaps OP meant Pascal programmers arguing among themselves, rather than arguing with anti-Pascal programmers? I'd expect such a smallish community of developers to find plenty of common grown in such a stable technology, so no need to throw stones.
* Making money from your own project is bad. You shouldn't put ads or charge a SaaS fee from your own project / startup / small business. But it's okay to be well paid by a FAANG as an employee.
* "I can build this over a weekend." - when someone posts their own project here
* "I don't understand why they need to hire so many people" - when learning that a tiny app (e.g., Twitter, Uber) has thousands employees.
Mh I've never seen a developer who is not passionate about a few topics. Eventually he's not participating in online discussions, but I think the silent-mayority thinking assumption is plain wrong.
Without a good bunch of enthusiasm you cannot do this job well. Moreover without some strong opinions that you are able to voice you just are a puppet of pull request comments and cannot profile yourself in your team.
Most, if not all of the developers I know online are passionate developers, but the majority I met in real life at various work places are not it seems.
Some things I'm silent about, other things I'm not.
Articles like this often fail to differentiate that there usually isn't one large blob of people that are chatty about all the things all the time. Usually individuals have their own specific issues that they're interested in and passionate about and will default to the consensus or be fine with any option for the rest of it.
Well... Silent majority also means the mass of people who do not contribute to the society except for they use as meat-based weapons in politics, religion... Yes they have a value, for some it's the same value of a flock of cows: munging meat, milk etc. For some a hope or absence thereof for the humanity. IN history unfortunately the former tend to win all the time...
"software" does not means only developers, PMs and code monkeys, but also "moderators" for GAFAM and their Chinese/Russian counterparts, who normally happen to be very stressed and little paid censors, i.e. meat-based weapons against their own co-Citizens. But also those who act a bit like code monkeys to develop common crapware so many use, mostly in web and business crapware etc. They all contribute to DESTROY IT and civilization together.
I just only suggest a thought: did you noticed how many now can't use pen&papers properly for instance to write something a bit more long and complex than a quick few words note? Well, there is nothing wrong in that IF they know to do the same with some other mean... The issue is that they do not equally know how to do on a computer. Actually we have even lawyers unable to format a decent letter without a template on a computer or by pen&paper. I call them skilled illiterate... And that's not only about a letter, for diagrams, simple drawing it's the same. Most can't even IMAGING doing something like humans have done on paper 10+ years ago with a software, they can't imaging having in a unique documents some text, formulas, a plot, an email etc. They are so trained that you need a different program for anything (because that's good for business) that they feel the WOW effect just seeing a modern limited and limiting "notebook UI". Some colleagues (sysadmins and some devs) have a similar effects seeing me with Emacs, many at first demo act like children in front of something new that seem magic to their eyes. That's is.
I am probably part of the silent majority, at least until this comment. Be aware that my comment is focused on business. What you do as a hobby or a side project is out of scope.
The debate around languages often focus on syntax differences, as if they alone would make a huge difference. We need to consider the eco system as a whole.
Many have probably read the "blub paradox". The context of that article is his experience from building a product in the late nineties, when the eco system was so much smaller than what we have today. In a world where you have to invent your own frameworks and libraries to get things done, the article makes sense. I don't doubt that you will benefit from a powerful language, when you need to make something truly novel.
Today we are in a completely different solution where 90% of web startups should use one of the existing frameworks and libraries to build upon, rather than making your own. It's basic "plumbing" compared to what we used to do 20 years ago. For the remaining 10% where they need to (re)invent a database or framework, a powerful language may have advantages when your product is mostly code.
Another tendency caused by the bubble effect of HN/Reddit, is that many move on to different languages and is left with their impression of a language as it was years ago when they last used it.
One good example of this is Java. If you asked me 10 years ago, I would say that Java had stagnated. If you ask me today, I will tell you of all the improvements that have been made and many more planned. A lot of the arguments against Java is based on old articles and experiences that are no longer valid.
I am also wondering if some of the dislike is also caused by many learning it in school in an environment that has little to do with real work, but that is a different rant.
I'm not saying Java is the coolest language out there, but the massive amount of open source and battle tested frameworks like Quarkus and Spring is a differentiator. I would argue that the "Blub paradox" of yesterday should be replaced with a "Bubble paradox", where the real work is done by pragmatic developers who use an ok language with an excellent eco system.
It is sometimes frustrating to read articles about startups who clearly should have chosen better. Everything is fine in the beginning, and they write blog posts about the success they had which is circulated within the bubble. After some time they need to scale up and implement functionality that is not supported well in their eco system. They then spend time on solving problems that seem novel to them, but is basically a solved problem in a more mature eco system. Instead of growing the product, they are forced to spend time on the "glue".
To paraphrase Breaking Bad: Are we in the money business, or the programming business?
If I have to bet on two startups, where one uses the latest bubble language and the other Java, I would bet on Java in 90% of the cases. I know that they will get things done. Perhaps even modern PHP would be preferable.
Java has one of the best ecosystems with lots of libraries and frameworks, especially for high-perf distributed applications (see Hadoop, Kafka, Ignite, Cassandra, etc). And there are plenty of developers to hire. So it is a good choice for most backends.
As a developer I prefer C# (IMO the best general purpose language these days), but from the business perspective Java may be a better choice in some cases.
Yes, it has a lot of good libraries, and bad frameworks. The focus on code generation, distributed systems, and high complexity environments are all on the wrong side of starting something up. (One of those may be right after you are big, but then, Java isn't the best choice for any of it.)
The one large selling point of Java, that is to help you enforce a minimum level of quality on code that lots of people change, is completely meaningless for a small team starting up.
Java has a great ecosystem all around for backend applications, which happens to be as focused as it can be, i.e. there are one or two big, high quality frameworks that everyone uses, and you're good to go if you stick to either of them. Also, every single cloud vendor supports Java as a first class citizen, so you get very low friction at CI and any step beyond it.
> The one large selling point of Java, that is to help you enforce a minimum level of quality on code that lots of people change, is completely meaningless for a small team starting up.
I haven't read this before, I must say it sounds a bit myopic.
Let's say it is true. Then what's the point of starting with any other language? Either you are a hobbyist, or you need to plan for scaling up your venture; and given that your team is small in the very beginning, where are you going to get the resources to give your product a makeover or rewrite it in a different language?
Can we please stop supporting political operations like BLM, MAGA, and political parties in software. I am tired of every open source project asking for donations to BLM. Uyghurs matter too.
Indeed silence. During market research, looking for potential developers who would use our developer tools is difficult. Keep asking myself where are these guys? Tech twitter is literally javascript thingy echo chamber. Reddit is newbie marketplace with a lot of bias advice for beginners. HN is like ok boomer who don't buy anything. This is my perception.
> The “silent majority” was used by President Richard Nixon during his presidency and his campaign against the Vietnam war. He spoke to the people who were not actively voicing their opinions and who were overshadowed by the vocal few who were supporting the war.
This is a shocking misunderstanding of history. The “silent majority” Nixon spoke of were folks opposed to anti-war protests. Nixon intentionally prolonged the war for political gain- killing additional thousands of people.
I believe it was to undercut the numerous state-level organisations that had started appearing, consolidating power with the federal govt (and executive branch, specifically)
>If you ever find yourself about to say that Nixon did something that a non-evil person would do, you’d better triple check your facts.
Actually Nixon did several things "a non-evil person would do", Nixon as evil is a carricature.
Like giving back Native American lands, or green-lighting the first major environmental protection legislation, or to get talking with China. And of course the Vietnam war itself was escalated by the "good" JFK, and even more so Johnson.
Later presidents did things many times worse than Nixon (his Watergate business included) and got off scot-free. But Nixon had an ugly mug, and was an old-style politician, in an era when the boomers were young and "rebellious" and wanted someone more trendy.
He very nearly signed a Basic Income law. I originally read that the Democrats voted against it because it was too low, but more recently read that someone convinced Nixon that a Basic Income would have terrible consequences based on some faulty historical information about the Speenhamland system, which turned Nixon against BI. But it was close; he could have made history in a much more positive way than what we currently remember him for.
The seventies were an odd time - the generation who had come of age during WWII were in power. And WWII had the strangest historical anomoly - wealth was most evenly distributed post WWII than at any time prior. And it was working. It seemed a great idea to experiment with other ways to keep wealth fairly distributed. What a shame power and wealth found it's way back to the few.
We will have to fix that. preferably without a global war
Everyone was equal because they bombed most of the existing capital until there were only smoking craters left and set the poor to killing each other. It should be a great example of why inequality is a good thing - everyone wants to solve inequality by raising the poor up to be billionaires, but the only way we actually know how is to destroy all the capital that the billionaires own so we all have access to nothing.
Someone else being well off doesn't have to make life worse for anyone. People need to live with that truth.
Throughout human history someone being wealthy almost always meant someone else being exploited - from obvious chattel slavery to less obvious trading networks
That these exploitations often created empires that created institutions that themselves promoted higher efficiency in trade (like protecting from piracy and brigands) was a good thing. But trade, whilst always a win win, can be and for empires always was structured to win more towards the centre of the empire
This structural inequality is found everywhere. In strong and weak forms. A weak form is commonly known - wealthy people "cheat" to get their kids into MIT or Harvard, (or even being wealthy is a cheat) and then the networks formed their help with access to resources later (see VC funds two kids from MIT with idea for ...)
Strong examples of structural inequality are found in say the Russian Federations army where the head of the armed forces has multiple houses and yachts and oddly the conscripts are fighting on a dollar a day and often come from rural impoverished areas.
None of this your fault.
But we choose our structures, our institutions in the same way we choose our built environments. If we have Houston-like 20 lane highways with nose to nose traffic when we could have please t walkable cities with electric trams and steeet cafes then yeah, none of that is the fault of the people in the traffic jams.
But it was a choice. A choice made in these cases in a democracy.
And we just assume that if people were given informed choices they would not have gone "hell yeah 20 lane highway".
So the solution to bad structures, bad institutions, bad urban environments
is democracy. Is people making their voices heard and choices being made that are the informed choices people want (I assume most people will vote for "more equal")
Yet the next step is a leap of faith. Faith in democracy
and human intelligence
The networks will work to keep themselves in power and are a centralising force (gather more power to self)
but human wealth now depends not on control of land but intelligent use of excess energy and political stability
So does someone have wealth today? That's nice. Is the structure of how they got it a fair one? Is it right that someone who has capital today should continue to direct the use of that capital? Is it fair that a founder gets 80% of the shares but the first engineer gets 1%? I know it was a trade but capitalism is structured like the above empires were structured - to benefit the capital city.
Is that the only way to structure the allocation of resources in the planet?
The use of coal and oil has seen an outrageous chnage in human wealth. Fantastic. And the conditions for that industrial revolution are so weird that tinkering with it seems so risky. but the two world wars showed that it is a fairly robust revolution- and if we want to get out from the oil / CO2 trap and into a sustainable future we need to overcome bad resource allocation - it's time to try new options. Private Companies are undemocratic and control about 50% of western wealth, is a hierarchy like that the best way to allocate and motivate resources? Most western nations are highly centralised - does that make for th best local
decisions?
This is why those that benefit from the current status quo are trying to dismantle and destroy education, right? We can't let the people read, know, or think about what you wrote. It's destabilizing and "dangerous" to their way of life.
What we are seeing is an increasing number of wealthy people trying to fit into a system designed for a smaller number. I mean Harvard takes on a freshman year of 2,000 out of something like 3 million 18 year olds.
Most Ivy Leagues will have a small airport nearby. Usually Cessnas etc. On graduation day that thing is full of private Lear Jets.
The plain old wealthy, someone who worked hard built a successful company and retires - the American dream kind of thing we imagine here on HN. That person does not get a ducking look in at Harvard.
The system is failing everyone - which is kind of weird.
But nah. I don't think there are back rooms with smoke and cackling bankers working out how to stop the poor from reading.
I mean that was true in slave owning southern states but that's now just toned down to simple racism in the country club.
The problem is that the racists in the country club are only slowly coming aware how much the system is ducking them. None of them are able to say their daughters got into Harvard.
Hence Trumps popularity. He probably won't fix it but he at least says he will and blames the country club racists problems on the people that they hate (as opposed to the actual cause)
Well, mass education was never about learning to read, know, or think. It was about making factory workers, clerks, and (later) office staff.
Elite education, and especially luxury education for the children of the elite, was about learning to read, know, and think - mainly because it was still tied to an earlier humanistic and scholarly tradition where those things were important.
That lasted a short while, say until the 70s.
Now, even elite education is not about that kind of learning anymore, as those in power don't really need or appreciate those skills.
I think this is a re-work of "Chinas Totalitarian Bet". So there is a theory that the reason Middle East armies are basically expensive and crap is that the elites of the Saudis and Kuwaitis and Iraqis have loads of money but are despots and won't trust anyone but the most loyal / ethnically familial close with real power. So the tank battalions are lead not by talented colonels but by a cousin of the royal family. Spend six million training a nobody from nowhere Tom Cruise to be a fighter pilot? Make all the princes pilots. Let a sergeant train with a Anti Tank weapon. No way. They might aim at the cousin in his tank.
This is the opposite of the (more) meritocratic USA. Decision making is pushed downwards and the coherent mission is aligning all.
It is worth noting that a lot of ISIS / al-quida success is attributed to having to let go of this attitude - their central driving mission meant everyone was loyal, this decision making and training could be pushed right down into cells. Anyway I am not an expert here.
The point being that Totalitarian regiemes have a hard time making militaries that are flexible and responsive. And that rolls over to factories and civil servants etc.
Now the guardian writer Jon (?) and up with Chinas Totalitarian Bet - china knows this but thinks software and the surveillance state changes the game enough that either no-one can get out of line enough before their digital footprint catches them (again see al-qeueda) or that they can just give direct orders to be followed like Amazon warehouse packers and that will allow such flexibility and change.
So yeah mass education was about teaching the masses to think. And the people in say Victorian Britain who said this will end their way of life were actually right - fortunately for us.
The question now is can software replace our thinking? Can we all just do as we are told ? Will a society of drones be worth living in or even be productive enough to survive? And will the opposite, a more democratic more meritocratic and more fair and generous society be more productive innovative and worthwhile. I say Yes to the last and no to all others.
Yes. The first thing the chinese government did after Nixon ended sanctions and allowed trade, was to order 12 fertiliser plants from R W Kellogs (not the cornflakes one). Giant things that squeeze ammonia out of the atmosphere. That meant climbing out of a starvation cycle.
Nixon going to China probably saved 100s of millions of lives. Chinese lives of course but lives. Sadly for Nixon the lives he saved did not vote in Chicago.
Nixon was not evil. People arent evil. Decisions people make are evil.
It was quite the opposite. It gave the US capitalism a new lease of life in the 90s, and of course it helped China (that's 1.6 billion people and counting) grow.
I've never been into history, so my perception of the guy was "formed" almost entirely by Futurama. So, in reality I don't know anything about Nixon except I do not want him to get Cambodian on my ass
Just to save time for other people who might be wondering how Wikipedia could get this wrong, bndr seems to have forgotten to read the last part of the admittedly long sentence in Wikipedia. It lists several vocal groups.
That's a very specific wording; were these people also pro-war, or did they just not like the protests themselves?
I think that's an important distinction to make. In my country we've had farmer's protests (environmental legislation has caused the government to target some farmers, things like forced buy-outs. It's all on paper and wouldn't affect that many people or the food supply since 65% is exported anyway, but still); while a lot of people agree and stand with the farmers, what they don't agree with is the protests they've done where they block the highways, first with just slow moving tractors as they made their way to the government seat, more recently with barricades, manure and burning hay bales. That affects people directly, the upsdie-down flags and slogans on fields along the roadside don't.
That’s the thing- the war was widely unpopular, but there was a growing reactionary sentiment against the protests, so Nixon gave a speech where he basically said “if you aren’t with me on the war then you’re a dirty hippie” and people feel for it.
> The “silent majority” was used by President Richard Nixon during his presidency and his campaign against the Vietnam war.
Excuse me? The "silent majority" was the set of Americans who were for the war, not (loudly) protesting against it. Nixon was all for continuing the war.
It was stealthily changed. Someone else quoted the original further down in the comments
> The “silent majority” was used by President Richard Nixon during his presidency and his campaign against the Vietnam war. He spoke to the people who were not actively voicing their opinions and who were overshadowed by the vocal few who were supporting the war.
As someone far left, I criticize capitalism routinely here, and it usually gets upvoted. As for free markets, it's hard to criticize something that is largely absent in our modern economy: capitalism is actively hostile to free markets and is basically a positive feedback loop for market monopolization. But I've seen people criticize free markets (as they understand them) and get upvoted as well, many times.
> As someone far left, I criticize capitalism routinely here....
I'm glad you told me that, because I never would have discerned either of those things from your recent post history. I would suggest you probably don't have the perspective to see just how many downvotes get aimed at someone who's actually critical of capitalism and "free markets."
To judge by the current thread, at least, the difference isn't ideological, it's that int_19h is using HN as intended, and your account not so much. We're not trying to dampen curious ideological discussion here; we're trying to dampen internet dreck.
(You've also posted good comments to HN! my criticism here is narrowly scoped.)
I've found you can get away with criticizing almost anything on HN, if you do it as an open discussion rather than from a closed position of just espousing doctrine. It's one of the great strengths of this community.
People do that all the time on HN - I can give you a long list of comments complaining that HN is dominated by socialists, communists, Marxists, you name it.
We should distinguish between making substantive anti-market arguments and shrill ideological rhetoric—the latter is going to get downvoted (correctly) regardless of ideology because it's against the site guidelines and the intended spirit of curious conversation - https://news.ycombinator.com/newsguidelines.html
Well, golly gee, thanks! That's gonna generate some insightful discussion.
I don't recall seeing very much thought to the left of Bernie Sanders/AOC on here (which is to say, left of the entire American mainstream). I'll believe that when I see it.
Look closer! There are quite a few accounts representing further-left positions on HN. Look up claudiawerner or deanCommie or one or two of the accounts posting in this thread (edit: oops, I meant https://news.ycombinator.com/item?id=32637686 - got my controversies mixed up). That's no problem as long as they stay within the site guidelines. Indeed, it's good for intellectual diversity. We do our best to protect accounts like that when we see majority prejudices acting unfairly (as well as other minority viewpoints, including strongly disagreeing ones).
Of course those politics are less represented on HN than others, but they're less represented in society too. I'd guess they're rather more represented on HN than they are in the population at large, given HN's semi-intellectual orientation. (Only 50% HN users are in the US, btw, last I checked.)
As for detaching this subthread- if we aren't going to mark a big-ass ideological meta subthread off topic, I'm not sure what we would. That's one of the most boring, generic, and pointless offtopic tangents there is.
(Btw, nearly everyone who makes large claims on that note is completely wrong, because people's perceptions about this are determined by their own pre-existing positions. That's why the question of which way HN is like-totally-biased is decided so differently by every camp. If you want examples, there are dozens at https://news.ycombinator.com/item?id=26148870.)
Or Apple, or libertarians, or Rust, or any other similar darling. Or suggesting that absolute free speech comes with issues when coupled with the global reach and pseudo anonymity of the Internet.
I could show you multiple examples for many countries. Just search google for "dang nationalistic site:news.ycombinator.com" for some great ones. Admittedly, a lot of them are over the line, but it really is as if you can't mention any country in any kind of remotely critical way, yet they won't just publish that in the guidelines for some reason.
If you give good criticisms with well thought out and logical statements. It’s received well. If you dump a buzzword loaded handwavy comment, it isn’t.
I think most HN users are quite receptive to debate around capitalism. It’s just that the majority of this debate is copy pasting slogans and making easily disproven statements.
The disgusting natures of UNIX, UTF-8, and the general culture here whose members don't understand that touching a computer (poorly) doesn't entitle them to dominion over the non computer-touchers is generally controversial on orange Reddit.
a professional community has the right to a place to communicate among themselves, about things they like and understand. This has nothing to do with dominion
I'll elaborate. Firstly, this may be a community of "professionals", but that term means something very different for programmers. No "professional" here is an engineer, as an example, because real engineers would be imprisoned and stripped of title for what the typical programmer does. The dominion to which I refer is the fact that many of these "professionals" work for large advertising corporations who encourage them to believe they know better than the people trying to do real work with a computer. They expect their tools to have a price, and then work on tools intended to never be sold, but be rented forever. They touch computers poorly, because out of one side of their mouths do they decry things such as Bitcoin and out of the other they excuse the extreme waste of their corporations and of asinine practices such as embedding an entire WWW browser solely to execute a chat program wastefully.
> about things they like and understand
They like politics and understand very little about being a hacker, certainly.
Why is this linked to the nature of UTF-8 and Unix? And since you're explaining your thoughts, are those nature the same or is each one a different facet of the programmer culture?
And lastly: do you honestly think most production or data engineers should be imprisoned or stripped of their titles?
>Why is this linked to the nature of UTF-8 and Unix?
Those are just another two sacred cows.
>And since you're explaining your thoughts, are those nature the same or is each one a different facet of the programmer culture?
UNIX and UTF-8 are alike because they were made by the same fools, and both made to avoid upsetting the delicate sensibilities of the disgusting C language. The nature of Hacker News is similar in its ignorance and wastefulness, but it's not a consequence of either.
>And lastly: do you honestly think most production or data engineers should be imprisoned or stripped of their titles?
Sure, probably; it's not as if their titles mean anything anyway.
Besides getting history wrong and eventually making a non-sensical point I'm pretty sure the author is going to point to this thread as some kind of gotcha to confirm their opinion.
with all the banning, down-voting and cancel culture in general - it's just not worth it. why should I even care if the receiving part isn't listening, got different agenda (yet another celebrity cult buildup || greed)? heck... the youth doesn't even know how to swear anymore. n word this, r word that - as if Lord Voldemort's gonna pop in. internet has created an illusion that teachers have become obsolete, even at work I refuse to criticize co-workers as it's not my job to evaluate them.
already said it. point is - *it's not worth it*. placed a small bait and that's pretty much all you took away from the post. why even bother? it's much easier to live w/o giving a crap that random dude from the interwebz might assume I'm a racist. unless you are an established public figure with bunch of sheep dancing around - exactly this is always the response. snarkiness, down votes, timeouts, public shaming. then I tell them to go fuck themselves and they ban me from their useless community. never ending bitching on stackoverflow about what's a duplicate and what's not. ending with KEKW
This original silent majority was a victim of Soviet propaganda. Nothing is better in war when the enemy no longer wants to fight because he has self-doubt.
>And that’s fine, we’re all amateurs, and sometimes we can be wrong.
I'm not an amateur. Or if I am than everyone is too since I have written software for project that would kill tens of thousands if it fails.
Other than that the vocal minority was always my opinion on Rust. A small core of true believers who decided that convincing people they should change the world is worth more than actually doing any work in Rust.
Such a saying is what the incompetent obsessively repeat to themselves. They can't stand by the thought of people who don't need an Internet connection to program, who don't copy and paste from the fools over at StackOverflow, and the many other things they do which their betters don't.
The fools over at Reddit call some things "adulting", because the idea of growing out of childhood is so foreign to them that they'd rather make it childish too. It's the same basic disease.
There’s difference between being humble and insecure. Generally people who repeat that mantra are trying to guard themselves by “we’re all fools”veil from any critique.
In fact, this is my first comment here in HN. Little by little.