[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/10 00:15 / Filesize : 160 KB / Number-of Response : 700
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

初心者のためのプログラミング言語ガイド Part14



1 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 08:53:41 ]
これからプログラミングを始める初心者の人に言語を薦めるスッドレ

質問者の方へ
どのプログラミング言語を最初に覚えるべきかは
なぜプログラミングを始めたいのか、何を作りたいのかによってまったく変わってきます。
なんとなく、でもかまわないので動機、用途、使っているOSを明記しましょう。

各言語の特徴はこちらを参照
Wikipedia Category:プログラミング言語
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 pc11.2ch.net/test/read.cgi/tech/1232286278/
Part12 pc11.2ch.net/test/read.cgi/tech/1226761546/
Part11 pc11.2ch.net/test/read.cgi/tech/1218282605/
Part10 pc11.2ch.net/test/read.cgi/tech/1215717670/
Part9 pc11.2ch.net/test/read.cgi/tech/1210941509/
Part8 pc11.2ch.net/test/read.cgi/tech/1208186034/
Part7 pc11.2ch.net/test/read.cgi/tech/1200807067/
Part6 pc11.2ch.net/test/read.cgi/tech/1193132235/
Part5 pc11.2ch.net/test/read.cgi/tech/1187886538/
Part4 pc11.2ch.net/test/read.cgi/tech/1177285633/
Part3 pc11.2ch.net/test/read.cgi/tech/1152778344/
Part2 pc8.2ch.net/test/read.cgi/tech/1122205164/
Part1 pc8.2ch.net/test/read.cgi/tech/1034505166/

※雑談はプログラマ板でやりましょう。

387 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 05:44:53 ]
>>350
学習用、入門用の言語としてはJAVAの方が優れている。
ただ、GUIを組むならC#の方が楽。


>>373
VCLは素晴らしいがパスカルなのがね。
パスカル、言語としては素晴らしいが今やマイナーだから。
C++Builderがあるけど、初心者にポインタ使わせたくないし。

真面目にGUIを組むなら、未だにDelphi or C++Builder/TurboC++が
一番とっつきやすくて効率良いと思うけどね。


>>381
商業利用じゃなきゃ無料だよ。
WindowsでGUI組むには一番楽な環境だからお勧め。

388 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 06:11:57 ]
VCLはclass libraryとしてはあまりよろしくないと思ったり。
デザイナは便利なんだが。

OWLはきれいでよかった…



389 名前:デフォルトの名無しさん [2009/03/17(火) 06:25:42 ]
TurboC++/OWL使ってた
ちゃんとObject指向設計されていた
クラスライブラリだった

一方MFCの酷さには吐き気がした
ただのwrapper以下だった

390 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 06:30:34 ]
まあ、VCLはクロージャ使って親子関係を無視した
ハンドラの割り付けが出来るのが肝だから。

MFCはありえないよな。
.Netのクラスライブラリも大概に酷いけど。

391 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 08:54:23 ]
一向に中身のあるTipは現れないw


392 名前:391 mailto:sage [2009/03/17(火) 08:56:22 ]
誤爆でした。

393 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 16:13:21 ]
ここって、初心者を混乱させる為のプログラミング言語ガイドになってるような
印象があるな。消去法ならC#,Javaはあかんと思う。必要以上にオブジェクト指向
に依存しているものって、他の言語をやることになったときにそれが、悪い癖に
なるからね。また、動的言語と静的言語では勧められる開発環境から違いすぎ
るからな。難しいよね。あとは、関数型と手続型でもね。

関数型から始めて手続型は慣れやすい。逆は混乱しやすい。最初は関数型の
ほうが望ましい。再帰の理解度の違いだけだが。また、デバックやプロファイル
といったところも根本的に違いがある

ruby ...いろんな言語のいいとこどりをしてるので、他の言語に移っても違和感が
すくないとおもう。

lisp系...他の言語を齧ったら、触りにくいけど、lispから他は問題なし。むしろ、lisp
でのアイデアを拝借している言語のほうが多いので、それらの概念の理解には
有利になるね。まったく何もしらない人より、他の言語をあつかっている人にアレ
ルギーは多い。他を知ってるが故に出来なくなる言語だな。(特に頭の硬いもの
にはオススメできない。)でも逆はなりたたない。知ってれば有利になる言語

