【JS】スクリプト,バトルロワイヤル39【Perl,Ruby,PHP,Python】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
前スレ

【PHP,Python】スクリプト,バトルロワイヤル38【Perl,Ruby】
http://toro.2ch.net/test/read.cgi/tech/1378640419/
2デフォルトの名無しさん:2013/09/09(月) 16:06:59.58
プログラム初心者ですが
windows8にPerl入れようとしたら
詰んだ
サポート外?
3デフォルトの名無しさん:2013/09/11(水) 18:58:11.50
Perlのこと全く知らないけど
XAMPP使えば
4デフォルトの名無しさん:2013/09/15(日) 01:57:41.64
ハッキングされてしまった

やっぱサーバー立てるなら確実にログ保存してないとダメだよな
何らかの方法でローカルサーバーがグローバルサーバーにされてた
??? ってなってサーバー再起動したら、元のローカルサーバーに戻った
WEBrickしっかりしよう

特に何も入ってないpcで
アクセスされたファイルはただの萌え画像1個だから別に良いけど
2時間接続されて数百KBしか転送できないような限定的な接続の仕方ってありえるのか
セキュリティってしんどいな〜
5デフォルトの名無しさん:2013/09/15(日) 03:39:44.88
>>4 おめでとう
6デフォルトの名無しさん:2013/09/15(日) 04:53:26.45
足跡に気づいただけマシだ
7デフォルトの名無しさん:2013/09/15(日) 08:12:15.82
ログは別のサーバに保存しておかないとな。
8デフォルトの名無しさん:2013/09/15(日) 08:26:54.62
>>2
そう
JAVAやPythonもWin8では使えない

rubyなら入る
9デフォルトの名無しさん:2013/09/15(日) 08:29:21.66
サバ缶御苦労様
10デフォルトの名無しさん:2013/09/16(月) 22:05:10.59
上げ
11デフォルトの名無しさん:2013/09/16(月) 22:15:38.42
さて、次のお題よろしく。
12デフォルトの名無しさん:2013/09/16(月) 22:20:52.16
PythonをWin8に移植する
13デフォルトの名無しさん:2013/09/16(月) 22:20:56.31
もう皆疲れたよ
14デフォルトの名無しさん:2013/09/16(月) 22:50:56.98
火葬マシンインスコすればいい
15デフォルトの名無しさん:2013/09/17(火) 00:01:02.11
前スレで速度はどうでもいいという人がいたが
速度があると強引なアルゴリズムで強引に解決することもできるんだなと
これとか見て思った
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12109785557
16デフォルトの名無しさん:2013/09/17(火) 00:07:25.47
windowsを窓から投げ捨てれば良い
17デフォルトの名無しさん:2013/09/17(火) 00:08:21.38
互換性なんて嘘なんだから、皆、c++に戻りなよ
18デフォルトの名無しさん:2013/09/17(火) 00:19:33.22
objective-cやlogtalkのようなアプローチで作られた
移植しやすいcのスーパーセットみたいな言語ってありませんか?
19デフォルトの名無しさん:2013/09/17(火) 00:20:13.28
Cは良いけどC++はウンコ
我慢して使ってるけど
20デフォルトの名無しさん:2013/09/17(火) 00:22:05.54
じゃあ次のお題は SEND + MORE = MONEY を
できるだけ簡潔に、しかし、耐えられる時間で解くコード
21デフォルトの名無しさん:2013/09/17(火) 00:27:48.27
>>15
じゃあJSはこれでお願いします
10秒
+αで汎用的
22デフォルトの名無しさん:2013/09/17(火) 00:41:50.94
9567+1085=10652
だから総当り方式だと最初の位を9から仮定していけば
SENDMONEYに特化した最適化が出来るから
速度の比較はもっと沢山問題用意しないとダメかもな
23デフォルトの名無しさん:2013/09/17(火) 00:44:24.58
スタックが足りなくてシンプルに書けないかも
24デフォルトの名無しさん:2013/09/17(火) 00:58:39.23
普通に総当りでどうにでもなった
2秒

ttp://ideone.com/h4fllc
25デフォルトの名無しさん:2013/09/17(火) 01:04:21.88
全くもって汎用性のないコード
>>15みたいに覆面算全般ができないとダメよ
26デフォルトの名無しさん:2013/09/17(火) 01:08:11.07
毎度思うんだけどさ、
問題を解くのが面倒なんだ。

言語の違いを知るだけだろ?
ならある言語で実装して、
それと同じコードを他の言語に
書き換えるだけでいいのではないのか?
27デフォルトの名無しさん:2013/09/17(火) 01:08:28.82
全般とは言わないが
任意桁+任意桁=任意桁
くらいは出来て欲しいね。
28デフォルトの名無しさん:2013/09/17(火) 01:09:58.11
>>26
バトルロワイヤルってのは使い手たちの戦いでもあるから
うちの言語俺が使うとこんなコードで出来まっせってのが大事
29デフォルトの名無しさん:2013/09/17(火) 01:11:52.22
学者じゃないんだから言語の違いなんかには興味ないね。
むしろ他人がどんなコード出してくるかが気になる。
30デフォルトの名無しさん:2013/09/17(火) 01:15:43.25
移植するほうが10倍めんどいと感じるのは俺だけ?
自分で考えて書くのが楽しんじゃないの?
31デフォルトの名無しさん:2013/09/17(火) 01:23:07.91
既存のPHPをssjsに置き換えるのは非常に困難だって、誰かがボヤいてた
32デフォルトの名無しさん:2013/09/17(火) 01:23:24.20
でもさ、大概他の言語で真似出来ちゃうよね?
33デフォルトの名無しさん:2013/09/17(火) 01:26:32.07
>>29
学者は言語の違いなんて興味持ちません
大方、アルゴル系統の言語で一括りどすえ
喧しいのはワナビ族かオタク
34デフォルトの名無しさん:2013/09/17(火) 01:30:32.25
つまらないことで煽っていくスタイルやめようぜ
35デフォルトの名無しさん:2013/09/17(火) 01:34:01.79
しかし、VBAって処理系はいつになったらpythonやruby風に進化するんだろう
いい加減に葬り去ってjsに統一すれば良いのに
36デフォルトの名無しさん:2013/09/17(火) 01:37:41.08
>>35
お前VBA使ってるの?
あれはあのままでいいと思うんだけど。
俺とは関係ない世界の話しだし。
37デフォルトの名無しさん:2013/09/17(火) 01:39:40.54
>>29は地獄のミサワに1ペリカ
38デフォルトの名無しさん:2013/09/17(火) 01:40:06.83
いるよね
さもわかってるかのような口ぶりのワナビ族
39デフォルトの名無しさん:2013/09/17(火) 01:41:13.52
ここは言語のバトルロワイヤルであって
アルゴリズムのバトルロワイヤルじゃないと思うんだが?

アルゴリズムってのは基本的に
どの言語でも同じように実装できるし。
40デフォルトの名無しさん:2013/09/17(火) 01:42:55.12
>>39
>アルゴリズムってのは基本的に
>どの言語でも同じように実装できるし。

何それ背理方?
41デフォルトの名無しさん:2013/09/17(火) 01:44:02.90
いいから黙ってコード書けばよろし
42デフォルトの名無しさん:2013/09/17(火) 01:45:33.85
つまりカリカリチューンが真骨頂と
43デフォルトの名無しさん:2013/09/17(火) 01:47:32.93
書ける書けると言いながら未だコードは2件のみ
44デフォルトの名無しさん:2013/09/17(火) 01:49:50.71
>>42
カリカリチューンして意味ある言語って、c/c++,fortranぐらいじゃないの?
所謂、LLのノウハウって、かつてのBASICやperlのように葬られる運命
45デフォルトの名無しさん:2013/09/17(火) 01:51:18.03
最後にはどれだけライブラリが揃っているかの
勝負になりそう・・・。
46デフォルトの名無しさん:2013/09/17(火) 01:59:28.98
>>15
これevalが活躍できるスクリプト言語ならではのいいお題だと思う
こういうのが上手く書けないと真にスクリプト言語を書けることにならないんじゃない?
47デフォルトの名無しさん:2013/09/17(火) 02:00:20.42
>>44
どこでeval使ってるんだ?
48デフォルトの名無しさん:2013/09/17(火) 02:00:35.49
>>45
やめてよね。LLがjavaに勝てるわけないじゃない
実際はc/javaのライブラリを呼ぶけれど、如何に呼びやすいかってのが最重要な要素
個人的にはrubyがグルー言語としてもコマンドラインツールとしても使えて便利そうに見える
なかのひとたちが絶望して真っ黒になるまでは使えそう
49デフォルトの名無しさん:2013/09/17(火) 02:00:53.41
>>46だった。
50デフォルトの名無しさん:2013/09/17(火) 02:06:51.79
>>15の知恵袋回答参照
51デフォルトの名無しさん:2013/09/17(火) 02:16:27.02
eval is evil
eval is evil
eval is evil
eval is evil
52デフォルトの名無しさん:2013/09/17(火) 02:16:42.86
LLからC/C++で書かれたライブラリ呼べばいいじゃん
つかPythonはそうしているし
53デフォルトの名無しさん:2013/09/17(火) 02:17:20.57
VBAっていまだに宣言と代入が同時にできないんだぜ。

C99以下の言語。
54デフォルトの名無しさん:2013/09/17(火) 02:17:30.99
逆に、C/C++からLLのライブラリも呼べる
55デフォルトの名無しさん:2013/09/17(火) 02:19:24.65
evalが嫌なら構文解析やASTなんかを使わにゃならんだろうが
そりゃeval使ったほうがええな
56デフォルトの名無しさん:2013/09/17(火) 02:21:24.41
evalで作った関数はJITも効くしこういうケースでは有効。
57デフォルトの名無しさん:2013/09/17(火) 03:56:18.97
なんか工夫しないとやっぱり遅いな

from itertools import permutations

def solve(problem):
    variables = compile(problem, '<string>', 'eval').co_names
    letters = ''.join(set(''.join(variables)))
    first_letters = [letters.index(y) for y in set(x[0] for x in variables)]
    perms = (''.join(c) for c in permutations('0123456789', len(letters)))
    candidates = (c for c in perms if c.find('0') not in first_letters)
    for candidate in candidates:
        expr = problem.translate(str.maketrans(letters, candidate))
        if eval(expr):
            yield expr

if __name__ == '__main__':
    print(next(solve('send + more == money')))
