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


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

【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】



1 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 23:40:48.89 ID:FvOeAcfn.net]
前スレ

【JavaScript】スクリプト バトルロワイヤル54【php,py,pl,rb】
echo.2ch.net/test/read.cgi/tech/1458955459/

210 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 18:35:13.38 ID:lOW+ixbD.net]
静的型の信者じゃないけど、これじゃ同等とは言えないだろ
代数的データ型&パターンマッチだったら、こんなコードはコンパイルエラーだ

conn = ConnectionInfo.new(ConnectionState::Connecting.new(Time.new()),
IPAddr.new("128.0.0.1"))
if conn.connection_state.kind_of? ConnectionState::Connecting
p conn.connection_state.last_ping #=> ERROR!!!
end

211 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 19:41:21.21 ID:lOW+ixbD.net]
>>209
だから、作るものによって静的が向いてるものもあれば
動的が向いてるものもあるよな?って単純な話なんだけど
HelloWorldおじさんは違う意見みたい

212 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 21:35:33.44 ID:/aiIuy0q.net]
そうだよね。作るものによってというのが重要。

代数データ型が適している分野で例えばライブラリを作って終わりみたいな
仕事だと、差が出るかもしれないけど、実際にやった仕事(勉強とかではなく)で
代数データ型があったらなぁって思ったことある?

仮に有ったとしても全体のごく一部だけだろうね。
だから言語の違い程度でそんなに差は出ないっていうのは間違っていない。

213 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 22:05:06.83 ID:kMzukS4D.net]
>>212
お前が差が出ないのを示せたのはHelloWorldだけだろw

214 名前:158 [2016/10/19(水) 22:29:30.29 ID:SBws4+ZC.net]
>>202
あのぉ代数的データ型君よ、ナゼ>>173のリンク先文書の中から
わざわざそのパラグラフを引用して静的型付けの利点だとドヤ顔してるの?
そこは(「静的型付け」ではなく)正に「代数的データ型」の利点だ
どうやら代数的データ型君は、静的型付けと代数的データ型との違いも分からず
ごっちゃに理解して分かったつもりでいることを自らゲロっちゃったみたいだね

というか、そもそも「不変条件」にしても分かっていないんじゃないの?
だからアサーションを「いわゆるテストの一種」などと書いてしまうんだろな
何度も繰り返すけど、代数的データ型と静的型付け(or 型システム or 型推論)の
利点は異なるし、それらをごっちゃにして議論を進めるべきではない

たとえば、完全な型システムを備えた静的型付け関数型言語 OCaml であってすら、
代数的データ型を用いずにネットワークコネクション状態管理を定義すると
(>>173文書の type connection_state = | Connecting | Connected … で始まるコード)、

 {state: Disconnected, last_ping_id: 100, …(中略)… }

というコネクション情報値を表すコードに対して、OCamlコンパイラは
以下の要求仕様に含まれる不変条件に違反しているというエラーを検出できない

 > * last_ping_time と last_ping_id は keep-alive プロトコルの一部として使われます。
 >   …(中略)…
 > またこれらは state が Connected の時にのみ存在します。

だから代数的データ型を使いましょうね、って言うのが>>202が引用したパラグラフで
>>173リンク先文書の著者が読者に伝えたかった主旨であって、静的型付けとは無関係なのよ
さあ>>202の代数的データ型君よ、これで代数的データ型の利点は理解できたかね?

215 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 22:33:50.18 ID:pM+OMbbr.net]
>>214
それは代数的データ型の利点じゃないな。
代数的データ型を使うという手段が目的となっていて
その手段を使おうとすると問題が発生する。

自ら苦行の道を進んで、苦しいのが解決したという
つまりマイナスがゼロになっただけなのに、
(マイナスの状態から)増えたという変化の一部しか見てない。

216 名前:158 [2016/10/19(水) 22:43:15.12 ID:SBws4+ZC.net]
>>206
>>198で書いたけど、代数的データ型君は代数的データ型に関して
無知だということに気付いたけど、その事実を認めたくないんだろね
だから>>211みたいに、代数的データ型の議論を「静的 vs. 動的」という
対決構図へすり替えようと必死なんだと思われ

