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行ぐらい頭のなかに出来上がるだろ? 一関数の行数がだいたいこんぐらい。 あとはそれをばーっとかくだけなんだが。