「コードを書けないときは気が滅入る」-JetBrainsのCEO、マキシムシャフィロフへのインタビュー





「スライドなし」の新年号-JetBrainsのマキシムshafirov shafirov



マキシムと話したことは次のとおりです。











いつものように、カットの下-会話の全文転写。



ロシア市場での仕事について



-あなたが今年の夏に行ったRBCとのインタビューから引用から始めましょう。 ちなみに、この記事は非常に興味深いと呼ばれていました。「共感でグローバルビジネスを構築する方法」。



-もちろん、あなたが知っているように、名前を発明したのは私ではありませんでした。 ジャーナリストにとっての主なことは、名前を思い付くことです...



-まあ、実際、これは彼らがあなたについて言っていることにかなり近いです:あなた自身はあなた自身の製品の慣習であり、共感はおそらく正しい言葉です。 私は見出しが好きだった。 そのような引用。 ジャーナリストは、ロシア市場がJetBrainsの周辺であると紹介し、次のように述べています。 だから今、私はこれらすべての論文に署名しています。 そして今、証券の量から判断すると、物事はロシア市場で順調に進んでいます-注文があり、それらがもっとあります。



JavaOneのようなイベントで製品開発に携わる人々と話すたびに、彼らは同じことを言います。「ロシアは私たちにとって市場ではない」。 売り上げが少ないため、ソフトウェアへの支払いに慣れていない人や、その他の多くの有名な理由があります。



JetBrains Russiaは市場ですか?それとも市場ではありませんか?



-さて、ロシアのソフトウェア市場は世界の一部です。 最大のソフトウェア市場は米国であることを誰もが知っています(特定の状況にある中国を除く)。 それからヨーロッパ、そしてみんながやって来ます。 ロシアは約1〜2パーセントを取ります。 まあ、私たちの販売構造のこれらの1-2%は同じように表示されます。 これは市場ですか、それとも市場ではありませんか? はい、市場、そして良い。



-開発者のほとんどがロシアにいて、会社が販売、マーケティングに根ざしているという事実は、何らかの形であなたに影響を与えていますか?



-影響なし。



-Habrのようなチャンネルがあり、パーティーに多くの人がいるという事実にもかかわらず、誰もがみんなを知っていますか?



-この影響を正しく測定する方法がわからないと言ってみましょうが、実際には感じられないようです。 彼らが私たちを知っていることを嬉しく思います。これは、彼らが何をするのかを知っているので、良い人を雇う人事ブランドとして私たちを助けます。 これはいいです。 そして、お金の観点から-私は知りません。



-それでも、市場は成長していますか? 手は紙のサインにうんざりしていませんか?



-疲れた。 電子的に文書に署名できるようなシステムを導入しようとしています(ロシアのメーカーも同様です)。



-インテグレーター、それを販売する人々との話はありますか? ここでは、ロシアのマイクロソフトがパートナーを通じて販売されています。



-はい、もちろんありますが、私たちは彼らが誰に売るかを全く追跡していません。私たちは最終顧客との仕事に参加していません。 多くの企業にとって、技術的に海外への送金を正当化することは困難であるため、これがなければ、ロシアでの企業売上はまったくありません。



-はい、通貨管理、VAT、全体像があります...



-しかし、これは純粋にロシアの話ではありません。 そのような再販業者は、純粋なお金を集めるために、世界の多くの国にいます。



-ロシアと具体的に何かをしますか、それとも市場を現状と認識しますか?



「彼はいいです、私たちはそれが好きです。」 なぜ彼と特別なことをするのですか? ロシアの食品会社が何らかの形で私たちにやってくると思います。 名前に名前を付けることはできますが、これによって余分なことはわかりません。 国有企業や国有構造などの特別なセクターがあるため、意図的にそれらと協力することは可能ですが、ここでインシデントが発生し、今ではソフトウェアを購入できません!



-それで、あなたは彼らにとってロシアの会社ではないのですか?



-彼らにとって、知的財産はチェコの会社に属しているため、私たちはロシアの会社ではありません。 私たちのビジネスは非常に組織化されているため、チェコの会社はロシアの開発を命じ、ロシアの会社はお金の注文を行い、知的財産はチェコの貸借対照表に残ります。 何かを購入するときは、チェコの会社から購入します。 [国営企業への販売]には、特別なレジストリに登録する必要があります。 そして、この登録簿に少なくとも名前やカテゴリで競合他社に漠然と似ているものがある場合、外国製品を購入することはできません。ロシア製品を購入する必要があります。



「だから誰もいない!」



-実際にはそうではありませんが、レジストリを読んだ場合-つまり。