217 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 22:53:00.17 ID:aQ7ihF1n.net]
そもそもこいつは、フレームワーク無しの素のRubyでHelloWorld書くのと、同じように素のPHPでHelloWorld書くのでPHPの方が楽だって認めてるんだろ
それこそ「言語による効率の違い」だろ

フレームワーク使えば同じになるって、そりゃ「言語の違いをフレームワークが吸収した」って言うんだよ

218 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 23:11:26.37 ID:pM+OMbbr.net]
>>217
吸収してしまって、その違いが些細なものとなってしまったわけですよね?



219 名前:デフォルトの名無しさん [2016/10/19(水) 23:17:47.00 ID:IHKURc/r.net]
>>188
そのアンカーは>186のが相応しそうだが

220 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 23:23:44.73 ID:kMzukS4D.net]
>>214
そんなゴタクはいいから、さっさと>>210みたいなコードが書けないrubyの例を見せて下さいよ
それともC1カバレッジのテストでもやるの?

221 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 23:26:44.07 ID:kMzukS4D.net]
コード書くとボロが出ちゃうから、またコード書かずに長文書く書くマンに逆戻りかな?w

222 名前:158 [2016/10/20(木) 00:41:54.83 ID:UafaUCbB.net]
>>220,221(ID: kMzukS4D)
>>216でも書いたけど、ホントに代数的データ君は議論の焦点を
代数的データ型から静的/動的へすり替えようと必死だねえ
ねえ、どうしてそんなに必死なの?

>>210氏の指摘は代数的データ型に関するものではなくて、
型付けが静的/動的という違いに起因するもの
動的型付け言語であり、言い換えると型システムを持たないRubyでは、
パターンマッチの網羅性に相当する型エラーをコンパイル時には検出できない
繰り返すけど、こんな静的/動的の話はこのスレの住人であれば当たり前だよな?

ただし実行中であれば動的に型検査できる
特にRubyであれば簡潔にコードとして表現できる
コードは代数的データ型の議論が終結したら示すよ

で、代数的データ型君は代数的データ型について理解できたのかな?

223 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 01:09:47.56 ID:vzgaJJkb.net]
>特にRubyであれば簡潔にコードとして表現できる

簡潔に表現したコードなんて出てなくね?OCamlに比べたら冗長でしょ

224 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 02:29:07.30 ID:lUeWQjIy.net]
OCamlがスッキリ書けるのは
普通はあまりやらないような特殊な用途だけで
COBOLと同じようなDSLと思えばいい。

嘘だと思うのなら、今までの人生で勉強以外で
OCamlで書いたコードを言ってみたら良いよ。
言えないか、ある種の自慢話(俺こんな高度なことしたんだぜ(笑))のような
どこで使うのは全くわからない話をするしかないだろう。

225 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 03:21:02.12 ID:vzgaJJkb.net]
簡潔じゃないものを簡潔だと言ってるから違うと言っただけだけど?
まあ書いた本人も冗長と認めたっぽいから良いか
流石にアレを簡潔はないよな〜

226 名前:デフォルトの名無しさん [2016/10/20(木) 07:14:57.75 ID:vW88Z4VH.net]
>>218
服を着るようになったから人間に肌の色の違いはない
って言ってる?馬鹿なの?

227 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 09:18:03.49 ID:lUeWQjIy.net]
>>226
例えが意味不明

228 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 13:34:29.50 ID:KC19vCT1.net]
>>224
>>27みたいな仕事はお前から見たら特殊な用途だと思うけど、
それでも生産性に差は無いんじゃなかったっけ?
それとも用途によっては差が出るに意見を変えたの?



229 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 20:52:40.32 ID:ZXfPioz4.net]
>>228
俺は差が0とは言ってないよ。殆どないと言ってる。
殆ど無いという理由は、大きな全体があってその一部だけしか差がないから。

ベンチマークの話に例えよう。俺が使っているクラスライブラリがバージョンアップして
「○○クラスのオブジェクトのインスタンス生成が100倍速くなりました。」と書いてあったとしよう。
これで俺のアプリが100倍速くなる!・・・なんてことはいわない。
当たり前だよな。○○クラスのオブジェウトのインスタンスを何個生成するかによって変わるんだから。
一回のインスタンス生成にかかる時間が100マイクロ秒から1マイクロ秒に速くなった。
たしかに100倍だがそのオブジェクトを1000個しか作らないなら100ミリ秒が1ミリ秒になるだけ。

