トップページ⇒tech
1001コメント293KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2013/09/08(日) 21:19:21.50
前スレ

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

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

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

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

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

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

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

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

C99以下の言語。
0054デフォルトの名無しさん2013/09/17(火) 02:17:30.99
逆に、C/C++からLLのライブラリも呼べる
0055デフォルトの名無しさん2013/09/17(火) 02:19:24.65
evalが嫌なら構文解析やASTなんかを使わにゃならんだろうが
そりゃeval使ったほうがええな
0056デフォルトの名無しさん2013/09/17(火) 02:21:24.41
evalで作った関数はJITも効くしこういうケースでは有効。
0057デフォルトの名無しさん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')))
0058デフォルトの名無しさん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))))
0059デフォルトの名無しさん2013/09/17(火) 10:16:51.32
Googlemapsについて、どこで質問していいのかわからなかったので、ココで・・・。

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

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

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

スレ違いかもしれませんが、他の方のところも同じ様な連絡はなかったでしょうか?
https://developers.google.com/maps/faq?hl=ja#tos_commercial
↑を見る限り問題なさそうなんですが・・・。
0060デフォルトの名無しさん2013/09/17(火) 10:34:33.81
>>59
Web制作板へ逝って、そこで質問汁
ここはスレ違いの板違いだ
0061デフォルトの名無しさん2013/09/17(火) 10:53:05.17
>60
了解しました。
0062デフォルトの名無しさん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秒
0063デフォルトの名無しさん2013/09/17(火) 13:10:42.37
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::
0064デフォルトの名無しさん2013/09/17(火) 13:28:23.56
>>59
企業からの圧力なんてあるんだ
こういうのって、google以外のフリーのマップ使えるんだっけ?
0065デフォルトの名無しさん2013/09/17(火) 13:29:47.22
>>59
企業からの圧力なんてあるんだ
こういうのって、google以外のフリーのマップ使えるんだっけ?
0066デフォルトの名無しさん2013/09/17(火) 14:08:12.24
>>59
利用規約の第何条第何項に違反しているのか問いただせ。
まさかとは思うが「ゼンリンの方から来ました」じゃないよな?
0067デフォルトの名無しさん2013/09/17(火) 14:39:39.29
GoogleMapsはアクセス数が規定値未満なら無料
それ以上はGoogleにお金を払う
ゼンリン云々は120%詐欺だから無視
0068デフォルトの名無しさん2013/09/17(火) 14:44:19.21
「座標を指定してGoogle Mapを表示」って、すごくありきたりな使い方
裁判沙汰になったらGoogleへの著作権侵害を第三者が訴えるのかな?
perlですらも商標ゴロに付きまとわれた過去があるんだし、
日本の大手企業を騙るインテリヤクザとかの奇妙な存在ってのも懸念したら?
0069デフォルトの名無しさん2013/09/17(火) 15:52:02.90
googlemapsの件ですが、あっちのスレに書き込む前に解決しました。
結局ゼンリンの担当者の勘違いって事で。
どうもマップのスクショをイメージとして貼り付けてると思ってたらしくて。

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

send + more = money
apple + grape = cherry
両方合わせて3秒程度
0072デフォルトの名無しさん2013/09/17(火) 16:36:37.81
>>71
おいPythonじゃねーじゃ・・Pythonだ
0073デフォルトの名無しさん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速いな
0074デフォルトの名無しさん2013/09/17(火) 18:46:49.74
>>71
関数型言語っぽくて良い
0075デフォルトの名無しさん2013/09/17(火) 19:33:22.26
JSがゴミすぎる
やはり周回遅れの劣等言語か
0076デフォルトの名無しさん2013/09/17(火) 20:08:40.92
誰かジョンタイターの予言を信じる奴いる?
確か、東北半分ぐらいが住めなくなって、首都が島根。
プログラム言語はMaybeが含まれるものが主流ってヤツ。
0077デフォルトの名無しさん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秒
0078デフォルトの名無しさん2013/09/17(火) 21:38:18.54
JavaScriptで書いてみた
Rubyの3.6倍時間かかる
http://ideone.com/cm0Lup
0079デフォルトの名無しさん2013/09/17(火) 21:46:02.56
やっぱりJSはひでえな。
速度もそうだが何この原始時代のコード……
0080デフォルトの名無しさん2013/09/17(火) 21:52:27.66
JSはそんな悪い言語じゃないんだぜ
Chromeという前提条件つきであればそこらのLLを越えて爆速だし
0081デフォルトの名無しさん2013/09/17(火) 21:53:25.22
お、おう
0082デフォルトの名無しさん2013/09/17(火) 22:05:45.02
>>79
それは書いた奴が悪いだけ。
0083デフォルトの名無しさん2013/09/17(火) 22:07:51.07
>>80,82
よろしく
0084デフォルトの名無しさん2013/09/17(火) 22:07:54.36
煽るぐらいならスルーしろよ
0085デフォルトの名無しさん2013/09/17(火) 22:09:48.83
一番にコードを書いたのに
同じJSerからも批難される>>78哀れ
0086デフォルトの名無しさん2013/09/17(火) 22:10:03.09
>>77
空行が少ないからすごく読みにくいな。
0087デフォルトの名無しさん2013/09/17(火) 22:13:38.26
>>77
まあこういうのは少なくとも2chに貼るもんじゃないだろうね
0088デフォルトの名無しさん2013/09/17(火) 22:13:48.87
JSerはJS最強を唱える奴ほどコード書けないという法則があるよね
コード書けるJSerは欠点も知ってるから最強を唱えない
0089デフォルトの名無しさん2013/09/17(火) 22:17:45.47
>>78
これ実行すると1GBもメモリ食うんだけど……
バカじゃないの?
0090デフォルトの名無しさん2013/09/17(火) 22:24:19.81
メモリはVM入れて16MBまでね。
0091デフォルトの名無しさん2013/09/17(火) 22:43:14.28
最近オブジェクトにオブジェクトを合成してプロパティーを追加する
こんな演算子があったらいいなと思ってるんだけどある言語ある?

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

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

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

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

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

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

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

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

