6 ms·
At my former employer, there was a team who were very much into resume-driven development and wrote projects in Go even when Java would have been the better alt
by supriyo-biswas 2y ago
At my former employer, there was a team who were very much into resume-driven development and wrote projects in Go even when Java would have been the better alternative considering the overall department and maintenance team expertise, all the while they were informally grumbling about how Go doesn’t have the features they need…
- darkhorse222 2y agoI see that a lot from the Go crowd. That's why I consider any strong opinions on languages to be a poor indicator for ability. Sure there's differences, but a language does not make the engineer. Someone who is attracted to flashy stuff makes for an indulgent planner.
- scubbo 2y ago> That's why I consider any strong opinions on languages to be a poor indicator for ability. Hmm. Can't say I agree here - at least not with the literal text of what you've written (although maybe we agree in spirit). I agree that _simplistic_ strong opinions about languages are a sign of poor thoughtfulness ("<thing> is good and <other thing> is bad") - but I'd very much expect a Staff+ engineer to have enough experience to have strong opinions about the _relative_ strengths of various languages, where they're appropriate to use and where a different language would be better. Bonus points if they can tell me the worst aspects about their favourite one. Maybe we're using "opinion" differently, and you'd call what I described there "facts" rather than opinions. In which case - yeah, fair!
- mikepurvis 2y agoAbsolutely. Anyone senior should be able to fairly quickly get a handle on the requirements for a particular project and put forward a well-reasoned opinion on an appropriate tech stack for it. There might be some blank space in there for "I've heard of X and Y that actually might fit this use case slightly better, so it's probably worth a brief investigation of those options, but I've used Z before so I know about the corner cases we may run into, and that has value too."
- pdimitar 2y agoAnd I see people who assume choosing a language was done for "flashy stuff" the less capable. See, we can all generalize. Not productive. Only thing I ever saw from Golang devs was pragmatism. I myself go either for Elixir or Rust and to me Golang sits in a weird middle but I've also written 20+ small tools for myself in Golang and have seen how much quicker and more productive I was when I was not obsessed with complete correctness (throwaway script-like programs, small-to-mid[ish]-sized projects, internal tools etc.) You would do well to stop stereotyping people based on their choice of language.
- zozbot234 2y ago> how much quicker and more productive I was when I was not obsessed with complete correctness That's pretty much another way of saying that stuff becomes a whole lot quicker and easier when you end up getting things wrong. Which may even be true, as far as it goes. It's just not very helpful.
- pdimitar 2y agoObviously. But I did qualify my statement. There are projects where you're OK with not getting everything right from the get go. FWIW I very much share your exact thoughts on Rust skewing metrics because it makes things too easy and because stuff almost immediately moves to maintenance mode. But that being said, we still have some tasks where we need something yesterday and we can't argue with the shot-callers about it. (And again, some personal projects where the value is low and you derive more of it if you try quickly.)
- darkhorse222 2y agoI am a builder trained as a computer engineer. I scoff at languages as abstractions over fundamentals that do not change. This isn't like a hammer and a screwdriver, it's like fifteen different hammers. Just give me the thing, I'll build the house. A guy spends three hours talking about the hammer, he's probably not focused on building the house. Tool preferences show ego of the builder.
- 2y ago
- BobbyJo 2y agoLanguage matters quite a bit when deciding how to build an application though. I see having no strong opinions on language to be a sign the person hasn't developed a wide enough variety of projects to get a feel for their strengths and weaknesses.
- ohgr 2y agoYeah. I have a list of things I won’t work with. That’s what experience looks like. (Mostly .Net, PHP and Ruby)
- ipaddr 2y agoThe more senior I get the less opinionated I am. Someone wants to do something in some different or some different way.. why not. In the end the language matters little the tech stack doesn't matter unless you are going down a specific path and even then it probably doesn't matter that much if you have a choice on what to use.
- BobbyJo 2y agoI honestly couldn't disagree more. Having built very similar systems in Golang, Python, and Java in different companies, and having used MongoDB and other NoSQLs as well as Postgres to similar ends, I have very strong preferences about which I'd rather use in the future. Even simple requirements can rule out languages for me. Like, if you need async or concurrency, Python is awful. If you need SQL in your code, Golang isn't great. If you are building a simple CRUD backend, Java is waste of time. If you aren't doing anything compute heavy or embedded, why even consider C++ or Rust. The list goes on.
- tbossanova 2y agoSo what are the strengths of those languages?
- BobbyJo 2y agoPython is great for library orchestration and has tons of support for almost anything you need. So if you aren't building a large application and don't need concurrency, its great. Java is great for building large applications with large teams, since it limits how code is shared and how libraries are built, and has a culture of convention. Golang has greate concurrency support and meta programming support, so its awesome for web servers and plugging into systems that incorporate orchestration technologies. C++ and Rust are fast and efficient as hell when you need that. JavaScript is your only viable option when you need complex and interactive UI that's OS agnostic.
- synergy20 2y agogolang is decent and is the only new lang climbed up to 7th in popularity, it does shine at what it's good at
- mvdtnz 2y agoYou're missing the point completely.
- pclmulqdq 2y agoThe go and rust crowds both love writing things in their own language for its own sake. Not because it's a good choice. For a large web backend, go is great. For many other things it's terrible.
- pdimitar 2y ago> The go and rust crowds both love writing things in their own language for its own sake Hard to take you seriously when you do such weird generalized takes. While it's a sad fact that fanboys and zealots absolutely do exist, most devs can't afford to be such and have to be pragmatic. They pick languages based on merit and analysis.
- pclmulqdq 2y agoMost of the people who use Go and Rust do it for pragmatic reasons. That doesn't influence the culture of the zealots in each community. You should search for headlines on HN that say "written in Go" or "written in Rust" and then compare that to the number of headlines that say "written in JavaScript" or "written in Kotlin."
- nativeit 2y agoI understand the criticism that languages should be pragmatic choices they serve the strengths of the project at hand, but I guess I always found most projects boasting they’re written in a specific language or framework are doing so precisely because of the overarching interest in the language itself, which seems like a perfectly valid justification for such projects to me. I’ve seen the more cynical hype-driven stuff, but it’s inevitably superficial on first glance, where I have seen some real curiosity and exploration in many “Project X - Built In Rust/Go/Cobol/D/Whatever” and I think they’re exploring the dynamics of the language and tooling as much as anything else.
- rurp 2y agoI've seen the exact same pattern play out with different tools. The team used a shiny new immature platform for nice sounding reasons and then spent 80% of their time reinventing wheels that have already been solved in any number of places.
- whstl 2y agoI have lot of sympathy for resume-driven developers. They're just answering to the labor market. More power to them. When companies do what the market expect we praise them. When it's workers, we scorn them. This attitude is seriously fucked up. When companies start hiring based on experience, adaptability, curiosity, potential and curiosity then you get to complain. Until that, anyone doing it should be considered a fucking genius.
- usefulcat 2y agoPretty sure most of the resentment comes from working with such people. Which I think is understandable.
- whstl 2y agoUnderstandable, but still wrongfully blaming a player rather than the game itself.
- marsovo 2y agoI don't think it's wrong to blame people who make life more difficult for others for their own aggrandizement The game doesn't exist without players. I could make more money if I worked at Meta or Amazon, but at what cost? I understand the realities of Game Theory, but then one could argue that being blamed and criticized for one's choices is also part of the game. "Mr Wolfcastle, how do you sleep at night?" "On a big pile of money with many beautiful ladies"
- ipaddr 2y agoYou are more likely to leave tech/full time employment after working at a FAANG. Either you made enough,it burnt you out, everywhere else seems down, etc. You go to another FAANG or try a startup or leave altogether.
- whstl 2y ago> I don't think it's wrong to blame people who make life more difficult for others for their own aggrandizement It is, and this is highly judgmental and offensive. Nobody is doing this for "aggrandizement". Also, all of this is just rationalization, and will keep being until: 1) People start blaming companies for not having the spine to say no to misguided projects by employees. 2) People start blaming Companies for not having the spine to hire people based on past experiences with the craft of programming itself, but rather asking them to have a certain box ticked in their CV. If one wants to program in X in order to better feed their family and the market says they need to have used X professionally, it is in their right to do X at the workplace. This is not only expected of them, this is how the whole industry is set up. They're just following the rules, period.
- fallingknife 2y agoWhat good does that do on a resume? I thought learning a new language on the job was pretty standard.
- supriyo-biswas 2y agoWhere I'm from, the recruiters often use dumb questions like "How many years of experience do you have with X?" where any answer below their threshold is an immediate ground for rejection. Learning new technologies on the go is pretty much the standard, but it's something that employers don't understand.
- ohgr 2y agoWe have those! Turn up, make some micro-services or AWS crap pile we don’t need to solve a simple problem, then fuck off somewhere else and leave everyone else to clean it up. Worst one is the data pipeline we have. It’s some AWS lambda mess which uses curl to download a file from somewhere and put it into S3. Then another lambda turns up at some point and parses that out and pokes it into DynamoDB. This fucks up at least once a month because the guy who wrote the parser uses 80s BASIC style string manipulation and luck. Then another thing reads that out of DynamoDB and makes a CSV (sometimes escaped improperly) and puts that into another bucket. I of course entirely ignore this and use one entire line of R to do the same job Along comes a senior spider and says “maybe we can fix all these problems with AI”. No you can stop hiring acronym collectors.
- conjectures 2y agoAh, the good ole Rube Goldberg machine.