生産性もそれと同じ。特殊な用途であることは誰も否定しないだろう。
(先に俺が言った「嘘だと思うのなら、今までの人生で勉強以外でOCamlで
書いたコードを言ってみたら良いよ」に答えてないのがその証拠)

特殊な用途というのは使われる機会が少ない。プロジェクト全体のごくわずか。
だからそんなものは生産性に大きな差を与えるものにはならない。

「特殊な用途」がプロジェクトの殆どを占めることだってあるかもしれないだろ
みたいな話はいらんからね。そんな言い訳する代わりに「今までの人生で(略)」に
答えればいいだけなのに答えないって、こ・と・はぁ〜って思うだけだから。

230 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 21:30:03.25 ID:G0R2mg5X.net]
HelloWorldが仕事の大部分を占めればそうなるわな

231 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 21:33:15.39 ID:ZXfPioz4.net]
普通の人に仕事の大半がそうだろうなw

「今までの人生で(略)」

232 名前:デフォルトの名無しさん [2016/10/20(木) 23:18:09.29 ID:vW88Z4VH.net]
>>227
どんな言語でもフレームワークを使えば同じように書けるから言語による差はない
って言ってる?馬鹿なの?

233 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 23:58:59.82 ID:RjGt0l94.net]
前提も頭も狂ってるから結論もおかしくなってることに気づかないバカ

234 名前:デフォルトの名無しさん mailto:sage [2016/10/21(金) 00:01:07.08 ID:wzbGy53g.net]
>>232
差がないのは言語による開発効率ね。
言語に違いは有っても開発効率に大きな差はない。

235 名前:デフォルトの名無しさん mailto:sage [2016/10/21(金) 10:41:13.06 ID:kR8VeEnh.net]
>>229
コード書けないHelloWorld長文おじさん

236 名前:デフォルトの名無しさん mailto:sage [2016/10/21(金) 18:09:04.13 ID:vB7jIyI4.net]
>>234不正解

理論上は開発効率に大きな差があるが
現実は下請けに回ってきた時点で言語や環境が決められているか
既に決まってスタートしているので考える余地がない
が正解

237 名前:デフォルトの名無しさん mailto:sage [2016/10/21(金) 22:13:42.38 ID:wzbGy53g.net]
下請けの反対は元諸けと思うが
元請けとか上流になるにつれて言語は使わなくなっていくはずだが?

UIとかウェブアプリのフロントエンドとか
エンドユーザーに近いものほど、汎用的なものを使って
一般的なやり方ができるので言語の違いの差は出てこなくなる。

言語の違いだけで、大きく開発工数が変わるとしたら
むしろ下請けというか特殊なライブラリだけを作っているようなところだよ。
大企業から頼まれてある機械の部品を専用に作る町工場みたいな。

ただ今時そんなことだけやってるような会社あるかな?
ハードと違って一回作れば終わりだもんね。仕事が見つからないだろう。

238 名前:デフォルトの名無しさん mailto:sage [2016/10/21(金) 23:36:53.11 ID:kR8VeEnh.net]
このドカタには内製って発想がないのかな?
>>27を読んでフツー多重下請けの話だと思うか?



239 名前:デフォルトの名無しさん mailto:sage [2016/10/21(金) 23:42:21.89 ID:p3mW1/xP.net]
>>237
上流になるほど「安い人を大量に集められる言語」って基準で選ぶんだよ
そこに開発効率なんて言葉はない

240 名前:デフォルトの名無しさん mailto:sage [2016/10/21(金) 23:45:48.48 ID:p3mW1/xP.net]
あと、上流は1つだけの下請けに出すわけじゃないからね
複数の下請けに出すことの方が多いから、余計に「安い奴隷を集められる言語」に行く可能性は高い
どっかの下請けが夜逃げしたとしてもすぐに補充がきくようにね

241 名前:デフォルトの名無しさん [2016/10/21(金) 23:50:54.50 ID:QizP+3wH.net]
かつての日本は研修以外ではコード書かなくてもSEとかなれましたから。
今はどうなのかな。