haskell ... 数学的素養があるなら(アレルギーがないなら)なじみやすいと思う。でも
情報源が限られているから、英語の理解も欲しい。これはlispも同じ。

MS依存は一生食い潰される覚悟があるならお勧めする。でも、日本語のソース
の多さを考えるとrubyで言いんじゃないかと思うね。別にschemeでも良いし、python
でもよいけど。ただし、これらはwindowでは良い環境はないと思う。windowsの環境で
MSのものが使い易いのは当然の話。MSの商法を考えれば無理もない。apiやjavaや
netscapeのことなどを調べれば普通のことだ。他の使い勝手を意図的に悪くするように
して、囲い込んだ歴史で大きくなってるんだから。それに飲み込まれた奴がここに多
いだけだろ?

javaならeclipseかnetbeansに辿りつくけど、IDEの問題はLL言語の良さを7割カッ
トすることにある。あれは静的で手続き型言語のために出来ている。

394 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 16:40:50 ]
>>393
現実から目を背けてはいけない。
PCユーザの9割以上がWindowsを使用していて,
プログラミングを覚えたい初心者の9割以上が
Windowsで動くアプリを作りたがっている。

サッカーボールを買いに来た少年にバスケットボールを買わせるのは
個人の趣味を押しつけてるだけでアドバイスとは言わない。

395 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 16:46:23 ]
Ruby が Windows で良い環境が無いのは同意だけど
Python は Windows でも全然問題無いと思うよ
Ruby はどこかの誰かが意図的に Windows で動かなく(ry



396 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 16:48:30 ]
俺はwindowsから始めたのは確実に失敗でlinuxとかfreeBSDから
言語はcommon lispやMirandaからやるべきだったと思ってるけど、
今の初心者さんたちにもそれが当てはまるかっていうとそうでもないからなぁ

397 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 16:59:14 ]
まあ「Mirandaから」は有料だったからない。
いい言語だったとは思うが。

俺はPython, Java, Javascriptを押す。
どれもマルチプラットフォームだし、
そのままサーバーサイドにも行ける。

398 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:03:48 ]
WindowsでGUIでほにゃららしたいって人には
Perl/Python/Rubyを勧める気にはなれないなあ

CUIなら全力でPerl/Python/Rubyを推すけど

>>397
JavaScriptのコマンドラインコンパイラで
Windows向けコンパイル済みのあったっけ?
無いと初心者には厳しいとおも

399 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:04:06 ]
Windowsで始めたい初心者は、WSHあたりで自分が普段使ってるアプリの自動化などで
スクリプトを書いてそれを実用化することのおもしろさを体感するとこから始めるのがいい
プログラミングと聞いて、Hello Worldから始めるのはオススメできないな。

400 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:33:40 ]
もうDelphiでいいよw

401 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:36:08 ]
>>398
Javascriptのコンパイラ自体ほとんどないのに、
さらにコマンドラインでWindowsって…
ECMAScript4(お流れ)準拠も付けとくか?


402 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:58:03 ]
初心者だろうと、WindowsでGUIと言うかアクションゲームを作りたいとか言うなら「C++にしとけ」って言うけど。

マルチプラットフォームと言うか色々な環境で活用できると言うなら、
JavaかPythonくらいでいいんじゃね。

単純なGUIだったら、どんな言語でもそれなりに出来るし。

プログラミングを楽しむ(?)ってノリならPythonかhaskell辺りで止めとくのがある種の幸せだと感じるけど。

403 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:04:51 ]
これ普通入ってるでしょう。
JavaScriptとしての互換性は充分高いよ。
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>jsc
Microsoft(R) JScript Compiler version 8.00.50727
for Microsoft(R) .NET Framework version 2.0.50727
Copyright (C) Microsoft Corporation 1996-2005. All rights
reserved.

404 名前:398 mailto:sage [2009/03/17(火) 18:13:25 ]
>>403
うわ、知らなかった。サンクス
.NET Framework 2.0入れて付いてくるコンパイラって
VB.NETのvbc.exeとC#のcsc.exeだけだと思ってたよ