timeコマンドでおおざっぱに計測して、0.15秒程度
Pythonの起動時間のほうが気になるかもしれない
0121デフォルトの名無しさん2013/09/18(水) 01:07:14.22
js素直に再帰書いたら激遅すぎて終わらない
やっぱり後でevalのがいいのか
0122デフォルトの名無しさん2013/09/18(水) 01:21:27.47
>112,113
文字列連結はV8の十八番中の十八番
http://nothingcosmos.blog52.fc2.com/blog-entry-155.html
0123デフォルトの名無しさん2013/09/18(水) 01:27:00.07
>>104の時間はどうだ?
あと速度はマシン性能にも依存するから同一マシンで計るなりしないと
処理系比較としては正確でない。
0124デフォルトの名無しさん2013/09/18(水) 01:27:10.22
逆じゃないか
JSは言語としてはいまいちだが、処理系は極めて優秀
0125デフォルトの名無しさん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
0126782013/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
0127デフォルトの名無しさん2013/09/18(水) 07:19:18.04
なんという力技…
0128デフォルトの名無しさん2013/09/18(水) 08:57:07.20
読む気失せた
0129デフォルトの名無しさん2013/09/18(水) 09:45:28.05
mod2とmod3での条件を求めておけば速いのでは。
文字の重複がないとあまり意味なさそうだが。
0130デフォルトの名無しさん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/
0131デフォルトの名無しさん2013/09/18(水) 11:58:57.46
GIGAZINE 編集者ってアホやろ
0132デフォルトの名無しさん2013/09/18(水) 12:41:33.25
Pythonやymlのインデントブロックってさ、一見良さげだけど、ブロックを締める要素がないから、なんか締まりが悪いよな
0133デフォルトの名無しさん2013/09/18(水) 12:45:36.48
意味のないendを延々と繰り返す締りの悪い言語よりマシ
0134デフォルトの名無しさん2013/09/18(水) 13:05:18.96
インデントは、自信ない。深くなるほど、ますます自信がなくなる
0135デフォルトの名無しさん2013/09/18(水) 13:07:36.39
endに意味がないとか言ってるやつってブロックって概念を知らないアセンブラーですか?
0136デフォルトの名無しさん2013/09/18(水) 13:15:52.51
「意味」という言葉を正確に使えないだけw
0137デフォルトの名無しさん2013/09/18(水) 13:34:14.26
>>123
いちれんのPythonのコードは全パターンを検索しているわけではないから
速度出たところで「ふーん。早く最初の答えが見つけられるね」以上の意味はないよ。
速度を比べるなら少なくともアルゴリズムは統一しないと比較にならない。
0138デフォルトの名無しさん2013/09/18(水) 13:34:54.02
>>126
前より大分速くなったみたいだけど、まだV8で
AOMORI+SAPPORO=FUKUOKA
に50秒ぐらいかかるな、うちの環境だと
>>120のPythonだと0.05秒
0139デフォルトの名無しさん2013/09/18(水) 13:37:53.14
>>137
ためしに
AOMORI+SAPPORO=FUKUOKAを全部回したら>>120は0.8秒

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

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

遊びでコード書いてる時が一番いい時ってどっかの偉い人も言ってたし。
0150デフォルトの名無しさん2013/09/18(水) 18:51:06.14
>>148
リアルだと、お里が知れるから発言控えた方が良いよ
0151デフォルトの名無しさん2013/09/18(水) 18:53:57.88
正直に言ってこのスレは初級者の自分のすごくいい経験になってる。
コードも、雑談も、喧嘩も全て。
0152デフォルトの名無しさん2013/09/18(水) 19:00:09.12
ここの煽り合戦には長いこと参加してるけれど、
結論を言うと、JavaとC以外は使わない方が良い。
趣味ならRか関数型ぐらいしかメリット無し
0153デフォルトの名無しさん2013/09/18(水) 19:06:50.41
趣味にメリット求められましても…
0154デフォルトの名無しさん2013/09/18(水) 19:10:36.99
そもそも実利のないことを趣味にするぐらいなら、
プログラミングぐらい馬鹿馬鹿しいものは選ばない
2次元のオッパイでも描いた方がマシ
0155デフォルトの名無しさん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}
0156デフォルトの名無しさん2013/09/18(水) 19:47:07.67
>>152
Cはいいけど、Javaなんて書くやつはアホだ
0157デフォルトの名無しさん2013/09/18(水) 20:00:28.77
>>156
後々で自分が馬鹿だって気付くんだろうけど、
そのレス見る限りじゃヒッピー連中にはついていかない方が良いと思う
0158デフォルトの名無しさん2013/09/18(水) 20:04:03.48
>>157
後々からバカだと気づくのはお前だと思うよ
10年前ならともかく今の時代にJavaなんてゴミで書き続けたことに
0159デフォルトの名無しさん2013/09/18(水) 20:16:59.43
個人的には進化感が好きだからLL気に入ってる
Javaもコミュニティ大きいし結構進化もしてるし、
VMの仕組みとか面白いし、眺めるのは楽しい言語だと思う
書くのは億劫だけど
Cは目的を達成するために仕方無く使う言語で
楽しむ言語じゃないね
0160デフォルトの名無しさん2013/09/18(水) 20:31:01.40
Javaはプログラマもいちばんレベルが低いとばれちゃったからなぁ
それでもJava以外知らない上流はかなり多いから仕事はなくならないんだろうけど
http://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20130912/20130912141130.gif
0161デフォルトの名無しさん2013/09/18(水) 20:33:00.08
クライアントサイドJSは別だが、一般にはLLだと意外とC使うぞ
それが本来のグルー言語としてのあり方

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

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

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