242 名前:デフォルトの名無しさん mailto:sage [2016/10/21(金) 23:52:16.03 ID:p3mW1/xP.net]
>>241
今もそうだよ

ただ、SI一辺倒だった時代ではなくなってきてるので、比率は下がってきてるけどね

243 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 00:06:02.54 ID:LnIwCgwC.net]
SEなんて属人化をひたすら廃することでリスクマネジメントができてるとか勘違いしてる連中だからな
だから安い奴隷を使えるようにする方向に動くんだよな
その方がリスクが少ないと思い込んでるから

本当はプログラミングなんて職人芸のカタマリで、上位の職人は奴隷の何百倍の開発効率を叩き出す
ことを知らないんだよな
そういう職人を数人高待遇で雇えば奴隷なんて要らないのに…

244 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 00:20:16.83 ID:xefyYgJX.net]
コードを書かない人間をクビにする作業が忙しくてコードを書けないんだろ
武器を持った人間を捕まえる仕事のために武器を持つことが許されるみたいな感じ

245 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 01:52:25.03 ID:cVDLvhGg.net]
>>239
俺は元請けは言語使わないって言ってるんだよ。
その俺に元請けは安い人を探すっていわれたって、
えぇ、だから言語使わないでしょ?としか言うことがない。

246 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 01:54:01.83 ID:LnIwCgwC.net]
>>245
使わないだろうけど決定はする
そこに開発効率なんて基準は入らない
奴隷がいかに集められるか、ということだけが基準となる

247 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 01:56:24.28 ID:cVDLvhGg.net]
だからなんで俺にそれをレスするんだよ?

反論してないのに反論している風な空気出すなってw

248 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 01:58:10.15 ID:LnIwCgwC.net]
>>247
下請けには言語の決定権なんてない、という>>236の意見に賛同している



249 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:08:31.54 ID:cVDLvhGg.net]
下請けに決定権がないのが、言語の違いで開発効率に差があることの根拠?
何を言ってるのかさっぱりわからない。

250 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:11:53.22 ID:LnIwCgwC.net]
>>249
言語による開発効率なんて意味がないということ
所詮は開発効率なんて何も考えてない上流が決めることなんだから
大事なのは奴隷をいかに集められるかということだけ

251 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:17:59.04 ID:cVDLvhGg.net]
言語の違いで開発効率に大きな差がない上に、
その僅かの差は人を増やすことで解決できる問題でしかない。

それが俺の意見とだれかさんの意見をまとめた答えだよ。

252 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:20:08.08 ID:LnIwCgwC.net]
>>251
そういう人月神話を信奉した結果が現状の日本のSI業界の悲劇的状況なんだけどね
プログラミングは属人性が恐ろしく高い世界だという現実にいつ気づくのだろうか

253 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:27:45.65 ID:cVDLvhGg.net]
>>252
知らんがな。言語による開発効率の差はごく僅かって言う話と関係ないし。

日本が嫌なら海外にでも行けば?
海外ならば、ぜんぜん違う言語を使ってるはずだって
夢見るのも悪くないと思うよw

あ、ぜんぜん違う言語=英語とかそういうのはいらないからw

254 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:29:04.98 ID:LnIwCgwC.net]
>>253
だからそんな話は意味がないって
言語なんて開発者が決める話じゃないんだし

255 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:29:16.74 ID:cVDLvhGg.net]
プログラミングは属人性が恐ろしく高い

その属人性(その言語に詳しいかどうか)でも
言語の違いによるわずかな差は簡単に埋められてしまうね。

256 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:29:59.60 ID:cVDLvhGg.net]
>>254
それは日本の話だろ?w

海外は開発者が言語を選んでいるんですよ。
言語ランキングはいまさら出さなくてもいいよな?
日本と大差ないし。

257 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:31:40.83 ID:LnIwCgwC.net]
>>255
属人性が高いということは言語による差が大きいということだよ
あらゆる言語を操れるスーパーマンなんていないからね

とりあえず職人さんが忌避しがちなPHPとかは真っ先に対象から外すべきだね

258 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:32:21.46 ID:cVDLvhGg.net]
> 属人性が高いということは言語による差が大きいということだよ

意味不明。



259 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:32:30.50 ID:LnIwCgwC.net]
>>256
日本人が日本の話してるのはごく自然なお話だと思うんですが?
君は日本以外で仕事してるの?

