ニートが学ぶプログラミング

ニートの日記。プログラムのことやら、くだらないこと、思ったことをまとめていきます。頑張って毎日更新するぞぉ_(:3」∠)_ 更新が連続して途切れたら察してください。

Kuin言語をいじってみた 【くいなちゃん】

こんにちは、鬱太郎です。今日は新しいプログラミング言語「Kuin」をいじってみたのでそれについてまとめたいと思います。いろいろな言語に手を出すのは大事(飽きっぽいとか言わないで)

注意! アニメキャラなどが登場します。アニメキャラ(いわゆる萌えキャラ)が苦手、生理的に無理な方はブラウザバックを!

Kuin言語とは

公式サイト

プログラミング言語「Kuin」 - Kuina-chan

Twitter

特徴

簡単

  • 2D・3Dグラフィックス描画やサウンド再生などを標準でサポート。
  • 高機能でありながら、余分な複雑さを徹底的に排除したシンプルな設計。
  • プログラムの開発効率を高めるオブジェクト指向言語。
  • ガベージコレクション搭載により、メモリ領域の解放処理が不要。
  • 文字列型、リスト、スタック、キュー、辞書型などを言語レベルでサポート。
  • 2進数が記述可能など、細かな部分まで実用を重視。
  • 他の言語で作成したDLLの呼び出しが可能。
  • そのほか便利な機能はなるべく標準でサポート。
  • 何もプログラムを書かなければ、自動で「Hello, world!」になる。

高速

  • コンパイル速度が極めて速く、1,000行程度のプログラムが0.2秒でコンパイル可能。
  • バーチャルマシンを介さないCPUネイティブの機械語を生成するため、実行速度も速い。
  • 画面描画にはGPUを駆使するため、2D・3Dグラフィックスの描画も高速

2Dや3Dの表示に特化した言語でしょうか?私はUnityやOpenGLといったグラフィックを対象としたプログラミング言語は全くなので楽しみです。GC機能がついてるのはいいですね(さらばmallocよ)。ゲームなどを開発すると 構造体のようなオブジェクト指向もどきをよく使うので、元からオブジェクト指向であるのはゲーム開発などがやりやすいと思います。

GPUを自動で使ってくれるようですね。初心者に優しい(‘ω’)

KuinとQueenが読み方が似てるのもなんかいいですね。高級感あふれる感じです。くいなちゃんが女王蜂でプログラマが働き蜂ということなのかも…

くいなちゃん

最近フォローして知ったもので、彼女?のことについて詳しく知らないです。中の人(開発チーム)が何人かいるらしいです。マスコットキャラですね。

f:id:neet-utsu-taro:20170918125142j:plain

日本特有の擬人化の業

なんでも擬人化する日本人のクリエイターたち… 嫌いな方もいると思います。私はそういう感想はなくやっぱりクレイジーだぜ…(褒め言葉)と感心してます。

戦艦

f:id:neet-utsu-taro:20170918131443j:plainf:id:neet-utsu-taro:20170918131451j:plain

f:id:neet-utsu-taro:20170918131602j:plainf:id:neet-utsu-taro:20170918131615p:plain

プログラミング言語

f:id:neet-utsu-taro:20170918131856p:plainf:id:neet-utsu-taro:20170918125142j:plain

くいなちゃんがKuinの擬人化というわけではなさそうですが、こう見てみると皆さん業が深い!クールジャパンの象徴みたいな感じですね。

世界のプログラミング言語との比較

f:id:neet-utsu-taro:20170918133612p:plainf:id:neet-utsu-taro:20170918133615p:plain

左6つが外国発、右が日本発のプログラミング言語です。世界には数では勝てません(紹介した以上にプログラミング言語があります)がかわいさでは勝っています(ここ重要)

また、日本には参考書もキャラクターを付けて売り出しています。

f:id:neet-utsu-taro:20170918133953p:plain

当時の同級生曰く、「中身はわかりやすくてまとも」と言ってました。彼は恥ずかしくてカバーを外してましたがw

Kuinもそんなとっつきやすい言語なのかなぁと思って触ってみました。

Kuinをインストールしよう!

公式サイトからzipファイルをダウンロードする

公式サイトはプログラミング言語「Kuin」 - Kuina-chanです

f:id:neet-utsu-taro:20170918135421p:plain

ここからダウンロードしましょう。

f:id:neet-utsu-taro:20170918135553p:plain

2.9MB!小さいぞ

zipファイルを展開する

ダウンロードしたzipファイルをお好きな場所に展開!

f:id:neet-utsu-taro:20170918135737p:plain

これでインストールは完了。早い!

実際に動かしてみよう!

フォルダ内にある「kuin」もしくは「kuin.exe」をダブルクリック。

f:id:neet-utsu-taro:20170918140020p:plain

上のような画面が出るときは「実行」を押しましょう。実行すると開発エディタが出現します。右上の「コンパイル&実行」をクリックして実行しちゃいましょう。

f:id:neet-utsu-taro:20170918140406p:plain f:id:neet-utsu-taro:20170918140351p:plain

…おや

f:id:neet-utsu-taro:20170918140556p:plain

