大学の同期がブログでプログラミングの使用経験を語っていていいなぁと思ったのでブログに書いてみる。
本当はプログラミングをどのような順序で覚えたかを書いて、誰かの参考になればいいかな、と思っていたが途中で力つきたので今度書く。
以下、言語の列挙。
使っている言語/使ったことのある言語
TeXとかHTML/CSSとかSQLのようにプログラミングっぽくない言語は割愛。
- ActionScript3
- Adobe Flex改めAdobe Flash Builderで使用。すぐに見栄えのするアプリケーションが書けるのでとても楽しい。初心者にプログラミングを覚えたいと相談されたらこの言語をオススメしている。Adobe AIRを使えばデスクトップアプリケーションも作れる。iOSのFlash非対応によりお先真っ暗かと思いきや、コンバータをAdobeが作ったりして意外と未来は明るいかもしれないと楽観視している。
- Arduino
- 少しコードを書くだけでハードウェアが動くという事象を目の当たりにした時の衝撃は忘れない。
- BASIC(QBASIC)
- Windows98SEのCD-ROMに付属していたのを発見して遊んでいた。ちょっとしたゲームとかがすぐに作れて楽しかった。重厚長大なプログラムを書くのは苦痛だし、行番号の管理がとても面倒だったが、シンプルさ故にプログラミングをやる楽しさというものがよく分かった。
- C/C++
- 大学の授業でしか取り扱ったことがない。Cの存在を初めて知った時は「(世界に挨拶して何が楽しいんだろう)」と思っていたが、大量に蓄積された先人のノウハウとライブラリを組み合わせることで強力なソフトウェアを作れることを知ってからはC++を使える人を羨望の眼差しで見ている。大学の授業でopenFrameworksを扱ってからは抵抗感がなくなった。初心者が「C言語やったことあります」と言う度に「(ハローワールドの何が面白かったんだろう)」と思っている。訊いてみると案の定ハローワールドしかやっていなかったりする。
- C#
- 一番好きな言語かもしれない。VisualStudioはよくできているし、デリゲートとかイベント駆動とか「これがやりたい!」っていうことが大抵できる印象。Windows以外でも.NET環境がまともに使えるようになってくれたら嬉しいのにな、と思っている。今開発中の最新版AKI黒板はXNAで開発している。
- HSP
- 一時期こればかり使っていた。とにかく簡単。書けば動く。ちょっとしたツールを作ったり、簡単なミニゲームをつくるにはうってつけ。標準添付のデモの音楽にワクワクする。HMMMMLがHSPで出来ていることを知り、衝撃を受けた。
- Java
- iアプリ開発と、auがBREWを始める前までのJavaアプリ開発と、授業で扱った程度。今は改善されているかもしれないけれど、JavaAppletの重さやAwtとかSwingのダサさが頭にこびりついているようで、あまり好きになれない。
- JavaScript
- prototype.jsと組み合わせてちょこちょこっとWebページに動きを持たせる程度のことしかやっていない。驚異的に使いこなす人を見るとびびる。
- LISP
- Common Lispを大学の授業で扱った。未踏のPMが竹内先生だったのに、LISPの真理を見ぬまま大学学部を卒業してしまった…。基本的にCUIが好きではないので、LISPでCUIプロンプトにアニメーションを表示したりして遊んでいた。
- MEL
- 大学の授業で扱った。IDEが使いづらくて、できることなら二度と触りたくないという印象。
- Objective-C
- iPhoneアプリの開発用言語として使用。メモリ管理の面倒臭さとメッセージを送るというSmalltalk的な言語構造があまり好きになれない。しかし今もっとも使う時間の長い言語かもしれない。最近ちょっと好きになってきた。
- Object Pascal
- Delphi6を使っていた。当時最も好きで使用頻度が高かった。akiroom.comで公開しているフリーウェアの多くがDelphi6によって作られている。
- Perl
- 掲示板を設置した、とかを除けば、大学の授業でしか扱っていないような気がする。記号が煩雑なイメージがあってあまり好きではない。
- PHP
- 一時期サーバーサイドアプリケーションは全部これで書いていた。しかし、大学の研究会でymrlと一緒になってからは、彼が暇さえあればPHPをdisるのであまり使わなくなった。正直Smartyとかもっと覚えておきたいと思っている。
- Processing
- 大学の授業で知った。超簡単。これでプログラミングができなかったらもう諦めた方がいいんじゃないかというぐらい簡単。初心者に最も強く勧めている。
- Python
- Google App Engineを通じて利用。下の方にいくにつれタブが長くなって画面がスカスカになるのであまり好きではない。もっとも、そんなに長いインデントが必要なコードを書いている時点で何かがおかしい。
- RGSS
- RPGツクールXP及びVXに搭載されているRubyのエンジン。RPGツクールが好きなのであえて分けて書く。一時期「スクリプト素材」としてakiroom.comでコードの一部を配布をしていたが、他のサイトの方が綺麗なコードだったので取り下げた。大学入学後、グルワで知り合ったmocchiccに「スクリプト素材配ってた時のサイト知ってます」と言われた時の感動は忘れない。
- Ruby
- 大学の同期が異常にすすめてくるので使い始めた言語。色々書き方があり過ぎてあまり好きではなかった。増井先生にSinatraを勧められて、使ってみたらとても簡単なので最近好きになった。
- Smalltalk
- このリストの中で最難関じゃないかと思っている。四則演算すらレシーバにメッセージを送信して計算するという設計には恐怖した。できれば残りの人生で触れたくない言語。
- Squeak
- Smalltalkが言語の難しさで苦手なのに対して、Squeakは操作の難しさで苦手。すべてマウスで操作しなければならないのにまるで直感的ではなくやりたいことがすぐにできない。使うのも教えるのもしんどかった覚えしかない。
- Squirrel
- ゲーム会社でインターン中、習得した言語。iOSで動くゲームをつくるのにemo frameworkを使うために覚えた。言語仕様はわりと好きだったが、Xcodeの入力補完が使えなかったりブレークポイントが設定できなかったりで使っていて少しだけしんどかった。
- VBScript
- MsgBoxで占いとか迷路とか作って遊んでいた。メモ帳さえあれば当時の大抵のWindows環境で動いたのが面白かった。
- Visual Basic
- 初めて触った言語。すべての原点。
どのような順序でプログラミングを覚えたかについてはまたの機会に。冷静に考えたらきっかけについて一言も述べていない…。