-IBMにはEclipseがあり、OracleにはNetBeansがあります-そしてそれらはすべて外国のものです。



-本当の競争力のある選択肢をリストしますが、紙の競争力のある選択肢があります。



-これはかなり面白いです。 つまり、そのようなことで、すべてインポート置換に関連していますか?



-まあ、これは私たちを本当に悲しませません。お金の観点から、彼らはそこにいなかったからです。 私たちから何かを購入したいユーザーがこれを行うことができず、「このリストにあなたを入れましょうが、カスペルスキーはどういうわけか入っています」と書いてください。 そして彼らを助けることはできません。 それは残念です。



開発と管理の組み合わせについて



-サーバー製品の別のラインがあります。



-はい。



-かなり大規模で、私が正しく理解していれば、2人のCEOがいたとき、オレグステパノフは彼らにもっと関心を持ちました。 このような分離は何に関連していたのですか?



-まあ、機能的にうまくいきました。 私たちが責任を分かち合ったわけではありませんが、私はその時点で販売インフラストラクチャに従事していましたが、非常に忙しく、オレグは他のことに従事していました。



-そして、販売インフラとは何ですか?



-これは、すべてのライセンスが記録され、カード、リマインダー、支払いが記録されるシステムです...



-なぜ既成の決定を行わなかったのですか? 確かに市場にはそのようなソリューションがたくさんあります。



-市場でのすべての決定は、ある種のキャンバスにあなたを駆り立てます。 私たちは、ソフトウェアライセンスの考え方が非標準になるように歴史的に発展してきました。 さらに、クリーンアップする必要が生じたとき、すでにかなりの数のクライアントがいたため、ストーリーを捨ててゼロから始める余裕はありませんでした。 おそらく、誰かに注文することができます。 SAPやNetSuiteのようなERPシステムのいくつかのバリアントも検討しました。これは恐ろしいことで、そこに投資するのは恐ろしいことです。



一部の部門、特にプラハでは、NetSuiteを標準化しました。社内での会計は適切ではなかったため、外部委託されていました。 そして、それは非常に苦痛なプロセスだったので、カスタマーサービスシステムをNetSuiteに移行しなかったのは良いことです。



-あなたには重要な利点があります:あなたはソフトウェアを開発する人です!



-はい。



-あなたはまだ開発を自分でしていますか?



-はい。



-教えてください、「コードを書く」と「会社に答える」ことができると、これからあなたを引き裂きませんか?



「コードを書けないとき、それは私を壊します。」 慢または軽triに聞こえるかもしれませんが、1日でコードを1行も書かないと、非常に気分が悪くなり、不満を感じます。 私はひどく重要な質問を解決していたという事実にもかかわらず、どこかで誰かを助けたり、何らかの会話をしたりしましたが、それでも私は何かが機能するために何かを書くことが重要です。



-そして、あなたはキーで「ビジネスのために、私はビジネスにもっと注意を払うことが重要であり、誰かが私のためにコードを書くだろう、私たちにはたくさんの賢い人がいる」と思った?



-はい、私は思った。 そして、私は共感を持ってこの言い訳を思いつきました。 ビジネスがどのように機能するのか、なぜ機能するのか、誰のために機能するのかを理解する必要があります。 そして今、私は両側から彼を理解しています。



ドッグフードについて



-共感、 ドッグフードの話を始めるのは素晴らしいことです。 しかし、ある時点で、製品のすべての痛みを取り除き、すでに大丈夫です。



IDEAのユーザーに過去5年間でIDEAで何が変わったのかを尋ねると、彼らはあなたにそれを伝えます-Darculaテーマが登場し、ラムダがサポートし始めました。 そして、IDEAユーザーとして、私はそれが変化しているという感覚も持っていません。 おそらく多くの作業を行います-そして、パフォーマンス、UI、その他すべてを行いますが、ユーザーはそれを感じません。 これはあなた自身でこの二分法を解決する方法ですか?



-まず、「ユーザーに見えない」ことは知覚効果であり、これがユーザーの感覚であることを認めなければなりません。 私たちが行う機能の量は、それがどんなに些細なことに聞こえるかにかかわらず、そこに置く力の量に依存するためです。 最初にIDEAで作業している3人がいた場合、1年に3人年の機能が表示され、90人が作業すると90人年の機能が表示されます。 累積が発生し、次の各リリースは前のリリースと10倍、2倍、1.5倍ではなく、たとえば5%異なります。 そして、ボリュームの面では、これらの5%は以前に発生したよりもさらに多くの変化です。



