私たちはおそらくこのような誰かに会ったことでしょう、その開発者は知っている自分の言語が1つの真の言語であり、それについて黙らないことを知っています。このような人のようにどのように対処しますか?私はだれにも腹を立てたくありません(特に、私の職場のファンは上級開発者なので)。しかし、私は自分の選択したスクリプト言語を使用して、リポジトリに到達しない使い捨てのスクリプトを作成する必要があり、他の誰かが存在する必要がない場合に使用できるようにしたいと考えています。
私がこれに対処しなければならなかった考え:
この状況に対して何を提案しますか?
問題から飛び出しているものはほとんどありません。
私はファンボーイの部分を少し理解しています。なぜなら、私はいくつかの選択した言語を保護しながら、一方からファンボーイのように振る舞うことがあります。そして、私は新しいものを持ち込もうとする他のファンボーイも扱ってきました。
この状況についての私の見解は次のとおりです。
安全で高速なソフトウェアを未知の言語で書く方法を誰も知らないためであり、開発者が学ばなければならない落とし穴がすべてあるからです。愚かなスクリプトは20年以上サポートされるか、書き直される必要があります。 20年以上にわたり、平均的なショップでは少なくとも50人の開発者が交代しています。それぞれが新しい言語でいくつかの豪華なスクリプトを書く場合、チームには50の言語ランタイムと50の異なる専門知識が必要であり、コードベースには50の言語のバグのあるコードがあります。また、一部の言語はWindowsまたはLinuxでサポートされなくなりました。 24時間年中無休で、パッチを当てていない10年前のカスタムサーバーが必要です。スペアパーツはありません。
また、VB、Silverlight、Dなどの死んだ言語をサポートすることを望んでいない人もいます。
彼はあなたが会社の方針に基づいてあなたが使うものを決めるのですか?あなたの訴訟を彼に訴えなさい。それでも彼がそれを拒否する場合は、黙って上司が使用すべきと言っているツールを使用して作業を行ってください。
あなたworkそこにいる、そこではプレイしない。結局それはあなたの手の外にあります。
彼があなたの上司でなくても、私はここですべての角度を検討します。彼がFortranを知っていて、ある日あなたが彼のすべてのコードを継承した場合、それを望みますか。まったく新しい言語を最初からオンザフライで学習する必要があります、それはひどくストレスになります。ここで彼の側面を想像してください。あなたはCobolを使用してスクリプトを書くかもしれませんが、彼はCobolを知らないかもしれません。
チームの大多数が知っているものを使用します。
「2.一緒に行く」
これが唯一の合理的な答えです。ここには素晴らしい機会があります。
上級プログラマーのコメントを使用して、新しい言語を習得するために、時間やコース、認定資格、あるいはその両方の費用を支払うことを会社に奨励します。最悪の場合のシナリオ:認定と言語の両方が履歴書を改善し、チームプレーヤーになるための良いアドバイスを得ることができ、どこか他の場所でより良い仕事に笑うことができます。
学習したすべての言語からプログラミングに関する貴重な洞察を得ました。最も実用性の低い言語(cough XSLT cough)でさえ、そのスイートスポットがあり、興味深い学習の機会がぎっしり詰まっていました(そして、私の請求書を数年間支払いました)。継続的な学習は、プログラマーであることの大きな利点の1つです。
すばらしいプロジェクトはすべて、おそらく上級開発者の好きな言語を使用しています。その言語を知ることは、それらのプロジェクトに取り組むことができる才能のプールにあなたを置きます。
誰かがおそらくあなたに特定の仕事を特定の方法で行うようにお金を払っています。他の応答はおそらく不服従であり、ひどく終了する可能性があります。
上級開発者/アーキテクトは通常、店で使用される主要言語を選択し、誰もがその言語を使用するようにします。このように、会社は特定のテクノロジーにナレッジベースを構築し、1人の従業員(あなた)が休暇を取り、他の誰かがあなたが行っている間にコードを取得して修正できるようにします。また、会社は関連するトレーニングの才能を持ち込むことができ、人事部門は履歴書で探す流行語を知っています。
彼の言語を学び、それを仕事に使用することで、your好きな言語を効果的に提唱するために必要な政治資本を蓄積します。多くの企業は、公式のインフラストラクチャ言語とレポート用の公式のスクリプト言語を持っています。彼の言語が得意な分野とあなたの言語が得意な分野を示し、それぞれが不足している場合の長所と短所のリストを準備します。このリストは、作成中のレポートなど、特定のアプリケーションのコンテキストで保持する必要があります。彼と個人的に丁寧にリストを見せ、彼とそれについて話し合う時間を計画します。彼の反対意見を書き留め、会議後に調査し、適切な反論がある場合は、フォローアップ会議を計画してください。
幸運を!
特定のコンテキストでは、別の言語のほうが実用的な選択であることを示します。
その人がC++に情熱を傾けていて、Webアプリケーションプロジェクトに取り組んでいる場合は、それほど難しくありません。同様に、一部のコンテキストは関数型プログラミングに非常に傾いており、非関数型言語を使用することはあまり賢明ではありません。
ノート:
あなたと彼の優先言語の両方が非常に似ている状況は避けてください。
たとえば、JavaがC#より「優れている」、またはJavaよりC#が優れている)コンテキストはほとんど想像できません。
言語の選択は主観的であることが多く、証拠に基づく要素ではなく、開発者の以前の経験によってより多く説明されることを覚えておいてください。
たとえば、金融セクターに関連するアプリケーションを実行するように求められた場合、Haskellがより適切で本当にエキサイティングだと思ったとしても、HaskellではなくC#を使用します。この選択の理由は、私はC#で長年の経験を持っているためですが、Haskellに関しては、いくつかのチュートリアルしか読んでおらず、専門的に使用したことはありません。
答えは2)それで行く。
それは双方にとって好都合です。楽しい!
答えはあなたがそれに対処しないことです。彼らと議論することは、arguerを彼らのレベル(彼らが経験であなたを倒す場所)に引きずるだけであり、彼らは心が近いので、結局建設的ではありません。
彼らが彼らの言語に賛成したり反対したりする議論を無視し、あなた自身の決心をしてください。アイコンタクトを避け、単一音節で答え、沈黙が確保されたら新しい対象に移るなど、通常の手法を使用します。代わりにあなたの隣の人を困らせるように彼らを訓練してください。
ここでの課題は、ファンボーイがその言語を自分のアイデンティティと関連付けることであり、その言語に関連する否定性は個人的なものです。攻撃したり防御したりしないでください。無視してください。
本当に使い捨てのスクリプトである仕事はほとんどありません。とにかく、必要な場合に備えて、そのような多くのものをwikiやリポジトリに配置します。
共有のレベルの下にあると私が思うことでさえ、私のチームメートはしばしば違った感じをします。たとえば、.profileにrgrepエイリアスがあります。サーバー上の実際のrgrepにアクセスできないため、これはパラメーターを指定したfindステートメントにすぎません。チームメイトが風に吹かれ、wikiでそれを欲しがった。はい、1行のステートメント。明らかに、実装言語についての議論はありませんでした-それはUNIXでなければなりませんでした。しかし、チームの他のメンバーが理解できることを行う必要性が強調されています。
別の見方としては、上級開発者がその言語の使用について知らない理由がある可能性があります。聞いた?
たぶん、両方の言語で同じスクリプトを作成してみて、自分のスクリプトが優れている理由を確認してください。
fogging を試してみてください。これは、ファンボーイが言うことのすべて(一部または全体)に同意することを意味しますが、特に指示されない限り、自分で行うことです。
パッシブアグレッシブオプション1,3はより感情的な苦痛をもたらすので、2)あごに乗せてください。
道路に関するいくつかの一般的なアドバイス:4)先輩の話をもっと賢く聞こえない場合は、言語/コンパイラーの設計で独自の研究を行ってください。言語を選んで、その考えがどのようになったかを学びます。機能、パフォーマンス、表現力の間のトレードオフは何ですか。他にどのようなオプションがありますか。これだけで非人道的なプログラミングの超大国をあなたに与えます。 NBLを学ぶ でも、それは巨大になるでしょう。
他人の意見を押して自分を主張すると、生産性とコミュニケーションが阻害されます。人々は感情的な衝動をあきらめることが役立つと思うかもしれませんが、それは彼らの不安に対する単なるバンドエイドです。
謙虚で親切に助言し、自分自身を向上させることは、技術的なレベルであなたの直感を表現するのに不思議になります。あなたは理由がわかるので、気分が良くなり、彼らが何であるかについて物事を見るでしょう。批判を技術的な文脈に外部化すると、怒るのは難しくなります。