ウイルス対策ソフトに引っかかってしまったようですね。私が使用しているavastはしばらく精査した後、ウイルスではないと判断し、コンパイル・実行が再開されました。

f:id:neet-utsu-taro:20170918140607p:plain

ウイルス対策ソフトに引っかかってしまいましたが、無事成功しました。

リリースビルドをしてみよう

Kuinは右側にあるリーリスビルドボタンからリリースファイルを自動生成してくれます!いぇい!

しかもzip形式にまでしてくれてとても親切です。早速ビルドファイルを作ってみたので良ければダウンロードして、実行してみてください。(ただHelloWorldと表示されるだけですが)

goo.gl

ウイルス対策ソフトに引っかかるかも(´;ω;`)

avastの監視対象から除外しておこう

毎回プログラムを精査されてしまったら、せっかくのコンパイルや実行速度が速いというKuinの利点を失うことになります。そこで、ウイルス対策ソフトの監視対象から除外しましょう。自己責任です

avastの設定画面を開き、「一般」→「スキャンから除外」を選択し、

C:\Users\user_name\AppData\Roaming\Kuin

を選択しましょう。スクショのようになってればOKです。

f:id:neet-utsu-taro:20170918142358p:plain

kuin.exeの場所ではなく、プログラムがexeファイルを生成するtmpフォルダを含む場所を除外しないといけません。それが、

C:\Users\user_name\AppData\Roaming\Kuin

です。

私はAvastを使用しているのでAvastの対策方法を紹介しましたが、別のウイルス対策ソフトを使われている方も、上記のパスを同じようにスキャン除外フォルダの項目に追加すればウイルス対策ソフトの監視対象から除外できると思います。

サンプルプログラムを動かしてみよう!

Kuinにはいろんなサンプルプログラムがあるので動かしてみましょう。公式サイトにある100までの素数を表示させるプログラムをコピペしてみました。

func main()
  for i(2, 100)
    var b: bool :: false
  
    for j(2, i - 1)
      if(i % j = 0)
        do b :: true
      end if
    end for
  
    if(!b)
      do cui@print("\{i}\n")
    end if
  end for
end func

f:id:neet-utsu-taro:20170918144959p:plain

フォントや予約語に色がついて見やすいですね。言語はif~endifのように{}を使わないパターンですね。{}を使った言語は、コードが長くなると、その括弧がなんの括弧かを見づらくなってしまうんですよね。統合開発環境のようなリアルタイムでエラーをはいてくれるエディタを使えば問題ないですが、そういうエディタって重いですからね…

話がそれてしまいました。それでは、実行します。

f:id:neet-utsu-taro:20170918145503p:plain

ほげぇ…?あ!

cui@print(...)

ですね!今実行しようとしてるのがgui(ウィンドウ)なのでcuiのライブラリを使おうとしてエラーが出たわけです。ドキュメントを見るとgui用のデバッグ出力メソッドがあるようです。

dbg@print(...)

ですね!これにコードを変更します。そして実行します。

f:id:neet-utsu-taro:20170918145856p:plain

びゅーてぃふぉー

でも出力した数字の行間が気になります。ちょっと修正しましょう。

dbg@print("\{i}\n")

の改行を取ります。

dbg@print("\{i}")

そして実行! f:id:neet-utsu-taro:20170918150059p:plain いいですね!

おそらくdbg@printメソッドそのものに改行要素が含まれているのでしょう。ドキュメントには書かれていませんでしたので謎ですが。

まとめ

Kuinのここがすごいところをまとめてみました。現段階でかつ、プログラマ初心者の私の意見で申し訳ありません。

  • 環境構築が1分で済む
  • 実行確認が1分で済む
  • エディタが軽い上に見やすい
  • エディタのデフォルトの状態で予約語等に色がついている
  • エディタがシンプルでコンパイル実行やビルド作成がしやすい

というところでしょうか?まだ私は深い部分まで使っていないので、開発した結果の使用感はお伝えできません。ごめんなさい(´;ω;`)

あとドキュメントの設計の理由ってとこを見てるとなるほどなって勉強になります。

Kuin is Queen

ケアレスミス確認中に

記事の誤字脱字などを確認しながらプレビュー画面を眺めていたら、こんなものを発見しました。

f:id:neet-utsu-taro:20170918155030p:plain

よく見るとサンプルプログラムをコンパイルする前にエディタがエラーをはいていたんですね。エラー行が赤くなったりするわけではないので最初は気づきませんでした。

リアルタイムで監視してくれてたんですね!

素晴らしい!(‘ω’)

Kuin is Queen!

終わりに

Androidアプリの動画を作ろうと思ったらTwitterのタイムラインにKuinのことが流れてきて、少しはまってしまいました。電卓アプリを作った後、リバーシゲームのAndroidアプリを作ってみようと思っています。その後に、Kuinでリバーシゲームを作れたらなと思います。

ここまでご覧いただき、ありがとうございます。プログラムに興味のない方には申し訳ないと思っていますが、少しでもプログラムに興味を持っていただけたらなと思います。

読者登録ありがとうございます!すごい励みになってます。(人'‘▽`)ありがとう☆

またね(‘ω’)ノ