260 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:33:14.17 ID:LnIwCgwC.net]
>>258
奴隷ばっか集まる言語なんて意味ないだろ?

261 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:35:38.46 ID:cVDLvhGg.net]
属人性の意味間違ってるなーw
説明するのがめんどくせーから探してきた

d.hatena.ne.jp/Nagise/20090302/1235997646
>
> ソフトウェア開発の属人性の誤解
>
>  属人性の排除が狙うところってのは「その人しかやり方を知らないよ、秘密だよ」って
> 作業をなくす話で、技能的にその人しかできる人がいないって話題じゃないんだ。
> ソフトウェア開発の属人性を語るときにここを勘違いしていると議論にならない。

262 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:36:59.45 ID:cVDLvhGg.net]
>>259
> 君は日本以外で仕事してるの?

そうじゃなくて、海外の事例を調べてみろって話。
海外は、日本とは違って、言語をちゃんと選んでるんだろう?
使える人が多いかどうかじゃなくて。

263 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:39:15.13 ID:LnIwCgwC.net]
>>261
合ってるよそれで

日本人SEはその「その人しかできない」を拡大解釈して「奴隷でもできなきゃいけない」という脅迫概念にかられてるんだよね
奴隷の開発効率なんて職人の百分の一以下しかないのにね

264 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:40:01.83 ID:cVDLvhGg.net]
>>263
海外でも同じだろw
なんでいっつも、日本はー、日本はーって言ってるの?

265 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:42:10.02 ID:LnIwCgwC.net]
>>264
同じじゃないんだなこれが
海外はプログラマを職人としてきちんとした待遇で受け入れてるからね
(その代わり職人レベルにないプログラマは容赦なく切られるけどね)

266 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:42:31.46 ID:cVDLvhGg.net]
言語の違いによる開発効率の差は殆ど無いから当たり前の話であるんだが、
マイナーな言語を使うよりも、メジャーな言語を使うほうが
人を多く集められるので、(ほんの少ししかない)開発効率は
簡単に逆転するという話でした。

267 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:43:15.88 ID:cVDLvhGg.net]
>>265
だから海外ではなんの言語が使われてるのか?って
話をしたんだよ。日本と違うデータが出てくるんだろ?

268 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 02:44:39.60 ID:LnIwCgwC.net]
>>266
出てるよ
海外のJava、PHPの落ち込み方は半端ないからね
それに引き換え日本の求人ときたら…



269 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 09:20:53.73 ID:O/1X83Cc.net]
向こうは一山いくらの開発はどんどんオフショアに投げるし、
ジャッパゴスのようにパッケージを無駄にカスタマイズしたりしないの
残念ながら技術的な問題じゃないんだ

270 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 11:17:42.02 ID:8sfmeCeb.net]
カスタマイズは良いけど成果物を公開しないよ、秘密だよってのがガラパゴスなんだろ

271 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 11:21:53.28 ID:O/1X83Cc.net]
じゃ海外でSIの成果物をgithubで公開してる例を教えてくれよw

272 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 11:23:02.67 ID:MU45rE6v.net]
なんでそこSI限定なの?

273 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 11:45:31.20 ID:O/1X83Cc.net]
この文脈でSI限定じゃない方が不自然だと思うが?
自社のパッケージやサービスの開発なら日本でもわりと職人的な技術が重視されるから
ID:LnIwCgwC の抱いているような不満には至らんよ

274 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 11:56:23.19 ID:aqioS2aS.net]
お前らはどうせどの言語もまともに使えないんだからどの言語でも大差ないよ

275 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 12:04:05.39 ID:cVDLvhGg.net]
>>268
落ちているやつじゃなくて、何を使ってるかを言えよw

276 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 12:06:50.81 ID:8sfmeCeb.net]
秘密が属人的なものであれば公開するという意思決定も簡単にできる
一方、組織的な秘密を公開するには例えば全会一致のような高いハードルがある

277 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 12:13:26.29 ID:cVDLvhGg.net]
公開してないから、属人的っていうんやで?

278 名前:デフォルトの名無しさん [2016/10/22(土) 12:31:49.49 ID:MCKaXjxk.net]
ところで効率や仕事での仕方なし抜きにしたら、おまいらの好きな言語って何?