Console.WriteLineじゃなくてprintでOKみたいだけど
NETのライブラリも使えるJavaScriptのスーパーセットって認識で大丈夫?

405 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:59:34 ]
Cから始めよう。
今君たちが使っているソフトの大半はC/C++で書かれている。
これは、いいソフトを作ろうと思うと結局Cになることを示す、大きな証だ。
プログラミングを続ける限り、Cは避けて通れない。



406 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 19:45:23 ]
>>405
その理論は最終的に機械語に行き着く危険

407 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 20:06:58 ]
Cは自由度が高すぎる。

例えば、
大人に自由にやれ!と言うと、それなりの規律があるけど
全くの子供に自由にやれ!というと、大怪我の元。

中級くらいでCに一旦戻るのが理想だと思う。
初心者は、ガチガチで、1つ間違えただけでコンパイルエラーが出るもののほうが良い

408 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:24:58 ]
俺は強力な対話環境(REPL)が利用できる言語をオススメするぜ
Lispの影響を受けている関数型言語やLLでは大抵REPLが使えるが
C/C++/Java/C#のようなメジャーな言語にはREPLはない

REPLありなしでは、学習効率が天地ほども違うと思っていいよ
電卓のような感覚で色々試行錯誤ができるからな
そして試行錯誤の積み重ねが学習においては決定的に重要だ
初心者だけに限った話じゃないよ

409 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:08:17 ]
つーかさ、覚えたい人間の目的ありきなんじゃね?
議論するなら、仮想でいいから
「グラフィックばりばりのゲーム作りたい人」、とか「だるい作業の手間を減らしたい人」とか決めてやれよ。

>>399ってPowerShellな人でしょ?
言いたい事はよくわかるが、「自分が普段使ってるアプリの自動化」
とか言われても、そういう人間には理解できないし、そういう人間が大半。

業務でUN*X使ってるような人間なら、嫌でもBシェルスクリプトで自動化覚えるけどな。
Windowsクライアントをいくら使っててもWSHにいきつく人間は一握り。

410 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:14:03 ]
>>408
それって、IDEでコンパイル速度が速ければいいんじゃね? って気がするけど、違うのか。

411 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:14:07 ]
だね、目的がハッキリしないのに議論してもしょうがない

412 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:31:07 ]
>>410
REPLをさわったことはある?
LispでもPythonでもScalaでもHaskellでも何でもいいが

例えばEmacsなら立ち上げればそこにEmacsLispのREPLがあり
いつでもLispの式を評価できる
1 + 1を計算したければ
(+ 1 1)
とタイプして、Ctrl + Jをタイプするだけだ

.emacsを編集したら、それはやはりLispの式の集合だから、
その場でその全てまたは部分をevalして、エディタにモンキーパッチを
当てることが出来る

はっきり言って、俺としては全く違うとしかいえない

それ以前の問題として、C系言語はひどく冗長でいろんなことが
しち面倒臭いというのはあるけどな

413 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:42:27 ]
>>410
408じゃないが、経験上だいぶ違う
毎回コンパイルする方式だと、最低キー入力1つかクリック一回が必要で
かつ出力を得るには、print系のものを埋め込んでおく必要があることが多い
対して対話環境なら、入力区切りごとに式を評価、評価結果を出力してくれる

時間的には僅かな差だが、数百回数千回繰り返すことを考えると?
かなり効いてくる

もっとも、目的に適う言語があるのに、対話環境が無いからって別の言語を勧めるのは本末転倒だとも思う
ただ例えば、プログラミングの学習自体が目的って場合とかなら、
対話環境がある言語ってのは有力な絞込み条件になるのではと

414 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:42:28 ]
>>412
N88BASICなら多少…

ってのは冗談だけど、まあ、たぶん
「コードを書いてF5。ちょっと改造してまたF5」
とかでもぜんぜん同じだろうな。