@Mathematica
http://ideone.com/WBSrx1
0169デフォルトの名無しさん2013/09/18(水) 21:37:22.67
>>167
盲目乙
0170デフォルトの名無しさん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
0171デフォルトの名無しさん2013/09/18(水) 21:40:58.38
いかん。インデントが… ま、いっか。
0172デフォルトの名無しさん2013/09/18(水) 21:43:22.40
ハードコートなら速度は前スレの順番の通りになるしか無いな
0173デフォルトの名無しさん2013/09/18(水) 21:46:27.51
evalでできることは全てevalを使わないできるからね。
(でないとC言語で作れないものが存在するということになってしまう)

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

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

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

そんな言語は劣っているってだけなんだが。
0179デフォルトの名無しさん2013/09/18(水) 22:03:33.92
ワロチwwww
0180デフォルトの名無しさん2013/09/18(水) 22:04:41.87
>>176
せやな
0181デフォルトの名無しさん2013/09/18(水) 22:07:25.43
>>168
中身はわからんが乙
0182デフォルトの名無しさん2013/09/18(水) 22:08:12.44
>>175
問題は、その一覧の中にある(CPython を除く)実装が 3.3 に対応しているか?
ってこと
0183デフォルトの名無しさん2013/09/18(水) 22:11:42.73
別にそこはどーでもよーないー?
別にPython5で書いてもOREthonで書いても怒らんよ
0184デフォルトの名無しさん2013/09/18(水) 22:12:43.19
Mathematicaって商用だよねやっぱり
代わりの環境ってないかな
0185デフォルトの名無しさん2013/09/18(水) 22:14:40.55
機能制限されたのなら良く見ないか?
0186デフォルトの名無しさん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) が主導して始まった。
0187デフォルトの名無しさん2013/09/18(水) 22:20:51.50
MuPAD
0188デフォルトの名無しさん2013/09/18(水) 22:26:43.34
さげってwww
0189デフォルトの名無しさん2013/09/18(水) 22:27:01.12
SimPy
0190デフォルトの名無しさん2013/09/18(水) 22:33:37.03
>>159
スクリプト言語が記述するソフトウェアやライブラリ群は基本的に小さいものが殆ど
移植性の問題を切り捨てる為にJavaが使われ、JVMの性能の為にJavaが使われ、
堅牢性の為にJavaが使われ、ライブラリ質の為にJavaが使われ、大規模開発の為にJavaが使われる。
これが現実であり、リアリストの意見であり、そして現実とはかくも非常なものなのだ。
0191デフォルトの名無しさん2013/09/18(水) 22:34:50.77
>>174
問題
ある言語の実装全体の集合から無作為にある実装を選んだとき
その速度は何に依存しているでしょうか
0192デフォルトの名無しさん2013/09/18(水) 22:38:10.78
>>190
うん、Javaっていろいろ凄いよね
言語の代表でもいいと思うよ
でも尖ったとこがないから面白くないね
0193デフォルトの名無しさん2013/09/18(水) 22:41:21.01
顧客の要求を形にするのが仕事であって、言語仕様自体の面白味なんて入りません。
むしろ、無意味な学習コストとデバッグコストが増えるだけ。これが現実。
0194デフォルトの名無しさん2013/09/18(水) 22:44:28.70
”パーソナルリアリティ”ですね
わかりますよ〜
0195デフォルトの名無しさん2013/09/18(水) 22:45:49.79
>>190
スクリプト言語が記述するソフトウェアやライブラリ群は基本的に小さいものが殆ど
移植性の問題を切り捨てる為にCOBOLが使われ、堅牢性の為にCOBOL使われ、
ライブラリ質の為にCOBOLが使われ、大規模開発の為にCOBOLが使われる。
これが現実であり、リアリストの意見であり、そして現実とはかくも非常なものなのだ。


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

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

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

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

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

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

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

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

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

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

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

