「関数型言語」を含む日記 RSS

はてなキーワード: 関数型言語とは

2012-01-19

Python vs Ruby vs PHP vs HaskellRubyistネクラオタクキモメン」 part2

Python vs Ruby vs PHP vs Haskell プログラミング言語バトル part1

http://anond.hatelabo.jp/20120118220204

441 : デフォルト名無しさん : 2011/12/14(水) 00:34:54.13

Rubyistってなんであんな小学校の図書室で毎日読書してそうな

いじめられっこネクラチビメガネみたいな色黒とかキモオタ

顔面オジサン、オバサンばっかなの?


445 : デフォルト名無しさん : 2011/12/14(水) 00:47:59.11

Javaer: 傲慢プライド高い、土方

Scalaer: 鼻持ちならない、モヒカン

Lisper: マジキチ

Rubyist: ネクラオタクキモメンいじめられっこネクラチビメガネ、色黒、キモオタ、顔面オジサン、オバサン

PHPer: 土方、DQN

Pythonista: イケメンリア充

473 : デフォルト名無しさん : 2011/12/16(金) 22:06:14.45

Python厨のRubyネガキャンは異常だなwww

608 : デフォルト名無しさん : 2011/12/28(水) 09:29:20.74

Rubyブロックが便利すぎて、Pythonをやめたくなった。

いちいちtemporaryな関数作成してから目的関数に渡していたのがばからしくなった。


609 : デフォルト名無しさん : 2011/12/28(水) 09:43:17.83

リストやジェネレータ式の内包表記が便利過ぎて

PythonからRubyには移行できないな

610 : デフォルト名無しさん : 2011/12/28(水) 11:03:14.91

日本人が開発の中枢にいるような言語はやめとけ。

どうせ廃れる。

611 : デフォルト名無しさん : 2011/12/28(水) 11:58:14.38

Pythonさんは、どうしてこう排他的かなぁ

626 : デフォルト名無しさん : 2011/12/28(水) 15:08:51.86

609

リストやジェネレータ式の内包表記が便利過ぎて

おれもそう信じてたけど、Rubyの、メソッド呼び出しを続けて書けるほうが便利だわ。

まるでjQueryみたい。といってもjQueryのほうが後発だけど。

たとえば「xsから0以上のものを選んで、その二乗の和を求める」場合

sum([ x*x for x in xs if x > 0 ])

これだと、後ろから読まないといけないんだよね。でも

xs.select{|x| x > 0}.map{|x| x*x }.sum

これなら頭からひとつずつ読めばいいから、わかりやすいし、考えたとおりに書きやすい。

まさにスクリプトって感じがする。

629 : デフォルト名無しさん : 2011/12/28(水) 15:55:19.77

Rubyメソッドチェーンって内包表記より弱いと思う

ネストするmapとかflattenとかわかりくいよ

Python: [[x,y] for x in xs for y in xs]

Ruby: xs.map{|x| xs.map{|y| [x,y] } }.flatten(1)


632 : デフォルト名無しさん : 2011/12/28(水) 17:25:29.75

いっぽうメソッドチェーンは

orz.sage().hage().hoge().hige() タイプの問題には向いている

まり向いている方向がちがう

(まあHaskellなら hige . hoge . hage . sage と書くだけだというのは置いといて)

強い弱いということで言うと、問題を解くのに必要な一番能力が弱い

(限定された)道具を使うという考え方があるようだよ

ベタ再帰は強い(汎用的)、がそれゆえ読むのに注意を必要とする

foldrは再帰よりは弱いが、foldrで表現可能な問題のクラス(原始再帰)はかなり

広いので、mapやfilterで済むならもちろんそのほうが望ましい

ではこの問題は弱いmapやfilterを結合させるほうがいいかというと、

俺はlist comprehensionのほうが集合表記そのもの=whatを表現していて好きだな

Pythonのlist comprehensionのsyntaxはあまり好きではないが

それは大きな問題じゃない

640 : デフォルト名無しさん : 2011/12/28(水) 19:56:09.23

メソッドチェーンってバグをわかりにくくするだけだと思うなあ。もちろん性能面もあるし。linqとかは良いと思うけど。

642 : デフォルト名無しさん : 2011/12/28(水) 20:28:45.92

同じメソッドチェーンでも、linqなら良いけどrubyなら悪い .....

一言で言うと「俺はRubyが大嫌いなんだぁーー」ということですな

663 : デフォルト名無しさん : 2011/12/28(水) 22:45:30.53

メソッドチェインなんてライブラリ設計次第でどうにでもなる

PythonどころかJavaでもできる

内包表記は構文でサポートしないと難しい(マクロがあれば別だが)


680 : デフォルト名無しさん : 2011/12/29(木) 00:07:41.77

メソッドチェーンが関数型の方法に比べて特に優れている点があるようには思えないが

パイプ順に書きたければ書けるし


682 : デフォルト名無しさん : 2011/12/29(木) 00:30:35.72

680,663

Pythonには関数型として致命的な弱点があるからメソッドチェーンでは簡潔なコードが書けない

たとえば「(1) Rubyは 条件判定が(文ではなく)式」だから以下のようなコードが書ける

 ys = xs.select { |x|

   if test

     if test_1 then test_1_1 else test_1_2 end

   else

     if test_2 then test_2_1 else test_2_2 end

   end

 }

あるいは「(2) Rubyブロック内で局所宣言が可能」だから上のコードを以下のように書き換えてもいい

 ys = xs.select { |x|

   cond_1 = if test_1 then test_1_1 else test_1_2 end

   cond_2 = if test_2 then test_2_1 else test_2_2 end

   if test then cond_1 else cond_2 end

 }

関数型言語であれば「(1) 条件判定(if/case)が式」で「(2) 局所宣言(let .. in .. end)が可能」なの当たり前

ところが残念な事に、どちらもPythonには欠落しているから、上の例はストレートコード化できない

からPythonではメソッドチェーンは使われないし、「酸っぱい葡萄」に見える

684 : デフォルト名無しさん : 2011/12/29(木) 00:37:06.68

Rubyでもリスト内包表記が言語として組み込まれてくれると嬉しい

リスト内包表記はトップダウン思考

メソッドチェーンはボトムアップ思考

だと思う

頭に浮かんだロジックをすばやくコード化するのはメソッドチェーンが適しているし、

じっくり腰を据えてコード設計するならリスト内包表記のほうが美しい

自分は、たぶんこのスレRubyコアの中の人も見ているだろうから

そのうちRubyにもリスト内包表記が実装されるんじゃないかと期待しているw

766 : デフォルト名無しさん : 2011/12/30(金) 10:04:41.40

メソッドチェーンは書き易い

内包表記は見た目が整ってて綺麗、最終的な型がわかり易い

いじょ。

2011-09-05

