<feed xmlns="http://www.w3.org/2005/Atom" xmlns:cc="http://web.resource.org/cc/">
	<title>List of Kotlin [text.Baldanders.info]</title>
	<link rel="alternate" type="text/html" href="https://text.baldanders.info/tags/kotlin/" />
	<link rel="self" type="application/atom+xml" href="https://text.baldanders.info/tags/kotlin/index.xml" />
	<id>tag:text.Baldanders.info,2018-12-02:/tags</id>
	<updated>2018-12-02T15:07:36+09:00</updated>
	<subtitle>帰ってきた「しっぽのさきっちょ」</subtitle>
	<icon>https://text.baldanders.info/images/avatar.jpg</icon>
	<logo>https://text.baldanders.info/images/avatar.jpg</logo>

	<entry>
		<title>Kotlin の予備学習</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2018/12/kotlin-book/" />
		<id>tag:text.Baldanders.info,2018-12-02:/remark/2018/12/kotlin-book/</id>
		<published>2018-12-02T06:07:36+00:00</published>
		<updated>2026-07-31T07:28:07+00:00</updated>
		<summary>「Kotlin をふわっと覚えられる」教材を探していた。 そしたら偶々 Kindle unlimited で『速習 Kotlin』という本を見かけたので予備学習教材として読んでみた。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.github.com/2018-11-15-state-of-the-octoverse-top-programming-languages/&#34; target=&#34;_blank&#34;&gt;The State of the Octoverse: top programming languages of 2018 | The GitHub Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この記事の中で “Fastest growing languages by contributors as of September 30, 2018” のトップが &lt;a href=&#34;https://kotlinlang.org/&#34; target=&#34;_blank&#34; title=&#34;Kotlin Programming Language&#34;&gt;Kotlin&lt;/a&gt; なのを見て「やっぱ時代は &lt;a href=&#34;https://kotlinlang.org/&#34; target=&#34;_blank&#34; title=&#34;Kotlin Programming Language&#34;&gt;Kotlin&lt;/a&gt; だ！」と確信したのだが，今は忙しいので，まずは「&lt;a href=&#34;https://kotlinlang.org/&#34; target=&#34;_blank&#34; title=&#34;Kotlin Programming Language&#34;&gt;Kotlin&lt;/a&gt; をふわっと覚えられる」教材を探していた。