279 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 13:37:30.09 ID:cVDLvhGg.net]
ついでに好きな理由も書いてね

280 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 15:19:03.68 ID:FwMGd9Sr.net]
>>278
お気に入りは文句なしでSmalltalk
理由は頭一つ抜きん出た生産性の高さw
cast-a-spell.at.webry.info/201001/article_7.html

281 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 15:24:05.21 ID:cVDLvhGg.net]
うーん。生産性と行数がイコールだと思ってる人がいるようだね。
同じ言語であれば、生産性と行数はイコールかもしれないけど、
言語が違うと生産性と行数は一致しない。

例えばPythonだと、他の言語だと一行で書けるものを
改行強制で二行にされちゃうけど、そこに二倍の
生産性があることにはならない。

定義とかimport文とかを除いた実質的な実行行数(ステップ数とも言う)で考えないと。

282 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 15:29:01.36 ID:cVDLvhGg.net]
JavaScriptでもアロー関数が使えるようになって、

array.forEach(function(v) {
 console.log(v);
});

という三行が

array.forEach(v => console.log(v));

という一行で書けるようになったけど、タイピング速度には
影響があったとしても、3倍の行数文の違いはない。

昔だってこう書くことは出来た。
array.forEach(function(v) {console.log(v) });
改行とインデント入れて11文字タイプする程度の速度の違いしかない。

これが行数で生産性を語る場合の罠ね。

283 名前:デフォルトの名無しさん [2016/10/22(土) 15:53:20.93 ID:MCKaXjxk.net]
俺はc++14以降のc++がけっこう好きになってる。
昔はc++大嫌いだったんだけど、java使うようになって、でも結局メモリリーク問題は付きまとって、更に既存のcライブラリ使わざるを得なくてjniに嫌気がさして、、、
それならレガシーライブラリそのまま使えるc++のがいいんじゃ と感じるようになった。
ただまぁそれはweb関係じゃない部分だからそうなんだと思う。

284 名前:デフォルトの名無しさん [2016/10/22(土) 16:00:12.31 ID:MCKaXjxk.net]
smalltalkとかlispは動いてるシステムをそのまま修正できる的なところが凄いと思う。
qiita.com/guicho271828/items/1b78d8a7335e81e11791

285 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 16:19:08.42 ID:cVDLvhGg.net]
>>284
最終手段としてないよりはあるほうがいいし、技術的にはすごいけど実用的には?だけどね。
考えてみりゃわかるけど、動いているシステムをその場で書き換えられたら困ることのほうが多い。

例えば書き換えるべき対象が一つだけならいいけど、今は何十台といったサーバーでアプリが動いてる。
そのそれぞれにログインしてシステム書き換えますか?って話。

作業をミスすることなく一発で完了できるならまだしも、通常は手元で修正してテストをしてバグを潰す。
書き換えてる途中でその機能を使われたら問題になるので、ブロックする機能も必要。
マーケティングの点からも直ぐに修正反映ではなくて、事前に告知したい。

でなんとなく気づいてかもしれないけど、動いてるシステムをそのまま修正ってのは実際に
ウェブアプリで行われてるんだよ。ただしSmalltalkは言語のレイヤーでこれらのことをやってるが
その他の言語は別のレイヤーで行ってる。

それもそのはずで、SmalltalkはOSの機能そのものまで言語の中に取り込んでるものだから。
だから「動いてるシステムをそのまま修正」っていうのは実はOSを起動したまま
アプリを再起動させるだけで修正できるのと同じことを指してる。
単に言語だけで完結できますよーってだけで、他の言語もOSと連携させて動いてるシステムを
そのまま修正することは可能。

286 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 17:10:10.50 ID:6V9nqXNd.net]
いや、便利で必要な技術だと思うよ。
でも専売特許じゃなくてevalがあるような言語などれでもら出来ることだと思う。
自分もNodeでとあるゲームサーバー立てた時したことあるし、
クライアントでもしたことある。
バグ修正やハックの類だが、そのゲームの最中に修正できるに越したことはない。