各特定の時点で、各特定の人は製品を改善する方法を理解しています。 これが必ずしもマーケティングの観点からユーザーに提示できる全体像をもたらすわけではないという事実は、まあ、彼に神のご加護があります。 私たちは皆、製品が良くなっていることを知っています。 そして最終的に、ユーザーは私たちに同意することがわかります。彼らはお金を運んでいます。 同意しないだろう-負担しません。



-エンジニアが製品をどのように知覚するか、誰がそれを作るか、そしてユーザーがどのようにそれを知覚するかには常にギャップがあります。 この違いを見つけようとしましたが、もしあれば、なぜ面白いものを見つけたのですか?



-私たちは常に努力していますが、これは痛みを伴うプロセスです。 私はドッグフードが多少一方的であることを認めなければなりません。 コア機能については、言語、いくつかの一般的なストーリー、リファクタリング、電球、検査と連携して、すべてが明確になっています。 しかし、一方で、現在IDEAプロジェクトに取り組んでいるすべての人々がIDEAプロジェクトを書いています。 それは15年前に始まりました。大きく、具体的で、モジュールの特定の構造を持ち、ゼロから始める必要はありません。 そして、新しい開発者が私たちのところに来て、製品を投入します...彼の仕事の始めに、彼はあなたが非常に多くの改善をすることができることに気付きます! たとえば、私自身がIDEAプロジェクトを離れて横から何かをしようとすると、髪の毛が逆立ちしました。 すべてが私に思えたほどチョコレートではないことが判明しました!



もう1つは、このストーリーを常にチームに報告する必要があるということです。 JetBrainsは1つのIDEAではなく、他の製品を開発する人々で構成されています。 IDEAチームは、ユーザーからだけでなく、「他のJetBrains」からも情報の流れを受け取ります。 そして、シフトがあります、それは私には思えます。



-私は、ドッグフーディングは簡単に陥りやすいトラップであるという説を長い間持っていました。 それは初期段階では大いに役立ちますが、後で干渉し始めます。 しかし、ここでは長年にわたってドッグフードを使用していると同時に、急激に成長しています。 だから私の論文は間違っていますか? 固形ドッグフードがあるという点で何か問題がありますか? 表示されている場合、これにどのように対処していますか?



たとえば、どのようにして外部の人々からあなたの製品に関する意見を得るのですか? パブリックバグトラッカーを持っていることは知っていますが、あなたと私はJavaで書いた人の数とIDEAバグトラッカーに行く人の数を理解しています。 明らかに、これは非常に異なる人数です。



-数は異なりますが、サンプルは統計的にはかなり代表的なものだと思います。



-つまり、多くのユーザーがバグトラッカーに来ますか?



-たくさん。 これらはおそらく数十万人です。



-販売に関連するシステムを作成しました-このシステムは、販売やマーケティングトラッキングなど、チャネルの追跡のみを担当していましたか?



-いいえ、ここではMarketoを使用し、統合を試みました。 私たちは、すべてに入ることなく統合しようとしました。



-そして、どのように感じていますか?



-そうでもない。 マーケティング用の製品を作っているなら、もっと便利なことをしたと思います。



-私たち(JUG.ru Group)は、チャンネルを追跡しようとしています-誰が私たちを知り、誰が私たちを推薦したかなどです。 これは私たちにとって非常に難しい話ですが、私には非常に重要だと思われます。 この問題を積極的に検討しましたか?



-いいえ。



-あなたはそのような必要がありませんでしたか?



-いいえ。 事実、クライアント企業が小規模な場合、実際には非常に迅速に、バイラルに、私たちの製品を手に入れるのは一人の人間です。 かどうか。 これは「下からの作業」です。 また、会社が大きい場合は、上からの作業必要です。 CTOやトップマネジメントなど、誰かに販売しようとするだけでなく、コミュニケーションをとるためだけに販売作業が必要です。 いくつかの割引、個人的な関係、テスト、研究に役立ちます。 銀行などの大企業の人々はこれを待っているので、必要なだけです。 そうでなければ、彼らは彼が何をするかについて責任を負わないある種の小さなベンダーのように見えます。



会社内の進路について



-JetBrainsに非常に長い間滞在しましたか?



-10月1日は15歳になりました。



-これは会社の存在の最初からですか?



-ほぼ最初から。 私が到着したとき、IDEAはバージョン2.5でした。



-あなたはどんな従業員でしたか?



-10番目。



-いくつかの段階がありました:あなたはエンジニアであり、製品またはプロジェクトマネージャーでした...



「はい、しかし私は常にエンジニアでした。」



-そして今、あなたはCEOです。 そして、何らかの形でそれを変えた会社のステージを強調できますか?



-その文脈では?



-内部-かつて、市場の文脈で-2。



