雀巽の日記帳

雀巽が綴る日常の記録

26歳になったから振り返る (主に言語)

とうとう26歳になってしまったので、この辺で今まで触ってきた言語でも振り返ってみようかと思います。

IT 面白いなー、ハッカー最高にかっこいいなー、って思い始めたのが中学生の時だった気がするので、IT に興味を持ってから12年位は経過しちゃってますね。

まだまだ興味があるってことは、きっとこの先も興味があるんじゃないでしょうか。興味があると良いな。

中学生の時は IP とか Port が何か全くわからなかった記憶が……懐かしい。

目次

触ったことがある何か

言語っぽい何かをとりあえず列挙。

  1. Pascal
  2. C
  3. C#
  4. Java
  5. Perl
  6. Ruby
  7. Python
  8. SML
  9. Scala
  10. Haskell
  11. VB.NET
  12. VBA
  13. VBScript
  14. Batch File
  15. JavaScript
  16. HTML
  17. CSS
  18. VHDL
  19. SPIN
  20. アセンブリ
  21. 機械語

後半はもはや何が何だかって感じですね。フロントエンド系は本当に触っただけです。 そしてもはや文法が記憶にない言語がちらほら……。

予想以上に多かったので、適当にグルーピングして振り返ってみます。

初めて触った何か

本当に初めて触った言語は「なでしこ」だったような気がしなくはないですが、おそらく高校3年生のときに買ったプログラミングの本で使われていた言語の C# が、初めて触った言語になる気がします。

バイナリ書き換えたりできるようになるのかな?とかよくわからないことを思っていた記憶もあります。全くできるようになってませんし、そもそも超中途半端でやめてしまいました。

HTML を入れて良いなら、小学生の時になるので、それが一番初めての言語になるかも。

大学で触った何か

ざっと列挙すると以下のような感じ。

  1. Pascal
  2. C
  3. Java
  4. Perl
  5. SML
  6. VHDL
  7. アセンブリ
  8. 機械語
  9. SPIN

前半の言語は普通のだから良いとして、後半が何が何だか感あるので振り返ります。

SML

Standard ML (SML) は、プログラミング言語MLの標準ないし1方言である。

Standard ML - Wikipedia

であり、

ML(えむえる、Meta-Language)は、関数型言語のひとつである。

ML (プログラミング言語) - Wikipedia

ということです。

要は古い関数型言語です。授業を全く聞いてないまま触った結果、意味が全くわからなかった記憶があります。今は関数型言語好きです。

よく覚えてることとしては、気合いで手続き型っぽく書いて提出したら、「君のこれは関数型じゃないね」って言われて突き返されたことです。そのあとどう対応したかは忘れましたが、確かに手続き型っぽく無理やり書いたことだけは憶えています。

VHDL

VHDLは、デジタル回路設計用の、ハードウェア記述言語の一種である。

VHDL - Wikipedia

論理回路を書いたりします。超書きにくくて苦しんだ記憶があります。FPGA ボードとか ブレッドボードと組みあわせて 電子オルゴール作ったり、CPU 作ったりした記憶があります。

アセンブリ

CASLIIで電卓作ったり、電子オルゴールの時に書いたりしました。

「何これなんか超楽しい!」と当時思った記憶があります。 C でポインタとかいじってる時もウッキウキしてた記憶があるので、当時はその辺の低レベルな操作が好きだったんでしょう……。

機械語

CPU 作った時に、CPU の動作確認テストを機械語で書きました。苦しかった。 特に、パイプライン処理を考慮して適切に NOP を挟むのが苦しかった。

最終的に、「課題って動けばいいよね!パイプライン?しーらね!」な感じで常に一定数の NOP を挟むという全く最適化されていないプログラムを作った気がする。ダメなやつだ。

バイナリアンはヤバイと悟った。

SPIN

SPINモデルチェッカ(英: SPIN model checker)は、ソフトウェアのモデル検査のためのツールである。

SPINモデルチェッカ

研究で使ってました。ユースケースに従ってシステムと人間の振る舞いをモデル化して動かしたりしてました。状態爆発との戦い。

大学では以上って感じです。次は SIer 編。

SIer で触った何か

一部大学で触ったものとかぶってます。.batファイル書いたりsnmpNagios の設定したり、今考えると「西暦何年カナ?」と思うようなこともしました。

楽しかったと言えば楽しかった。

  1. Java
  2. C#
  3. VB.NET
  4. VBA
  5. VBScript
  6. Batch File
  7. JavaScript

前半はいいよね。普通すぎて面白くない。

VBA

とある仕事がダルすぎてダルすぎて、自動化したくなって書きました。VBA で頑張って自動化してみたら、とっても幸せになれませた。

VBScript & Batch File

Transact-SQL でデータ移行ツールを書いてる時、どうしても T-SQL のみだと厳しい処理があり、何を思ったかこの2つを組み合わせて移行ツールを作りました。

当時はなぜか自動化したくなったら、VBA とか VBS とか Batch File を書いてました。

JavaScript

社内ハッカソンで書きました。サクラエディタで書きました。フロントエンド力あげたい。

Web 系で触ってる何か

今の会社に入ってから書いてる言語は Ruby です。Ruby on Rails 使ってます。たまに JavaScript にも触れます。

Rubyの言語仕様策定において最も重視しているのはストレスなくプログラミングを楽しむことである (enjoy programming)」

という噂がある通り、とっても書きやすいです。オススメ。

趣味で触ってる何か

趣味で触ってる言語たち。ほとんどが最近始めた言語です。

Haskell

最高にエレガント。みんなも始めよう。以上。

Python

Ruby は純粋なオブジェクト指向って感じですが、こっちは若干関数型寄りなオブジェクト指向な気がします。

もうちょっと Ruby っぽくかけるか、もうちょっと Haskell っぽくかけたら幸せになれそうだなと、触ってて思います。数日しか触ってないですが。

Scala

イカした言語。オブジェクト指向と関数型の統合系。

Java の資産がそのまま引き継げるのも強いし、手続き型っぽく記述できるのも多分強い。

個人的には今後 Java とかの代わりに使われる大規模開発用の言語になってほしいような気もする。こちらもまだ数日しか触っていない。

まとめ的な何か

今一番好きな言語は Haskell です!