配列への処理も、「穴空き/無し」、「全部整数、全部浮動少数、オブジェクト入り」
とか沢山の条件を元にそれぞれ最適化してる
これがV8や著名なJSエンジンが早い理由
0222デフォルトの名無しさん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秒 まず下一桁だけ計算してみる(割り算以外)
0223デフォルトの名無しさん2013/09/19(木) 19:38:11.98
いいと思います
0224デフォルトの名無しさん2013/09/19(木) 20:39:20.72
>>160
それ結構、言語ごとのユーザ気質が分かって面白いよな
Perlが高いのは今でもPerlを使うユーザはキャリアが長くて全体的なレベルが高いんだろうな
Rubyが回答時間長いのもいかにも典型的なユーザ像に思える、解けるまで粘着ぎみに拘ってる
0225デフォルトの名無しさん2013/09/19(木) 20:44:31.09
確かにwww
このスレでも取り敢えず真っ先にコード書いてくるのPythonerだしなww
0226デフォルトの名無しさん2013/09/19(木) 20:50:11.98
JSerは自分のコードがクソってことも認識出来てないんだな
恥ずかしくて表に出せないようなクソコードばかり此処に貼られてるしな
0227デフォルトの名無しさん2013/09/19(木) 21:00:58.20
>>226
矩形に収まるようにびっしり書かれたコード塊の方が美しいよね
0228デフォルトの名無しさん2013/09/19(木) 21:05:53.81
マシンコードになれば皆同じ
それならコンパクトな方がいい
0229デフォルトの名無しさん2013/09/19(木) 21:42:10.56
>>226
あんまり煽るとJSer引きこもっちゃうぞ
スレタイに並んでる言語でコンスタントにコード例書かれるのって
RubyとPythonだけで、HaskellやSmalltalkは出るのに
PerlやPHPは出て来もしないんだからな
0230デフォルトの名無しさん2013/09/19(木) 21:55:11.56
JSは俺がいくらでも頑張って書くけど来週から忙しくなるんだわ
0231デフォルトの名無しさん2013/09/19(木) 22:04:31.55
PHP次回から外してくれませんかね。
まあ、馬鹿にする対象としてあなた方に必要なのはわかりますけどね。
0232デフォルトの名無しさん2013/09/19(木) 22:12:43.74
このスレの「技術力」って「女子力」ぐらい使い所が不明なんだけど
0233デフォルトの名無しさん2013/09/19(木) 22:24:02.10
女子力に失礼です
0234デフォルトの名無しさん2013/09/19(木) 22:50:09.98
railsブームって、出エジプト記やスパルタクスの反乱みたいな社会的弱者層の反逆的だよね
0235デフォルトの名無しさん2013/09/19(木) 23:16:20.41
Smalltalkerは割とコードが綺麗なので
書いてる人一人だとおも
0236デフォルトの名無しさん2013/09/19(木) 23:36:37.23
今日日、smalltalkって仕事あるのかな
0237デフォルトの名無しさん2013/09/19(木) 23:37:45.56
>>236
あったとしても、ここに例示された会社以外にはないだろう。
0238デフォルトの名無しさん2013/09/19(木) 23:40:17.72
じゃあせっかく夏なんだし Seaside の話でもしようぜ
0239デフォルトの名無しさん2013/09/19(木) 23:40:58.32
死再度
0240デフォルトの名無しさん2013/09/19(木) 23:53:18.64
きれいなコードを書ける人間は日本で仕事するのは向いてないと思う
ここで晒してるコードが瞬間的に出てくるならいいけど
熟考した上で実行速度とは無縁で行数ばかりにこだわったコードを書いている場合、
ほとんどの現場で切られる。

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

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

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

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

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


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

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

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

C#脳
name

Ruby脳
var_name

C++脳
_name

Objective-C脳
mName

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

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

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

意味がわからない。

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

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

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

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

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

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

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

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

つうかJavaScriptの代替品が流行っているとか思ってる奴は妄想だろ。
TypeScriptやCoffeeScriptが本格的に採用されている現場なんて実際にねーだろ。
Dartはもう死んでいるし。
0297デフォルトの名無しさん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"
0298デフォルトの名無しさん2013/09/21(土) 03:58:11.17
APIの多い少ないと基本構文の話は次元が違うと思うが
0299デフォルトの名無しさん2013/09/21(土) 04:01:41.28
今は、FormatというAPIを実装してくれという話で
基本構文を拡張しろという話はしていません。
0300デフォルトの名無しさん2013/09/21(土) 04:26:50.80
マジ基地乙
0301デフォルトの名無しさん2013/09/21(土) 06:19:21.57
いや、TypeScriptやCoffeeは結構使われてるだろう
0302デフォルトの名無しさん2013/09/21(土) 06:53:23.96
死ねゴミ共がw
0303デフォルトの名無しさん2013/09/21(土) 09:34:00.11
TypeScriptはJSの良いところ悪いところを理解して合理性のあるものだけを提供してるけど
CoffeeScriptは余計に悪くなってるとしか思えない
0304デフォルトの名無しさん2013/09/21(土) 09:51:29.19
でも、敵に悪いものを提供する戦術は合理的だよね
0305デフォルトの名無しさん2013/09/21(土) 09:52:13.63
DartとかCoffeeScriptとかnode.jsに行く奴って
ちょっと触って良いと思ったら、これからはこの言語の時代だみたいに勘違いしてるけど
長く使わなきゃいけないコードなら普通は直接jsで書いたほうが良いのは少し考えれば分かる事
言語の乱立って善意に見せかけた悪意だろ
プログラマが使う言語が分散すればするほど効率悪くなる
0306デフォルトの名無しさん2013/09/21(土) 09:58:10.49
>>305
効率だけを考えていたらイノベーションは生まれません

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ならば、

楽なコンバートをしない それならば 完全にマッピングできる
0358デフォルトの名無しさん2013/09/21(土) 21:05:43.80
で、それはあんたが作るの?
こっちは現実の話をしているわけで
君の長い夢物語に付き合ってる暇はないんだけど
0359デフォルトの名無しさん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みたいに実コードになる時には削られる、コンパイル時用の機能とか
そういううのならソースマップで問題ないかもね
0360デフォルトの名無しさん2013/09/21(土) 21:07:41.43
やっぱり未来だよなぁ。

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

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

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

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

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

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

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

〜〜そして荒れる〜〜

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

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

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

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

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

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

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

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

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

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

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

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

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