58デフォルトの名無しさん:2013/09/17(火) 04:20:02.82
; Common Lisp
(defmacro fukumenzan (symbol expression &optional number original-symbol)
 (let ((num (gensym)))
  `(loop with ,num = (or ,number '(0 1 2 3 4 5 6 7 8 9))
      for ,(car symbol) in ,num
      nconc ,(if (= (length symbol) 2)
           `(loop for ,(cadr symbol) in (remove ,(car symbol),num)
               if ,expression
               collect (pairlis ',original-symbol (list ,@original-symbol)))
           `(fukumenzan ,(cdr symbol) ,expression
            (remove ,(car symbol) ,num)
            ,(or original-symbol symbol))))))

;; m = 0, s = 0 を取り除いてる。
(remove-if-not (lambda (x)
         (loop for y in '(s m)
            never (zerop (cdr (assoc y x)))))
        (fukumenzan (s e n d m o r e y)
              (= (+ (+ (* s 1000) (* e 100) (* n 10) d)
                 (+ (* m 1000) (* o 100) (* r 10) e))
               (+ (* m 10000) (* o 1000) (* n 100) (* e 10) y))))
59デフォルトの名無しさん:2013/09/17(火) 10:16:51.32
Googlemapsについて、どこで質問していいのかわからなかったので、ココで・・・。

会社で制作しているWebページに、Googlemapsを使って地図を貼り付けているんですけど、
今朝ゼンリンから電話があって、「Googlemapsを使うなごるぁ!」ってクレームが入りました。

Googlemaps自体は、特に変な事はしてなく単に座標を指定して地図を表示しているだけです。

話を聞いてみると、「Googleとの協議で、座標を指定して地図を表示するのは、著作権物の二次使用になるので利用料が発生する」
との事でした。
どうも、Googlemapsのトップページにリンクするのはいいんだけど、地図を貼り付けて表示するのは有料になるようです(なった?)。

スレ違いかもしれませんが、他の方のところも同じ様な連絡はなかったでしょうか?
https://developers.google.com/maps/faq?hl=ja#tos_commercial
↑を見る限り問題なさそうなんですが・・・。
60デフォルトの名無しさん:2013/09/17(火) 10:34:33.81
>>59
Web制作板へ逝って、そこで質問汁
ここはスレ違いの板違いだ
61デフォルトの名無しさん:2013/09/17(火) 10:53:05.17
>60
了解しました。
62デフォルトの名無しさん:2013/09/17(火) 11:08:18.62
Squeak Smalltalk

| solve answers |
solve := [:words |
 | letters table int triplets |
 letters := words concatenation asSet.
 table := letters inject: Dictionary new into: [:dic :chr | dic at: chr put: 0; yourself].
 triplets := OrderedCollection new.
 int := [:str | str inject: 0 into: [:acc :chr | acc * 10 + (table at: chr)]].
 (0 to: 9) combinations: table size atATimeDo: [:comb |
  comb permutationsDo: [:digits |
   digits doWithIndex: [:dig :idx | table at: (table keys at: idx) put: dig].
   ((words allSatisfy: [:word | (table at: word first) > 0]) and: [
     (int value: words first) + (int value: words second) = (int value: words third)])
    ifTrue: [triplets add: (words collect: [:key | key -> (int value: key)])]]].
 triplets asArray].

solve value: #(SEND MORE MONEY) "=> {{#SEND->9567 . #MORE->1085 . #MONEY->10652}} "
solve value: #(APPLE GRAPE CHERRY) "=> {{#APPLE->63374 . #GRAPE->90634 . #CHERRY->154008}} "

最初の文字の非ゼロチェックだけの総当たり。
最初の解が見つかったところで終了しないで最後まで(見つからないが)探した場合で
SEND MORE MONEY は 36秒
APPLE GRAPE CHEERRY は 83秒
63デフォルトの名無しさん:2013/09/17(火) 13:10:42.37
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::
64デフォルトの名無しさん:2013/09/17(火) 13:28:23.56
>>59
企業からの圧力なんてあるんだ
こういうのって、google以外のフリーのマップ使えるんだっけ?
65デフォルトの名無しさん:2013/09/17(火) 13:29:47.22
>>59
企業からの圧力なんてあるんだ
こういうのって、google以外のフリーのマップ使えるんだっけ?
66デフォルトの名無しさん:2013/09/17(火) 14:08:12.24
>>59
利用規約の第何条第何項に違反しているのか問いただせ。
まさかとは思うが「ゼンリンの方から来ました」じゃないよな?
67デフォルトの名無しさん:2013/09/17(火) 14:39:39.29
GoogleMapsはアクセス数が規定値未満なら無料
それ以上はGoogleにお金を払う
ゼンリン云々は120%詐欺だから無視
68デフォルトの名無しさん:2013/09/17(火) 14:44:19.21
「座標を指定してGoogle Mapを表示」って、すごくありきたりな使い方
裁判沙汰になったらGoogleへの著作権侵害を第三者が訴えるのかな?
perlですらも商標ゴロに付きまとわれた過去があるんだし、
日本の大手企業を騙るインテリヤクザとかの奇妙な存在ってのも懸念したら?
69デフォルトの名無しさん:2013/09/17(火) 15:52:02.90
googlemapsの件ですが、あっちのスレに書き込む前に解決しました。
結局ゼンリンの担当者の勘違いって事で。
どうもマップのスクショをイメージとして貼り付けてると思ってたらしくて。

スレ違いなのでこの辺で。
お騒がせしました。
70デフォルトの名無しさん:2013/09/17(火) 16:10:28.98
バカ、そんな間違いするわけ無いだろ
騙されてるんだよお前の会社
71デフォルトの名無しさん:2013/09/17(火) 16:12:41.40
>>57に比べれば瞬殺だけど長く汚くなった、あとPython3.3必須
http://codepad.org/GAwaiudN

send + more = money
apple + grape = cherry
両方合わせて3秒程度
72デフォルトの名無しさん:2013/09/17(火) 16:36:37.81
>>71
おいPythonじゃねーじゃ・・Pythonだ
73デフォルトの名無しさん:2013/09/17(火) 18:22:24.13
Rubyでeval
def solver(q)
; vars = q.scan(/[a-z]/i).uniq
; ind = Hash[vars.zip(vars.size.times)]
; qq = q.gsub(/([a-z]+)/i){ $1.chars.reverse.map.with_index{|e,i| "a[#{ind[e]}]*#{10**i}"}.join('+')}.sub(/=/,'==')
; chk1 = eval "->(a){#{qq}}"
; chk2 = eval "->(a){#{q.scan(/[a-z]+/i).map{|e| "!a[#{ind[e[0,1]]}].zero?" }.join(' and ')}}"
; (0..9).to_a.permutation(vars.size) do |a|
; ; yield q.gsub(/([a-z])/i){a[ind[$1]]} if chk1.call(a) and chk2.call(a)
; end
end

solver("send + more = money"){|a| puts a}
#solver("APPLE + GRAPE = CHERRY"){|a| puts a}

全パターン検索して 2.3秒
ループごとにevalさせてたら 57秒かかったので
判定関数をevalで作る方式に
"APPLE + GRAPE = CHERRY" だと4.7秒

一つ見つけたら打ち切りだと 両方あわせて 5.1秒
同環境で >>71 をPython3.3.0 で 2.8秒
ぐぬぬっPython速いな
74デフォルトの名無しさん:2013/09/17(火) 18:46:49.74
>>71
関数型言語っぽくて良い
75デフォルトの名無しさん:2013/09/17(火) 19:33:22.26
JSがゴミすぎる
やはり周回遅れの劣等言語か
76デフォルトの名無しさん:2013/09/17(火) 20:08:40.92
誰かジョンタイターの予言を信じる奴いる?
確か、東北半分ぐらいが住めなくなって、首都が島根。
プログラム言語はMaybeが含まれるものが主流ってヤツ。
77デフォルトの名無しさん:2013/09/17(火) 21:02:44.51
Squeak Smalltalk を >>73 とほぼ同じ方針で

| solve |
solve := [:words |
 | letters shouldntZeros signs check results |
 letters := words concatenation asSet asArray.
 shouldntZeros := (words collect: #first) asSet collect: [:chr | letters indexOf: chr].
 signs := '+=' readStream.
 check := Compiler new evaluate: (String streamContents: [:ss |
  ss nextPutAll: '[', ((letters gather: [:chr | ':', chr, ' ']) as: String), ' | '.
  words do: [:wd |
   ss nextPutAll: (String new: wd size withAll: $().
   wd do: [:chr | ss nextPut: chr] separatedBy: [ss nextPutAll: ')*10+'].
   ss nextPut: $)
  ] separatedBy: [ss nextPut: signs next]. ss nextPut: $]]) in: nil to: nil.
 results := OrderedCollection new.
 (0 to: 9) combinations: letters size atATimeDo: [:comb |
  comb permutationsDo: [:digits |
   ((shouldntZeros allSatisfy: [:idx | (digits at: idx) > 0])
     and: [check valueWithArguments: digits])
    ifTrue: [results add: (words collect: [:wd |
     wd -> (wd inject: 0 into: [:acc :chr | acc * 10 + (digits at: (letters indexOf: chr))])])]]].
 results asArray
].

solve value: #(SEND MORE MONEY)

全パターン検索で SEND + MORE = MONEY は 2.0秒
APPLE + GRAPE = CHERRY が 4.0秒
見つかり次第打ち切りの場合は両方合わせて 4.1秒 と劇的に改善しました。ありがとう。w
参考まで、同マシンで >>73 は SEND + MORE = MONEY が 5.7秒
APPLE + GRAPE = CHERRY が 9.4秒
78デフォルトの名無しさん:2013/09/17(火) 21:38:18.54
JavaScriptで書いてみた
Rubyの3.6倍時間かかる
http://ideone.com/cm0Lup
79デフォルトの名無しさん:2013/09/17(火) 21:46:02.56
やっぱりJSはひでえな。
速度もそうだが何この原始時代のコード……
80デフォルトの名無しさん:2013/09/17(火) 21:52:27.66
JSはそんな悪い言語じゃないんだぜ
Chromeという前提条件つきであればそこらのLLを越えて爆速だし
81デフォルトの名無しさん:2013/09/17(火) 21:53:25.22
お、おう
82デフォルトの名無しさん:2013/09/17(火) 22:05:45.02
>>79
それは書いた奴が悪いだけ。
83デフォルトの名無しさん:2013/09/17(火) 22:07:51.07
>>80,82
よろしく
84デフォルトの名無しさん:2013/09/17(火) 22:07:54.36
煽るぐらいならスルーしろよ
85デフォルトの名無しさん:2013/09/17(火) 22:09:48.83
一番にコードを書いたのに
同じJSerからも批難される>>78哀れ
86デフォルトの名無しさん:2013/09/17(火) 22:10:03.09
>>77
空行が少ないからすごく読みにくいな。
87デフォルトの名無しさん:2013/09/17(火) 22:13:38.26
>>77
まあこういうのは少なくとも2chに貼るもんじゃないだろうね
88デフォルトの名無しさん:2013/09/17(火) 22:13:48.87
JSerはJS最強を唱える奴ほどコード書けないという法則があるよね
コード書けるJSerは欠点も知ってるから最強を唱えない
89デフォルトの名無しさん:2013/09/17(火) 22:17:45.47
>>78
これ実行すると1GBもメモリ食うんだけど……
バカじゃないの?
90デフォルトの名無しさん:2013/09/17(火) 22:24:19.81
メモリはVM入れて16MBまでね。
91デフォルトの名無しさん:2013/09/17(火) 22:43:14.28
最近オブジェクトにオブジェクトを合成してプロパティーを追加する
こんな演算子があったらいいなと思ってるんだけどある言語ある?

obj1 .= obj2
92デフォルトの名無しさん:2013/09/17(火) 22:51:00.53
プロパティがコンフリクトしたときはどっちを優先するの?
93デフォルトの名無しさん:2013/09/17(火) 22:51:14.86
obj <<< obj2 ならあるが
94デフォルトの名無しさん:2013/09/17(火) 22:51:45.09
覆面算を10進に限定せず、何進でもよくして
そのうち最小の進数で解く問題にすれば
アルファベット=文字が増えても出来る。
95デフォルトの名無しさん:2013/09/17(火) 22:56:21.14
覆面算の価値は人に取って面白いってことだから
そうするとわかりにくくなって価値が無くなる
96デフォルトの名無しさん:2013/09/17(火) 22:57:34.16
お前ら暇なら将棋ソフト作ってここで戦おうぜ
http://wdoor.c.u-tokyo.ac.jp/shogi/floodgate.html
97デフォルトの名無しさん:2013/09/17(火) 23:06:34.23
>>71を少しだけ弄った
http://codepad.org/wlta9WRY

send + more = money
apple + grape = cherry
両方合わせて0.3秒程度で出る
98デフォルトの名無しさん:2013/09/17(火) 23:11:56.95
>>97
これって AB + C = BA とかどうなるの?
99デフォルトの名無しさん:2013/09/17(火) 23:13:01.84
>>20を忘れてない?
「できるだけ簡潔に」ね
とことん最適化するならアルゴリズム大会になるから
100デフォルトの名無しさん:2013/09/17(火) 23:14:20.30
12+9=21
101デフォルトの名無しさん:2013/09/17(火) 23:15:09.70
Line 34
yield from advance(n + 1, mapping, remaining)
^
SyntaxError: invalid syntax
102デフォルトの名無しさん:2013/09/17(火) 23:17:21.15
>>99
>>15 のJSのコード:行数120、実行時間は10秒(?)
>>97 のPythonのコード: 行数46、実行時間は0.3秒
103デフォルトの名無しさん:2013/09/17(火) 23:17:52.25
>>101
>>71に書いたけど、Python3.3必須
104デフォルトの名無しさん:2013/09/17(火) 23:17:56.49
KYOTO + OSAKA = TOKYO
AOMORI + SAPPORO = FUKUOKA
KOCHI + OSAKA = NAGOYA
OKAYAMA + WAKAYAMA = KANAZAWA
FUKUOKA + NAGANO = YOKOHAMA
KAMAKURA + MORIOKA = NAGASAKI
KUMAMOTO + TOTTORI = WAKAYAMA
OKAYAMA + WAKAYAMA = YAMAGATA
TOTTORI + YAMAGATA = YOKOHAMA
105デフォルトの名無しさん:2013/09/17(火) 23:19:56.60
23+9=32
34+9=43
45+9=54
56+9=65
...
78+9=87
106デフォルトの名無しさん:2013/09/17(火) 23:24:40.76
>>102
>>15はバグあるしTypedArrayとか使ったりいろいろ変なことしてるだろ
最低限なことしかしてない中身約20行の>>78>>15よりちょっと早いよ
107デフォルトの名無しさん:2013/09/17(火) 23:31:15.10
JSは他の人も書けよ。
特に>>80,82
108デフォルトの名無しさん:2013/09/17(火) 23:32:36.06
JSはせっかく性能高い処理系あるんだから生CPythonぐらいは抜いて貰わないとな
109デフォルトの名無しさん:2013/09/17(火) 23:34:35.53
言語と速度は別だ。
実行時に新型(新クラス)が無限に生成されるのでなければ
原理的には実行前にアセンブラやC++に変換にするのは可能。
110デフォルトの名無しさん:2013/09/17(火) 23:44:47.98
じゃあ遅くてもいいからJSのコードがもっと見たいわ。
11178:2013/09/18(水) 00:05:17.59
頑張ってるけど
>>78でもう生成したコードを実行する部分だけで全体の半分以上の時間がかかってるから
仮に生成する部分を多少改善しても爆速にはならなさそう

だから実行コード自体をどうにかしたいんだけど
今のif文return以外の方法だとV8でどうしてもスタックが溢れてしまって
>>15みたいに分割しなくちゃいけなくなりそうだから結構難しい

GCにもかなり時間食われてるし、根本的に無理があるのかも
あとはアルゴリズムに手を加えて生成するコード自体を少なくするくらいしか思いつかない
112デフォルトの名無しさん:2013/09/18(水) 00:15:00.59
よくあるのが、文字列を足していくんじゃなくて、
配列に入れておいて、最後にjoinするって手があるが。
113デフォルトの名無しさん:2013/09/18(水) 00:16:28.65
文字を足していくと、新しい領域に足してコピー→前の領域を消す
という流れになるだろうから、GCに時間かかるだろうし。
114デフォルトの名無しさん:2013/09/18(水) 00:17:37.42
>>99
> 「できるだけ簡潔に」ね

それはそれで、ライブラリ勝負になっちゃうんだよ。

ある言語ではライブラリがあるから簡単にかけるが、
そうでない言語ではライブラリがないから書かないといけない。
115デフォルトの名無しさん:2013/09/18(水) 00:22:36.24
>>114誰もそんなこと言ってない
仕様を満たす最低限のコード書けたのに
それを最適化のためにわざわざコードを長くするのはマイナスじゃないかといってる
116デフォルトの名無しさん:2013/09/18(水) 00:25:48.02
>>115
最低限のコードっていうのもなぁ。
それもライブラリ次第なんだよね。

当然ライブラリは汎用でなければならないが、
ライブラリが存在すると仮定するならば、
それを使うことで更に短く出来るかもしれない。

ライブラリまで含めると長くなるが、
もしそのライブラリが存在するならば
短くなる。
117デフォルトの名無しさん:2013/09/18(水) 00:28:13.43
>>112,113
そこは分かるんだけど、そこのコストは1/3で
eval自体に2/3近くかかってしまってるんだ
118デフォルトの名無しさん:2013/09/18(水) 00:29:44.81
こいつ言ってることが分かんないのか???
最適化のためにコードが長くなっていく方向は最初の趣旨と違ってきてるんじゃねえのかと言ってるんだよ。
119デフォルトの名無しさん:2013/09/18(水) 00:39:36.70
お前らWindowsXP並のOSをソースコード1MBぐらいで書いてくれよ
120デフォルトの名無しさん:2013/09/18(水) 00:41:49.18
せっかくなのでコンパイル済みのバイトコードをevalするようにした
コードは>>97より少しだけ短くなった
http://codepad.org/sWPDapof

timeコマンドでおおざっぱに計測して、0.15秒程度
Pythonの起動時間のほうが気になるかもしれない
121デフォルトの名無しさん:2013/09/18(水) 01:07:14.22
js素直に再帰書いたら激遅すぎて終わらない
やっぱり後でevalのがいいのか
122デフォルトの名無しさん:2013/09/18(水) 01:21:27.47
>112,113
文字列連結はV8の十八番中の十八番
http://nothingcosmos.blog52.fc2.com/blog-entry-155.html
123デフォルトの名無しさん:2013/09/18(水) 01:27:00.07
>>104の時間はどうだ?
あと速度はマシン性能にも依存するから同一マシンで計るなりしないと
処理系比較としては正確でない。
124デフォルトの名無しさん:2013/09/18(水) 01:27:10.22
逆じゃないか
JSは言語としてはいまいちだが、処理系は極めて優秀
125デフォルトの名無しさん:2013/09/18(水) 01:30:47.57
>>123
全部で合わせて2秒ほどだね
$ time python3.3 sendmoremoney.py
(('send', 9567), ('money', 10652), ('more', 1085))
(('cherry', 154008), ('grape', 90634), ('apple', 63374))
(('TOKYO', 73413), ('OSAKA', 32040), ('KYOTO', 41373))
(('AOMORI', 790968), ('SAPPORO', 1744969), ('FUKUOKA', 2535937))
(('OSAKA', 89343), ('KOCHI', 48520), ('NAGOYA', 137863))
(('OKAYAMA', 9701030), ('WAKAYAMA', 60701030), ('KANAZAWA', 70402060))
(('YOKOHAMA', 10204757), ('NAGANO', 376730), ('FUKUOKA', 9828027))
(('KAMAKURA', 51915701), ('MORIOKA', 9402451), ('NAGASAKI', 61318152))
(('KUMAMOTO', 58171393), ('TOTTORI', 9399324), ('WAKAYAMA', 67570717))
(('YAMAGATA', 30406080), ('OKAYAMA', 9703040), ('WAKAYAMA', 20703040))
(('YAMAGATA', 63238353), ('YOKOHAMA', 69194323), ('TOTTORI', 5955970))

real 0m2.092s
user 0m0.000s
sys 0m0.015s
12678:2013/09/18(水) 04:05:57.67
やっぱり俺がアホだったわ
ここに書いてある通りのコード作るだけで
>>78より約20倍早くなって1秒切るようになった
http://blog.goo.ne.jp/ktonegaw/e/92991be3daa7b3aa871ded96a3c6adcf

同環境で>>73をRuby2.0で実行した時の5倍早い
http://ideone.com/mLFlVf
127デフォルトの名無しさん:2013/09/18(水) 07:19:18.04
なんという力技…
128デフォルトの名無しさん:2013/09/18(水) 08:57:07.20
読む気失せた
129デフォルトの名無しさん:2013/09/18(水) 09:45:28.05
mod2とmod3での条件を求めておけば速いのでは。
文字の重複がないとあまり意味なさそうだが。
130デフォルトの名無しさん:2013/09/18(水) 11:22:16.71
フィンランド人の科学者が、「世界一難しい数独」を作り出すことに成功したそうです。
http://i.gzn.jp/img/2010/08/22/hardest_sudoku/sudoku01.jpg
作成には3ヶ月かかったというこの数独ですが、「当てずっぽう」ですぐに解けてしまう人もいるかもしれません。
しかし、このパズルをロジックのみで解くには、普通は数日間はかかるでしょう」とInkala博士は語ってます。
http://gigazine.net/news/20100822_hardest_sudoku/
131デフォルトの名無しさん:2013/09/18(水) 11:58:57.46
GIGAZINE 編集者ってアホやろ
132デフォルトの名無しさん:2013/09/18(水) 12:41:33.25
Pythonやymlのインデントブロックってさ、一見良さげだけど、ブロックを締める要素がないから、なんか締まりが悪いよな
133デフォルトの名無しさん:2013/09/18(水) 12:45:36.48
意味のないendを延々と繰り返す締りの悪い言語よりマシ
134デフォルトの名無しさん:2013/09/18(水) 13:05:18.96
インデントは、自信ない。深くなるほど、ますます自信がなくなる
135デフォルトの名無しさん:2013/09/18(水) 13:07:36.39
endに意味がないとか言ってるやつってブロックって概念を知らないアセンブラーですか?
136デフォルトの名無しさん:2013/09/18(水) 13:15:52.51
「意味」という言葉を正確に使えないだけw
137デフォルトの名無しさん:2013/09/18(水) 13:34:14.26
>>123
いちれんのPythonのコードは全パターンを検索しているわけではないから
速度出たところで「ふーん。早く最初の答えが見つけられるね」以上の意味はないよ。
速度を比べるなら少なくともアルゴリズムは統一しないと比較にならない。
138デフォルトの名無しさん:2013/09/18(水) 13:34:54.02
>>126
前より大分速くなったみたいだけど、まだV8で
AOMORI+SAPPORO=FUKUOKA
に50秒ぐらいかかるな、うちの環境だと
>>120のPythonだと0.05秒
139デフォルトの名無しさん:2013/09/18(水) 13:37:53.14
>>137
ためしに
AOMORI+SAPPORO=FUKUOKAを全部回したら>>120は0.8秒

最後を↓のようにしただけ
for x in solve('AOMORI + SAPPORO = FUKUOKA'):
  print(x)
140デフォルトの名無しさん:2013/09/18(水) 14:40:29.34
これなんでPython3.3限定なの?
141デフォルトの名無しさん:2013/09/18(水) 15:18:30.33
>>140
Generatorのチェインが簡単に記述できるやつではないかな
for x in g:
 yield x

yield from g
でOKになったやつ

Python使いじゃないので
間違ってたら詳しい人訂正よろしく
142デフォルトの名無しさん:2013/09/18(水) 16:50:47.60
>>141
トン
143デフォルトの名無しさん:2013/09/18(水) 17:05:48.28
>>120 の枝刈りなくしてブルートフォース版に書き換えて測ったら
send + more = money に30秒かかってクソわらったわ
同じ条件で >>73 は 2.7秒!!
やっぱりRuby最強だな!!!!
144デフォルトの名無しさん:2013/09/18(水) 17:11:51.21
evalで威張る
145デフォルトの名無しさん:2013/09/18(水) 17:26:24.16
もう各言語十分な速度出たみたいだから、そろそろ良いんじゃね
146デフォルトの名無しさん:2013/09/18(水) 18:16:59.73
>>143
そりゃ見返りのために余分な投資してるコードから見返り分だけ意図的に
捨てたら遅くなるだけわな
147デフォルトの名無しさん:2013/09/18(水) 18:26:56.20
>>126のリンク先のまんまのコードはくようにしたらどうなる?
明らかに無駄な部分もあるけどこのままで。
148デフォルトの名無しさん:2013/09/18(水) 18:28:05.40
同じアルゴリズムで比較しても意味なし。実用性がないと。
実験以外では使わないコードは実験でしかない。
149デフォルトの名無しさん:2013/09/18(水) 18:39:13.51
意味が無いとか無粋なこと言うねえ。
面白くなりそうならそれでいいじゃん。
このままアルゴリズム大大会をしたいんならいいけどさ。
自分はコードの雰囲気が見たいんだよね。

遊びでコード書いてる時が一番いい時ってどっかの偉い人も言ってたし。
150デフォルトの名無しさん:2013/09/18(水) 18:51:06.14
>>148
リアルだと、お里が知れるから発言控えた方が良いよ
151デフォルトの名無しさん:2013/09/18(水) 18:53:57.88
正直に言ってこのスレは初級者の自分のすごくいい経験になってる。
コードも、雑談も、喧嘩も全て。
152デフォルトの名無しさん:2013/09/18(水) 19:00:09.12
ここの煽り合戦には長いこと参加してるけれど、
結論を言うと、JavaとC以外は使わない方が良い。
趣味ならRか関数型ぐらいしかメリット無し
153デフォルトの名無しさん:2013/09/18(水) 19:06:50.41
趣味にメリット求められましても…
154デフォルトの名無しさん:2013/09/18(水) 19:10:36.99
そもそも実利のないことを趣味にするぐらいなら、
プログラミングぐらい馬鹿馬鹿しいものは選ばない
2次元のオッパイでも描いた方がマシ
155デフォルトの名無しさん:2013/09/18(水) 19:20:19.23
()付け忘れてて 足し算しかできてなかった
四則演算できるようにしたが、割り算が入ると0除算対応と有理数化する必要があって(元から遅いのにさらに)遅くなる
ついでにループ全体をevalの中に入れて関数コールを削除したら、ほんのちょっぴり速くなった
def solver(q)
; vars = q.scan(/[a-z]/i).uniq
; ind = Hash[vars.zip(vars.size.times)]
; chk1 = q.gsub(/([a-z]+)/i){ '(' + $1.chars.reverse.map.with_index{|e,i| "a[#{ind[e]}]*#{10**i}"}.join('+') + ')'}.sub(/=/,'==')
; chk1 = "begin;#{chk1.gsub(/\(/,'Rational(')};rescue ZeroDivisionError;false;end" if q.match(/\//)
; chk2 = q.scan(/[a-z]+/i).map{|e| "!a[#{ind[e[0,1]]}].zero?" }.join(' and ')
; eval <<-EOS
; ; (0..9).to_a.permutation(vars.size) do |a|
; ; ; yield q.gsub(/([a-z])/i){a[ind[$1]]} if (#{chk1}) and (#{chk2})
; ; end
EOS
end

solver("WOODS + WOODS + WOODS = FOREST"){|a| puts a}
solver("ONE + TWO + FIVE + FIVE + SEVEN = TWENTY"){|a| puts a}
solver("SUCHEN - MACHT = SPASS"){|a| puts a}
solver("KORE * ARE = IROIRO"){|a| puts a}
solver("HE * HE = SHE"){|a| puts a}
solver("NORTH / SOUTH = EAST / WEST"){|b| puts b}
solver("AHHAAH / JOKE = HA"){|b| puts b}
156デフォルトの名無しさん:2013/09/18(水) 19:47:07.67
>>152
Cはいいけど、Javaなんて書くやつはアホだ
157デフォルトの名無しさん:2013/09/18(水) 20:00:28.77
>>156
後々で自分が馬鹿だって気付くんだろうけど、
そのレス見る限りじゃヒッピー連中にはついていかない方が良いと思う
158デフォルトの名無しさん:2013/09/18(水) 20:04:03.48
>>157
後々からバカだと気づくのはお前だと思うよ
10年前ならともかく今の時代にJavaなんてゴミで書き続けたことに
159デフォルトの名無しさん:2013/09/18(水) 20:16:59.43
個人的には進化感が好きだからLL気に入ってる
Javaもコミュニティ大きいし結構進化もしてるし、
VMの仕組みとか面白いし、眺めるのは楽しい言語だと思う
書くのは億劫だけど
Cは目的を達成するために仕方無く使う言語で
楽しむ言語じゃないね
160デフォルトの名無しさん:2013/09/18(水) 20:31:01.40
Javaはプログラマもいちばんレベルが低いとばれちゃったからなぁ
それでもJava以外知らない上流はかなり多いから仕事はなくならないんだろうけど
http://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20130912/20130912141130.gif
161デフォルトの名無しさん:2013/09/18(水) 20:33:00.08
クライアントサイドJSは別だが、一般にはLLだと意外とC使うぞ
それが本来のグルー言語としてのあり方

Java屋とかのほうがC使わない印象あるな
言語自体速いのと、ピュアJavaに重きを置く文化のせいだと思う
162デフォルトの名無しさん:2013/09/18(水) 20:53:22.19
自分の知ってる範囲で定義に合わないのは除外して一般と騙っちゃう人って……
163デフォルトの名無しさん:2013/09/18(水) 21:04:17.44
>>162
クライアントサイドJSはCを「使う」「使わない」の問題じゃなくて
「仮に使いたくても使えない」特殊なケースなんだから、
Cを「使う」「使わない」の議論からは最初から外れるんだよ
164デフォルトの名無しさん:2013/09/18(水) 21:14:43.71
速いのか遅いのか中途半端な言語は属人性が高い
もし遅かったら言語ではなく人が疑われる
誰が書いても遅い or 誰が書いても速い両極端な言語は人に優しい
165デフォルトの名無しさん:2013/09/18(水) 21:15:40.38
>>15
@Mathematica

やってみたら何とか解けた。
コード行数72行もあるので貼るのはやめとくお。(´・ω・`)

作成時間:2時間弱
計算時間:6分弱
166デフォルトの名無しさん:2013/09/18(水) 21:18:37.51
ideonにtextとして貼り付けたらいい
167デフォルトの名無しさん:2013/09/18(水) 21:30:58.60
ふん、やっぱりevalはあまりメリットがないな。
運がいい場合にたまたま使える例がある。
がそれは最善のコードではない。
そういったたぐいか。
168165:2013/09/18(水) 21:32:38.82
>>166
じゃあお言葉に甘えて… (´・ω・`)

@Mathematica
http://ideone.com/WBSrx1
169デフォルトの名無しさん:2013/09/18(水) 21:37:22.67
>>167
盲目乙
170デフォルトの名無しさん:2013/09/18(水) 21:39:53.79
Squeak Smalltalk
ナイーブな総当たりかつハードコードだけど、簡潔かつ速かったので。
1.6秒。

| results check n1 n2 n3 |
results := OrderedCollection new.
check := [:S :E :N :D :M :O :R :Y |
 S > 0 and: [M > 0] and: [
  (n1 := ((S*10+E)*10+N)*10+D)
  +(n2 := ((M*10+O)*10+R)*10+E)
  =(n3 := (((M*10+O)*10+N)*10+E)*10+Y)]].
(0 to: 9) combinations: check numArgs atATimeDo: [:comb |
 comb permutationsDo: [:digits |
  (check valueWithArguments: digits)
    ifTrue: [results add: {#SEND->n1. #MORE->n2. #MONEY->n3}]]]
^results asArray


ついでに Ruby のほぼ直訳版。こちらは 2.0 で 4.9秒。

results = []
n1 = n2 = n3 = 0
check = proc{ |s,e,n,d,m,o,r,y|
s > 0 and m > 0 and
(n1 = ((s*10+e)*10+n)*10+d)+
(n2 = ((m*10+o)*10+r)*10+e)==
(n3 = (((m*10+o)*10+n)*10+e)*10+y) }
(0..9).to_a.permutation(check.arity){ |digits|
results << [[:send, n1], [:more, n2], [:money, n3]] if check[digits] }
p results
171デフォルトの名無しさん:2013/09/18(水) 21:40:58.38
いかん。インデントが… ま、いっか。
172デフォルトの名無しさん:2013/09/18(水) 21:43:22.40
ハードコートなら速度は前スレの順番の通りになるしか無いな
173デフォルトの名無しさん:2013/09/18(水) 21:46:27.51
evalでできることは全てevalを使わないできるからね。
(でないとC言語で作れないものが存在するということになってしまう)

evalを使わないほうが優れている。
174デフォルトの名無しさん:2013/09/18(水) 21:50:20.47
速度は言語には依存せず処理系による。
例えばRubyで実装したPythonは、Rubyを超えることはない。
175デフォルトの名無しさん:2013/09/18(水) 21:55:00.86


Pythonには複数の実装が存在する。

CPython - 作者によってC言語で書かれたバージョン。通常「Python」といえばこのCPythonを指す。
Stackless Python - Cスタックを使わずに独自のスタック(Pythonスタック)で実装したもの。
Unladen Swallow - GoogleのチームによるPythonの実装
Jython - Java仮想マシン上に移植したもの。PythonからJavaのライブラリを使うことができる。
IronPython - .NET Framework/Monoで動作するPython。C#で実装されている。.NET Frameworkのライブラリを使うことができる。動的言語ランタイム上に構築されているため、既存の.NETアプリケーションへマクロ言語として搭載することも可能となっている。
PyPy - Python (RPython) によるPythonの実装
Psyco - CPython向けのJITコンパイラ
PyMite - 組み込み向けの実装、AVRなどに対応。
tinypy - 同じく組み込み向けの実装。ソースコードが64kb未満と非常に軽量なことが謳われている。

Python - Wikipedia
176デフォルトの名無しさん:2013/09/18(水) 21:56:11.18
>>174
> 例えばRubyで実装したPythonは、Rubyを超えることはない。

インタプリタの場合はそれは正しいね。

でもコンパイルしてアセンブラにしてしまえば、
実装言語は関係ないね。
177デフォルトの名無しさん:2013/09/18(水) 21:58:12.75
>>173
自分の都合のいい用にしか考えられないようだな
evalとC言語の関係性は無い
evalの有効性はその言語内または同じevalをもつもの同士でのみ比較できる
何故なら最悪evalを使わないとチューリング完全でない言語もありえるから
そうでなくとも>>55ということだアホがwww
178デフォルトの名無しさん:2013/09/18(水) 22:00:53.41
>>177
アタナの主張はなに?
evalを使わざるを得ない言語はそりゃあり得るでしょうよ。

そんな言語は劣っているってだけなんだが。
179デフォルトの名無しさん:2013/09/18(水) 22:03:33.92
ワロチwwww
180デフォルトの名無しさん:2013/09/18(水) 22:04:41.87
>>176
せやな
181デフォルトの名無しさん:2013/09/18(水) 22:07:25.43
>>168
中身はわからんが乙
182デフォルトの名無しさん:2013/09/18(水) 22:08:12.44
>>175
問題は、その一覧の中にある(CPython を除く)実装が 3.3 に対応しているか?
ってこと
183デフォルトの名無しさん:2013/09/18(水) 22:11:42.73
別にそこはどーでもよーないー?
別にPython5で書いてもOREthonで書いても怒らんよ
184デフォルトの名無しさん:2013/09/18(水) 22:12:43.19
Mathematicaって商用だよねやっぱり
代わりの環境ってないかな
185デフォルトの名無しさん:2013/09/18(水) 22:14:40.55
機能制限されたのなら良く見ないか?
186デフォルトの名無しさん:2013/09/18(水) 22:20:41.04
一方でオープンソースのツールというのもある。それが今回、紹介するOctaveやMaximaである。
OctaveはMatlab互換を謳ったフリーの数値計算ツールである。
MaximaはMathematica,Mapleとは互換ではないがLISPで書かれたフリーの数式処理ツールである。
http://ks.ms.u-tokyo.ac.jp/~kyn/maxima.html

Sage (数式処理システム) - Wikipedia
Sage (セイジ) は数学の幅広い処理を扱うソフトウェアである。
扱う処理は計算機代数、組み合わせ、数値計算など多岐に及ぶ。工学的応用に加え基礎科学の研究もカバーする。
Sage は2005年2月24日にフリーソフトウェアとして GNU General Public License の元で初版が公開された。
その開発目的は Magma、Maple、Mathematica 、MATLAB の代替となるフリーかつオープンソースなソフトウェアを提供することであった。
開発は、米ワシントン大学の数学准教授のウィリアム・スタイン (William Stein) が主導して始まった。
187デフォルトの名無しさん:2013/09/18(水) 22:20:51.50
MuPAD
188デフォルトの名無しさん:2013/09/18(水) 22:26:43.34
さげってwww
189デフォルトの名無しさん:2013/09/18(水) 22:27:01.12
SimPy
190デフォルトの名無しさん:2013/09/18(水) 22:33:37.03
>>159
スクリプト言語が記述するソフトウェアやライブラリ群は基本的に小さいものが殆ど
移植性の問題を切り捨てる為にJavaが使われ、JVMの性能の為にJavaが使われ、
堅牢性の為にJavaが使われ、ライブラリ質の為にJavaが使われ、大規模開発の為にJavaが使われる。
これが現実であり、リアリストの意見であり、そして現実とはかくも非常なものなのだ。
191デフォルトの名無しさん:2013/09/18(水) 22:34:50.77
>>174
問題
ある言語の実装全体の集合から無作為にある実装を選んだとき
その速度は何に依存しているでしょうか
192デフォルトの名無しさん:2013/09/18(水) 22:38:10.78
>>190
うん、Javaっていろいろ凄いよね
言語の代表でもいいと思うよ
でも尖ったとこがないから面白くないね
193デフォルトの名無しさん:2013/09/18(水) 22:41:21.01
顧客の要求を形にするのが仕事であって、言語仕様自体の面白味なんて入りません。
むしろ、無意味な学習コストとデバッグコストが増えるだけ。これが現実。
194デフォルトの名無しさん:2013/09/18(水) 22:44:28.70
”パーソナルリアリティ”ですね
わかりますよ〜
195デフォルトの名無しさん:2013/09/18(水) 22:45:49.79
>>190
スクリプト言語が記述するソフトウェアやライブラリ群は基本的に小さいものが殆ど
移植性の問題を切り捨てる為にCOBOLが使われ、堅牢性の為にCOBOL使われ、
ライブラリ質の為にCOBOLが使われ、大規模開発の為にCOBOLが使われる。
これが現実であり、リアリストの意見であり、そして現実とはかくも非常なものなのだ。


何を言いたいかというと、Javaは21世紀のCOBOLだってこと
196デフォルトの名無しさん:2013/09/18(水) 22:46:43.21
COBOLは10進数の計算が出来るから銀行で未だにDSLみたく使われてんだよ
197デフォルトの名無しさん:2013/09/18(水) 22:49:27.97
固定小数点演算は将来的にどの言語もサポートするだろうね
198デフォルトの名無しさん:2013/09/18(水) 22:51:08.08
しません。ライブラリが付くだけ
199デフォルトの名無しさん:2013/09/18(水) 22:53:00.77
Ruby版を参考に、eval内で一桁ずつ積和計算するようにしてみた
コードをクリーンアップして実質40行未満になった
http://ideone.com/q6znjO

SEND + MORE = MONEY 〜 TOTTORI + YAGAMATA = YOKOHAMA
全部合わせて0.6秒程度

eval使ってるくせに、足し算以外には対応してない(する気もない)
200デフォルトの名無しさん:2013/09/18(水) 22:54:33.19
rubyって10進演算するんだっけ?
COBOLの代替にrubyつかわれないかな
201デフォルトの名無しさん:2013/09/18(水) 22:57:32.19
>>170
見よう見まねでかなり見苦しいかもですが、Python版も書いてみました。
こちらも同環境で4.9秒と、Ruby2.0とよい勝負をしています。
>>143が言うほど遅くはないですね。

from itertools import permutations

results = []
n1 = n2 = n3 = 0

def check(s,e,n,d,m,o,r,y):
 global n1, n2, n3
 n1 = ((s*10+e)*10+n)*10+d
 n2 = ((m*10+o)*10+r)*10+e
 n3 = (((m*10+o)*10+n)*10+e)*10+y
 return s > 0 and m > 0 and n1+n2==n3

for digits in permutations(range(10), check.__code__.co_argcount):
 if check(*digits): results.append([['send',n1],['more',n2],['money',n3]])

for x in results: print( x )
202デフォルトの名無しさん:2013/09/18(水) 23:00:24.44
JSは巨大数、10進数、分数、複素数型の導入が前向きに検討されてる
203デフォルトの名無しさん:2013/09/18(水) 23:03:48.16
数値計算って暗黙的な型変換のバグを発見し辛い
よって、関数型言語が流行れば良い
204デフォルトの名無しさん:2013/09/18(水) 23:08:18.44
>>202
入れないのかよ!
205デフォルトの名無しさん:2013/09/18(水) 23:11:30.83
fromIntegral
fromIntegral
fromIntegral
206デフォルトの名無しさん:2013/09/18(水) 23:12:04.20
固定小数点演算と、10進演算は違うものだよ。
207デフォルトの名無しさん:2013/09/18(水) 23:14:41.62
>>196
>>195で書いたのは、現在のCOBOLではなくて全盛期(1970年代-)の話
移植性/堅牢性/ライブラリ品質/大規模開発、すべて備えていたのが当時のCOBOLだった
その姿が今のJavaとだぶって見える.... という既視感
208デフォルトの名無しさん:2013/09/18(水) 23:14:47.30
なんか、豊富な数値型とか、Common Lispが20年前に通った道だけど、
より現代風に洗練された形で色々な言語でサポートされるんならそれはそれで
大変良いことだ。
209デフォルトの名無しさん:2013/09/18(水) 23:14:57.46
>>202
そんなにすぐすぐは無理
ES6のValueObjectsが実質の下準備
あと演算子オーバーロードとも分けて考えられないから
まだまだやることがある

多分ES7の仕事の半分くらいはこれ
210デフォルトの名無しさん:2013/09/18(水) 23:35:19.87
ES7の動向については今週、今まさに開かれてるtc39ミーティングで、
初めて大々的に話し合われるから今週はJSerなら寝られない週だね。
これでES7がいつどのくらいの規模で勧告されそうか予想ができる。
211デフォルトの名無しさん:2013/09/19(木) 00:40:45.74
せやな
212デフォルトの名無しさん:2013/09/19(木) 03:49:39.61
>>170,201 と同じコードを Node.js でも書いてみました。
combinations、permutations は Squeak Smalltalk のをやはり直訳ぎみに移植。
さすが V8 で 0.6 秒。爆速です。

http://ideone.com/SEEJ4x
213デフォルトの名無しさん:2013/09/19(木) 04:01:30.13
ここで使われてるPythonやRubyの実行系は何が得意なの?
214デフォルトの名無しさん:2013/09/19(木) 16:09:15.66
オブジェクト指向
215デフォルトの名無しさん:2013/09/19(木) 16:54:31.41
この処理系は関数呼び出しが得意とか、ループが得意みたいなの無いの?
1強なの?
216デフォルトの名無しさん:2013/09/19(木) 17:45:35.75
v8は典型的なJSerが書くクソコードが速く走るように最適化されてる。
だからナイーブな総当たりとか、そういう頭悪いコードについては
他の言語処理系より頑張って最適化してくれる。
217デフォルトの名無しさん:2013/09/19(木) 18:25:39.02
V8が速いのはJITコンパイルしてるからだろ
JITコンパイルするPythonの処理系PyPyで>>201を実行してみたら0.8秒になった
同じ環境で>>212は0.5秒
218デフォルトの名無しさん:2013/09/19(木) 18:32:04.73
典型的なクソコードが得意、って無茶苦茶矛盾してんね
もう得意とか苦手とかの概念がこの世から無くなりそうなレベル
219デフォルトの名無しさん:2013/09/19(木) 18:32:42.63
総当たりじゃないコードではどうなるの?
220デフォルトの名無しさん:2013/09/19(木) 18:43:31.85
もう基本的な部分はどの言語も、これ以上あまり最適化のしようがないだろうね
それでもV8は今年に入ってから大きな実アプリ系ベンチで50%もスコア伸ばしてる
https://www.dartlang.org/performance/

V8とは言え、最初は特定の苦手な書き方が結構合ったり、
GCがいまいちだったのを改善して安定性が格段に増した
ここの所コードの整理をしてきたのも大きい

昔はこれはFirefox(SM)の方が早いとかハッキリしてたけど
最近はそこまでは無くなった
221デフォルトの名無しさん:2013/09/19(木) 19:08:15.24
>>216嘘を付かない
JITはプロファイリングと仮定の積み重ねだから、
その過程を壊すような爛漫なコードは最適化できない。

まず単純ループの最適化なんかはどの言語でも最も力を入れてやるべきで
コードの上手い下手とかの話ではない

特に構造的なレベルの最適化では、V8も〜MonkyもClassを仮定する
https://developers.google.com/v8/design
だから、構造がなってないようなのは遅い

V8が、典型的なJSのコードを元にいろいろ最適化してるのは確かだが、
クソコードの最適化なんて当然出来るわけがない。
一度整数で初期化された変数は、ずっと整数だけが入ることが殆どとか
むしろ、典型的なコードの「お行儀の良さ」に期待した最適化をしてる

一例を挙げると、JSでは配列はただのオブジェクトで、操作には色んな検証が本来必要だが、
普通は配列は配列としてしか使われないので、検証をできる限りスキップできると仮定して、
仮定が崩れた時はフォールバックすることで対処してる

配列への処理も、「穴空き/無し」、「全部整数、全部浮動少数、オブジェクト入り」
とか沢山の条件を元にそれぞれ最適化してる
これがV8や著名なJSエンジンが早い理由
222デフォルトの名無しさん:2013/09/19(木) 19:35:54.83
もういいだろって感じですが最後に
def solver(q)
; vars = q.scan(/[a-z]/i).uniq
; chk1 = q.gsub(/([a-z]+)/i){ '(' + $1.chars.reverse.map.with_index{|e,i| "_#{e}*#{10**i}"}.reverse.join('+') + ')'}.sub(/=/,'==')
; chk1 = "begin;#{chk1.gsub(/\(/,'Rational(')};rescue ZeroDivisionError;false;end" if q.match(/\//)
; chk2 = q.scan(/[a-z]+/i).map{|e| "!_#{e[0,1]}.zero?" }.join(' and ')
; chk3 = "next unless " + q.split(/=/).map{|e| e.gsub(/[a-z]+/i){|s| '_'+s[-1,1]}.sub(/(.+)/){'('+$1+')%10'}}.join(' == ') unless q.match(/\//)
; eval <<-EOS
; ; (0..9).to_a.permutation(vars.size) do |#{vars.map{|e| '_'+e}.join(',')}|
; ; ; #{chk3}
; ; ; yield "#{q.gsub(/([a-z])/i){"\#{_#{$1}}"}}" if (#{chk1}) and (#{chk2})
; ; end
EOS
end

solver("send + more = money"){|a| puts a}
57秒 組み合わせループごとに計算式を組み立ててeval する素朴な実装
2.3秒 evalはループ前のチェック関数を作るとこだけに
2.0秒 ループ全体をevalして 関数コールを除去
1.5秒 配列の添え字アクセスをやめて、ローカル変数(仮引数)を直接生成 結局>>24 みたいなのを生成することに
1.1秒 まず下一桁だけ計算してみる(割り算以外)
223デフォルトの名無しさん:2013/09/19(木) 19:38:11.98
いいと思います
224デフォルトの名無しさん:2013/09/19(木) 20:39:20.72
>>160
それ結構、言語ごとのユーザ気質が分かって面白いよな
Perlが高いのは今でもPerlを使うユーザはキャリアが長くて全体的なレベルが高いんだろうな
Rubyが回答時間長いのもいかにも典型的なユーザ像に思える、解けるまで粘着ぎみに拘ってる
225デフォルトの名無しさん:2013/09/19(木) 20:44:31.09
確かにwww
このスレでも取り敢えず真っ先にコード書いてくるのPythonerだしなww
226デフォルトの名無しさん:2013/09/19(木) 20:50:11.98
JSerは自分のコードがクソってことも認識出来てないんだな
恥ずかしくて表に出せないようなクソコードばかり此処に貼られてるしな
227デフォルトの名無しさん:2013/09/19(木) 21:00:58.20
>>226
矩形に収まるようにびっしり書かれたコード塊の方が美しいよね
228デフォルトの名無しさん:2013/09/19(木) 21:05:53.81
マシンコードになれば皆同じ
それならコンパクトな方がいい
229デフォルトの名無しさん:2013/09/19(木) 21:42:10.56
>>226
あんまり煽るとJSer引きこもっちゃうぞ
スレタイに並んでる言語でコンスタントにコード例書かれるのって
RubyとPythonだけで、HaskellやSmalltalkは出るのに
PerlやPHPは出て来もしないんだからな
230デフォルトの名無しさん:2013/09/19(木) 21:55:11.56
JSは俺がいくらでも頑張って書くけど来週から忙しくなるんだわ
231デフォルトの名無しさん:2013/09/19(木) 22:04:31.55
PHP次回から外してくれませんかね。
まあ、馬鹿にする対象としてあなた方に必要なのはわかりますけどね。
232デフォルトの名無しさん:2013/09/19(木) 22:12:43.74
このスレの「技術力」って「女子力」ぐらい使い所が不明なんだけど
233デフォルトの名無しさん:2013/09/19(木) 22:24:02.10
女子力に失礼です
234デフォルトの名無しさん:2013/09/19(木) 22:50:09.98
railsブームって、出エジプト記やスパルタクスの反乱みたいな社会的弱者層の反逆的だよね
235デフォルトの名無しさん:2013/09/19(木) 23:16:20.41
Smalltalkerは割とコードが綺麗なので
書いてる人一人だとおも
236デフォルトの名無しさん:2013/09/19(木) 23:36:37.23
今日日、smalltalkって仕事あるのかな
237デフォルトの名無しさん:2013/09/19(木) 23:37:45.56
>>236
あったとしても、ここに例示された会社以外にはないだろう。
238デフォルトの名無しさん:2013/09/19(木) 23:40:17.72
じゃあせっかく夏なんだし Seaside の話でもしようぜ
239デフォルトの名無しさん:2013/09/19(木) 23:40:58.32
死再度
240デフォルトの名無しさん:2013/09/19(木) 23:53:18.64
きれいなコードを書ける人間は日本で仕事するのは向いてないと思う
ここで晒してるコードが瞬間的に出てくるならいいけど
熟考した上で実行速度とは無縁で行数ばかりにこだわったコードを書いている場合、
ほとんどの現場で切られる。

読みやすい
241デフォルトの名無しさん:2013/09/19(木) 23:54:57.48
↑ことと、DRYの原則すら踏まえないコードは、保守する側にとってみれば「死ね」って思うけど
保守しやすいコードは、それはそれで仕事なくなるしな
242デフォルトの名無しさん:2013/09/19(木) 23:56:00.07
だから、javaかPHPで書け
243デフォルトの名無しさん:2013/09/20(金) 01:09:25.03
GPLと契約したら読めないコードが読めるようになるかな
244デフォルトの名無しさん:2013/09/20(金) 01:16:58.51
>>240
行数にこだわるとか言ってる時点で
お前わかってないじゃん。

目指すべきなのは、読みやすいコード
メンテナンスしやすいコード。バグが起きにくいコード
それは実行速度を下げ出ても達成すべきものだ。

それを目指したからってコードが短くなるとは限らない。

わかり易い例で言うと、一つの複雑な関数を
分かりやすく二つ関数に分けるとたいてい行数は増える。
理由は関数定義とそれを呼び出すためのコードが増える。
そして関数呼び出しの分、すごく僅かだが実行速度も下がる。

実行速度も行数も重要度は高くない。
重要なのはメンテナンスしやすさだ。
245デフォルトの名無しさん:2013/09/20(金) 01:22:09.05
>>244
短さだけにこだわってるこのスレの連中のことを指摘してるのに、
自覚も無かったようだね。
246デフォルトの名無しさん:2013/09/20(金) 01:22:25.30
>>244
長文書く前に、それはここにRubyコード晒してるやつに言えよw
みんな1行になんでもつめようとしているだろ
247デフォルトの名無しさん:2013/09/20(金) 01:24:47.89
1行に詰め込んでる奴に、
このコードの説明をしてって頼んで、
そいつがニコニコして説明しだしたらアウト。


そのコードは説明が必要なコードということ。

読みやすいコードは、説明なぞ不要。
248デフォルトの名無しさん:2013/09/20(金) 01:25:51.45
>>245-246
短さだけにこだわってる、このスレの連中に言ってるんですがなにか?
249デフォルトの名無しさん:2013/09/20(金) 01:27:11.27
PHPってrailsやdjango、expressのような定番のframeworkあるの?
乱立する中で、symfonyかcakePHPぐらいしか聞いたことないけど
250デフォルトの名無しさん:2013/09/20(金) 01:31:13.94
>>249
自分で定番言ってるじゃん。オマエ馬鹿なの?
251デフォルトの名無しさん:2013/09/20(金) 02:20:18.87
zend frameworkやcode ignitor,laravel,fuel PHP,yiiと魔法少女が乱立する中で、
symfonyとcakePHPしかあげなかったんだよ?
それとも、symfonyやcakePHPがいまだに定番なの?
252デフォルトの名無しさん:2013/09/20(金) 08:14:38.02
>>236
このまえうちの会社で ada の案件受注してたから、ひょっとしたらあるかも。
253デフォルトの名無しさん:2013/09/20(金) 08:17:39.72
冗長で抽象化能力が低い言語ユーザから見ると、
このスレのコードは短さにこだわってるように見えるのかー

説明が必要なのも、単にその言語の経験が足りないだけでしょ
254デフォルトの名無しさん:2013/09/20(金) 08:56:19.77
「読みやすさ」のような糞抽象論には多様な解釈がある
だから、短さを目指すのも、オープンソースを目指すのも全部正しいとも言えるし
逆に、目標を一つだけに絞った時点で全部間違っているとも言える
255デフォルトの名無しさん:2013/09/20(金) 08:59:44.67
>>253
短さに拘ってはいるだろ
でもなきゃ変数名ぐらいは普通にする
256デフォルトの名無しさん:2013/09/20(金) 09:11:50.46
ローカル変数にも糞長い名前つけるJava脳のコードって
かえって読みにくい
257デフォルトの名無しさん:2013/09/20(金) 09:24:40.97
普通にするを長くすると解釈してる時点で
完全に昔のPerlerと被ってる発想だぞそれ
258デフォルトの名無しさん:2013/09/20(金) 11:10:45.45
>>253
どう言い繕ったところで、過去スレは書き換わりませんよ
259デフォルトの名無しさん:2013/09/20(金) 11:29:45.42
ここのスレで言う美しいコードってこういうのでしょ?
http://jsdo.it/oao_oao/55xJ
260デフォルトの名無しさん:2013/09/20(金) 11:50:45.14
プログラムを知らないどころか字が読めない人が見ても理解できる>>259に比べたら
読みやすいだの何だのはいかにちっぽけな話なのか痛感するな。
261デフォルトの名無しさん:2013/09/20(金) 12:42:03.46
>>252
え、何?戦闘機用の制御プログラムでも作ってるの
262デフォルトの名無しさん:2013/09/20(金) 13:49:33.15
Java脳
variableName

C#脳
name

Ruby脳
var_name

C++脳
_name

Objective-C脳
mName

Python脳
__var_name
263デフォルトの名無しさん:2013/09/20(金) 14:27:34.41
JSerの自分としては
パスカルケースはクラス名、キャメルケースは関数名だけで
変数はスネークケースにした方が統合性とれていいと思うんだが
どうしても変数にもキャメルケース使ってしまう、、、
264デフォルトの名無しさん:2013/09/20(金) 14:38:47.50
javascriptは勝手に変数をグローバルにするのを辞めたら良くなる。
vaの役目を反転して付けたらときだけグローバルに昇格するとか、グローバルを使う時だけvalを付けるとかがいい。
265デフォルトの名無しさん:2013/09/20(金) 14:51:23.16
>>264
それはもう解決している
strict modeなら宣言なしでグローバルに代入されることはない
266デフォルトの名無しさん:2013/09/20(金) 15:09:05.69
>>261
自分の案件じゃないので中身はよくわからない。
もっともわかってても言えないと思うが...
どこかの研究施設からの受注だったと思う。
たまたま、発注元の研究者が ada にかぶれてるところだったんだろうな。

それより、うちの会社で ada 書ける奴がいることに驚いたわ (w
267デフォルトの名無しさん:2013/09/20(金) 15:17:44.63
Adaとはまた驚いたな
AdaってPascal系なのかなと思ってたが
ttp://math.scu.edu/~dsmolars/ma169/suppl/adamod.html
これ見る限りではC系言語のそっくりさんぶりに比べると結構違いあるんだな
268デフォルトの名無しさん:2013/09/20(金) 15:18:35.22
これからってどんどん言語が統合されていくのかね
それともどんな言語でも使えます的なことになっていくのかね
269デフォルトの名無しさん:2013/09/20(金) 15:39:50.54
どんな言語も英語みたいな共通言語にコンバートできる環境が整ったら皆幸せになるんじゃない?
デバッグと保守の問題があるが乗り越えられない壁じゃないと思う。

一例としてWebではGoogleはバイトコードに、MozillaはJSにあらゆる言語をコンバートする試みを進めてるね。
270デフォルトの名無しさん:2013/09/20(金) 16:16:11.55
あるスクリプト言語で全言語を実装したらいい。
271デフォルトの名無しさん:2013/09/20(金) 16:31:54.88
単に実装するだけじゃいろいろ問題あるんだよなあ
言語を統一しなくても各自好きな言語で書いたほうがコスパがいいとならなくちゃいけないから
272デフォルトの名無しさん:2013/09/20(金) 18:26:54.67
お前ら英語を買いかぶりすぎ
話し言葉は方言が多いしコスパが悪い
コスパが良いのは口を動かさない読み書き専用の言語
273デフォルトの名無しさん:2013/09/20(金) 18:26:57.96
>>269
つ LLVM
274デフォルトの名無しさん:2013/09/20(金) 18:40:35.98
死ねゴミ共がw
275デフォルトの名無しさん:2013/09/20(金) 18:47:16.88
ニーイト、ニイトニーイト
276デフォルトの名無しさん:2013/09/20(金) 18:49:20.73
>>267
PL/1 に色々追加したようなもんだからなぁ。
マルチタスクとか、低水準 I/O とか、機能てんこ盛りだったはず。
どこまで実装されてるかは知らんけど、GCC にもあったはずなので、ちょっと見てみるかな。
277デフォルトの名無しさん:2013/09/20(金) 19:10:40.57
JavaScriptはWebのアセンブラとかC言語とか言うと聞こえはいいが、
それはつまり誰も素で書きたがらないということだからな。
互換性がマシになったと思ったら今度は土管化問題だな。
278デフォルトの名無しさん:2013/09/20(金) 19:59:39.66
>>275
死ねゴミw
279デフォルトの名無しさん:2013/09/20(金) 20:59:53.52
ガチニートかよwww
280デフォルトの名無しさん:2013/09/20(金) 21:27:21.53
ニートでも大統領でもこのスレでは皆平等関係ない
281デフォルトの名無しさん:2013/09/20(金) 21:34:15.00
ガンジーも大統領も、プログラミングで繋がっているなんて素敵ですね
282デフォルトの名無しさん:2013/09/20(金) 22:05:41.55
ニートでも死ねとかゴミとかしか言えないニートは要りません
283デフォルトの名無しさん:2013/09/21(土) 02:04:57.58
>>277
LinuxはC言語で作られているんだが、
誰も書きたがらない?

意味がわからない。

どうせお前が書きたがらない(書けないから)
だけだろう?
284デフォルトの名無しさん:2013/09/21(土) 02:08:26.03
と言うかJSを汗に例えるのは無理があるよ
手間も抽象度も性質も違うし
285デフォルトの名無しさん:2013/09/21(土) 02:09:29.39
誰も書きたがらないからこそ誰かが書いたものを使いまわすんだよ
それを>>277は土管化と言ってるんでしょ
OSやミドルウェアを作るのには当然必要な言語だけど
最上位のアプリをC言語で書くのは
286デフォルトの名無しさん:2013/09/21(土) 02:11:49.33
最上位のアプリをC言語で書くのがダメな理由って?
287デフォルトの名無しさん:2013/09/21(土) 02:14:28.60
アセンブラ、C言語で最上位のアプリを書いたらダメな理由は

・クラスがない
・ガベコレがない
・文字列がない
・バッファーオーバーフローが起きる
・正規表現が使えない
・例外機能がない

まあ色々あるでしょ?
288デフォルトの名無しさん:2013/09/21(土) 02:15:12.58
>>287
うん、でもその理由はJavaScriptに当てはまらないよね。
ぜんぜん違うじゃん。
289デフォルトの名無しさん:2013/09/21(土) 02:16:56.38
アホに何言っても無駄
290デフォルトの名無しさん:2013/09/21(土) 02:18:29.54
誰もJavaScriptで書いちゃダメなんて言ってないだろ
altJSが蔓延ってることは事実なんだから認めなさい
291デフォルトの名無しさん:2013/09/21(土) 02:44:22.06
altJSが流行ってることとアセンブラ、C言語に
なんの関係もないだろって話だろ。

altJSが流行ってる理由のは簡単。
まず、どの言語もバージョンアップしていくのが普通。
JavaScriptも同じだが、ブラウザという実行環境は
ユーザーがバージョンアップするものだから、
開発者の都合ではバージョンアップが出来ない。
また一部の例外をのぞいてブラウザではJavaScript以外は動かない。

このJavaScript特有の事情のためにaltJSができただけ。
JavaScriptに問題があったというよりも、

・言語機能を追加したい。
・ブラウザで動く別の言語を作りたい

これが理由なんだから、アセンブラ、C言語とは
全く事情が違うのは明白。
292デフォルトの名無しさん:2013/09/21(土) 02:47:18.10
すでに普及している言語があるのに、
なぜ新しい言語を作るのかといえば
既存の言語がクソだからだろ。

そうやってプログラム言語というのは
新しい言語とともに進化してきた
293デフォルトの名無しさん:2013/09/21(土) 02:48:11.36
新しく出来た言語ほど優れているもんな!
294デフォルトの名無しさん:2013/09/21(土) 03:06:43.31
単にJSが機能不足だからだろ
クラスがなかったりモジュールがなかったり
295デフォルトの名無しさん:2013/09/21(土) 03:08:48.03
ObjectやArrayはクラスでありモジュールですが?
296デフォルトの名無しさん:2013/09/21(土) 03:25:59.92
JavaScriptは、HTMLをよく文字列で出力することがあるのに、いまだにString.Formatすらないからなあ。
よその言語はstring.Format("{0}は9cm", chinko)とか"#{chinko}は9cm"とか書けるのに。
でもそれ以外はそこまで悪くない。

つうかJavaScriptの代替品が流行っているとか思ってる奴は妄想だろ。
TypeScriptやCoffeeScriptが本格的に採用されている現場なんて実際にねーだろ。
Dartはもう死んでいるし。
297デフォルトの名無しさん:2013/09/21(土) 03:32:00.15
それ、そんなに必要ですか?
これでいいじゃないですか?

http://underscorejs.org/#template

var compiled = _.template("hello: <%= name %>");
compiled({name: 'moe'});
=> "hello: moe"


_.template("Using 'with': <%= data.answer %>", {answer: 'no'}, {variable: 'data'});
=> "Using 'with': no"
298デフォルトの名無しさん:2013/09/21(土) 03:58:11.17
APIの多い少ないと基本構文の話は次元が違うと思うが
299デフォルトの名無しさん:2013/09/21(土) 04:01:41.28
今は、FormatというAPIを実装してくれという話で
基本構文を拡張しろという話はしていません。
300デフォルトの名無しさん:2013/09/21(土) 04:26:50.80
マジ基地乙
301デフォルトの名無しさん:2013/09/21(土) 06:19:21.57
いや、TypeScriptやCoffeeは結構使われてるだろう
302デフォルトの名無しさん:2013/09/21(土) 06:53:23.96
死ねゴミ共がw
303デフォルトの名無しさん:2013/09/21(土) 09:34:00.11
TypeScriptはJSの良いところ悪いところを理解して合理性のあるものだけを提供してるけど
CoffeeScriptは余計に悪くなってるとしか思えない
304デフォルトの名無しさん:2013/09/21(土) 09:51:29.19
でも、敵に悪いものを提供する戦術は合理的だよね
305デフォルトの名無しさん:2013/09/21(土) 09:52:13.63
DartとかCoffeeScriptとかnode.jsに行く奴って
ちょっと触って良いと思ったら、これからはこの言語の時代だみたいに勘違いしてるけど
長く使わなきゃいけないコードなら普通は直接jsで書いたほうが良いのは少し考えれば分かる事
言語の乱立って善意に見せかけた悪意だろ
プログラマが使う言語が分散すればするほど効率悪くなる
306デフォルトの名無しさん:2013/09/21(土) 09:58:10.49
>>305
効率だけを考えていたらイノベーションは生まれません

なぜRubyを作ったの?Perlを良くすることに注力すればいいじゃん、に対するMatzの回答
307デフォルトの名無しさん:2013/09/21(土) 10:02:24.14
その結果、効率だけを考えたRoRが大流行しましたとさ
308デフォルトの名無しさん:2013/09/21(土) 10:17:04.45
ワロタ
309デフォルトの名無しさん:2013/09/21(土) 10:17:51.56
>>305
悪意ではなく合理主義だよ
合理的に効率よくライバルを邪魔するんよ
310デフォルトの名無しさん:2013/09/21(土) 10:18:02.47
死ねゴミ共がw
311デフォルトの名無しさん:2013/09/21(土) 11:12:33.39
node.jsは基本のjavascriptを含むだろ。多少ずれはあるかもしれんが。
312デフォルトの名無しさん:2013/09/21(土) 12:24:59.48
>>306
適材適所でライブラリ使わないとイノベーションもへったくれもなくなるw
313デフォルトの名無しさん:2013/09/21(土) 12:51:47.76
イノベーションを生み出す作業と
将来性を考える作業を別に考えろよ。


お前は、常にイノベーションのために
将来性をすてて仕事するのか?

仕事とは別の場所で、イノベーションを生み出す作業はするべきだ。
314デフォルトの名無しさん:2013/09/21(土) 13:05:30.72
CoffeeScriptのアロー関数はPythonかRubyを参考にしたものだったと思うけど
ES6のアロー関数は直接の第一引用先はCoffeeScriptなんだよ
他にもCoffeeScriptだとこんな機能があって、こんな効果が出てこんな問題があるということが
凄く参考にされてる。多分直接PythonやRubyから参考するより多かったはず

同じくライブラリも凄く参考にされてる
ライブラリで使われてきた便利な機能や仕組みを標準に持ってこようとする動きも活発
現に、ESの約20人の主力メンバにjQueryの人が2人も入ってる
単純に数で比較するとMicrosoftやAppleと同じ影響力

だからaltJSやライブラリはイノベーションという括りにおいて分かつことは出来ないんだよね
今は著名なものの良い所をどんどん吸収していこうとしている時期だから特にね
315デフォルトの名無しさん:2013/09/21(土) 13:26:46.13
なんで直接の引用先がCoffeeScriptなんだよ。
そもそも->ではなくて=>だし、CSって書いたのをC#ではなくてCoffeeScriptだと思ったの?
316デフォルトの名無しさん:2013/09/21(土) 13:45:11.48
CoffeeScriptにも=>はあるが?
317デフォルトの名無しさん:2013/09/21(土) 13:53:46.79
どう考えてもCoffeeScriptのthisがbindされる特徴を持つfatAFを参考にしてるでしょ。
318デフォルトの名無しさん:2013/09/21(土) 14:12:22.33
通りすがりだけど、ES6の=>にthisバインドなんてあったんだな。
いいなこれ。書くのがだいぶ楽になる。
319デフォルトの名無しさん:2013/09/21(土) 14:29:46.91
ウンコJSerのCoffeeScript嫌いは異常だな
企業がバックに居ないと安心出来ないのは
底辺SEにありがちだけど、それかな?
320デフォルトの名無しさん:2013/09/21(土) 14:31:19.55
正確にはbindというかレキシカル?
定義された空間のthisをそのまま受け継ぐのね
.applyや.bindなんかでの変更もできない
321デフォルトの名無しさん:2013/09/21(土) 14:34:45.59
CSもTSもES.nextも目指す所はBetterJSなんだから
むしろ仲間だと思うってか、実際相互参考にあってるしね

この前のMozillaの話もあったけど、
やっぱり実際に実装してあってフィールドバックがないと進みが倍遅くなる
いい関係だと思うよホント

ES4の時に比べたら全てが協力しあってる最高の時期
322デフォルトの名無しさん:2013/09/21(土) 14:42:43.25
目指せ土管
323デフォルトの名無しさん:2013/09/21(土) 14:55:32.09
つまりCoffeeScriptは流行る前に
死ぬ運命に有るということでOK?
324デフォルトの名無しさん:2013/09/21(土) 14:58:13.26
jsを土管として使う数多ある言語のひとつになる
325デフォルトの名無しさん:2013/09/21(土) 14:59:15.29
土管て例えがうけるw
326デフォルトの名無しさん:2013/09/21(土) 15:00:04.99
いや、もうそろそろ役目を全うすると言った方がいいんじゃない?
演算子オーバーロードとかこれ以上の機能追加も要望があるけど、やっぱり難しいみたいだし
これからは型があるTypeScriptがES7までBetterJS代表かな
327デフォルトの名無しさん:2013/09/21(土) 15:01:12.07
ドーナツならまだ可愛らしいのに
土管は土方みたいな「土」っていうのはやっぱり印象悪いね
328デフォルトの名無しさん:2013/09/21(土) 15:12:09.62
なんでこいつこんなに必死なの?
親を土管に殺されたりでもしたの?
329デフォルトの名無しさん:2013/09/21(土) 15:29:53.78
別にこのまま10年も20年も使われるわけじゃないからいいじゃない
Living Standerdでしょ?
330デフォルトの名無しさん:2013/09/21(土) 16:05:31.06
JSを直接読み書きする時代が
終焉を迎えつつあるだけじゃん
そんなにカリカリすんなよ
331デフォルトの名無しさん:2013/09/21(土) 16:07:17.68
そう?
増えていってるでしょ間違いなく
332デフォルトの名無しさん:2013/09/21(土) 16:43:58.64
残念だけど、Es7でjavascriptが勝つね
333デフォルトの名無しさん:2013/09/21(土) 16:45:50.57
ES7の頃には、大抵の言語はJSにトランスレート可能になるだろうね
334デフォルトの名無しさん:2013/09/21(土) 17:15:41.02
結局エンジン次第でしょ
演算子オーバーロードの最適化とか並の人じゃ理解すらできなくね
335デフォルトの名無しさん:2013/09/21(土) 17:31:46.77
ちょっと前までES6で勝つるとか言ってなかったっけ?w
336デフォルトの名無しさん:2013/09/21(土) 17:31:49.28
そんなの興味ある奴しか調べようとしないだろ
337デフォルトの名無しさん:2013/09/21(土) 17:39:47.70
別に勝つとは誰も言って無くね
不便だった点がかなり解消されるから勝ち負けとかもうどうでもいいくらいに
JSerにとってはただただ、心から嬉しい限りだよ

その意味ではES6からがスタートで、ES7に期待するのは全うかな
338デフォルトの名無しさん:2013/09/21(土) 17:59:45.98
JSer(笑)(笑)(笑)(笑)(笑)
何があってもそんなの呼ばれたくない名乗りたくない
339JSを極めし者:2013/09/21(土) 18:05:04.04
typescript->javaライクなJS
coffee->ruby・pythonライクなJS

よってTypeも仕事が増えるであろう。たが、
ruby・pyプログラマ>>>Javaプログラマ
なため
イノベーションのあるアプリはcoffeeで書かれる可能性が高いであろう
340デフォルトの名無しさん:2013/09/21(土) 18:11:26.17
もう萎んでいくだけのCS今から使うことはないんじゃない?
勿論個人ではまだまだ使えるけれど、ES.nextの先行実装を謳ってるTSの方がこれからは良くない?
そうじゃないんならいっそES6simとかの方がいいね
341デフォルトの名無しさん:2013/09/21(土) 19:15:08.08
JSにコンパイルする時代が来るって、デバッグすらろくにできなくなるじゃん。
342デフォルトの名無しさん:2013/09/21(土) 19:19:03.64
source mapがあるからデバッグはほとんど問題ない
343デフォルトの名無しさん:2013/09/21(土) 20:07:38.77
>>339

> ruby・pyプログラマ>>>Javaプログラマ

なんの比較だよw
344デフォルトの名無しさん:2013/09/21(土) 20:09:53.86
ECMAScript 7から
ECMAScript 5 or 3 に変換することで、
現在のブラウザでも最新のJavaScriptが使用可能です。

そういう時代がもうすぐそこまできている。
345デフォルトの名無しさん:2013/09/21(土) 20:14:02.29
CSみたいにほぼ糖衣構文とか、TSみたいに実コードになる時には削られる、コンパイル時用の機能とか
そういううのならソースマップで問題ないかもね
346デフォルトの名無しさん:2013/09/21(土) 20:14:03.64
古くて死んでるプロジェクトもあるけど、
これだけの言語がJavascriptにコンパイルすることで現在のブラウザでも使用可能です。

https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS
347デフォルトの名無しさん:2013/09/21(土) 20:16:59.30
バグッたときにアセンブリコードが読めないと
デバッグすらろくに出来ない人達が居るスレと聞いて
348デフォルトの名無しさん:2013/09/21(土) 20:23:45.63
>>345
すべてのものがsourcd mapで問題ないぞw

こういうコンパイル技術に関する常識は
やっぱりスクリプト言語厨にはないのかな?

コンパイラの世界にはな、デバッグシンボルというものがあってな。
デバッグシンボルをつけることで、コンパイルしたバイナリには
含まれてるはずがない変数名や関数名などソースコードをマッピングしてるんだよ。

もう何十年も前に解決した問題だ。
349デフォルトの名無しさん:2013/09/21(土) 20:28:41.08
ステップ実行の時に問題が出るんだが
やっぱり知ったかぶりだったか
350デフォルトの名無しさん:2013/09/21(土) 20:32:05.11
>>349
この話かね? 何十年遅れなんだかw

方法 : 最適化されたコードをデバッグする
http://msdn.microsoft.com/ja-jp/library/vstudio/606cbtzs.aspx

> コンパイラは、ソース コードを最適化するときに命令を再配置したり再構成したりします。
> これにより、コンパイル後のコードの実行効率が向上します。
> しかし、この命令の整理が原因となり、一連の命令に対応するソース コードをデバッガーが識別できなくなる場合があります。
>
> 最適化によって次のような影響が生じる場合があります。
>
> ・ローカル変数がオプティマイザーによって削除されたり、デバッガーの追跡できない場所に移動されたりする可能性があります。
> ・オプティマイザーによってコード ブロックがマージされた場合、関数内の位置が変更されます。
> ・オプティマイザーによって 2 つの関数がマージされた場合、呼び出し履歴上のフレームに対し、間違った関数名が表示される場合があります。
>
> ほとんどの場合、呼び出し履歴上のフレームには、正しい情報が表示されます。ただし、これはすべてのフレームにシンボルが
> 割り当てられていることが前提です。 スタックの破損が生じた場合、アセンブリ言語で記述された関数が存在する場合、
> 呼び出し履歴上のシンボルに一致しないオペレーティング システムのフレームが存在する場合など、
> 呼び出し履歴上のフレームに誤った情報が表示されることがあります。
>
> グローバル変数および静的変数は常に正しく表示されます。 構造体レイアウトについても同様です。
> 構造体へのポインターが存在し、そのポインターの値が正しければ、構造体のすべてのメンバー変数は、正しい値で表示されます。
>
> これらの制限事項のため、できるだけ最適化する前のプログラムをデバッグするようにしてください。
> 既定では、最適化は Visual C++ プログラムのデバッグ構成ではオフ、リリース構成で有効になっています。
>
> ただし、最適化後のプログラムでしかバグが発生しない場合もあります。 このような場合は、
> 最適化されたコードをデバッグする必要があります。
351デフォルトの名無しさん:2013/09/21(土) 20:33:15.36
本当に物を知ってる人はそれをひけらかしたり煽ったりしない
それが出来ないのは無知で余裕が無いから
それはこれまでのスレで散々証明されてきたこと
352デフォルトの名無しさん:2013/09/21(土) 20:33:59.42
>>351の意訳

わかってる人は黙ってろ。
俺の言うことに反論するな。
353デフォルトの名無しさん:2013/09/21(土) 20:42:02.52
こいつ何ズレたこと語ってんだ??
スクリプトをバイトコードやアセンブラまで落として対象のコードに綺麗に復元するならまだしも
一部はASTより上の次元で出来るだけ楽なコンバートしてるんだから完全にマッピングできるわけ無いだろ
354デフォルトの名無しさん:2013/09/21(土) 20:44:42.01
>>350
次から名前に【創作】って付けてね。
妄想話で暴れられるの目障りだから。

もしくは【理想論】でも【狂言】でもいい。
NG出来るように目印付けてね。
355デフォルトの名無しさん:2013/09/21(土) 20:50:24.06
LLVMでコンパイルしたCのコードがJSで動く時代ですけどね
356デフォルトの名無しさん:2013/09/21(土) 20:53:19.46
ぶっちゃけステップ実行とか1年に一回やるかどうかだわ
物凄い初心者の頃はVSのステップ実行のお世話になったけど
357デフォルトの名無しさん:2013/09/21(土) 20:59:08.35
>>353

> 一部はASTより上の次元で出来るだけ楽なコンバートしてるんだから完全にマッピングできるわけ無いだろ

楽なコンバートしてる だから 完全にマッピングできるわけ無い

ならば、

楽なコンバートをしない それならば 完全にマッピングできる
358デフォルトの名無しさん:2013/09/21(土) 21:05:43.80
で、それはあんたが作るの?
こっちは現実の話をしているわけで
君の長い夢物語に付き合ってる暇はないんだけど
359デフォルトの名無しさん:2013/09/21(土) 21:07:10.27
へ? 最初から未来の話をしていたのではないのか?

344 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/21(土) 20:09:53.86
ECMAScript 7から
ECMAScript 5 or 3 に変換することで、
現在のブラウザでも最新のJavaScriptが使用可能です。

そういう時代がもうすぐそこまできている。


345 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/21(土) 20:14:02.29
CSみたいにほぼ糖衣構文とか、TSみたいに実コードになる時には削られる、コンパイル時用の機能とか
そういううのならソースマップで問題ないかもね
360デフォルトの名無しさん:2013/09/21(土) 21:07:41.43
やっぱり未来だよなぁ。

341 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/21(土) 19:15:08.08
JSにコンパイルする時代が来るって、デバッグすらろくにできなくなるじゃん。
361デフォルトの名無しさん:2013/09/21(土) 21:08:33.53
くだらない話が始まった原因の>>357
反省してるならさっさとお題でも出して
362デフォルトの名無しさん:2013/09/21(土) 21:09:40.19
デバッグ = ステップ実行って発想に草不可避
363デフォルトの名無しさん:2013/09/21(土) 21:11:14.00
なんか変な奴だと思ってたが、やはり日本語が弱い方だったか。
364デフォルトの名無しさん:2013/09/21(土) 21:12:36.73
で、デバッグしにくいの?
それはなぜ?

言ってみなよ。
365デフォルトの名無しさん:2013/09/21(土) 21:12:59.86
持論を語るのはいいが空気読もうぜ
366デフォルトの名無しさん:2013/09/21(土) 21:13:37.39
両方の言語を知ってれば何の問題もない
367デフォルトの名無しさん:2013/09/21(土) 21:14:08.51
コンパイル前の言語で
デバッグできるようにするのが
ソースマップでしょう?
368デフォルトの名無しさん:2013/09/21(土) 21:14:43.58
静的型言語ならコンパイル時の型検査を利用するとか
そうじゃなくてもQuickCheck等でテストを充実させるとか、
既にそういう時代になってるのに
このスレってずいぶん遅れてるんですね
369デフォルトの名無しさん:2013/09/21(土) 21:15:00.15
>>364
来た、とうとう見えないものが見えて、独り言を始める狂人の特徴。
370デフォルトの名無しさん:2013/09/21(土) 21:16:10.39
やっぱりあってた。

http://blog.happyelements.co.jp/2012/09/coffeescript84source-map-livescript.html
その1. Source mapsでcoffeescriptのコードのままデバッグ

概要(CoffeeScriptRedux)(いまいち)
私は特にjavascriptでしかデバッグできない現状に不満はないのですが、Source mapという仕組みでcoffeescriptのコードでデバッグが可能です。
Source mapはChromeのデベロッパーツールの右下の設定から「Enable source maps」をonにすることで利用できます。

こちらを使うとステップ実行やブレークポイントもcoffeescriptのまま実行できます。
371デフォルトの名無しさん:2013/09/21(土) 21:16:27.93
全ての元凶

>>348
すべてのものがsourcd mapで問題ないぞw
372デフォルトの名無しさん:2013/09/21(土) 21:18:05.51
ソースマップ+デバッグビルドで全て解決。
373デフォルトの名無しさん:2013/09/21(土) 21:18:34.86
Source mapsでcoffeescriptのコードのままデバッグが出来ないってどのレスに書いてあんのよ?
374デフォルトの名無しさん:2013/09/21(土) 21:19:12.37
うん、デバッグビルドをすれば
デバッグに問題になるような最適化を
しないし、ソースマップも吐き出す。

デバッグビルドの存在も知らないんだろうな。
スクリプト言語の連中は。
375デフォルトの名無しさん:2013/09/21(土) 21:19:21.76
何がJSerの怒りの琴線に触れたのだろう?
JS土管説に対抗する最後の砦がステップ実行の不在だったからかな?
376デフォルトの名無しさん:2013/09/21(土) 21:19:51.63
>>373
coffeescriptのコードのままデバッグができるなら
ステップ実行も出来るんじゃね?
377デフォルトの名無しさん:2013/09/21(土) 21:20:09.53
ステップ実行だけjs見ながらやればいい
別にそれで何の問題もない
378デフォルトの名無しさん:2013/09/21(土) 21:20:21.19
>>375
激おこプンプン丸なのはお前だけだと思うよw
379デフォルトの名無しさん:2013/09/21(土) 21:21:11.62
>>377
ソースマップで、CoffeeScriptのまま
ステップ実行できる時代に
jsでステップ実行とかなんの意味があるの?
380デフォルトの名無しさん:2013/09/21(土) 21:25:25.93
いつも思うんだけど別に意見の相異は争うほど無くね?
絡んだり意地はってる間にいつも拗れる

>>342
「(デバッグはほとんど)問題ない」

>>345
「(具体的にこれは)問題ない」

>>348
「(具体的にこれは)問題ない(かもしれないが基本的には問題がある)」
と受け取って
「全て問題ない」
と大口で煽る

〜〜そして荒れる〜〜

荒れる必要なくね?
381デフォルトの名無しさん:2013/09/21(土) 21:27:40.84
全て問題無いと言われて激おこになっちゃんたんだろw
問題が有るというのなら、
ある場所を言えばいいだけの話なのに。
382デフォルトの名無しさん:2013/09/21(土) 21:28:09.85
幾ら正しいことを言っていようが0か1かでしか語らないやつと打ち解けられるわけがない。
383デフォルトの名無しさん:2013/09/21(土) 21:29:17.30
うちとけるひつようなんてないですよーw
384デフォルトの名無しさん:2013/09/21(土) 21:29:41.91
マジ基地乙
385デフォルトの名無しさん:2013/09/21(土) 21:31:09.34
JSは土管化するってことでFA
386デフォルトの名無しさん:2013/09/21(土) 21:31:38.04
>>383
さっさと名前に目印つけるか、荒れるから煽り発言控えてね
387デフォルトの名無しさん:2013/09/21(土) 21:31:38.87
マジ基地にレスするやつもマジ基地です。
388デフォルトの名無しさん:2013/09/21(土) 21:32:18.89
>>386
残念ながらお前の願いは叶うことはなかったwww
389デフォルトの名無しさん:2013/09/21(土) 21:32:54.65
せやな、なんか語りだしてやばそうだなと感じたら乗らずにスルーでいいね
何も生産性がないもの
390デフォルトの名無しさん:2013/09/21(土) 21:33:14.92
会話成立させる気がないって、単なる荒らしと認めてるって事じゃないか。
ってそういう事すら言っても無駄なのか、こういう奴の場合・・。
391デフォルトの名無しさん:2013/09/21(土) 21:34:06.73
多分巨人様だな……
392デフォルトの名無しさん:2013/09/21(土) 21:34:09.18
これがJS土管ってやつだな。
393デフォルトの名無しさん:2013/09/21(土) 21:35:49.06
>>392
女子小学生土管ってなんかひy
394デフォルトの名無しさん:2013/09/21(土) 21:36:10.70
JS土管はキチガイってことがわかりましたね。
395デフォルトの名無しさん:2013/09/21(土) 21:36:13.77
JSの人も、うすうすJSがクソ言語ってことは察してるから
ブラウザで動く唯一の言語っていうアドバンテージが無くなったら
ヤバいって分かってる感じだな
396デフォルトの名無しさん:2013/09/21(土) 21:37:08.44
JS土方 vs JS土管
397デフォルトの名無しさん:2013/09/21(土) 21:37:30.30
>>395
あれ? もうそんなアドバンテージは
なくなってるんじゃなかったの?
おかしいなぁ。
まだJSの天下だよw
398デフォルトの名無しさん:2013/09/21(土) 21:38:04.80
なんか一人、全部JSのせいにしようとしている奴がいるな。
そいつが真犯人だろうな。
399デフォルトの名無しさん:2013/09/21(土) 21:39:17.67
すべてはECMAのシナリオ通りに。
400デフォルトの名無しさん:2013/09/21(土) 21:41:14.41
>>395
他の言語より色んな物抱えてて要求も多いから悪く見えるだけで、
プロトタイプベースとか設計はいいし、ポテンシャルもあると思う。

問題と言っても、当初想定されてなかった大規模開発の部分だから
それは今治していければ、十分だと思うよ。
個人的にはどんどん進化していく未来感が好き。
401デフォルトの名無しさん:2013/09/21(土) 21:41:25.18
ドカタの世界は進歩が遅いからな...
402デフォルトの名無しさん:2013/09/21(土) 21:42:50.83
ドカタって言ってる奴の
正体も同じ真犯人か。
わかりやすいなw
403デフォルトの名無しさん:2013/09/21(土) 21:43:07.25
>>400
他の言語がとっくの昔に実装した機能を
やっと取り込もうかって状況に未来を感じちゃいますか……
404デフォルトの名無しさん:2013/09/21(土) 21:43:48.50
今のJSに「どんどん進化していく未来感」が感じられるような環境に置かれているなら
その未来感のある機能が使えるのは10年後とかだろうな
405デフォルトの名無しさん:2013/09/21(土) 21:44:38.39
>>403
ブラウザで動くというのを
他の言語はやっと手に入れたんですよねw

どうして他の言語は負けたのでしょうか?

たったこれだけの違いなはずなのに
相当のディスアドバンテージでしたねw
406デフォルトの名無しさん:2013/09/21(土) 21:45:50.25
まあ、ブラウザっていうのが
未来のある技術だったってわけだよ。

そこにかなり初期から搭載されている言語
それがJavaScriptなわけだ。
407デフォルトの名無しさん:2013/09/21(土) 21:46:08.50
コミュニティが活発ならそれでいい

新機能の提案進んでないかな?
あの新機能V8に実装されたかな?

って毎日チェックするのが一番の趣味になってる
DOMのAPIも入れると毎日新しさに事欠かない
408デフォルトの名無しさん:2013/09/21(土) 21:47:47.83
言語仕様よりnpmどうにかしてほしい。
パッケージ多すぎて選定に時間かかる。
409デフォルトの名無しさん:2013/09/21(土) 21:47:52.35
でもなぁ。本当はブラウザは
いろんな言語を動かす余地が残されていたんだよな。

実際にVBScriptだって動いていた。
<script type="text/vbscript"></script>

ここに他の言語を指定することで
他の言語に対応できたんだよ。

それを生かせなかったんだよね。
ブラウザで動くことは意味が無いと思っていたんだろうね。
410デフォルトの名無しさん:2013/09/21(土) 21:49:14.30
>>408
npmだけじゃない。

cpamもgemsも、だれでも参加できる
仕組みである以上、パッケージが多くなるのは
仕方がない話。
411デフォルトの名無しさん:2013/09/21(土) 21:49:24.92
モジュール機能がないから大規模開発に向かないとされていたけど、
requirejsの登場で、本当はそういう機能があったことが判明した
jsはそういう凄い言語だよ
誤解されてただけだった
412デフォルトの名無しさん:2013/09/21(土) 21:49:31.92
JSに機能が入ることは、他と比べたら遅いのかもしれないが、どうでも良くない?
Pythonではこういう機能がある、Rubyではこうだって話合ってるの見るの凄く楽しいよ?
各言語の良い所を取り入れられて凄く満足してる。
勿論感謝もしてるんだよ。結構仲間だと思ってる。
413デフォルトの名無しさん:2013/09/21(土) 21:51:07.86
>>412
クロージャが入ったのは早いと思う
javaでは今だに入ってないし
414デフォルトの名無しさん:2013/09/21(土) 21:51:08.00
>>409
ただでさえ当時document.layerとdocument.allで揉めてた時代で、
互換性もない言語なんて使ってられるかって感じだった。
415デフォルトの名無しさん:2013/09/21(土) 21:52:05.51
パッケージとかネームスペースみたいな静的解決するものは
どうしても動的解決の性質を持ったWebと合わないということで
ES4が却下されてから今まで議論を避けてる

でも簡単なモジュールの仕組みならES6で入るよ
妥協点
416デフォルトの名無しさん:2013/09/21(土) 21:52:06.24
>>414
互換性のない言語って?
vbscriptのこと?
417デフォルトの名無しさん:2013/09/21(土) 21:52:46.18
>>415
requirejsを知らないのか
418デフォルトの名無しさん:2013/09/21(土) 21:52:55.67
>>413
クロージャと同機能なのは入ってるよ。
入ってないのはlambda。java8でも高階関数無理。
419デフォルトの名無しさん:2013/09/21(土) 21:53:42.22
スマホ時代になってJS終わったじゃん
誰もスマホでブラウザなんて使ってねーよ
420デフォルトの名無しさん:2013/09/21(土) 21:54:18.52
正直ブラウザの組み込み言語がJSになったのはただの偶然。

ネスケが止せばいいのにわざわざ独自言語開発して搭載 → 対抗してIEも搭載 → 今に至る。

こんだけの話。

もしネスケがJSなんてゴミを作らずにPythonなり搭載していたら・・・
MSが.NETを始めるときにVB6/VBA/VBScriptを放置するような真似をしなかったら・・・



つーか一番の戦犯はMSだろうな。
MSってフロントサイドもC#やASP.NETで開発することを想定していたからVBSは捨てたんだっけ?
421デフォルトの名無しさん:2013/09/21(土) 21:54:52.38
>>418
入ってないよ
無名インターフェースのことならfinalが必要だし
そもそも同等と言ってもinterface定義が必要で記述が冗長すぎるし
422デフォルトの名無しさん:2013/09/21(土) 21:54:59.37
>>416
そう。
なんか拡張でNNでも可能になった気もしたが、それぐらいの異物だった。
423デフォルトの名無しさん:2013/09/21(土) 21:55:26.39
>>419
むしろ逆じゃね
スマホが普及してHTML5が普及
HTML5の一部分であるJSもそれに便乗
424デフォルトの名無しさん:2013/09/21(土) 21:55:49.50
なら
初期のPythonなら良かったの?
初期のRubyなら良かったの?
まさかVBがいいなんて言わないよね???
425デフォルトの名無しさん:2013/09/21(土) 21:56:04.74
>>413
逆。Javaに入るのはクロージャじゃなくてラムダ(自称)。
当初はクロージャにする予定だったんだけどね。
ローカル変数が取り込めるようになることはもう永遠にないと思われる。
426デフォルトの名無しさん:2013/09/21(土) 21:56:30.74
>>420
python3ならともかく、2じゃjavascriptのようなエレガントな
イベント処理は無理だろう
427デフォルトの名無しさん:2013/09/21(土) 21:57:16.89
>>421
final指定だけど、ラップすれば変更できるから、
実際はmutableなオブジェクトで包む事が多い。
428デフォルトの名無しさん:2013/09/21(土) 21:57:21.33
>>425
何が逆なんだ?
javaにはまだ入ってないんだろ
だったらあってるじゃないか
429デフォルトの名無しさん:2013/09/21(土) 21:57:40.88
この機能思いたか入れましたっていうのじゃ不安でしょうがないよな
既に色んな言語で使われてて実績のある機能は本当に良い
430デフォルトの名無しさん:2013/09/21(土) 21:58:26.65
>>427
そこまでくると、「ただ同機能が実現できるだけ」だな
記述が違いすぎ
431デフォルトの名無しさん:2013/09/21(土) 21:58:27.93
>>414
その状況が変わったのが、2005年のprototype.js
2006年のjQueryだったんだよな。

その頃はまだIE6の時代だった。
Firefoxは1.5、Safariは2、Chromeがでたのはその3年後の2008年
そんなIE6全盛期の時代に大きな変化が起きた。
432デフォルトの名無しさん:2013/09/21(土) 21:59:08.27
Javaのラムダ()は結局検査例外どうすんだろうな
このまま無視し続けて無かったことにするのか
433デフォルトの名無しさん:2013/09/21(土) 21:59:21.83
Javaはクロージャー以前に、そもそも関数ポインタが存在しないから、何かの処理を投げるって行為がそもそもできない。

やるとしたら無名クラスを宣言するしかないんだけど、
その無名クラスに引数を渡したり、その無名クラスから戻り値を受け取る方法がないっていう

C#だとキャプチャーとかあるのに、Javaだと何故か引数を渡すにはfinalをつけないといけないんだけど、
そんなポンコツをクロージャーと呼んでいる。
434デフォルトの名無しさん:2013/09/21(土) 22:00:33.29
>>433
クロージャとは呼んでないよ
初期はクロージャと呼んでたけどキャプチャを諦めてからラムダと呼んでいる
435デフォルトの名無しさん:2013/09/21(土) 22:00:42.64
>>430
ようわからんな・・。
そもそもクロージャって変更しなくても
キャプチャだけで十分なはずなんだが。
436デフォルトの名無しさん:2013/09/21(土) 22:01:14.01
pythonだと、空白圧縮できないな
437デフォルトの名無しさん:2013/09/21(土) 22:02:04.54
>>435
お前がそう思ってるだけだろ
438デフォルトの名無しさん:2013/09/21(土) 22:03:11.65
>>435
お前がどう思ってるかはお前の勝手だが、>>434はマジだからなw
439デフォルトの名無しさん:2013/09/21(土) 22:04:06.89
JAVAにクロージャが入っても現場では使えないだろうな
処理系が普及する以外にもハードルはあるんだなぁ……
440デフォルトの名無しさん:2013/09/21(土) 22:05:04.41
ん?レス番が違うぞw
しかし、434もなんか変だな
無名クラスのことをラムダって呼んでるのか?
441デフォルトの名無しさん:2013/09/21(土) 22:05:07.71
>>437
要件としては十分なはずだけどって意味だよ。
442デフォルトの名無しさん:2013/09/21(土) 22:05:18.31
>>436
面白い視点
443デフォルトの名無しさん:2013/09/21(土) 22:08:50.70
>>441
お前が十分だと思ってるだけじゃね?
そもそもそれを利用してクラスがないのに、
クラスと同等なことが出来たわけで
444デフォルトの名無しさん:2013/09/21(土) 22:09:30.25
C#のパーサって糞だよね。

ラムダに引数がないときも()は省略できない。
()=> Console.write("おまんこ!")
445デフォルトの名無しさん:2013/09/21(土) 22:10:42.93
>>440
Java8に入るラムダのことだよ
もともとJavaに関数式みたいなの入れようぜと話が出てから議論の初期はクロージャと呼んでいて、
当然外のローカル変数を変更できる予定だった
446デフォルトの名無しさん:2013/09/21(土) 22:11:03.56
>>443
変更は要件じゃないだろと言ってるだけだよ。
Javaがどう実装してるかは大して興味はない。
447デフォルトの名無しさん:2013/09/21(土) 22:17:55.10
>>444
C#は絶対にガラガラポンができない言語だから、
極力、将来的な拡張に制約が出ないようにしなきゃいけない
実際ScalaとかCoffeeとか破綻してるしな
448デフォルトの名無しさん:2013/09/21(土) 22:22:03.22
なんて旬な話題。
引数なし、()要らずラムダは今当にES6に入るかどうかアメリカで話し合われてる。
でも一部の(多分セミコロン省略?)スタイルで現に問題があるんだってさ。
449デフォルトの名無しさん:2013/09/21(土) 22:22:49.20
JS使ってるとクロージャ=変更可能なプライベート変数ってイメージ
450デフォルトの名無しさん:2013/09/21(土) 22:23:00.26
WebはEmacs化してる
素のJSを使うのはEmacsを初期設定のまま使うのと同じ
使う意味がない
451デフォルトの名無しさん:2013/09/21(土) 22:26:22.48
でもさ、先行していたはずなのに
追い詰められる気持ちってどうなんだろう?
452デフォルトの名無しさん:2013/09/21(土) 22:28:51.45
急に何の話?
453デフォルトの名無しさん:2013/09/21(土) 22:30:10.89
いえいえ、あと数年もして言語の機能に差が見られなくなった時
一体何を基準に言語を選ぶんでしょうねと。
454デフォルトの名無しさん:2013/09/21(土) 22:30:11.38
RubyやScalaやCoffeeって今文法的に可能だからってなんでもかんでも省略できるようにして
その結果変な制約だらけになって「驚き最小」とは正反対の言語になってるよね
455デフォルトの名無しさん:2013/09/21(土) 22:33:11.31
>>448
セミコロン省略ってどこ発祥なのかな?
Googleは禁止してるし、Mozillaは暗黙的に使う前提のように見えるし。
456デフォルトの名無しさん:2013/09/21(土) 22:33:28.28
>>455
BASICじゃね?
457デフォルトの名無しさん:2013/09/21(土) 22:34:21.11
まあ、言語仕様にも何度か「リファクタリング」が必要になる方が「普通」だよな
JSは良く耐えてきたよ、ES4も先走らなくてよかったかもね
458デフォルトの名無しさん:2013/09/21(土) 22:36:02.74
>>455
発祥というか支持してるのはNode
http://qiita.com/alucky0707/items/856d73e4fed7d18a2c75
459デフォルトの名無しさん:2013/09/21(土) 22:36:09.29
>>453
業務要件、工員のコスト、プラットフォーム、開発環境、etc
言語仕様なんてはっきり言ってどうでもいい
460デフォルトの名無しさん:2013/09/21(土) 22:37:41.05
>>458
あ、これに影響があるって話だったから
問題はセミコロンじゃなくてコンマファーストとかかも知れない。
461デフォルトの名無しさん:2013/09/21(土) 22:39:30.44
>>458
ありがとう。npmがそうだったのか。
結構な勢力だな。
462デフォルトの名無しさん:2013/09/21(土) 22:41:08.85
ES5以降は慎重に議論を重ねた上で拡張して行ったのに
巨大なクソの山になったC++みたいになりそう
463デフォルトの名無しさん:2013/09/21(土) 22:42:32.29
>>453
IE6以前に、JavaScriptの問題点(ライブラリの不足)を指摘して、
(当時)DHTMLの可能性に目をつけAltJSが出てくることを予見し、
今のJavaScriptを取り巻く環境を言い当てた俺が答えてやるよ。

将来は言語ではなく処理系で言語を選ぶようになってくる。
処理系が持つべき機能が拡張され標準化されるようになる。

現状のようにコンパイルするたびにコンパイラを実行するのではなく
コンパイラはサービスとして常駐起動するようになる。
プロジェクトディレクトリを指定しコンパイラをサービスとして起動し
エディタはコンパイラサーバーと通信しながら
(ソースファイル単体ではなく)プロジェクト全体から情報をあつめ
高速で効率的な開発サポートができるようになる。
そのために必要な機能が標準化される。

その時代の開発ではコンパイルはリアルタイムで行われる。
(なぜならサービスとして起動してるから、修正している所以外の
情報をすべて持っていてコンパイル済みだから)

言語はこの「標準化された機能」を効率的に提供できるような形に進化していく。
464デフォルトの名無しさん:2013/09/21(土) 22:45:04.03
>>463
そんなもんVisualStudioとか昔から普通にやってること
465463:2013/09/21(土) 22:45:09.16
>>453
> いえいえ、あと数年もして言語の機能に差が見られなくなった時
> 一体何を基準に言語を選ぶんでしょうねと。

あ、質問に答えてなかったなw

つまりだ、言語というよりも、開発者にどれだけ情報を提供
できる処理系が存在するかで、言語を選ぶようになってくる。

この話に言語仕様は全く関係ないってわけでもなく、
言語仕様によって提供できる情報は異なってくる。
466デフォルトの名無しさん:2013/09/21(土) 22:46:42.99
まあセミコロンフリーが一番問題になるのは
webでよく使われるクロージャでグローバル、スコープ汚染を避ける方法だからな

var a = 1
(function(){
var a = 2
})

がこう解釈される

var a = 1(function(){
var a = 2
})
//TypeError: number is not a function

Webじゃないのならブロック文とブロックスコープ宣言使えばいい

var a = 1
{
let a = 2
}

これで、問題の7,8割は解決する
あとは行を括弧で始めないとかそんなところ
467463:2013/09/21(土) 22:46:49.72
>>464
テキストエディタでできるようになるのが
重要なのだよ。

またサービスとして起動していると
一つのプロジェクトをリアルタイムで
複数の開発者が共有して開発できるかもな。

これがどういった結果をもたらすかはまだ分からないが、
ソースコードをマージするという作業を
超えた何かが生まれるかもしれないな。
468デフォルトの名無しさん:2013/09/21(土) 22:47:23.44
>>466
セミコロンフリーって
確かRubyでもなんらかの
問題が起きるんじゃなかったっけ?
469デフォルトの名無しさん:2013/09/21(土) 22:48:49.85
>>467
コンパイル言語なんてどうせIDEないと使いものにならないんだから意味ない
470デフォルトの名無しさん:2013/09/21(土) 22:50:48.35
静的型のメリットを最大限活かすにはIDEが適しているという面もあるね
471デフォルトの名無しさん:2013/09/21(土) 22:55:10.10
>>454
最善を尽くすのが当然だと思ってるんじゃないの
妥協したり諦めたりする方が変だ驚きだという人もいるだろ
472デフォルトの名無しさん:2013/09/21(土) 22:56:35.79
なんでJSでセミコロンフリーが避けられてるかというと
これでも>>466と同じ問題が起きるから

<script>
var a = 1
</script>

<script src="a.js"></script>

////a.js////
(function(){
var a = 2
})



最近のまともなライブラリはこうなってるから昔よりは心配が減ってる

////a.js////
;(function(){
var a = 2
});
473デフォルトの名無しさん:2013/09/21(土) 22:59:54.20
予言するって変更部分のみコンパイルなんてccacheとか古くからあるし、
エディタ連携はctagsとかあるし、CI環境なんてjavascriptにもあるし。
標準化されるしか言ってないな。
474デフォルトの名無しさん:2013/09/21(土) 23:00:43.52
JavaScriptとかJavaって普通に書くと、これが非常に多いよね

  })
});
475デフォルトの名無しさん:2013/09/21(土) 23:04:03.79
VSに付いてるコンパイラなんて実体はバックグラウンドでコードを解析するVSのサービスそのものだよな
TypeScriptのコンパイラもそうらしいね
476デフォルトの名無しさん:2013/09/21(土) 23:32:40.11
JSとか毎日触ってたら精神的におかしくなる自信あるわ
本業じゃなくてよかった
477デフォルトの名無しさん:2013/09/21(土) 23:39:12.33
COBOLの俺に謝れ
478デフォルトの名無しさん:2013/09/21(土) 23:48:54.42
jsはわけがわからないな

function a() { return 1; }
var a = function() { return 1; };

window.onload = func();
window.addEventListener('load' func, false);

var a = [1,2,3,4,5];
var a = {1,2,3,4,5};

(function(){
})();

{
};
479デフォルトの名無しさん:2013/09/21(土) 23:50:48.87
わけがわからないのを統一するためにjQueryがあるんだよきっと
480デフォルトの名無しさん:2013/09/21(土) 23:55:23.08
jQueryはDOMのクソさをJSの柔軟さで補うものだぞ
ちなみに次世代DOMはjQueryっぽくなる
プラグインの影響は大きい
481デフォルトの名無しさん:2013/09/21(土) 23:59:02.95
jQueryってローカルで動いたと思ったらサーバー上で動かなかったりして
ググったら似たようなことで悩んでる奴いっぱいいる感じだけどアレなんなの
原因突き止めなくてもしばらく待ってたら動くようになるんですかね・・・・(めんどくさい)
482デフォルトの名無しさん:2013/09/22(日) 00:02:01.07
文字コードとかじゃね
逆ならいくつか思いつくがそのパターンは珍しい
483デフォルトの名無しさん:2013/09/22(日) 00:09:18.21
>>473
> 予言するって変更部分のみコンパイルなんてccacheとか古くからあるし、

ccacheってファイル単位でしかないぞ。
ファイルの中のクラス単位、関数単位でなければだめだ。

更に言うならば、ccacheはファイル単位なんで、
1バイトでも中身が変われば役に立たない。
484デフォルトの名無しさん:2013/09/22(日) 00:12:55.72
JSはわけがわからないというが
どんな言語でもDOMやWebAPIをサポートすればコールバック地獄になるのは避けられん
485デフォルトの名無しさん:2013/09/22(日) 00:13:39.05
>>481
> jQueryってローカルで動いたと思ったらサーバー上で動かなかったりして
具体例を出してくれなきゃ
お前の勘違いとしか言えないな。

原因突き止めたんだろう?
突き止めた原因の一つぐらい
言ったらどうだ?
486デフォルトの名無しさん:2013/09/22(日) 00:14:38.05
>>474

> JavaScriptとかJavaって普通に書くと、これが非常に多いよね
>
>   })
> });


指摘できるのがその程度だなんて・・・。
487デフォルトの名無しさん:2013/09/22(日) 00:16:22.69
なんでコールバックの話になるのか
488デフォルトの名無しさん:2013/09/22(日) 00:16:58.88
かっこが多い言語を馬鹿にするな。
489デフォルトの名無しさん:2013/09/22(日) 00:18:02.07
>>484
そのコールバック地獄を解決したのが
ECMAScript6だと思うんだけど?
490デフォルトの名無しさん:2013/09/22(日) 00:21:56.98
>>486
じゃあこの程度じゃない「セミコロンがうざい例」を出してください。
491デフォルトの名無しさん:2013/09/22(日) 00:22:03.35
Javaは
hoge(new HogeCallback() {
 @Override
 public void callback(int x) {
 }
});
だろw
492デフォルトの名無しさん:2013/09/22(日) 00:23:01.86
>>489
既存のWebAPIがジェネレータに対応してくれるわけじゃない
493デフォルトの名無しさん:2013/09/22(日) 00:26:00.10
>>483
じゃあclangでもhugsでも何でもいいよ。
ただの既成品のアイディアや受け売りじゃ、
予言でも何でもないって言いたいだけだから。
494デフォルトの名無しさん:2013/09/22(日) 00:26:05.59
function地獄もthisバインドのアロー関数が入るだけで
苦しみが1/3位になる気がする
495デフォルトの名無しさん:2013/09/22(日) 00:28:13.49
>>492
そもそもジェネレータは非同期コールバックの解決にはなりませんよ
メソッド繋いだほうがマシなレベルのハック
496デフォルトの名無しさん:2013/09/22(日) 00:28:18.12
知ってる人にはどんどん使いやすくなっていいが
今からWeb上のJSを始めるのはかなりきつい
497デフォルトの名無しさん:2013/09/22(日) 00:30:41.64
テスト書いてるけどaltJSって言語仕様変わるから意味ねえ。
498デフォルトの名無しさん:2013/09/22(日) 00:32:28.48
セミコロン派だけど、省略する利点がないので省略しない。
オフサイドルール導入されたら省略する。
499デフォルトの名無しさん:2013/09/22(日) 00:33:32.36
>>495
IndexedDBとかFileAPIとかジェネレーターで書いてみ
勿論標準はコールバックだからラッパーを少々不格好にかませることになるけど
それでもあまりの美しさに本当に泣けるから

AjaxとかはPromiseでいいよ?
でもこの手のものはチェーンでも冗長だわ

まあ、やっぱりWorkerで同期API使うのが一番いいかもしれないけどね
500デフォルトの名無しさん:2013/09/22(日) 00:34:26.02
セミコロン書くと見難いし、無駄だから出来る限り省くわ
501デフォルトの名無しさん:2013/09/22(日) 00:34:59.66
>>492
> 既存のWebAPIがジェネレータに対応してくれるわけじゃない

ならば既存のWebAPIをジェネレータに変換する
ライブラリを作ればいいのではないか?
502デフォルトの名無しさん:2013/09/22(日) 00:38:26.31
https://brendaneich.com/2012/10/harmony-of-dreams-come-true/

ECMAScript6の仕様みてみたら


・デフォルト引数
・可変長引数
・まともなforeach
・文字列以外をキーとできるHash
・ガベコレされやすいMap
・Setコレクション
・String.startsWith, String.endsWith, String.contains
・Number.isNaN, Number.isFinite, Number.toInteger, Number.isInteger



ワラタwwwwwwwwwwwww
2013年になってもこんなもの実装ってどれだけ周回遅れなんだ
Proxyは認める
503デフォルトの名無しさん:2013/09/22(日) 00:39:55.94
>>501
そういうことを話してるんじゃないんだよ……
>>478-484
をちゃんと見てくれ

扱いづらいのは言語というよりむしろAPIの責任と言いたんであって
APIは言語でカバーできると言う論は噛み合ってないんだよ
504デフォルトの名無しさん:2013/09/22(日) 00:41:05.56
>>502
Proxyって、これ他の言語で実装された実績あるの?
505デフォルトの名無しさん:2013/09/22(日) 00:41:31.81
他の言語にはWeakな(GCを妨げない)SetやMapってあるの?
506デフォルトの名無しさん:2013/09/22(日) 00:46:13.61
>>493
> じゃあclangでもhugsでも何でもいいよ。
> ただの既成品のアイディアや受け売りじゃ、
> 予言でも何でもないって言いたいだけだから。

なんか勘違いしてね? 俺が言ってる予言は
新しい技術ができるなんてひとことも言っとらん。

将来の一般的な開発スタイルがどうなるかの予言だ。
JSのライブラリもソースマップもAltJSも類似の技術は
他の言語には既にあった。そんなの当時でも知ってる話だ。
JSに足りないものを言い、それが普及するという予言だ。

今回の予言もまさにそれと同じ。
JS、そしてスクリプト言語全体に足りないもの。
それが>>463の内容だ。そしてそれが将来普及する。

当時もいたよ。JavaScriptの潜在能力を見抜けず
俺の言ったことを理解できない人間。
実際に俺が言った世界になったがな。
507デフォルトの名無しさん:2013/09/22(日) 00:47:32.36
弱参照サポートしてる言語ってあるの??
508デフォルトの名無しさん:2013/09/22(日) 00:48:58.10
>>503
> 扱いづらいのは言語というよりむしろAPIの責任と言いたんであって
> APIは言語でカバーできると言う論は噛み合ってないんだよ

コールバックの話だろう?
コールバックでしか実現できない言語あれば
コールバックを使うAPIしか提供できないではないか?

そこに言語で違うやり方が出来るようになったら
APIもそれを使った、使いやすいAPIができるだろう?
509デフォルトの名無しさん:2013/09/22(日) 00:54:43.59
汎用のWebAPIが使用に対して1ライブラリでしかない
jQueryを要求するのはなんか変な感じだけど、
ECMAScriptにPromiseとか入ったら
標準機能を使うWebAPIは変ではないよな。
510デフォルトの名無しさん:2013/09/22(日) 00:59:13.66
>>508
一応DOM周りのAPIはJSから切り離されてるという立場で話してるから
その気になればどの言語でも導入可能
511デフォルトの名無しさん:2013/09/22(日) 01:01:23.46
>>505
> 他の言語にはWeakな(GCを妨げない)SetやMapってあるの?

あるよ
512デフォルトの名無しさん:2013/09/22(日) 01:01:25.91
まあ昔はVB、今からだとDartとかの可能性もあるしな。
513デフォルトの名無しさん:2013/09/22(日) 01:03:42.72
>>510
そのレス
何がいいたいのかさっぱりわからんw

>>511
C++やJavaにあったよな。
WeakなSetやMap

言語標準かどうかは忘れたけど
見たこと有るわ。
514デフォルトの名無しさん:2013/09/22(日) 01:05:24.63
これといったJavaScriptの標準的な書き方を解説してほしいわ
氷山の一角だけど例えばコレ
http://blog.asial.co.jp/1101
オブジェクトリテラルとモジュールパターンを紹介してるけど
2つ書き方に方法があることがむしろ俺にとっては問題だ・・・
515デフォルトの名無しさん:2013/09/22(日) 01:06:52.82
>>514
Perlディスってるんですか?
いろんな書き方がある方が
優れてるんですよ!?
516デフォルトの名無しさん:2013/09/22(日) 01:07:06.19
WebAPIは意外とJSありきじゃないかもな
一応全部がDOMのホストオブジェクトで配列でさえもJSのArray使ってないし
TypedArrayは逆輸入されたし、ArrayBufferも今逆輸入しようとしてるのをみると、
上で書いたライブラリの件もそうだけど、JS「が」Webありきなんだな
517デフォルトの名無しさん:2013/09/22(日) 01:07:26.72
>>514
TypeScriptが生成したコード読んで真似すればいいよ
altJSの中じゃ多分一番標準を重視してて見た目も綺麗
518デフォルトの名無しさん:2013/09/22(日) 01:10:06.77
>>516
> WebAPIは意外とJSありきじゃないかもな

当たり前だと思うが?

WebAPIはブラウザありきだろ。
フォームのPOST/GETがベースになってる。

POST/GETができればどんな言語でも使える。
519デフォルトの名無しさん:2013/09/22(日) 01:12:54.70
>>514
同じのが2つあるんじゃないぞ
両方使い時があるんだよ
あとES6式だとこれからかなりイメージ変わる
まあ好きに書けばいいさ
520デフォルトの名無しさん:2013/09/22(日) 01:13:44.59
>>515
Perlもだんだんカオスになってきたね
昔のコードならそこそこわかるけど最近のコードはさっぱり

>>517
ありがとう
早速ぐぐってみる
521デフォルトの名無しさん:2013/09/22(日) 01:14:50.00
>>518
IndexeDBとかWebAudioAPIとかそれらも全部含めて言ってるのよ
522デフォルトの名無しさん:2013/09/22(日) 01:14:56.98
>>516
> JS「が」Webありきなんだな
もともとネットスケープが
ブラウザに載せた言語ですから。
常識だと思うんですがねぇ。

まあ、それが功を奏して世にも珍しい、
ファイルアクセス、標準有出力を
標準で備えてない言語になったわけですが。

それが十数年の時を超えて、
何もないなら、自分たちで世界を作れるということで
nodeという非同期ベースの実行環境ができることに
至ったわけで、世の中何が成功するかわからんよね。

デメリットがメリットになったわけだし。
523デフォルトの名無しさん:2013/09/22(日) 01:16:44.49
その通りやな
524デフォルトの名無しさん:2013/09/22(日) 01:17:42.74
>>521
> IndexeDBとかWebAudioAPIとかそれらも全部含めて言ってるのよ

それらは、WebAPIではなく
JavaScript APIですが?
525デフォルトの名無しさん:2013/09/22(日) 01:22:07.62
>>524
JavaScript=ECMAScript+Web
と言うんならそう言うのかもしれないけど、それは屁理屈だと思う
仕様はEcmaScriptに何も依存してないよ
526デフォルトの名無しさん:2013/09/22(日) 01:22:25.92
>>506
言うだけならそこらで地震起こる言ってる奴と変わらんだろ。
自覚がないのは本当に危ないぞ。
527デフォルトの名無しさん:2013/09/22(日) 01:23:32.49
>>526
地震起こるって言っている奴と同じではない。

地震を的中させた奴と同じである。
528デフォルトの名無しさん:2013/09/22(日) 01:23:55.18
JavaScriptAPIならDart涙目じゃね?
自分たちでDart用の標準仕様策定しないといけないの?
そうじゃないでしょ
529デフォルトの名無しさん:2013/09/22(日) 01:24:14.94
>>514
どう見てもそれ書いてるやつは後者の書き方推してるだろ。
530デフォルトの名無しさん:2013/09/22(日) 01:24:58.26
>>525
どのライブラリでもいいんだけどさ、
仕様が特定の言語に依存したものなんてあるの?

それはどういった点で依存してるというの?
それがWebAPIにはないの?
531デフォルトの名無しさん:2013/09/22(日) 01:26:09.39
532デフォルトの名無しさん:2013/09/22(日) 01:27:59.30
>>531
へ? それが何を説明してんの?

IndexeDBとかWebAudioAPIは仕様で
JavaScript(EcmaScript)の
データ型を使用してるでしょ。

JavaScript(EcmaScript)に依存してるじゃんか。
533デフォルトの名無しさん:2013/09/22(日) 01:27:59.38
また0か1か君か
そこら辺は感覚の問題だろ
だが比較的抽象度が高いということだろ
534デフォルトの名無しさん:2013/09/22(日) 01:30:09.60
自分もっと>>532の言葉遊びに付き合うべきなのかな……
535デフォルトの名無しさん:2013/09/22(日) 01:31:23.67
>>536
うん。変換レイヤーを儲けてある言語のデータ型を
他の言語のデータ型に変換してもいいというのなら、
仕様が特定の言語に依存したライブラリなんて世の中に無いよね。

そう言ってるんですが?
536デフォルトの名無しさん:2013/09/22(日) 01:32:39.67
実際は0と1の中間なのに
0側推しの時は0だと証明出来なければ認めない
1側推しの時は1だと証明出来なければ認めない
最初から意見を押し通す気なんだから相手しても無駄
537デフォルトの名無しさん:2013/09/22(日) 01:33:33.24
>>536
おい、他人が横から口を挟むなw
せっかくエスパーしてんのにさ。
538デフォルトの名無しさん:2013/09/22(日) 01:34:02.63
>>535
なるほどね
よくわかったよ
ありがとうね
539デフォルトの名無しさん:2013/09/22(日) 01:35:27.07
巨人様大口自重してくださいwww
540デフォルトの名無しさん:2013/09/22(日) 01:42:13.03
Perl6って流行んないの?
541デフォルトの名無しさん:2013/09/22(日) 01:42:35.14
>>506
他の言語もなにもサーバーサイドJSは最初からあったし、
ASPの時代からあったよ。
ついでにJavaScriptへのトランスレータも当時既にあった。

そりゃブラウザでこれだけ普及してれば、いつかは流行る。
そんなのを見て予言が的中って、歴史を知らなさすぎる。

とりあえず俺も、ネイティブバイナリコンパイラは消えて、
llvm+配布時aotコンパイルで、
アーキテクチャ関係なくなるって言っておくわ。
542デフォルトの名無しさん:2013/09/22(日) 01:44:37.04
ミス
>ASPの時代からあったよ。
ASPの時代からJavaScriptへのトランスレータもあった。
543デフォルトの名無しさん:2013/09/22(日) 01:45:02.81
AOTコンパイルといえばasm.jsという糞素晴らしい物がある。
544デフォルトの名無しさん:2013/09/22(日) 01:50:35.29
asm.jsはスクリプト言語としては最速級……
545デフォルトの名無しさん:2013/09/22(日) 01:52:11.67
>>541
> 他の言語もなにもサーバーサイドJSは最初からあったし、

サーバーサイドJSの話なんかしていませんが?
546デフォルトの名無しさん:2013/09/22(日) 01:54:04.33
あんたがしてないからなによw
547デフォルトの名無しさん:2013/09/22(日) 01:56:12.47
>>541
> そりゃブラウザでこれだけ普及してれば、いつかは流行る。

当時は全然普及していなかったよ。
JavaScriptはOFFにするのが
自称情強だった時代。
548デフォルトの名無しさん:2013/09/22(日) 02:08:45.15
>>547
当時の年代によるけど、IE4以降なら十分普及してたよ。
もうその時、既にリッチクライアントとか出始めてた頃。
というか2chのPCオタを標準にするなw
549デフォルトの名無しさん:2013/09/22(日) 02:12:15.40
IE4は実に先進的なブラウザだったな。

時代を先取りしすぎていたのが残念なところだが。
http://tech.nitoyon.com/ja/blog/2009/01/20/ie4-blueprint/
550デフォルトの名無しさん:2013/09/22(日) 02:13:50.93
ブラウザにインタプリタが載っていた=普及していた?
551デフォルトの名無しさん:2013/09/22(日) 02:16:39.91
> ブラウザにインタプリタが載っていた=普及していた?

誰がそんなことを言ったんだろう?
書いてない幻が見える人かな?
552デフォルトの名無しさん:2013/09/22(日) 02:21:29.74
1998年ぐらいからインターネットしていたけど
当時JavaScriptなんて普及していたとは言えんだろ
Perlですらアクセスカウンターに使うのが普通、よくて掲示板やチャット自作ぐらいだし
JavaScriptなんてお遊びでalert出していた個人サイトがあったぐらいだぞ

IE4時代に既にJavaScriptが普及していたなんてとんでもないわ。
そりゃ大抵のブラウザは対応していたけど
553デフォルトの名無しさん:2013/09/22(日) 02:26:03.57
IE4が気に食わないなら、2003年以降でもいいよ。
さすがにDOM L2が整備された頃なら文句ないだろ。
いつ予言したのかは知らんが。
554デフォルトの名無しさん:2013/09/22(日) 02:27:26.14
JavaScrpitなんてマウスに画像のせたら変わったり、
マウスカーソルに変なキャラが追尾したり、背景に雪を降らせたり・・・
ちょっとした装飾や自己満でウィンドウサイズ変える嫌がらせとかその程度だったな
googleがmap公開するまでは見向きもされなかったわ
555デフォルトの名無しさん:2013/09/22(日) 02:33:50.59
flashの方が全然普及していたな
JavaScriptは右クリック禁止とかそういうお遊びにしか使われてなかったし

Google MapってIE6ではまともに動いたっけ?
当時は既にFireFoxに移行していてIEなんてすぐにエラー吐いて落ちるゴミは切ったから知らん
556デフォルトの名無しさん:2013/09/22(日) 02:33:59.64
>>554
若くて羨ましい。
557デフォルトの名無しさん:2013/09/22(日) 02:38:00.03
JavaScriptでフォームのパラメータをいじってpostとかはしてたけど
具体的にサーバサイドとの連携が生まれたって感じたのはAjaxが注目されてからだね
XMLHttpRequest自体は昔からあったようだけど
558デフォルトの名無しさん:2013/09/22(日) 02:38:11.39
JavaScriptのFlashのお話でしたとさ
559デフォルトの名無しさん:2013/09/22(日) 02:38:54.83
自分がJS始めた5年前は十分に普及してたな
その頃からケータイでも動くようになったし
Webに必須という段階になったんだと思う
560デフォルトの名無しさん:2013/09/22(日) 02:41:13.82
JavaScript普及の背景はAjaxだけじゃなくてPC性能の向上もあると思う
IE6〜IE8はいくらPC性能が良くても重かったけど
561デフォルトの名無しさん:2013/09/22(日) 02:42:46.87
IE8で何倍もパフォーマンス改善して9でまたかなり改善してる
そこからはエンジンの進化は緩やか
562デフォルトの名無しさん:2013/09/22(日) 02:50:24.01
>>555
> Google MapってIE6ではまともに動いたっけ?

動いたよ。2005年にはIE6までしか存在していない。
http://en.wikipedia.org/wiki/Google_Maps#2005

IE6は先進的な機能を搭載していて、
ただそれが標準化されなかっただけで
機能自体は今でも引けをとらないぐらいある。
563デフォルトの名無しさん:2013/09/22(日) 02:51:36.99
ActiveXはプラグインみたいなものでIE6の機能ではない
564デフォルトの名無しさん:2013/09/22(日) 02:55:35.13
ActiveXを呼び出せるのはIEの機能だ
565デフォルトの名無しさん:2013/09/22(日) 02:56:58.57
それがJavaScriptと何の関係が?
その理屈だとChromeのJavaScriptはFlashの能力も得てることになるよな
566デフォルトの名無しさん:2013/09/22(日) 02:59:03.09
いや、セキュリティ問題があるから
ActiveXならなんでも使えるわけじゃないし。
JavaScript(ブラウザ)から使うものとして
作られているという話。
567デフォルトの名無しさん:2013/09/22(日) 03:01:06.74
ActiveXはあらゆる言語から使える汎用的なAPIだよ
だからあんなに使いにくい
568デフォルトの名無しさん:2013/09/22(日) 03:02:10.25
FlashってJavaScriptになるの?
569デフォルトの名無しさん:2013/09/22(日) 03:02:54.01
C言語ライブラリはあらゆる言語から使える汎用的なAPIだよ
だからあんなに使いにくい
570デフォルトの名無しさん:2013/09/22(日) 03:03:40.59
JSからFlash作れるし、API叩ける
571デフォルトの名無しさん:2013/09/22(日) 03:03:40.42
>>568
誰がそんなこと言ってるの?
ブラウザで標準的にできることの話をしてるだけなのに。
572デフォルトの名無しさん:2013/09/22(日) 03:08:32.75
ごめん。
FlashのスクリプトってJavaScript扱いになるの?
573デフォルトの名無しさん:2013/09/22(日) 03:09:37.07
は? ならないだろ?

今は、ブラウザが標準的に
使える機能の話をしてるの。
あとづけで入れるFlashに興味はないの
574デフォルトの名無しさん:2013/09/22(日) 03:09:42.29
ActiveXがなるんならなんでもなるんじゃね
575デフォルトの名無しさん:2013/09/22(日) 03:10:38.61
>>573
Chromeは標準でFlash乗せてる
576デフォルトの名無しさん:2013/09/22(日) 03:12:27.52
>>574
潜在能力的には何でもなるけど、
当時既に作られていたもの、
ブラウザが入っている環境であれば
使えるものに限定すればできることは限られてるから。
577デフォルトの名無しさん:2013/09/22(日) 03:14:51.36
そもそもFlashに出来て今のJSに出来ないことは無いんじゃね
578デフォルトの名無しさん:2013/09/22(日) 03:16:31.44
ないな確かに
579デフォルトの名無しさん:2013/09/22(日) 03:16:53.93
>>573
そうでなくて、FlashのスクリプトはECMA系だけど、
JavaScript扱いになるのかって話。
580デフォルトの名無しさん:2013/09/22(日) 03:18:34.93
>>577
CORS…はできないほうがいいのか。
581デフォルトの名無しさん:2013/09/22(日) 03:19:00.04
FlashはActionScript+なんか+バイナリだよ
でもJavaScriptって言葉自体どっかに正式な定義があるわけじゃないからなぁ
582デフォルトの名無しさん:2013/09/22(日) 03:19:34.77
>>579
あぁ、ECMAScript4をベースにした
ActionScriptの話だな。
583デフォルトの名無しさん:2013/09/22(日) 03:24:17.97
>>580
それはもう随分前からできる
勿論相手サーバーが許可すればだけど

>>582
それよくそう思われてるけど
本当はASの構想がES4のベースになったんだよね
584デフォルトの名無しさん:2013/09/22(日) 03:34:55.03
標準でActiveX並のことができるって、良い世の中になったな
585デフォルトの名無しさん:2013/09/22(日) 03:39:50.84
>>446
話が通じてないな
Javaではなく、jsの話だよ
586デフォルトの名無しさん:2013/09/22(日) 03:51:34.56
というか、なんでブラウザにインタプリタが載ったんだ?
歴史上のどこかで、ILみたく中間言語に置き換えられなかったんだろうか
これから起こるとしたら、js厨が糞ノウハウと共に絶滅するのにな
587デフォルトの名無しさん:2013/09/22(日) 03:54:45.76
今の状況だと、jsが中間言語になりつつあるなw
588デフォルトの名無しさん:2013/09/22(日) 03:55:47.05
>>549
M$の狙いが優れているとすれば、次に流行るのはtypescriptかocamlだな
589デフォルトの名無しさん:2013/09/22(日) 04:04:03.60
例えJSが滅びてもHTMLやCSS、APIが滅びるわけじゃないんだから壊滅級じゃないよ
まあ逆に言えばこれらとJSは三位一体だから、崩壊することはない
590デフォルトの名無しさん:2013/09/22(日) 04:05:04.30
TypeScriptはES.nextの先取りという謳い文句だから、
それ以上にはならないね。
591デフォルトの名無しさん:2013/09/22(日) 07:07:22.47
死ねゴミ共がw
592デフォルトの名無しさん:2013/09/22(日) 07:18:52.32
いいんですか?そんな事言ったら本当に死にますよ?
593デフォルトの名無しさん:2013/09/22(日) 08:40:54.32
一発使うだけだから保守性とかどうでもいいから、
とにかく早いコード書けって言われたら書ける?
そういう観点でお前ら同じ課題で勝負してみて
594デフォルトの名無しさん:2013/09/22(日) 09:33:15.06
テスト一発で証明終わりの世界って
無限回使うことを想定している言語を冒涜しているよね
595デフォルトの名無しさん:2013/09/22(日) 09:41:15.07
どんな観点で勝負してもJSは負けるよ
言語がヘボの上に大半のコーダもカスだからな
596デフォルトの名無しさん:2013/09/22(日) 09:47:40.42
>>590
TypeScriptの一番の売りはインターフェイスを用いたstructual subtypingによる静的型検査だよ
この手の機能はEcmaScriptに提案されることはあっても採用されることはまあ永遠にないだろうし
597デフォルトの名無しさん:2013/09/22(日) 10:00:20.78
TypeScriptはジェネリックも使える
interfaceはcreateElement('canvas')とcreateElement('div')で
戻り値の型が変わるように型宣言を「オーバーロード」できたりするのが特徴的で
何のための言語なのかをよく表しているね
598デフォルトの名無しさん:2013/09/22(日) 10:23:19.95
599デフォルトの名無しさん:2013/09/22(日) 11:04:17.37
TypeScriptの型推論はウンコすぎ
600デフォルトの名無しさん:2013/09/22(日) 12:04:09.99
JSって標準的な書式がないんだよな
変数名や関数名を大文字にするか小文字にするか、パッケージのファイル名をどうするか
継承をどうやって表現するか
みんな好き勝手に書いてて、まったくまとまりがない
601デフォルトの名無しさん:2013/09/22(日) 12:06:33.52
JSに比べればAS3は遥かに良かった
602デフォルトの名無しさん:2013/09/22(日) 12:17:49.05
>>600
ほとんどの言語はそうだ。
ある会社とかに限定すれば纏まりはあるだろうが。
規定するなら言語自体が使える文字を制約すればいい。
603デフォルトの名無しさん:2013/09/22(日) 12:19:36.39
>>600
> JSって標準的な書式がないんだよな
お前が知らないだけじゃね?

JSHintなどで
標準的な書式が
決まってるだろ。
604デフォルトの名無しさん:2013/09/22(日) 12:20:56.46
いつの間にJSHintが標準になったんですか?
605デフォルトの名無しさん:2013/09/22(日) 12:23:23.76
ここ二年ぐらいの間かな
606デフォルトの名無しさん:2013/09/22(日) 12:29:07.68
JSHintの全てがいいとは言わないが2/3くらいはいいものだな
607デフォルトの名無しさん:2013/09/22(日) 14:31:25.56
jQueryはこんなに普及したのに、どうしてString.Format, String.Cotainsとかの関数を配賦するライブラリーは普及しなかったの?
608デフォルトの名無しさん:2013/09/22(日) 15:05:11.67
だってそんなもの要らないもの
欲しいと思ったこともほぼない
609デフォルトの名無しさん:2013/09/22(日) 15:13:31.15
ド〜カタには〜ドカタの〜世界が〜ある
610デフォルトの名無しさん:2013/09/22(日) 15:19:46.75
いい加減Array.prototype.slice.callと、
String.toArrayがほしい。
611デフォルトの名無しさん:2013/09/22(日) 15:20:26.78
Array.prototype.slice.callとじゃねえ。
Array.from
612デフォルトの名無しさん:2013/09/22(日) 15:36:13.71
Array.fromもString.prototype.toArrayもES6にある
613デフォルトの名無しさん:2013/09/22(日) 15:44:15.55
TypeScriptってサーバサイドのnode.jsで使うことを想定した言語?
htmlと簡単に連携できるのかな?
わざわざコンパイルしないとブラウザでの動作確認とかできないと面倒だよね
<html>
<head>
<script>
//typescript code
</script>
</head>〜
こんな感じに書いて実行押したらブラウザ開いて見れる的なIDEがあればいいんだけど
614デフォルトの名無しさん:2013/09/22(日) 15:47:06.25
1つ言うと
TypeScriptはJSにコンパイルされる時に型なんかのチェックをしてくれるのが特徴なんだよ
実際吐くコードはCoffeeScriptとさほど変わらない
だから「コンパイル」っていう段階が一番有り難みが合って大事なとこなんだから
そこを嫌がるのなら合わないかもね
615デフォルトの名無しさん:2013/09/22(日) 15:52:21.00
やっぱ完全なコンパイラ言語なのか
型は別に入れなくてもいいって書いてたからちょっと期待してしまった
616デフォルトの名無しさん:2013/09/22(日) 16:01:53.16
<script type="text/typescript">
のほうがいい
617デフォルトの名無しさん:2013/09/22(日) 16:03:35.98
TypeScriptはスクリプト言語だけど、Dartはスクリプト言語じゃない
その違いはどこだろう
どちらもjsにして実行させられるのに
618デフォルトの名無しさん:2013/09/22(日) 16:03:46.69
言語と実装はわけろ。
node.jsで動く実装がある言語だからといって
言語としてnode.jsが必須とはいえない。
619デフォルトの名無しさん:2013/09/22(日) 16:06:19.63
どういうことなのかさっぱりわからないけど
ESでCSやTSみたいなのをサポートしようというのが確か合ったな
多分メタ的なのをもっと増やすとか
ForeignScript{
}
みたいなのを作るってことなんだろうな
620デフォルトの名無しさん:2013/09/22(日) 16:08:25.09
汎用的なAST操作APIとか
621デフォルトの名無しさん:2013/09/22(日) 16:10:34.58
本家の5倍速? Pythonで実装したRuby処理系の「Topaz」が登場
Topazは正確にはPythonではなく、RPythonと呼ばれるPythonのサブセットの言語で書かれています。RPythonは2.7.3互換をなるべく保ちつつ、速度向上を目指した仕様・実装のようです。
http://el.jibun.atmarkit.co.jp/rails/2013/02/5-pythonrubytop-0220.html
622デフォルトの名無しさん:2013/09/22(日) 16:25:44.60
>>621
RPythonてpypyと同じだよね。
やっとまともなRuby実装でてきたのか。
623デフォルトの名無しさん:2013/09/22(日) 16:34:30.22
いい傾向(?)だな
624デフォルトの名無しさん:2013/09/22(日) 16:39:19.82
CRubyは既存のC拡張を捨てれない制限の中で
最適化してるんだから、あれでも頑張ってるよ

まあ、そのわりにはバージョン上がるたびにgemぶっ壊れるけど
625デフォルトの名無しさん:2013/09/22(日) 16:44:47.57
Topazなんて殆どの仕様は未実装だろ
626デフォルトの名無しさん:2013/09/22(日) 17:01:31.04
Ruby2.1でGC改善するらしいし、
Ruby2.2以降でスレッド周り書き直したらなんとかなるんじゃないの
627デフォルトの名無しさん:2013/09/22(日) 18:41:01.83
jsはgithubなんかで有名なプロジェクト見て回っても書き方バラバラでまったく統一性ない
628デフォルトの名無しさん:2013/09/22(日) 18:44:53.27
書き方は色々ある。
それがプログラミングの楽しいところである。
ドカタは一つの書き方だけしてろw
629デフォルトの名無しさん:2013/09/22(日) 18:54:35.77
統一性とか意味不
違うことしてるんなら違うコードになるのは当然だし
書いてる人の雰囲気が出るのも当たり前だろ
言語なんだからさ
伝わればいいのよ
630デフォルトの名無しさん:2013/09/22(日) 19:14:45.16
JavaScriptは6文字あれば全てを記述できる言語
http://kokudori.hatenablog.com/entry/2013/09/19/082547
それ以上は皆冗長
631デフォルトの名無しさん:2013/09/22(日) 19:14:58.57
ライブラリを提出するひとは、統一しなきゃいけないよ
632デフォルトの名無しさん:2013/09/22(日) 19:18:11.40
インターフェイスは奇想天外のじゃない方がいいだろうが
ライブラリのコーディングスタイルなんてどーでもよくね
633デフォルトの名無しさん:2013/09/22(日) 19:42:23.02
ライブラリのコードなんて読みもしないドカタらしい意見で好感が持てますね
634デフォルトの名無しさん:2013/09/22(日) 20:04:12.91
ライブラリのソースコード読むのは、PHPとかRubyとかJavascriptで書いてるゴミみたいなやつら
静的型付け言語の場合はコンパイルされていてメタ情報しか読めないから
635デフォルトの名無しさん:2013/09/22(日) 20:10:05.94
メタじゃなくて無知だろ
636デフォルトの名無しさん:2013/09/22(日) 20:32:19.43
これはヒドい
637デフォルトの名無しさん:2013/09/22(日) 20:36:17.02
ライブラリを提供してもらってる側なのに偉そうにすんなよ。
638デフォルトの名無しさん:2013/09/22(日) 20:37:54.64
jqueryオブジェクトの変数名は最初の文字を$にするとか、それ自体の良い悪いはともかく、プロジェクトの誰かがそういうふうに書いてたら、それに合わせるしかないよな
639デフォルトの名無しさん:2013/09/22(日) 20:47:26.45
$aaa = $("div#aaa")

みたいな感じか?
そんなコトする奴いんのか?
640デフォルトの名無しさん:2013/09/22(日) 21:12:13.15
>>639
オライリーの本でそういう書き方を
した方がいいって書いてあるよ。
どの本だったかは忘れたが。
まあ、もっと見識を広めようw
641デフォルトの名無しさん:2013/09/22(日) 21:14:04.69
そうなのか。
知らんかった。
642デフォルトの名無しさん:2013/09/22(日) 21:20:54.93
jQueryオブジェクトをキャッシュすること多いと思うけど、
それに$つけるのは普通だろ
643デフォルトの名無しさん:2013/09/22(日) 21:30:34.06
普通普通
余裕に普通っすよ
644デフォルトの名無しさん:2013/09/22(日) 21:44:25.30
随分頭お固いっすね...
645デフォルトの名無しさん:2013/09/22(日) 21:46:15.14
頭お固い人ばかりっすね...
646デフォルトの名無しさん:2013/09/22(日) 22:31:17.85
>>458
うわあ
最悪だなあ
npm作ってる奴らって脳みそイカれてるのか
こういう奴らのせいでES6に悪影響があるのか
セミコロン必須だったら良かったのに
647デフォルトの名無しさん:2013/09/22(日) 23:10:51.40
Webで声がでかいのってRubyかぶれの省略バカばっかりだからね
648デフォルトの名無しさん:2013/09/22(日) 23:11:05.64
JavaScriptみたいなゴミを好んで使うなんてよっぽど頭がおかしくないと出来ないからな
649デフォルトの名無しさん:2013/09/22(日) 23:16:23.79
npm作ってる連中はnode作ってる連中ではないけどね
まあnodeの作者RyanDahlも、
初めはHaskellを試して駄目だったのでJavascriptにしたらしいし
頭がどっかおかしいのは間違いないw
650デフォルトの名無しさん:2013/09/22(日) 23:16:58.70
Haskellは海外じゃオワコンだもんな
651デフォルトの名無しさん:2013/09/22(日) 23:18:46.60
天才は頭がおかしいよ
652デフォルトの名無しさん:2013/09/22(日) 23:20:03.83
低能には無理でした > Haskell
653デフォルトの名無しさん:2013/09/22(日) 23:22:12.54
残念ながらHaskellのIOがパフォーマンス上、駄目だったらしい
javascriptがIO機能を持たなかった事が優れていたんだと
654デフォルトの名無しさん:2013/09/22(日) 23:27:26.85
これか
http://www.publickey1.jp/blog/11/javascriptnodejschaskell.html

―― なぜJavaScriptを選んだのでしょう?

ダール氏 実は最初は違いました。最初はC、Lua、Haskellなどで失敗していました。
そんなときV8(Chromeが採用しているJavaScriptエンジン)に気がついて、やろうとしていることに対して
JavaScriptが完璧な言語だと突然ひらめいたのです。
655デフォルトの名無しさん:2013/09/22(日) 23:27:51.91
node.jsって、.jsみたいな名前ついてるけど、実際はC++で実装じゃん
C++とV8エンジン依存しすぎ
656デフォルトの名無しさん:2013/09/22(日) 23:29:55.70
実装してる言語とか名前に関係ないから
657デフォルトの名無しさん:2013/09/22(日) 23:32:41.16
>>656
ゆとりは口挟むな。
.jsって名前つけるからには、全体がJavaScriptのファイル1つでできていることを示唆する。
underscore.jsとかそうだろ。
でも実際はそうじゃない。

.jsがついてなければ、JavaScriptで実装してようとしてなかろうとどうでもいいよ。
658デフォルトの名無しさん:2013/09/22(日) 23:33:13.74
Nodeの為に書かれた量としてはJSの方が多いよ
659デフォルトの名無しさん:2013/09/22(日) 23:35:02.87
>>657vert.xも知らない無知は黙ってね♡
660デフォルトの名無しさん:2013/09/22(日) 23:36:58.18
C++もHaskellもLuaも出来る、お前らをはるかに超えるレベルの
超人様が色々試して最後に出した結論が「JavaScriptが完璧」

お前らのような何の実績もないど素人が口出しても負け犬の遠吠えだよ
661デフォルトの名無しさん:2013/09/22(日) 23:48:59.51
>>649
「haskellの実装をhackしようとしたけれど、僕は、それほど賢くなかった」
って言ってなかった?

>>660
そういや、ryって何で消えたの?
662デフォルトの名無しさん:2013/09/22(日) 23:55:06.23
製作者は否定してるわけじゃなくて、
目的に合わなかったって言ってるだけだよ。

代弁者気取って否定するなよキチガイ。
663デフォルトの名無しさん:2013/09/22(日) 23:55:18.32
>>661
実装をhackしようとしただけでも凄いけど、
V8の実装をhackしてC++バリバリ出来る人なんだから、
よくある謙遜だろう
で、ryって?
664デフォルトの名無しさん:2013/09/22(日) 23:56:34.59
>>662
そりゃマイルドな言い方するよね
「Haskellは糞だった」なんて俺でも絶対言わないね
でも、結局その人の行動が物語ってるw
665デフォルトの名無しさん:2013/09/22(日) 23:57:17.03
アホか。
.jsは拡張子名でなく、javascript言語を指す目的だろ。
666デフォルトの名無しさん:2013/09/22(日) 23:58:41.75
>>663
ダールのtwitterやgithubのHNってryじゃなかったけ?
突如として消えたって一時期ほど話題だったような
667デフォルトの名無しさん:2013/09/22(日) 23:59:27.69
>>657
>.jsって名前つけるからには、全体がJavaScriptのファイル1つでできていることを示唆する。
見識が狭すぎる
人生やり直せ
668デフォルトの名無しさん:2013/09/23(月) 00:01:23.86
>>664
経験者だからこそ、適材適所で安易に否定しないだけだろう。
狭い考えの奴にはわからんだろうけど。
669デフォルトの名無しさん:2013/09/23(月) 00:04:41.82
>>663
nodeよりも性能の良いYesodがGHCをハックしなくても実装できたんだから、
本当はハックしなくても良かったし、しなくちゃダメだと思っちゃう程度の理解度だった
Haskell使える程賢くなかったんだね、謙遜じゃなくて本当に
670デフォルトの名無しさん:2013/09/23(月) 00:06:14.03
どっかいけよニートども
671デフォルトの名無しさん:2013/09/23(月) 00:06:42.67
>>666
さあ、俺がnode知った頃には、nodeのアカウントはjoyentだったから
昔の話か?
672デフォルトの名無しさん:2013/09/23(月) 00:07:52.98
Haskellだったらドカタが使えなかったし
Haskellを使いこなしててHaskellに拘るような人が作者だったら
ドカタが使えないような難解なAPIになっていた
673デフォルトの名無しさん:2013/09/23(月) 00:10:28.95
>>669
後発ならなんとでも言えるわなw
俺だってピタゴラスの定理なんか簡単すぎて屁が出るし、
余弦定理の方が優れてるとか言えるわw
ま、Yesodが流行ってないところ見るとHaskellじゃやっぱり無理なんじゃないのw
674デフォルトの名無しさん:2013/09/23(月) 00:11:35.32
node.jsだってドカタは採用しないだろw

ドカタは間違いなくPHPかJava
よくてASP.NET(VB)
675デフォルトの名無しさん:2013/09/23(月) 00:11:42.98
>>672
実際利便性に優れていなかったんじゃないの
ノンブロッキングと相性悪いって話しだし
676デフォルトの名無しさん:2013/09/23(月) 00:13:05.55
>>674
理由を少しは考えてみろよ屑ニート
677デフォルトの名無しさん:2013/09/23(月) 00:13:14.21
そもそも高負荷ならRhinoのがいいし
まあjsだけじゃまともに動かんからv8に組み込んだんだろうけど
678デフォルトの名無しさん:2013/09/23(月) 00:14:46.50
土方はASPかPHPかJavaだな
で、「VBは簡単だけどJavaは難しいな」なんて言ってるw
Python、Ruby、Javascriptはもうちょっとレベルが高いイメージ
Haskellはレベルが高いけど数学オタクが使ってるイメージ
679デフォルトの名無しさん:2013/09/23(月) 00:15:57.34
>>675
ノンブロッキングと相性悪いって
インポート文一つで済みそうだけど・・
680デフォルトの名無しさん:2013/09/23(月) 00:16:21.24
>>677
V8はJavascriptを動かすためのエンジンだろ
何言ってんだ?w
Javascriptを貶したいだけなのが見え見えだw
681デフォルトの名無しさん:2013/09/23(月) 00:17:50.60
Haskell is pretty ideal but DOKATA is not smart enough to hack the GHC.
682デフォルトの名無しさん:2013/09/23(月) 00:17:54.47
>>679
さあな
本人が言ってるんで
いろんなノンブロッキングが想定されていないAPIをノンブロッキングのAPIと一緒に使わなくてはいけない
その足かせがないのはJavaScriptだけだったと
Haskellなんかも一見なさそうに見えるけど、本人がそういってるんだからしょうがない
683デフォルトの名無しさん:2013/09/23(月) 00:18:58.43
>>682
本人は自分が賢くなくて無理って言ってるだけだよ?
684デフォルトの名無しさん:2013/09/23(月) 00:19:44.20
>>682
白痴乙
685デフォルトの名無しさん:2013/09/23(月) 00:20:14.53
>>681
そのDOKATAは偉業を成し遂げた分だけ、hackも何もやってないお前よりはマシだなw
686デフォルトの名無しさん:2013/09/23(月) 00:20:48.01
>>683
嘘くさいなー
ソースプリーズ
687デフォルトの名無しさん:2013/09/23(月) 00:21:06.90
>.673
nodeも十分後発物だろ
ノンブロッキングIO以外目新しい点無い
688デフォルトの名無しさん:2013/09/23(月) 00:21:13.59
689デフォルトの名無しさん:2013/09/23(月) 00:21:38.70
いや、マジだよ
ソースは失念したが
ただよくある謙遜だとは思うけど
690デフォルトの名無しさん:2013/09/23(月) 00:22:14.17
>>687
nodeと比較してYesodは後発だから
691デフォルトの名無しさん:2013/09/23(月) 00:23:22.20
>>680
お前の言ってる意味のが理解できん
v8もnodeもC/C++でできてる
692デフォルトの名無しさん:2013/09/23(月) 00:24:54.16
>>688
そこに書いてあるJavascriptが良かった点
single threaded, without preconceived notions of "server-side" I/O, without existing libraries
Haskellには当てはまってないな
693デフォルトの名無しさん:2013/09/23(月) 00:28:12.49
Haskellは静的型付けの上にモナドで型を縛れるから
うっかりブロッキングIO使っちゃったなんてことは起こらない(コンパイルエラーで弾ける)だろうが
そんな堅苦しい言語でプログラミングしたくないな
694デフォルトの名無しさん:2013/09/23(月) 00:30:29.63
>>691
実装がC/C++ってことに何の関係があるんだ?
ターゲットにしてるのはJavascriptだろ
C/C++ではターゲットにならなかったわけだ
うまくノンブロックのプログラムが書けないから

まあ、実装もJavaScriptが多いらしいけど
695デフォルトの名無しさん:2013/09/23(月) 00:33:34.15
>>694
お前はさっきから何を言っているんだ
696デフォルトの名無しさん:2013/09/23(月) 00:33:44.77
>>676
ドカタ現場はとにかく過去の実績があるものを好む。
国内のWebシステムの多くがPHPやJava、ASPでできているんだから、それ以外を採用するはずがない。

ASP.NET(C#)ではなくてASP.NET(VB.NET)なのは俺のイメージ。
VBを採用する現場はとにかくレベルが低くてコーダーもVB専門みたいな印象が強い。
697デフォルトの名無しさん:2013/09/23(月) 00:36:12.18
>>693
でもHaskellのGHCなんかの標準のIO実装がブロッキングIOだからなあ
結局はそれで台無しになっちゃうってことなんだろうね
>>695
お前が理解できないのは多分、プラットフォームの実装に使っている言語の話と
プラットフォームがターゲットにしている言語の話の区別が
出来ていないからじゃないかな
698デフォルトの名無しさん:2013/09/23(月) 00:36:58.53
nodeの作者がGHCをハックできる程賢くなかったのを
わざわざ本人の発言を謙遜と曲解してまで
認めたくないヤツが居るのは何故だろう?ふしぎー
699デフォルトの名無しさん:2013/09/23(月) 00:37:36.58
>>693
デバッグし辛いバグが混入したままプログラムが走った感じるだろ。jk

>>696
Real World Excel
700デフォルトの名無しさん:2013/09/23(月) 00:38:05.92
>>697
なんでYesodは台無しにならなかったの?
Yesodの作者がnodeの作者よりずっと賢くて問題解決しちゃったから?
701デフォルトの名無しさん:2013/09/23(月) 00:38:21.87
>>698
だって、曲解しないと言ってる事が矛盾してるじゃん明かにw
>>692の特徴をHaskellは備えていない
702デフォルトの名無しさん:2013/09/23(月) 00:40:53.00
>>697
とりあえずjsが完璧という考えなのかそうじゃないのかはっきりしてくれ
703デフォルトの名無しさん:2013/09/23(月) 00:41:01.44
>>700
作者の懸念は、誰かがライブラリ等にその標準IOを使ってしまって
ノンブロッキングのプログラミングが
書きにくくなるってことだろ
台無しになっているかどうかは知らないけど、
なっていないとしたら、nodejsの登場によってそういう懸念を世間が
理解して、問題を避けることが出来るようになったって
だけじゃないの?
704デフォルトの名無しさん:2013/09/23(月) 00:41:38.23
フレームワーク側でノンブロッキングIOしか使えないようにユーザに強制できる場合、
既存IOがブロッキングだったとして、何か問題が起きるかな?
705デフォルトの名無しさん:2013/09/23(月) 00:41:43.52
>>702
ターゲットとして完璧だった
706デフォルトの名無しさん:2013/09/23(月) 00:43:44.33
nodeの作者はエンジニア界では賢い部類だろうけど
Haskell作ってるような連中の知能と比べたらチンカスでしょ
で、それのどこに問題が?
707デフォルトの名無しさん:2013/09/23(月) 00:44:39.17
おいドカタ。
俺はドカタを恨んでるんだからな。
ずっとドカタっいいづつけるぞ。
708デフォルトの名無しさん:2013/09/23(月) 00:44:50.30
>>704
フレームワークの外側で使われちゃったらどうしようもない
そもそもブロッキングが前提なのはIOだけじゃないらしいしね
よくわからんけど、DNSとかもそうだっていってるな
709デフォルトの名無しさん:2013/09/23(月) 00:45:36.68
>>706
何の問題もないな
少なくともこのスレの連中よりはるかに賢い
710デフォルトの名無しさん:2013/09/23(月) 00:45:36.67
> フレームワーク側でノンブロッキングIOしか使えないようにユーザに強制できる場合、

それが無理なんでしょう?
711デフォルトの名無しさん:2013/09/23(月) 00:46:56.28
>>708
Haskellの場合、mainをフレームワーク側が握ってて、
フレームワークのインターフェースがIO型を持ってなかったら
ユーザがIOを使いようが無くね?
712デフォルトの名無しさん:2013/09/23(月) 00:47:01.03
まあ、言語の普通のやり方でブロッキングするのなら、
ノンブロッキング主体の世界は作れなかっただろうね。
713デフォルトの名無しさん:2013/09/23(月) 00:50:04.96
>>711
どうだろう。
mainのシグネチャを自由に出来ないとか、そういう考え方もあるのか。
それでも二つのプログラムに分かれてしまったら無力だが。
714デフォルトの名無しさん:2013/09/23(月) 00:50:05.75
nodeのライブラリっていうのは
nodeが出来たあとに作られたんだよ。

nodeが出る以前にJavaScriptのライブラリはあったが
それらはブラウザ様なので当然I/Oライブラリは使用されていない。

つまり0からのスタート。
これがノンブロッキング主体の世界を作るのに
一番適していたんだろうね。

他の言語では世界を作れなかっただろう。
715デフォルトの名無しさん:2013/09/23(月) 00:57:25.68
>>714
libioとかlibevの話かと思ったのに
JSerアホだな
716デフォルトの名無しさん:2013/09/23(月) 00:57:39.78
なんかのアプリのプラグインを書くときの
スクリプト言語としてJavaScriptは最適なんだよな。

デフォルトで何も出来ないから、
セキュリティ的に安全。

それがベースが安全側に倒れており、何かを許可したい場合に
ライブラリを追加してあげれば良い。

言語仕様が必要十分かつ、ここまで標準のライブラリの機能が
制限されてる言語って他にないよ。
717デフォルトの名無しさん:2013/09/23(月) 00:57:40.78
>>714
それに付け加えてシングルスレッドのイベントモデルだったってのが
大きいんじゃないの?
もともとそれがやりたかったわけで
スレッドで並列処理をする他の言語では、大量の処理を並行して実行する場合に
スレッド生成のオーバーヘッドが
致命的になってしまう
718デフォルトの名無しさん:2013/09/23(月) 01:00:52.69
>>713
mainのシグネチャ云々じゃなくて、main自体はフレームワーク側で記述されて
実行されてしまってて、使う側はコールバックをフレームワークに登録するようなケースね
そのコールバックの型がIOを含まなかったらIOは使えない
719デフォルトの名無しさん:2013/09/23(月) 01:03:02.66
>>716
スクリプトに提供するAPIなんてホストがいくらでも制限できる
既存の資産が活かせなくなるが、JavaScriptだってそれは同じだ
720デフォルトの名無しさん:2013/09/23(月) 01:03:07.59
>>718
だから、mainを自分で記述できないってことでしょ?
そういうアイディアならいけたかもね
まあ、なんか直感的に後からいろいろ不都合がありそうに思えるけど
(mainが実行されちゃっててあの機能が使えないとか、後から出てきそう)
721デフォルトの名無しさん:2013/09/23(月) 01:03:33.09
PHPのように言語のコアと標準ライブラリを
ブクブク太らせて、便利にするという考えもあるんだけど、

C言語みたいに、言語のコアと標準ライブラリは
必要最小限にして、汎用性を高めるという方法もある。

JavaScriptは結果論だが、C言語をさらにシンプルにして
言語のコアとメモリ内で完結できるライブラリしか持たない言語
外部I/Oを標準で持たないという画期的な言語という見方もできる。
722デフォルトの名無しさん:2013/09/23(月) 01:04:15.89
>>716
RubyにPythonにLuaにLisp
スクリプト言語は元からバインディングさえ無ければ
勝手に制限付き環境になりますよ
723デフォルトの名無しさん:2013/09/23(月) 01:05:07.47
>>719
その制限を選ぶ作業がとんでもなく大変だろ
何を制限すればいいのか、何をすればセキュリティ的に問題ないのか
それこそ、世界中の技術者達(その中には天才クラスもいるだろう)が
何年もかけてやる作業だ
724デフォルトの名無しさん:2013/09/23(月) 01:05:35.15
>>719

> スクリプトに提供するAPIなんてホストがいくらでも制限できる

それじゃだめなんだ。

デフォルトOKで危険なものを制限する。いわゆるブラックリスト方式
デフォルトNGで安全なものだけ許可する。いわゆるホワイトリスト方式。

どちらが安全かは言うまでもないでしょう?
725デフォルトの名無しさん:2013/09/23(月) 01:08:04.38
>>721
そういう事はユーザー側がきっちりメモリ意識するようにして、
それできちんとGCもまともに掃除するようになってから言えと。
726デフォルトの名無しさん:2013/09/23(月) 01:09:58.85
Linuxにすればいい。
727デフォルトの名無しさん:2013/09/23(月) 01:10:20.00
>>725
ユーザーが問題の話は関係ない。
今は言語の話をしている。
728デフォルトの名無しさん:2013/09/23(月) 01:12:00.08
>>727
言語の話もしてるんですけどね。
729デフォルトの名無しさん:2013/09/23(月) 01:12:07.10
>>723-724
自分でやったことがあればわかるが
どっちかというとホワイトリストだよ普通
OKなモジュールを入れるだけ
少なくともnode.jsのAPIを整備する手間に比べたら無視出来る程度のオーバーヘッドだよ
730デフォルトの名無しさん:2013/09/23(月) 01:12:09.66
>>720
別に珍しくもないでしょ
731デフォルトの名無しさん:2013/09/23(月) 01:13:42.36
pythonとかimport禁止してprint関数(2系ならprint文)禁止したら
もう入出力できなくね?
732デフォルトの名無しさん:2013/09/23(月) 01:14:18.58
オブジェクト指向においてimportを禁止する意味があるのか
733デフォルトの名無しさん:2013/09/23(月) 01:14:52.51
>>729
デフォルトでI/Oモジュールも入ってるしなぁw

> 少なくともnode.jsのAPIを整備する手間に比べたら無視出来る程度のオーバーヘッドだよ
え? 既存のライブラリ全てを忘れて
全部ブロッキングなしのものに変更するんだよ?

新しいものを作るだけじゃない。
既存のものを忘れるという作業が必要。

ほぼ全部作り直しじゃないか。
こっちのほうがよっぽど大変だよ。
734デフォルトの名無しさん:2013/09/23(月) 01:15:37.71
セキュリティが気になる人はLinuxにすれば安全だよ〜

http://pc.watch.impress.co.jp/docs/2004/1021/turbo.htm
735デフォルトの名無しさん:2013/09/23(月) 01:16:35.43
>>734
あーうん、俺はクロスプラットフォーム派なんで論外
736デフォルトの名無しさん:2013/09/23(月) 01:16:42.01
>>707
就職活動したら?
737デフォルトの名無しさん:2013/09/23(月) 01:17:20.62
>>736
ドカタ必死だなw
お前が就職活動しろ。
明日はちゃんとハロワに行くんだぞw
738デフォルトの名無しさん:2013/09/23(月) 01:18:01.34
>>732
最初から必要なのだけバインドさせとけばいいんじゃないの
JSみたいに
739デフォルトの名無しさん:2013/09/23(月) 01:18:17.61
>>735
素直にWindowsしか使えないと認めなさい?
740デフォルトの名無しさん:2013/09/23(月) 01:18:20.63
今日は休みだよ〜
741デフォルトの名無しさん:2013/09/23(月) 01:18:42.96
>>738
だからそれができてないんでしょう?
742デフォルトの名無しさん:2013/09/23(月) 01:19:07.02
>>737
ぷw
743デフォルトの名無しさん:2013/09/23(月) 01:19:34.73
>>740
明日って言っただろバーカw
日をまたぐってことだ。
今日は月曜日だからな。
ドカタは曜日の感覚すら無いwww
744デフォルトの名無しさん:2013/09/23(月) 01:19:59.97
>>741
は?何が?
sandbox内でevalさせればいいだけじゃないの?
745デフォルトの名無しさん:2013/09/23(月) 01:20:27.14
>>744
それは面倒くさい。
746デフォルトの名無しさん:2013/09/23(月) 01:21:28.29
>Pythonを使っている製品あるいはソフトウェアの一覧
http://ja.wikipedia.org/wiki/Python%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E8%A3%BD%E5%93%81%E3%81%82%E3%82%8B%E3%81%84%E3%81%AF%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E4%B8%80%E8%A6%A7

拡張用にスクリプト組み込むような大層なアプリはだいたいスタンドアロンなんだからセキュリティなんてどうでもいいんだよ
node.jsもね
747デフォルトの名無しさん:2013/09/23(月) 01:22:17.96
>>744
それでブロッキング関数が
全部ノンブロッキング関数になるとでもいうの?

ファイルI/Oだけじゃない。
ネットワーク関数やデータベース関数
全てがノンブロッキングでないと意味ないからね。

結局全部作りなおさないといけないよね?
今ある資産を捨てて。
748デフォルトの名無しさん:2013/09/23(月) 01:23:46.60
>>745
JSだろうとコンテキストは実装持ちでやってること変わらんぞ。
JSONはさすがに例外だけど。
749デフォルトの名無しさん:2013/09/23(月) 01:24:15.00
そんなあなたにgevent
750デフォルトの名無しさん:2013/09/23(月) 01:24:52.14
スクリプトは知らないけど、boost::asioのブロックしない関数の一部は、
呼ぶたびにスレッド作ってブロックするAPIを呼び出してるんだよ〜
Windowsでは将来、ブロックしなくなる予定があるんだよ〜
751デフォルトの名無しさん:2013/09/23(月) 01:29:14.09
>>747
JavaScriptならそれらを新たに作らなくてもいいとでも?
100あった資産を切り捨てて0からやり直すのと
もともと0のところから始めるかの違いにすぎない
752デフォルトの名無しさん:2013/09/23(月) 01:29:50.82
>>733 >>747
せめてレス先で何話してるかは理解しようぜ。
753デフォルトの名無しさん:2013/09/23(月) 01:32:10.06
>>751
資産を捨てるのは難しいんだよ?
なぜなら言語の標準でこのライブラリを使うって
頭に叩きこまれているから。

最初から何もなくて、ブラウザのコードで
ノンブロッキングでずっとやってきた人たちと
旧来の方法がずっと身にしみてきている奴
発想を変えないといけないからね。
754デフォルトの名無しさん:2013/09/23(月) 01:33:46.51
両方普通に書けるC++11が流行ればいいと思うのであった〜
755デフォルトの名無しさん:2013/09/23(月) 01:34:07.10
たまにパフォーマンス的な理由でノンブロッキングIOをやりたいことはあるけど、
普段はブロッキングIOの方が便利でしょ
このスレでも、ノンブロッキングIOがデフォのせいで標準入出力のお題が不得意じゃんJS
756デフォルトの名無しさん:2013/09/23(月) 01:35:39.28
メッセージループ内でAsync系の読み書き呼び出しなんて、
昔から普通に使われてたよ。
昔だから分岐はswitchだったけど。
757デフォルトの名無しさん:2013/09/23(月) 01:36:43.69
>>753
現実としては間違ってないが、
プログラマの経験や実績を持ち出すならこのスレの話なんてほとんどファンタジーになっちゃうぞ?
node.jsなんて論外だぞ?
758デフォルトの名無しさん:2013/09/23(月) 01:37:00.93
altJS予言の人?
759デフォルトの名無しさん:2013/09/23(月) 01:38:41.57
SMTPサーバと通信してメールを送るSCGIプログラムを書いたけど、
ノンブロッキングで書くととても面倒な感じがした〜
見通しが悪くなる〜
760デフォルトの名無しさん:2013/09/23(月) 01:38:56.08
おい、みんな気をつけろ!
altJS予言の人がいるぞ。
お前か? お前なんだな?
761デフォルトの名無しさん:2013/09/23(月) 01:39:21.20
このスレの特定言語持ち上げ意見のほとんどは「学習コストが高い」で片が付いちゃうな
762デフォルトの名無しさん:2013/09/23(月) 01:39:44.17
epollとかkqueueとか昔からあったよね
763デフォルトの名無しさん:2013/09/23(月) 01:39:55.28
>>759
そういうのは、今はnodeのオハコだよね。
見通し良いまま書く方法が議論しつくされている。
764デフォルトの名無しさん:2013/09/23(月) 01:40:25.51
有るんじゃなくて
無いのが重要だってことが
わかってないのかな?
765デフォルトの名無しさん:2013/09/23(月) 01:41:13.72
C++がいいのです〜
766デフォルトの名無しさん:2013/09/23(月) 01:41:32.92
jsのコードが見通しが良いとか
冗談はこのスレのコードを100回読んでから言って下さい
767デフォルトの名無しさん:2013/09/23(月) 01:41:34.47
>>755
> このスレでも、ノンブロッキングIOがデフォのせいで標準入出力のお題が不得意じゃんJS

だけど、ノンブロッキング標準入出力は得意だよ?
768デフォルトの名無しさん:2013/09/23(月) 01:41:48.30
C++とかスレチだから帰れよ
769デフォルトの名無しさん:2013/09/23(月) 01:42:05.69
>>766
jsのコード、読めないんですね!?
770デフォルトの名無しさん:2013/09/23(月) 01:43:50.58
>>766
上ので納得したが、それでまた納得してしまった。
コールバックネストさせすぎで全然見通しよくねえ。
771デフォルトの名無しさん:2013/09/23(月) 01:44:04.16
前前スレだっけ?簡単なお題にJSだけ
あーだこーだと何100レスも使っててワロタわ
772デフォルトの名無しさん:2013/09/23(月) 01:45:50.34
http://root.cern.ch/drupal/content/cint

これで混ぜてもらえないでしょうか〜
773デフォルトの名無しさん:2013/09/23(月) 01:48:11.87
>>767
得意?
インラインで関数オブジェクトリテラルが書ける言語なら何でも一緒だろ
いや、JSは function(x) { } なんてクソ冗長な表記だからその中でも劣ってるか
774デフォルトの名無しさん:2013/09/23(月) 01:50:29.19
もともと JavaScript に標準入出力は入ってないだろう
ある特定の実装においてサポートされてるってだけ
775デフォルトの名無しさん:2013/09/23(月) 01:50:51.26
[](X x){ } <- c++11
776デフォルトの名無しさん:2013/09/23(月) 01:52:16.56
>>772
また懐かしい物を
777デフォルトの名無しさん:2013/09/23(月) 01:52:53.67
ちゃんと進化してるよ〜
778デフォルトの名無しさん:2013/09/23(月) 01:58:38.77
>>773
> いや、JSは function(x) { } なんてクソ冗長な表記だからその中でも劣ってるか

え? アロー関数でかけばいいじゃん?
779デフォルトの名無しさん:2013/09/23(月) 02:01:30.24
LUAが速いと書いてあるので、これで全言語を実装したらいい。
780デフォルトの名無しさん:2013/09/23(月) 02:03:24.19
シンプルなプログラムが書けたら書けたで
javascriptだと何かしら絶対文句つけるから
functionが長いとか、遅延評価じゃないとかがその定番w
このスレはjavascriptを批判することだけが目的の奴が一匹常駐してるからw
781デフォルトの名無しさん:2013/09/23(月) 02:04:01.07
>>778
この流れでnodeガン無視っすか
782デフォルトの名無しさん:2013/09/23(月) 02:04:38.37
流行ると叩かれるのは仕方ないよ〜
783デフォルトの名無しさん:2013/09/23(月) 02:05:22.84
functionがクソ冗長って意味がわからないな
タイプ数がちょっと多いだけじゃね
本質じゃないと思うが
784デフォルトの名無しさん:2013/09/23(月) 02:08:50.80
>>491がクソ冗長って意味がわからないな
タイプ数がちょっと多いだけじゃね
本質じゃないと思うが
785デフォルトの名無しさん:2013/09/23(月) 02:12:38.41
>>630がクソ冗長って意味がわからないな
タイプ数がちょっと多いだけじゃね
本質じゃないと思うが
786デフォルトの名無しさん:2013/09/23(月) 02:17:15.83
>>784
新しい名前を考える必要がある点で冗長
787デフォルトの名無しさん:2013/09/23(月) 02:21:21.17
正直まともな自動補完を用意しないから、functionが長いとかいうくだらん話が出るわけだ。

動的言語の信奉者は、動的言語には自動補完なんて不要とかガチで思っているのが怖い。
Rubyの開発者とか。
ああいう人たちは一度C#やVBで開発すれば、どうしてRubyがオワコン化しているか分かる。
788デフォルトの名無しさん:2013/09/23(月) 02:31:20.29
windowsで、GUIとDLLが短く書けるのはどれになるんですか。
789デフォルトの名無しさん:2013/09/23(月) 04:49:46.99
JSerが簡単なお題すら解くのに
多大な時間と議論が必要なのは

functionが長くてうざくて
コードの可読性を落とすのも一因だと思ってた
790デフォルトの名無しさん:2013/09/23(月) 05:21:27.90
ないないw

問題を解くだけならアロー関数でいい。
それを単純にfunctionに変換すれば今でも動く。

単にたまたま信者がいるだけ。多分そいつ一人が頑張って
問題といてる。
791デフォルトの名無しさん:2013/09/23(月) 07:57:12.75
>>787
×動的言語の信奉者は
○Smalltalk以外の動的言語の〜
792デフォルトの名無しさん:2013/09/23(月) 08:20:57.66
>>787
ある程度の言語側のサポートはやっぱり必要
もっとも優れたIDEをもつC#には delegate(int x) { } の形式のクロージャがあったのに
その後アローが導入されたよね?
JavaのGUIをIDEで作ろうとすると、IDEが生成する>>491みたいなノイズで冗談みたいに見通しの悪いコードができる
793デフォルトの名無しさん:2013/09/23(月) 10:12:21.37
Pythonも結構IDEサポート厚いけど
794デフォルトの名無しさん:2013/09/23(月) 12:15:18.53
http://www.sapphiresteel.com/Products/Ruby-In-Steel/Ruby-In-Steel-Developer-Overview
rubyのIDEならこういうのあるじゃん
俺はエディタで済んでるから使わないけど
795デフォルトの名無しさん:2013/09/23(月) 12:28:19.71
秀丸最強伝説
796デフォルトの名無しさん:2013/09/23(月) 12:29:24.34
スクリプト言語だと
IDE使う意味が無いんだよね。
797デフォルトの名無しさん:2013/09/23(月) 12:32:34.32
IDE使って出来るいろんなことが
スクリプト言語だとできないからな。
798デフォルトの名無しさん:2013/09/23(月) 12:36:50.55
シンタックスハイライト、オートインデント、補完、
リアルタイムのエラーチェック、コード全体とコードスニペットの一発起動

このくらい出来たら個人的には十分だわ
799デフォルトの名無しさん:2013/09/23(月) 12:37:54.28
>>787
仕事さがせよニート
800デフォルトの名無しさん:2013/09/23(月) 12:39:52.87
(優れた)シンタックスハイライト、(優れた)オートインデント、(優れた)補完、
(優れた)リアルタイムのエラーチェック、(優れた)コード全体とコードスニペットの一発起動

これができるのがIDEなんだけどね。

スクリプト言語だとこれかができなくなるからなぁ。
なら、テキストエディタでもいいんじゃね?ってなるよね。
801デフォルトの名無しさん:2013/09/23(月) 12:41:30.57
いまどきのIDEだと、ユニットテストを実行する際に
全体やファイル単位じゃなくて、
関数単位で実行できるんだよね。
特に追加の作業なしに。

もちろん実行するだけじゃなくて、
そこからデバッグも出来る。
802デフォルトの名無しさん:2013/09/23(月) 12:41:51.69
ここまでをまとめると、C++も混ぜてもらえるってことでいいですか〜
803デフォルトの名無しさん:2013/09/23(月) 12:42:35.23
アルゴリズム周りは、今でもエディタとfind,grep
804デフォルトの名無しさん:2013/09/23(月) 12:42:39.42
>>800
スクリプト言語か否か関係ないもんが含まれてるぞ
お前、なぜスクリプト言語じゃ出来ないか説明できないだろ
805デフォルトの名無しさん:2013/09/23(月) 12:43:55.03
型情報がないからリファクタリングできないんだろ
806デフォルトの名無しさん:2013/09/23(月) 12:45:48.02
>>804
できるかできないかじゃなくて
どっちが高度に出来るかって話。

俺でもF1レーサーでも車は運転できるが、
どちらも同じレベルで出来るわけじゃないでしょう?
807デフォルトの名無しさん:2013/09/23(月) 12:46:05.51
で、シンタックスハイライトやオートインデントやコード実行と静的型情報に
なんの関係があるんですかね?
808デフォルトの名無しさん:2013/09/23(月) 12:47:01.74
静的厨は馬鹿だなー
Javaドカタかな?
809デフォルトの名無しさん:2013/09/23(月) 12:47:52.71
>>807
静的型情報を元にメソッド調べてるんじゃないの?
気になるならIDEのコードでも調べたら
810デフォルトの名無しさん:2013/09/23(月) 12:49:06.27
>>807
例えば、テキストエディタで、JavaScriptでdelete"メソッド” に色がつくんだよね。
deleteは予約語だから色がついていいけれど、
deleteメソッドは 予約語のdeleteとは別物だから色がついてはいけないんだよ。
811デフォルトの名無しさん:2013/09/23(月) 12:49:06.85
>>808
出たよニート
812デフォルトの名無しさん:2013/09/23(月) 12:49:43.39
>>809
なにその頓珍漢な答え
全く理解できてないことだけ分かるんですけど
813デフォルトの名無しさん:2013/09/23(月) 12:50:57.62
>>810
どうでも良いけど、メソッド名に使えるようなもんは予約語じゃなくね?
予約語の定義的に
814デフォルトの名無しさん:2013/09/23(月) 12:52:08.99
>>812
暇なんだろうから自分で調べろ屑ニート
815デフォルトの名無しさん:2013/09/23(月) 12:53:03.10
構文強調やオートインデントなら動的言語と大差ない気もするな
816デフォルトの名無しさん:2013/09/23(月) 12:54:37.41
元JavaドカタがJavaの仕事がなくなって
JSに流れて来た感じの低能がスレに一匹混じってるな
817デフォルトの名無しさん:2013/09/23(月) 12:55:35.64
Javaの仕事が市場から無くなるなんて馬鹿を言えるだけでもニートだって分かるね!
818デフォルトの名無しさん:2013/09/23(月) 12:56:27.23
需要より供給が上回れば十分ありうるよ
馬鹿には理解できないかな?
819デフォルトの名無しさん:2013/09/23(月) 12:57:48.55
敢えて言うなら、動的言語の需要などない
顧客にとって動的言語であることにメリットなどない
820デフォルトの名無しさん:2013/09/23(月) 12:58:33.03
オートインデント。同じ {} でも、関数の時とハッシュの時では
インデント変えたいとかいう要望があるよね。

{を関数の定義の次の行にしたいが、if文の場合は
同じ行にしたいとか、switchは{}でくくられているが
caseでインデントしたくないとか
”ローカル変数” のカンマの前後に空白入れるとか

そういう細かい設定がIDEでは出来たりするんだ。
821デフォルトの名無しさん:2013/09/23(月) 12:59:10.64
受注開発の世界しか思い浮かばないところが
骨の髄までドカタなんだよなぁ
822デフォルトの名無しさん:2013/09/23(月) 12:59:44.46
>>820
そんなことエディタでも出来るから。
プログラム書いたことあるの
823デフォルトの名無しさん:2013/09/23(月) 13:00:37.03
はぁ。どこから受託開発が出てきたんだか。
またいつものキチガイか。
はいはい、ドカタ大嫌いなんでしたねw
824デフォルトの名無しさん:2013/09/23(月) 13:01:28.66
>>822
だから、できるできないじゃないんだって、
どっちが高度に出来るかって話。
825デフォルトの名無しさん:2013/09/23(月) 13:01:43.11
結局PHPが勝ったの?
826デフォルトの名無しさん:2013/09/23(月) 13:02:10.07
>>820
ホントお前黙ってろよ
一人だけレベル低いんだよ
827デフォルトの名無しさん:2013/09/23(月) 13:03:57.40
>>824
高度ってのが細かく設定出来るって意味ならエディタでも余裕
拡張用にスクリプト言語備えたエディタならね
828デフォルトの名無しさん:2013/09/23(月) 13:04:39.02
静的型を活かしたIDEの機能というと
安全なリファクタリング
高精度で高速なコード補完
コード解析に基づいた、設定ファイルに依存しないGUIビルダ
型やメンバのエラーをリアルタイムに検出
高精度なlint
依存関係の解析
くらいか
829デフォルトの名無しさん:2013/09/23(月) 13:05:16.18
>>824
これが、ゆとり世代か
830デフォルトの名無しさん:2013/09/23(月) 13:06:44.57
ただし、このスレのスクリプト言語厨が10分で解けるお題を解くのに
優れたIDEのサポートがあっても1週間かかるアホが
このスレに常駐してる静的厨です
831デフォルトの名無しさん:2013/09/23(月) 13:06:49.00
どれくらいIDEのインデント(フォーマッター)で
細かく制御できるかというと、これぐらい。

Java Code Style Formatter
http://i.stack.imgur.com/vomV2.png

全部載ってる画像がほしいな。
832デフォルトの名無しさん:2013/09/23(月) 13:07:23.94
バカスレw
死ねゴミ共がw
833デフォルトの名無しさん:2013/09/23(月) 13:07:39.36
>>827
> 高度ってのが細かく設定出来るって意味ならエディタでも余裕
じゃあ証拠見せて

IDEの場合の証拠は>>831に書いたから。
834デフォルトの名無しさん:2013/09/23(月) 13:07:42.07
マウスでぽちぽち設定してる姿を想像するだけで草不可避
プログラマとは思えん
835デフォルトの名無しさん:2013/09/23(月) 13:08:53.13
型が動的ってことは、処理の流れによって変数の型が変わる事があって、
IDEが型情報を元に処理を行うのが難しいとか?
836デフォルトの名無しさん:2013/09/23(月) 13:09:24.29
このスレにemacs lispとかvim scriptが貼られる展開?
837デフォルトの名無しさん:2013/09/23(月) 13:09:26.27
>>830
本業でもスクリプトで書いてると限らない
838デフォルトの名無しさん:2013/09/23(月) 13:10:04.48
>>834
設定ファイル直接いじればいいじゃんw

おまえ馬鹿なの?
839デフォルトの名無しさん:2013/09/23(月) 13:11:16.46
>>838
ただのニートに餌を与えないで下さい。
840デフォルトの名無しさん:2013/09/23(月) 13:11:47.07
マウスでポチ→左のプレビューに違いがすぐに表示

VS

設定項目名調べて、何文字か書いて保存。
適当なソースコード開いて違いを確認。


いえ、なんでもないですーw
841デフォルトの名無しさん:2013/09/23(月) 13:13:12.90
IDEは確かに便利だよ〜
でも拡張する一番簡単な方法がたいていのIDEでスクリプトなんだよ〜
842デフォルトの名無しさん:2013/09/23(月) 13:13:47.36
>>835
それはもちろんその通り
最近のVSとかだとバックグラウンドでJSを実行して型やメンバの情報を収集してコード補完するらしいが、
関数の呼び出し元を探して関数の引数まで型を推測してくれるのはまだ無いと思う
843デフォルトの名無しさん:2013/09/23(月) 13:14:01.60
>>838
得意気に画面を貼ってくるから、普段からぽちぽちやってるんだろうなーって誤解しちゃった
そうかー、ぽちぽちやるようなアホがこのスレにいるわけないよね、ゴメンごめん
844デフォルトの名無しさん:2013/09/23(月) 13:15:46.74
>>841
IDE厨ってろくにコード書けなさそうなので、
その方法で拡張することは無いんじゃないかな
845デフォルトの名無しさん:2013/09/23(月) 13:16:16.65
ポチポチ出来るときはぽちぽちやってるよ〜
846デフォルトの名無しさん:2013/09/23(月) 13:18:00.23
>>842
ブラウザのコンソールで書くのが最もよく補完してくれるよ
847デフォルトの名無しさん:2013/09/23(月) 13:18:48.58
>>846
引数の型も?
848デフォルトの名無しさん:2013/09/23(月) 13:21:28.13
動的言語のパラメータの型は絶対決まらないよ
そこが限界
849デフォルトの名無しさん:2013/09/23(月) 13:23:23.49
テンプレートのパラメータの型は絶対決まらないよ
そこが限界

とかもありそう〜
限界じゃなくて可能性と解釈してるけど〜
850デフォルトの名無しさん:2013/09/23(月) 13:26:13.43
ゆとり世代の特徴:
公式サイトを読まずに、誰かの書いたブログ記事だけで解決しようとする。
最初からubuntuで、debianやsuse,fedoraが選択肢にすら無い
エディタはgeditかnano
perlを書いたことがなくjsが唯一の選択肢
マシンのメモリは購入時で既に2GB以上
gnomeは既に死に体でKDEが唯一の選択肢だと思っている
エディタのマクロを書いたことがない。
そもそも、エディタやIDEにマクロがあることを知らない。
英語のマニュアルが読めない。
誇大広告な新しい技術に飛びつく。
851デフォルトの名無しさん:2013/09/23(月) 13:26:15.27
今時の静的言語だとジェネリック型は制約を使って型安全にするのが普通
852デフォルトの名無しさん:2013/09/23(月) 13:27:10.81
動的言語でも、いつも動的に型を変更するわけじゃないので、
動的に型を変更しないときは正しく補完してくれるって感じが良いな
853デフォルトの名無しさん:2013/09/23(月) 13:29:10.85
出来ないと言って批判するより、どうしたらできるようになるか考えたほうがいいのかもね〜
854デフォルトの名無しさん:2013/09/23(月) 13:35:55.48
>>852
具体例お願い
855デフォルトの名無しさん:2013/09/23(月) 13:37:57.74
これでできるようになるよ
http://wiki.ecmascript.org/doku.php?id=strawman:guards
ESコミュの反応は、こういう仕組みを入れることにに対しては概ね一致
実際のスタイルについてはまだまだこれから
856デフォルトの名無しさん:2013/09/23(月) 13:41:27.89
JavaScriptの世界は現実主義なんだよな。

XHTMLをやめてHTML5にしたという点にも
それは現れている。

過去を捨てるのではなく、
過去を踏まえながらどうするのが
一番最善かを考えて行動している。
857デフォルトの名無しさん:2013/09/23(月) 13:46:40.88
ESはES4以降から「Webを壊すな」を事あるごとにずっと言ってきてるよね

完全に自由じゃなくて、今を壊さずに追加する方法を考えるっていう方が、
方向性も決めやすいし、意見もまとまりやすいのはあるでしょうね
858デフォルトの名無しさん:2013/09/23(月) 13:50:10.04
>>854
こんな感じで引数を引き回しても補完できて欲しい

class A:
    def aaa(self):
        pass
def f(func):
    return g(func())
def g(x):
    x.bbb = lambda x: x
    return [x]
def h():
    return f(A)
h()[0]. # bbbは無理だけどaaaは補完できて欲しい
859デフォルトの名無しさん:2013/09/23(月) 13:53:08.42
HTMLで必要な閉じタグを書かなかったとか、
タグの対応が取れてないだとか。

そういうミスをするなといったのがXHTMLで、
やった場合どう解釈されるかを完璧に定義したのがHTML5

これすごいよな。よく出来たと思う。
間違いを完全に定義するだけじゃなく、
既存のブラウザの動きまで織り込みずみなんだぜ。

HTML5の<meta charset="utf-8">なんて感動モノだよ。
<meta http-equiv="content-type" content="text/html; charset=utf-8">
昔ながらの書き方はこう。だけど古いブラウザ(IE6等)でHTML5の書き方で正常に動くんだぜ。

古いブラウザの仕様から外れた動きを、うまく利用して優れた仕様にしちまった。
そういう考え方をする連中がJavaScriptの仕様を作ってるんだ。
860デフォルトの名無しさん:2013/09/23(月) 13:58:25.75
コメントにこの関数の返り値の型は○○です
って書くと実際の返り値がなんだろうが
コメントに書かれた型に沿って補完してくれるという
明後日な方向に進化した言語があってですね・・・

まあでも動的言語ならそんな程度の方がいいのかとも思ったり
861デフォルトの名無しさん:2013/09/23(月) 13:59:17.26
ガードは、ユーザー定義形式の適用に対して便利な文法として使われます。
それらは型として使用できますが、同様に任意の制約を適用することもできます。
変数、パラメータ宣言、関数の返す結果、プロパティ定義へ注釈をつけるために
ガードを使います。
それぞれのガードは、それを通過させるか強制するか拒絶するか決定するために、
入ってくる値、標本について承認する事を要求されます。
862デフォルトの名無しさん:2013/09/23(月) 13:59:23.60
言語?
863デフォルトの名無しさん:2013/09/23(月) 14:00:14.76
>>860
そういうのは実行時にコメントに書いていないものが
返ったりしたらエラーになって欲しいところだな。
864デフォルトの名無しさん:2013/09/23(月) 14:01:46.66
強制するっていうのは、型を変換するってことなのかな?
865デフォルトの名無しさん:2013/09/23(月) 14:09:17.05
動的に型が決まるところにガードを導入すると、例えば代入するだけで
検査が実行されるってことになって、重いから使わないほうがいいってならないのかな?
866デフォルトの名無しさん:2013/09/23(月) 14:15:33.61
>>858
余裕すぎワロタ
867デフォルトの名無しさん:2013/09/23(月) 14:15:35.22
それとも逆なんだろうか?
処理系にヒントを与えることになって最適化が進むんだろうか?
そうだとしても、こう書くと最適化されて、こう書くと実行時の負荷が増えるとか
色々考えないといけないことが増えそう〜
さらに○○らしいみたいな風のうわさを頼りに書くことが増えそう〜
868デフォルトの名無しさん:2013/09/23(月) 14:20:28.23
それは実装に依存する部分だから、これと決まることはないだろ。
869デフォルトの名無しさん:2013/09/23(月) 14:24:22.59
賢い連中が形推論を動的型に持ち込む一方で
ドカタ共はコメントに型を書く方向へ退化していたw
870デフォルトの名無しさん:2013/09/23(月) 14:26:22.51
文芸的プログラミングかな〜
可能性はあると思う〜
871デフォルトの名無しさん:2013/09/23(月) 14:26:38.51
>>858
そのコード片って具体的には、どんな場面で使うものなの?
872デフォルトの名無しさん:2013/09/23(月) 14:28:00.79
コードが貼られなくなった途端に動的型 vs. 静的型になるあたりとてもわかりやすい
873デフォルトの名無しさん:2013/09/23(月) 14:30:07.43
>>869
「一方、ロシアは鉛筆を使った。」って、雛形文を聞いたことない?
874デフォルトの名無しさん:2013/09/23(月) 14:31:01.63
文芸的プログラミングってクヌース先生の奴?
javadocとかは実装ありきだから逆な気が。
875デフォルトの名無しさん:2013/09/23(月) 14:31:04.91
AngelScript マニュアル日本語訳
http://dl.dropboxusercontent.com/u/91791736/manual/index.html


スクリプトの例を示します。
int main()
{
array<int> arr = {1,2,3}; // 1,2,3
arr.insertLast(0); // 1,2,3,0
arr.insertAt(2,4); // 1,2,4,3,0
arr.removeAt(1); // 1,4,3,0 arr.sortAsc(); // 0,1,3,4 int sum = 0;
for( uint n = 0; n < arr.length(); n++ )
sum += arr[n]; return sum;
}
http://dl.dropboxusercontent.com/u/91791736/2250/manual/doc_datatypes_arrays.html
876デフォルトの名無しさん:2013/09/23(月) 14:33:30.33
それそれ〜
877デフォルトの名無しさん:2013/09/23(月) 14:38:55.56
>>875
うげえなにこれ
878デフォルトの名無しさん:2013/09/23(月) 14:42:18.15
comment firstなDRY原則。
がコンパイラやインタプリタの実装レベルで適応された処理系ってありますか?
879デフォルトの名無しさん:2013/09/23(月) 15:03:37.17
>>873
「一方、ロシアは静的型言語を使った。」
880デフォルトの名無しさん:2013/09/23(月) 15:09:09.66
以下は、AngelScriptのsampleに含まれているソースである。C/C++とほとんど変わりの無い構文であることがわかる。ちなみに、クラス定義にはメソッドを含むことも可能。

国内人気  Ruby>=Python>>>Lua>|超えられない壁|>>>>AngelScript
テキスト処理能力  Python≒Ruby>>>>|超えられない壁|>>>>AngelScript

class ThreadArg { int count; string str; };

void main() {
for(;;) {
int count = 10;
ThreadArg a;
a.count = 3;
a.str = " B";
CreateCoRoutine("thread2", any(@a));
while( count-- > 0 ) {
Print("A :" + count + "\n");
Yield();
}
}}

void thread2(any &in arg) {
ThreadArg @a;
arg.retrieve(@a);
int count = a.count;
string str = a.str;
while( count-- > 0 ) {
Print(str + ":" + count + "\n");
Yield();
}}
http://wikiwiki.jp/tnwpg/?%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%B8%C0%B8%EC
881デフォルトの名無しさん:2013/09/23(月) 15:12:07.19
>>871
ネストされた関数呼び出しの中で生成されたインスタンスが
戻り値で返ってきた場合の例のつもり
素人考えだけど、補完が難しそうかなって
882デフォルトの名無しさん:2013/09/23(月) 15:13:55.69
>>880
コアな部分に携わるゲームプログラマが開発に集中するために使うスクリプトだろ
似たような言語のどうでも良いノウハウを掻き集める余裕ってweb開発ぐらいじゃないの?
883デフォルトの名無しさん:2013/09/23(月) 15:20:18.58
これ使うならC/C++で良いです
884デフォルトの名無しさん:2013/09/23(月) 15:21:37.37
今日もドカタいじめるの楽しいなw
885デフォルトの名無しさん:2013/09/23(月) 15:28:22.70
>>883
馬鹿杉。
コンパイル時間かんがえたら
886デフォルトの名無しさん:2013/09/23(月) 15:29:25.92
>>884
脳内プログラマ乙
887デフォルトの名無しさん:2013/09/23(月) 15:33:27.06
>>885
それだ! altJSの欠点
コンパイル時間がかかる。

普通にJavaScriptで書いたほうがいいな。
後数年もすりゃアロー関数も普通に使えるようになり
最強の言語になるだろう。
888デフォルトの名無しさん:2013/09/23(月) 15:35:11.28
>>885
「コアな部分に携わるゲームプログラマが
開発に集中するために使うスクリプト」
じゃなかったの?
889デフォルトの名無しさん:2013/09/23(月) 15:37:02.54
つーかさ、コード修正するたびに
10分近くもコンパイルに待たされるわけで、
よくそんなので開発できるよね?
理解できない。
890デフォルトの名無しさん:2013/09/23(月) 15:39:05.10
修正の度に10分てどんなクソ設計でやってんだよ。
891デフォルトの名無しさん:2013/09/23(月) 15:41:09.46
>>887
translaterレベルのコンパイル時間なんて気にする必要ないんじゃない?

>>888
c/c++プログラマが学習コスト無しで、ゲーム内のAIなんかを記述するもの
インタプリタだからコンパイル時間不要
何が不思議なの?

>>890
脳内プログラマ乙
892デフォルトの名無しさん:2013/09/23(月) 15:41:23.26
クソ設計? 有名プロダクトだけど?
makeしてみろよ。
10分ぐらいかかるからさ。
893デフォルトの名無しさん:2013/09/23(月) 15:44:23.96
テスト回しながらやってんだから結局時間かかるだろ。
それにプロコンパイルさせてdistccすりゃ相当に短縮される。
脳内C++er乙。
894デフォルトの名無しさん:2013/09/23(月) 15:44:25.71
CINTは C/C++スクリプトの処理を目的とした C/C++インタプリタです。
CINTは ANSI Cの85%、C++の95%をカバーしており、ANSI Cで書かれていて、自分自身の解釈実行もしっかりでき、その解釈実行バージョンもプログラムを実行できます。
http://sourceforge.jp/projects/freshmeat_cint/


// Minimal ROOT based Qt example
#include <qapplication.h>
#include "TGraph.h"
#include "TQtWidget.h"
#include "TCanvas.h"

int main( int argc, char **argv ) {

QApplication *app = new QApplication(argc, argv);
TQtWidget *MyWidget= new TQtWidget(0,"MyWidget");
// Create any other Qt-widget here
MyWidget->show();
MyWidget->GetCanvas()->cd();
TGraph *mygraph;
float x[3] = {1,2,3};
float y[3] = {1.5, 3.0, 4.5};
mygraph = new TGraph(3,x,y);
mygraph->SetMarkerStyle(20);
mygraph->Draw("AP");
MyWidget->GetCanvas()->Update();
app->exec();
return 0;
}
http://root.cern.ch/download/doc/ROOTandQt.html
895デフォルトの名無しさん:2013/09/23(月) 15:45:08.87
ビルドに時間がかかるのは確かにつらい〜
最近のIDEは書いてる端から添削してくれる〜
896デフォルトの名無しさん:2013/09/23(月) 15:45:21.88
訂正
☓ プロコンパイル
○ プリコンパイル
897デフォルトの名無しさん:2013/09/23(月) 15:50:45.12
>>893
c++プログラマだなんて一言も言ってないけど、あんなもの常識。

>>894
それって、NASAとかCERNがシミュレーション書くために書いた処理系で、
ろくにメンテもされてないでしょ。今は確か、chあたり使ってんじゃない?
というか、組込み用途に出来たものじゃないし、最適化もウンコな実装を
誰が製品用途に使うのか不思議で堪らない
898デフォルトの名無しさん:2013/09/23(月) 15:51:50.92
スクリプト言語でも、組み込みドライバぐらいかけますってばw
899デフォルトの名無しさん:2013/09/23(月) 15:53:32.83
>>897
まともに知らずに語ってたの?
脳内プログラマー乙。
900デフォルトの名無しさん:2013/09/23(月) 15:53:46.51
組込みってembededって意味でなくって、スクリプト用途って意味
901デフォルトの名無しさん:2013/09/23(月) 15:54:55.13
>>899
まともに知ってるはずのあんたのレスは
なんで中身が全くないの?

お〜か〜し〜い〜なぁ〜(笑)
902デフォルトの名無しさん:2013/09/23(月) 15:55:16.06
>>899
ニート乙
903デフォルトの名無しさん:2013/09/23(月) 15:56:51.95
>>889
そういうの俺も疑問に思ってた頃もあったけど
アルゴリズムを考える時間 >>>> コンパイル時間

な奴らだから問題ない

同じように冗長な言語を使っていても
アルゴリズムを考える時間 >>>> ソース記述する時間

な奴らだから問題ない

この手の奴らは圧倒的に思考が遅い
904デフォルトの名無しさん:2013/09/23(月) 15:58:47.17
>>901
静的言語は一度コンパイルさせれば、修正にはたいして時間かからないよ。
スクリプトで書く程度の内容で、毎回コンパイルに時間がかかるということは、
上位がそのコードに依存し過ぎて、多岐にわたった影響があるという事。
つまり設計が悪い。
905デフォルトの名無しさん:2013/09/23(月) 16:00:49.52
>>904
ヒント:JSPはインタプリタ
906デフォルトの名無しさん:2013/09/23(月) 16:02:15.07
C++の場合は、テンプレートマジックに魅せられて翻訳単位を分割できなくなった
経験ある人が多いと思う〜
907デフォルトの名無しさん:2013/09/23(月) 16:08:19.03
テンプレート遅いよね。
インスタンス別にオブジェクト分ければいいのにね。
908デフォルトの名無しさん:2013/09/23(月) 16:12:13.82
>>907
なにそれ、objective-c?
909デフォルトの名無しさん:2013/09/23(月) 18:27:50.57
コンパイルが遅く、実行が速い〜
910デフォルトの名無しさん:2013/09/23(月) 18:41:57.22
基本的に動的言語の方が使い手のスキルが高いから(関数型言語を除く)
話が噛み合ってないね
最後は各自が感想を述べて終わってる
911デフォルトの名無しさん:2013/09/23(月) 19:55:37.22
DynamicInvokeがあるから、それに対応した言語ならつぶし効くのかなと、javaでかきとうない。
912デフォルトの名無しさん:2013/09/23(月) 20:53:22.74
このスレの奴らは自画自賛する傾向にあるあるからこの上なくキモい
913デフォルトの名無しさん:2013/09/23(月) 21:14:53.09
Dropboxは全部Pythonで信頼性の高いソフトウェアを作った

http://www.publickey1.jp/blog/13/dropboxpythonpycon_apac_2013.html
http://www.publickey1.jp/blog/13/dropboxpythonpycon_apac_2013_1.html

> 大規模なPythonでの開発。
> Dropboxでは、サーバとクライアントのコードをまとめてて93万7707行の規模になっています。
914デフォルトの名無しさん:2013/09/23(月) 21:20:25.91
Python 2らしいぞ
おれ迷ってる。せっかくPython 3をインストールしたのに
915デフォルトの名無しさん:2013/09/23(月) 21:35:38.82
そりゃDropboxの開発を始めた当初にPython3を使う選択はありえなかっただろうから仕方ない
今更移行しようと思ったらアホみたいなコストがかかるわけで
それに見合ったメリットがあるとは思えん
916デフォルトの名無しさん:2013/09/23(月) 21:52:55.39
Pythonで93万行もかけてあんなゴミ作ったのかよ・・・・

Linux C/アセンブラ 1700万行
Rails Ruby 10万行
jQuery JavaScript 1万行



Pythonはゴミだな
917デフォルトの名無しさん:2013/09/23(月) 21:57:40.89
むしろjQueryみたいな小さなライブラリに1万行も必要な時点で
JSのウンコさが際立っている
918デフォルトの名無しさん:2013/09/23(月) 22:08:01.94
>>917
jQueryは大きいライブラリだと思うけど?
っていうか、じゃあ同じものを実装してみてというだけの話なんだが、
まあ自分にできないことを偉そうに言うのは恥ずかしいよね。
919デフォルトの名無しさん:2013/09/23(月) 22:12:31.07
大きさを競いだした!
920デフォルトの名無しさん:2013/09/23(月) 22:17:52.98
jQueryはコメントが腐るほど書かれているし、IE678というゴミの対応を廃止したら1000行減ったらしい
921デフォルトの名無しさん:2013/09/23(月) 22:18:57.37
心配するな
DropboxもRailsもjQueryも、お前らの作るゴミ作品に比べたら
遥か雲の上の存在だ
お前らが比べてどうこう言える代物じゃない
922デフォルトの名無しさん:2013/09/23(月) 22:23:08.57
>>921
俺達の作品がゴミならその素材のゴミなんじゃないの
923デフォルトの名無しさん:2013/09/23(月) 22:29:29.11
JSはマジでコールバック地獄で可読性最悪だから
1万行も書いたら体感的にすげー巨大な印象になるだろうな
924デフォルトの名無しさん:2013/09/23(月) 22:32:36.24
>>908
テンプレートのインスタンス化と、objファイルの話
925デフォルトの名無しさん:2013/09/23(月) 23:30:12.79
jQueryに嫉妬してるのかw
926デフォルトの名無しさん:2013/09/23(月) 23:31:51.37
>>920
ゴミ対応(ブラウザ間の差異吸収)こそがjQueryの本質だと思うが
IE678がゴミであることは否定しないが
927デフォルトの名無しさん:2013/09/23(月) 23:37:06.59
>>926
それは認識が甘い。

JavaScriptというかDOM操作に関数型言語の
力を加えたのがjQueryの本質。

セレクタを使って、階層構造であるDOMを
リストの形に置き換えることで、関数型の操作が
できるようにしている。
928デフォルトの名無しさん:2013/09/23(月) 23:39:46.42
ライブラリに対して嫉妬ってどういう意味?
どんな発想したらそんな意味不明な発言出てくるんだ?
929デフォルトの名無しさん:2013/09/23(月) 23:40:50.07
なんだ、またJS馬鹿が暴れてるだけか
930デフォルトの名無しさん:2013/09/23(月) 23:40:56.81
今はブラウザ間の互換性も高くなって、
セレクタエンジンもDOMに標準搭載されている。
(getElementsBySelector)

それでもなおjQueryが優れているのは
全てのa要素に対してclickイベントを割り当てるという
操作をjQueryならループ無しに記述できる所。
getElementsBySelectorを使ってもそれだけでは実現できない。
931デフォルトの名無しさん:2013/09/23(月) 23:43:22.10
getElementsBySelectorじゃなくてquerySelectorだし、
forEachが使える今2,3行の関数作れば綺麗に同じことができるよ
932デフォルトの名無しさん:2013/09/23(月) 23:45:30.32
・関数型風DOM操作ライブラリのjQuery
・関数型風汎用ライブラリのunderscore
・アロー関数
・yield

この4つが揃った時、JavaScriptは
最強のスクリプト言語になりそう。
あ、一番目はDOM使わないなら不要だけどw

今言われてる欠点は下二つで
もうすぐ解決しようとしてるよね。
933デフォルトの名無しさん:2013/09/23(月) 23:47:19.16
>>931
querySelectorだったか。普段使わないもんでなw

で、functionですら長いと言われているのに
forEachなんか使うのはもってのほかだってw
2,3行の関数作るよりも
jQueryを一行読みこめばそれで、
もっと多くの事ができるようになるんだし。
934デフォルトの名無しさん:2013/09/23(月) 23:47:55.48
>>926
jQuery2.0からはゴミに対応することはやめたらしいよ
935デフォルトの名無しさん:2013/09/23(月) 23:48:03.28
>>931
> forEachが使える今2,3行の関数作れば綺麗に同じことができるよ

そこからオレオレライブラリが生まれるんですよね。
936デフォルトの名無しさん:2013/09/23(月) 23:50:39.89
jQueryを読み込むことすら憚れる場合はどうするの?
かーっ!jQueryないと辛いわ−!かーっ!
とか周りに撒き散らしてるの?
937デフォルトの名無しさん:2013/09/23(月) 23:52:28.09
>>934
なんかわざと不正確に書いてるようだから
注釈入れとくわ。ごめんなw

jQuery は1.9系 と2.0系に別れた。
別れたと言っても基本的なコードは同じで
提供する機能は1.9系と2.0系で完全に同じ。

そして今後数年は1.9系と2.0系の開発は
並行して進んでいく。

何が違うのかというと古いブラウザへの対応のみ。

よくある「新しいバージョンでは古いブラウザへの対応は終了。
もう古いブラウザ用の開発は行いません」とはわけが違う。
古いブラウザへの対応は続くが、バージョン番号が違うという話。
938デフォルトの名無しさん:2013/09/23(月) 23:54:02.80
>>936
> jQueryを読み込むことすら憚れる場合はどうするの?

しらん。

Perl、Ruby、PHP、Pythonを使うことすら
憚られる場合はどうするの?って聞き返したいぐらい。

知らんって言うしか無いだろw
939デフォルトの名無しさん:2013/09/23(月) 23:54:23.24
それでjQuery使うと上の糞コードが綺麗になるの?
940デフォルトの名無しさん:2013/09/23(月) 23:56:21.72
>>939
上のっていうのがさっぱりわからんが、
ライブラリを使える場面では、
ライブラリを使わないことに比べて綺麗になるのが
一般的と、当たり前のことを言っておこう。

何となくお前は、どんな場面でも使える
銀の弾丸的な最強のライブラリが存在するって言いかねないからw
941デフォルトの名無しさん:2013/09/23(月) 23:58:37.65
>>940
さっきからコードも書かずにさいきょうのげんごと言い張ってるのがお前だろw
どうしたんだよw何予防線張り始めてるのw
942デフォルトの名無しさん:2013/09/24(火) 00:01:15.74
>>941
え? どれの話?
943デフォルトの名無しさん:2013/09/24(火) 00:02:22.35
jQueryの話してたんじゃないの?
言語の話? なんかいろいろごっちゃになってない?
944デフォルトの名無しさん:2013/09/24(火) 00:04:00.52
>>932
自分のレスすら忘れてるのかよw
945デフォルトの名無しさん:2013/09/24(火) 00:05:52.53
>>944
ふん、やっぱりそうか。

> ・関数型風DOM操作ライブラリのjQuery
> ・関数型風汎用ライブラリのunderscore
> ・アロー関数
> ・yield
>
> この4つが揃った時、JavaScriptは
> 最強のスクリプト言語になりそう。

この4つってちゃんと書いていても、jQueryだけだと
読み違えるんだ。

そういうレベルの人だろうと思ったとおり。
946デフォルトの名無しさん:2013/09/24(火) 00:10:19.96
>>945
話が噛み合ってない
947デフォルトの名無しさん:2013/09/24(火) 00:12:49.06
取り敢えずこの流れ一流JSerの俺からしたらどちらの意見もおかしいから
次スレには持ち越すなよ
948デフォルトの名無しさん:2013/09/24(火) 00:17:17.36
>>946
じゃあ前が噛みあわせろよ。

先に言ったのは4つそろったら
最強のスクリプト言語なるといった
俺の方だよ。

俺にレスするなら、お前が噛み合わせろ
949デフォルトの名無しさん:2013/09/24(火) 00:35:02.38
配列を操作したら関数型風って、関数型の本質を完全に取り違えてるな
950デフォルトの名無しさん:2013/09/24(火) 00:46:16.49
そして、オレオレ関数型の定義を>>949が始めます(苦笑)
951デフォルトの名無しさん:2013/09/24(火) 00:50:13.63
■ 関数型プログラミング in Javascript
Functional JavaScript https://gist.github.com/ympbyc/5564146
Functional Programming in 5 Minutes http://slid.es/gsklee/functional-programming-in-5-minutes
Pure, functional JavaScript http://cjohansen.no/talks/2012/sdc-functional
Partial Application in JavaScript http://msdn.microsoft.com/en-us/magazine/gg575560.aspx
952デフォルトの名無しさん:2013/09/24(火) 01:07:25.06
キチガイばっかり
953デフォルトの名無しさん:2013/09/24(火) 01:14:50.78
foreach ( box in boxes ) {
foreach ( file in box.getfiles() ) {
foreach ( list in file.getlists() ) {
print list.header
}
}
}



print boxes.getfiles().getlists().header

って書けたら、それはとってもうれしいなって
eachやmapなしってのはさすがに変態かねぇ
954デフォルトの名無しさん:2013/09/24(火) 01:29:37.77
変態ですね〜
955デフォルトの名無しさん:2013/09/24(火) 08:29:03.21
真面目な話、jQueryって普通に手続き型スタイルのライブラリだよね
956デフォルトの名無しさん:2013/09/24(火) 08:50:27.21
違うよ
957デフォルトの名無しさん:2013/09/24(火) 09:24:39.08
関数型言語が大得意にしてる無限リスト・遅延ストリームのお題に
グチグチ文句つけた挙句、時間かけて出てきたコードもクソだったので
JSerが関数型云々言っても全く信用出来なくなった
958デフォルトの名無しさん:2013/09/24(火) 11:00:03.93
クソなコード書いて悪かったね
959デフォルトの名無しさん:2013/09/24(火) 15:52:33.14
geekってのは生産者なのか消費者なのか
960デフォルトの名無しさん:2013/09/24(火) 16:03:16.40
javaとjavascriptの重要性が強調されるなかで、
nashornが諸手を挙げて優遇されないところに、
言語としてのjavascriptに構文上の限界を感じる。
961デフォルトの名無しさん:2013/09/24(火) 17:09:46.26
触っちゃいけないタイプのキチガイが増えたね
962デフォルトの名無しさん:2013/09/24(火) 17:22:03.93
規制解除で出てきたんだろうな
963デフォルトの名無しさん:2013/09/24(火) 20:18:36.12
底の浅いJS推しが増えて、タイトル改悪したスレが立つようになった頃から
ずっと変な奴が住み着いてるよ
964デフォルトの名無しさん:2013/09/24(火) 20:49:55.23
宣言を改悪されるくらいなら宣言しないほうがマシという考え方がある
965デフォルトの名無しさん:2013/09/24(火) 21:36:08.21
>>960
構文上の限界を、具体的に言えないでしょ?w
無理矢理な屁理屈つけるのやめなよ
恥ずかしいから。
966デフォルトの名無しさん:2013/09/24(火) 22:17:38.87
次からJSは抜きで。
コードは書けんわ、屁理屈こねるわ、
糞の役にも立たんくだらん仕様談義でレス浪費するわでかなわんわ
967デフォルトの名無しさん:2013/09/24(火) 22:33:52.73
>>965
protectやprivate,アクセッサ、オペレータのオーバーロード辺りすらないじゃん
rubyとjavascriptの2つを同時に選択できるとき、わざわざjavascriptでOOPなコードなんて書きたくないし
コーディング規約のレベルでOOPなコードが書けても、そんな規約なんか覚えたくないでしょ?
968デフォルトの名無しさん:2013/09/24(火) 22:42:40.03
アクセサはあるだろ
どっかのJS厨がほざいてる夢物語じゃなくて今現実に十分使えるぞ
969デフォルトの名無しさん:2013/09/24(火) 23:01:15.29
>>966
コード出てるだろ。
なんで自分に都合の悪いことは
見えないんだろうな。

そもそもお前がしきった所で
誰もいうことは聞かない。
970デフォルトの名無しさん:2013/09/24(火) 23:03:25.45
>>967
JavaScriptはプロトタイプベースのオブジェクト指向。

っていうかそういうなら、同じ理由で
Perlも当然、アウトなんだよな?

privateない。オブジェクト指向じゃない。
971デフォルトの名無しさん:2013/09/24(火) 23:17:57.14
>>969
お前はどれ書いたの?
972デフォルトの名無しさん:2013/09/24(火) 23:21:34.98
>>971
どれか一つ。どれであるかは意味があるとは思わないので答えない。

で、この質問は重要な事なのか?
973デフォルトの名無しさん:2013/09/24(火) 23:22:37.56
ES6 private
ES5 アクセサ
ES7 演算子オーバーロード
974デフォルトの名無しさん:2013/09/24(火) 23:26:44.86
>>972
具体的に答えたら、「あ、それ俺が書いたよ」ってヤツが出てきちゃうもんね
でもそうやってぼかした答えなら大丈夫だね
975デフォルトの名無しさん:2013/09/24(火) 23:28:16.95
>>974
あぁ、それが魂胆か。

たしかに、偽物が「俺が書いたやつだ」っていう可能性あったな。
ぼかして正解だったようだ。
976デフォルトの名無しさん:2013/09/24(火) 23:29:25.83
意図がわからない質問は罠だと思ったほうがいいね。
977デフォルトの名無しさん:2013/09/24(火) 23:30:40.87
自分はこのスレは
>>78,126
書いた
978デフォルトの名無しさん:2013/09/24(火) 23:31:00.27
自演が激しすぎてもう・・
979デフォルトの名無しさん:2013/09/24(火) 23:33:50.25
>>977
くそこーどwwwww

これでいいですか?
お前がやるんだろうなと
思った低能な行動w
980デフォルトの名無しさん:2013/09/24(火) 23:35:59.20
新しいお題振ってくれるなら助かるけどさ、
ずっどただ喧伝してるだけならほんともう出て行ってもらえませんかね
981デフォルトの名無しさん:2013/09/24(火) 23:37:43.15
>>979
クソコードなのは自他ともに認めてるよ
でも、ちゃんとJSも書いたよ
勿論代表としてじゃなくて、1つの例として書いたから、
他のJSコードがどんどん出てきて埋もれるのが本望だったけど
982デフォルトの名無しさん:2013/09/24(火) 23:37:54.06
自分でお題出せばいいだろ。
なんのこいつ?
983デフォルトの名無しさん:2013/09/24(火) 23:38:49.97
>>981
別にお前にどのコードを書いたのか聞いてねーし、
答えたからってどうすりゃいいのさ?
知らんよ。
984デフォルトの名無しさん:2013/09/24(火) 23:41:59.44
>>983
自分がいる限りちゃんとお題に対してのJSコード書き続けるから
JavaScriptを認めてねってこと
985デフォルトの名無しさん:2013/09/24(火) 23:42:30.61
>>982
どういう解釈したらお題を出せって言ってる事になるのさ・・
986デフォルトの名無しさん:2013/09/24(火) 23:43:10.37
>>985
だから、このスレにいたいなら
お題を出せって、俺が言ってるんだよ。
987デフォルトの名無しさん:2013/09/24(火) 23:44:38.28
>>986
もう意味わかんねえよ
ほんと疲れるわあんた
988デフォルトの名無しさん:2013/09/24(火) 23:45:58.69
>>987
お前が、難しく考えるからだろw

2ちゃんねるは誰でも自由に参加できる掲示板

以上。
989デフォルトの名無しさん:2013/09/24(火) 23:49:09.12
お題:2^32までの回文数の数を計測しなさい
990デフォルトの名無しさん:2013/09/24(火) 23:54:29.12
>>989
補足:自然数でお願いします
991デフォルトの名無しさん:2013/09/24(火) 23:54:35.79
また言語は関係ない問題か。
アルゴリズム考える問題じゃねぇか。
まあいいけどさ。
992デフォルトの名無しさん:2013/09/24(火) 23:55:08.19
クズだなほんと・・
993デフォルトの名無しさん:2013/09/24(火) 23:56:01.83
なんか実装あったよ。参考まで。
http://spinda2.blog48.fc2.com/blog-entry-465.html
994デフォルトの名無しさん:2013/09/24(火) 23:56:37.52
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1176583026
3桁の数値の積から回分数を求めるなら、http://ideone.com/OHyjx
任意桁の数値の積から回文数を求めるなら、http://ideone.com/O9rmn
総当たりで試しているのでもう少し効率の良いアルゴリズムに改善する余地はあるかもしれません。
995デフォルトの名無しさん:2013/09/24(火) 23:59:33.41
次スレどっち?
996デフォルトの名無しさん:2013/09/25(水) 00:33:27.78
42948 + 99999 - 9 で 142938個 ?
997デフォルトの名無しさん:2013/09/25(水) 01:15:35.14
定数式で出ちゃいそうだな
998デフォルトの名無しさん:2013/09/25(水) 01:32:28.34
JSerの考えつくお題なんてせいぜいそんなもんだろう
999デフォルトの名無しさん:2013/09/25(水) 01:33:54.37
埋め
1000デフォルトの名無しさん:2013/09/25(水) 01:39:54.80
本当にJavascriptを使っている人が憎くて憎くてたまらない病気の人が
一人いるみたいだね
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。