-さて、私は15年すべてを覚えています...私が到着したとき、会社にはIDEAという1つの製品がありました。 そして、私はIDEAで検査を行うことから個人的に始めました。もちろん、最も単純な状態フロー分析から始めました。「この領域は常にtrue



ですが、 NullPointerException



がここで飛んでいきます。」 皮肉なのは、それが依然として最先端の技術であるということです。私たちは1,500件の検査を作成しましたが、何らかの理由でそれが最も強力であることが判明しました。



「それは、 NullPointerException



が10億ドルの問題だからでしょうか?」




-いいえ、書くのが最もクールなものでした。



「つまり、なぜこれまでのところ...」



-なぜ便利なのですか? それが基本だからです。 残りはすべてテンプレートのようなものです:「そのように書いてはいけません、このように書いてください」。また、なぜそれが正しいのか説明文もあり、まったくありません。 そして、この検査はコードの構造とセマンティクスを理解しようとしています。コード自体には直接反映されないかもしれませんが、そこから抜け出すことができます。 最初の6か月間、同僚が「ここにあなたは完全ながらくた」、「これはありえない」という言葉で電話してきたことを思い出し、私は来て説明しました:「ここを見て、この状態はこんな感じ、ここに割り当てられているそれ、そして、これはここから来ます、そして、あなたは持っているでしょう...”-” a、はい、本当に!。 最初の6か月間、誰も私を信じませんでしたが、徐々に彼らは私のところに来なくなりました。



-実際、コンパイラの一部を書いたのですか?



-はい、もう少しです。 それは実際にいくつかの擬似コードにコンパイルされ、制御フローグラフによってすべての非等価メモリ状態を解析しようとする仮想マシンのようなスカーレットインタープリターがあり、それに応じて互換性を見ていくつかの条件を強調しますこれはバグと解釈できます。



その後、創始者のセルゲイ・ドミトリエフは、多くのことを書いて、エディターの最初のバージョンを書きました。



-つまり、最初は編集者ではなく、ある種の個別の検査でしたか? どのように機能しましたか?



-いいえ、あなたは混乱しています。 検査に加えて、私はエディターのサポートを開始しました。



-具体的ですか?



-はい、特に私です。 私はそこで100万の問題を解決し、私の人生で初めてプロファイラーと一緒に座っていました、Pentium IIIで、私は具体的に自分にマシンを尋ねました...



「...減速しませんでしたか?」



-いいえ、それどころか、遅くなりました! ユーザーから「ログに記録できず、コードを印刷できません!」と苦情が寄せられたため、Pentium 4では表示されませんでした。



-これはドッグフードでもあり、異なるコンテキストでのみです。



-彼の人生で最初のプロファイラーを起動し、彼はSCRIPPED。 これは次のようなものでした:キーを押して印刷速度を確認し、10分でその時点で何が起こっているのかを追跡し、何らかの方法で最適化を試みます。



彼は折り畳み、エディターでのパフォーマンス、多くのバグの修正、多くの機能の作成に従事していました。 そして、Sergey Dmitriev(JetBrainsの創設者兼社長-およその著者)が来て、「さあ、あなたはIDEAを担当します」と言った。 ここに質問のこの声明で。 私は言います:「あなたは、オフィゲリ、または何ですか?」...まあ、わかりました、私は言います:「どのように?」



それから3日間、「どうして?」と頭を抱えて歩き回り、試してみることにしました。 そして、私はそれを試しました。 コーンの束を集めました。 彼らがプログラマーから貧しいマネージャーを獲得したと言うとき、これはもちろんある意味で真実です。 一部のマネージャーが既にどこかで収集したものと同じコーンをすべて、再度収集する必要があります。







一部のプロジェクトの終了方法について



さて、私は会社について話していますよね? まあ、それまでに既にFabriqueプロジェクトがありましたが、それは終了しました。 「Webアプリケーションを作成するためのこのようなメガツールを作成しましょう。UIを絵に描くことができるように、何らかの種類のサーバーエンジンがあるでしょう。AJAX、WYSIWYGをサポートします」。



-それは二千の真ん中ですか?



-はい、AJAXという言葉が登場し始めたばかりで、まだ主流に入っていません。おそらく2004年でした。 そのため、Fabriqueプロジェクトは最初のリリースの10日前に閉鎖されました。



-飛べなかった?



-それが飛ぶことはないという認識が来ました。



-そして、終了する決定はどのように行われますか? このプロジェクトに多くの努力を注いでいますか? そして、これはおそらくあなたが閉じた唯一のプロジェクトではありませんか?



