8 ms·
Call me a despot, but I am of the opinion that everyone should use the same development environment in a given team. That means same editor, same style and same
by 0db532a0 8y ago
Call me a despot, but I am of the opinion that everyone should use the same development environment in a given team. That means same editor, same style and same OS. People might complain in the beginning if they have to change from another environment, but that will be short-lived, and the cost will be minimal compared to the otherwise continuing wankery and bickering over each developer’s subjective opinions on code style and editor. Why? The manager says so. It’s so simple at that point.
- ginko 8y agoI agree with you if that editor is Emacs and the OS is Linux.
- hobofan 8y ago> Linux Linux is not a OS, it's a kernel. You would also have to force all developers onto the same distribution.
- johnmaguire2013 8y agoYes, Gentoo.
- naniwaduni 8y agois Emacs as OS on top of the Linux kernel a GNU/Linux?
- joseph8th 8y agoBeat me to it! LOL
- 0db532a0 8y agoI agree with you, but I am not the manager.
- dbdjfjrjvebd 8y agoDon't you mean that OS is Emacs and the editor is evil... :)
- ctoth 8y agoThis works, for some value of working, in structured corporate teams but good luck forcing open source developers to use a specific editor per project.
- RussianCow 8y agoI couldn't disagree more. With modern tools like gofmt and Prettier for code formatting and Vagrant for dev VMs, it basically doesn't matter what environment anyone works in. Code style should always be enforced in an automated way, and running all your software in a VM means you don't need to install anything locally except for an editor and Git. Edit: Obviously this doesn't apply if you do platform-specific work (like iOS development) or rely on tools that are only available on a single platform; in that case, you're probably right.
- 0db532a0 8y agoYou underestimate the value of uniformity and group pressure. Everyone gets used to the one environment in the end. How did you pick up a programming language and editor in the first place? How did you pick up a new one? It was fine. If people are using different environments, people are still able to wank and bicker over differences in environment. By the way, it’s not just about code style and editor. By sharing the same environment, people can share build tools and other tools much more easily.
- dbdjfjrjvebd 8y agoOr they just leave.
- ken 8y ago> If people are using different environments, people are still able to wank and bicker over differences in environment. How far would you take it? Would you (like Steve Jobs) try to get everyone to dress the same, too?
- 0db532a0 8y agoThere’s a reason behind uniform in many institutions.
- ken 8y agoInteresting use of the passive voice! Yes, there is. Also common in places with uniforms: requirements for haircuts, nails, makeup/perfumes, daily inspections, etc. You didn't answer my question. As Wikipedia says: "Modern uniforms are most often worn by armed forces and paramilitary organizations such as police, emergency services, security guards, in some workplaces and schools and by inmates in prisons." One of these things is not like the others. Is running your professional software team like a paramilitary group or prison the only way you can get them to stop "bickering"? For people who are immature enough to bicker about any difference between individuals, when you enforce the standardization of one attribute, they just switch to something else.
- Waterluvian 8y agoGood luck making the UI developers use the same tools as the autonomy and perception engineers.
- 0db532a0 8y agoSee “team”.
- Waterluvian 8y agoNot everyone works as developer #4932 on some fungible homogenous team.
- 0db532a0 8y agoThat's it, isn't it? I cannot think of any other profession where such a large majority of people defend so strongly their right to work on their own terms inside an organisation. When was the last time you heard about a solicitor or someone from HR complaining that he won't use Excel or Word because org-mode or Corel Wordperfect is better for his needs, and he can just email the .org files around anyway. People can open them with wordpad.exe or TextEdit if they like. I wonder whether this is actually a sort of class issue. The dissonance between being part of god's chosen tribe and the realisation of being decidedly middle class all the while. It manifests itself by turning people into Emacs emos. It's not a phase, I am unique, and I'll run away from home if you tell me otherwise.
- Waterluvian 8y agoInteresting thoughts. I haven't given it that much thought. All I know is that the tools that are great for C++ development aren't equally as great for web application development. But we are all certainly on the same team, collaborating on a daily basis. It felt absurd that if we aren't all doing the same job then surely we're not on the same team
- 0db532a0 8y ago
- skocznymroczny 8y agoThat's why I love languages with formatting tools like gofmt. There's no arguing about style, you just set it to format your code on each save.
- erik_seaberg 8y agoI have decades of experience with my preferred editor. That has more value than your whitespace preferences, even if they were incompatible (which isn't true).
- 0db532a0 8y agoI have used Emacs for over half my life. I had to use IntelliJ. Coding style was enforced. Same OS. It was fine. Maybe a bit of a struggle in the beginning. It was actually brilliant. I was soon whizzing away having learnt all the new shortcuts. I would choose the benefit of uniformity over my personal preferences any day. You don’t know until you’ve seen it.
- erik_seaberg 8y agoIntelliJ shortcuts are easy to learn because it hardly has any, in comparison. It's decent at Java boilerplate, but have you started writing plugins for editing other files? Because I can't convince myself that's worth the time investment.
- 0db532a0 8y agoIf there aren't easily available and widely used tools for a chosen language, then it might not be the right choice.
- jlarocco 8y agoHave you actually tried this, and how did it work out on the team?
- 0db532a0 8y agoYes. I hated it in the beginning, but it was so nice later on to be able to work together, share tools, share build scripts, to know my stuff would work on their stuff and to concentrate on the real issues.
- jlarocco 8y agoCan you explain the situation and original environment a little more? Those haven't been problems for the teams I've been on, and we've always been "every man for himself" when it comes to dev environment. As long as code follows the style guide, passes tests and gets through a code review, nobody cares about the dev's environment. Did you try that and it didn't work? What led to management mandating conformity?
- 0db532a0 8y agoI don't know what led to the decision. The CEO had already built a very successful company on the same principles. The company where I worked had these same principles from day one. This also happened to be a start-up and not a megacorp. This was not in an anglophone country, so norms differ. I am from England for the record. Out of all of the companies where I have worked, this has been the most successful, and became successful the quickest. The IDE was IntelliJ-based. I have never before or since worked at a company that allowed "every man for himself" while managing to enforce the discipline required to maintain a uniform style guide, tests always passing and code review. It was nice to go over to a colleague's computer and see exactly the same code as I see on my own, and in the same environment. Everyone used the same debugger interface and same unit test interface, because everyone used the same IDE. They become more natural to use. People were able to refactor easily and maintain consistent naming standards, which is more difficult in Emacs, and especially in vim.
- ken 8y agoOr the manager could just get everyone to stop their "continuing wankery and bickering over each developer’s subjective opinions". If you're a professional, you should act like it. Most of my friends and coworkers use DeWalt, while some use Milwaukee, and there's even a few oddballs who use Makita, but I've never heard any 'bickering' about it.
- 0db532a0 8y agoI don’t agree with the analogy. The interface of a drill is much less complex and is basically the same over all brands. The longevity and power may well differ. Drill bits are standard and work as well in a Makita as in a DeWalt. I don’t think that tradesmen personally identify with their drills. Drills are not political.
- ken 8y agoThus, EditorConfig! It's a standard for editor configuration, and is basically the same in all text editors. Drill bits are standard, but lots of other tool interfaces are not. Batteries are not at all compatible, for example, and not even within the same brand (different voltage, different battery chemistry, ...). When someone's Milwaukee 18V lithium battery dies, and there's only a DeWalt 20V charger, nobody makes snide remarks about brand, any more than if you had the wrong size wrench for the bolt you needed to tighten. It's true that "drills are not political", so why would you allow developers to claim that text editors are? That is a social problem, so it requires a social solution. You seem to keep implying that software developers uniquely posses an inability to behave reasonably in the presence of alternatives.
- 0db532a0 8y agoDevelopers are not unique in thinking that they are unique.
- tomelders 8y agoBut why? You can enforce coding styles in a passive way through linters and formateers that work actoss IDEs. And in those rare cases that a junior dev is trying to show their worth by using a poorly configured VIM or Emacs, then there’s pre-commit hooks.
- int_19h 8y ago> That means same editor, same style and same OS. The OS used for development is, in many cases, also the OS used for routine debugging. An OS monoculture on a cross-platform product team means that some product gets a lot more incidental testing than the others.
- 0db532a0 8y agoMultiple build targets enforced uniformly over the whole team.
- int_19h 8y agoI'm not talking about build issues, but runtime ones. There's a lot of stuff that comes up during routine debugging of desktop apps, for example.
- 0db532a0 8y agoThere should be a process in place for routine testing on each target environment. Testing on BeOS shouldn't just be done because Bob happens to like doing his development on BeOS.
- int_19h 8y agoI didn't say that was the only testing, either. However, use during development is also testing, and in practice it can easily add up to more hours of testing than routine testing - and if all of those hours are on the same platform, then you get skewed picture overall. In addition, routine testing is usually much more scripted. But frankly, your original point doesn't make sense to me, because there's simply no downside, so why argue about upsides? The team can agree on a single code style (or have that mandated from above), but how does that affect editors, and especially OSes? The only meaningful constraint is that one's choices must be able to handle the mandated style. Same thing for other stuff. For example, it makes sense to mandate a testing framework. But if multiple IDEs support that framework, what's the point of forcing the choice on that?
- vidarh 8y agoI'd leave any company where they tried to enforce that. Thankfully I'm at a career point where I get to decide without leaving, but I still regularly tell recruiters I'm not interested on the basis of OS and platform choices. It matters that much to my happiness. So yes, the objections will be shortlived because anyone good enough to have options that don't like your choices will choose not to work in your team.
- 0db532a0 8y agoI respect your preference. I now prefer the tranquility of assimilation and consistency in my career. I would also tell recruiters that I do not care about OS and platform choices, as long as they are uniform across unique teams.
- z3t4 8y agoMaybe not force everyone to use the same environment although it have tradeoffs. But absolutely lock down versions of tools used. I've had lost commits because different versions of SCM was used. Or stuff not working in different version of framework.
- ariabuckles 8y agoI would strongly consider leaving if my manager decreed that I mustn’t use vim and must instead use webstorm/atom/whatever (especially if not in vim mode). I’ve spent a lot of time setting up my dev environment so it works well for me, and I’m more productive and happy in it. Style/formatting consistency is one thing, but editor uniformity is an unrelated thing. Yes, it makes collaborating easier, but is that worth the cost of people being less happy or less productive? I don’t dislike other editors, but I like my setup a lot, and there are, imo, pretty huge switching costs involved in switching to/from vim/emacs and a GUI editor.
- anoncake 8y ago> Why? The manager says so. That attitude is the quickest way to lose my respect.