Blank File

LinuxとかPythonとかVimとか、趣味でいじる感じで

この頃 流行りの 言語たち(他)でベンチマーク (Dart, Go, Julia, Nim, Python, Rust 他)

自分が気になっている、主に最近のプログラミング言語ベンチマークをやってみました。方法は、42番めのフィボナッチ数列の値を計算する時間を測るだけです。フィボナッチで各種言語をベンチマーク - satosystemsの日記 を参考にさせていただきました。

  • 注意
    • 筆者はPythonくらいしか使ったことない素人です

言語紹介

測定した言語は、以下の11種類です。

選択基準は、

  • メジャーっぽい
  • 自分が知っていた
  • 自分が気になった
  • 環境構築が楽だった(or すでに構築済みだった)
  • 怖くない

などです。気分と手間で選びました。

測定条件

上記の言語でフィボナッチ数列の42番目の数を求める時間を測りました。42番目なのはなんとなく全部の言語がまともに測定できる範囲に収まったからです*1

あと、今回はコンパイルが必要な言語はコンパイル時間も測りました。 コンパイル時間もコードを書くときには重要な要素だと思うので、参考にしていただければ。

2015年2月22日 10時16分 追記

Cの最適化オプションを-O3にするとNimよりCの方が速いとのことです。この記事では-O2で実験していました。申し訳ありません。-O3オプション付きでコンパイルすると、NimよりもCの方が若干速くなります。

*1:他にも何通りか試しました。

続きを読む

VimでNim言語を書く設定

VimNimのコードを書くときに、してあると便利な設定を紹介します。

Nimについては、このブログの前の記事を参照して下さい。

他のエディタの設定はここで紹介されています。以下、一部前の記事と重複しますがご容赦ください。

最低限必要なこと

nimrod.vimをインストールして下さい。 これでシンタックスハイライトや自動インデントが有効になり、ジャンプ機能等も使えるようになります。

以降は主に私が使っているプラグイン用の設定です。

続きを読む

Nimの紹介 − Python風静的型付言語 〜コンパイラと型推論を添えて〜

はじめに

Nim (旧称: Nimrod) というVimに似た名称のPython風構文な静的型付言語があります。 先日Twitterで存在を知り、少し触ってみました *1。 書きやすい上に実行速度がとても速く(単純な処理でgo, rustより早くC並)、非常に気に入ったので簡単にインストール方法などを紹介したいと思います。

  • 注意
    • 筆者はPythonくらいしかよくわからないのでPython (version >= 3.0) 基準です
    • 試した環境はUbuntu 14.04 (64bit)です

Nimの特徴

主に公式ページの記述から、主観で特徴を列挙します。

いい感じです。 特徴だけ眺めるとまるでPython風構文のC++ですね! 競合する言語は、有名ドコロだとC++, Rust, Go, Objective-Cなどでしょうか。

日本語の情報は少ないのですが、旧称のNimrodで検索するとブログ記事を書いてくださっている方もいらっしゃいます。 Nimrod Advent Calendar jp: 2011 : ATNDなどもありました。

*1:公式のチュートリアルの前半 ((後半はこちら) と Nim by Example を眺めてみた程度

続きを読む

端末Vimでも半透明背景にしたい、そんなあなたに "Seiya.vim" を贈ります

※ 2015/01/06 色々ひどかったので大幅に書き直しました。

今日はクリスマス・イブですね *1

皆様も色々追い詰められてVimや端末と向き合いながら過ごされていることと胸中お察し申し上げます。

一部では「仕事から開放されなくてツラい」などの怨嗟の声も上がっていましたが、例えば端末で作業する時は背景を半透明にしてデスクトップのステキな壁紙を眺めながらすれば心安らかに作業できますよね。

*1:投稿時には日付が変わってクリスマス当日になってしまいました。メリー・クリスマス!

続きを読む

Pythonと型 〜 Docstring、関数アノテーション、型推論 〜

動的型付言語であえて型を宣言する方式(Type Hinting or Optional Typing)、最近流行ってますね。 言語仕様としては Dart や TypeScript が採用していますし、Pythonでは 開発者のGuido氏が次期バージョン (3.5) での型アノテーションの導入を提案 しています。

Pythonで型アノテーションの導入って結構インパクトありそうですが、国内の情報がほとんどなかったので、実際どんなもんなのか、既存ツールで試せる範囲で試してみました。

続きを読む