415 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:47:22 ]
> もっとも、目的に適う言語があるのに、対話環境が無いからって
> 別の言語を勧めるのは本末転倒だとも思う
> ただ例えば、プログラミングの学習自体が目的って場合とかなら、
> 対話環境がある言語ってのは有力な絞込み条件になるのではと

まあ概ね同意
それと、例えば.NETやらJVMやらを使う場合は、それらの上で動作するREPL環境は
ライブラリを試したりするのに有用
(たとえ「本番」ではC#やJavaを使うのであっても)




416 名前:デフォルトの名無しさん [2009/03/17(火) 23:25:51 ]
そろそろDelphiマンセーってことで締めくくらないか?
ダメ?

417 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:30:29 ]
OK

418 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:40:17 ]
>>401
それって、ActionScriptベースのJavaScript3.0になる予定だったやつ?
あれになっていれば本当に良い入門言語&リッチWEBクライアント構築言語になってたのにな。
将来性のある規格はみんなMSが割り込んで死産させるからな(--#

419 名前:デフォルトの名無しさん [2009/03/18(水) 00:06:57 ]
すみません244の者です

cygwinでプログラムの実行ができないんです。gccが使えないというか……
どうすればよいのでしょうか?

420 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:18:48 ]
>>419
どう実行しようとしたんだよ。
gccは使えたの?使えなかったの?はっきりしろ。
日本語が不自由ならエスパースレへ行け。

421 名前:デフォルトの名無しさん [2009/03/18(水) 00:32:35 ]
使えませんでした。

422 名前:デフォルトの名無しさん [2009/03/18(水) 01:11:07 ]
ここは2CH?
板一覧にないんだが

423 名前:デフォルトの名無しさん [2009/03/18(水) 01:21:32 ]
gccで実行した結果

bash: gcc: command not found

と表示されます

424 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 01:26:50 ]
apt-get install gcc

425 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 01:27:21 ]
cygwinでプログラムの実行をgccでもって行おうとした結果gccが見つからないとシェルが報告した
gccでプログラムを実行するというのが分からんな

cygwinはgccをデフォルトでインストールしないんじゃなかったか?
gccがインストールされているかどうか確認しろ



426 名前:デフォルトの名無しさん [2009/03/18(水) 01:58:47 ]
gccをデフォルトでインストールはたぶんしていないと思います。
そのやり方が分かりません。ただ単純にググったときに出てきたページそのままをやっただけです。

427 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 02:03:56 ]
邪魔しないでください

428 名前:デフォルトの名無しさん [2009/03/18(水) 02:20:00 ]
でもmkdirやlsなどのコマンドは使えます。どうしてgccが使えないのか分かりません。素人ですみませんがどうしても学びたいんです。

429 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 02:33:14 ]
インストールしろ。
gcc cygwin インストールでググれ。

430 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 03:02:44 ]
うちでは使えてるよ

431 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 05:58:39 ]
>>428
setupで何も考えずに全パッケージ選べ。
そうすれば確実に使える。



432 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 06:45:34 ]
>>412

同意。

C#風の対話型環境があればいいのだが……現実には、クラスライブラリの挙動を
対話的に確かめる手段はPowershellってことになる。

433 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 07:23:34 ]
構造体って配列に名前をつけれるようなもの?

434 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 07:38:25 ]
CsharpReplを嫌うのはなぜ?

435 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 08:14:40 ]
>>433
そーゆー考え方なら
配列  同じ大きさの箱をまとめたもの
構造体 違う大きさの箱を一個にまとめて、箱に名前つけたもの
かなあ




436 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 09:41:22 ]
>C#風の対話型環境があればいいのだが……現実には、クラスライブラリの挙動を
>対話的に確かめる手段はPowershellってことになる。

Powershell厨がそろそろウザいんだが。

こいつらはPythonの存在を無かったことにしたいのか?と感じる。
こっちも対話式に式やオブジェクトやライブラリの挙動を確認できるんだが。

もうちょっと現実的な話をしろよ。

そもそもクラスライブラリをPowershellから呼び出すヤツは初心者じゃねーっつの。

437 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 10:05:25 ]
>>393
宗教ガイドスレでもないのでご注意ください

438 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 10:09:51 ]
PowerShellだと
1 | gm
IronPythonだと
dir(1)
とかだな

