4 ms·
I just don't get this way of thinking and can't imagine calling myself an "X developer". The human brain is more than capable of being proficient in more than o
by rowanseymour 3y ago
I just don't get this way of thinking and can't imagine calling myself an "X developer". The human brain is more than capable of being proficient in more than one language. It's also boring only using one language every day. If all you have are TS developers, then IMHO, you don't have very good developers.
- messe 3y agoObligatory 'I am not a "JavaScript Developer"' by Andrew Kelley[1][2]. [1]: https://andrewkelley.me/post/not-a-js-developer.html https://andrewkelley.me/post/not-a-js-developer.html [2]: The creator of Zig[3] [3]: https://ziglang.org/ https://ziglang.org/
- jujube3 3y agoYou can build a hundred bridges and they still don't call you a bridge builder... lol
- Scarblac 3y agoThen imagine he said "all-round developers who in their current job spend 95%+ of their programming time writing Typescript", if that's less offensive.
- dbsmith83 3y agoHis point remains. If someone is so uncomfortable in all other languages that they have to pick a bad tool for the job, then they are probably not a good developer. Obviously, we can't always pick or even know the absolute 'best' tool, but good grief there are a lot of better choices than typescript for cli tools.
- Hermitian909 3y agoEven if they know better suited languages, do they know the same better suited languages? I'm in a TS shop, 95% of our code is TS. I would assume that almost everyone we've hired knows at least one compiled language but that language might be C++, Go, or Java. The only way to write a CLI tool that anyone at the company can edit is to write it in TS and so, indeed, >90% of the CLI tools we write are in TS. Works fine.
- randomdata 3y ago> The only way to write a CLI tool that anyone at the company can edit is to write it in TS The only way? If you know C++, Java, or Go, even Typescript for that matter, they are all almost exactly the same. There is a little nuance with respect to setting up a project idiomatically, but once that groundwork is laid anyone can come along as they're simply going to copy the structure and style of what is already there anyway.
- Hermitian909 3y ago> There is a little nuance with respect to setting up a project idiomatically, but once that groundwork is laid anyone can come along as they're simply going to copy the structure and style of what is already there anyway. You might think so! Having seen this tried in multiple 100+ engineering orgs, I think empirical evidence is against you. CLI tools can get surprisingly complicated (or use a surprisingly complicated set of language features). Many engineers will simply give up if a solution is not obvious in the first 5 minutes. The end result is you have a lot of team A asking team B for a minor feature or fix to team B's CLI tool, or worse, team A just writes a hacky workaround to the broken-ness in the CLI tool. Most people just don't care enough to put in the kind of effort for anything but the easy path.
- sorahn 3y agoI think that’s not really relevant. Not every company can afford to have the best developers that can do everything. And not every developer wants to struggle through a new language for (unknown time) writing a tool (or anything) that could be done in an hour in a language they’re familiar with instead. A lot of common screwdrivers can turn Philips head screws enough to get the job done.
- jitl 3y agoMost developers I work with seem to prefer to stick to a single language. I don’t have this preference or consider myself a “typescript only developer”, however since I primarily contribute to a Typescript codebase day to day I end up the most practiced at Typescript. TS code flows out my fingers much faster than other languages I know like Go or Ruby. I am fine reading Rust or Ocaml but need a lot of reference material to write new features. Sure I could ask my devs to write our CLI tools in Rust, and some of them would habituate to both languages but there’s no denying it’s a higher mental burden to split training time between two languages, or three languages.
- andrewaylett 3y agoOn the other hand, it's quite plausible that TS is one of only a small number of languages that you know that all your co-workers will be proficient in. And in general I expect that the actual work I'm doing will be more interesting than the programming language I get to use. I really enjoy learning new things, and digging into new programming languages just for the sake of it, but when I need to actually ship something I don't want my programming language to be the exciting part of what I'm doing.
- randomdata 3y ago> it's quite plausible that TS is one of only a small number of languages that you know that all your co-workers will be proficient in. If by TS you mean Javascript with ": any" tacked onto the end of each variable, then perhaps. Actual TS proficiency is rare, in my experience. But if proficiency is a concern, you're not going to slap any random web developer on a command line tool project. It is an entirely different skillset. Amongst the developers proficient in command line tools, I expect the common language they are familiar with is typically not TS.
- Capricorn2481 3y ago> If by TS you mean Javascript with ": any" tacked onto the end of each variable, then perhaps. Actual TS proficiency is rare, in my experience. This isn't even a lack of proficiency, this is just hiring bad people. Who doesn't know how to annotate a type? That hardly takes Typescript "proficiency," you can learn it in 5 minutes.
- randomdata 3y ago> This isn't even a lack of proficiency, this is just hiring bad people. If there was some specific reason to hire Typescript developers, maybe. But across an organization, many developers won't be working on Typescript projects and there would be no reason to hire based on Typescript ability for those projects. It may be one of the few language all developers have some familiarity with, as proposed earlier, but that doesn't mean it is the language all developers focus on. And when hiring developers with a background in building command line tooling, it is likely that Typescript has never been a language that has garnered their attention. > Who doesn't know how to annotate a type? That hardly takes Typescript "proficiency," you can learn it in 5 minutes. Typescript is its own language – one that is even turing complete. While you likely can learn it in 5 minutes, same goes for any language, including the aforementioned Go, Rust, and Zig. Proficiency takes quite a lot longer, though.
- h1fra 3y agoYet most people speak 1-2 languages (1.8 average in Europe). Maybe most people are not good human based on your definition.
- regular_trash 3y agoTransitioning from any derivative of a given ur-language to another should be fairly trivial. I don't think anyone expects table stakes for devs to be proficiency in Java as well as APL
- rowanseymour 3y agoWell most people aren't good linguists certainly.
- nobleach 3y agoWhile I totally agree, and I come from a time where one couldn't be a full stack JavaScript developer. (Also a time when folks DID make their living doing bread and butter style Delphi/PowerBuilder/FoxPro/VB apps). I get that some folks spend ALL day in a certain language/stack and it's easy for everything to begin to look like a problem they could solve using that language/stack. I do agree that is boring, but it also pays the bills!
- solatic 3y agoWhat is this magical world you live in where a company can put up job listings for "Polyglot Software Engineers" and consistently, successfully get them through the hiring pipeline and staff up teams? Where I live, (a) there's much more junior and mid-level talent with 0-2 years of experience than anyone else, (b) talent is far more likely to have TS/JS experience. If you hire for JS talent, you ship. If you try to hire anybody else, you struggle to hire, struggle to collaborate ("I don't know X, so I'd prefer to open a ticket than to struggle and open a PR to that other team's repository"), and therefore ultimately struggle to ship. Startups should run on the JS ecosystem by default and only write code in other ecosystems if there's a very good reason to do so (business competitive advantage, JS ecosystem options are severely lacking...).
- rowanseymour 3y agoObviously you gotta work with what you got and it might be the best business decision to hire some junior devs with no experience outside of JS/TS and build your CLI tool in that. But that's never going to be the best tool for CLI development, and someone with no experience outside of JS/TS (or any single language) is never going to be the best engineer.
- solatic 3y ago> best business decision The best business decision is the only relevant decision in the real-world, unless you're building the software as a hobby and you're willing to essentially self-fund the development without regard to anything else outside your own enjoyment. If it's not your hobby, then you don't get to build perfect software, you get to build software that people are willing to fund (either through investment or purchase). People are only willing to fund software that ships. Professional development is an endless struggle to manage the sources of imperfection in the codebase; shipping perfect software is a pipedream. Shipping necessarily requires getting comfortable with shipping something imperfect and improving through iteration by shipping some more. So the first thing that you need to optimize for is shipping, and that is a function of who you can hire, what skillsets they have, and organizational design (including making cross-team collaboration easier by choosing standards, including language standards) that promotes shipping. Should you be so fortunate that you have many, many people purchasing your software, or your investors (or CFO/VP Finance by proxy) are convinced that you need to leave the JS ecosystem to attain or preserve competitive advantage, then fine, build your CLI in a language that offers more technical advantage to building CLI tools. But that's not the default.
- irrational 3y agoProficient? Yes. But I have better things to do with my time. I enjoy spending time with my family, woodworking, baking, gardening, home remodeling, painting, studying ancient Afro-asiatic languages, reading, hiking, etc. The only way I’m going to learn a new language is if my work requires it and makes time for me to learn it. Well, we have far too much work to do to carve out time to learn new languages, so they just keep us using what we already know. That’s fine with me. I receive a hefty six figure income to pay for my life outside of work.
- zsyllepsis 3y ago> If all you have are TS developers, the. IMHO, you don’t have very good developers. Does it change anything to reframe this as having a common denominator across all developers? As in, rather than “All of my developers know only TS” to “TS is the common language all of my developers know”. Particularly in small companies I think it makes more sense to focus on a restricted set of tools and technologies. It makes interviewing easier, ensures mobility of hires to different areas of the code, and produces an easier onboarding experience for new team members. > It is also boring using only one programming language every day Interest and passion come from more aspects of a project than the language it was written in. Some projects are interesting because of they incorporate cutting edge research, some because they have highly visible impact on users, and others because the solution involves a careful balance of design constraints. Choice of (or diversity between) language doesn’t have to be the distinguishing factor that makes a project interesting.
- deleted 3y ago[deleted]
- solarkraft 3y agoI'm not an X developer, but I have experience with certain tools. Building on that experience is usually more efficient than starting over at 0.