こんだけの話。

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



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

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

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

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

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

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

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

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

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

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

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

この話に言語仕様は全く関係ないってわけでもなく、
言語仕様によって提供できる情報は異なってくる。
0466デフォルトの名無しさん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割は解決する
あとは行を括弧で始めないとかそんなところ
04674632013/09/21(土) 22:46:49.72
>>464
テキストエディタでできるようになるのが
重要なのだよ。

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

これがどういった結果をもたらすかはまだ分からないが、
ソースコードをマージするという作業を
超えた何かが生まれるかもしれないな。
0468デフォルトの名無しさん2013/09/21(土) 22:47:23.44
>>466
セミコロンフリーって
確かRubyでもなんらかの
問題が起きるんじゃなかったっけ?
0469デフォルトの名無しさん2013/09/21(土) 22:48:49.85
>>467
コンパイル言語なんてどうせIDEないと使いものにならないんだから意味ない
0470デフォルトの名無しさん2013/09/21(土) 22:50:48.35
静的型のメリットを最大限活かすにはIDEが適しているという面もあるね
0471デフォルトの名無しさん2013/09/21(土) 22:55:10.10
>>454
最善を尽くすのが当然だと思ってるんじゃないの
妥協したり諦めたりする方が変だ驚きだという人もいるだろ
0472デフォルトの名無しさん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
});
0473デフォルトの名無しさん2013/09/21(土) 22:59:54.20
予言するって変更部分のみコンパイルなんてccacheとか古くからあるし、
エディタ連携はctagsとかあるし、CI環境なんてjavascriptにもあるし。
標準化されるしか言ってないな。
0474デフォルトの名無しさん2013/09/21(土) 23:00:43.52
JavaScriptとかJavaって普通に書くと、これが非常に多いよね

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

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

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

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

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

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


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

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

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

ならば既存のWebAPIをジェネレータに変換する
ライブラリを作ればいいのではないか?
0502デフォルトの名無しさん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は認める
0503デフォルトの名無しさん2013/09/22(日) 00:39:55.94
>>501
そういうことを話してるんじゃないんだよ……
>>478-484
をちゃんと見てくれ

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

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

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

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

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

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

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

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

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

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

当たり前だと思うが?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

JSHintなどで
標準的な書式が
決まってるだろ。
0604デフォルトの名無しさん2013/09/22(日) 12:20:56.46
いつの間にJSHintが標準になったんですか?
0605デフォルトの名無しさん2013/09/22(日) 12:23:23.76
ここ二年ぐらいの間かな
0606デフォルトの名無しさん2013/09/22(日) 12:29:07.68
JSHintの全てがいいとは言わないが2/3くらいはいいものだな
0607デフォルトの名無しさん2013/09/22(日) 14:31:25.56
jQueryはこんなに普及したのに、どうしてString.Format, String.Cotainsとかの関数を配賦するライブラリーは普及しなかったの?
0608デフォルトの名無しさん2013/09/22(日) 15:05:11.67
だってそんなもの要らないもの
欲しいと思ったこともほぼない
0609デフォルトの名無しさん2013/09/22(日) 15:13:31.15
ド〜カタには〜ドカタの〜世界が〜ある
0610デフォルトの名無しさん2013/09/22(日) 15:19:46.75
いい加減Array.prototype.slice.callと、
String.toArrayがほしい。
0611デフォルトの名無しさん2013/09/22(日) 15:20:26.78
Array.prototype.slice.callとじゃねえ。
Array.from
0612デフォルトの名無しさん2013/09/22(日) 15:36:13.71
Array.fromもString.prototype.toArrayもES6にある
0613デフォルトの名無しさん2013/09/22(日) 15:44:15.55
TypeScriptってサーバサイドのnode.jsで使うことを想定した言語?
htmlと簡単に連携できるのかな?
わざわざコンパイルしないとブラウザでの動作確認とかできないと面倒だよね
<html>
<head>
<script>
//typescript code
</script>
</head>〜
こんな感じに書いて実行押したらブラウザ開いて見れる的なIDEがあればいいんだけど
0614デフォルトの名無しさん2013/09/22(日) 15:47:06.25
1つ言うと
TypeScriptはJSにコンパイルされる時に型なんかのチェックをしてくれるのが特徴なんだよ
実際吐くコードはCoffeeScriptとさほど変わらない
だから「コンパイル」っていう段階が一番有り難みが合って大事なとこなんだから
そこを嫌がるのなら合わないかもね
0615デフォルトの名無しさん2013/09/22(日) 15:52:21.00
やっぱ完全なコンパイラ言語なのか
型は別に入れなくてもいいって書いてたからちょっと期待してしまった
0616デフォルトの名無しさん2013/09/22(日) 16:01:53.16
<script type="text/typescript">
のほうがいい
0617デフォルトの名無しさん2013/09/22(日) 16:03:35.98
TypeScriptはスクリプト言語だけど、Dartはスクリプト言語じゃない
その違いはどこだろう
どちらもjsにして実行させられるのに
0618デフォルトの名無しさん2013/09/22(日) 16:03:46.69
言語と実装はわけろ。
node.jsで動く実装がある言語だからといって
言語としてnode.jsが必須とはいえない。
0619デフォルトの名無しさん2013/09/22(日) 16:06:19.63
どういうことなのかさっぱりわからないけど
ESでCSやTSみたいなのをサポートしようというのが確か合ったな
多分メタ的なのをもっと増やすとか
ForeignScript{
}
みたいなのを作るってことなんだろうな
0620デフォルトの名無しさん2013/09/22(日) 16:08:25.09
汎用的なAST操作APIとか
0621デフォルトの名無しさん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
0622デフォルトの名無しさん2013/09/22(日) 16:25:44.60
>>621
RPythonてpypyと同じだよね。
やっとまともなRuby実装でてきたのか。
0623デフォルトの名無しさん2013/09/22(日) 16:34:30.22
いい傾向(?)だな
0624デフォルトの名無しさん2013/09/22(日) 16:39:19.82
CRubyは既存のC拡張を捨てれない制限の中で
最適化してるんだから、あれでも頑張ってるよ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

