8 ms·
I think this is a really important comment that deserves to be discussed. You can see this on display in virtually every hackernews thread. Somebody will say s
by sebastos 6y ago
I think this is a really important comment that deserves to be discussed.
You can see this on display in virtually every hackernews thread. Somebody will say something like "I sort of like X, but my problem with it is Y". But what they don't tell you is their experience level, the context of how they came to believe Y, or really any supporting understanding of whether Y is an actual technical tradeoff that needs to be considered. It's sort of an overly grandiose, performative way of saying "oh yeah I tried haskell once, and I got stuck on this thing, so I never came back to it."
As one of the novices just trying to allocate my time, I'm constantly trying to understand whether, say, it's worth really understanding C++ at a deep level, or whether I should just try to learn Rust. All too often, I find this devolves into me scouring the internet for "C++ is ok but the ownership model is so primitive that I would never start a new project in it" and comparing it to "My problem with Rust is that it's still such a nascent language I can't trust it to have the libraries I need". Who are these people, and why are they saying these things? Are their gripes relevant to me? I have no way to know!
Reading some comments on hackernews, I often come up on a comment that seems to be speaking another language. At first I'm intimidated into thinking that there's a secret club of intellectuals that understand exactly what this comment is talking about. But then I start to wonder.. is this actually elite minds speaking in a very high-level way with extremely advanced context? Or, is it just some overly opinionated junior person who just assumes everybody is working on the same web tech stack they are, and speaks with that implicit assumption? When they say "OOP is now considered an anti-pattern, most companies are moving towards reactive FP", do they really mean "I work at snapchat and the ads group I work for is moving away from OOP. My friend at amazon said he's doing the same thing"?
- forgot_account 6y ago>>>But what they don't tell you is their experience level, the context of how they came to believe Y, or really any supporting understanding of whether Y is an actual technical tradeoff that needs to be considered. Yes, thankyou! I think about this every time I see "Systems are so powerful we can just throw RAM/CPU cycles at every problem, efficiency doesn't matter..." as if everyone on the planet is doing web apps, and there are no engineering/architectural situations that might drive certain languages or design principles. Such as this: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/wp/wp-01020.pdf https://www.intel.com/content/dam/www/programmable/us/en/pdf... I guess I'm just focused on a niche market...
- seibelj 6y ago> Reading some comments on hackernews, I often come up on a comment that seems to be speaking another language. At first I'm intimidated into thinking that there's a secret club of intellectuals that understand exactly what this comment is talking about. But then I start to wonder.. is this actually elite minds speaking in a very high-level way with extremely advanced context? Or, is it just some overly opinionated junior person who just assumes everybody is working on the same web tech stack they are, and speaks with that implicit assumption? I love HN don’t get me wrong, but my coworkers and I like to poke fun at it. Some jokes are “why didn’t you just use rust?” and “Well what did Paul Graham have to say about it?” when debating something. It’s a culture like any other. I would say a lot of super smart people are here, who have deep knowledge on the most esoteric niche subjects, and provide a lot of sage wisdom and advice. But there are a lot of cranks too (including myself!).
- AnimalMuppet 6y agoHeh. I'm (I hope) a person with sage wisdom... on some subjects. On others, I'm a crank. And you, who call yourself a crank, I suspect there are some subjects on which you have sage wisdom.
- Obi_Juan_Kenobi 6y ago#WWPGD
- mrwnmonm 6y agoWait, is this related to the secret club of intellectuals?
- phist_mcgee 6y agoMy favourite HN stereotype is that every comment chain involves the next poster correcting the last poster over a tiny detail, and then descending into long threads arguing minute details of no consequence. I think this forum attracts a non-trivial number of people who have a hyperfocus issue beginning with the letter A.
- 6y ago
- indymike 6y agoI've been programming for about 30 years. Started with C and BASIC back in the day, and lived through lots of fads. What has always been true is that there is high value for engineers who can solve problems and build systems, and there really hasn't been a watershed moment where some new programming paradigm and is sooo much better that everyone switches. What's important is to learn how to write the kind of code that solves the kinds of problems you need to solve. FP may be the right answer. OOP might be the right answer. Array programming might work for something else. The important part is to understand what a paradigm is good at and what it is not, and select the right one for whatever you are working on. Everything else is just religion.
- jadbox 6y ago"The important part is to understand what a paradigm is good at and what it is not, and select the right one for whatever you are working on." I've been programming since I was maybe 13, and being 34 today I find this to be more and more true. Programming IS JUST A TOOL to get something done. When I say "just a tool", I do not mean to ~undermine OR overexcite~ the concept of a tool. The real power to seek as a programmer is knowing lots of programming platforms and paradigms, as then you have the knowledge to select the best tool or technique to accomplish solving a specific problem within a domain at hand.
- mgkimsal 6y agoStarted at ... 10 and have been doing this for > 35 years in some capacity. Sometimes that 'best tool' really just happens to be the one I have X years of experience in, because I'm here, right now, in front of the project, and have solved the same problem Y times before with acceptable results (systems running, people getting value as expected). That doesn't automatically justify being a stick-in-the-mud and never adopting any new technology ever. But it also means that jumping to new tools on a semi-annual basis, you'll have a hard time having justified confidence you can deliver something of value. I have to qualify with "justified" because... I've seen too many folks who have confidence and... really shouldn't. And I recognize that because I can see how I was once there. I had a call from someone in 2017 asking about something I'd built for them in 2002. System was still running. Someone had been doing basic system upgrades every so often, but they'd hit some logical issues and needed more insight, and pinged me. Last year I noticed a previous client project started in 2000 was still up. I've no doubt they've updated some of the back end stuff, but some of the stuff I put in place I can still see (html comment, semi-unusual url structure, etc). Understanding that what you build might actually be in place, working for people for 15-20 years is hard to get your head around until you've actually done this for 20 years. When I was 20 I could not understand the ramifications of decisions impacting people or companies for 20 years - I just didn't have that life experience - no one at 20 does. We're often fed magical press releases about acquisitions and exits and we read stories of things shutting down, getting sunset, etc. Those aren't the norms though, I don't think. With that in mind, my criteria for choosing the 'right tool' has shifted some in the last few years, and I'm always a bit more hesitant to jump on latest shiny trends, as... I do get somewhat concerned about the long term viability. That has to be a factor in 'best tool' calculations, no? (sorry for long ramble)...
- IggleSniggle 6y agoThe only way _to_ experience is _through_ experience. You’ll probably get more out of just picking a language as your “primary” while dabbling in other things for context/inspiration/awareness. Try not to get bogged down by what others say. If you’re looking for a job in a particular industry, follow the fads of that industry. Otherwise, just keep building your knowledge and worry less about whether it’s the right specific technology.
- munchbunny 6y agoAs one of the novices just trying to allocate my time, I'm constantly trying to understand whether, say, it's worth really understanding C++ at a deep level, or whether I should just try to learn Rust. Think about languages as tools: focus on the tools you need to use. Your career will be long and there will be plenty of time to branch out, but you have very limited time for mastery, so you should master the tools you use often. All too often, I find this devolves into me scouring the internet for "C++ is ok but the ownership model is so primitive that I would never start a new project in it" and comparing it to "My problem with Rust is that it's still such a nascent language I can't trust it to have the libraries I need". Who are these people, and why are they saying these things? Are their gripes relevant to me? I have no way to know! Honestly, just pick one and run with it. Part of becoming an experienced programmer is developing your own heuristics for how to pick the right tool for the right job and how to read this type of discussion, and a big part of that is building up both wins and losses to train your intuition. When they say "OOP is now considered an anti-pattern, most companies are moving towards reactive FP", do they really mean "I work at snapchat and the ads group I work for is moving away from OOP. My friend at amazon said he's doing the same thing"? If it's an internet forum and you don't see references or citations, it's probably safe to assume it's the latter. They might still be right, but not verifiably so.
- AnimalMuppet 6y agoThey're right, and they're wrong. OOP is considered an anti-pattern... by at least someone, somewhere. OOP is also considered The One Right Way, by someone, somewhere. Is there a consensus one way or the other? Not only no, but $PROFANITY no. The person who claims that there is... yeah, consider them a blowhard who is out of touch with reality.
- exclusiv 6y agoSeriously. From what I've seen, OOP haters either write shit code in general or they're working on something where FP makes sense and they don't actually mention that when they shit on OOP. Lot's of FP "fans" just writing procedural code with a terrible mess of functions and no architecture as well. Quite the mixed bag. But they're very passionate and believe in talking about FP as the one true way. I suppose most things go through a phase like that though. But if you've been around long enough, you don't get too jazzed about any one thing.
- flatline 6y agoPerhaps a controversial opinion: there are no bad programming languages, just bad practices. Learn both C++ and Rust. If you use them enough you will come to see the pain points with time, for yourself, and they will not be problems so much as opportunities for creative solutions. I have my opinions about languages but one constant is that I like programming and all of them facilitate this in different ways.
- aaroninsf 6y agoIMO anyone who takes issue with this level-headed maturity is... well, probably still of an age and in a career moment where the absence of experience is perceived to be best addressed through bravado and "passion." Sayeth the graybeard.
- marsdepinski 6y agoStay off my lawn!
- giantDinosaur 6y agoI dunno. Is anything 'bad'? Maybe there's no difference between anything. I feel like we're talking about building materials and someone pipes up to say 'no building material is bad', which is kind of true, but then we all die because our bridge was built with glass. We do have to be discerning, and that does involve real criticism of language design and choice.
- rozab 6y agoThis is the reason I think game reviews on Steam are excellent. Next to every review you can see how many hours the user has in the game. A negative review is read differently depending on whether the user has half an hour or 4,000 hours.
- Const-me 6y ago> But then I start to wonder.. is this actually elite minds speaking ... Or, is it just some overly opinionated junior person There's another dimension of the issue: types of the project the person has experience with. Something that works in a low-level Windows desktop doesn't necessarily work in high-level Linux web. Something that works for NASA or SpaceX doesn't necessarily work for a mobile game startup. Something that works for FAANG is not necessarily the best way for a web site that's running on a single server. Something awesome for a social network is not guaranteed to do any good for a bank, or a research lab. That "something" can be pretty much anything: languages, libraries, IDEs, frameworks, project management practices, hiring practices. The only thing these projects have in common is "people need to write code that does something". Almost everything else is different. And yet we have many discussions where people working in different industries, on projects with different requirements, budget, users, revenue sources are arguing which language is better.
- aabbcc1241 6y agoRegarding your example in the ending, in Chinese, this act is called "leading the direction of wind", either intentionally for unconsciously