-あまり閉じませんでした。 心の手-おそらくもっと閉じたかもしれません。 ただし、ユーザーに公開するまでプロジェクトを簡単に閉じることができます。 あなたがそれを展開した後、たとえあなたが直接の義務(あなたにお金を払ったか、バグ修正、サポートを頼りにしているものなど)を持っていなくても、まだコメントがあるので。 立ち上げプロジェクトを閉じると、人々があなたの会社をどのように認識するかに悪影響を及ぼします。



Googleはおそらく、プロジェクトを左右に閉じる余裕があるでしょう。 Readerを閉じることについてどの程度のノイズがありましたか? それは何百万人もの人々によって使用されました! Googleは、そのようなプロジェクトに同行する余裕はないことに気付きました。内部でこれを行う人は誰もいませんし、誰も望んでいません。 彼らは以前にファンファーレでトランペットしていたものを閉じることさえできます。「Waveはコミュニケーションの新しい方法であり、電子メールのキラーです。今ではすべてWaveで書くことができます」...それを試してみてください。本当に美しいです。 しかし、そうではありませんでした。 取って閉じた。



これはそうではありません。 Fabriqueを閉じ、OmniaMeaを閉じました-.NETで書かれた情報アグリゲーター:メールリーダー、ニュースグループ、RSSフィード、Webサイトコンテンツの追跡...大量の情報を追跡する必要がある場合、便利なボックスがあります。 そして、たくさんのスマートな機能がありました。 ビジネスとして、これは飛んでおらず、閉鎖することにしました。 そして、それはほとんどすべての製品の閉鎖です。



-あなたが誰かにあなたの製品を売るとすぐに、あなたのためにすぐにそれがダウンしたことがわかります。 成長しているものがありますが、拒否できないものがあります。これには習慣があるからです。 今あなたを引っ張っているプロジェクトはありますか?



-これについてコメントしたくありません。 ただ言ってみましょう:私たちがそれらに費やすよりも少ないお金をもたらすプロジェクトがあります。



-なるほど。 多様化するにはポートフォリオが必要です。 あなたのビジネスを多様化しようとするReSharperの立ち上げの裏に物語はありましたか?



-はい、もちろん、絶対に。



「何が怖いの?」 IBMとEclipse? それについて少し教えてください、あなたはその時何を感じましたか?



-そして、私はエンジニアでした。 振り返ってみると、Sergey Dmitrievが「IDEAを管理しましょう」と言ったとき、彼は本当にEclipseが彼女を殺すのでIDEAが終了することを本当に意味していたことを理解しています。 誰がこのプロジェクトをさらに開発するかは問題ではありませんが、プロジェクトがしばらく浮かんでいることが必要です...



-カスタムがあるため...



-はい。 まあ、多分私たちはまだいくつかの楽しみを持っているでしょう...



-おもしろい。



-さて、多分彼は今それを認めていないかもしれませんが、どういうわけか今私はそれを見ます。 まあ、本当にそのような状況がありました:皆が本当にEclipseに基づいてIDEを閉じたか、書き直しました-例えば、Borland Together。



「私たちはすべてにおいて正しいです。ドッグフードは明らかに良い方法です。良いお金を稼ぐからです」-競合他社はまだ私たちを助けてくれます。これも非常に重要です。



「どういう意味ですか?」



「まあ、私はEclipseが今あまりうまくいっていないことを観察しています。」



-それで、あなたは彼らの過ちから学ぶのですか、それとも彼らは彼ら自身の墓を掘るのですか?



-掘って、率直に言って、ユーザーは品質に不満を持っています。 彼らは以前に文句を言いましたが、ある種の開発のダイナミクスがありました。 そして今、Eclipseで行われたコミットの数を見ることができるサイトがあります(IDEAコミュニティとEclipseはオープンソースです)。 また、たとえば、1日あたり200件のコミットがあり、同じコードベース機能で1か月あたり20件のコミットがあります。



-彼らはあきらめていると思いますか?



-もちろん彼らはあきらめません。ただ資金がありません。 これは、さまざまな大企業が資金を提供している非営利組織です。



-これは興味深い話です。人々は非営利的なものについてオープンソースについて話すのに慣れていますが、JavaがOraclによって後援され、EclipseがIBMによって後援されていることをよく知っています-つまり、これらのプロジェクトの開発者は機能しません無料で。



-人々が無料で働いているという話はありますが、これは永遠に続くことはできません。



-これは大きな製品に関するものではありません。 3人が無料でOpenSSLを実行しています-信じる準備ができています。 しかし、たとえば、Red HatやIntelなどの最大のベンダーの従業員がLinuxに貢献します。