それじゃだめなんだ。

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

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

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

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

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

http://pc.watch.impress.co.jp/docs/2004/1021/turbo.htm
0735デフォルトの名無しさん2013/09/23(月) 01:16:35.43
>>734
あーうん、俺はクロスプラットフォーム派なんで論外
0736デフォルトの名無しさん2013/09/23(月) 01:16:42.01
>>707
就職活動したら?
0737デフォルトの名無しさん2013/09/23(月) 01:17:20.62
>>736
ドカタ必死だなw
お前が就職活動しろ。
明日はちゃんとハロワに行くんだぞw
0738デフォルトの名無しさん2013/09/23(月) 01:18:01.34
>>732
最初から必要なのだけバインドさせとけばいいんじゃないの
JSみたいに
0739デフォルトの名無しさん2013/09/23(月) 01:18:17.61
>>735
素直にWindowsしか使えないと認めなさい?
0740デフォルトの名無しさん2013/09/23(月) 01:18:20.63
今日は休みだよ〜
0741デフォルトの名無しさん2013/09/23(月) 01:18:42.96
>>738
だからそれができてないんでしょう?
0742デフォルトの名無しさん2013/09/23(月) 01:19:07.02
>>737
ぷw
0743デフォルトの名無しさん2013/09/23(月) 01:19:34.73
>>740
明日って言っただろバーカw
日をまたぐってことだ。
今日は月曜日だからな。
ドカタは曜日の感覚すら無いwww
0744デフォルトの名無しさん2013/09/23(月) 01:19:59.97
>>741
は?何が?
sandbox内でevalさせればいいだけじゃないの?
0745デフォルトの名無しさん2013/09/23(月) 01:20:27.14
>>744
それは面倒くさい。
0746デフォルトの名無しさん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もね
0747デフォルトの名無しさん2013/09/23(月) 01:22:17.96
>>744
それでブロッキング関数が
全部ノンブロッキング関数になるとでもいうの?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VS

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


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

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

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

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

完全に自由じゃなくて、今を壊さずに追加する方法を考えるっていう方が、
方向性も決めやすいし、意見もまとまりやすいのはあるでしょうね
0858デフォルトの名無しさん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は補完できて欲しい
0859デフォルトの名無しさん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の仕様を作ってるんだ。
0860デフォルトの名無しさん2013/09/23(月) 13:58:25.75
コメントにこの関数の返り値の型は○○です
って書くと実際の返り値がなんだろうが
コメントに書かれた型に沿って補完してくれるという
明後日な方向に進化した言語があってですね・・・

まあでも動的言語ならそんな程度の方がいいのかとも思ったり
0861デフォルトの名無しさん2013/09/23(月) 13:59:17.26
ガードは、ユーザー定義形式の適用に対して便利な文法として使われます。
それらは型として使用できますが、同様に任意の制約を適用することもできます。
変数、パラメータ宣言、関数の返す結果、プロパティ定義へ注釈をつけるために
ガードを使います。
それぞれのガードは、それを通過させるか強制するか拒絶するか決定するために、
入ってくる値、標本について承認する事を要求されます。
0862デフォルトの名無しさん2013/09/23(月) 13:59:23.60
言語?
0863デフォルトの名無しさん2013/09/23(月) 14:00:14.76
>>860
そういうのは実行時にコメントに書いていないものが
返ったりしたらエラーになって欲しいところだな。
0864デフォルトの名無しさん2013/09/23(月) 14:01:46.66
強制するっていうのは、型を変換するってことなのかな?
0865デフォルトの名無しさん2013/09/23(月) 14:09:17.05
動的に型が決まるところにガードを導入すると、例えば代入するだけで
検査が実行されるってことになって、重いから使わないほうがいいってならないのかな?
0866デフォルトの名無しさん2013/09/23(月) 14:15:33.61
>>858
余裕すぎワロタ
0867デフォルトの名無しさん2013/09/23(月) 14:15:35.22
それとも逆なんだろうか?
処理系にヒントを与えることになって最適化が進むんだろうか?
そうだとしても、こう書くと最適化されて、こう書くと実行時の負荷が増えるとか
色々考えないといけないことが増えそう〜
さらに○○らしいみたいな風のうわさを頼りに書くことが増えそう〜
0868デフォルトの名無しさん2013/09/23(月) 14:20:28.23
それは実装に依存する部分だから、これと決まることはないだろ。
0869デフォルトの名無しさん2013/09/23(月) 14:24:22.59
賢い連中が形推論を動的型に持ち込む一方で
ドカタ共はコメントに型を書く方向へ退化していたw
0870デフォルトの名無しさん2013/09/23(月) 14:26:22.51
文芸的プログラミングかな〜
可能性はあると思う〜
0871デフォルトの名無しさん2013/09/23(月) 14:26:38.51
>>858
そのコード片って具体的には、どんな場面で使うものなの?
0872デフォルトの名無しさん2013/09/23(月) 14:28:00.79
コードが貼られなくなった途端に動的型 vs. 静的型になるあたりとてもわかりやすい
0873デフォルトの名無しさん2013/09/23(月) 14:30:07.43
>>869
「一方、ロシアは鉛筆を使った。」って、雛形文を聞いたことない?
0874デフォルトの名無しさん2013/09/23(月) 14:31:01.63
文芸的プログラミングってクヌース先生の奴?
javadocとかは実装ありきだから逆な気が。
0875デフォルトの名無しさん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
0876デフォルトの名無しさん2013/09/23(月) 14:33:30.33
それそれ〜
0877デフォルトの名無しさん2013/09/23(月) 14:38:55.56
>>875
うげえなにこれ
0878デフォルトの名無しさん2013/09/23(月) 14:42:18.15
comment firstなDRY原則。
がコンパイラやインタプリタの実装レベルで適応された処理系ってありますか?
0879デフォルトの名無しさん2013/09/23(月) 15:03:37.17
>>873
「一方、ロシアは静的型言語を使った。」
0880デフォルトの名無しさん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
0881デフォルトの名無しさん2013/09/23(月) 15:12:07.19
>>871
ネストされた関数呼び出しの中で生成されたインスタンスが
戻り値で返ってきた場合の例のつもり
素人考えだけど、補完が難しそうかなって
0882デフォルトの名無しさん2013/09/23(月) 15:13:55.69
>>880
コアな部分に携わるゲームプログラマが開発に集中するために使うスクリプトだろ
似たような言語のどうでも良いノウハウを掻き集める余裕ってweb開発ぐらいじゃないの?
0883デフォルトの名無しさん2013/09/23(月) 15:20:18.58
これ使うならC/C++で良いです
0884デフォルトの名無しさん2013/09/23(月) 15:21:37.37
今日もドカタいじめるの楽しいなw
0885デフォルトの名無しさん2013/09/23(月) 15:28:22.70
>>883
馬鹿杉。
コンパイル時間かんがえたら
0886デフォルトの名無しさん2013/09/23(月) 15:29:25.92
>>884
脳内プログラマ乙
0887デフォルトの名無しさん2013/09/23(月) 15:33:27.06
>>885
それだ! altJSの欠点
コンパイル時間がかかる。

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

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

