4 ms·
The 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 matt
by ipaddr 2y ago
The 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.
- ljm 2y agoThere’s also the practicality of hiring or maintenance as well as what you get from the ecosystem, as well as understanding the wider business context. I might personally love to kick off a greenfield project with Elixir, and it might tick all the technical boxes and meet the requirements. But then I have to pay a premium for senior engineers that know elixir or have to price in the time needed to upskill. Or I could just do it in Rails where I can dip into a much larger talent pool and still meet the requirements. Much more boring but can get the job done just as well.
- darkhorse222 2y agoI think you overemphasize the pain. A good design will handle lots.
- BobbyJo 2y agoLanguages influence design, and application influences design. That means they influence each other.
- ipaddr 2y agoYou are trying to choose between languages based on differentiation. This language is better for x so it should be used or it's a waste time or capability. But in reality it rarely matters. If you were only allowed to use Java as a backend and your competitors could use anything your company would succeed or fail based on marketing and sales. The backend doesn't matter as long as they both have the same features. I understand developer preference and different languages make things easier and make programming funnier. Languages have different limits. As you become more senior you realize getting around those limits is part of the magic. If you come on to a project where the existing developer wants to write the backend in javascript because that's what they know I would rather use Javascript then wasting time trying to push a more 'pure' choice. Because in the end I am capable of writing it and what we will be judged on is if it works to achieve an objective not if it was the best language choice when using differentiation.
- BobbyJo 2y agoThen why do companies try to move so fast if if doesn't matter? Seems like your opinion runs counter to the observed behavior of the entire software industry. If speed of execution matters, then the language and tools you use for something also matters.