PowerShellは二つの言語を無理やりくっつけたようなトリッキーな構文なんで、
初心者には理解しにくいし、プログラミングの勉強にも適してないと思う
1+1が2に評価されるのに
echo 1+1は1+1を印字するとかな

439 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 10:39:36 ]
>>436

Pythonの対話型は好ましい。C#でそれに相当するほどの出来栄えのものはない。――と
いうことがいいたかったんだが。

440 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 10:46:51 ]
>>439
だから何故、CsharpReplを無視する?

441 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 10:56:02 ]
Monoにはそんなのあるんだね

442 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:21:32 ]
PowerShellな人の「手段はPowerShell・・・」な話の展開はおかしいよな。

ライブラリの挙動を対話式に知りたいなら>>436の言う通りにPythonの方が遥かに手軽だしなぁ。
なぜにいきなし茨の道な展開を初心者に植え付けようとしているのかイミフメイだ。

正直、高機能なGUIアプリでなければ.NETのクラスなんか使わなくても
大抵の事は実現可能だし、Windows環境で高機能なアプリを作る目標があるなら、
最初からC++で頑張ればいいワケだし。

PowerShellを全否定するわけじゃねーけど、初心者にPowerShellはねーな。
せめて「業務でWindows鯖を使っていてWSHは習得した初心者向け」ってトコが関の山。

443 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:00:28 ]
Windowsべったりを望んでないかぎり、
PowerShell, C#, C++/CLIはありえないな。
三つともドメスティック仕様の転用効かない言語だから。
C#にはmonoもあるが古いままだし。


444 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:21:33 ]
俺は>>289だけど(432じゃないよ)、(Windows使ってて)元々これといった目標がない人向けに押したつもり
そこが言い足りてなかったから>>292で付け加えたけども

コマンドが覚えやすくて、やりたいことなくてもそのコマンドの出力を弄ってみるところから初めて
変数に代入してみたり制御構文使ったり、という風に少しずつ学べるからいいと思った

>>438
パイプを使うことがトリッキーなら最初は Get-Member -InputObject 1 でいいじゃん
見た目長いけど補完できるんだし、慣れれば gm -i 1 とできる
文字列を出力したいなら引用符で囲むだけでいい(関数や構文を覚える必要はない)わけで
echoを使う機会自体すくない

445 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:24:07 ]
それで何か不満が出たなら、それはやりたいことがうまくできないから不満が出るわけで
じゃあ目標できたってこと(だから適した別の言語選べけばいいし、あえて続ける必要はない)
ということも>>328で言ったつもり



446 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:27:33 ]
Mono古くないよ。
最新ではないが、LINQも使えるし。
このリリースペースだからキャッチアップしていくだろう。
Apple純正以外で、まともにiphoneアプリ書ける唯一の環境じゃないかな。

447 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:37:18 ]
>>440

無視したのではなく、>>432を書いた時点でCsharpReplの存在を知らなかった。

>>442

Pythonが手軽ということに異議はない。>>432はC#についての肯定的な意見ではない。
(ただし、この見解はCsharpReplに慣れてきたら変わるかもしれない。)

448 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:47:41 ]
>>444
トリッキーなのはパイプじゃなくて、
実質的に二種類の相異なる構文が共存していること自体だよ
「〜すればいい(回避できる)」ってのは初心者向けの言い草じゃないぞ

1# 1+1
2
2# 1 + 1
2
3# echo 1+1
1+1
4# echo 1 + 1
1
+
1

こんな言語に初心者をつきあわせたいの?
全く理解しかねる


449 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:29:43 ]
>>446
> Mono古くないよ。
> 最新ではないが

えー


450 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:55:42 ]
echoはスペース区切りをリストコンテキストとして評価するってだけで
この手の話はPowerShellに限った事ではないと思うけど
まあ確かに>>448の例は直感に反する結果だわな。

451 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 18:28:11 ]
>>450
echoの仕様は関係ない
PowerShellの構文/パーサが変態なだけ

ちなみに
1 + 1 | echo
は2を印字する



452 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 18:51:45 ]
>>451
そうなのかぁ
なんだかややこしそうだから一度勉強してみるわw

