Ask HN: Forced to choose Python
I struggle with this problem with my small team of programmers.<p>The biggest problem is the unstated motivations at play around ego and ambition. People want to be influential. They want to use the latest technology. They want to be the ones to make important decisions around architecture and style. They have their personalities deeply bound up in the technologies they use, so technical merits and technical problems quickly translate into personal emotions around things - insecurity, defensiveness, secretive behavior, - all of which is unstated and manifests in passive ways.<p>Our problem is sort of the opposite though. We chose Python as the &quot;backbone&quot; language - the glue that holds other things together. However the team is small and inexperienced and mostly only know Python. So they persist in using Python for every other task as well. Unless I make it a hard requirement not to, they will pick it up and use it for performance sensitive things, things that have significant structural complexity where Python&#x27;s type system weaknesses really hamper it.<p>So we have problems where we have a design meeting and we say &quot;We need an X. X should do Y and Z&quot;. We all agree. Then I come back a few days later and team member A announces he implemented X &quot;in his spare time&quot;. So we now have an X. Written in Python, which is not the optimal language I would have chosen. Only team member A understands it, so everybody else is a step behind and didn&#x27;t have any input. Team member A made all architectural decisions for it. X is well written, seems to work and now that we have it, it is hard to argue time is well invested in writing it in a more optimal language.<p>What do I do? &quot;Have a chat&quot; with team member A (ie: discipline them?)? Praise them for taking on an important task? Do we rewrite this component? If I do all these things am I being heavy handed and causing untold harm to the team morale? But what are the consequences if I don&#x27;t intervene - can we actually end up with good cohesive design if every team member is just steering the whole team in whatever random direction they happen to want?