8
1

More than 3 years have passed since last update.

Mint という名前のプログラミング言語がありますので、ご紹介します。

公式サイトは、https://www.mint-lang.com/ になります。

ググラビリティめっちゃ低いやんけ

Mint で検索すると、Googleなら葉っぱのミントやLinux Mint、地元のなにかしらの店舗などが上位にヒットします。

そこでmintlangで検索すると、ようやくトップに出てきます。なんでこんな名前にしたのやら。

また Qiita 内では探した限り、「Mint - SPA に特化した言語」という一記事しか見つかりませんでした。

おいおい、出遅れとるやんけ

先の記事は2018年7月に書かれています。2019年12月現在、Mintのバージョンは0.7.0で、まだまだ開発中という状態です。

一年半出遅れていて今さら何を紹介するのかと言ったら、もうちょっと深く掘り下げるしかありませんね。

ざっくり特徴いうたろやないけ

MintLangには以下のような特徴があります。

  • 強い静的型付け言語
  • Mint言語自体がCrystal言語で作られていて、そのためコンパイル速度が爆速
  • mintコマンドにコンパイル、サーバ機能、テストランナー、フォーマッタが全部含まれている
  • ほかにもいろいろ組み込まれている
    • スコープが限定されたCSSスタイリング
    • 状態管理
    • ルーティング
  • 変数はイミュータブル
  • 同期・非同期処理をかんたんに使える
  • すべてが表現(詳細はのちほど)

小ネタを出したろやないけ

ちなみに、先ほどご紹介した公式サイト自体も、Mint言語で記述されています。https://github.com/mint-lang/mint-website

インスコしよやないけ

インストールは簡単です。https://www.mint-lang.com/installから実行バイナリをダウンロードして、適切なPATHに置くだけです。

Windowsでは今のところDockerなりなにがしかの仮想環境で使用することを推奨します。WSLでは、罠があります(後述)。

使こてみよやないけ

initコマンドで、新規プロジェクトを作成します。

mint init my-app

以下のようなファイルが生成されます。

my-app
├── source
│   └── Main.mint
├── tests
│   └── Main.mint
├── .gitignore
└── mint.json

my-appディレクトリ内で、mint startでサーバが起動します。1

言語としてどないやっちゅー話やんけ

mint initで作成されるScaffoldは、以下のようなコードです。

component Main {
  style base {
    font-family: sans;
    font-weight: bold;
    font-size: 50px;

    justify-content: center;
    align-items: center;
    display: flex;
    height: 100vh;
    width: 100vw;
  }

  fun render : Html {
    <div::base>
      "Hello Mint!"
    </div>
  }
}

Styleとタグがひとつのコンポーネントとしてまとまっていることが分かるかと思います。

で、VueとかReactと比べたらどないやねん

いや、それはもちろん色々ライブラリが揃っているという意味でVueやReactの方が現時点では使い勝手や表現の豊富さでは勝っています。

その分、コントリビュートのチャンスはMintの方が余地が残っていると言えます。

Mintの今後にご期待ください!!


  1. WSL上ではサーバが起動しないというKnown Issueがあります。v0.7.1(2019/12/15)時点では、Windows環境の方はDockerかvagrantか、何かしらの仮想環境で実行する必要があります。 

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1