でもって
1 + 1 | echo

echo (1 + 1)
と同じ意味になるはずだから
2を印字するのが直感と合致してて問題ないと思う。

453 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 19:21:13 ]
PowerShellのことはよくわからんが、俺の感覚的に、
echo 1 + "1"
だったら、 1 + 1 と表示してほしいが、
echo 1 + 1
だったら、2と表示してほしいな。

454 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 19:37:54 ]
>>453
1# 1 + 1
2
2# 1 + "1"
2
3# "1" + 1
11
4# "1" + "1"
11
こうなる
ちなみに全部、echoに引き渡すと
1
+
1
と印字される


455 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 19:50:57 ]
4月から大学生になり、大学ではCをやるみたいです。
ところが自分はMac使いなので、Cocoaに興味があるのですが、 Cocoaをやっていると大学でやるCに対してアドバンテージになりますか?
また、MacでCをやるのはどうですか?
プログラムの経験はPerlとPHPをかじった程度です。



456 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 20:18:16 ]
>>455
大学でのアドバンテージは考えずに、
Objective-C + Cocoaやればいいと思うよ。
一番のアドバンテージは、Cをやっていたということより、
自分の興味のあることに自分の力で勉強する習慣。
だからCocoaをやるのはいいこと。
結局はアドバンテージにもなる。

457 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 20:19:26 ]
ちなみにObjective-Cは、
CにSmalltalk風のオブジェクト指向の機能を付加したもの。
昔は独自プリプロセッサ+ライブラリだった。

458 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 20:32:28 ]
レスありがとうございます。
Objective-Cをやるにあたって、Cを知っている必要はないのですね。
書籍を探してみます。

459 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 20:36:36 ]
C知っていた方が習得が早いってだけ。
けどその早さはプログラミングの勉強全体に比べたら誤差みたいなもの。

460 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 20:46:54 ]
大学で習うCなんて、ツマランものだよ。
ただ、打って動くよ〜って確認だけ。なんでそう書くのか・・・は習わない。


461 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 21:33:07 ]
それは大学や講義による。

462 名前:デフォルトの名無しさん [2009/03/18(水) 21:41:49 ]
>>431
それは
Deuel Defaultってとこを全て選ぶという事ですか?

463 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 22:11:44 ]
>>455
ミイラとりがミイラにならなければ何やってもよろし

464 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:13:00 ]
>>454
それは直感に反してないな。

465 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:15:35 ]
このスレの3大言語

・PowerShell
・Lisp
・Haskell



個人的には、以下の3つのどれかからでいいと思うんだけどね
・C
・C#
・Python



466 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:27:28 ]
>>465
> 個人的には、以下の3つのどれかからでいいと思うんだけどね
> ・C
> ・C#
> ・Python

ここにJavaも加えたいね。

467 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:33:10 ]
>>465
構造化
静的型付オブジェクト指向
動的型付オブジェクト指向

バランス取れてるな。
好みでC#の代わりにJava、Pythonの代わりにRubyって感じか。

468 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:36:41 ]
>>448
すればいい、じゃなくて初心者がechoを使うことを思いつくと思えない(もっと簡単な方法があるから)
その部分は付属のクイックリファレンスにも詳しく書かれてるし
メソッドとコマンドの違いを明確にできてむしろいいことだと思う

469 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:50:15 ]
1 | gm
gm -i 1
はSystem.Int32のメンバーを取得し表示する
gm 1 + 1
gm | gm
はエラーだ

gm -i gm
はどうか?
やってみれば分かるが、System.Stringのメンバーが表示される

俺にはどうしてそこまでPowerShellのような代物を初心者向けと推せるのか
さっぱり理解できない

470 名前:469 mailto:sage [2009/03/18(水) 23:51:00 ]
- gm 1 + 1
+ gm -i 1 + 1
としてくれ

471 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:57:39 ]
>>464
そうだろうか。加法の交換法則すら満たされていないことが観測されるし
式の評価ルールがPowerShellを知らない人には全く自明でない。
つまり、1 + 1がいつ誰によってどのような条件で評価されるのかが分からないだろう。