なぜ私はこれについて話しましたか:あなたがお金のために製品を売ることが本当に好きです。 ロシアでは、購入するのが慣例ではありません。 そして、おそらくロシアだけではありません。 一般に、オープンソースとフリーソフトウェアに関するこの話は少し怖いです。なぜなら、これらの製品は仕事のためにお金を受け取るプログラマーによって使用されるからです。 しかし、彼らの会社はしばしばこれらの製品に支払う準備ができていません。 これは純粋にロシアの現象ですか、それとも世界の他の地域でも見られますか?



-一方では、オープンソースであることは良いことであり、プロプライエタリであることは悪いことであると世界で信じられています。 一方、ロシアでは、ソフトウェア開発全体が少し不安定になっています。 あなたは白い鎧の騎士であり、良いことを無料で行い、世界と共有する必要があります。 そして、原則として、ロシアで多くのお金を稼ぐことは、ある種の恥ずべき才能を持っています。 オリガルヒは、「あなたが良い車を持っているなら、あなたは盗んだ」...残念ながら、そのような列車があります。 もちろん合格します。



-しかし、お金は面白いことをするのに役立ちます-たとえば、新しいプログラミング言語を作成します。



-だけではありません。 まず第一に、 お金はあなたがすることをするのを助けます 。 私たちの製品のユーザーは私たちにお金を払うことに興味があると私は絶対に確信しています。 このお金はツールを改善するために使われるからです。



Kotlinについて



-コトリンについて話したい。 私はアンドレイ・ブレスラフを非常に長い間知っていました。彼は学校で教え、その後研究所で教えてくれました。これについて彼にとても感謝しています。 そして、ある時点で、アンドレイはピーターに戻り、「現在、JetBrainsでKotlinを作っています」と言いました。 独自のプログラミング言語を作成するというアイデアは、誰にどのように思いついたのですか?



-話全体を聞かせてください。 セルゲイ・ドミトリエフが来て、こう言います。「おもしろい、面白いことをする必要があるように思えます。 IDE、チューニング-これはすべて明らかですが、会社を新しいレベルに引き上げるにはどうすればよいのでしょうか?”そして、Dima yole Zhemerovは、「プログラミング言語をやってみましょう!」



そして、ドミトリエフは私に来ました:「ここで、ゼメロフは、プログラミング言語をやってみようと言います。」 そして、私は答えます:「主よ、一体何? JetBrainsはどこにあり、言語はどこにありますか? 言語は、人気がある場合にのみ意味があります。 ここで、IDEは市場の5%をキャプチャーし、それで素晴らしいと感じることができます。 しかし、言語はそれを行うことができません。それが主流である場合にのみ意味があります。」 私はまだそう思います。



-まあ、言語の5%は非常に良いです。 TIOBEインデックスによると、5%の領域で、最初の10が終了します(実際には、 トップ 3-約著者)。



-まあ、5%-断った。 そして、ある時点で、「いや、これは不可能だからといって不可能だ」と思われました。 そして、私は考えました:ここでは20または30の言語をサポートしています。 あらゆる種類の異なる。 そして、人々がそれらにどのように書くかを知っています。 レーキが各言語のどこに配置されているか、すべての長所と短所を知っています-いくつかの正式な機能とチェックボックスの観点からだけでなく、これらすべての言語の実用的な観点からも。



-つまり、専門知識を蓄積しました。



-はい。 そして、おそらく、JetBrainsは、業界で実際に使用されるプログラミング言語を作成するための、最も技術的に精通した企業であると理解されました。 次に、「Groovyではないのはなぜですか?」、「Scalaではないのはなぜですか?」、「なぜ他の何かではないのですか?」という標準的な会話をすべて行いました。 静的型付けはチューニングであり、チューニングはIDEであり、IDEはお金であり、一般的にはより便利で高速であるため、静的型付けが必要であることは絶対に確信していました。 機能のリストをまとめた後、Andrei IvanovがBreslavを持ち込み、彼が私たちに尋ね始めました。



それがジャムセッションでした。 彼を最初から最後まで完璧に覚えています。 彼は質問をし始めました、私はそれらに答えました-なぜScalaではなく、なぜGroovyではないのでしょうか。 彼はかなり懐疑的でしたが、それでも対話を受け入れました。



そして、おそらく4時間後の会話の終わりまでに、アンドレイが私たちのために働いていて、彼があれこれやっているということをすでに明確に理解していました。 その後、彼は1年間Microsoft Researchに行き、そこで調査を行ってから戻ってきました。彼と私は約1年半を部屋で過ごし、新しい言語を設計しました。



-つまり、最初に一緒にやったの? 4つの手、2つの頭?



