jtwp470’s blog

日記とかプヨグヤミングとか

興味のある(または触ったことのある)プログラミング言語と自分の経験から言えるプログラミング初心者向けの言語

プログラミングも高校生の頃からと考えると3年くらいになったけどまったくやっていない期間(高3のときなど)もあるしほとんどわかっていなかった.今こそ情報系学徒になったためいろんなプログラミング言語を知るようになって自分自身で触ってみたいプログラミング言語が出てきたのでそこら辺をまとめたよっていうあれ.誰得なんだろw

触ったことのある系の言語

C言語

初めて触った言語.最初の頃はプログラミングで作れるものはすべてGUIだと思っていたからすごい残念な思い出しか残ってない.けれどもC言語の文法の基礎

  • if, else if else などの条件分岐
  • for, while などによる繰り返し処理
  • 配列
  • 定数宣言(int hoge)
  • 関数処理

などは非常に他の言語を使うにあたりわかりやすい.ただやっぱり初心者にはポインタの概念はわからない.計算機の理解ができないとつらぽよなやつ.あとエラーがすべてセグフォでどうしてエラーが起きているのかわからないことも辛い要因かなぁ.

しかしいろいろやってくると結構楽しい言語.レイヤの上の方から下の方までやろうと思えば何でもできるやつ.試しにgcc -Sとかでアセンブリ言語にしてみると面白いかも.

Java

Java logo

うん.Java.僕はC言語をやったあとにすぐJavaに移った.理由は単純に家に独習Javaなる怪しい本があったから.あとはSwingを使うとGUIアプリ書くのが楽だと聞いたから.(大嘘)正直GUI書くのにJavaは非常に辛かった.今はJava FXとかあって楽そう.

Javaやってよかったのはオブジェクト指向(クラスとかね)を結構理解できたことかな.C言語じゃこの考え方は使えないし,まぁそもそもJavaだと強制的にクラス作んないといけないんだけど.

あとC言語と比べてJava氏のいいところは色々ライブラリが揃ってることやポインタを考えなくてもいいこととかかなぁ.でもCと同じくぬるぽが出まくるのは玉に瑕.

Python

大学入ってから触った言語.スクリプト言語を触ってみたくなって候補としてあげたのがPython, Ruby, Perl. Rubyは日本語文献揃ってていいんだけどやっぱり欧米の主流はPythonだしGoogleでもPythonが採用されてるしなんて理由でPython選んだ.まぁ選んで後悔したのはやっぱりPython 2と3の壁.今のところPython 3をやってるけど日本語文献も英語文献もやり方がPython2準拠だったりしてつらぽよ感でてる.

でもPython氏結構便利.しかもいろいろ標準ライブラリに揃ってて自分で作んなくとも数行で処理できるみたいな.神かな.問題は通常のPythonが3じゃなくて2.やっぱりバージョンの差異が辛い

ちなみに面白そうなPythonのパッケージ.

  • NumPy 数値計算ライブラリ.自分でも計算系は興味があるので一度は使ってできるならマスターしたい.
  • SciPy 数値計算ライブラリ
  • Matplotlib MATLABっぽい記法で図を書く. こやつNumPyと組み合わせると面白そう.

あとPython系の面白そうなことといえばPyPy.JITコンパイルなのにPure Pythonより早いとか何奴なの.技術系をきちんと勉強したい.

PythonC/C++言語と連携もできるのでそこらも面白そう

MATLAB

そういえばあったなぁ.こんなやつ. MATLAB高すぎるし個人で持っててもアレなんだけど計算機科学の世界ではよく使うアプリらしく知っとくといいよって教授言ってた.授業で触ったけどMATLAB自体はたしかにすごいがそこで使えるスクリプトみたいな奴がゴミすぎた.どれだけゴミかというと

  • 関数を作成するとその関数だけどのファイルを作らなければならないこと.
  • 変数にベクトルとスカラー型が用意されており使い方によっては糞遅くなる
  • 配列の使い勝手が悪すぎ
  • オブジェクト指向で書けない.
  • エラーメッセージが酷い.(1行とかでそれでエラーを探さなきゃならなくなったりする)
  • 配列の初期値が1から始まる件.(CやJavaでは通常0から) なおこれに関してはWikipediaMATLAB #批判にも書かれている

こう思うとやっぱりPythonで頑張りたいよねぇ.正直2度とこんなわけわからんMATLABスクリプト言語触りたくないんだが秋も触ることが決定しました!! うひょいwww

Verilog

論理システムなる授業で使うことになったやつ.これで回路を書いてFPGAなどでは論理合成できるらしい.教授曰く「C言語に似てる」.感想としてはC言語に似てない.何やってるかわからない.もう2度と触らない.

触ったことがあるけどプログラミング言語とよんでいいのかあやしい奴ら

LaTeX

理系のレポートを書くときに重宝する.これを使えるようになればMicro$oft Officeに投資する必要がなくなり更に綺麗なレポートが作成可能.特に数式関連が非常に綺麗.化学科系の人も拡張を入れれば感情の炭化水素とか書けて便利そう .ただ表を書くときは一苦労する.

Bash/Shell Script

シェルスクリプト離れておくと面倒くさいルーチンワーク的な作業をまとめることができて便利.GNU/Linux使いは9割型ターミナルに棲みついているだろうからぜひ覚えよう.

HTML

書くだけならMarkdownのほうが楽だよねっていうあれ.僕は最近はHTML書かない

触ったことはないけど興味あります系

C++

C++は闇. Boostとか色々規格があって大変そうなイメージ.もう一度いうC++は闇

OCaml

大学の授業で秋から使うらしい.初めての関数型プログラミング言語になりそうな予感.正直言うと言語の概要も知らないのでこれから理解していく感じ.

Scala

Twitterが全面Scalaなんだっけ? とりあえずJavaで動く割には結構楽しそうな関数型プログラミング言語.面白そうなんだけどなかなか手を出す機会がなくて放置している.Effective Scalaとか読むと勉強になるのかなあ

Haskell

使えたら強そうな言語っていうイメージ.これさえ使えればなんか一流プログラマな感じがする.そういえばいろんな記法のテキストを変換するpandocとかは純Haskellだったような気がする.

Emacs Lisp

Emacs使いなのにEmacs Lisp使えないorz. 早急に少しでもLisp系言語を覚えたいしできたら自分で何かEmacs Lispでアプリ作りたい.でもEmacs Lispまで使えるようになったらますますEmacsにのめり込んでいく気しかしなくてめっちょこわい

Ruby

Pythonのライバル的なw 日本だとRuby勢がいっぱいでめっちゃ怖い でもRuby系のアプリ

JavaScript, Coffee Script

ウェッブ系には必需品らしい.僕にはよくわからない.でも使えるようになりたい

アセンブラ

機械語.大学の講義で秋から触ることになっている.一応IA-32(x86)のアセンブラを触るらしい.アセンブラ極められれば神になれそうなのでぜひ極めたいけどC++以上の闇しか待っている気がしない

総括:初心者向けのプログラミング言語は?

Pythonかなぁ.動的型付けでいちいち型に関することの煩わしさはないし.CやJavaのようによくわからないエラーメッセージを出すこともなくメッセージがわかりやすい.プログラミングを学ぶというならPythonはあり.ただ文法に関して言えばC言語を模倣している言語が多いので基礎だけはC言語をやると他の言語に移住するときにやりやすいかもしれない.

その他の言語に関してはそれぞれ特性があるので自分がやりたいことに見合った言語を用いるのが良い.