>>890
脳内プログラマ乙
0892デフォルトの名無しさん2013/09/23(月) 15:41:23.26
クソ設計? 有名プロダクトだけど?
makeしてみろよ。
10分ぐらいかかるからさ。
0893デフォルトの名無しさん2013/09/23(月) 15:44:23.96
テスト回しながらやってんだから結局時間かかるだろ。
それにプロコンパイルさせてdistccすりゃ相当に短縮される。
脳内C++er乙。
0894デフォルトの名無しさん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
0895デフォルトの名無しさん2013/09/23(月) 15:45:08.87
ビルドに時間がかかるのは確かにつらい〜
最近のIDEは書いてる端から添削してくれる〜
0896デフォルトの名無しさん2013/09/23(月) 15:45:21.88
訂正
☓ プロコンパイル
○ プリコンパイル
0897デフォルトの名無しさん2013/09/23(月) 15:50:45.12
>>893
c++プログラマだなんて一言も言ってないけど、あんなもの常識。

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

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

な奴らだから問題ない

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

な奴らだから問題ない

この手の奴らは圧倒的に思考が遅い
0904デフォルトの名無しさん2013/09/23(月) 15:58:47.17
>>901
静的言語は一度コンパイルさせれば、修正にはたいして時間かからないよ。
スクリプトで書く程度の内容で、毎回コンパイルに時間がかかるということは、
上位がそのコードに依存し過ぎて、多岐にわたった影響があるという事。
つまり設計が悪い。
0905デフォルトの名無しさん2013/09/23(月) 16:00:49.52
>>904
ヒント:JSPはインタプリタ
0906デフォルトの名無しさん2013/09/23(月) 16:02:15.07
C++の場合は、テンプレートマジックに魅せられて翻訳単位を分割できなくなった
経験ある人が多いと思う〜
0907デフォルトの名無しさん2013/09/23(月) 16:08:19.03
テンプレート遅いよね。
インスタンス別にオブジェクト分ければいいのにね。
0908デフォルトの名無しさん2013/09/23(月) 16:12:13.82
>>907
なにそれ、objective-c?
0909デフォルトの名無しさん2013/09/23(月) 18:27:50.57
コンパイルが遅く、実行が速い〜
0910デフォルトの名無しさん2013/09/23(月) 18:41:57.22
基本的に動的言語の方が使い手のスキルが高いから(関数型言語を除く)
話が噛み合ってないね
最後は各自が感想を述べて終わってる
0911デフォルトの名無しさん2013/09/23(月) 19:55:37.22
DynamicInvokeがあるから、それに対応した言語ならつぶし効くのかなと、javaでかきとうない。
0912デフォルトの名無しさん2013/09/23(月) 20:53:22.74
このスレの奴らは自画自賛する傾向にあるあるからこの上なくキモい
0913デフォルトの名無しさん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行の規模になっています。
0914デフォルトの名無しさん2013/09/23(月) 21:20:25.91
Python 2らしいぞ
おれ迷ってる。せっかくPython 3をインストールしたのに
0915デフォルトの名無しさん2013/09/23(月) 21:35:38.82
そりゃDropboxの開発を始めた当初にPython3を使う選択はありえなかっただろうから仕方ない
今更移行しようと思ったらアホみたいなコストがかかるわけで
それに見合ったメリットがあるとは思えん
0916デフォルトの名無しさん2013/09/23(月) 21:52:55.39
Pythonで93万行もかけてあんなゴミ作ったのかよ・・・・

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



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

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

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

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

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

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

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

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

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

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

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

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

