2015/03/30 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】M11(マイルストーン11)Null安全性の変更、システムライブラリsequence、KDoc

【Kotlin】M11(マイルストーン11)Null安全性の変更、システムライブラリsequence、KDoc


JetBrains社サイトより引用




さてさて、KotlinM11リリースの謎の翻訳連載、四回目です!!
今回で最後。




第1回はKotlinのM11で変わったポイントでAndroid向けのものと、
第2回はCompanion Object、lambda、関数オブジェクトなどについて、
第3回はリフレクションについて紹介しました。


【Kotlin】M11(マイルストーン11)はAndroid開発者のためにある

【Kotlin】M11(マイルストーン11)の目玉、Companion Objectとlamdaと関数オブジェクト

【Kotlin】M11(マイルストーン11)リフレクションも便利になったよ


そして今回はその他もろもろまとめてドン!って感じです。
どれも見逃すわけにはいかないのです!!


ということで、Null安全性の変更、システムライブラリsequence、KDoc etc...について翻訳します。



注:翻訳について





===================== 以下、Kotlinブログの翻訳 =============================







いつでもそうだけど、 Javaの相互運用機能は、
私たちにとって大きな優先事項だ。
As always, Java interop is a big priority for us,

M9でリリースしたplatform typesで出てた コンパイラ警告の問題を@Nullable と@NotNullアノテーション付きのJava値の誤りを改善した。

M9以前ほど厳密にではないが、コンパイラ警告が壊れにくくなった。
and this time we are improving on the platform types feature we shipped in M9:
now the compiler issues warnings on misuse of Java values annotated as @Nullable and @NotNull.
This is not as strict as it used to be before M9, but it doesn’t break as often either.


次のステップは、 (エラーは常に合理的に固定することができるように)
安全な方法でJava Nullableエラーを発行することが考えられていて、
次のマイルストーンでリリース予定だ。
Next step would be to issue Java nullability errors in a safe way (so that an error can always be fixed reasonably), and this is planned for the next milestone.





IntelliJ IDEAのための詳細な改善と機能について。
More improvements and features for IntelliJ IDEA
Refactorings and Intentions


目的あるリファクタリング(Refactorings and Intentions)

以下のリファクタリング機能が利用可能になった。
The following refactorings and intentions are now available:

・Introduce Property

プロパティを導入し、初期化子、ゲッターまたはlazyProperty設定するかどうか定義する機能。
Ability to introduce property and to define whether we want an initializer, a getter or lazy property introduce-property

・Create from Usage with Java Interop


Kotlinファイルで使用されているJavaの型の「Create from usage」を呼び出すことができるようになった。
It is now possible to invoke “Create from usage” on Java types being used in Kotlin files.
introduce-property



・パラメータへの変換レシーバ(Receiver to Parameter Conversion)


T型のパラメータを取るT型拡張関数に変換するなど、
特別なシグネチャのリファクタリングケースとして、
パラメータをレシーバーとしてリファクタすることが可能。
A special case of Change Signature refactoring, whereby a parameter can be refactored to a receiver, thus allowing
converting a function that takes a parameter of type T into an extension function of T. It also allows for the reverse, whereby a receiver can be transformed into a parameter.
receiver-parameter



・関数プロパティ(Function to Property)

関数をプロパティとその逆関数に変換する機能が使えるようになった。
(翻訳者注:多分、命題とかで使われる「逆」のことだと思います)

Ability to convert a function to a property and vice versa function-property




・未使用の宣言通知 (Unused declarations)

未使用の宣言検査は、任意のエラーハイライトとかで強調表示して便利に使えるよ。
Unused declarations inspections is now available project wide, allowing these to be highlighted in any context.




・式評価(Evaluate Expression)

M11からは、デバッガでラムダ式と匿名のオブジェクトを評価する機能を持つようになった。 evaluate-lamdaと呼ばれるものだ。

We now have the ability to evaluate lambda expressions and anonymous objects in the debugger:
evaluate-lamda






インラインのドキュメントを提供するために、本格的な言語を持つようになった。
それは、 KDocと呼ばれ、 javadocおよびマークダウンの組み合わせに基づいている。
We now have a fully fledged language to provide inline documentation. It is called KDoc and based on a combination of JavaDoc and Markdown.

完全なリファレンスは、オンラインで入手可能だ。
M11では、のIntelliJ IDEAは完了、検証、リファクタリングのサポートを通じてKDocのサポートを提供する。
The full reference is available online. With M11, IntelliJ IDEA provides support for KDoc via completion, validation and refactoring support.