ちなみにPythonでは次のようになる。
1 + 1 -> 2
1 + "1", "1" + 1 -> エラー
"1" + "1" -> "11"

printに引き渡した場合の結果はこれと同じだ。
print 1 + 1 は2を印字する。

472 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:17:28 ]
>>471
その結果はおそらくperlと同じだし、式の型は最初に評価されたパラメータに確定して、
残りのパラメータはその型にキャストされるというルールであれば、問題ないよ。

初心者向きかというと、はなはだ疑問だが。

473 名前:471 mailto:sage [2009/03/19(木) 00:19:01 ]
> 加法の交換法則すら満たされていない
これはちょっと言い過ぎた
文字列を+で加算する言語は、どのみち文字列加算が可換じゃないから

それにしてもPowerShellの構文をキモいと思わない人が多いのか?
ちょっと驚きだな

474 名前:471 mailto:sage [2009/03/19(木) 00:21:19 ]
>>472
残念ながらそれは違う
perl -e 'print 1 + "1", "\n"'
perl -e 'print "1" + 1, "\n"'
どっちも2を印字する

475 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:29:37 ]
>>474
ちなみにJavascriptは、

> 1 + "1"
11
> "1" + 1
11

こういう暗黙の変換は有害。



476 名前:471 mailto:sage [2009/03/19(木) 00:32:00 ]
>>475
だよね

477 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:36:21 ]
この件に関しては、文字の結合と加算が同じ演算子なのが混乱の原因だと思う。
暗黙の変換があっても、文字連結演算子なら文字列に変換、加算演算子なら数値に変換とすれば、混乱はない。
そういう意味ではVBの&は偉かった。VB.netは知らないけど。

478 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:42:22 ]
>>477
そんなの古すぎw
演算子どれだけあっても足りないし、
演算子使いたいところで関数呼び出し使うことになりかねない。
Pythonのスタイルがいいよ。

Rubyも同じです。
"1" + 1 → in `+': can't convert Fixnum into String (TypeError)
1 + "1" → in `+': String can't be coerced into Fixnum (TypeError)

479 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:49:27 ]
>>478
どれだけあっても足りないって、何を追加するつもりだ?
自動型変換でやばそうなのは、文字列連結の+くらいじゃないか?

480 名前:デフォルトの名無しさん [2009/03/19(木) 00:49:50 ]
質問させて頂きます
まったくのズブの素人で、htmlを扱えるくらいです
OSは窓XP

複数の画像を選んでそれが1つの絵になるジェネレーターを
作りたいのですが、一番最初に何を勉強したら良いかわかりません
JavaScriptだということは分かるのですが
素人ゆえ、その前段階で一体何から手を付けて良いのかチンプンカンプンです
最終的には、このような物を作りたいです
ttp://www.geocities.jp/nanika_jp/m/
宜しくお願い致します

481 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:52:33 ]
というか、なぜ文字列連結に + を選んだのか、理解に苦しむ。
Javaでオーバーロードされてる演算子ってあれだけじゃないか?

482 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:54:34 ]
やはりこの辺はPerlが一番便利で分かりやすいね。
テキスト加工のための言語と言われるくらいだから当然かもしれないが。

>>478
文字列用の演算子って2種類くらいしか使わないと思うが・・

483 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:55:12 ]
Perlやawkのような言語は、文字列演算子を分けるスタイルだね
PowerShellは、文字列と数値をごっちゃにしてかつ同じ演算子を使っているのが
よくない

が、
echo 1 + 1
をキモいと思わないのかw(別にechoじゃなくてもよい、コマンドが何であっても
同じことだ)

シェルなら、空白区切りのワードを切り貼りするだけで、
1 + 1を評価するにはexprだのbash拡張の$(())だのが必要なので評価のルールは明確だ
PowerShellはそうじゃない

484 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:55:44 ]
>>477
&だって他の用途あるじゃんw

485 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:57:11 ]
>>484
どんな用途?



486 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:58:03 ]
ビット演算でしょ

487 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 01:00:41 ]
あ、VBなら&はビット演算子じゃないね
ごめん






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<160KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef