SemakovaJetBrainsではソフトウェア開発を中心に世界が回っています。そのため、私たちは自身が開発するツールからKotlinというプログラミング言語、さらにはこのアンケートに至るまで、自身が携わるすべてのものを利用して開発者の生活をより良いものにする取り組みに必然的に強い関心を寄せています。私たちがコミュニティに最高の貢献を行えるよう、8言語に対応したこの15~20分間のアンケートにご参加いただき、開発エコシステムに関するあなたの貴重な洞察をご提供いただきたいと思います。例年通り、私たちはこの調査のすべての結果と最も興味深い発見を公開する予定です。皆様が独自に分析を行ってご自身の仮説を検証できるように匿名化された生データも提供します。ご希望に応じてエコシステム内でのあなたの位置を明確に示すパーソナライズされた結果を準備することもできます。Packのいずれかの豪華賞品を獲得できるチャンスが手に入ります。昨年は19,000人以上がこの開発者エコシステムアンケートに参加しました。調査にご協力いただける開発者の数が増えるほど、コミュニティの実情がより正確に反映されることになります。2019年末の時点で400万人以上がKotlinを使用していました。利用者数が多いということは、多くのユースケースがあるということでもあります。私たちはKotlinを利用するすべての方に素晴らしい体験を提供することに深い関心を寄せています。コミュニティの参加者全員がKotlinを使ってアイデアを実現できるよう、Kotlinを改善したいと考えています。そのため、私たちは皆さんの意見を非常に重視しています。Censusアンケートに回答し、あなたが過去1年間でどのようにKotlinを使用したのか、どんな点が気に入ったのか、どんな点に困ったのかをKotlinチームにお伝えください。私たちはKotlinを使用していない方にも回答をお願いしています。Kotlinを使用しない理由を教えてください。私たちは皆さんの回答を重視しており、ご回答いただけますと非常に助かります。昨年ご回答いただいた方に感謝いたします。私たちが最新の情報を把握できるよう、今年もご回答いただけると非常に助かります。2019年に登場した機能や製品に関する新しい質問を多数追加しています。2019年にKotlinやそのエコシステムをどの程度スムーズに使用できたかどうかも質問しています。*右上に言語切り替えボタンがあります。一点重要なお知らせがあります。Censusに回答すると、KotlinConfへの無料チケットかKotlin特製Tシャツを獲得できるチャンスがあります。Semakova2020年におけるYouTrackの製品開発に関する当社のビジョンをお伝えします。ロードマップに含まれている機能には、ナレッジベースページである記事(article)、課題コメントへのリアクション、すぐに使えるヘルプデスクソリューション、ユーザーインターフェースをシンプルにするための変更、通知用の受信トレイなどがあります。このページを読み進めて開発中の新機能に関する詳細をご覧ください。これは編集可能なナレッジベースページであり、YouTrackの課題、ボード、レポートのすぐ横にそのコンテンツを表示できるものです。記事では、テキストや画像を追加し、サブページを作成し、プロジェクトに関する必要な情報をすべて格納できます。権限を管理して機密情報へのアクセスを制限することもできます。絵文字によるリアクション。絵文字によるリアクションはすでに日常的なコミュニケーション手段になっているため、課題コメントで絵文字を使えるようにしたいと考えています。することで、同僚のコメントや画像などにすばやくリアクションを返せるようになります。受信トレイによる通知。プロジェクトに関するメッセージの数が増えるにつれて、それらのメッセージを最大限に活用することがますます重要になります。通常の通知、システム通知、リアクションの流れ、新着情報の更新などの通知を分かりやすくUIに表示できる受信トレイを追加したいと考えています。簡略化されたユーザーインターフェース。私たちはアジャイルかつ多様なチームにより多くの機能を提供していますが、シンプルな外観を求めているユーザーがいることにも気が付きました。そのため、現在は新しく簡略化された課題リストビューを導入し、YouTrack全体にわたるナビゲーションを容易にするために多数の改善を行っています。組織によるアクセス管理。このオプションは、YouTrack管理者がユーザーやプロジェクトを組織と呼ばれるグループにまとめ、チームや作業構造に従えるようにするものです。ヘルプデスクソリューション。現在、YouTrackは着信メールの追跡や操作、または内外のユーザーからのリクエストを発行するためによく使用されています。現在、この用途を拡張し、埋め込み可能なフォームとナレッジベースを備えたすぐに使えるヘルプデスクソリューションを提供しようと考えています。私たちは様々なチームのニーズに応えられるようにYouTrackを作っています。そのため、以下のリストは単に特定の追加機能を含むものではありません。その代わり、この製品をより使いやすく強力にするために継続的に取り組むべき優先順位の高い利用シナリオに対する私たちのビジョンが反映されています。プロジェクト管理の改善。タイムトラッキングとプロジェクト管理機能の改善も行っています。1.4の計画について話しました。私たちのビジョンは、Kotlinが皆様のあらゆる努力を支える頼もしいパートナーとなり、皆様の業務に使用されるデフォルトの言語になることです。このビジョンを達成するため、すべてのプラットフォームでKotlinにさらなる進化をもたらす予定です。世界中の業界を代表する企業におけるいくつものケーススタディから、私たちがこの方向性において順調に前進していることがわかります。1.4により、Kotlinエコシステムの実現に向けてさらに一歩前進することになります。1.4では品質とパフォーマンスを第一に注力する予定です。Kotlinはすでに多くのアイデアと手法を取り入れているモダンなプログラミング言語です。私たちはKotlinを常に最新の状態に保ち、絶えず進化させていく予定です。現時点のKotlinは、大きな機能を追加するよりも全体的なプログラミング体験を改善することが重要な段階に達していると考えています。1.4では以下で詳細に記載するいくつかの小さな言語上の変更を行うに留めています。一方で、私たちはKotlinに対応したIDEのパフォーマンス向上において、すでに目覚ましい結果を残しています。コード補完速度が旧バージョンと比較して大幅に向上しました。加えて、Gradleチームと協力し、Gradleスクリプトを高速化しました。1.3.10と比較して2.5倍高速化しており、メモリ消費量が75%少なくなっています。コードキャッシュにより、開発モードでのKotlin/Nativeのコンパイル処理速度が最大2倍になっています。私たちはビルド速度がユーザーにとって最大の懸念事項であることを理解しており、この問題を解決するためにツールチェーンの改善を継続的に行っています。改善を行っても実際のコードベースの自然増加には追い付けません。私たちがコンパイル速度を向上させても、ユーザーがより多くのコードを書けば、全体的なビルド時間は十分に改善されません。コンパイラを再実装して大幅に高速化する必要があることは明確です。新しいコンパイラの実装目標は、大幅な高速化とKotlinがサポートするすべてのプラットフォームの統合、ならびにコンパイラ拡張機能のAPIを提供することです。この目標を実現するには数年を要する見込みですが、私たちはすでに少し前からこの取り組みを開始しているため、この新しい実装の一部は1.4で提供される予定です。移行は非常に段階的に実施されます。移行はすでに始まっています。型推論の新しいアルゴリズムが新しいコンパイラに組み込まれています。その他の部分に対するアプローチも同じです。古いバージョンに加えて新しいバージョンを実験的モードで同時に提供し、新しいバージョンが安定した時点でそちらをデフォルトにする予定です。新しいコンパイラの大部分は、新しいフロントエンドを実装することで高速化される予定です。背景を説明しますと、コンパイルはソースファイルを取得してそれを段階的に実行可能なコードに変換するパイプラインであると考えることができます。このパイプラインで最初の大きなステップ(処理)は、コンパイラのフロントエンドと呼ばれています。このステップではコードを解析して名前を解決したり、型チェックを実行したりします。コンパイラのこの機能は、エラーをハイライト表示する際や定義に移動する際、ならびにプロジェクト内でシンボルが使用されている箇所を検索する際にも動作します。これは現時点でkotlincが最も時間を要しているステップであるため、その高速化を図りたいと考えています。Horiokaこんにちは。JetBrains堀岡です。明けましておめでとうございます。2020(英語ブログ)」が発表されました。開発手法や開発環境のトレンドおよび変化に対応すべく、JetBrains製品を進化させるための様々な取り組みが紹介されています。本稿は前記英文ブログポストを翻訳・補足したものとなります。IDEAおよびIntelliJプラットフォームベースのIDEを改善するための現在の取り組みの一部を公開したいと思います。これらの取り組みは、パフォーマンスと最新の開発ワークフローのサポートという2つの主要なテーマに集中しており、2020年中にリリースされる予定であり、一部は春の2020.1リリースに含まれる予定です。IDEにおけるパフォーマンス関連の代表的な課題は、起動時のパフォーマンス(起動に時間がかかるツールは、全体的に動作重いと認識される傾向にある)とインデックス作成速度の2点です。2019年はIDEの起動をスピードアップするために多くのことを行ました。2020年はインデックス作成のパフォーマンス向上に注力します。私たちはこの問題に対して、以下に示す多面的なアプローチにより取り組んでいます。最初の取り組みは、作成済みのインデックスチャンクを使用できるようにし、世の中のすべてのIntelliJインスタンスが(例えば)java.lang.Stringクラスのインデックス作成と同じ作業を行う必要がなくなるようにすることです。Centralに含まれるライブラリ、それ以降、IntelliJ以外のIDEで使用されるインタープリターとパッケージをカバーできるように、年間を通じて徐々にサポートを展開する予定です。加えて、チームまたは企業内でプロジェクトソースコードのインデックスチャンクの共有をサポートする方法を検討していますが、現時点では具体的な計画はありません。第2の取り組みは、インデックス作成中により多くのIDEアクションを実行できるようにすることで、インデックス作成による待ちを少なくすることです。第3の取り組みは、インデックス付けに時間がかかりすぎるファイル、頻繁に再インデックス付けされるファイル、例外によるインデックスの再構築など、インデックス付けの異常を検出して通知することです。この取り組みの目的は、問題を把握し、解決のための明確な手順を提供できるようにすることです。これによりプロジェクトごとに最適なIDEのパフォーマンスを向上させる手段を提供することを目指しています。インデックスシステムが不要な作業を行わず、オーバーヘッドがないように、従来から継続的に取り組んでいるパフォーマンスの最適化にも取り組む予定です。JetBrainsユーザーにとってのもう1つの共通する課題は、UIのフリーズです。2019年では、このようなフリーズを報告するためのインフラストラクチャを構築しました(UIフリーズ時のログ自動生成)。報告された問題を手がかりに様々なアーキテクチャの変更を行い、多くのフリーズ問題を修正しました(例えば、ファイルシステムイベントの非同期リスナー)。2020年以降、さらに大きなステップとして、書き込みロックを必要とするアクションをUIスレッドから移動する予定です。IDEAは、ごく初期の頃、IDEの内部データ構造を変更するほとんどの操作がUIスレッド上で実行されることを必要とするアーキテクチャを採用しました。これらの操作には、基本的なアクション(ドキュメントへの文字の挿入)と大規模な操作(1000箇所で使用されているメソッドの名前変更)の両方が含まれています。この初期のアーキテクチャの利点は、プログラミングモデルが単純になることです。一方で、明らかな欠点は、多くのシナリオでUIの応答性が低下することです。過去数年にわたり、このアーキテクチャの制限を回避する方法として、大規模な操作を、バックグラウンドで実行される部分と、UIスレッドで実行される部分に分割する方法をとってきました。一方で、より根本的な解決策は、UIスレッドの要件を完全になくすことです。最近までは、独自のコードとサードパーティのプラグインを大幅に書き直さずにこれを行う方法は存在しないと思われていました。この課題に対して、現在、私達は、段階的な移行を可能にするアーキテクチャ・ソリューションを考案し、それを実装する作業を開始しています。Platformの重要なUIコンポーネントとAPIをリファクタリングして、新しいスレッドモデルを採用する予定です。新しいモデルが安定し、改善が認められるようであれば、すべてのIDEで新しいモデルに切り替えて、UIをスムーズでラグのないものにしたいと考えています。2019.3で部分的なプレビューを既に提供しており、再起動せずにテーマとキーマッププラグインをインストールできます。2020.1では、このサポートを全てのタイプのプラグインに拡張する予定です。バンドルされているプラ​​グインの大部分については、再起動なしでロードとアンロードをサポートします。サードパーティのプラグイン開発者向けに対しては、必要となるサポート手順を提供(日本語/英語)しています。この段階で最も重要なユーザーの利点は、IDEの再起動を必要としないシームレスなプラグインのアップグレードです。一方で、この作業の(2020.1以降のバージョンにおける)最終目標は、開いているプロジェクトに対して適切なIDE機能のみを有効化することです。Springプラグインは、Springを使用するプロジェクトに対してのみロードされ、Angularプラグインは、Angularプロジェクトに対してのみロードされるようになります。よって、プロジェクト内において特定のテクノロジーを使用しない場合、それに関連するUI要素は表示されず、そのテクノロジーをサポートするプラグインによるパフォーマンスやメモリ使用量への影響が無くなります。共同編集は、課題トラッカーで最も投票数の多いリクエストであり、2020年またはそれ以降に実現のために作業中であることをお知らせいたします。現在私達が実現しようとしているアプローチでは、ソースコードが配置されているマシン上でプライマリIDEが動作し、他のユーザーのIDEが「シンクライアント」としてプライマリIDEに接続します。(プライマリに)接続しているすべてのユーザーは、独自の状態(開いているファイル一覧、キャレットの位置、補完バリアントリストなど)を持ち、必要に応じて別のユーザーを「フォロー」するオプションがあります。「シンクライアント」ユーザーは、ナビゲーション、補完、デバッグなどのコアIDE機能にアクセスできますが、全てのIDE機能にアクセスできるわけではありません。アドボケートの募集を開始しました。WordPress.。