「まあ、それはあまりにも謙虚です。」 もちろん、他の人も参加しました。 アイデアはすべて、廊下で処理およびテストされました。 多くの人(同じDima Zhemerov、同じIlya Ryzhenkov、Volodya Reshetnikov、現在Microsoftにいます)が多くのアイデアを表明し、コメントしました。 または、Roma Elizarov-私が電話したので、彼は私たちのところに来ました。「ラム、私はJetBrainsにプログラミング言語をどうやって作るのか教えてやるよ。」



-何年ですか?



-2011年。 2012年かもしれません。 ローマが来て、聞いて、言った:「おい、すべてがクールです...しかしNullability。」 そして、私たちは次のとおりです。「それは難しい:ジェネリック、Javaとの相互運用性」...彼:「Nullability、男」。 そしてNullabilityが登場しました。



-これは非常に興味深いことです。なぜなら、ローマエリザロフも冬には「スライドなし」でしたが、それでも彼はまだDevexpertsの従業員でした。 つまり、その段階でも、言語に大きな影響を与えた人はいましたか?



-はい、Nullabilityを特に提案したのはRomaでした。 そして、これはおそらく、Kotlinの最も重要な機能の1つです。これは理解できることであり、ユーザーに説明するのに便利です。 しかし、Romaはアイデアを与えてくれました。典型的なシステムではNullabilityであるため、言語での実装を便利にするために私たちは本当に一生懸命努力しなければなりませんでした。 言語には他のメカニズムが必要です:質問、ポイント...



-私は見ました、アンドレイは言っていました:1つの感嘆符、2つの感嘆符、疑問符...



-これはすべて、反復的に現れました。



-これをリリースしたとき、「言語をリリースする」という予測がありましたか?



-はい。 1年半後に言語をリリースするという予測がありました。 「そこで何をすべきか-コンパイラを書くだけでいいから」。



-そして、私が理解しているように、この春にリリースが行われましたか?



-1年半後だと言った日付から約5年後。



-5年:最初の2つ、次に5つ、今ではほぼ30以上、さらに新しいプログラミング言語を作成します。 これは莫大な強さ、神経、そしてもちろんお金です。 それは、おそらく、会社が毎年このプロジェクトに数百万ドルを費やしているということです。 ビジネスの観点からこの投資をどのように評価しますか?



-戦略的なものとして。



-あなたはコトリンに真剣に賭けていますか?



「はい、絶対に。」 Kotlinが主流になると、JetBrainsは、Kotlinが動作するソフトウェアエンジニアリング市場に対してまったく異なる意味を持ちます。 つまり、彼らは私たちについて、いつでも便利でありながら交換可能なツールを作る人ではなく、すべてが構築されているエコシステムの根本的な機能を作る人だと言うでしょう。 これは異なる重み、異なる情報の流れであり、お金も異なると思います。



-RBCでのインタビューの時点で、あなたは私の意見では年間売上高を1億4700万ドルと呼びました。 これは大金です。 Kotlin以外のプロジェクトに投資していますか? あなたはすでにすべての言語を食べました。Go用のIDEだけを食べました。おそらくそうではありません。 (インタビューはゴグランド発表前に行われました -約認証)



-そうだ!



-さて、今誰もが何が起こるかを学びました。 Go言語があり、JetBrainsがあります...



「あなたは魅力的です、私は魅力的です、なぜ無駄な時間を無駄にしますか」...



サーバーツールについて



-この話で、私はすべてを理解しています。 しかし、次は何ですか? 現在のボリュームで、さまざまな研究プロジェクトに投資できますか?



-見て。 JetBrainsの観点から、今後数年間、JetBrainsが引き続きソフトウェア開発に取り組んでいると判断しました。 それでも、クライアントはプログラマーまたはプログラマーのチームであり、このグループに焦点を当てた製品を作成します。 もちろん、これはIDEだけではありません。



特に、あなたはサーバーツールについて話しました-私の意見では、今、私たちはそれらの全体像を持っていません。 特定の機能をカバーするツールはありますが、他の特定の機能が十分ではありません。 これは、一般的な毛布から切り取ったアップリケです。 そして、IDEがプログラマ向けであるのと同じくらいチーム向けに統合されたツールを作りたいと思っています。



そして冗談は、たとえば、最初のサーバー製品であるTeamCityを始めたとき、まさにそのようなアイデアがあったということです。 「ここで、私たちはIDEを作成しました。それは準備ができていると言えます。原則として、すでに2005年に、IDEには他に何も必要ありませんでした。



もちろん、漸進的な改善は大きな累積効果をもたらしますが、それでも漸進的な改善です。 それで、私たちは考えます:わかりました、統合されたチーム環境をやってみましょう、しかし、私たちは特定の物語からどこかで始める必要があります。 次に、継続的インテグレーションのために、 CruiseControlがありました。これは、1台のマシンに格納されているシステムで、xml-thファイルで構成する必要があります。 , , , , , , , , , .