287 名前:284 [2016/10/22(土) 17:15:53.55 ID:xGV5yujh.net]
>>285
> でなんとなく気づいてかもしれないけど、動いてるシステムをそのまま修正ってのは実際に
> ウェブアプリで行われてるんだよ。ただしSmalltalkは言語のレイヤーでこれらのことをやってるが
> その他の言語は別のレイヤーで行ってる。

いや、うん知ってるし。
で、だ、仕事での仕方なし抜きにしたらって言ってる所にトウトウと実用ではどうのこうの語られても「そうだね」という感想しか持てないわ。ごめんね。

そんなことよりお前の好きな言語とそれに惹かれたとこは何さ?

288 名前:デフォルトの名無しさん [2016/10/22(土) 17:32:17.15 ID:xGV5yujh.net]
お前らが惹かれた言語はなにでそのどんなところに惹かれたのさ?

普段使いの言語でも、仕様全部把握してるとかでなければ「あ、こうやればよかったんだ」ってあっただろ?
新しく学んだ言語でも「これは便利だな」ってあっただろ?
そんな時コード書くのが楽しいだろ?
そんな話を聞かせてくれよ。



289 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 20:25:33.75 ID:tBkzOasK.net]
やっぱりSmalltalkが最高だったね
1 + 2 × 3 が 9 になる所とかサイコー

290 名前:デフォルトの名無しさん [2016/10/22(土) 21:11:20.34 ID:xGV5yujh.net]
forthもいいと思う
1 2 + 3 *

291 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 21:47:29.15 ID:+Ddj+FpA.net]
>>289
嘘こけ 7 になるぞw
https://lively-web.org/users/Dan/ALTO-Smalltalk-72.html

292 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 22:56:25.52 ID:cVDLvhGg.net]
>>286
> バグ修正やハックの類だが、そのゲームの最中に修正できるに越したことはない。

今までの人生で、何回、ゲーム最中にゲームを終了すること無く
ゲームの実行コードを修正したいと思ったことある?
もちろんそのゲームの開発者の立場で。(チートする話じゃないってこと)

293 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 23:00:01.30 ID:cVDLvhGg.net]
>>288
> お前らが惹かれた言語はなにでそのどんなところに惹かれたのさ?

言語を使うのが目的じゃなくて、その言語でなんらかの
アプリ、システム、サービスを作るのが目的だからね。
言語だけで惹かれることはない。

特殊なアプリだったら、特殊なライブラリが在るものを選ぶとか
特定の環境(スマホとか)で動かないならば、その環境で一般的なのを
選ぶとか、なんらかのプラグインならば、その大本と同じ言語を選ぶとか。

言語そのもので惹かれるってことはないな。
ある言語で書いていて、あー○○言語だとあれがあって便利なのになーって
思うことはたまにあるけど、それはそれでその問題を自分で解決するほうが楽しい。

294 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 23:00:58.19 ID:tBkzOasK.net]
>>291
ちゃんと9だよ。サイコーだからな
https://ideone.com/BRVnNz

295 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 00:21:12.92 ID:Ih4sBoJC.net]
>>293
色んな人がいるよね
大事なのは言語愛を否定しないことだね
言語愛を持ってる人に「なんでも一緒だろ」なんて暴言を吐かないことが大事だね

296 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 00:26:31.49 ID:KEuHHxF/.net]
言語愛(笑)

297 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 00:31:47.12 ID:Ih4sBoJC.net]
(笑)とか言ってるうちはまだまだだよ
愛は一番のモチベーションなんだからね

298 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 00:46:38.28 ID:RkqjdgMb.net]
>>292
> 実行コードを修正したいと思ったことある?

効率や仕事での仕方なし抜きにってことならSmalltalkで実行しながら開発してくの楽しいよ
ついでにSmalltalkには仮想イメージっちゅう簡易オブジェクトストア機構がデフォなんで
実行コンテキストもそのまま永続化できるからこれがまた超便利



299 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 00:56:14.20 ID:KEuHHxF/.net]
それ効率悪そう。
テストとかどうやってるの?
実行した結果バグがあったら実行前に戻れるの?
最初から実行するのなら別に実行しながら書く意味ないし。
っていうか実行しなきゃ書けないの?

300 名前:デフォルトの名無しさん [2016/10/23(日) 01:14:36.69 ID:EPR0SqWa.net]
>>299
ユニットテストとかsmalltalkから生まれたんじゃないのか