http://anond.hatelabo.jp/20110905162132

まぁそれを言い出したらIT関連のあらゆる技術の基礎知識を網羅してない限り突っ込めることになるな。

元増田はそれを満たしてるんだろうか。フリップフロップ回路が分かってるのかとか、関数型言語数学的基礎が分かってるのかとか。

2011-08-24

http://anond.hatelabo.jp/20110823201509

これからHTML5投資するか、このままFlash投資し続けるか、だよ問題は。

なぜ両方使うという選択肢がない。真の技術者ウェブ標準だろうがFlashだろうがネイティブだろうが、その場その場でユーザーの体験を最善にし、クライアントの要求を最高に満たすベスト技術を使う。JavaScriptFlashかなんて動きさえすればユーザーには関係ないんだから。実際、HTML5スゲEEEEE!!!ってページにFlashタグブクマが間違ってつけられたりしてるよ?(笑) ウェブ標準の崇高さなんてパンピーにはわからんです

そもそも分からないんだけど、HTML5が「投資」するほどたいしたもの? 誰もが基礎教養として身につけているはずの、これまでのHTMLCSSJavaScriptの延長線上の技術でしょ。今まで普通にやってきたウェブ開発者ならすぐにキャッチアップできるはずだよ。

どうせHTML5の実装の普及には当分かかるし、その時点のブラウザ環境で使用可能なものゆっくりまったりと導入していけばいいだけ。その意味はいわゆる遅延評価学習で十分。あわてることはないです。どうせ皆使うことになるんだから

一応言っておくと、いいものだと思いますよ、HTML5は。現段階で頑張って凝ったものを動かしておられるイノベーターの方々もたいしたものだと思います。敬意を。マリオやらグラディウスやらは著作権的にどーなのかと突っ込みたいが。

Appleスマホ市場で落ちぶれることを祈らないとね。

それはシナリオひとつですよね。Google甲斐性次第では十分にあり得る。それと、ジョブズが翻意するというシナリオもありますよ。今までに散々あったことですが。どこかでそれをネタにしている記事があったと思いますが。

AdobeですFlashに見切りをつけ始めてるけどね。

もしEdgeを見てそう思ったのなら、Flash CSを使って制作したことがありますか? Edgeを実際に使ってみましたか? と問いたい。

他にも、最低でも、

