初心者のためのプログラミング言語ガイド Part14
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/02/27(金) 08:53:41質問者の方へ
どのプログラミング言語を最初に覚えるべきかは
なぜプログラミングを始めたいのか、何を作りたいのかによってまったく変わってきます。
なんとなく、でもかまわないので動機、用途、使っているOSを明記しましょう。
各言語の特徴はこちらを参照
Wikipedia Category:プログラミング言語
http://ja.wikipedia.org/wiki/Category:%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
Part13 http://pc11.2ch.net/test/read.cgi/tech/1232286278/
Part12 http://pc11.2ch.net/test/read.cgi/tech/1226761546/
Part11 http://pc11.2ch.net/test/read.cgi/tech/1218282605/
Part10 http://pc11.2ch.net/test/read.cgi/tech/1215717670/
Part9 http://pc11.2ch.net/test/read.cgi/tech/1210941509/
Part8 http://pc11.2ch.net/test/read.cgi/tech/1208186034/
Part7 http://pc11.2ch.net/test/read.cgi/tech/1200807067/
Part6 http://pc11.2ch.net/test/read.cgi/tech/1193132235/
Part5 http://pc11.2ch.net/test/read.cgi/tech/1187886538/
Part4 http://pc11.2ch.net/test/read.cgi/tech/1177285633/
Part3 http://pc11.2ch.net/test/read.cgi/tech/1152778344/
Part2 http://pc8.2ch.net/test/read.cgi/tech/1122205164/
Part1 http://pc8.2ch.net/test/read.cgi/tech/1034505166/
※雑談はプログラマ板でやりましょう。
0409デフォルトの名無しさん
2009/03/17(火) 22:08:17議論するなら、仮想でいいから
「グラフィックばりばりのゲーム作りたい人」、とか「だるい作業の手間を減らしたい人」とか決めてやれよ。
>>399ってPowerShellな人でしょ?
言いたい事はよくわかるが、「自分が普段使ってるアプリの自動化」
とか言われても、そういう人間には理解できないし、そういう人間が大半。
業務でUN*X使ってるような人間なら、嫌でもBシェルスクリプトで自動化覚えるけどな。
Windowsクライアントをいくら使っててもWSHにいきつく人間は一握り。
0410デフォルトの名無しさん
2009/03/17(火) 22:14:03それって、IDEでコンパイル速度が速ければいいんじゃね? って気がするけど、違うのか。
0411デフォルトの名無しさん
2009/03/17(火) 22:14:070412デフォルトの名無しさん
2009/03/17(火) 22:31:07REPLをさわったことはある?
LispでもPythonでもScalaでもHaskellでも何でもいいが
例えばEmacsなら立ち上げればそこにEmacsLispのREPLがあり
いつでもLispの式を評価できる
1 + 1を計算したければ
(+ 1 1)
とタイプして、Ctrl + Jをタイプするだけだ
.emacsを編集したら、それはやはりLispの式の集合だから、
その場でその全てまたは部分をevalして、エディタにモンキーパッチを
当てることが出来る
はっきり言って、俺としては全く違うとしかいえない
それ以前の問題として、C系言語はひどく冗長でいろんなことが
しち面倒臭いというのはあるけどな
0413デフォルトの名無しさん
2009/03/17(火) 22:42:27408じゃないが、経験上だいぶ違う
毎回コンパイルする方式だと、最低キー入力1つかクリック一回が必要で
かつ出力を得るには、print系のものを埋め込んでおく必要があることが多い
対して対話環境なら、入力区切りごとに式を評価、評価結果を出力してくれる
時間的には僅かな差だが、数百回数千回繰り返すことを考えると?
かなり効いてくる
もっとも、目的に適う言語があるのに、対話環境が無いからって別の言語を勧めるのは本末転倒だとも思う
ただ例えば、プログラミングの学習自体が目的って場合とかなら、
対話環境がある言語ってのは有力な絞込み条件になるのではと
0414デフォルトの名無しさん
2009/03/17(火) 22:42:28N88BASICなら多少…
ってのは冗談だけど、まあ、たぶん
「コードを書いてF5。ちょっと改造してまたF5」
とかでもぜんぜん同じだろうな。
0415デフォルトの名無しさん
2009/03/17(火) 22:47:22> 別の言語を勧めるのは本末転倒だとも思う
> ただ例えば、プログラミングの学習自体が目的って場合とかなら、
> 対話環境がある言語ってのは有力な絞込み条件になるのではと
まあ概ね同意
それと、例えば.NETやらJVMやらを使う場合は、それらの上で動作するREPL環境は
ライブラリを試したりするのに有用
(たとえ「本番」ではC#やJavaを使うのであっても)
0416デフォルトの名無しさん
2009/03/17(火) 23:25:51ダメ?
0417デフォルトの名無しさん
2009/03/17(火) 23:30:290418デフォルトの名無しさん
2009/03/17(火) 23:40:17それって、ActionScriptベースのJavaScript3.0になる予定だったやつ?
あれになっていれば本当に良い入門言語&リッチWEBクライアント構築言語になってたのにな。
将来性のある規格はみんなMSが割り込んで死産させるからな(--#
0419デフォルトの名無しさん
2009/03/18(水) 00:06:57cygwinでプログラムの実行ができないんです。gccが使えないというか……
どうすればよいのでしょうか?
0420デフォルトの名無しさん
2009/03/18(水) 00:18:48どう実行しようとしたんだよ。
gccは使えたの?使えなかったの?はっきりしろ。
日本語が不自由ならエスパースレへ行け。
0421デフォルトの名無しさん
2009/03/18(水) 00:32:350422デフォルトの名無しさん
2009/03/18(水) 01:11:07板一覧にないんだが
0423デフォルトの名無しさん
2009/03/18(水) 01:21:32bash: gcc: command not found
と表示されます
0424デフォルトの名無しさん
2009/03/18(水) 01:26:500425デフォルトの名無しさん
2009/03/18(水) 01:27:21gccでプログラムを実行するというのが分からんな
cygwinはgccをデフォルトでインストールしないんじゃなかったか?
gccがインストールされているかどうか確認しろ
0426デフォルトの名無しさん
2009/03/18(水) 01:58:47そのやり方が分かりません。ただ単純にググったときに出てきたページそのままをやっただけです。
0427デフォルトの名無しさん
2009/03/18(水) 02:03:560428デフォルトの名無しさん
2009/03/18(水) 02:20:000429デフォルトの名無しさん
2009/03/18(水) 02:33:14gcc cygwin インストールでググれ。
0430デフォルトの名無しさん
2009/03/18(水) 03:02:440431デフォルトの名無しさん
2009/03/18(水) 05:58:39setupで何も考えずに全パッケージ選べ。
そうすれば確実に使える。
0432デフォルトの名無しさん
2009/03/18(水) 06:45:34同意。
C#風の対話型環境があればいいのだが……現実には、クラスライブラリの挙動を
対話的に確かめる手段はPowershellってことになる。
0433デフォルトの名無しさん
2009/03/18(水) 07:23:340434デフォルトの名無しさん
2009/03/18(水) 07:38:250435デフォルトの名無しさん
2009/03/18(水) 08:14:40そーゆー考え方なら
配列 同じ大きさの箱をまとめたもの
構造体 違う大きさの箱を一個にまとめて、箱に名前つけたもの
かなあ
0436デフォルトの名無しさん
2009/03/18(水) 09:41:22>対話的に確かめる手段はPowershellってことになる。
Powershell厨がそろそろウザいんだが。
こいつらはPythonの存在を無かったことにしたいのか?と感じる。
こっちも対話式に式やオブジェクトやライブラリの挙動を確認できるんだが。
もうちょっと現実的な話をしろよ。
そもそもクラスライブラリをPowershellから呼び出すヤツは初心者じゃねーっつの。
0437デフォルトの名無しさん
2009/03/18(水) 10:05:25宗教ガイドスレでもないのでご注意ください
0438デフォルトの名無しさん
2009/03/18(水) 10:09:511 | gm
IronPythonだと
dir(1)
とかだな
PowerShellは二つの言語を無理やりくっつけたようなトリッキーな構文なんで、
初心者には理解しにくいし、プログラミングの勉強にも適してないと思う
1+1が2に評価されるのに
echo 1+1は1+1を印字するとかな
0439デフォルトの名無しさん
2009/03/18(水) 10:39:36Pythonの対話型は好ましい。C#でそれに相当するほどの出来栄えのものはない。――と
いうことがいいたかったんだが。
0440デフォルトの名無しさん
2009/03/18(水) 10:46:51だから何故、CsharpReplを無視する?
0441デフォルトの名無しさん
2009/03/18(水) 10:56:020442デフォルトの名無しさん
2009/03/18(水) 13:21:32ライブラリの挙動を対話式に知りたいなら>>436の言う通りにPythonの方が遥かに手軽だしなぁ。
なぜにいきなし茨の道な展開を初心者に植え付けようとしているのかイミフメイだ。
正直、高機能なGUIアプリでなければ.NETのクラスなんか使わなくても
大抵の事は実現可能だし、Windows環境で高機能なアプリを作る目標があるなら、
最初からC++で頑張ればいいワケだし。
PowerShellを全否定するわけじゃねーけど、初心者にPowerShellはねーな。
せめて「業務でWindows鯖を使っていてWSHは習得した初心者向け」ってトコが関の山。
0443デフォルトの名無しさん
2009/03/18(水) 14:00:28PowerShell, C#, C++/CLIはありえないな。
三つともドメスティック仕様の転用効かない言語だから。
C#にはmonoもあるが古いままだし。
0444デフォルトの名無しさん
2009/03/18(水) 14:21:33そこが言い足りてなかったから>>292で付け加えたけども
コマンドが覚えやすくて、やりたいことなくてもそのコマンドの出力を弄ってみるところから初めて
変数に代入してみたり制御構文使ったり、という風に少しずつ学べるからいいと思った
>>438
パイプを使うことがトリッキーなら最初は Get-Member -InputObject 1 でいいじゃん
見た目長いけど補完できるんだし、慣れれば gm -i 1 とできる
文字列を出力したいなら引用符で囲むだけでいい(関数や構文を覚える必要はない)わけで
echoを使う機会自体すくない
0445デフォルトの名無しさん
2009/03/18(水) 14:24:07じゃあ目標できたってこと(だから適した別の言語選べけばいいし、あえて続ける必要はない)
ということも>>328で言ったつもり
0446デフォルトの名無しさん
2009/03/18(水) 14:27:33最新ではないが、LINQも使えるし。
このリリースペースだからキャッチアップしていくだろう。
Apple純正以外で、まともにiphoneアプリ書ける唯一の環境じゃないかな。
0447デフォルトの名無しさん
2009/03/18(水) 14:37:18無視したのではなく、>>432を書いた時点でCsharpReplの存在を知らなかった。
>>442
Pythonが手軽ということに異議はない。>>432はC#についての肯定的な意見ではない。
(ただし、この見解はCsharpReplに慣れてきたら変わるかもしれない。)
0448デフォルトの名無しさん
2009/03/18(水) 14:47:41トリッキーなのはパイプじゃなくて、
実質的に二種類の相異なる構文が共存していること自体だよ
「〜すればいい(回避できる)」ってのは初心者向けの言い草じゃないぞ
1# 1+1
2
2# 1 + 1
2
3# echo 1+1
1+1
4# echo 1 + 1
1
+
1
こんな言語に初心者をつきあわせたいの?
全く理解しかねる
0449デフォルトの名無しさん
2009/03/18(水) 15:29:43> Mono古くないよ。
> 最新ではないが
えー
0450デフォルトの名無しさん
2009/03/18(水) 17:55:42この手の話はPowerShellに限った事ではないと思うけど
まあ確かに>>448の例は直感に反する結果だわな。
0451デフォルトの名無しさん
2009/03/18(水) 18:28:11echoの仕様は関係ない
PowerShellの構文/パーサが変態なだけ
ちなみに
1 + 1 | echo
は2を印字する
0452デフォルトの名無しさん
2009/03/18(水) 18:51:45そうなのかぁ
なんだかややこしそうだから一度勉強してみるわw
でもって
1 + 1 | echo
は
echo (1 + 1)
と同じ意味になるはずだから
2を印字するのが直感と合致してて問題ないと思う。
0453デフォルトの名無しさん
2009/03/18(水) 19:21:13echo 1 + "1"
だったら、 1 + 1 と表示してほしいが、
echo 1 + 1
だったら、2と表示してほしいな。
0454デフォルトの名無しさん
2009/03/18(水) 19:37:541# 1 + 1
2
2# 1 + "1"
2
3# "1" + 1
11
4# "1" + "1"
11
こうなる
ちなみに全部、echoに引き渡すと
1
+
1
と印字される
0455デフォルトの名無しさん
2009/03/18(水) 19:50:57ところが自分はMac使いなので、Cocoaに興味があるのですが、 Cocoaをやっていると大学でやるCに対してアドバンテージになりますか?
また、MacでCをやるのはどうですか?
プログラムの経験はPerlとPHPをかじった程度です。
0456デフォルトの名無しさん
2009/03/18(水) 20:18:16大学でのアドバンテージは考えずに、
Objective-C + Cocoaやればいいと思うよ。
一番のアドバンテージは、Cをやっていたということより、
自分の興味のあることに自分の力で勉強する習慣。
だからCocoaをやるのはいいこと。
結局はアドバンテージにもなる。
0457デフォルトの名無しさん
2009/03/18(水) 20:19:26CにSmalltalk風のオブジェクト指向の機能を付加したもの。
昔は独自プリプロセッサ+ライブラリだった。
0458デフォルトの名無しさん
2009/03/18(水) 20:32:28Objective-Cをやるにあたって、Cを知っている必要はないのですね。
書籍を探してみます。
0459デフォルトの名無しさん
2009/03/18(水) 20:36:36けどその早さはプログラミングの勉強全体に比べたら誤差みたいなもの。
0460デフォルトの名無しさん
2009/03/18(水) 20:46:54ただ、打って動くよ〜って確認だけ。なんでそう書くのか・・・は習わない。
0461デフォルトの名無しさん
2009/03/18(水) 21:33:070462デフォルトの名無しさん
2009/03/18(水) 21:41:49それは
Deuel Defaultってとこを全て選ぶという事ですか?
0463デフォルトの名無しさん
2009/03/18(水) 22:11:44ミイラとりがミイラにならなければ何やってもよろし
0464デフォルトの名無しさん
2009/03/18(水) 23:13:00それは直感に反してないな。
0465デフォルトの名無しさん
2009/03/18(水) 23:15:35・PowerShell
・Lisp
・Haskell
個人的には、以下の3つのどれかからでいいと思うんだけどね
・C
・C#
・Python
0466デフォルトの名無しさん
2009/03/18(水) 23:27:28> 個人的には、以下の3つのどれかからでいいと思うんだけどね
> ・C
> ・C#
> ・Python
ここにJavaも加えたいね。
0467デフォルトの名無しさん
2009/03/18(水) 23:33:10構造化
静的型付オブジェクト指向
動的型付オブジェクト指向
バランス取れてるな。
好みでC#の代わりにJava、Pythonの代わりにRubyって感じか。
0468デフォルトの名無しさん
2009/03/18(水) 23:36:41すればいい、じゃなくて初心者がechoを使うことを思いつくと思えない(もっと簡単な方法があるから)
その部分は付属のクイックリファレンスにも詳しく書かれてるし
メソッドとコマンドの違いを明確にできてむしろいいことだと思う
0469デフォルトの名無しさん
2009/03/18(水) 23:50:15gm -i 1
はSystem.Int32のメンバーを取得し表示する
gm 1 + 1
gm | gm
はエラーだ
gm -i gm
はどうか?
やってみれば分かるが、System.Stringのメンバーが表示される
俺にはどうしてそこまでPowerShellのような代物を初心者向けと推せるのか
さっぱり理解できない
0470469
2009/03/18(水) 23:51:00+ gm -i 1 + 1
としてくれ
0471デフォルトの名無しさん
2009/03/18(水) 23:57:39そうだろうか。加法の交換法則すら満たされていないことが観測されるし
式の評価ルールがPowerShellを知らない人には全く自明でない。
つまり、1 + 1がいつ誰によってどのような条件で評価されるのかが分からないだろう。
ちなみにPythonでは次のようになる。
1 + 1 -> 2
1 + "1", "1" + 1 -> エラー
"1" + "1" -> "11"
printに引き渡した場合の結果はこれと同じだ。
print 1 + 1 は2を印字する。
0472デフォルトの名無しさん
2009/03/19(木) 00:17:28その結果はおそらくperlと同じだし、式の型は最初に評価されたパラメータに確定して、
残りのパラメータはその型にキャストされるというルールであれば、問題ないよ。
初心者向きかというと、はなはだ疑問だが。
0473471
2009/03/19(木) 00:19:01これはちょっと言い過ぎた
文字列を+で加算する言語は、どのみち文字列加算が可換じゃないから
それにしてもPowerShellの構文をキモいと思わない人が多いのか?
ちょっと驚きだな
0474471
2009/03/19(木) 00:21:19残念ながらそれは違う
perl -e 'print 1 + "1", "\n"'
perl -e 'print "1" + 1, "\n"'
どっちも2を印字する
0475デフォルトの名無しさん
2009/03/19(木) 00:29:37ちなみにJavascriptは、
> 1 + "1"
11
> "1" + 1
11
こういう暗黙の変換は有害。
0477デフォルトの名無しさん
2009/03/19(木) 00:36:21暗黙の変換があっても、文字連結演算子なら文字列に変換、加算演算子なら数値に変換とすれば、混乱はない。
そういう意味ではVBの&は偉かった。VB.netは知らないけど。
0478デフォルトの名無しさん
2009/03/19(木) 00:42:22そんなの古すぎw
演算子どれだけあっても足りないし、
演算子使いたいところで関数呼び出し使うことになりかねない。
Pythonのスタイルがいいよ。
Rubyも同じです。
"1" + 1 → in `+': can't convert Fixnum into String (TypeError)
1 + "1" → in `+': String can't be coerced into Fixnum (TypeError)
0479デフォルトの名無しさん
2009/03/19(木) 00:49:27どれだけあっても足りないって、何を追加するつもりだ?
自動型変換でやばそうなのは、文字列連結の+くらいじゃないか?
0480デフォルトの名無しさん
2009/03/19(木) 00:49:50まったくのズブの素人で、htmlを扱えるくらいです
OSは窓XP
複数の画像を選んでそれが1つの絵になるジェネレーターを
作りたいのですが、一番最初に何を勉強したら良いかわかりません
JavaScriptだということは分かるのですが
素人ゆえ、その前段階で一体何から手を付けて良いのかチンプンカンプンです
最終的には、このような物を作りたいです
ttp://www.geocities.jp/nanika_jp/m/
宜しくお願い致します
0481デフォルトの名無しさん
2009/03/19(木) 00:52:33Javaでオーバーロードされてる演算子ってあれだけじゃないか?
0482デフォルトの名無しさん
2009/03/19(木) 00:54:34テキスト加工のための言語と言われるくらいだから当然かもしれないが。
>>478
文字列用の演算子って2種類くらいしか使わないと思うが・・
0483デフォルトの名無しさん
2009/03/19(木) 00:55:12PowerShellは、文字列と数値をごっちゃにしてかつ同じ演算子を使っているのが
よくない
が、
echo 1 + 1
をキモいと思わないのかw(別にechoじゃなくてもよい、コマンドが何であっても
同じことだ)
シェルなら、空白区切りのワードを切り貼りするだけで、
1 + 1を評価するにはexprだのbash拡張の$(())だのが必要なので評価のルールは明確だ
PowerShellはそうじゃない
0484デフォルトの名無しさん
2009/03/19(木) 00:55:44&だって他の用途あるじゃんw
0485デフォルトの名無しさん
2009/03/19(木) 00:57:11どんな用途?
0486デフォルトの名無しさん
2009/03/19(木) 00:58:030487デフォルトの名無しさん
2009/03/19(木) 01:00:41ごめん
0488デフォルトの名無しさん
2009/03/19(木) 01:03:470489デフォルトの名無しさん
2009/03/19(木) 01:37:32どこまで出来ているのかわからないけど
透過gifの作成 → ペイントソフト
複数の画像を重ね合わせて表示 → HTML
ユーザの選択に合わせて表示を動的に変化させる → Javascript
順番にクリアしていけば作れるようになるはず。
0490デフォルトの名無しさん
2009/03/19(木) 01:50:37とりあえず、そのページのHTMLとJavascriptを全部読みなよ。
ブラウザでソースを表示して、必要な.jsもダウンロードして。
分からないなりに全部目を通せば、
自分が何が必要か分かるでしょう。
まずはJavascript本ってことになるのでそうが。
0491480
2009/03/19(木) 02:31:11レスありがとうございます!
ページのソースをみているのですが、なんとなく分かったかもしれません
でも初心者なので多分間違ってると思いますが
とりあえず教本を購入してじっくり構えてみます
本当にありがとうございました!
0492デフォルトの名無しさん
2009/03/19(木) 02:42:250493デフォルトの名無しさん
2009/03/19(木) 02:57:510494デフォルトの名無しさん
2009/03/19(木) 06:27:04PowerShellは一人が暴れているだけだし、
Haskellはそれに引っ張られていくだけだろ。
勝手にランク付けするんじゃねぇよ。
0495デフォルトの名無しさん
2009/03/19(木) 08:01:18一人が必死になってるだけだろ。
1 + "1"なんてPythonみたいにTraceback返す方が親切だしだな。
ただ、Pythonの"w" * 10がキモいと思う時期が漏れにありました。w
0496デフォルトの名無しさん
2009/03/19(木) 10:30:59クイックリファレンスを読みながら試せば解決することじゃないか
初心者が必ず気付くガイドの類さえ全く読まないのはさすがに想定してない
他言語経験者が読み飛ばすことはあるかもしれないけれど
0497デフォルトの名無しさん
2009/03/19(木) 10:34:17そもそもトリッキーで醜い構文を持つ言語を初心者に推奨する理由はないよね
0498デフォルトの名無しさん
2009/03/19(木) 10:57:53PowerShellはちょっと酷すぎだろ
プログラミングという概念が頭の中に出来上がってない初心者にこんなものを
最初のモデルとして使わせるのは酷だ
.NET上で使えるインタプリタが欲しいんなら他にもあるんだしな
0499デフォルトの名無しさん
2009/03/19(木) 11:44:42ってのもある。
経験的に実行時に構文エラー吐くような環境って
実行→構文エラー修正の繰り返しになるから、
タイプミスの多い初心者に使わせて
あんまり良かった印象ないんだけど。
0500デフォルトの名無しさん
2009/03/19(木) 11:47:360501デフォルトの名無しさん
2009/03/19(木) 11:48:020502デフォルトの名無しさん
2009/03/19(木) 11:52:11HaskellやScalaなどの静的型言語のインタプリタを使えば良い
REPLは有用だ
0503デフォルトの名無しさん
2009/03/19(木) 11:54:36ミスをやらかせばその場でエラーになるし困らんだろう
0504デフォルトの名無しさん
2009/03/19(木) 12:27:520505デフォルトの名無しさん
2009/03/19(木) 12:28:41実行されなかったelse節の中に、
型エラーが残っているかも知れません。
静的型チェック+REPLならこういう問題はないですが。
0506デフォルトの名無しさん
2009/03/19(木) 12:42:48論理的なミスが残っている可能性は残る
その辺は「動かせば分かる」、というのが動的言語の方法論
どちらが良いとか言うつもりはない
0507505
2009/03/19(木) 13:13:13プログラマーのモラルハザードを招くのは確か。
「とりあえずXXXしといて、エラーでないようにしとけ」
「とりあえず常にXXXしとけ」
0508デフォルトの名無しさん
2009/03/19(木) 16:39:36except の中でよく忘れる
■ このスレッドは過去ログ倉庫に格納されています