そしたら偶々 Kindle unlimited で『&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B07HQMNLCV/baldandersinf-22&#34; target=&#34;_blank&#34; title=&#34;Amazon.co.jp： 速習 Kotlin: Javaより簡単！新Android開発言語を今すぐマスター 速習シリーズ eBook: 山田祥寛: Kindleストア&#34;&gt;速習 Kotlin&lt;/a&gt;』という本を見かけたので予備学習教材として読んでみた。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://kotlinlang.org/&#34; target=&#34;_blank&#34; title=&#34;Kotlin Programming Language&#34;&gt;Kotlin&lt;/a&gt; は Android アプリ用言語として有名になったせいか，言語そのものを解説する本はまだ少ない感じ。
個人的には &lt;a href=&#34;https://kotlinlang.org/&#34; target=&#34;_blank&#34; title=&#34;Kotlin Programming Language&#34;&gt;Kotlin&lt;/a&gt;/Native に期待しているので，もっと言語そのものを解説する本がたくさん出るといいな，と思ったりする。&lt;/p&gt;
&lt;p&gt;さて『&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B07HQMNLCV/baldandersinf-22&#34; target=&#34;_blank&#34; title=&#34;Amazon.co.jp： 速習 Kotlin: Javaより簡単！新Android開発言語を今すぐマスター 速習シリーズ eBook: 山田祥寛: Kindleストア&#34;&gt;速習 Kotlin&lt;/a&gt;』を読んだ第一印象だが，昔 .NET Framework が登場したときに真っ先に「覚えられるか！ こんなもん」と感じたのを思い出した。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://kotlinlang.org/&#34; target=&#34;_blank&#34; title=&#34;Kotlin Programming Language&#34;&gt;Kotlin&lt;/a&gt; に限らないが，コード記述の全てを「オブジェクト」およびそれらの関係で表そうとすると膨大な語彙や文脈が発生する&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;。
故に「言語を覚える」というのは言語仕様を理解するだけでは全然足りなくて，言語に付随する語彙つまりフレームワークを習得する必要がある。
無理やり喩えるなら，昔の（C言語などの）言語は「数独&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;」でオブジェクト指向言語は「クロスワードパズル」といった感じだろうか&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;この手の解説本でありがちなミスは，言語「仕様」と言語周辺の「知識」がゴッチャになって記述が混沌としてしまうことだ。
『&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B07HQMNLCV/baldandersinf-22&#34; target=&#34;_blank&#34; title=&#34;Amazon.co.jp： 速習 Kotlin: Javaより簡単！新Android開発言語を今すぐマスター 速習シリーズ eBook: 山田祥寛: Kindleストア&#34;&gt;速習 Kotlin&lt;/a&gt;』にもこの傾向がある。
とはいえ Int や Double といったプリミティブな型でさえクラス・オブジェクトとして定義されているのだから，この点で著者の方を責めるのは酷というものだろう。&lt;/p&gt;
&lt;p&gt;もうひとつ気になったのが糖衣構文（syntax sugar）。
既にその言語に馴染んでいる人にとっては糖衣構文は書きやすくて読みやすいのだろうが，基本のキから言語仕様を学ぼうという人にとっては毒が強すぎる気がする。
これって習熟度が異なる者同士で peer review すると支障が出たりしないのか？ 私なら研修である程度言語に慣れるまでは糖衣構文は禁止にするぞ。&lt;/p&gt;
&lt;p&gt;というわけで，私なら&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;言語仕様の理解&lt;/li&gt;
&lt;li&gt;糖衣構文に慣れる練習&lt;/li&gt;
&lt;li&gt;フレームワークの知識を深める&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;の三段構えで学習を進めていきたいところである。
まずは目の前の雑事を片付けていかないといけないのだが&amp;hellip;&lt;/p&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B07HQMNLCV?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51opWCuz3YL._SL160_.jpg&#34; width=&#34;100&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B07HQMNLCV?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;速習 Kotlin: Javaより簡単！新Android開発言語を今すぐマスター 速習シリーズ&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;山田祥寛 (著)&lt;/dd&gt;
    &lt;dd&gt;WINGSプロジェクト 2018-09-26 (Release 2018-09-26)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B07HQMNLCV (ASIN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;3&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;&lt;strong&gt;[Comment]&lt;/strong&gt; Kindle unlimited で読める。 Java コードと比較しながらふんわりとイメージを掴むにはよい。予備学習教材。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2018-12-02&#34;&gt;2018-12-02&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 速習 Kotlin --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B077PDFQ4S?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/513eTXxTlJL._SL160_.jpg&#34; width=&#34;160&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B077PDFQ4S?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;STARTSIDE 数独 すうどく 脳トレ 卓上 ボード ゲーム 9ブロックパズル (ブラック)&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;STARTSIDE&lt;/dd&gt;
    &lt;dd&gt;おもちゃ＆ホビー&lt;/dd&gt;
    &lt;dd&gt;B077PDFQ4S (ASIN), 4562440102073 (EAN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;3&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;&lt;strong&gt;[Comment]&lt;/strong&gt; 「数独」がボードゲームに（笑）&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2018-12-02&#34;&gt;2018-12-02&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 数独 --&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;この点で &lt;a href=&#34;https://golang.org/&#34; target=&#34;_blank&#34; title=&#34;The Go Programming Language&#34;&gt;Go 言語&lt;/a&gt;における全てを「オブジェクト指向」に包摂しようとしない設計上の割り切り方は個人的に好印象である。スクリプト言語ならともかく，バイナリ・コードにコンパイルする言語は（泥臭さを許容してでも）パフォーマンスが要求されることも多く，無理にオブジェクト指向でマニピュレータを書くより「for 文で回したほうがはやい」なんてなこともあるのだ。&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;「数独（「数字は独身に限る」の略称）」は&lt;a href=&#34;https://www.nikoli.co.jp/&#34; target=&#34;_blank&#34;&gt;ニコリ&lt;/a&gt;の商標である。ちなみに数独のオリジナルは米国の方が考えられた ”Number Place” なのだが，海外では “Sudoku” の名称のほうが有名である。詳しくは日経サイエンス 2006年9月号「&lt;a href=&#34;https://www.nikkei-science.net/modules/flash/index.php?id=200609_052&#34; target=&#34;_blank&#34;&gt;数独の科学&lt;/a&gt;」を参照のこと。&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;クロスワードパズルは出題者と解答者との間で共通の語彙がなければ絶対に解けない。&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content>
	</entry><entry>
		<title>Kotlin に関する覚え書き</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2016/11/kotlin/" />
		<id>tag:text.Baldanders.info,2016-11-08:/remark/2016/11/kotlin/</id>
		<published>2016-11-08T12:02:26+00:00</published>
		<updated>2026-07-31T07:28:07+00:00</updated>
		<summary>今回は試して遊ぶ余裕がないので本当にただのメモ。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;今回は試して遊ぶ余裕がないので本当にただのメモ。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://kotlinlang.org/&#34; target=&#34;_blank&#34; title=&#34;Kotlin Programming Language&#34;&gt;Kotlin&lt;/a&gt; は IntelliJ IDEA で有名な &lt;a href=&#34;http://www.jetbrains.com/&#34; target=&#34;_blank&#34; title=&#34;JetBrains: Development Tools for Professionals and Teams&#34;&gt;JetBrains&lt;/a&gt; 社が中心となって開発が行われているオブジェクト指向のプログラミング言語だ。
研究用とかではなく明確に産業利用を目的に作られている。&lt;/p&gt;
&lt;p&gt;JavaVM で動作可能なバイトコードを吐くそうで， Android アプリの開発などでもすでに実績があるようだ。
また JavaScript のコードも吐けるらしい。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://kotlinlang.org/&#34; target=&#34;_blank&#34; title=&#34;Kotlin Programming Language&#34;&gt;Kotlin&lt;/a&gt; の特徴の一つは「null 安全（null safety）」であることのようだ。
「null 安全」とは実行時にいわゆる「ぬるぽ（null pointer error or exception）&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;」が発生しない言語仕様になっていることで， &lt;a href=&#34;https://kotlinlang.org/&#34; target=&#34;_blank&#34; title=&#34;Kotlin Programming Language&#34;&gt;Kotlin&lt;/a&gt; の場合はコンパイル時にチェックされる。&lt;/p&gt;
&lt;p&gt;アプリケーションが「ぬるぽ」で落ちるならまだマシなほうで，最悪の場合は重大な脆弱性問題を引き起こす場合もあるため，「null 安全」という考え方は近年とくに注目されている。
そのため今どき流行りの言語では「null 安全」が取り入れられつつあるらしい&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;更に &lt;a href=&#34;https://kotlinlang.org/&#34; target=&#34;_blank&#34; title=&#34;Kotlin Programming Language&#34;&gt;Kotlin&lt;/a&gt; は Java からの置き換えを目論み，かつ言語仕様を拡張させている点も特徴である（Scala や Groovy 由来の機能や糖衣構文もある）。
少なくとも &lt;a href=&#34;https://kotlinlang.org/&#34; target=&#34;_blank&#34; title=&#34;Kotlin Programming Language&#34;&gt;Kotlin&lt;/a&gt; では関数を第一級オブジェクト（first-class object）として扱うことができるのは大きい。
個人的には &lt;a href=&#34;https://text.baldanders.info/remark/2016/07/java/&#34; target=&#34;_blank&#34; title=&#34;Java はやめておけ&#34;&gt;Java は終わってる&lt;/a&gt;と思ってるので，こういうのは大歓迎である。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://sites.google.com/site/tarokotlin/&#34; target=&#34;_blank&#34;&gt;プログラミング言語Kotlin 解説&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://qiita.com/noppefoxwolf/items/b2d93f946f158c7b5852&#34; target=&#34;_blank&#34;&gt;Kotlinを１ヶ月使ってみた - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://blog.satotaichi.info/first-thoughts-of-kotlin/&#34; target=&#34;_blank&#34;&gt;Kotlinに対する雑感&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://qiita.com/koher/items/e4835bd429b88809ab33&#34; target=&#34;_blank&#34;&gt;null安全でない言語は、もはやレガシー言語だ - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;null の英語での発音は「ナル」に近いのだが，どういうわけか日本の IT 界隈ではドイツ語っぽく「ヌル」と呼ぶ人が圧倒的多数のようだ。私もそうだし職場の半径100m以内で「ナル」と呼ぶ人はいない。まぁ私は TTC (Telecommunication Technology Committee) を「てってーしー」と呼んでいた世代だからな（笑） （参考：&lt;a href=&#34;http://qiita.com/ryounagaoka/items/290885ee3291b393fe1f&#34; target=&#34;_blank&#34;&gt;IT業界で横行する恥ずかしい英語発音 - Qiita&lt;/a&gt;：コメントの議論が面白いので是非）&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;ちなみに &lt;a href=&#34;https://golang.org/&#34; target=&#34;_blank&#34; title=&#34;The Go Programming Language&#34;&gt;Go 言語&lt;/a&gt;は全く「null 安全」ではない。「ぬるぽ」を緩和するような仕組みはないこともないが，コンパイラレベルで保証しているわけではない。（参考： &lt;a href=&#34;http://postd.cc/why-go-is-not-good/&#34; target=&#34;_blank&#34;&gt;Go言語がダメな理由 | プログラミング | POSTD&lt;/a&gt;）&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content>
	</entry>
</feed>