しらん。

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

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

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

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

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

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

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

俺にレスするなら、お前が噛み合わせろ
0949デフォルトの名無しさん2013/09/24(火) 00:35:02.38
配列を操作したら関数型風って、関数型の本質を完全に取り違えてるな
0950デフォルトの名無しさん2013/09/24(火) 00:46:16.49
そして、オレオレ関数型の定義を>>949が始めます(苦笑)
0951デフォルトの名無しさん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
0952デフォルトの名無しさん2013/09/24(火) 01:07:25.06
キチガイばっかり
0953デフォルトの名無しさん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なしってのはさすがに変態かねぇ
0954デフォルトの名無しさん2013/09/24(火) 01:29:37.77
変態ですね〜
0955デフォルトの名無しさん2013/09/24(火) 08:29:03.21
真面目な話、jQueryって普通に手続き型スタイルのライブラリだよね
0956デフォルトの名無しさん2013/09/24(火) 08:50:27.21
違うよ
0957デフォルトの名無しさん2013/09/24(火) 09:24:39.08
関数型言語が大得意にしてる無限リスト・遅延ストリームのお題に
グチグチ文句つけた挙句、時間かけて出てきたコードもクソだったので
JSerが関数型云々言っても全く信用出来なくなった
0958デフォルトの名無しさん2013/09/24(火) 11:00:03.93
クソなコード書いて悪かったね
0959デフォルトの名無しさん2013/09/24(火) 15:52:33.14
geekってのは生産者なのか消費者なのか
0960デフォルトの名無しさん2013/09/24(火) 16:03:16.40
javaとjavascriptの重要性が強調されるなかで、
nashornが諸手を挙げて優遇されないところに、
言語としてのjavascriptに構文上の限界を感じる。
0961デフォルトの名無しさん2013/09/24(火) 17:09:46.26
触っちゃいけないタイプのキチガイが増えたね
0962デフォルトの名無しさん2013/09/24(火) 17:22:03.93
規制解除で出てきたんだろうな
0963デフォルトの名無しさん2013/09/24(火) 20:18:36.12
底の浅いJS推しが増えて、タイトル改悪したスレが立つようになった頃から
ずっと変な奴が住み着いてるよ
0964デフォルトの名無しさん2013/09/24(火) 20:49:55.23
宣言を改悪されるくらいなら宣言しないほうがマシという考え方がある
0965デフォルトの名無しさん2013/09/24(火) 21:36:08.21
>>960
構文上の限界を、具体的に言えないでしょ?w
無理矢理な屁理屈つけるのやめなよ
恥ずかしいから。
0966デフォルトの名無しさん2013/09/24(火) 22:17:38.87
次からJSは抜きで。
コードは書けんわ、屁理屈こねるわ、
糞の役にも立たんくだらん仕様談義でレス浪費するわでかなわんわ
0967デフォルトの名無しさん2013/09/24(火) 22:33:52.73
>>965
protectやprivate,アクセッサ、オペレータのオーバーロード辺りすらないじゃん
rubyとjavascriptの2つを同時に選択できるとき、わざわざjavascriptでOOPなコードなんて書きたくないし
コーディング規約のレベルでOOPなコードが書けても、そんな規約なんか覚えたくないでしょ?
0968デフォルトの名無しさん2013/09/24(火) 22:42:40.03
アクセサはあるだろ
どっかのJS厨がほざいてる夢物語じゃなくて今現実に十分使えるぞ
0969デフォルトの名無しさん2013/09/24(火) 23:01:15.29
>>966
コード出てるだろ。
なんで自分に都合の悪いことは
見えないんだろうな。

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

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

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

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

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

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

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

以上。
0989デフォルトの名無しさん2013/09/24(火) 23:49:09.12
お題:2^32までの回文数の数を計測しなさい
0990デフォルトの名無しさん2013/09/24(火) 23:54:29.12
>>989
補足:自然数でお願いします
0991デフォルトの名無しさん2013/09/24(火) 23:54:35.79
また言語は関係ない問題か。
アルゴリズム考える問題じゃねぇか。
まあいいけどさ。
0992デフォルトの名無しさん2013/09/24(火) 23:55:08.19
クズだなほんと・・
0993デフォルトの名無しさん2013/09/24(火) 23:56:01.83
なんか実装あったよ。参考まで。
http://spinda2.blog48.fc2.com/blog-entry-465.html
0994デフォルトの名無しさん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
総当たりで試しているのでもう少し効率の良いアルゴリズムに改善する余地はあるかもしれません。
0995デフォルトの名無しさん2013/09/24(火) 23:59:33.41
次スレどっち?
0996デフォルトの名無しさん2013/09/25(水) 00:33:27.78
42948 + 99999 - 9 で 142938個 ?
0997デフォルトの名無しさん2013/09/25(水) 01:15:35.14
定数式で出ちゃいそうだな
0998デフォルトの名無しさん2013/09/25(水) 01:32:28.34
JSerの考えつくお題なんてせいぜいそんなもんだろう
0999デフォルトの名無しさん2013/09/25(水) 01:33:54.37
埋め
1000デフォルトの名無しさん2013/09/25(水) 01:39:54.80
本当にJavascriptを使っている人が憎くて憎くてたまらない病気の人が
一人いるみたいだね
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。