— Hudson, Jenkins.



— Hudson, CruiseControl, 2004-. , Integrated Team Environment, , : Continuous Integration. , -, , , , « », , , « , , version control system », , , .



: , , . , — . YouTrack, UpSource (code review-), « , ».



— TeamCity , - — . , , - YouTrack - . , JUG.ru Group , JIRA. -, API , ! -, . , YouTrack - -, - ?



— -. , YouTrack. - , - , YouTrack issue, workflow- , .



— -.



— , workflow MPS , . , YouTrack - . , , , - , . , , , , , , , . - , JetBrains .



Microsoft



— Eclipse, IBM, , , . Rider.



, « » , vjq « C# IDE?» : «, !» , JetBrains IDE . !



, , Microsoft. Rider — Visual Studio, . Java, , Java ( — SUN Microsystems), , IDE — IBM . , .



.NET — , Microsoft, . , ReSharper Visual Studio, . , — , ? ?




-見て。 -, Sun Studio, NetBeans, JBuilder . « Visual Studio» « Microsoft», Microsoft — . Microsoft , , . , , , . , - , Visual Studio, , Azure .NET.



— , Azure. , Microsoft : « .NET — legacy-». , - : , Azure, IoT. , , , .



Rider, C# IDE, , Microsoft Azure, …




— Microsoft . Microsoft — , , , . Microsoft , 70 000 ( , 100 000 — . .). Azure, , .NET.



, , , .NET . , Microsoft , , , Microsoft. , Enterprise- .NET. , , Linux, . Mono .NET Core, . Xamarin — .



— Microsoft Linux Foundation .



— . Google .NET Foundation.



— , ?



— . , . - .





— — , . ?



-はい。



— , - . , IPO ?



— - . : , .



— : « ». , !



— , . JetBrains , , , . , .



, , , - . — , , , 15 , , , … , , . - ?



— ?



— exit: , 15 , (, , ), . なんで?



— . , . , , « » - . « - - » . …



— .



— , . ?



— ?



— Oracle, , 10 .



— , , …



— , . , , «», «» , . , . ? , . - ?



— . . , , . « , . ? ». いや



— . , , , …



— , , : 50-70 .



— , — , , . , , , , Java-, , - ? « , », , — , ? , ?



— ? , , . , .



— , ?



-もちろん! Kotlin, . . .



— Stepik.org?



— .



, IT- ? Java-, .NET-, PHP- ?



— — , . , .



— , , , IT-.



— , . , . , , , , , .



, Product Marketing Manager



— , Product Marketing Manager ( — PMM). , - , , ?



— , : , . . . . , - , , «, , , - , -». -, , , … , . …



— «Awesome», «perfect», «brilliant», «excellent»… !



— . , .



— , awesome perfect!



— , , , , . , , -: , . , . , . , , .



, , . , , , - . , , , , .



, , , JetBrains - , , . PMM', , , , , . PMM', , DevOps, .



— . PMM- , . , .. . ?



— . , , . - PMM- , - , - , - , , -, , , . .



, PMM' . , , -. , , , . , - , .





- : , , , HR. , — ? ?



— , , . , . , , — , , , , - , .



— , , , — . ?



— , . , , , . , . : , , , , HR', . , . N . 2N . それで何?



— HR — . , , , , , . « ». , : , , . , , — Language Architect. — .



— , , HeadHunter: « Language Architect, ». . , , . , . .



( , , ). . , , .



— ?



— C , , , . , , — , . どうやって? , ? , , .



— , , , , IT. , . ?



— - , -.



— .



-はい。 , , , - . , , .



Kotlin Native



-なるほど。 , — Kotlin Native. , , , . Kotlin Native . — , . — Kotlin Native? ( , , ) , Kotlin.



— , , . , Kotlin , Kotlin . , , . , , Node.js. Node.js? , ( ), , , .



— , . « JavaScript, ».



— , , . , , , .



— , , JavaScript, .



— Node.js. , — . Node! , JSON'. , , , .



JavaScript. , , , .



— , , , Kotlin- — JavaScript?



— . 知りません



— JS , .



— Kotlin- , , . — , , , . , , . Kotlin Native, , , . , IoT. IoT , …



— !



— , , , win-win, profit.



— Oracle, , Internet of Things, , , , , . «IoT» , , . , - , - . , IoT — , Big Data , . , , , , . , . ?



— .



— ?



— . , . , , , , , , , , . , , , - . , C, , .



— — cloud, IoT, — JetBrains ?



-はい。 , . IDE .










All Articles