- 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/
- 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環境とのコミュニケーションの手段の一つに過ぎなくて 他言語のようにソースコードを収めたファイルを書き上げる(あるいは書き下しでいく)作業とはちょっと感覚が違う たぶん何を言っているのかわからないと思うけど^^;
- 319 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 06:59:39.74 ID:zosolBkY.net]
- 何回か修正していって、やっぱり3回前の修正だけ
間違いだから取り除きたいって思ったとき その方法って簡単にできるわけ? ソースコードなら、特定のコードを取り除くだけだけど 実行イメージを破棄せずに、イメージから3回前の修正に伴う全ての環境への変化を元に戻せるの?
- 320 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 09:28:02.06 ID:w/MDWg7b.net]
- smalltalkって超成果主義なんだよな
山頂に行きたいだけなのに全然違う場所で小屋やテントを作るのは登山家の恥と思ってる
- 321 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 11:24:20.87 ID:RkqjdgMb.net]
- >>319
> ソースコードなら、特定のコードを取り除くだけ Smalltalkの場合、プログラムの修正は「オブジェクトのすげ替え」、 つまり新しく生成して古いものと置き換える作業になるけど、別にソースコードの場合と同じだよ? たとえばメソッドオブジェクトのすげ替えなら、その履歴はすべて記録・管理されているから、 その不要な「3番目」の修正を無かったことにして元に戻すだけ > 実行イメージを破棄せずに、イメージから3回前の修正に伴う全ての環境への変化を元に戻せるの? その「3回目」がたとえばDBからデータを削除してしまうというような不可逆な変化を生じさせる場合 ソースコードベースだってソースをいじったからって元に戻るわけではないよね?
- 322 名前:デフォルトの名無しさん [2016/10/23(日) 11:25:45.54 ID:EPR0SqWa.net]
- イメージの保存は、smalltalkだけじゃなくlispもできたはず。意味・概念は違うかもだけど。
他にそういう言語ってあるかな?
- 323 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 11:34:20.89 ID:RkqjdgMb.net]
- >>320
> smalltalkって超成果主義なんだよな プログラマの一挙手一投足が記録に残るから、そういうところはちょっとあるかもね おもむろにどこかで3+4って式を評価したことも見ればあとからわかる だから、環境内でどんな試行錯誤やヘマを何時やったかはマネージャーにバレバレ 関係ない小屋やテントなんか遊びで作っていたら、そりゃ叱られるよね
- 324 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 11:50:14.12 ID:RkqjdgMb.net]
- >>322
LISPもたしかにできるけど、Smalltalkのようなイメージベースでの運用形式は通常はとらないよね? Smalltalk派生の処理系でなければ他は(Smalltalkの亜種に数える人もいるけど)SELF、あとFactorとか でも秘伝のタレみたいにイメージを何十年にわたって育てていく感じはSmalltalk独特のような気がする
- 325 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 12:21:15.99 ID:KEuHHxF/.net]
- Smalltalkの場合、オブジェクトって言ってるのは
単にソースコードなだけだよ(笑) > その「3回目」がたとえばDBからデータを削除してしまうというような不可逆な変化を生じさせる場合 > ソースコードベースだってソースをいじったからって元に戻るわけではないよね? 普通の言語ではソースコードとデータは分離されてるから、 簡単にデータだけバックアップが取れる。 あるデータで処理がおかしい場合、データのバックアップをとっておき、 ソースコードを修正して、同じデータで処理するだけで正しいデータが得られる。 でもSmalltalkではそういうこと出来ないでしょ? データ+ソースコードがオブジェクトだから データを変えてしまうとソースコードまで変わってしまう。
- 326 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 12:22:35.14 ID:KEuHHxF/.net]
- >>323
どうでもいいものを記録にとってどうするよw そういうのはノイズが多いっていうんだよ。 関係ないノイズが多すぎて重要な事が見えなくなってしまってる。
- 327 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 12:43:14.87 ID:RkqjdgMb.net]
- >>325
> Smalltalkの場合、オブジェクトって言ってるのは > 単にソースコードなだけだよ(笑) いや、オブジェクトはオブジェクトでしかないし、それを生成するためのソースコードとは別物なんだが… やはりソースコードベースでしか物を考えられない人とのコミュニケーションはやっかいだな クラスとインスタンスを会話の中で混同する人みたいだw それはさておき > 普通の言語ではソースコードとデータは分離されてるから、 > 簡単にデータだけバックアップが取れる。 Smalltalkだってそういう運用(たとえばデータはファイルやDBに追い出すとか)は可能だよ そのうえで、あえてそういった手段をとらない、つまり仮想イメージ内にデータを保持する場合の話としても 仮想イメージはもちろん複製してバックアップは可能なので、 > あるデータで処理がおかしい場合、データのバックアップをとっておき、 > ソースコードを修正して、同じデータで処理するだけで正しいデータが得られる。 というのも普通にできるよ (より正確には「ソースコードを修正」は「別の機能性オブジェクトにすげ替えて」だけど) それなのにSmalltalkで「出来ない」とか「データを変えてしまうとソースコードまで変わってしまう」とか いうのは仮想イメージの運用にどんなメンタルモデルを持っているのだろうか?
- 328 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 12:48:48.73 ID:KEuHHxF/.net]
- >>327
できないというかやらないんだよ。 Smalltalkの世界ではそんなことしない。 だから特殊で他の世界の常識が使えない。
- 329 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 12:49:32.94 ID:RkqjdgMb.net]
- >>326
> 関係ないノイズが多すぎて重要な事が見えなくなってしまってる。 そこはナンチャッテとはいえオブジェクトストア(ある種のデータベース)なんで、適切なフィルタをかけてやれば 必要な重要な情報は適宜引き出せるようになっているからご心配なく 実際にもそういう細やかなログはトラブル時にその原因の解明や、仮想イメージ(正確にはオブジェクトメモリの状態) をやむを得ず放棄しなければならい場合の復旧にも役立っているしね
- 330 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 12:53:12.34 ID:RkqjdgMb.net]
- >>328
> Smalltalkの世界ではそんなことしない。 そんなことはないよw どんな思い込みだよwww 普通にデータを仮想イメージ外に置くためのORMとかOODBとか用意されているし、必要なら使うよ
- 331 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 12:56:46.27 ID:FxgCwMac.net]
- スレ違いにじっと耐え嵐が過ぎるのを待つ
- 332 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 13:01:19.34 ID:vOZeCx94.net]
- >>243
残念ながら土方に職人芸は要らない 最初から職人芸を発揮できるところに行けとしか言いようがない
- 333 名前:デフォルトの名無しさん [2016/10/23(日) 13:02:28.68 ID:EPR0SqWa.net]
- >>331
phpの話してもいいんだぜw 7からだいぶよくなったとか。 実際の案件でもう使ってる人はいる?
- 334 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 13:05:33.36 ID:dkFb2YCF.net]
- >>331
wwwwwwww ずっと続いてるから無理なんじゃね?wwww
- 335 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 13:16:02.19 ID:w/MDWg7b.net]
- smalltalkは超成果主義なので
既存のファイルシステムやデータベースの不満は何も語らず 問答無用で大量の代案を出してくる
- 336 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 13:46:37.23 ID:KEuHHxF/.net]
- Smalltalkの一番の欠点が、ソースコードの管理がしづらいってところだろうな。
なにせソースコード=オブジェクトなのでSmalltalk独自の フォーマット(バイナリ)で保存しなければいけない。 このオブジェクトからデータを抜き去ってコードだけ保存する方法も 処理系独自の拡張やIDEでないことはないけど、 そうするとSmalltalkらしさがなくなってしまう。 かと言ってオブエジェクトに含まれるデータまで リポジトリにいれるのは変な話だし、 他人のPRをマージするとかコンフリクトが発生してしまったとか そういったことがSmalltalkの開発時に致命的な問題になる。
- 337 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 14:16:18.22 ID:RkqjdgMb.net]
- >>336
> Smalltalk独自のフォーマット(バイナリ)で保存しなければいけない。 頼むからウソ情報垂れ流すなよ… Smalltalkには古典的にも任意のオブジェクト(主だってはクラスやメソッドだが)にそのソースをはき出させる file out という機能があってだな、凝ってもせいぜいXMLで事足りる いったいどこから情報を得てんだよ!w
- 338 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 14:17:16.22 ID:1sux/LQ7.net]
- 昔はデータとコードの区別はなく渾然一体としていて、プログラムの自己書き換えのようなテクニックも一般的だったけど、
今では殆どの処理系ではデータ領域と実行領域のメモリは区別されてる。 「できるけどやらない、むしろ出来ないように発展した」って事なんだよね。わかるかな?
- 339 名前:デフォルトの名無しさん [2016/10/23(日) 14:19:26.33 ID:EPR0SqWa.net]
- セキュリティからむからなぁ。
- 340 名前:デフォルトの名無しさん [2016/10/23(日) 14:22:15.75 ID:EPR0SqWa.net]
- でもセキュリティホールが多いと言われるphpはたくさんのところで使われている。
- 341 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 14:27:57.97 ID:1sux/LQ7.net]
- ていうか、プログラムの文法の話じゃなく実行環境の優劣を語るなら
SmalltalkのライバルはLinuxやWindowsだろ
- 342 名前:デフォルトの名無しさん [2016/10/23(日) 14:44:50.95 ID:EPR0SqWa.net]
- 話変わるけど、文法というか見た目的なところで、
波かっこブロック、(begin)endブロック、インデントブロック、lisp的、forth的、、、 他にどんなのがあるだろう? あー、あえて難読を狙ってる言語は抜きで。
- 343 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 14:48:30.32 ID:w/MDWg7b.net]
- >>338
ソースコードもデータだよ ただ圧縮のやり方が動画等とは違う 圧縮することで成果物が劣化するんじゃないかという不安は動画と同じ
- 344 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 14:55:42.26 ID:1sux/LQ7.net]
- >>343
いまの殆どの処理系では実行時の扱いは他のデータとは違う それは圧縮方式とは全然関係ない
- 345 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 18:34:21.46 ID:+tPIzBCg.net]
- >>292
Web上での拡張機能でのパッチなどを合わせたら 動いている最中に何かをしようとすることなんて むしろそうじゃないことよりも多いくらいだよ。
- 346 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 20:37:39.89 ID:w/MDWg7b.net]
- 昔はjavascriptを無効にしてデータだけ見たり保存したり出来たのに
- 347 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 00:10:39.77 ID:H/OAc5X2.net]
- >>338
今はIDEなどでコードもデータ(AST)として扱われるのが当たり前だし いずれはインクリメンタルコンパイルやホットスワップもデフォになって コンパイル時と実行時の区別なんてのも次第になくなっていく 「できることはどんどんやって、性能や技術面で設けられた過去の無用な制約は撤廃する方向に発展する」ってこと わかるかな?
- 348 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 08:11:06.52 ID:Zipvrjj4.net]
- >>347
いまではサービス稼働中にサービス止めずにシステム入れ替えるとか普通にやってるけど それはプログラミング言語のレイヤーでやってないし やる意味もないんだって 本当に素人なんだな
- 349 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 09:28:37.18 ID:VKdQ2cFp.net]
- ホットスワップも、できるけどそんな機能いらないとか昔は言われてたもんなw
今は無意味だ危険だとか言ってることも、今後どう変わるかはわからんよ
- 350 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 09:30:36.40 ID:Zipvrjj4.net]
- すでにとっくに解決済みの問題なんですが、何盛り上がってんの?って感じなんだよなぁ
- 351 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 12:31:39.51 ID:G0jBqbeE.net]
- >>350
何の話?
- 352 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 13:35:35.03 ID:wFWi9LSL.net]
- 盛り上がってる人を引きずり下ろすバトルロワイヤル
見えざる手に足を引っ張られる競争原理
- 353 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 17:10:02.23 ID:ejLFMMQB.net]
- 要するに基本的な機能に付いてはもう話すことが無くなってきたってこと。
言語としてはそういう付加価値を出していくしかない。
- 354 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 19:19:53.24 ID:xHPWpU/w.net]
- 最近のC#の強さは異常だな
スマゲやVRゲーでは完全に覇権を握っている
- 355 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 22:41:42.80 ID:Tb42ad7x.net]
- >>345
> Web上での拡張機能でのパッチなどを合わせたら > 動いている最中に何かをしようとすることなんて > むしろそうじゃないことよりも多いくらいだよ。 いや、動いている最中に、メソッド一個書き換えたりしないよw バージョンアップなどの「修正」っていうのは通常一箇所(一メソッド)の 修正じゃなくて、複数のファイルにまたがる複数のコードを一度に更新する。 書き換えている間、そのメソッドは使えません。そのメソッドに依存するメソッドは 使えません。修正中は一時的に壊れます。じゃだめでしょw そうなると必然的にサーバーをメンテナンスモードにするか止められないシステムなら サーバーを複数台用意して、そのうち一台をアクセスされないようにして更新、 次にもう一台を更新・・・てなると思わない? それを最近じゃサーバーを壊して作り直すことで更新するわけだけど 動いている最中にソースコードにパッチを当てるとか信頼性を担保したいならやらないからw
- 356 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 22:49:14.53 ID:Tb42ad7x.net]
- >>348がすでに言っていたか。>>345にレスしてないから見逃してしまった。
そうサービス稼働中のシステム入れ替えはプログラミング言語のレイヤーでやることじゃないよね。 トランザクションのように複数のファイル(クラス)にまたがる複数のコードを アトミックに更新するひつようがある。 もし "プログラミング言語のレイヤー" でやるとしたら、 1. ローカルでソースコードを書き換える。 2. ローカルでテストする。 3. 一連の修正を "プログラミング言語のレイヤーで" 一単位とする(gitでいうブランチとかタグ) 4. 一連の修正を "プログラミング言語のレイヤーで" サーバー側上に反映させる(gitでいうmargeやcheckout、もしくはデプロイツール) みたいな機能が必要になるだろうね。 プログラミング言語にソースコード管理ツールや デプロイツールまで内蔵しないといけなくなる。
- 357 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 09:10:59.23 ID:ZI8Mf/oE.net]
- >>356
> プログラミング言語にソースコード管理ツールや > デプロイツールまで内蔵しないといけなく Smalltalk?!wwwwwwww
- 358 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 10:09:37.06 ID:TjTM7jW/.net]
- >>355
俺は君みたいな卑怯な人間が大嫌いだ。 俺と君との間ではロジカルなより一般的で広い話になっていた。 そこで自分の立場が危ういとみるやさも当然のように 狭い範囲での良識や常識を持ち出すのは尽く卑怯。 意図的か無意識かは知らないが、 俺はそういう、相手が一生懸命考えた行為、 人と人との対話の価値を台無しにするやつは大大大嫌いだ。 知能人として最も最低な行為だと知れ。
- 359 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 13:13:57.86 ID:VVl5B4DR.net]
- 人よりも言語自体が目的っていう軽い感覚がかえって役に立つこともあるね
言語を単なる道具と思ったら、真の目的が重荷になる
|
![](http://yomi.mobi/qr.gif)
|