- 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/
- 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行ぐらい頭のなかに出来上がるだろ? 一関数の行数がだいたいこんぐらい。 あとはそれをばーっとかくだけなんだが。
- 311 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 02:26:04.86 ID:KEuHHxF/.net]
- >>308
> 今時の人たちが、コンテナ用意してその中でサービス走らせてイメージ保存してとかやってることを、smalltalkだとその言語・環境で全部できる。 Smalltalkでクラウドを使って複数台のマシンで連携させて サービスを実現するってことを、言語だけでやる方法を教えてほしい。 まず最初にデプロイはどうするの?
- 312 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 03:31:38.72 ID:KEuHHxF/.net]
- イメージの保存というのは、実行コンテキストの保存ではない。
Smalltalkのいう実行コンテキストを永続化っていうのは 今のコンテナの仕組みとは正反対だからな。 https://ja.wikipedia.org/wiki/Immutable_Infrastructure > Immutable Infrastructure(イミュータブル インフラストラクチャ)は > 不変なサーバー基盤のこと。具体的には、一度サーバーを構築したらその後は > サーバーのソフトウェアに変更を加えないことを意味する。 これが今のトレンド。ソフトウェアに変更を加えないから いつでも破棄して作り直せる。
- 313 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 03:46:41.34 ID:RkqjdgMb.net]
- >>310
うーむ やっぱりコードベースで考えなきゃいけない言語の人とは分かり合えそうもないか Smalltalkだとどうしてもオブジェクトベースな頭になっちゃうのでいけませんな^^; >>311 良くも悪くもSmalltalkの生い立ちは「パソコン」環境(アラン・ケイのダイナブックのための暫定OS。為念)なので そういう使い方は想定されていないんだけど、しいて挙げるならGemStoneというSmalltalk処理系がそれ向けかな Smalltalkはもとから簡易オブジェクトストアの中に構築された処理系という特殊な実装方法がとられているんだけど それを一歩進めて、分散OODB内に処理系を構築しちゃった感じのSmalltalkの一種 https://docs.google.com/viewer?a=v&pid=sites&srcid=c21hbGx0YWxrLXVzZXJzLmpwfGhvbWV8Z3g6NGJiZDExNjU5ZmIxN2Q4Yg
- 314 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 03:56:31.04 ID:RkqjdgMb.net]
- >>312
実行コンテキストも含めて永続化できるっていうのはデバッグの時にちょっと便利なオマケ機能であって システムを構成するオブジェクト群をその状態のまま収めた仮想イメージファイルで配布する用途が主なので 今のコンテナの考え方に近いと思うけど違うのかな
- 315 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 04:07:00.80 ID:KEuHHxF/.net]
- コンテナを起動した直後はオブジェクトは存在しない。
オブジェクトというのはデータだ。 イミュータブルインフラストラクチャっていうのは コンテナに状態(データ)を持たないことで実現する。 データを別の所に保存していて、コンテナ自体には持たないから いつでもすぐに停止して破棄することが可能。
- 316 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 04:07:41.46 ID:KEuHHxF/.net]
- > うーむ やっぱりコードベースで考えなきゃいけない言語の人とは分かり合えそうもないか
> Smalltalkだとどうしてもオブジェクトベースな頭になっちゃうのでいけませんな^^; オブジェクトもコードだろ?何を言ってるんだか。 それともSmalltalkにはソースコードがないのか?w
- 317 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 05:09:37.11 ID:RkqjdgMb.net]
- >>315
> データを別の所に保存していて、コンテナ自体には持たないから いつでもすぐに停止して破棄することが可能。 うん。だからデータを別の場所に保存するそういった運用も可能ということ たとえばここに置いてあるzipぞれぞれには wiki.squeak.org/swiki/uploads/10/ComSwiki.3.zip?history=true 当時のモジュールのソースが失われたりして今となっては構成の再現が不可能なとても古いComSwikiという サーバーの歴代バージョンを構成するオブジェクト群を永続化してファイルに収めた形(仮想イメージ)で 入っているんだけど、各々の仮想イメージさえあれば各バージョンのComSwikiサーバーは動かせるし Wikiのセッティングやデータは別ファイルで保存されるんで仮想イメージ(サーバー環境)自体は 停止して破棄はもちろん、すげ替えたりもできる…ってあたりがちょっと似ているんじゃないかな、と
- 318 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 05:49:24.70 ID:RkqjdgMb.net]
- >>316
Smalltalkのプログラミングというのは環境内にオブジェクトのネットワークを構築することが目的だから ソースコードの記述を必ずしも意味しないんだよね 例えば、クラスやメソッド定義のためのコードの記述やそれを評価する行為は、オブジェクトとしてのそれらを その場で生成するために行うSmalltalk環境とのコミュニケーションの手段の一つに過ぎなくて 他言語のようにソースコードを収めたファイルを書き上げる(あるいは書き下しでいく)作業とはちょっと感覚が違う たぶん何を言っているのかわからないと思うけど^^;
|
![](http://yomi.mobi/qr.gif)
|