これらにきちんと答えられない人間HTML5 vs Flashなど語る資格はないです。そもそも対立させる時点でわかってないなー ┐(´д`)┌ って感じなのだけど。

あとFlashへの投資無駄になると思ってるようですが、俺はFlash投資判断「Buy」継続だと見てますよ。たとえこのままiOSで動かずともね。AIRもあるし、ブラウザプラグインとしてのFlashだけ見ていると考えを誤るよ。ブラウザのほうにしても、GPUアクセラレーションつきの3Dが真っ先に使用可能になるのはFlashプレイヤーの普及が速いから、WebGLと異なり、今後1~2年内に実案件で使用可能になるでしょう。そういった面ではなおカッティングエッジ技術だよ。

まあ、プラットフォーム言語の選択は投機から、どの銘柄が買いか売りかで紛糾するのはわかる。ただ、それなら分散投資だとか、インデックス投資という考え方もあるのでね。HTML5に惚れ込んで一点買いなんて若いエンジニアがいたら、それはもう相当危なっかしいなと、視野も相当狭くなるだろうなと危惧するよ。

というか、JavaだろうがC++だろうがObjective-CだろうがLLだろうがアセンブリ言語だろうが関数型言語だろうが、一度全部触ってみなよ。いいから。HTML5で手一杯なんてのでは話にならんですよ。

あと言いたいんだけど、Flashエンジニアも皆もうちょっと落ちつけ。

2011-04-08

Javaを使ったプログラミング言語

最近Scala信者が増えたが、ScalaGroovyClojure仕事している人はいるのだろうか?

Java比較してライブラリが増えるわけでもなく、応用分野が増えるわけでもなく、良さが理解できない。

検索順位 人気順 言語 登場年 特徴
1位 95位 Scala 2003年 Java関数型言語の特徴を組み込んだ。
2位 71位 Groovy 2003年 Javaより少ない記述量が特徴。
3位 - Jython 1997年 Python 2系のポーティング
4位 - JRuby 2001年 Rubyポーティング
5位 - Clojure 2007年 Lisp方言、つまり関数型言語
6位 75位 JavaFX Script 2008年 JavaFXを残して廃棄処分。

2011-03-16

http://anond.hatelabo.jp/20110316193534

ソフトウェア工学は低レイヤほど「偉い」。上位レイヤ数学っぽい分野もあるから微妙ではあるけど。

そんなことないだろ。教育現場で人気があるのってまさに「上位レイヤ数学っぽい分野」じゃね?

最近はIT業界でも関数型言語とか人気出てきてるからますますその傾向が。

2011-02-09

http://anond.hatelabo.jp/20110209221517

よく知らんけど、単に関数が1級オブジェクトかどうかの違いってことじゃないの?

要するに関数型言語なのかそうじゃないのかの違い。

なんで全部関数型にならなかったのかはもっとわからないけど、やっぱ組織立ってでかいシステム作るには手続き型のオブジェクト指向言語の方が何かとやりやすかったんじゃないかなあ。

2011-01-16

http://anond.hatelabo.jp/20110115234607

コンピュータがコアスキルってのもよしあしで、コンピュータってのは合理化の権化なので、自分達で自分達の仕事をどんどん減らすのが良い技術者なんですよ。行き着く先は市場飽和だとわかってて、それでもやるの?って話なわけですが…。

# いや、好きだからいいんですけどね。

別のコンピテンシがありながら、道具としてコンピュータを使いこなす方は尊敬します。数学的な抽象モデルの取り扱いが得意なら、周りを説得してScalaとかErlangとかの関数型言語に走るとか、RとかMATLABとかの専用言語に走るとかしたほうが、むしろ差別化は容易かもしれません。

はいえ、仕事となるとなかなかそうも行かないんですけどね。

2011-01-15

http://anond.hatelabo.jp/20110115231251

仰る通り、ハードウェアアーキテクチャについては知らないですね(スタックやヒープがどうとかは表面上わかりますが)。

というのはズバリそこが非常に嫌い(肌に合わない)で、意図的に避けてるからです…。アセンブラの本とかも持ってますが、どうにも読めないですね…。

当然Cは嫌いです…。C++がギリで、できればRやpythonレベル抽象度で全部済ませたいです。が、さっきも書いたようにちょっと踏み込むとすぐ低レベルの話が出てきますね…。

最近GPUだの並列化だのを使いこなさないと生きていけない感じですし。

関数型言語くらい抽象化して数学っぽい雰囲気になってると個人的には嬉しいですねw

ともあれ、パタヘネくらいは買って読みたいと思います…。

コアスキルとのバランスが難しいですが、時代はコンピュータなので。

コンピュータがコアスキルの人は本当羨ましいです

2010-08-15

http://anond.hatelabo.jp/20100815181858

Schemeなら少しはわかる。SICP読んでるからね。あとPython関数型だよね。背景的には。

関数型言語は確かに良いね。関数が1級オブジェクトだからメンドクサイこと考えなくても比較的直感的に書ける。

でも実用的なでかいプログラム書こうと思ったら参照透明性とか言ってらんないと思うし、

それはそれで何たらハックみたいな細かい(めんどくさい)テクニックが必要になると思う。

ほんとめんどくせーわ。コード書くの。

http://anond.hatelabo.jp/20100815181536

Haskell でやってろ



・・・

真面目に関数型言語やったら楽しいのでは。

2010-07-28

http://anond.hatelabo.jp/20100728215904

それがSTLの本来の使い方。

変数宣言すると名前覚えたりするの面倒なんだよ。そっちの方が楽だし、OCamlやFSharpみたいな関数型言語に慣れたら一時変数苦痛でしかない。

2010-07-27

もしもプログラミング言語アイドルグループだったら

もしもプログラミング言語アイドルグループだったら

誇張や事実と異なる表現がございます。ネタとしてお読みください。

特に関数型言語は全く触ったことが無いため誤っている可能性があることをご了承下さい。

while(i<10000)++i;


COBOL バブル時代に銀行CMにも出演したことがあるが現在はほぼ引退している。
BASIC 一時期は誰もが知っている国民アイドルだったが、現在はほぼ引退している。しかし昔からの根強いファンによって現在も一部で活躍中。
FORTRAN インテリ層に大人気のアイドルグループ
Brainfuck アイドル定義を逆手に取った誰も得をしない名ばかりアイドル
PERL もともとは活字メディアでの活動を主軸にと結成されたが、現在ネットで活動することが多い。
RUBY PERLを真似た純国産アイドルグループ。こちらも最近ネットでの活動が多い。
C 今も現役で活躍する言わずと知れた国民アイドル。しかし最近JAVAなど後進のアイドルたちに仕事を奪われつつある。
C++ Cのメンバーに加え、あらゆる属性女の子を集めた超大型アイドルグループ。しかしあまりにマニアックなため、一部のファン以外はついて行けていない。
JAVA C++の失敗を反省し一部のマニアック属性を削った正統派アイドルグループ初心者JAVAから入ることを進められる。
C# まっくろ社がJAVAパクリユニットとして一度デビューさせたが太陽社に訴えられたため名称を変えた。しかし後進だけあり、女の子の質は高いと好評。
GO 新進気鋭のぐぐるからデビューした新人アイドルデビュー時は大きな注目を集めたがその後は期待ほど売れていない。
D 他のアイドル達のいいとこ取りをした最強ユニットのはずが、未だメジャーになりきれないマイナーアイドル
Objective-C Cに新たなメンバーを加えたユニット。しかしC++ほどメジャーになれずそのまま消えるかと思われたが、出演した林檎の映画が大ヒットし延命した。
JAVA SCRIPT 身近がモットーのネットアイドル。あなたも気付いていないだけで、いろいろなところでお世話になっています。
PHP ネットアイドルとしてデビュー、物珍しさも手伝って人気になったが、女の子が明らかに寄せ集めと批判も多い。
LISP 81が新人声優を売り込むために作ったスフィアパクリユニットおっぱいが大きい。

2010-07-26

http://anond.hatelabo.jp/20100726181636

確かに関数型言語勉強になると思う。

俺はSICPをほんの少し齧ってSchemeを知ったレベルだけど、それだけでも勉強になったと感じるね。

http://anond.hatelabo.jp/20100726172737

C#趣味というか私生活で必用な時にしか使ってないです。他の方の意見を聞いたほうがいいと思う。趣味でやってる感想としては、まず過去のどろどろがないのがいい。標準ライブラリだけで殆ど足りちゃうのも初心者にありがたい。あたらめて考えてみると初心者に対する敷居は低いなあ。

作りたいものが明確なら結果への近道になる言語なのは確かなんですけど、プログラミングで何をしたらいいかわからないからプログラミング言語を知りたいという段階の人には薦めにくいかなあ。前記事で Python 薦めたのは元増田さんがそういう段階だからです。


関数型言語趣味レベルでしかやってないです。関数型言語とは違うけど SQL仕事で毎日使ってる。むかーし Haskell ぶんなげて、SQL 使ってたらなんかひらめきがきて、それから結構わかるようになった。(ようなきがする)関数型言語って独特の脳汁でるんだよね・・・難しい SQL 弄ってるときも同じ脳汁が出る。関数型っぽい脳みその使い方は他の関数型じゃない言語でもできるし気持ちいい。関数型言語自体は触った時間短いけど、ああいう脳みその使い方はすごく武器になると思います。

http://anond.hatelabo.jp/20100726172331

いわゆる関数型言語ScalaProcessingC#の評価も欲しいです

クレクレ厨氏ねとか言わないでください

2010-07-25

プログラミングを身に付けるには

http://anond.hatelabo.jp/20100725025127

"どうすればいいか"を教わって、プログラミングが身につく人は多くありません。"なにをやりたいのか"を自分で生み出せないと、詰まってしまうし、なにより楽しくありません。

やりたいことがあれば手段は後からついてきます。これは物作り全般に言えることです特に学び始めにおいてモチベーションを維持し勢いをつけるのに大事なのは"やりたいことがあるか"、もっと具体的に言うなら"作りたいものは何か"です。これがないと始まりません。それがどうしてもないなら、そういう状況に自分を追い込むのも有効です仕事でどうしてもやり遂げなければならない状況に追い込まれれば人間 0 からでも身につきます。実際自分がそうでした。

とかく、プログラミングというのは手段さえ知れば、あとはだれがやっても同じ結果が出る生産業だと誤解されがちです。そういう認識で学ぼうとしても楽しくありませんし、本質を掴みにくいので応用が利かなく上達しにくいです

本質は絵や音楽と同じです言語を覚えるということは道具の使い方を覚えることでしかありません。音楽理論や絵筆の使い方を知っているだけで、すぐに素晴らしい音楽や絵ができるでしょうか。殆どの人がそうは思わないはずですプログラミングもそれと同じです。作りたいものがある人が圧倒的に強いのです

また、やりたい分野によって向いている言語は違います

んー、ここまで読んでも「やりたいことはないけどとりあえず勉強したい」というなら、すぐに動くものをつくりやすい言語お勧めかなあ。

Google App EnginePython をやるとか。 Python のいいところは、明快で作法にあまり迷わなくていいところです自分がまったく言語やったことない知り合いにすすめるとしたらこれ。

レガシーではないちゃんとした JavaScript (http://www.crockford.com/javascript/ この辺にあるような) もいいですブラウザですぐ動きますし、 Firefox 環境なら本格的なデバッガまでありますJavaScript は非常に誤解の多い言語ですが、悪いものではありません。 お手軽にグラフィカルなものを扱える、結果がわかりやすいので初心者向けです。それでいて、拡張性が高く、プログラミングに必要な概念ロジック殆ど再現できる底力も秘めています

Perlレガシー作法がいまだに見受けられる (Perl って CGI のことでしょ的な解説が未だにある) のですが、初めから strict に慣れて、 CPAN にあるようなスタイルを参考にして、初めから OOP に突っ走るなら今からやってもいい言語ですCPAN 等のリソース豊富さとコミュニティの広さが強いです。ただ、懐の広さ、できることの多さゆえに初心者向きではないところもあります

PHPお勧めしません。理由は適当検索してください。 PHP5 でかなり良くなりましたが、逆に言えば 4 と 5 では別言語と言っても良いほどです。古い考え方と新しいスタイルがごったになりすぎていて、かつて同じような状況にあった Perl に比べても、洗練されたスタイルを学びにくいと思います。また、ロジック面白さに感動するような部分が PHP にはちょっと足りないです

MMORPG やそのエミュレーターの中には、 Lua を使って AIマクロイベントスクリプトなどを組めるものがあります。すぐに結果が出て自分の役に立つものが作れるので、既にその手のゲーム趣味ならお勧めです。こうした用途では、自分の望む世界を構築するために嫌でも物事をモデル化して考えるので、自然OOP 的な考え方やデザインパターンが身につきます

VB は簡単に GUI アプリケーションが作れるのでやる人が多いですが、癖が強いし応用がききにくいのでお勧めしません。また、公開されているソースコードが少ないことも学ぶには不便です

Ruby はそれほどやりこんでないのでコメントはしないでおきますが、悪くはないと思います

C++ は何をすればいいのか?を聞いてる人にはすすめにくいです。作りたいものが明確にあり、ロジックを見つけることで応用が利く人ならほっといても覚えるでしょう。自分は、必要に迫られて身につきましたが・・・

個人的には、作りたいものがあってそれにマッチしてるなら、関数型言語最初にやったっていいと思います。一度ロジックを掴み取る能力がついてしまえば、第二第三の言語は猛スピードで身につくので。

人に見せて使わせてレスポンスをもらうことが大事

作ったものを公開して、人に見せたり使わせたりして、レスポンスを得るというのはモチベーションの維持や上達に非常に有効です。むしろ、早く上達したいなら必須と言ってもよいですプログラミング場合はこれがおざなりにされがちです

絵を上達したいなら、 pixiv を薦められますよね。今下手かどうかは関係ない。上手くなりたい人が沢山投稿してる。歌が上手くなりたいなら、人前で歌う事は避けられない。ニコニコ動画などで公開してる人がいるよね。人の作品をみると刺激をうける。これはすごいパワーだってのはわかると思う。

プログラミングだって全く同じです。なのに、プログラミングは引きこもって一人で勉強する人が多すぎる。絵や歌は公開しても人に害を与えないけど、プログラミングバグセキュリティホールがあったら人に害をあたえるかもしれない、といった印象が強いのかもしれません。

それでも、もっとコミュニティに参加したり、作ったものを公開することが学び始めのうちから重視されていいのは事実。そういった面から考えると、バグセキュリティホールが出来にくく、安全で、危険な動作がしようもない実行環境があり、加えて Web に公開しやすい言語が学びはじめに向いています

こちらも参考にしてみて下さい

http://d.hatena.ne.jp/Hamachiya2/20090721

http://d.hatena.ne.jp/Hamachiya2/20080131

学校に行く必用があるのか

学校に行けば一人で学ぶよりは後押しや出会いがあるかもしれませんが、”やりたいこと””必用なこと””作りたいもの”が無い限り、殆どの人は身につきません。

また、残念なことに講師にも大変当たり外れが多いです自分専門学校にいったことはありませんが、講師の知り合いがいるのでよく学生さんの話を聞きます。結局の所、しっかり身につく人は、家に帰っても色々作りたいものを作って公開したり、著名なプログラマ達のブログを読みまくったり、フォーラムに出入りしたり、ML に入ってたり、 twitter で刺激的な知り合いをつくるとかしていて、そういうところでめっちゃ差がつきます

学校に行くなとまでは言いませんが、学校いかないで身に付ける人は本当に多いし、学校いって身につかない人も本当に多いということは考えて下さい。

26日追記

ブクマ増えてた!ありがとう

元増田さんがどの言語をやれば・・という方だったので仕方なくこのような書き方になってしまいましたが、作りたいものが既にある人はあまり”どの言語をやるか”には拘らなくてよいと思います

そんなことよりも、今必用で/気軽に/すぐ結果がわかることをやるのが、始めてのプログラミングには大事。だから本当は、どの言語をやるかよりも何を作りたいのかを先に見つけてほしい。

目の前の意外なところにプログラミングは生かせます。できるだけ身近な、すぐ効果がわかるところからとりかかった方がプログラミングの楽しさにはやく気付けるはず。

みたいな導入口でもいいんだ。

例えば C++ でのプログラミング初心者が 0 からやるのは難しいだろうけど、既存アプリケーションプラグインなら開発のためのテンプレート目的に近い作例があってコードも短いからそれを改造するところから始められる。需要があるから楽しいよ。

目の前に実用的な目標があるってのが大事

2010-06-17

http://anond.hatelabo.jp/20100617161153

今一応研究開発系の仕事してます。日本で。

物理は専門だったんで余裕。涎垂らしながら量子力学とかやれるけど、あんま需要無い気がするんだよねえ…。

ただ逆にプログラミングにあまり興味無いのが問題。一応C++とかのOOP動的言語もわかるし関数型言語も多少わかるけど、なんていうかビジネスとして成り立つアプリケーションに作り込むのが超苦手です。

英語勉強してるけどあんま得意じゃないです。来週結果が出るTOEICでたぶん800点くらい。

2010-06-11

若いλ彦

BGM : http://www.youtube.com/watch?v=zvuC7D_IBuY

司会者
「みなさん、こんばんわ。『若いλ彦』の時間がやってまいりました。
司会者
「今夜は、若手関数型言語評論家の方々にお集まり頂き、 『2010年代ファンクショナル・シーンを考える』 と題しましてお話をおうかがいいたします。みなさんよろしくお願いいたします。

ABC
「よろしくお願いします。」「ども」

A
「えーと、ほんじゃ、まず僕からいきます。まあー、ぼ、僕の場合はね、コードを向こうから、checkout してんだけど、今の Haskell はさ、なんていうの、こう良いものも有る、だけど悪いものも有るよね。
B
「んー、僕の場合はね、ちょっと君とは違うんだけどね、あの、 Haskell プログラマの友達がグラスゴーとかケンブリッジにいるんだけどね、いつもパッチ送ってくれるんだけど、よく見るとまあ、あの、良いものも有る、悪いものも有る。
C
「あ、ちょっといい?あのね、僕はやっぱ OCaml が一番いいと・・・
A
でもね、僕なんかなんちゅうの、外国行ってライブコーディングを見る機会が凄い多いわけ。ね?この前ポートランド、チャルマーズ回ってきたんすよね。そこで一番感じたのはですね、良いものも有るけど、悪いものも有る、というのを一番感じたなあ。
B
ええん、君とはちょっと違うんだよね。僕は、英語がわかるでしょ?だから向こうの会議なんか出てくれって何度も頼まれてね断ってんだけど、まあ、だいたい良く聞くと、良いものも有る、んー、悪いものも有る、っていう。
C
でもね、やっぱり僕は OCaml が・・・
A
そうじゃなくてさー、君の言い方ちょっとおかしいよ。そうじゃなくってさ、僕なんかは、まあ一日にね、一日に8時間 Haskell 書きまくって生活してるわけですよ。そうすっと、凄い良くわかるのは、んー、良いものも有る、だけど悪いものあるっていう感じだな。
B
違うよぉ、僕なんか時間の問題じゃないと思うんだよね。僕は、コード5万行だよ5万行書いたんだよ。それも LLVM バックエンドHaskell ばっかりよ。で、良く見ると、良いものも有る、悪いものも有るんだよ。
C
ちょっと言わせてもらうとね、僕なんかやっぱりね、OCaml がやっぱりいいなと・・・
A
あの、君ちょっと違うよ、だってさ、コードの行数なんか言ったら、僕なんか8万行ありますよ、Haskell。それをさ、全部書きまくって感じるのは、はっきり言って、良いものも有る、だけど悪いものも有る。
B
んふ、僕なんかね、君とはちょっと違うんだけどね、国際電話インタビューされたりとかね、ちゃーんと Haskell の話して聞くとですね、良いものも有る、悪いものも有る、んだよね。
C
っといいですか?えーっとねあの、僕はね絶対、OCaml がね・・・
A
あークスッ、全然違う、全然ハナシ違う。いい?Haskell を理解するためにはさ、モナドと切り離せないと思うわけですよ、ね。聞いてる?ね、ほら僕は今、IO モナド使ってますよね、() の、ほら。で、これは別にたいしたことじゃないですよね。モナド十種類くらい使ってますよ。だから、そういうふうに、生活に Haskell を取り入れることからね、Haskell を考えると、良いものも有る、だけど悪いものも有る、と言い切れると思うわけ。
B
ちょーっと待ってよ。君とはちょっと違うんだけどね、外人Haskellian なんか来るとね、全部僕がすき焼きとか天ぷらしゃぶしゃぶとかみんな連れてくんだよ、面倒見るんだよ。そうやってコミュニケーションしてね、で、 Haskell は良いものも有る、悪いものも有るんだょね。
C
やっぱグルメだったらねえ、フランスワインじゃなーい?
A
なんかおかしいんじゃないの?矛盾してる、まったく矛盾してるよ。僕はさ、んんっ、Haskell の連載十本持ってるわけです。はい。えー、今度 ICFPHaskellセッションの司会もします。まあ、そういう世界にいてですね、はじめて Haskell が良くわかると言い切れると思うんですよね。だから、そういう言い方からしてもね、良いものも有る、だけど悪いものも有る、と僕は思うわけなんですよ。
B
ちがっ。ちょっと、僕はね、君とちょっと違うんだけどね、僕なんかね、今度コードプロデュースやんだよ。しかも Haskell 2010 よ。そうやって実際 にHaskell を作ってみてね、良いものもアルッ、悪いものもアルッ。
A
んふーん

ABC

A
だからさぁ! Haskell 2010 がどうしたか知らないけどさぁ! 僕ね、今度 OCamler に頼まれて武道館で講演やろうかどうしようか迷ってる自分がここにいるわけ。
B
だけどね、それはね、
A
相手は1万人だよ、1万人てあんた1万人の前でやったことあんの?
B
武道館がいくらあったって1万人がね、武道館がどうにかなって… OCaml が…
C
だから OCaml が一番…
A
そういう真剣勝負をさ、実力を持っているところからみ、物みてごらん、だから今の Haskell は…
B
ちがうんだよ、ちょっと違うんだよ…
AB
良いものもある、悪いものある!!

(眠くて朦朧としながら Haskell と格闘していて、この言語は、いいとこもある、わるいとこもある、と思っていたらスネークマンショーを思い出した。それだけ。)

2010-05-05

http://anond.hatelabo.jp/20100505160302

情報学部の新入生にはアセンブラC++関数型言語(何がいいかまでは知らないけど)やらせりゃいいと思う

基礎体力を養う意味ではここら辺がいいと思うんですがどうでしょう

いいんじゃないかな。

俺が思うに基礎体力を付けるなら、アセンブラからはじめて、時系列プログラミング言語歴史を追体験してもらうのがいいと思うよ。

情報学部の新入生にはアセンブラC++関数型言語(何がいいかまでは知らないけど)やらせりゃいいと思う

基礎体力を養う意味ではここら辺がいいと思うんですがどうでしょう



アセンブラコンピュータの基礎を理解するには必須でしょう。

これがわかるとCLRJVMインフラ部分もわかりますし、組み込み方面にも強くなります。

後にOSコンパイラ勉強するにも役立つでしょう。

C++マルチパラダイム言語であり、これをひとつやれば構造プログラミングオブジェクト指向プログラミングの両方がわかります。

C++はCのほぼ上位互換言語ですので(正しくはC99が制定されるまでは)、プレーンなCしかやらない理由はありません。

最初ベターCとして始めればいいです。

嫌なとこも多くある言語で(どうしてEffective C++シリーズやExceptional C++シリーズみたいな書籍が多くでてるか考えるといいよ)、メモリ管理も手動ですが(これは半分嘘。RAIIがあるから半分自動GCがないから半分手動)、逆に細かいとこに気を配る態度を養うには最適です。

関数型言語は新しい世界を知るために勉強しましょう。

Erlangで並列プログラミングをやるのもいいかもしれません。

Common LispSchemeで怪しい(でも美しい)世界を爆走するのもいいかもしれません。

MLHaskellが最も現代的ですかね。



これだけやっとけばC#Java、軽量言語の類はあっさりと料理できるでしょう。



あくまでもプログラミング言語についてはですからね。

アルゴリズム離散数学もちゃんとやってくださいね。

システム屋になりたきゃソフトウェア工学経済学経営学、ついでにナンパもちゃんとしなきゃダメですよ。

2010-02-24

プログラミング常識」著者コメント(DQN向け翻訳)

世の中には、どうしても「賢い人」と「あまり賢くない人達」人たちがいて、「あまり賢くない人達」は「賢い人」の足を引っ張るモノです。

「あまり賢くない人達」が自らの愚かさゆえ、人生を無為に過ごすのはある意味しかたがないことだと思いますが、問題なのはこれから賢くあろうとする未来ある若者達が、このような「あまり賢くない人達」に惑わされ、不幸に見舞われることであります。

日向さんはこのような未来ある若者のために、わざわざ時間を割いて素晴らしいエッセイを書きおこしてくれました。

http://www5.ocn.ne.jp/~seablue/res/ckp.html

けれども日向さんの文章は、あまりのレベル差故か、極力平易に書こうとはしているものの、それでも文章が高度すぎて、対象である「あまり賢くない人達」には今一歩言わんとしていることが伝わらないのでは、と感じました。

そこで私は、日向さんの文章の意味を極力損ねないまま、このエッセイを対象である「あまり賢くない人達」向けの言葉翻訳することを試みました。

もちろん、訳者が至らないために、間違いや勘違い、あるいは校正の際の見落としなども あるかと思います。そのようなことがないように努力はいたしますが、 お気づきの点があれば冷静にご指摘いただければ幸いです。






この書籍については、さまざまなご意見がさまざまなところに書き込まれているようです。

まったく話題にもならないたくさんの本があり、また批評もされない多数の著者たちがいるなかで、 拙著または著者に関心を持っていただいたことにまずお礼を申し上げます。

いやぁ、人気者はつらいね。いつだって妬まれる。

本書については、書籍のはじめに「本書では、初歩のプログラミング学習を終えて、 プログラマが実践的なプログラミングに臨む時に知っておかなければならない重要な事項をわかりやすく解説します。」 と明示してあるように、プログラミング初心者を対象にしています。

具体的には、はじめてのプログラミング言語勉強したか、これから何か言語を学ぼうとしている人、 ふたつめの言語を選ぼうとしているひと、あるいは、 「どうしてデータ型などというものがあるのだろう?」とか、「オブジェクトって、いったい何?」という 素朴な疑問を抱いている人を対象とした書籍です。

また、筆者の「常識」を読者に押しつけようとするものではなく、プログラミング常識とは何かという ことについて考えるヒントにする本です(このことは書籍の中でも重ねて説明しています)。

この本は エキスパート俺様が、初心者のために書いた本だ。初心者向けって所が重要な。ついでに世の中常識のないやつが多いから、プログラミングだけじゃなく常識まで教えてやる、そういう本でもあるな。そうそう、断っておくが俺がこの本で言っていることは「世の中の常識」な。だから、異論挟むヤツはそのまま「常識」のないやつってことになる。ここも重要だ。

プログラミングに限らず、対象によって説明の仕方、取り上げる範囲、そして「何が正しいか」は異なります。 身近な学校教育という場を考えてみても、小学生には「人はみな平等です」と教えます。 しかし、それは理想であって、実際に差別は存在し、したがって、教えている対象を考慮しなければ、 小学校で教えていることは嘘ばかりである、ということになります。 実際、大学生ならば、「実際には人は平等ではない」という前提にたって、社会問題などを考える必要があることは 誰にも異論のないことでしょう。

同様に、プログラミングでも、初歩のプログラミング学習を終えた人と、 より高度なプログラミングをマスターした人を対象にするときでは、解説の範囲も表現もすべて異なります。

ところで、みんな平等というけどさ、愚民がいるのが現実なのよ。愚民がいるなら愚民向けに方便をつかわなくちゃいけない。大人ならわかるな。

本書について、文章の真意を理解しないで書き込みをされていることも多々あるようです。 たとえば、「プログラミング言語はどれがよいか?」というトピックの主眼は、本文で 「多人数を運ぶならバス、荷物をたくさん運ぶならトラック、少人数でドライブするなら小型セダンと、 目的に応じて最も良い自動車の種類が違う」と例をあげて説明していますが、プログラミング言語においても 用途やプログラマ経験あるいは環境等々によって適する言語は異なり、 特定の具体的な条件を示したうえでなければ「プログラミング言語はどれがよいか?」という質問自体がナンセンスである、 というのがこのトピックの主眼です。

したがって、それに関連する説明は、それぞれのプログラミング言語がおおよそどのように異なるかわかればよい という立場で書いており、具体的な解説についてはたとえば環境(近くにすぐに質問できる先輩がいる、 特定の言語学習環境が際立って整っている、特定の種類の言語をすぐに使う必要がある、など)に よって異なるという前提で書かれています。

また、このトピックは、これから最初のプログラミング言語を選ぼうとしているか、 ふたつ目のプログラミング言語を選ぼうとしているような初心者で、 車にバスから軽自動車までいろいろな種類があるように、プログラミング言語にもまた さまざまな用途の言語があるということを認識していない読者を想定して解説しているものです。 すでに複数のプログラミング言語をマスターしている読者を対象としたときには、 自ずと表現記述するレベルや範囲も変わってきます。

で、だ。俺の書いた本にケチつけるガキ共がいるんだけどさ、ヤツラ何? 技術的なことを書くと低能なヤツラじゃ理解できないから、車の話に喩えてやる。(略)つまりヤツラは、車にもいろいろ車種ってものがあることすら、わかんないバカってことだ。

そのほか、本書について間違いであるかのように指摘されているところの多くも、本書の意図を理解できれば、 指摘したことが逆に誤っていることに気づくでしょう。 (もちろん、筆者が至らないために、間違いや勘違い、あるいは校正の際の見落としなども あるかと思います。そのようなことがないように努力はいたしますが、 お気づきの点があれば冷静にご指摘いただければ幸いです。)

また、本書の批判の多くは、本書が初心者プログラマ向けに書かれていることをまったく無視した、 きわめて無責任意見が多く、そのような書き込みが何の批判もなく行われていることは残念でなりません。 良識のある人たちは、想定読者レベルを無視した無責任意見は無価値であると考え 頭から相手にしていないのでしょうが、初心者はそのような判断ができないので惑わされる可能性があるからです。

ようするに、愚民向けの本を読んでも「方便」を「方便」だって読み取れないバカ?ww 指摘(笑)を通して 自分馬鹿さ加減を世界に発信しているってことに気づかないって超ウケるじゃん? この内容は間違ってます(キリッ みたいな?wwww ま、少しでも知性があれば、恥ずかしくてで出来ねえことだよな。

わかっているヤツは わざわざ DQN の相手をしたりせず鼻で笑うだけだ。しかしお前らひよっこは、こういう低レベルな扇動に惑わされるかもしれないな。気をつけろよ。


書籍批評ということについて、ひとつ例を示して筆者の考えを明らかにしましょう。

B.W.カーニハン/D.M.リッチーが書いた「プログラミング言語C」という本があります。現在は第2版となり訂正版として出されていますが、 日本語翻訳初版から現在まで、プログラミング言語の本として名著のひとつとみなされてきました。

実際、私もC言語についてまだほとんど何も知らない日本語初版が出たときにこの本を一読して、 「Hello, world」の出力のしかたから始まり、徐々に高度な内容に導いてゆく書き方に自然となじんで、 まるで読み物を読むように一気に読了し、同時に、C言語とはどういうもので、何ができて、何ができないのかを理解しました。 日本語初版は間違いも多く、記述の仕方もプログラミング言語書籍としては最良とはいえないものでしたが、 C言語についてまだほとんど何も知らない私にとって、まさに「プログラミング言語C」はとても良い本でした。 また、プログラミング言語仕様という概念が今ほど確立していなかった当時、C言語コンパイラを実装する(開発する) ようなレベルの人にも、「プログラミング言語C」はバイブルといってよいほど重要な本でした。

ところで、今、誰かが「プログラミング言語C」と同じようなスタイルC++Javaの本を きわめて丁寧に間違いもほとんどなく書きあげて私に献本してくれて私個人の率直な意見を求められたら、 それを読んできっと「冗長で退屈である」と答えるでしょう。 なぜなら、私はC++Javaについて講義(授業や講演)をする程度にすでに知っているから、 「プログラミング言語C」のような書き方の本を改めて最初から読むのは苦痛にさえなりかねないからです。

しかし、その本について公開するレビューを書いてくれと頼まれたら、 「これからC++(またはJava)を学習する人にとってはとても良い本である」と推奨するでしょう。 なぜなら、まだ何も知らない人が、まるで読み物を読むように一気に読んでその言語を理解できれば、 それはとても素晴らしいことだからです。

読む人のレベル、その本の主眼とすることとその表現のしかた、本が出版されたときの状況などによって本の価値というものは異なり、 それが本というものです。

ヤツラにも解るように具体例を示すけれどさ、ストラウストラップ?ってヤツの 「プログラミング言語 C++」って本、冗長で退屈でダセェよな。内容のレベル低すぎるしさ。けど、どうしてもオレにレビューしてくれっていわれたら、まぁ「俺には必要ないけど良い本だぜ」って紹介してやるよ。だってバカどもにはちょうど良いじゃん。バカ向けの本はバカ向けってことを考慮して評価する。それが大人ってもんだ。

インターネットが普及して誰でも自由に発言できるようになったのは良いことですが 一部のお暇をもてあましている方々が、拙著に限らず、 さまざまな著作や著者に対して誹謗中傷に近い書き込みを匿名で行っているのが見受けられます。 このような状態が続けば、 誤解を受けることを承知の上で初心者向けにあえてやさしく解説するような著者は書く気をなくし、 どのようにでも解釈できる(あるいはすでに理解している人しか理解できないような)難解な 文章を書く一部のいわゆる権威だけが著者として残る結果となり、 出版文化書店を含む出版界はますます疲弊し、いずれ現在のように多種多様書籍出版できなくります。

インターネットが出来てから、そんな大人の対応も出来ないウゼえガキが増えたよな。マジ ウゼェ。ったく、「間違っている」「正しくない」とか、ウゼェウゼェウゼェ!偉大なるオレ様のやる気が無くなったらどうしてくれるのか。これでオレが本を書かなくなったら人類の損失になるって事実、わかんねぇのかコイツらは。ほんっとカスだな。

どうか、初心者の方々は無責任な批判や的外れレビューなどに惑わされずに、 まずは本を読んでみて(買わずに図書館で借りてでもかまいません)、自分自身で判断してくださるようお願いいたします。

まぁ、カスのことはほっといて、お前らは黙って俺の本を買っておけ(貧乏だったら図書館でもいいぜ。自治体に買わせろ)。普通に考えれば有象無象匿名ブロガーより、本まで出してるエリートのオレの本の方が信頼できるってのは、ひよっこのお前らにだってわかるだろ。つべこべ言わず買えば幸せになれるってモンさ。

さて、無責任な批判や的外れレビューを書き続けている人には、次のように申し上げておきます。

批判する人間にもし本当に能力があるのであれば、匿名無責任な批判をする前に、 C++Javaアセンブリ言語JavaScriptのようなスクリプト言語XMLXAMLのような記述言語を 含めて、5種類上の言語で実際に動作するプログラムを作成してそのソースコードを広く一般に公開し、 他人の批判を受けてみてから、 自分完璧な本を書いて出版社に持ち込んで出版してみてください。

そうすれば、著作、あるいは出版というものがどういうものか、少しはわかるでしょう。

あー、それと、バカどもに言っておく。オレ様は C++Javaアセンブリ言語JavaScriptのようなスクリプト言語XMLXAML のよな記述言語 を含めた5種類以上の言語精通した超絶スーパーエンジニアだ。ハッカーと言ってもいい。しかもコードを公開して完璧な本まで書いている、マジ パねぇ男だ。 マチュアーしてるんだよ。おめぇらなんて足元におよばねぇ。身の程を知れ。(関数型言語マイナでどうでもいいから勉強しなくてもいいぜ。あ、でもオレの Scala の本は買えよな。)

もし、自らは何も創造しないで、単に無責任な批判や的外れレビューを続けるなら、 そういう人は、いずれ何年かのちに(そのときまでボケずに、人間社会というものを学んで人間として少しは成長したとしたら) 自分がしてきたことが無意味であり、そのようなことだけに時間を費やした自分自身の人生そのものが 無価値であったことに必ず気づくはずです。しかし、その時になって謝罪していただく必要はまったくありません。

まー、オレ様は心が広いからバカがバカであることは責めないでやる。人間生まれついてのものはどうしようもねぇ。俺はどうしようもないことは責めない主義だ。でも、お前らが無価値ゴミクズであるってことだけは理解しとけよな。ゴミゴミなりの人生がまってるさ。身の程を知って生きればオレは哀れみくらいはかけてやるぜ?

なお、著者はあらゆる書き込みに対していちいち反論することはできません。 また、一部の低俗掲示板のようなものを読んだり書き込んだりするのは 時間無駄なので、私に限らずほとんどの著者は、そのようなものに書き込むことはもちろん、 目を通すこともありませんのであしからず

最後に言っておく。お前ら如きがオレ様に意見するなんて間違っている。なぜならオレ様はいつだって正しいからだ。そして、間違った意見などに反論を書くなんて無駄時間はオレ様にはない。お前らはせいぜい便所で落書きに勤しむんだな。あばよ。



要点のまとめ

長い文章が読めない方のために、要点のまとめを作りました。

  • 本を書く人間エリートで、それを批判するネットイナゴ愚民
  • 愚民的外れなことを言っても、自分が恥をかいていると気がつけないから厄介だ
  • 誤解するな、俺の技術力はパねぇ。そこん所くれぐれも勘違いするな
  • 間違えているように見えるところはワザとだ。もしくは指摘自体が間違えてる
  • とにかく俺の本を買え

補足

日向さんは、本当に素晴らしい技術力をお持ちで、その著書リストをご覧になれば皆様もその高い技術力をご納得いただけるかと思います。

http://www.amazon.co.jp/exec/obidos/search-handle-url?_encoding=UTF8&search-type=ss&index=books-jp&field-author=%E6%97%A5%E5%90%91%20%E4%BF%8A%E4%BA%8C

これだけの内容の濃い本を、こんなにも沢山発行していらっしゃるので、日向さんが新たに本を書い時、気がつけば参考文献リソース 一覧が 過去の自著ばかりになった――というエピソードだけでも、日向さんの凄さの一端が伝わるかと思います。

ですので皆様も

のような「匿名の愚か者」の世迷い言に惑わされないように、ご注意願います。解っている人から見れば、日向さんの著書は総じて評価が高い という事実は、「記名の賢者」であるdankogai氏のレビュー

をご覧になっていただければ、一目瞭然かと思います。(dankogai氏は同レビュー中で日向さんを「真に初心者向けに本を書ける希有の存在」と評しています)



なお、訳者はあらゆる書き込みに対していちいち反論することはできません。 また、一部の低俗掲示板のような増田を読んだり書き込んだりするのは 時間無駄なので、私に限らずほとんどの著者は、そのようなものに書き込むことはもちろん、 目を通すこともありませんのであしからず

2010-01-17

http://anond.hatelabo.jp/20100117033236

おお、反応をいただけるとは、どうもありがとうございます。

確かに保守的な内容と思われるかもしれないのですが、ここに書いたのは学部3年までの内容ですので、プログラミングをやったことのない生徒もいることを考えると、基礎からやっていったらこういう内容になるのではないか、と思います。

4年以降になると、さらにUMLや、3DCGなど、応用的な分野の実習も入ってきます。



大学シラバスも見てみたつもりだったのですが、このような内容の実習を行っている大学は他にもあるのかもしれませんね。筑波大学の授業や、CLUは面白そうだと思いました。

今はほとんどシラバスの内容をネットで見られるので、受験生が授業の内容を調べながら大学を選ぶことができるのですが、一つ一つ調べていくのは大変だと思います。

大学の売りをみんなで宣伝しあったら、受験生の助けになるんじゃないかな、と思いました。



あと、scheme やっていないの?

残念ながらやってないみたいです。関数型言語については、一応MLを使った演習があるのですが、それほどサポートが手厚いとは言えなそうです。

2010-01-16

大阪大学基礎工学部情報科学科について

大学教育について話題になっているようですので、私が卒業した、大阪大学基礎工学部情報科学科について書いてみたいと思います。



大阪大学基礎工学部情報科学科は、昭和45年に最初に国立大学に設立された情報工学関連学科のうちの一つで、コンピュータサイエンスの分野では日本で最も古い歴史を持っている学科、ということになります。



情報科学科の特徴は、そのプログラミング実習の充実ぶりです。入学すると、まずPascalというプログラミング言語構造プログラミング勉強することになります。次にアセンブリ言語であるCASL勉強し、Pascalアセンブリ言語を応用してC言語勉強します。またその後、スクリプト言語であるPerl関数型言語MLオブジェクト指向言語としてJava学習します。

また、言語だけではなく、コンピュータサイエンスの基本であるアルゴリズムデータ構造についても幅広く学ぶことができます。



全ての実習は課題が出され、実際にコードを書かなければいけません。例えばC言語の授業の最終的な課題は、「shのようなシェルプログラムを作成すること」でした。最終的には、「Pascal風の言語CASLに変換するコンパイラを作成する」という課題に取り組むことになります。

大阪大学は全体的に単位の取得が厳しいことで知られていますが、情報科学科も例外ではありません。もしプログラミングをあまりしたことがないのであれば、遅くまで実習室にこもることになると思います。だけど、それは情報工学世界で生きていくためには必要な知識なのです。

実習で勉強する言語は、Javaを除くとあまり現在使われている主流の言語とは言えないのですが、様々な言語を学ぶのは「プログラミング言語はそれぞれに違いがあり、それぞれに適した用途がある」ことを理解することに繋がります。また大学卒業してから、新しい言語を学ぶ必要が出てきたとき、それに対応する能力を磨くことができます。

日本大学で、ここまで実戦的なコンピュータに関する教育を行っている場所はあまりないのではないか、と思います。コンピュータがどのように動いているのか、内部原理までしっかり教えてくれます。卒業生の進路は、研究者というよりは、エンジニアとして開発の現場で働くことが多いようです。

大阪大学入試問題は、東大京大と違って特殊な問題はそれほど出ません。努力でなんとかなるレベルだと思います。



情報工学は新しい分野なので、大学院研究するために必要な知識は他の分野ほど多くありません。このため情報工学科では、3年生の夏に大学院試験を受けて合格すれば、学部を卒業しなくても4年目から大学院に進むことができます。この仕組みを活用すれば、5年で大学院卒業できます。実際、学部生の1/4くらいはこの仕組みを活用しています。



もちろん、ここに書いたのは情報科学科の全てではありません。ネットにも他に情報がありますし、もし興味があったら、大学オープンキャンパスに行ってみるのもよいと思います。

コンピュータ世界は変化が激しくて、エンジニアとして生きていくのはとても大変ですが、それでもいい、プログラマとして将来何かを作りたいんだという人であれば、ここはそのための力を与えてくれるはずです。進学先として検討してもらえたら幸いです。

2010-01-06

http://anond.hatelabo.jp/20100106173041

設計の手間とメンテナンスビリティのトレードオフは、オブジェクト指向固有の問題じゃない

関数型言語でも手続き型言語でも詳細な設計が必要なことはある

にもかかわらず、いきなりオブジェクト指向の弊害と言うのは間違い

http://anond.hatelabo.jp/20100106171114

おまえオブジェクト指向わかってないだろ

まともな大学勉強してこい

まず、プログラムを分割しろはオブジェクト指向に特有の手法ではない

関数型言語でも手続き型言語でも分割することが管理本質

分割して管理する以上に効率的な手法が不明なんだ

だからどうやって分割するかの研究がおこなわれている

最近AOP研究が一通りおわってFOPとかCOPとかがでてきてるよ

- 転職ならen
- 派遣ならen
2ページ中1ページ目を表示(合計:50件)