301 名前:デフォルトの名無しさん [2016/10/23(日) 01:17:50.99 ID:EPR0SqWa.net]
mvc、デザインパターン、これらもみんなsmalltalkから生まれたよね。
俺は一度も使ったこと無いけど色々と魅力ある言語・環境だと思うぞ。

302 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 01:22:20.72 ID:RkqjdgMb.net]
>>299
テスト駆動もできるけど(まあxUnitとかTDDなんてそもそもSmalltalkが元祖だしw)
それをもう一歩進めた場当たり的ないわゆる“デバッグ駆動開発”がSmalltalkでは気持ちイイ
頭の中にできあがったモデルを仮想イメージ(Smalltalk環境)にどどーって注ぎ込んでくスピード感がたまらない
www.slideshare.net/sumim/20120916-rubykaigi-rubyistsqueak-smalltalk/21

303 名前:デフォルトの名無しさん [2016/10/23(日) 01:32:42.68 ID:EPR0SqWa.net]
俺の今のメインはc++, java
どっちも嫌いだったけどc++14以降はいいなと思えるようになってきた(c++11はジェネリックラムダ無いので)。
javaだって(c++に比べて)、豊富なライブラリとかフレームワーク、開発環境は良いと思う。
phpだって嫌いだけど(javaに比べて)、取っつきやすさとかいいと思う。7になってタイプヒンティングとか使えるケースが広がったし、配列も普通になった。

ま、しょせん俺は自分言語作る力は無いから他の人が作ったものを使うしか無いけどね。

304 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 01:38:01.97 ID:KEuHHxF/.net]
>>300
だからユニットテストつかって実行すれば良いんだから
実行しながら開発とかする必要ないんですよ。

305 名前:デフォルトの名無しさん [2016/10/23(日) 01:38:02.96 ID:EPR0SqWa.net]
>>302
小学校でプログミングとか話題になったけど、個人的にsqueakって結構合うんじゃないかと思ったりした。
まぁ、先生が使えないだろうけど。

306 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 01:41:31.98 ID:KEuHHxF/.net]
>>302
> 頭の中にできあがったモデルを仮想イメージ(Smalltalk環境)にどどーって注ぎ込んでくスピード感がたまらない

それ意味わからん。
俺は頭の中に出来上がったコードをばーっと書き上げる。
書いてる最中にいちいち実行したりしない。

307 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 01:54:23.18 ID:RkqjdgMb.net]
>>306
んー、説明が難しいな
コードは頭の中にはまだないのよ つーかSmalltalkで組むときはコーディングというのを実はあまり意識しない
漠然としたオブジェクトだけが頭の中にあって、それをSmalltalkに(それこそメッセージを送って)構築してもらう感じ
TDDは仕様を書かされている感じがワンアクション挟まるというかなんか隔靴掻痒感みたいなのがある

308 名前:デフォルトの名無しさん [2016/10/23(日) 02:10:33.76 ID:EPR0SqWa.net]
smalltalk使ったことが無い俺が想像でいうと、smalltalkでの開発は言語でコードを書くというより、もちっとレイヤーが上の感じだと思う。
今時の人たちが、コンテナ用意してその中でサービス走らせてイメージ保存してとかやってることを、smalltalkだとその言語・環境で全部できる。
サービスを建てるっていうのが、smalltalkだとオブジェクトを生成する、に相当するみたいな。



309 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 02:21:35.16 ID:RkqjdgMb.net]
>>307
そんなTDDをするにしても、Smalltalkだと件の“デバッグ駆動開発”っぽさは入ってくるので
他言語でやるTDDよりは楽しいんだけどね
https://www.youtube.com/watch?v=HOuZyOKa91o

あと、この動画の後半に出てくる入出力例を入れるとメソッドを探してくれるツールとかは他言語にも欲しい

310 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 02:24:58.06 ID:KEuHHxF/.net]
>>307
もしかしてコードを考えるのに時間がかかる人?

何かしたいことが有って、それを書こうと思ったら複雑なものでもない限り
5秒もあればそれを実現するコードを10行ぐらい頭のなかに出来上がるだろ?
一関数の行数がだいたいこんぐらい。

あとはそれをばーっとかくだけなんだが。






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

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

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