標準ライブラリの大きな変化の一つは、配列へのストリームの名前変更がある。
Javaの8ストリームとの混乱を避けるために変更した。
One of the big changes in the Standard library is renaming streams to sequences. This was done so as to avoid confusion with Java 8 streams.



val elements = sequence(1, { x -> x + 1})

1から始まる数字の無限のlazyシーケンスを生成する。
また、これは配列と既存のiteratableなオブジェクトを変換出来るようにする拡張関数でもある。
will generate an infinite lazy sequence of numbers starting at 1. There are also extension functions allowing to convert existing iterables to sequences



val elements = listOf(1, 2, 3, 4).sequence()


また、標準ライブラリのいくつかのバグフィックスが行われている。
There have also been several bug fixes in the standard library.

さらに、RxKotlinチームのいくつか更新に貢献した。
Kotlinの最近の変化に照らし合わせてより汎用的な作りにした。
In addition the team contributed to some updates to RxKotlin, making it more idiomatic in light of the recent changes in Kotlin.

最後に、 KotlinのWebサイトで標準ライブラリAPIリファレンスを、刷新している。
Last but not least, we have also revamped the standard library API reference, which is now available on the Kotlin Web site.



公式リファレンス

sequenceについてはこちら



JavaScriptのバックエンドはM11で、インライン関数のためのより良いサポートを持った。
我々はまた、簡単にすぐに適用できるような「 JavaScriptのバイナリ」という
新しいコンセプトのJavaScriptをターゲットにしたライブラリを再利用できるようにした。
The JavaScript backend now has better support for inline functions. We’ve also made it simpler to reuse libraries targeted at JavaScript through the new concept of “JavaScript binaries”,
which will be covered in more detail soon.




Importは、IDEユーザーへの可視言語として最低限の機能の1つだけど、
このツールは時々、ユーザーに結構な影響をあたえることもあるよね。
Importing is one of the least-visible language features for IDE users, but it has a great influence on how tools work, and occasionally on the users, too. M11では有意でない*-imports('オンデマンドのimport'と呼ばれる) を秩序立てて
IDEでimportディレクティブの効率的な自動管理を実装し、その他の微調整をした。
In M11 we made the order of *-imports (also called “on-demand imports”) insignificant, and made some other tweaks that enabled us to implement efficient automatic management of import directives in the IDE.






KotlinとJavaファイルは単一のソースフォルダに共存出来るようにした。
バグフィックスと依存関係の解決のスピードの改善をはかった。
M10移行の220以上のバグフィックスだけでなく、各地からのプルリクで色々と修正した。
Kotlin and Java files can now reside in a single source folder
Bug fixes and compilation speed improvements
Over 220 bug fixes since M10 as well as many external pull requests from the community.





いつもみたいに、IntelliJ IDEA 14 でプラグインはアップデート出来るよ。
もし、以前のバージョンのプラグインをインストールしたなら、JetBrainsのプラグインリポジトリから直接zip落としてくれ。
As always, you can update the plugin in IntelliJ IDEA 14 (or earlier versions) if you have a previous version installed, or install directly from JetBrains plug-in repository.


スタンドアロンなコンパイラのリリースしてるよ。
You can also download the standalone compiler from the release page.







はい、ということで、だいぶ盛りだくさんでした笑


今回の翻訳部分は新しい機能というよりはパフォーマンスの改善が主でした。


簡単に箇条書きにするとこんな感じです。

・IDEのパフォーマンス改善
・IDEのリファクタリング機能の強化
・RxKotlinのための調整
・220のバグフィックス、プルリクエストの取り込み
・streamがなくなりsequenceになった
・JavaScriptのサポート強化
・KDocというソースからAPI仕様書生成(Javadocのようなもの)するものを一般に公開した
->今まではKotlinチーム内部で使用していたようです。
・Gradleのディレクトリ構成の改善
->JavaとKotlinファイルが同一ディレクトリに共存できるようになりました。



個人的にはRxKotlinが使えるようになってるのか確かめたいですね。
前までKotlin本体のバージョンアップでうまく動かなかったようだったので。


IDEに関しては、Kotlinの補完とか色々もっと便利になってほしいという声も聞いたりするので
今後さらに便利になってくれるといいですね!
多分Android StudioとIntelliJ IDEAには確実に反映されると思います。



Don't be shy, try Kotlin!!!





0 件のコメント:

コメントを投稿