【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.58windows8にPerl入れようとしたら
詰んだ
サポート外?
0003デフォルトの名無しさん
2013/09/11(水) 18:58:11.50XAMPP使えば
0004デフォルトの名無しさん
2013/09/15(日) 01:57:41.64やっぱサーバー立てるなら確実にログ保存してないとダメだよな
何らかの方法でローカルサーバーがグローバルサーバーにされてた
??? ってなってサーバー再起動したら、元のローカルサーバーに戻った
WEBrickしっかりしよう
特に何も入ってないpcで
アクセスされたファイルはただの萌え画像1個だから別に良いけど
2時間接続されて数百KBしか転送できないような限定的な接続の仕方ってありえるのか
セキュリティってしんどいな〜
0005デフォルトの名無しさん
2013/09/15(日) 03:39:44.880006デフォルトの名無しさん
2013/09/15(日) 04:53:26.450007デフォルトの名無しさん
2013/09/15(日) 08:12:15.820008デフォルトの名無しさん
2013/09/15(日) 08:26:54.62そう
JAVAやPythonもWin8では使えない
rubyなら入る
0009デフォルトの名無しさん
2013/09/15(日) 08:29:21.660010デフォルトの名無しさん
2013/09/16(月) 22:05:10.590011デフォルトの名無しさん
2013/09/16(月) 22:15:38.420012デフォルトの名無しさん
2013/09/16(月) 22:20:52.160013デフォルトの名無しさん
2013/09/16(月) 22:20:56.310014デフォルトの名無しさん
2013/09/16(月) 22:50:56.980015デフォルトの名無しさん
2013/09/17(火) 00:01:02.11速度があると強引なアルゴリズムで強引に解決することもできるんだなと
これとか見て思った
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12109785557
0016デフォルトの名無しさん
2013/09/17(火) 00:07:25.470017デフォルトの名無しさん
2013/09/17(火) 00:08:21.380018デフォルトの名無しさん
2013/09/17(火) 00:19:33.22移植しやすいcのスーパーセットみたいな言語ってありませんか?
0019デフォルトの名無しさん
2013/09/17(火) 00:20:13.28我慢して使ってるけど
0020デフォルトの名無しさん
2013/09/17(火) 00:22:05.54できるだけ簡潔に、しかし、耐えられる時間で解くコード
0021デフォルトの名無しさん
2013/09/17(火) 00:27:48.27じゃあJSはこれでお願いします
10秒
+αで汎用的
0022デフォルトの名無しさん
2013/09/17(火) 00:41:50.94だから総当り方式だと最初の位を9から仮定していけば
SENDMONEYに特化した最適化が出来るから
速度の比較はもっと沢山問題用意しないとダメかもな
0023デフォルトの名無しさん
2013/09/17(火) 00:44:24.580024デフォルトの名無しさん
2013/09/17(火) 00:58:39.232秒
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バトルロワイヤルってのは使い手たちの戦いでもあるから
うちの言語俺が使うとこんなコードで出来まっせってのが大事
0029デフォルトの名無しさん
2013/09/17(火) 01:11:52.22むしろ他人がどんなコード出してくるかが気になる。
0030デフォルトの名無しさん
2013/09/17(火) 01:15:43.25自分で考えて書くのが楽しんじゃないの?
0031デフォルトの名無しさん
2013/09/17(火) 01:23:07.910032デフォルトの名無しさん
2013/09/17(火) 01:23:24.200033デフォルトの名無しさん
2013/09/17(火) 01:26:32.07学者は言語の違いなんて興味持ちません
大方、アルゴル系統の言語で一括りどすえ
喧しいのはワナビ族かオタク
0034デフォルトの名無しさん
2013/09/17(火) 01:30:32.250035デフォルトの名無しさん
2013/09/17(火) 01:34:01.79いい加減に葬り去ってjsに統一すれば良いのに
0036デフォルトの名無しさん
2013/09/17(火) 01:37:41.08お前VBA使ってるの?
あれはあのままでいいと思うんだけど。
俺とは関係ない世界の話しだし。
0037デフォルトの名無しさん
2013/09/17(火) 01:39:40.540038デフォルトの名無しさん
2013/09/17(火) 01:40:06.83さもわかってるかのような口ぶりのワナビ族
0039デフォルトの名無しさん
2013/09/17(火) 01:41:13.52アルゴリズムのバトルロワイヤルじゃないと思うんだが?
アルゴリズムってのは基本的に
どの言語でも同じように実装できるし。
0040デフォルトの名無しさん
2013/09/17(火) 01:42:55.12>アルゴリズムってのは基本的に
>どの言語でも同じように実装できるし。
何それ背理方?
0041デフォルトの名無しさん
2013/09/17(火) 01:44:02.900042デフォルトの名無しさん
2013/09/17(火) 01:45:33.850043デフォルトの名無しさん
2013/09/17(火) 01:47:32.930044デフォルトの名無しさん
2013/09/17(火) 01:49:50.71カリカリチューンして意味ある言語って、c/c++,fortranぐらいじゃないの?
所謂、LLのノウハウって、かつてのBASICやperlのように葬られる運命
0045デフォルトの名無しさん
2013/09/17(火) 01:51:18.03勝負になりそう・・・。
0046デフォルトの名無しさん
2013/09/17(火) 01:59:28.98これevalが活躍できるスクリプト言語ならではのいいお題だと思う
こういうのが上手く書けないと真にスクリプト言語を書けることにならないんじゃない?
0047デフォルトの名無しさん
2013/09/17(火) 02:00:20.42どこでeval使ってるんだ?
0048デフォルトの名無しさん
2013/09/17(火) 02:00:35.49やめてよね。LLがjavaに勝てるわけないじゃない
実際はc/javaのライブラリを呼ぶけれど、如何に呼びやすいかってのが最重要な要素
個人的にはrubyがグルー言語としてもコマンドラインツールとしても使えて便利そうに見える
なかのひとたちが絶望して真っ黒になるまでは使えそう
0049デフォルトの名無しさん
2013/09/17(火) 02:00:53.410050デフォルトの名無しさん
2013/09/17(火) 02:06:51.790051デフォルトの名無しさん
2013/09/17(火) 02:16:27.02eval is evil
eval is evil
eval is evil
0052デフォルトの名無しさん
2013/09/17(火) 02:16:42.86つかPythonはそうしているし
0053デフォルトの名無しさん
2013/09/17(火) 02:17:20.57C99以下の言語。
0054デフォルトの名無しさん
2013/09/17(火) 02:17:30.990055デフォルトの名無しさん
2013/09/17(火) 02:19:24.65そりゃeval使ったほうがええな
0056デフォルトの名無しさん
2013/09/17(火) 02:21:24.410057デフォルトの名無しさん
2013/09/17(火) 03:56:18.97from 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(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会社で制作しているWebページに、Googlemapsを使って地図を貼り付けているんですけど、
今朝ゼンリンから電話があって、「Googlemapsを使うなごるぁ!」ってクレームが入りました。
Googlemaps自体は、特に変な事はしてなく単に座標を指定して地図を表示しているだけです。
話を聞いてみると、「Googleとの協議で、座標を指定して地図を表示するのは、著作権物の二次使用になるので利用料が発生する」
との事でした。
どうも、Googlemapsのトップページにリンクするのはいいんだけど、地図を貼り付けて表示するのは有料になるようです(なった?)。
スレ違いかもしれませんが、他の方のところも同じ様な連絡はなかったでしょうか?
https://developers.google.com/maps/faq?hl=ja#tos_commercial
↑を見る限り問題なさそうなんですが・・・。
0060デフォルトの名無しさん
2013/09/17(火) 10:34:33.81Web制作板へ逝って、そこで質問汁
ここはスレ違いの板違いだ
0061デフォルトの名無しさん
2013/09/17(火) 10:53:05.17了解しました。
0062デフォルトの名無しさん
2013/09/17(火) 11:08:18.62| 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企業からの圧力なんてあるんだ
こういうのって、google以外のフリーのマップ使えるんだっけ?
0065デフォルトの名無しさん
2013/09/17(火) 13:29:47.22企業からの圧力なんてあるんだ
こういうのって、google以外のフリーのマップ使えるんだっけ?
0066デフォルトの名無しさん
2013/09/17(火) 14:08:12.24利用規約の第何条第何項に違反しているのか問いただせ。
まさかとは思うが「ゼンリンの方から来ました」じゃないよな?
0067デフォルトの名無しさん
2013/09/17(火) 14:39:39.29それ以上はGoogleにお金を払う
ゼンリン云々は120%詐欺だから無視
0068デフォルトの名無しさん
2013/09/17(火) 14:44:19.21裁判沙汰になったらGoogleへの著作権侵害を第三者が訴えるのかな?
perlですらも商標ゴロに付きまとわれた過去があるんだし、
日本の大手企業を騙るインテリヤクザとかの奇妙な存在ってのも懸念したら?
0069デフォルトの名無しさん
2013/09/17(火) 15:52:02.90結局ゼンリンの担当者の勘違いって事で。
どうもマップのスクショをイメージとして貼り付けてると思ってたらしくて。
スレ違いなのでこの辺で。
お騒がせしました。
0070デフォルトの名無しさん
2013/09/17(火) 16:10:28.98騙されてるんだよお前の会社
0071デフォルトの名無しさん
2013/09/17(火) 16:12:41.40http://codepad.org/GAwaiudN
send + more = money
apple + grape = cherry
両方合わせて3秒程度
0072デフォルトの名無しさん
2013/09/17(火) 16:36:37.81おいPythonじゃねーじゃ・・Pythonだ
0073デフォルトの名無しさん
2013/09/17(火) 18:22:24.13def 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関数型言語っぽくて良い
0075デフォルトの名無しさん
2013/09/17(火) 19:33:22.26やはり周回遅れの劣等言語か
0076デフォルトの名無しさん
2013/09/17(火) 20:08:40.92確か、東北半分ぐらいが住めなくなって、首都が島根。
プログラム言語はMaybeが含まれるものが主流ってヤツ。
0077デフォルトの名無しさん
2013/09/17(火) 21:02:44.51| 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.54Rubyの3.6倍時間かかる
http://ideone.com/cm0Lup
0079デフォルトの名無しさん
2013/09/17(火) 21:46:02.56速度もそうだが何この原始時代のコード……
0080デフォルトの名無しさん
2013/09/17(火) 21:52:27.66Chromeという前提条件つきであればそこらのLLを越えて爆速だし
0081デフォルトの名無しさん
2013/09/17(火) 21:53:25.220082デフォルトの名無しさん
2013/09/17(火) 22:05:45.02それは書いた奴が悪いだけ。
0083デフォルトの名無しさん
2013/09/17(火) 22:07:51.07よろしく
0084デフォルトの名無しさん
2013/09/17(火) 22:07:54.360085デフォルトの名無しさん
2013/09/17(火) 22:09:48.83同じJSerからも批難される>>78哀れ
0086デフォルトの名無しさん
2013/09/17(火) 22:10:03.09空行が少ないからすごく読みにくいな。
0087デフォルトの名無しさん
2013/09/17(火) 22:13:38.26まあこういうのは少なくとも2chに貼るもんじゃないだろうね
0088デフォルトの名無しさん
2013/09/17(火) 22:13:48.87コード書けるJSerは欠点も知ってるから最強を唱えない
0089デフォルトの名無しさん
2013/09/17(火) 22:17:45.47これ実行すると1GBもメモリ食うんだけど……
バカじゃないの?
0090デフォルトの名無しさん
2013/09/17(火) 22:24:19.810091デフォルトの名無しさん
2013/09/17(火) 22:43:14.28こんな演算子があったらいいなと思ってるんだけどある言語ある?
obj1 .= obj2
0092デフォルトの名無しさん
2013/09/17(火) 22:51:00.530093デフォルトの名無しさん
2013/09/17(火) 22:51:14.860094デフォルトの名無しさん
2013/09/17(火) 22:51:45.09そのうち最小の進数で解く問題にすれば
アルファベット=文字が増えても出来る。
0095デフォルトの名無しさん
2013/09/17(火) 22:56:21.14そうするとわかりにくくなって価値が無くなる
0096デフォルトの名無しさん
2013/09/17(火) 22:57:34.16http://wdoor.c.u-tokyo.ac.jp/shogi/floodgate.html
0097デフォルトの名無しさん
2013/09/17(火) 23:06:34.23http://codepad.org/wlta9WRY
send + more = money
apple + grape = cherry
両方合わせて0.3秒程度で出る
0098デフォルトの名無しさん
2013/09/17(火) 23:11:56.95これって AB + C = BA とかどうなるの?
0099デフォルトの名無しさん
2013/09/17(火) 23:13:01.84「できるだけ簡潔に」ね
とことん最適化するならアルゴリズム大会になるから
0100デフォルトの名無しさん
2013/09/17(火) 23:14:20.300101デフォルトの名無しさん
2013/09/17(火) 23:15:09.70yield from advance(n + 1, mapping, remaining)
^
SyntaxError: invalid syntax
0102デフォルトの名無しさん
2013/09/17(火) 23:17:21.15>>15 のJSのコード:行数120、実行時間は10秒(?)
>>97 のPythonのコード: 行数46、実行時間は0.3秒
0103デフォルトの名無しさん
2013/09/17(火) 23:17:52.25>>71に書いたけど、Python3.3必須
0104デフォルトの名無しさん
2013/09/17(火) 23:17:56.49AOMORI + 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.6034+9=43
45+9=54
56+9=65
...
78+9=87
0106デフォルトの名無しさん
2013/09/17(火) 23:24:40.76>>15はバグあるしTypedArrayとか使ったりいろいろ変なことしてるだろ
最低限なことしかしてない中身約20行の>>78は>>15よりちょっと早いよ
0107デフォルトの名無しさん
2013/09/17(火) 23:31:15.10特に>>80,82
0108デフォルトの名無しさん
2013/09/17(火) 23:32:36.060109デフォルトの名無しさん
2013/09/17(火) 23:34:35.53実行時に新型(新クラス)が無限に生成されるのでなければ
原理的には実行前にアセンブラやC++に変換にするのは可能。
0110デフォルトの名無しさん
2013/09/17(火) 23:44:47.98011178
2013/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> 「できるだけ簡潔に」ね
それはそれで、ライブラリ勝負になっちゃうんだよ。
ある言語ではライブラリがあるから簡単にかけるが、
そうでない言語ではライブラリがないから書かないといけない。
0115デフォルトの名無しさん
2013/09/18(水) 00:22:36.24仕様を満たす最低限のコード書けたのに
それを最適化のためにわざわざコードを長くするのはマイナスじゃないかといってる
0116デフォルトの名無しさん
2013/09/18(水) 00:25:48.02最低限のコードっていうのもなぁ。
それもライブラリ次第なんだよね。
当然ライブラリは汎用でなければならないが、
ライブラリが存在すると仮定するならば、
それを使うことで更に短く出来るかもしれない。
ライブラリまで含めると長くなるが、
もしそのライブラリが存在するならば
短くなる。
0117デフォルトの名無しさん
2013/09/18(水) 00:28:13.43そこは分かるんだけど、そこのコストは1/3で
eval自体に2/3近くかかってしまってるんだ
0118デフォルトの名無しさん
2013/09/18(水) 00:29:44.81最適化のためにコードが長くなっていく方向は最初の趣旨と違ってきてるんじゃねえのかと言ってるんだよ。
0119デフォルトの名無しさん
2013/09/18(水) 00:39:36.700120デフォルトの名無しさん
2013/09/18(水) 00:41:49.18コードは>>97より少しだけ短くなった
http://codepad.org/sWPDapof
timeコマンドでおおざっぱに計測して、0.15秒程度
Pythonの起動時間のほうが気になるかもしれない
0121デフォルトの名無しさん
2013/09/18(水) 01:07:14.22やっぱり後でevalのがいいのか
0122デフォルトの名無しさん
2013/09/18(水) 01:21:27.47文字列連結はV8の十八番中の十八番
http://nothingcosmos.blog52.fc2.com/blog-entry-155.html
0123デフォルトの名無しさん
2013/09/18(水) 01:27:00.07あと速度はマシン性能にも依存するから同一マシンで計るなりしないと
処理系比較としては正確でない。
0124デフォルトの名無しさん
2013/09/18(水) 01:27:10.22JSは言語としてはいまいちだが、処理系は極めて優秀
0125デフォルトの名無しさん
2013/09/18(水) 01:30:47.57全部で合わせて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
012678
2013/09/18(水) 04:05:57.67ここに書いてある通りのコード作るだけで
>>78より約20倍早くなって1秒切るようになった
http://blog.goo.ne.jp/ktonegaw/e/92991be3daa7b3aa871ded96a3c6adcf
同環境で>>73をRuby2.0で実行した時の5倍早い
http://ideone.com/mLFlVf
0127デフォルトの名無しさん
2013/09/18(水) 07:19:18.040128デフォルトの名無しさん
2013/09/18(水) 08:57:07.200129デフォルトの名無しさん
2013/09/18(水) 09:45:28.05文字の重複がないとあまり意味なさそうだが。
0130デフォルトの名無しさん
2013/09/18(水) 11:22:16.71http://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.460132デフォルトの名無しさん
2013/09/18(水) 12:41:33.250133デフォルトの名無しさん
2013/09/18(水) 12:45:36.480134デフォルトの名無しさん
2013/09/18(水) 13:05:18.960135デフォルトの名無しさん
2013/09/18(水) 13:07:36.390136デフォルトの名無しさん
2013/09/18(水) 13:15:52.510137デフォルトの名無しさん
2013/09/18(水) 13:34:14.26いちれんのPythonのコードは全パターンを検索しているわけではないから
速度出たところで「ふーん。早く最初の答えが見つけられるね」以上の意味はないよ。
速度を比べるなら少なくともアルゴリズムは統一しないと比較にならない。
0138デフォルトの名無しさん
2013/09/18(水) 13:34:54.02前より大分速くなったみたいだけど、まだV8で
AOMORI+SAPPORO=FUKUOKA
に50秒ぐらいかかるな、うちの環境だと
>>120のPythonだと0.05秒
0139デフォルトの名無しさん
2013/09/18(水) 13:37:53.14ためしに
AOMORI+SAPPORO=FUKUOKAを全部回したら>>120は0.8秒
最後を↓のようにしただけ
for x in solve('AOMORI + SAPPORO = FUKUOKA'):
print(x)
0140デフォルトの名無しさん
2013/09/18(水) 14:40:29.340141デフォルトの名無しさん
2013/09/18(水) 15:18:30.33Generatorのチェインが簡単に記述できるやつではないかな
for x in g:
yield x
が
yield from g
でOKになったやつ
Python使いじゃないので
間違ってたら詳しい人訂正よろしく
0142デフォルトの名無しさん
2013/09/18(水) 16:50:47.60トン
0143デフォルトの名無しさん
2013/09/18(水) 17:05:48.28send + more = money に30秒かかってクソわらったわ
同じ条件で >>73 は 2.7秒!!
やっぱりRuby最強だな!!!!
0144デフォルトの名無しさん
2013/09/18(水) 17:11:51.210145デフォルトの名無しさん
2013/09/18(水) 17:26:24.160146デフォルトの名無しさん
2013/09/18(水) 18:16:59.73そりゃ見返りのために余分な投資してるコードから見返り分だけ意図的に
捨てたら遅くなるだけわな
0147デフォルトの名無しさん
2013/09/18(水) 18:26:56.20明らかに無駄な部分もあるけどこのままで。
0148デフォルトの名無しさん
2013/09/18(水) 18:28:05.40実験以外では使わないコードは実験でしかない。
0149デフォルトの名無しさん
2013/09/18(水) 18:39:13.51面白くなりそうならそれでいいじゃん。
このままアルゴリズム大大会をしたいんならいいけどさ。
自分はコードの雰囲気が見たいんだよね。
遊びでコード書いてる時が一番いい時ってどっかの偉い人も言ってたし。
0150デフォルトの名無しさん
2013/09/18(水) 18:51:06.14リアルだと、お里が知れるから発言控えた方が良いよ
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.410154デフォルトの名無しさん
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.67Cはいいけど、Javaなんて書くやつはアホだ
0157デフォルトの名無しさん
2013/09/18(水) 20:00:28.77後々で自分が馬鹿だって気付くんだろうけど、
そのレス見る限りじゃヒッピー連中にはついていかない方が良いと思う
0158デフォルトの名無しさん
2013/09/18(水) 20:04:03.48後々からバカだと気づくのはお前だと思うよ
10年前ならともかく今の時代にJavaなんてゴミで書き続けたことに
0159デフォルトの名無しさん
2013/09/18(水) 20:16:59.43Javaもコミュニティ大きいし結構進化もしてるし、
VMの仕組みとか面白いし、眺めるのは楽しい言語だと思う
書くのは億劫だけど
Cは目的を達成するために仕方無く使う言語で
楽しむ言語じゃないね
0160デフォルトの名無しさん
2013/09/18(水) 20:31:01.40それでもJava以外知らない上流はかなり多いから仕事はなくならないんだろうけど
http://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20130912/20130912141130.gif
0161デフォルトの名無しさん
2013/09/18(水) 20:33:00.08それが本来のグルー言語としてのあり方
Java屋とかのほうがC使わない印象あるな
言語自体速いのと、ピュアJavaに重きを置く文化のせいだと思う
0162デフォルトの名無しさん
2013/09/18(水) 20:53:22.190163デフォルトの名無しさん
2013/09/18(水) 21:04:17.44クライアントサイドJSはCを「使う」「使わない」の問題じゃなくて
「仮に使いたくても使えない」特殊なケースなんだから、
Cを「使う」「使わない」の議論からは最初から外れるんだよ
0164デフォルトの名無しさん
2013/09/18(水) 21:14:43.71もし遅かったら言語ではなく人が疑われる
誰が書いても遅い or 誰が書いても速い両極端な言語は人に優しい
0165デフォルトの名無しさん
2013/09/18(水) 21:15:40.38@Mathematica
やってみたら何とか解けた。
コード行数72行もあるので貼るのはやめとくお。(´・ω・`)
作成時間:2時間弱
計算時間:6分弱
0166デフォルトの名無しさん
2013/09/18(水) 21:18:37.510167デフォルトの名無しさん
2013/09/18(水) 21:30:58.60運がいい場合にたまたま使える例がある。
がそれは最善のコードではない。
そういったたぐいか。
0168165
2013/09/18(水) 21:32:38.82じゃあお言葉に甘えて… (´・ω・`)
@Mathematica
http://ideone.com/WBSrx1
0169デフォルトの名無しさん
2013/09/18(水) 21:37:22.67盲目乙
0170デフォルトの名無しさん
2013/09/18(水) 21:39:53.79ナイーブな総当たりかつハードコードだけど、簡潔かつ速かったので。
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.380172デフォルトの名無しさん
2013/09/18(水) 21:43:22.400173デフォルトの名無しさん
2013/09/18(水) 21:46:27.51(でないとC言語で作れないものが存在するということになってしまう)
evalを使わないほうが優れている。
0174デフォルトの名無しさん
2013/09/18(水) 21:50:20.47例えばRubyで実装したPythonは、Rubyを超えることはない。
0175デフォルトの名無しさん
2013/09/18(水) 21:55:00.86Pythonには複数の実装が存在する。
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> 例えばRubyで実装したPythonは、Rubyを超えることはない。
インタプリタの場合はそれは正しいね。
でもコンパイルしてアセンブラにしてしまえば、
実装言語は関係ないね。
0177デフォルトの名無しさん
2013/09/18(水) 21:58:12.75自分の都合のいい用にしか考えられないようだな
evalとC言語の関係性は無い
evalの有効性はその言語内または同じevalをもつもの同士でのみ比較できる
何故なら最悪evalを使わないとチューリング完全でない言語もありえるから
そうでなくとも>>55ということだアホがwww
0178デフォルトの名無しさん
2013/09/18(水) 22:00:53.41アタナの主張はなに?
evalを使わざるを得ない言語はそりゃあり得るでしょうよ。
そんな言語は劣っているってだけなんだが。
0179デフォルトの名無しさん
2013/09/18(水) 22:03:33.920180デフォルトの名無しさん
2013/09/18(水) 22:04:41.87せやな
0181デフォルトの名無しさん
2013/09/18(水) 22:07:25.43中身はわからんが乙
0182デフォルトの名無しさん
2013/09/18(水) 22:08:12.44問題は、その一覧の中にある(CPython を除く)実装が 3.3 に対応しているか?
ってこと
0183デフォルトの名無しさん
2013/09/18(水) 22:11:42.73別にPython5で書いてもOREthonで書いても怒らんよ
0184デフォルトの名無しさん
2013/09/18(水) 22:12:43.19代わりの環境ってないかな
0185デフォルトの名無しさん
2013/09/18(水) 22:14:40.550186デフォルトの名無しさん
2013/09/18(水) 22:20:41.04Octaveは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.500188デフォルトの名無しさん
2013/09/18(水) 22:26:43.340189デフォルトの名無しさん
2013/09/18(水) 22:27:01.120190デフォルトの名無しさん
2013/09/18(水) 22:33:37.03スクリプト言語が記述するソフトウェアやライブラリ群は基本的に小さいものが殆ど
移植性の問題を切り捨てる為にJavaが使われ、JVMの性能の為にJavaが使われ、
堅牢性の為にJavaが使われ、ライブラリ質の為にJavaが使われ、大規模開発の為にJavaが使われる。
これが現実であり、リアリストの意見であり、そして現実とはかくも非常なものなのだ。
0191デフォルトの名無しさん
2013/09/18(水) 22:34:50.77問題
ある言語の実装全体の集合から無作為にある実装を選んだとき
その速度は何に依存しているでしょうか
0192デフォルトの名無しさん
2013/09/18(水) 22:38:10.78うん、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スクリプト言語が記述するソフトウェアやライブラリ群は基本的に小さいものが殆ど
移植性の問題を切り捨てる為にCOBOLが使われ、堅牢性の為にCOBOL使われ、
ライブラリ質の為にCOBOLが使われ、大規模開発の為にCOBOLが使われる。
これが現実であり、リアリストの意見であり、そして現実とはかくも非常なものなのだ。
何を言いたいかというと、Javaは21世紀のCOBOLだってこと
0196デフォルトの名無しさん
2013/09/18(水) 22:46:43.210197デフォルトの名無しさん
2013/09/18(水) 22:49:27.970198デフォルトの名無しさん
2013/09/18(水) 22:51:08.080199デフォルトの名無しさん
2013/09/18(水) 22:53:00.77コードをクリーンアップして実質40行未満になった
http://ideone.com/q6znjO
SEND + MORE = MONEY 〜 TOTTORI + YAGAMATA = YOKOHAMA
全部合わせて0.6秒程度
eval使ってるくせに、足し算以外には対応してない(する気もない)
0200デフォルトの名無しさん
2013/09/18(水) 22:54:33.19COBOLの代替にrubyつかわれないかな
0201デフォルトの名無しさん
2013/09/18(水) 22:57:32.19見よう見まねでかなり見苦しいかもですが、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.440203デフォルトの名無しさん
2013/09/18(水) 23:03:48.16よって、関数型言語が流行れば良い
0204デフォルトの名無しさん
2013/09/18(水) 23:08:18.44入れないのかよ!
0205デフォルトの名無しさん
2013/09/18(水) 23:11:30.83fromIntegral
fromIntegral
0206デフォルトの名無しさん
2013/09/18(水) 23:12:04.200207デフォルトの名無しさん
2013/09/18(水) 23:14:41.62>>195で書いたのは、現在のCOBOLではなくて全盛期(1970年代-)の話
移植性/堅牢性/ライブラリ品質/大規模開発、すべて備えていたのが当時のCOBOLだった
その姿が今のJavaとだぶって見える.... という既視感
0208デフォルトの名無しさん
2013/09/18(水) 23:14:47.30より現代風に洗練された形で色々な言語でサポートされるんならそれはそれで
大変良いことだ。
0209デフォルトの名無しさん
2013/09/18(水) 23:14:57.46そんなにすぐすぐは無理
ES6のValueObjectsが実質の下準備
あと演算子オーバーロードとも分けて考えられないから
まだまだやることがある
多分ES7の仕事の半分くらいはこれ
0210デフォルトの名無しさん
2013/09/18(水) 23:35:19.87初めて大々的に話し合われるから今週はJSerなら寝られない週だね。
これでES7がいつどのくらいの規模で勧告されそうか予想ができる。
0211デフォルトの名無しさん
2013/09/19(木) 00:40:45.740212デフォルトの名無しさん
2013/09/19(木) 03:49:39.61combinations、permutations は Squeak Smalltalk のをやはり直訳ぎみに移植。
さすが V8 で 0.6 秒。爆速です。
http://ideone.com/SEEJ4x
0213デフォルトの名無しさん
2013/09/19(木) 04:01:30.130214デフォルトの名無しさん
2013/09/19(木) 16:09:15.660215デフォルトの名無しさん
2013/09/19(木) 16:54:31.411強なの?
0216デフォルトの名無しさん
2013/09/19(木) 17:45:35.75だからナイーブな総当たりとか、そういう頭悪いコードについては
他の言語処理系より頑張って最適化してくれる。
0217デフォルトの名無しさん
2013/09/19(木) 18:25:39.02JITコンパイルするPythonの処理系PyPyで>>201を実行してみたら0.8秒になった
同じ環境で>>212は0.5秒
0218デフォルトの名無しさん
2013/09/19(木) 18:32:04.73もう得意とか苦手とかの概念がこの世から無くなりそうなレベル
0219デフォルトの名無しさん
2013/09/19(木) 18:32:42.630220デフォルトの名無しさん
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.24JITはプロファイリングと仮定の積み重ねだから、
その過程を壊すような爛漫なコードは最適化できない。
まず単純ループの最適化なんかはどの言語でも最も力を入れてやるべきで
コードの上手い下手とかの話ではない
特に構造的なレベルの最適化では、V8も〜MonkyもClassを仮定する
https://developers.google.com/v8/design
だから、構造がなってないようなのは遅い
V8が、典型的なJSのコードを元にいろいろ最適化してるのは確かだが、
クソコードの最適化なんて当然出来るわけがない。
一度整数で初期化された変数は、ずっと整数だけが入ることが殆どとか
むしろ、典型的なコードの「お行儀の良さ」に期待した最適化をしてる
一例を挙げると、JSでは配列はただのオブジェクトで、操作には色んな検証が本来必要だが、
普通は配列は配列としてしか使われないので、検証をできる限りスキップできると仮定して、
仮定が崩れた時はフォールバックすることで対処してる
配列への処理も、「穴空き/無し」、「全部整数、全部浮動少数、オブジェクト入り」
とか沢山の条件を元にそれぞれ最適化してる
これがV8や著名なJSエンジンが早い理由
0222デフォルトの名無しさん
2013/09/19(木) 19:35:54.83def 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.980224デフォルトの名無しさん
2013/09/19(木) 20:39:20.72それ結構、言語ごとのユーザ気質が分かって面白いよな
Perlが高いのは今でもPerlを使うユーザはキャリアが長くて全体的なレベルが高いんだろうな
Rubyが回答時間長いのもいかにも典型的なユーザ像に思える、解けるまで粘着ぎみに拘ってる
0225デフォルトの名無しさん
2013/09/19(木) 20:44:31.09このスレでも取り敢えず真っ先にコード書いてくるのPythonerだしなww
0226デフォルトの名無しさん
2013/09/19(木) 20:50:11.98恥ずかしくて表に出せないようなクソコードばかり此処に貼られてるしな
0227デフォルトの名無しさん
2013/09/19(木) 21:00:58.20矩形に収まるようにびっしり書かれたコード塊の方が美しいよね
0228デフォルトの名無しさん
2013/09/19(木) 21:05:53.81それならコンパクトな方がいい
0229デフォルトの名無しさん
2013/09/19(木) 21:42:10.56あんまり煽るとJSer引きこもっちゃうぞ
スレタイに並んでる言語でコンスタントにコード例書かれるのって
RubyとPythonだけで、HaskellやSmalltalkは出るのに
PerlやPHPは出て来もしないんだからな
0230デフォルトの名無しさん
2013/09/19(木) 21:55:11.560231デフォルトの名無しさん
2013/09/19(木) 22:04:31.55まあ、馬鹿にする対象としてあなた方に必要なのはわかりますけどね。
0232デフォルトの名無しさん
2013/09/19(木) 22:12:43.740233デフォルトの名無しさん
2013/09/19(木) 22:24:02.100234デフォルトの名無しさん
2013/09/19(木) 22:50:09.980235デフォルトの名無しさん
2013/09/19(木) 23:16:20.41書いてる人一人だとおも
0236デフォルトの名無しさん
2013/09/19(木) 23:36:37.230237デフォルトの名無しさん
2013/09/19(木) 23:37:45.56あったとしても、ここに例示された会社以外にはないだろう。
0238デフォルトの名無しさん
2013/09/19(木) 23:40:17.720239デフォルトの名無しさん
2013/09/19(木) 23:40:58.320240デフォルトの名無しさん
2013/09/19(木) 23:53:18.64ここで晒してるコードが瞬間的に出てくるならいいけど
熟考した上で実行速度とは無縁で行数ばかりにこだわったコードを書いている場合、
ほとんどの現場で切られる。
読みやすい
0241デフォルトの名無しさん
2013/09/19(木) 23:54:57.48保守しやすいコードは、それはそれで仕事なくなるしな
0242デフォルトの名無しさん
2013/09/19(木) 23:56:00.070243デフォルトの名無しさん
2013/09/20(金) 01:09:25.030244デフォルトの名無しさん
2013/09/20(金) 01:16:58.51行数にこだわるとか言ってる時点で
お前わかってないじゃん。
目指すべきなのは、読みやすいコード
メンテナンスしやすいコード。バグが起きにくいコード
それは実行速度を下げ出ても達成すべきものだ。
それを目指したからってコードが短くなるとは限らない。
わかり易い例で言うと、一つの複雑な関数を
分かりやすく二つ関数に分けるとたいてい行数は増える。
理由は関数定義とそれを呼び出すためのコードが増える。
そして関数呼び出しの分、すごく僅かだが実行速度も下がる。
実行速度も行数も重要度は高くない。
重要なのはメンテナンスしやすさだ。
0245デフォルトの名無しさん
2013/09/20(金) 01:22:09.05短さだけにこだわってるこのスレの連中のことを指摘してるのに、
自覚も無かったようだね。
0246デフォルトの名無しさん
2013/09/20(金) 01:22:25.30長文書く前に、それはここにRubyコード晒してるやつに言えよw
みんな1行になんでもつめようとしているだろ
0247デフォルトの名無しさん
2013/09/20(金) 01:24:47.89このコードの説明をしてって頼んで、
そいつがニコニコして説明しだしたらアウト。
そのコードは説明が必要なコードということ。
読みやすいコードは、説明なぞ不要。
0248デフォルトの名無しさん
2013/09/20(金) 01:25:51.45短さだけにこだわってる、このスレの連中に言ってるんですがなにか?
0249デフォルトの名無しさん
2013/09/20(金) 01:27:11.27乱立する中で、symfonyかcakePHPぐらいしか聞いたことないけど
0250デフォルトの名無しさん
2013/09/20(金) 01:31:13.94自分で定番言ってるじゃん。オマエ馬鹿なの?
0251デフォルトの名無しさん
2013/09/20(金) 02:20:18.87symfonyとcakePHPしかあげなかったんだよ?
それとも、symfonyやcakePHPがいまだに定番なの?
0252デフォルトの名無しさん
2013/09/20(金) 08:14:38.02このまえうちの会社で 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短さに拘ってはいるだろ
でもなきゃ変数名ぐらいは普通にする
0256デフォルトの名無しさん
2013/09/20(金) 09:11:50.46かえって読みにくい
0257デフォルトの名無しさん
2013/09/20(金) 09:24:40.97完全に昔のPerlerと被ってる発想だぞそれ
0258デフォルトの名無しさん
2013/09/20(金) 11:10:45.45どう言い繕ったところで、過去スレは書き換わりませんよ
0259デフォルトの名無しさん
2013/09/20(金) 11:29:45.42http://jsdo.it/oao_oao/55xJ
0260デフォルトの名無しさん
2013/09/20(金) 11:50:45.14読みやすいだの何だのはいかにちっぽけな話なのか痛感するな。
0261デフォルトの名無しさん
2013/09/20(金) 12:42:03.46え、何?戦闘機用の制御プログラムでも作ってるの
0262デフォルトの名無しさん
2013/09/20(金) 13:49:33.15variableName
C#脳
name
Ruby脳
var_name
C++脳
_name
Objective-C脳
mName
Python脳
__var_name
0263デフォルトの名無しさん
2013/09/20(金) 14:27:34.41パスカルケースはクラス名、キャメルケースは関数名だけで
変数はスネークケースにした方が統合性とれていいと思うんだが
どうしても変数にもキャメルケース使ってしまう、、、
0264デフォルトの名無しさん
2013/09/20(金) 14:38:47.50vaの役目を反転して付けたらときだけグローバルに昇格するとか、グローバルを使う時だけvalを付けるとかがいい。
0265デフォルトの名無しさん
2013/09/20(金) 14:51:23.16それはもう解決している
strict modeなら宣言なしでグローバルに代入されることはない
0266デフォルトの名無しさん
2013/09/20(金) 15:09:05.69自分の案件じゃないので中身はよくわからない。
もっともわかってても言えないと思うが...
どこかの研究施設からの受注だったと思う。
たまたま、発注元の研究者が ada にかぶれてるところだったんだろうな。
それより、うちの会社で ada 書ける奴がいることに驚いたわ (w
0267デフォルトの名無しさん
2013/09/20(金) 15:17:44.63Adaって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.550271デフォルトの名無しさん
2013/09/20(金) 16:31:54.88言語を統一しなくても各自好きな言語で書いたほうがコスパがいいとならなくちゃいけないから
0272デフォルトの名無しさん
2013/09/20(金) 18:26:54.67話し言葉は方言が多いしコスパが悪い
コスパが良いのは口を動かさない読み書き専用の言語
0273デフォルトの名無しさん
2013/09/20(金) 18:26:57.96つ LLVM
0274デフォルトの名無しさん
2013/09/20(金) 18:40:35.980275デフォルトの名無しさん
2013/09/20(金) 18:47:16.880276デフォルトの名無しさん
2013/09/20(金) 18:49:20.73PL/1 に色々追加したようなもんだからなぁ。
マルチタスクとか、低水準 I/O とか、機能てんこ盛りだったはず。
どこまで実装されてるかは知らんけど、GCC にもあったはずなので、ちょっと見てみるかな。
0277デフォルトの名無しさん
2013/09/20(金) 19:10:40.57それはつまり誰も素で書きたがらないということだからな。
互換性がマシになったと思ったら今度は土管化問題だな。
0278デフォルトの名無しさん
2013/09/20(金) 19:59:39.66死ねゴミw
0279デフォルトの名無しさん
2013/09/20(金) 20:59:53.520280デフォルトの名無しさん
2013/09/20(金) 21:27:21.530281デフォルトの名無しさん
2013/09/20(金) 21:34:15.000282デフォルトの名無しさん
2013/09/20(金) 22:05:41.550283デフォルトの名無しさん
2013/09/21(土) 02:04:57.58LinuxはC言語で作られているんだが、
誰も書きたがらない?
意味がわからない。
どうせお前が書きたがらない(書けないから)
だけだろう?
0284デフォルトの名無しさん
2013/09/21(土) 02:08:26.03手間も抽象度も性質も違うし
0285デフォルトの名無しさん
2013/09/21(土) 02:09:29.39それを>>277は土管化と言ってるんでしょ
OSやミドルウェアを作るのには当然必要な言語だけど
最上位のアプリをC言語で書くのは
0286デフォルトの名無しさん
2013/09/21(土) 02:11:49.330287デフォルトの名無しさん
2013/09/21(土) 02:14:28.60・クラスがない
・ガベコレがない
・文字列がない
・バッファーオーバーフローが起きる
・正規表現が使えない
・例外機能がない
まあ色々あるでしょ?
0288デフォルトの名無しさん
2013/09/21(土) 02:15:12.58うん、でもその理由はJavaScriptに当てはまらないよね。
ぜんぜん違うじゃん。
0289デフォルトの名無しさん
2013/09/21(土) 02:16:56.380290デフォルトの名無しさん
2013/09/21(土) 02:18:29.54altJSが蔓延ってることは事実なんだから認めなさい
0291デフォルトの名無しさん
2013/09/21(土) 02:44:22.06なんの関係もないだろって話だろ。
altJSが流行ってる理由のは簡単。
まず、どの言語もバージョンアップしていくのが普通。
JavaScriptも同じだが、ブラウザという実行環境は
ユーザーがバージョンアップするものだから、
開発者の都合ではバージョンアップが出来ない。
また一部の例外をのぞいてブラウザではJavaScript以外は動かない。
このJavaScript特有の事情のためにaltJSができただけ。
JavaScriptに問題があったというよりも、
・言語機能を追加したい。
・ブラウザで動く別の言語を作りたい
これが理由なんだから、アセンブラ、C言語とは
全く事情が違うのは明白。
0292デフォルトの名無しさん
2013/09/21(土) 02:47:18.10なぜ新しい言語を作るのかといえば
既存の言語がクソだからだろ。
そうやってプログラム言語というのは
新しい言語とともに進化してきた
0293デフォルトの名無しさん
2013/09/21(土) 02:48:11.360294デフォルトの名無しさん
2013/09/21(土) 03:06:43.31クラスがなかったりモジュールがなかったり
0295デフォルトの名無しさん
2013/09/21(土) 03:08:48.030296デフォルトの名無しさん
2013/09/21(土) 03:25:59.92よその言語は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.170299デフォルトの名無しさん
2013/09/21(土) 04:01:41.28基本構文を拡張しろという話はしていません。
0300デフォルトの名無しさん
2013/09/21(土) 04:26:50.800301デフォルトの名無しさん
2013/09/21(土) 06:19:21.570302デフォルトの名無しさん
2013/09/21(土) 06:53:23.960303デフォルトの名無しさん
2013/09/21(土) 09:34:00.11CoffeeScriptは余計に悪くなってるとしか思えない
0304デフォルトの名無しさん
2013/09/21(土) 09:51:29.190305デフォルトの名無しさん
2013/09/21(土) 09:52:13.63ちょっと触って良いと思ったら、これからはこの言語の時代だみたいに勘違いしてるけど
長く使わなきゃいけないコードなら普通は直接jsで書いたほうが良いのは少し考えれば分かる事
言語の乱立って善意に見せかけた悪意だろ
プログラマが使う言語が分散すればするほど効率悪くなる
0306デフォルトの名無しさん
2013/09/21(土) 09:58:10.49効率だけを考えていたらイノベーションは生まれません
なぜRubyを作ったの?Perlを良くすることに注力すればいいじゃん、に対するMatzの回答
0307デフォルトの名無しさん
2013/09/21(土) 10:02:24.140308デフォルトの名無しさん
2013/09/21(土) 10:17:04.450309デフォルトの名無しさん
2013/09/21(土) 10:17:51.56悪意ではなく合理主義だよ
合理的に効率よくライバルを邪魔するんよ
0310デフォルトの名無しさん
2013/09/21(土) 10:18:02.470311デフォルトの名無しさん
2013/09/21(土) 11:12:33.390312デフォルトの名無しさん
2013/09/21(土) 12:24:59.48適材適所でライブラリ使わないとイノベーションもへったくれもなくなるw
0313デフォルトの名無しさん
2013/09/21(土) 12:51:47.76将来性を考える作業を別に考えろよ。
お前は、常にイノベーションのために
将来性をすてて仕事するのか?
仕事とは別の場所で、イノベーションを生み出す作業はするべきだ。
0314デフォルトの名無しさん
2013/09/21(土) 13:05:30.72ES6のアロー関数は直接の第一引用先はCoffeeScriptなんだよ
他にもCoffeeScriptだとこんな機能があって、こんな効果が出てこんな問題があるということが
凄く参考にされてる。多分直接PythonやRubyから参考するより多かったはず
同じくライブラリも凄く参考にされてる
ライブラリで使われてきた便利な機能や仕組みを標準に持ってこようとする動きも活発
現に、ESの約20人の主力メンバにjQueryの人が2人も入ってる
単純に数で比較するとMicrosoftやAppleと同じ影響力
だからaltJSやライブラリはイノベーションという括りにおいて分かつことは出来ないんだよね
今は著名なものの良い所をどんどん吸収していこうとしている時期だから特にね
0315デフォルトの名無しさん
2013/09/21(土) 13:26:46.13そもそも->ではなくて=>だし、CSって書いたのをC#ではなくてCoffeeScriptだと思ったの?
0316デフォルトの名無しさん
2013/09/21(土) 13:45:11.480317デフォルトの名無しさん
2013/09/21(土) 13:53:46.790318デフォルトの名無しさん
2013/09/21(土) 14:12:22.33いいなこれ。書くのがだいぶ楽になる。
0319デフォルトの名無しさん
2013/09/21(土) 14:29:46.91企業がバックに居ないと安心出来ないのは
底辺SEにありがちだけど、それかな?
0320デフォルトの名無しさん
2013/09/21(土) 14:31:19.55定義された空間のthisをそのまま受け継ぐのね
.applyや.bindなんかでの変更もできない
0321デフォルトの名無しさん
2013/09/21(土) 14:34:45.59むしろ仲間だと思うってか、実際相互参考にあってるしね
この前のMozillaの話もあったけど、
やっぱり実際に実装してあってフィールドバックがないと進みが倍遅くなる
いい関係だと思うよホント
ES4の時に比べたら全てが協力しあってる最高の時期
0322デフォルトの名無しさん
2013/09/21(土) 14:42:43.250323デフォルトの名無しさん
2013/09/21(土) 14:55:32.09死ぬ運命に有るということでOK?
0324デフォルトの名無しさん
2013/09/21(土) 14:58:13.260325デフォルトの名無しさん
2013/09/21(土) 14:59:15.290326デフォルトの名無しさん
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.78Living Standerdでしょ?
0330デフォルトの名無しさん
2013/09/21(土) 16:05:31.06終焉を迎えつつあるだけじゃん
そんなにカリカリすんなよ
0331デフォルトの名無しさん
2013/09/21(土) 16:07:17.68増えていってるでしょ間違いなく
0332デフォルトの名無しさん
2013/09/21(土) 16:43:58.640333デフォルトの名無しさん
2013/09/21(土) 16:45:50.570334デフォルトの名無しさん
2013/09/21(土) 17:15:41.02演算子オーバーロードの最適化とか並の人じゃ理解すらできなくね
0335デフォルトの名無しさん
2013/09/21(土) 17:31:46.770336デフォルトの名無しさん
2013/09/21(土) 17:31:49.280337デフォルトの名無しさん
2013/09/21(土) 17:39:47.70不便だった点がかなり解消されるから勝ち負けとかもうどうでもいいくらいに
JSerにとってはただただ、心から嬉しい限りだよ
その意味ではES6からがスタートで、ES7に期待するのは全うかな
0338デフォルトの名無しさん
2013/09/21(土) 17:59:45.98何があってもそんなの呼ばれたくない名乗りたくない
0339JSを極めし者
2013/09/21(土) 18:05:04.04coffee->ruby・pythonライクなJS
よってTypeも仕事が増えるであろう。たが、
ruby・pyプログラマ>>>Javaプログラマ
なため
イノベーションのあるアプリはcoffeeで書かれる可能性が高いであろう
0340デフォルトの名無しさん
2013/09/21(土) 18:11:26.17勿論個人ではまだまだ使えるけれど、ES.nextの先行実装を謳ってるTSの方がこれからは良くない?
そうじゃないんならいっそES6simとかの方がいいね
0341デフォルトの名無しさん
2013/09/21(土) 19:15:08.080342デフォルトの名無しさん
2013/09/21(土) 19:19:03.640343デフォルトの名無しさん
2013/09/21(土) 20:07:38.77> ruby・pyプログラマ>>>Javaプログラマ
なんの比較だよw
0344デフォルトの名無しさん
2013/09/21(土) 20:09:53.86ECMAScript 5 or 3 に変換することで、
現在のブラウザでも最新のJavaScriptが使用可能です。
そういう時代がもうすぐそこまできている。
0345デフォルトの名無しさん
2013/09/21(土) 20:14:02.29そういううのならソースマップで問題ないかもね
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すべてのものがsourcd mapで問題ないぞw
こういうコンパイル技術に関する常識は
やっぱりスクリプト言語厨にはないのかな?
コンパイラの世界にはな、デバッグシンボルというものがあってな。
デバッグシンボルをつけることで、コンパイルしたバイナリには
含まれてるはずがない変数名や関数名などソースコードをマッピングしてるんだよ。
もう何十年も前に解決した問題だ。
0349デフォルトの名無しさん
2013/09/21(土) 20:28:41.08やっぱり知ったかぶりだったか
0350デフォルトの名無しさん
2013/09/21(土) 20:32:05.11この話かね? 何十年遅れなんだか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わかってる人は黙ってろ。
俺の言うことに反論するな。
0353デフォルトの名無しさん
2013/09/21(土) 20:42:02.52スクリプトをバイトコードやアセンブラまで落として対象のコードに綺麗に復元するならまだしも
一部はASTより上の次元で出来るだけ楽なコンバートしてるんだから完全にマッピングできるわけ無いだろ
0354デフォルトの名無しさん
2013/09/21(土) 20:44:42.01次から名前に【創作】って付けてね。
妄想話で暴れられるの目障りだから。
もしくは【理想論】でも【狂言】でもいい。
NG出来るように目印付けてね。
0355デフォルトの名無しさん
2013/09/21(土) 20:50:24.060356デフォルトの名無しさん
2013/09/21(土) 20:53:19.46物凄い初心者の頃はVSのステップ実行のお世話になったけど
0357デフォルトの名無しさん
2013/09/21(土) 20:59:08.35> 一部はASTより上の次元で出来るだけ楽なコンバートしてるんだから完全にマッピングできるわけ無いだろ
楽なコンバートしてる だから 完全にマッピングできるわけ無い
ならば、
楽なコンバートをしない それならば 完全にマッピングできる
0358デフォルトの名無しさん
2013/09/21(土) 21:05:43.80こっちは現実の話をしているわけで
君の長い夢物語に付き合ってる暇はないんだけど
0359デフォルトの名無しさん
2013/09/21(土) 21:07:10.27344 名前:デフォルトの名無しさん[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.43341 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/21(土) 19:15:08.08
JSにコンパイルする時代が来るって、デバッグすらろくにできなくなるじゃん。
0361デフォルトの名無しさん
2013/09/21(土) 21:08:33.53反省してるならさっさとお題でも出して
0362デフォルトの名無しさん
2013/09/21(土) 21:09:40.190363デフォルトの名無しさん
2013/09/21(土) 21:11:14.000364デフォルトの名無しさん
2013/09/21(土) 21:12:36.73それはなぜ?
言ってみなよ。
0365デフォルトの名無しさん
2013/09/21(土) 21:12:59.860366デフォルトの名無しさん
2013/09/21(土) 21:13:37.390367デフォルトの名無しさん
2013/09/21(土) 21:14:08.51デバッグできるようにするのが
ソースマップでしょう?
0368デフォルトの名無しさん
2013/09/21(土) 21:14:43.58そうじゃなくてもQuickCheck等でテストを充実させるとか、
既にそういう時代になってるのに
このスレってずいぶん遅れてるんですね
0369デフォルトの名無しさん
2013/09/21(土) 21:15:00.15来た、とうとう見えないものが見えて、独り言を始める狂人の特徴。
0370デフォルトの名無しさん
2013/09/21(土) 21:16:10.39http://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.510373デフォルトの名無しさん
2013/09/21(土) 21:18:34.860374デフォルトの名無しさん
2013/09/21(土) 21:19:12.37デバッグに問題になるような最適化を
しないし、ソースマップも吐き出す。
デバッグビルドの存在も知らないんだろうな。
スクリプト言語の連中は。
0375デフォルトの名無しさん
2013/09/21(土) 21:19:21.76JS土管説に対抗する最後の砦がステップ実行の不在だったからかな?
0376デフォルトの名無しさん
2013/09/21(土) 21:19:51.63coffeescriptのコードのままデバッグができるなら
ステップ実行も出来るんじゃね?
0377デフォルトの名無しさん
2013/09/21(土) 21:20:09.53別にそれで何の問題もない
0378デフォルトの名無しさん
2013/09/21(土) 21:20:21.19激おこプンプン丸なのはお前だけだと思うよw
0379デフォルトの名無しさん
2013/09/21(土) 21:21:11.62ソースマップで、CoffeeScriptのまま
ステップ実行できる時代に
jsでステップ実行とかなんの意味があるの?
0380デフォルトの名無しさん
2013/09/21(土) 21:25:25.93絡んだり意地はってる間にいつも拗れる
>>342
「(デバッグはほとんど)問題ない」
>>345
「(具体的にこれは)問題ない」
>>348
「(具体的にこれは)問題ない(かもしれないが基本的には問題がある)」
と受け取って
「全て問題ない」
と大口で煽る
〜〜そして荒れる〜〜
荒れる必要なくね?
0381デフォルトの名無しさん
2013/09/21(土) 21:27:40.84問題が有るというのなら、
ある場所を言えばいいだけの話なのに。
0382デフォルトの名無しさん
2013/09/21(土) 21:28:09.850383デフォルトの名無しさん
2013/09/21(土) 21:29:17.300384デフォルトの名無しさん
2013/09/21(土) 21:29:41.910385デフォルトの名無しさん
2013/09/21(土) 21:31:09.340386デフォルトの名無しさん
2013/09/21(土) 21:31:38.04さっさと名前に目印つけるか、荒れるから煽り発言控えてね
0387デフォルトの名無しさん
2013/09/21(土) 21:31:38.870388デフォルトの名無しさん
2013/09/21(土) 21:32:18.89残念ながらお前の願いは叶うことはなかったwww
0389デフォルトの名無しさん
2013/09/21(土) 21:32:54.65何も生産性がないもの
0390デフォルトの名無しさん
2013/09/21(土) 21:33:14.92ってそういう事すら言っても無駄なのか、こういう奴の場合・・。
0391デフォルトの名無しさん
2013/09/21(土) 21:34:06.730392デフォルトの名無しさん
2013/09/21(土) 21:34:09.180393デフォルトの名無しさん
2013/09/21(土) 21:35:49.06女子小学生土管ってなんかひy
0394デフォルトの名無しさん
2013/09/21(土) 21:36:10.700395デフォルトの名無しさん
2013/09/21(土) 21:36:13.77ブラウザで動く唯一の言語っていうアドバンテージが無くなったら
ヤバいって分かってる感じだな
0396デフォルトの名無しさん
2013/09/21(土) 21:37:08.440397デフォルトの名無しさん
2013/09/21(土) 21:37:30.30あれ? もうそんなアドバンテージは
なくなってるんじゃなかったの?
おかしいなぁ。
まだJSの天下だよw
0398デフォルトの名無しさん
2013/09/21(土) 21:38:04.80そいつが真犯人だろうな。
0399デフォルトの名無しさん
2013/09/21(土) 21:39:17.670400デフォルトの名無しさん
2013/09/21(土) 21:41:14.41他の言語より色んな物抱えてて要求も多いから悪く見えるだけで、
プロトタイプベースとか設計はいいし、ポテンシャルもあると思う。
問題と言っても、当初想定されてなかった大規模開発の部分だから
それは今治していければ、十分だと思うよ。
個人的にはどんどん進化していく未来感が好き。
0401デフォルトの名無しさん
2013/09/21(土) 21:41:25.180402デフォルトの名無しさん
2013/09/21(土) 21:42:50.83正体も同じ真犯人か。
わかりやすいなw
0403デフォルトの名無しさん
2013/09/21(土) 21:43:07.25他の言語がとっくの昔に実装した機能を
やっと取り込もうかって状況に未来を感じちゃいますか……
0404デフォルトの名無しさん
2013/09/21(土) 21:43:48.50その未来感のある機能が使えるのは10年後とかだろうな
0405デフォルトの名無しさん
2013/09/21(土) 21:44:38.39ブラウザで動くというのを
他の言語はやっと手に入れたんですよね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パッケージ多すぎて選定に時間かかる。
0409デフォルトの名無しさん
2013/09/21(土) 21:47:52.35いろんな言語を動かす余地が残されていたんだよな。
実際にVBScriptだって動いていた。
<script type="text/vbscript"></script>
ここに他の言語を指定することで
他の言語に対応できたんだよ。
それを生かせなかったんだよね。
ブラウザで動くことは意味が無いと思っていたんだろうね。
0410デフォルトの名無しさん
2013/09/21(土) 21:49:14.30npmだけじゃない。
cpamもgemsも、だれでも参加できる
仕組みである以上、パッケージが多くなるのは
仕方がない話。
0411デフォルトの名無しさん
2013/09/21(土) 21:49:24.92requirejsの登場で、本当はそういう機能があったことが判明した
jsはそういう凄い言語だよ
誤解されてただけだった
0412デフォルトの名無しさん
2013/09/21(土) 21:49:31.92Pythonではこういう機能がある、Rubyではこうだって話合ってるの見るの凄く楽しいよ?
各言語の良い所を取り入れられて凄く満足してる。
勿論感謝もしてるんだよ。結構仲間だと思ってる。
0413デフォルトの名無しさん
2013/09/21(土) 21:51:07.86クロージャが入ったのは早いと思う
javaでは今だに入ってないし
0414デフォルトの名無しさん
2013/09/21(土) 21:51:08.00ただでさえ当時document.layerとdocument.allで揉めてた時代で、
互換性もない言語なんて使ってられるかって感じだった。
0415デフォルトの名無しさん
2013/09/21(土) 21:52:05.51どうしても動的解決の性質を持ったWebと合わないということで
ES4が却下されてから今まで議論を避けてる
でも簡単なモジュールの仕組みならES6で入るよ
妥協点
0416デフォルトの名無しさん
2013/09/21(土) 21:52:06.24互換性のない言語って?
vbscriptのこと?
0417デフォルトの名無しさん
2013/09/21(土) 21:52:46.18requirejsを知らないのか
0418デフォルトの名無しさん
2013/09/21(土) 21:52:55.67クロージャと同機能なのは入ってるよ。
入ってないのはlambda。java8でも高階関数無理。
0419デフォルトの名無しさん
2013/09/21(土) 21:53:42.22誰もスマホでブラウザなんて使ってねーよ
0420デフォルトの名無しさん
2013/09/21(土) 21:54:18.52ネスケが止せばいいのにわざわざ独自言語開発して搭載 → 対抗してIEも搭載 → 今に至る。
こんだけの話。
もしネスケがJSなんてゴミを作らずにPythonなり搭載していたら・・・
MSが.NETを始めるときにVB6/VBA/VBScriptを放置するような真似をしなかったら・・・
つーか一番の戦犯はMSだろうな。
MSってフロントサイドもC#やASP.NETで開発することを想定していたからVBSは捨てたんだっけ?
0421デフォルトの名無しさん
2013/09/21(土) 21:54:52.38入ってないよ
無名インターフェースのことならfinalが必要だし
そもそも同等と言ってもinterface定義が必要で記述が冗長すぎるし
0422デフォルトの名無しさん
2013/09/21(土) 21:54:59.37そう。
なんか拡張でNNでも可能になった気もしたが、それぐらいの異物だった。
0423デフォルトの名無しさん
2013/09/21(土) 21:55:26.39むしろ逆じゃね
スマホが普及してHTML5が普及
HTML5の一部分であるJSもそれに便乗
0424デフォルトの名無しさん
2013/09/21(土) 21:55:49.50初期のPythonなら良かったの?
初期のRubyなら良かったの?
まさかVBがいいなんて言わないよね???
0425デフォルトの名無しさん
2013/09/21(土) 21:56:04.74逆。Javaに入るのはクロージャじゃなくてラムダ(自称)。
当初はクロージャにする予定だったんだけどね。
ローカル変数が取り込めるようになることはもう永遠にないと思われる。
0426デフォルトの名無しさん
2013/09/21(土) 21:56:30.74python3ならともかく、2じゃjavascriptのようなエレガントな
イベント処理は無理だろう
0427デフォルトの名無しさん
2013/09/21(土) 21:57:16.89final指定だけど、ラップすれば変更できるから、
実際はmutableなオブジェクトで包む事が多い。
0428デフォルトの名無しさん
2013/09/21(土) 21:57:21.33何が逆なんだ?
javaにはまだ入ってないんだろ
だったらあってるじゃないか
0429デフォルトの名無しさん
2013/09/21(土) 21:57:40.88既に色んな言語で使われてて実績のある機能は本当に良い
0430デフォルトの名無しさん
2013/09/21(土) 21:58:26.65そこまでくると、「ただ同機能が実現できるだけ」だな
記述が違いすぎ
0431デフォルトの名無しさん
2013/09/21(土) 21:58:27.93その状況が変わったのが、2005年のprototype.js
2006年のjQueryだったんだよな。
その頃はまだIE6の時代だった。
Firefoxは1.5、Safariは2、Chromeがでたのはその3年後の2008年
そんなIE6全盛期の時代に大きな変化が起きた。
0432デフォルトの名無しさん
2013/09/21(土) 21:59:08.27このまま無視し続けて無かったことにするのか
0433デフォルトの名無しさん
2013/09/21(土) 21:59:21.83やるとしたら無名クラスを宣言するしかないんだけど、
その無名クラスに引数を渡したり、その無名クラスから戻り値を受け取る方法がないっていう
C#だとキャプチャーとかあるのに、Javaだと何故か引数を渡すにはfinalをつけないといけないんだけど、
そんなポンコツをクロージャーと呼んでいる。
0434デフォルトの名無しさん
2013/09/21(土) 22:00:33.29クロージャとは呼んでないよ
初期はクロージャと呼んでたけどキャプチャを諦めてからラムダと呼んでいる
0435デフォルトの名無しさん
2013/09/21(土) 22:00:42.64ようわからんな・・。
そもそもクロージャって変更しなくても
キャプチャだけで十分なはずなんだが。
0436デフォルトの名無しさん
2013/09/21(土) 22:01:14.010437デフォルトの名無しさん
2013/09/21(土) 22:02:04.54お前がそう思ってるだけだろ
0438デフォルトの名無しさん
2013/09/21(土) 22:03:11.65お前がどう思ってるかはお前の勝手だが、>>434はマジだからなw
0439デフォルトの名無しさん
2013/09/21(土) 22:04:06.89処理系が普及する以外にもハードルはあるんだなぁ……
0440デフォルトの名無しさん
2013/09/21(土) 22:05:04.41しかし、434もなんか変だな
無名クラスのことをラムダって呼んでるのか?
0441デフォルトの名無しさん
2013/09/21(土) 22:05:07.71要件としては十分なはずだけどって意味だよ。
0442デフォルトの名無しさん
2013/09/21(土) 22:05:18.31面白い視点
0443デフォルトの名無しさん
2013/09/21(土) 22:08:50.70お前が十分だと思ってるだけじゃね?
そもそもそれを利用してクラスがないのに、
クラスと同等なことが出来たわけで
0444デフォルトの名無しさん
2013/09/21(土) 22:09:30.25ラムダに引数がないときも()は省略できない。
()=> Console.write("おまんこ!")
0445デフォルトの名無しさん
2013/09/21(土) 22:10:42.93Java8に入るラムダのことだよ
もともとJavaに関数式みたいなの入れようぜと話が出てから議論の初期はクロージャと呼んでいて、
当然外のローカル変数を変更できる予定だった
0446デフォルトの名無しさん
2013/09/21(土) 22:11:03.56変更は要件じゃないだろと言ってるだけだよ。
Javaがどう実装してるかは大して興味はない。
0447デフォルトの名無しさん
2013/09/21(土) 22:17:55.10C#は絶対にガラガラポンができない言語だから、
極力、将来的な拡張に制約が出ないようにしなきゃいけない
実際ScalaとかCoffeeとか破綻してるしな
0448デフォルトの名無しさん
2013/09/21(土) 22:22:03.22引数なし、()要らずラムダは今当にES6に入るかどうかアメリカで話し合われてる。
でも一部の(多分セミコロン省略?)スタイルで現に問題があるんだってさ。
0449デフォルトの名無しさん
2013/09/21(土) 22:22:49.200450デフォルトの名無しさん
2013/09/21(土) 22:23:00.26素のJSを使うのはEmacsを初期設定のまま使うのと同じ
使う意味がない
0451デフォルトの名無しさん
2013/09/21(土) 22:26:22.48追い詰められる気持ちってどうなんだろう?
0452デフォルトの名無しさん
2013/09/21(土) 22:28:51.450453デフォルトの名無しさん
2013/09/21(土) 22:30:10.89一体何を基準に言語を選ぶんでしょうねと。
0454デフォルトの名無しさん
2013/09/21(土) 22:30:11.38その結果変な制約だらけになって「驚き最小」とは正反対の言語になってるよね
0455デフォルトの名無しさん
2013/09/21(土) 22:33:11.31セミコロン省略ってどこ発祥なのかな?
Googleは禁止してるし、Mozillaは暗黙的に使う前提のように見えるし。
0456デフォルトの名無しさん
2013/09/21(土) 22:33:28.28BASICじゃね?
0457デフォルトの名無しさん
2013/09/21(土) 22:34:21.11JSは良く耐えてきたよ、ES4も先走らなくてよかったかもね
0458デフォルトの名無しさん
2013/09/21(土) 22:36:02.74発祥というか支持してるのはNode
http://qiita.com/alucky0707/items/856d73e4fed7d18a2c75
0459デフォルトの名無しさん
2013/09/21(土) 22:36:09.29業務要件、工員のコスト、プラットフォーム、開発環境、etc
言語仕様なんてはっきり言ってどうでもいい
0460デフォルトの名無しさん
2013/09/21(土) 22:37:41.05あ、これに影響があるって話だったから
問題はセミコロンじゃなくてコンマファーストとかかも知れない。
0461デフォルトの名無しさん
2013/09/21(土) 22:39:30.44ありがとう。npmがそうだったのか。
結構な勢力だな。
0462デフォルトの名無しさん
2013/09/21(土) 22:41:08.85巨大なクソの山になったC++みたいになりそう
0463デフォルトの名無しさん
2013/09/21(土) 22:42:32.29IE6以前に、JavaScriptの問題点(ライブラリの不足)を指摘して、
(当時)DHTMLの可能性に目をつけAltJSが出てくることを予見し、
今のJavaScriptを取り巻く環境を言い当てた俺が答えてやるよ。
将来は言語ではなく処理系で言語を選ぶようになってくる。
処理系が持つべき機能が拡張され標準化されるようになる。
現状のようにコンパイルするたびにコンパイラを実行するのではなく
コンパイラはサービスとして常駐起動するようになる。
プロジェクトディレクトリを指定しコンパイラをサービスとして起動し
エディタはコンパイラサーバーと通信しながら
(ソースファイル単体ではなく)プロジェクト全体から情報をあつめ
高速で効率的な開発サポートができるようになる。
そのために必要な機能が標準化される。
その時代の開発ではコンパイルはリアルタイムで行われる。
(なぜならサービスとして起動してるから、修正している所以外の
情報をすべて持っていてコンパイル済みだから)
言語はこの「標準化された機能」を効率的に提供できるような形に進化していく。
0464デフォルトの名無しさん
2013/09/21(土) 22:45:04.03そんなもんVisualStudioとか昔から普通にやってること
0465463
2013/09/21(土) 22:45:09.16> いえいえ、あと数年もして言語の機能に差が見られなくなった時
> 一体何を基準に言語を選ぶんでしょうねと。
あ、質問に答えてなかったなw
つまりだ、言語というよりも、開発者にどれだけ情報を提供
できる処理系が存在するかで、言語を選ぶようになってくる。
この話に言語仕様は全く関係ないってわけでもなく、
言語仕様によって提供できる情報は異なってくる。
0466デフォルトの名無しさん
2013/09/21(土) 22:46:42.99webでよく使われるクロージャでグローバル、スコープ汚染を避ける方法だからな
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割は解決する
あとは行を括弧で始めないとかそんなところ
0467463
2013/09/21(土) 22:46:49.72テキストエディタでできるようになるのが
重要なのだよ。
またサービスとして起動していると
一つのプロジェクトをリアルタイムで
複数の開発者が共有して開発できるかもな。
これがどういった結果をもたらすかはまだ分からないが、
ソースコードをマージするという作業を
超えた何かが生まれるかもしれないな。
0468デフォルトの名無しさん
2013/09/21(土) 22:47:23.44セミコロンフリーって
確かRubyでもなんらかの
問題が起きるんじゃなかったっけ?
0469デフォルトの名無しさん
2013/09/21(土) 22:48:49.85コンパイル言語なんてどうせIDEないと使いものにならないんだから意味ない
0470デフォルトの名無しさん
2013/09/21(土) 22:50:48.350471デフォルトの名無しさん
2013/09/21(土) 22:55:10.10最善を尽くすのが当然だと思ってるんじゃないの
妥協したり諦めたりする方が変だ驚きだという人もいるだろ
0472デフォルトの名無しさん
2013/09/21(土) 22:56:35.79これでも>>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エディタ連携はctagsとかあるし、CI環境なんてjavascriptにもあるし。
標準化されるしか言ってないな。
0474デフォルトの名無しさん
2013/09/21(土) 23:00:43.52})
});
0475デフォルトの名無しさん
2013/09/21(土) 23:04:03.79TypeScriptのコンパイラもそうらしいね
0476デフォルトの名無しさん
2013/09/21(土) 23:32:40.11本業じゃなくてよかった
0477デフォルトの名無しさん
2013/09/21(土) 23:39:12.330478デフォルトの名無しさん
2013/09/21(土) 23:48:54.42function 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.870480デフォルトの名無しさん
2013/09/21(土) 23:55:23.08ちなみに次世代DOMはjQueryっぽくなる
プラグインの影響は大きい
0481デフォルトの名無しさん
2013/09/21(土) 23:59:02.95ググったら似たようなことで悩んでる奴いっぱいいる感じだけどアレなんなの
原因突き止めなくてもしばらく待ってたら動くようになるんですかね・・・・(めんどくさい)
0482デフォルトの名無しさん
2013/09/22(日) 00:02:01.07逆ならいくつか思いつくがそのパターンは珍しい
0483デフォルトの名無しさん
2013/09/22(日) 00:09:18.21> 予言するって変更部分のみコンパイルなんてccacheとか古くからあるし、
ccacheってファイル単位でしかないぞ。
ファイルの中のクラス単位、関数単位でなければだめだ。
更に言うならば、ccacheはファイル単位なんで、
1バイトでも中身が変われば役に立たない。
0484デフォルトの名無しさん
2013/09/22(日) 00:12:55.72どんな言語でもDOMやWebAPIをサポートすればコールバック地獄になるのは避けられん
0485デフォルトの名無しさん
2013/09/22(日) 00:13:39.05> jQueryってローカルで動いたと思ったらサーバー上で動かなかったりして
具体例を出してくれなきゃ
お前の勘違いとしか言えないな。
原因突き止めたんだろう?
突き止めた原因の一つぐらい
言ったらどうだ?
0486デフォルトの名無しさん
2013/09/22(日) 00:14:38.05> JavaScriptとかJavaって普通に書くと、これが非常に多いよね
>
> })
> });
指摘できるのがその程度だなんて・・・。
0487デフォルトの名無しさん
2013/09/22(日) 00:16:22.690488デフォルトの名無しさん
2013/09/22(日) 00:16:58.880489デフォルトの名無しさん
2013/09/22(日) 00:18:02.07そのコールバック地獄を解決したのが
ECMAScript6だと思うんだけど?
0490デフォルトの名無しさん
2013/09/22(日) 00:21:56.98じゃあこの程度じゃない「セミコロンがうざい例」を出してください。
0491デフォルトの名無しさん
2013/09/22(日) 00:22:03.35hoge(new HogeCallback() {
@Override
public void callback(int x) {
}
});
だろw
0492デフォルトの名無しさん
2013/09/22(日) 00:23:01.86既存のWebAPIがジェネレータに対応してくれるわけじゃない
0493デフォルトの名無しさん
2013/09/22(日) 00:26:00.10じゃあclangでもhugsでも何でもいいよ。
ただの既成品のアイディアや受け売りじゃ、
予言でも何でもないって言いたいだけだから。
0494デフォルトの名無しさん
2013/09/22(日) 00:26:05.59苦しみが1/3位になる気がする
0495デフォルトの名無しさん
2013/09/22(日) 00:28:13.49そもそもジェネレータは非同期コールバックの解決にはなりませんよ
メソッド繋いだほうがマシなレベルのハック
0496デフォルトの名無しさん
2013/09/22(日) 00:28:18.12今からWeb上のJSを始めるのはかなりきつい
0497デフォルトの名無しさん
2013/09/22(日) 00:30:41.640498デフォルトの名無しさん
2013/09/22(日) 00:32:28.48オフサイドルール導入されたら省略する。
0499デフォルトの名無しさん
2013/09/22(日) 00:33:32.36IndexedDBとかFileAPIとかジェネレーターで書いてみ
勿論標準はコールバックだからラッパーを少々不格好にかませることになるけど
それでもあまりの美しさに本当に泣けるから
AjaxとかはPromiseでいいよ?
でもこの手のものはチェーンでも冗長だわ
まあ、やっぱりWorkerで同期API使うのが一番いいかもしれないけどね
0500デフォルトの名無しさん
2013/09/22(日) 00:34:26.020501デフォルトの名無しさん
2013/09/22(日) 00:34:59.66> 既存のWebAPIがジェネレータに対応してくれるわけじゃない
ならば既存のWebAPIをジェネレータに変換する
ライブラリを作ればいいのではないか?
0502デフォルトの名無しさん
2013/09/22(日) 00:38:26.31ECMAScript6の仕様みてみたら
・デフォルト引数
・可変長引数
・まともな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そういうことを話してるんじゃないんだよ……
>>478-484
をちゃんと見てくれ
扱いづらいのは言語というよりむしろAPIの責任と言いたんであって
APIは言語でカバーできると言う論は噛み合ってないんだよ
0504デフォルトの名無しさん
2013/09/22(日) 00:41:05.56Proxyって、これ他の言語で実装された実績あるの?
0505デフォルトの名無しさん
2013/09/22(日) 00:41:31.810506デフォルトの名無しさん
2013/09/22(日) 00:46:13.61> じゃあclangでもhugsでも何でもいいよ。
> ただの既成品のアイディアや受け売りじゃ、
> 予言でも何でもないって言いたいだけだから。
なんか勘違いしてね? 俺が言ってる予言は
新しい技術ができるなんてひとことも言っとらん。
将来の一般的な開発スタイルがどうなるかの予言だ。
JSのライブラリもソースマップもAltJSも類似の技術は
他の言語には既にあった。そんなの当時でも知ってる話だ。
JSに足りないものを言い、それが普及するという予言だ。
今回の予言もまさにそれと同じ。
JS、そしてスクリプト言語全体に足りないもの。
それが>>463の内容だ。そしてそれが将来普及する。
当時もいたよ。JavaScriptの潜在能力を見抜けず
俺の言ったことを理解できない人間。
実際に俺が言った世界になったがな。
0507デフォルトの名無しさん
2013/09/22(日) 00:47:32.360508デフォルトの名無しさん
2013/09/22(日) 00:48:58.10> 扱いづらいのは言語というよりむしろAPIの責任と言いたんであって
> APIは言語でカバーできると言う論は噛み合ってないんだよ
コールバックの話だろう?
コールバックでしか実現できない言語あれば
コールバックを使うAPIしか提供できないではないか?
そこに言語で違うやり方が出来るようになったら
APIもそれを使った、使いやすいAPIができるだろう?
0509デフォルトの名無しさん
2013/09/22(日) 00:54:43.59jQueryを要求するのはなんか変な感じだけど、
ECMAScriptにPromiseとか入ったら
標準機能を使うWebAPIは変ではないよな。
0510デフォルトの名無しさん
2013/09/22(日) 00:59:13.66一応DOM周りのAPIはJSから切り離されてるという立場で話してるから
その気になればどの言語でも導入可能
0511デフォルトの名無しさん
2013/09/22(日) 01:01:23.46> 他の言語にはWeakな(GCを妨げない)SetやMapってあるの?
あるよ
0512デフォルトの名無しさん
2013/09/22(日) 01:01:25.910513デフォルトの名無しさん
2013/09/22(日) 01:03:42.72そのレス
何がいいたいのかさっぱりわからんw
>>511
C++やJavaにあったよな。
WeakなSetやMap
言語標準かどうかは忘れたけど
見たこと有るわ。
0514デフォルトの名無しさん
2013/09/22(日) 01:05:24.63氷山の一角だけど例えばコレ
http://blog.asial.co.jp/1101
オブジェクトリテラルとモジュールパターンを紹介してるけど
2つ書き方に方法があることがむしろ俺にとっては問題だ・・・
0515デフォルトの名無しさん
2013/09/22(日) 01:06:52.82Perlディスってるんですか?
いろんな書き方がある方が
優れてるんですよ!?
0516デフォルトの名無しさん
2013/09/22(日) 01:07:06.19一応全部がDOMのホストオブジェクトで配列でさえもJSのArray使ってないし
TypedArrayは逆輸入されたし、ArrayBufferも今逆輸入しようとしてるのをみると、
上で書いたライブラリの件もそうだけど、JS「が」Webありきなんだな
0517デフォルトの名無しさん
2013/09/22(日) 01:07:26.72TypeScriptが生成したコード読んで真似すればいいよ
altJSの中じゃ多分一番標準を重視してて見た目も綺麗
0518デフォルトの名無しさん
2013/09/22(日) 01:10:06.77> WebAPIは意外とJSありきじゃないかもな
当たり前だと思うが?
WebAPIはブラウザありきだろ。
フォームのPOST/GETがベースになってる。
POST/GETができればどんな言語でも使える。
0519デフォルトの名無しさん
2013/09/22(日) 01:12:54.70同じのが2つあるんじゃないぞ
両方使い時があるんだよ
あとES6式だとこれからかなりイメージ変わる
まあ好きに書けばいいさ
0520デフォルトの名無しさん
2013/09/22(日) 01:13:44.59Perlもだんだんカオスになってきたね
昔のコードならそこそこわかるけど最近のコードはさっぱり
>>517
ありがとう
早速ぐぐってみる
0521デフォルトの名無しさん
2013/09/22(日) 01:14:50.00IndexeDBとかWebAudioAPIとかそれらも全部含めて言ってるのよ
0522デフォルトの名無しさん
2013/09/22(日) 01:14:56.98> JS「が」Webありきなんだな
もともとネットスケープが
ブラウザに載せた言語ですから。
常識だと思うんですがねぇ。
まあ、それが功を奏して世にも珍しい、
ファイルアクセス、標準有出力を
標準で備えてない言語になったわけですが。
それが十数年の時を超えて、
何もないなら、自分たちで世界を作れるということで
nodeという非同期ベースの実行環境ができることに
至ったわけで、世の中何が成功するかわからんよね。
デメリットがメリットになったわけだし。
0523デフォルトの名無しさん
2013/09/22(日) 01:16:44.490524デフォルトの名無しさん
2013/09/22(日) 01:17:42.74> IndexeDBとかWebAudioAPIとかそれらも全部含めて言ってるのよ
それらは、WebAPIではなく
JavaScript APIですが?
0525デフォルトの名無しさん
2013/09/22(日) 01:22:07.62JavaScript=ECMAScript+Web
と言うんならそう言うのかもしれないけど、それは屁理屈だと思う
仕様はEcmaScriptに何も依存してないよ
0526デフォルトの名無しさん
2013/09/22(日) 01:22:25.92言うだけならそこらで地震起こる言ってる奴と変わらんだろ。
自覚がないのは本当に危ないぞ。
0527デフォルトの名無しさん
2013/09/22(日) 01:23:32.49地震起こるって言っている奴と同じではない。
地震を的中させた奴と同じである。
0528デフォルトの名無しさん
2013/09/22(日) 01:23:55.18自分たちでDart用の標準仕様策定しないといけないの?
そうじゃないでしょ
0529デフォルトの名無しさん
2013/09/22(日) 01:24:14.94どう見てもそれ書いてるやつは後者の書き方推してるだろ。
0530デフォルトの名無しさん
2013/09/22(日) 01:24:58.26どのライブラリでもいいんだけどさ、
仕様が特定の言語に依存したものなんてあるの?
それはどういった点で依存してるというの?
それがWebAPIにはないの?
0531デフォルトの名無しさん
2013/09/22(日) 01:26:09.39>>516
0532デフォルトの名無しさん
2013/09/22(日) 01:27:59.30へ? それが何を説明してんの?
IndexeDBとかWebAudioAPIは仕様で
JavaScript(EcmaScript)の
データ型を使用してるでしょ。
JavaScript(EcmaScript)に依存してるじゃんか。
0533デフォルトの名無しさん
2013/09/22(日) 01:27:59.38そこら辺は感覚の問題だろ
だが比較的抽象度が高いということだろ
0534デフォルトの名無しさん
2013/09/22(日) 01:30:09.600535デフォルトの名無しさん
2013/09/22(日) 01:31:23.67うん。変換レイヤーを儲けてある言語のデータ型を
他の言語のデータ型に変換してもいいというのなら、
仕様が特定の言語に依存したライブラリなんて世の中に無いよね。
そう言ってるんですが?
0536デフォルトの名無しさん
2013/09/22(日) 01:32:39.670側推しの時は0だと証明出来なければ認めない
1側推しの時は1だと証明出来なければ認めない
最初から意見を押し通す気なんだから相手しても無駄
0537デフォルトの名無しさん
2013/09/22(日) 01:33:33.24おい、他人が横から口を挟むなw
せっかくエスパーしてんのにさ。
0538デフォルトの名無しさん
2013/09/22(日) 01:34:02.63なるほどね
よくわかったよ
ありがとうね
0539デフォルトの名無しさん
2013/09/22(日) 01:35:27.070540デフォルトの名無しさん
2013/09/22(日) 01:42:13.030541デフォルトの名無しさん
2013/09/22(日) 01:42:35.14他の言語もなにもサーバーサイドJSは最初からあったし、
ASPの時代からあったよ。
ついでにJavaScriptへのトランスレータも当時既にあった。
そりゃブラウザでこれだけ普及してれば、いつかは流行る。
そんなのを見て予言が的中って、歴史を知らなさすぎる。
とりあえず俺も、ネイティブバイナリコンパイラは消えて、
llvm+配布時aotコンパイルで、
アーキテクチャ関係なくなるって言っておくわ。
0542デフォルトの名無しさん
2013/09/22(日) 01:44:37.04>ASPの時代からあったよ。
ASPの時代からJavaScriptへのトランスレータもあった。
0543デフォルトの名無しさん
2013/09/22(日) 01:45:02.810544デフォルトの名無しさん
2013/09/22(日) 01:50:35.290545デフォルトの名無しさん
2013/09/22(日) 01:52:11.67> 他の言語もなにもサーバーサイドJSは最初からあったし、
サーバーサイドJSの話なんかしていませんが?
0546デフォルトの名無しさん
2013/09/22(日) 01:54:04.330547デフォルトの名無しさん
2013/09/22(日) 01:56:12.47> そりゃブラウザでこれだけ普及してれば、いつかは流行る。
当時は全然普及していなかったよ。
JavaScriptはOFFにするのが
自称情強だった時代。
0548デフォルトの名無しさん
2013/09/22(日) 02:08:45.15当時の年代によるけど、IE4以降なら十分普及してたよ。
もうその時、既にリッチクライアントとか出始めてた頃。
というか2chのPCオタを標準にするなw
0549デフォルトの名無しさん
2013/09/22(日) 02:12:15.40時代を先取りしすぎていたのが残念なところだが。
http://tech.nitoyon.com/ja/blog/2009/01/20/ie4-blueprint/
0550デフォルトの名無しさん
2013/09/22(日) 02:13:50.930551デフォルトの名無しさん
2013/09/22(日) 02:16:39.91誰がそんなことを言ったんだろう?
書いてない幻が見える人かな?
0552デフォルトの名無しさん
2013/09/22(日) 02:21:29.74当時JavaScriptなんて普及していたとは言えんだろ
Perlですらアクセスカウンターに使うのが普通、よくて掲示板やチャット自作ぐらいだし
JavaScriptなんてお遊びでalert出していた個人サイトがあったぐらいだぞ
IE4時代に既にJavaScriptが普及していたなんてとんでもないわ。
そりゃ大抵のブラウザは対応していたけど
0553デフォルトの名無しさん
2013/09/22(日) 02:26:03.57さすがにDOM L2が整備された頃なら文句ないだろ。
いつ予言したのかは知らんが。
0554デフォルトの名無しさん
2013/09/22(日) 02:27:26.14マウスカーソルに変なキャラが追尾したり、背景に雪を降らせたり・・・
ちょっとした装飾や自己満でウィンドウサイズ変える嫌がらせとかその程度だったな
googleがmap公開するまでは見向きもされなかったわ
0555デフォルトの名無しさん
2013/09/22(日) 02:33:50.59JavaScriptは右クリック禁止とかそういうお遊びにしか使われてなかったし
Google MapってIE6ではまともに動いたっけ?
当時は既にFireFoxに移行していてIEなんてすぐにエラー吐いて落ちるゴミは切ったから知らん
0556デフォルトの名無しさん
2013/09/22(日) 02:33:59.64若くて羨ましい。
0557デフォルトの名無しさん
2013/09/22(日) 02:38:00.03具体的にサーバサイドとの連携が生まれたって感じたのはAjaxが注目されてからだね
XMLHttpRequest自体は昔からあったようだけど
0558デフォルトの名無しさん
2013/09/22(日) 02:38:11.390559デフォルトの名無しさん
2013/09/22(日) 02:38:54.83その頃からケータイでも動くようになったし
Webに必須という段階になったんだと思う
0560デフォルトの名無しさん
2013/09/22(日) 02:41:13.82IE6〜IE8はいくらPC性能が良くても重かったけど
0561デフォルトの名無しさん
2013/09/22(日) 02:42:46.87そこからはエンジンの進化は緩やか
0562デフォルトの名無しさん
2013/09/22(日) 02:50:24.01> Google MapってIE6ではまともに動いたっけ?
動いたよ。2005年にはIE6までしか存在していない。
http://en.wikipedia.org/wiki/Google_Maps#2005
IE6は先進的な機能を搭載していて、
ただそれが標準化されなかっただけで
機能自体は今でも引けをとらないぐらいある。
0563デフォルトの名無しさん
2013/09/22(日) 02:51:36.990564デフォルトの名無しさん
2013/09/22(日) 02:55:35.130565デフォルトの名無しさん
2013/09/22(日) 02:56:58.57その理屈だとChromeのJavaScriptはFlashの能力も得てることになるよな
0566デフォルトの名無しさん
2013/09/22(日) 02:59:03.09ActiveXならなんでも使えるわけじゃないし。
JavaScript(ブラウザ)から使うものとして
作られているという話。
0567デフォルトの名無しさん
2013/09/22(日) 03:01:06.74だからあんなに使いにくい
0568デフォルトの名無しさん
2013/09/22(日) 03:02:10.250569デフォルトの名無しさん
2013/09/22(日) 03:02:54.01だからあんなに使いにくい
0570デフォルトの名無しさん
2013/09/22(日) 03:03:40.590571デフォルトの名無しさん
2013/09/22(日) 03:03:40.42誰がそんなこと言ってるの?
ブラウザで標準的にできることの話をしてるだけなのに。
0572デフォルトの名無しさん
2013/09/22(日) 03:08:32.75FlashのスクリプトってJavaScript扱いになるの?
0573デフォルトの名無しさん
2013/09/22(日) 03:09:37.07今は、ブラウザが標準的に
使える機能の話をしてるの。
あとづけで入れるFlashに興味はないの
0574デフォルトの名無しさん
2013/09/22(日) 03:09:42.290575デフォルトの名無しさん
2013/09/22(日) 03:10:38.61Chromeは標準でFlash乗せてる
0576デフォルトの名無しさん
2013/09/22(日) 03:12:27.52潜在能力的には何でもなるけど、
当時既に作られていたもの、
ブラウザが入っている環境であれば
使えるものに限定すればできることは限られてるから。
0577デフォルトの名無しさん
2013/09/22(日) 03:14:51.360578デフォルトの名無しさん
2013/09/22(日) 03:16:31.440579デフォルトの名無しさん
2013/09/22(日) 03:16:53.93そうでなくて、FlashのスクリプトはECMA系だけど、
JavaScript扱いになるのかって話。
0580デフォルトの名無しさん
2013/09/22(日) 03:18:34.93CORS…はできないほうがいいのか。
0581デフォルトの名無しさん
2013/09/22(日) 03:19:00.04でもJavaScriptって言葉自体どっかに正式な定義があるわけじゃないからなぁ
0582デフォルトの名無しさん
2013/09/22(日) 03:19:34.77あぁ、ECMAScript4をベースにした
ActionScriptの話だな。
0583デフォルトの名無しさん
2013/09/22(日) 03:24:17.97それはもう随分前からできる
勿論相手サーバーが許可すればだけど
>>582
それよくそう思われてるけど
本当はASの構想がES4のベースになったんだよね
0584デフォルトの名無しさん
2013/09/22(日) 03:34:55.030585デフォルトの名無しさん
2013/09/22(日) 03:39:50.84話が通じてないな
Javaではなく、jsの話だよ
0586デフォルトの名無しさん
2013/09/22(日) 03:51:34.56歴史上のどこかで、ILみたく中間言語に置き換えられなかったんだろうか
これから起こるとしたら、js厨が糞ノウハウと共に絶滅するのにな
0587デフォルトの名無しさん
2013/09/22(日) 03:54:45.760588デフォルトの名無しさん
2013/09/22(日) 03:55:47.05M$の狙いが優れているとすれば、次に流行るのはtypescriptかocamlだな
0589デフォルトの名無しさん
2013/09/22(日) 04:04:03.60まあ逆に言えばこれらとJSは三位一体だから、崩壊することはない
0590デフォルトの名無しさん
2013/09/22(日) 04:05:04.30それ以上にはならないね。
0591デフォルトの名無しさん
2013/09/22(日) 07:07:22.470592デフォルトの名無しさん
2013/09/22(日) 07:18:52.320593デフォルトの名無しさん
2013/09/22(日) 08:40:54.32とにかく早いコード書けって言われたら書ける?
そういう観点でお前ら同じ課題で勝負してみて
0594デフォルトの名無しさん
2013/09/22(日) 09:33:15.06無限回使うことを想定している言語を冒涜しているよね
0595デフォルトの名無しさん
2013/09/22(日) 09:41:15.07言語がヘボの上に大半のコーダもカスだからな
0596デフォルトの名無しさん
2013/09/22(日) 09:47:40.42TypeScriptの一番の売りはインターフェイスを用いたstructual subtypingによる静的型検査だよ
この手の機能はEcmaScriptに提案されることはあっても採用されることはまあ永遠にないだろうし
0597デフォルトの名無しさん
2013/09/22(日) 10:00:20.78interfaceはcreateElement('canvas')とcreateElement('div')で
戻り値の型が変わるように型宣言を「オーバーロード」できたりするのが特徴的で
何のための言語なのかをよく表しているね
0598デフォルトの名無しさん
2013/09/22(日) 10:23:19.950599デフォルトの名無しさん
2013/09/22(日) 11:04:17.370600デフォルトの名無しさん
2013/09/22(日) 12:04:09.99変数名や関数名を大文字にするか小文字にするか、パッケージのファイル名をどうするか
継承をどうやって表現するか
みんな好き勝手に書いてて、まったくまとまりがない
0601デフォルトの名無しさん
2013/09/22(日) 12:06:33.520602デフォルトの名無しさん
2013/09/22(日) 12:17:49.05ほとんどの言語はそうだ。
ある会社とかに限定すれば纏まりはあるだろうが。
規定するなら言語自体が使える文字を制約すればいい。
0603デフォルトの名無しさん
2013/09/22(日) 12:19:36.39> JSって標準的な書式がないんだよな
お前が知らないだけじゃね?
JSHintなどで
標準的な書式が
決まってるだろ。
0604デフォルトの名無しさん
2013/09/22(日) 12:20:56.460605デフォルトの名無しさん
2013/09/22(日) 12:23:23.760606デフォルトの名無しさん
2013/09/22(日) 12:29:07.680607デフォルトの名無しさん
2013/09/22(日) 14:31:25.560608デフォルトの名無しさん
2013/09/22(日) 15:05:11.67欲しいと思ったこともほぼない
0609デフォルトの名無しさん
2013/09/22(日) 15:13:31.150610デフォルトの名無しさん
2013/09/22(日) 15:19:46.75String.toArrayがほしい。
0611デフォルトの名無しさん
2013/09/22(日) 15:20:26.78Array.from
0612デフォルトの名無しさん
2013/09/22(日) 15:36:13.710613デフォルトの名無しさん
2013/09/22(日) 15:44:15.55htmlと簡単に連携できるのかな?
わざわざコンパイルしないとブラウザでの動作確認とかできないと面倒だよね
<html>
<head>
<script>
//typescript code
</script>
</head>〜
こんな感じに書いて実行押したらブラウザ開いて見れる的なIDEがあればいいんだけど
0614デフォルトの名無しさん
2013/09/22(日) 15:47:06.25TypeScriptはJSにコンパイルされる時に型なんかのチェックをしてくれるのが特徴なんだよ
実際吐くコードはCoffeeScriptとさほど変わらない
だから「コンパイル」っていう段階が一番有り難みが合って大事なとこなんだから
そこを嫌がるのなら合わないかもね
0615デフォルトの名無しさん
2013/09/22(日) 15:52:21.00型は別に入れなくてもいいって書いてたからちょっと期待してしまった
0616デフォルトの名無しさん
2013/09/22(日) 16:01:53.16のほうがいい
0617デフォルトの名無しさん
2013/09/22(日) 16:03:35.98その違いはどこだろう
どちらもjsにして実行させられるのに
0618デフォルトの名無しさん
2013/09/22(日) 16:03:46.69node.jsで動く実装がある言語だからといって
言語としてnode.jsが必須とはいえない。
0619デフォルトの名無しさん
2013/09/22(日) 16:06:19.63ESでCSやTSみたいなのをサポートしようというのが確か合ったな
多分メタ的なのをもっと増やすとか
ForeignScript{
}
みたいなのを作るってことなんだろうな
0620デフォルトの名無しさん
2013/09/22(日) 16:08:25.090621デフォルトの名無しさん
2013/09/22(日) 16:10:34.58Topazは正確には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.60RPythonてpypyと同じだよね。
やっとまともなRuby実装でてきたのか。
0623デフォルトの名無しさん
2013/09/22(日) 16:34:30.220624デフォルトの名無しさん
2013/09/22(日) 16:39:19.82最適化してるんだから、あれでも頑張ってるよ
まあ、そのわりにはバージョン上がるたびにgemぶっ壊れるけど
0625デフォルトの名無しさん
2013/09/22(日) 16:44:47.570626デフォルトの名無しさん
2013/09/22(日) 17:01:31.04Ruby2.2以降でスレッド周り書き直したらなんとかなるんじゃないの
0627デフォルトの名無しさん
2013/09/22(日) 18:41:01.830628デフォルトの名無しさん
2013/09/22(日) 18:44:53.27それがプログラミングの楽しいところである。
ドカタは一つの書き方だけしてろw
0629デフォルトの名無しさん
2013/09/22(日) 18:54:35.77違うことしてるんなら違うコードになるのは当然だし
書いてる人の雰囲気が出るのも当たり前だろ
言語なんだからさ
伝わればいいのよ
0630デフォルトの名無しさん
2013/09/22(日) 19:14:45.16http://kokudori.hatenablog.com/entry/2013/09/19/082547
それ以上は皆冗長
0631デフォルトの名無しさん
2013/09/22(日) 19:14:58.570632デフォルトの名無しさん
2013/09/22(日) 19:18:11.40ライブラリのコーディングスタイルなんてどーでもよくね
0633デフォルトの名無しさん
2013/09/22(日) 19:42:23.020634デフォルトの名無しさん
2013/09/22(日) 20:04:12.91静的型付け言語の場合はコンパイルされていてメタ情報しか読めないから
0635デフォルトの名無しさん
2013/09/22(日) 20:10:05.940636デフォルトの名無しさん
2013/09/22(日) 20:32:19.430637デフォルトの名無しさん
2013/09/22(日) 20:36:17.020638デフォルトの名無しさん
2013/09/22(日) 20:37:54.640639デフォルトの名無しさん
2013/09/22(日) 20:47:26.45みたいな感じか?
そんなコトする奴いんのか?
0640デフォルトの名無しさん
2013/09/22(日) 21:12:13.15オライリーの本でそういう書き方を
した方がいいって書いてあるよ。
どの本だったかは忘れたが。
まあ、もっと見識を広めようw
0641デフォルトの名無しさん
2013/09/22(日) 21:14:04.69知らんかった。
0642デフォルトの名無しさん
2013/09/22(日) 21:20:54.93それに$つけるのは普通だろ
0643デフォルトの名無しさん
2013/09/22(日) 21:30:34.06余裕に普通っすよ
0644デフォルトの名無しさん
2013/09/22(日) 21:44:25.300645デフォルトの名無しさん
2013/09/22(日) 21:46:15.140646デフォルトの名無しさん
2013/09/22(日) 22:31:17.85うわあ
最悪だなあ
npm作ってる奴らって脳みそイカれてるのか
こういう奴らのせいでES6に悪影響があるのか
セミコロン必須だったら良かったのに
0647デフォルトの名無しさん
2013/09/22(日) 23:10:51.400648デフォルトの名無しさん
2013/09/22(日) 23:11:05.640649デフォルトの名無しさん
2013/09/22(日) 23:16:23.79まあnodeの作者RyanDahlも、
初めはHaskellを試して駄目だったのでJavascriptにしたらしいし
頭がどっかおかしいのは間違いないw
0650デフォルトの名無しさん
2013/09/22(日) 23:16:58.700651デフォルトの名無しさん
2013/09/22(日) 23:18:46.600652デフォルトの名無しさん
2013/09/22(日) 23:20:03.830653デフォルトの名無しさん
2013/09/22(日) 23:22:12.54javascriptがIO機能を持たなかった事が優れていたんだと
0654デフォルトの名無しさん
2013/09/22(日) 23:27:26.85http://www.publickey1.jp/blog/11/javascriptnodejschaskell.html
―― なぜJavaScriptを選んだのでしょう?
ダール氏 実は最初は違いました。最初はC、Lua、Haskellなどで失敗していました。
そんなときV8(Chromeが採用しているJavaScriptエンジン)に気がついて、やろうとしていることに対して
JavaScriptが完璧な言語だと突然ひらめいたのです。
0655デフォルトの名無しさん
2013/09/22(日) 23:27:51.91C++とV8エンジン依存しすぎ
0656デフォルトの名無しさん
2013/09/22(日) 23:29:55.700657デフォルトの名無しさん
2013/09/22(日) 23:32:41.16ゆとりは口挟むな。
.jsって名前つけるからには、全体がJavaScriptのファイル1つでできていることを示唆する。
underscore.jsとかそうだろ。
でも実際はそうじゃない。
.jsがついてなければ、JavaScriptで実装してようとしてなかろうとどうでもいいよ。
0658デフォルトの名無しさん
2013/09/22(日) 23:33:13.740659デフォルトの名無しさん
2013/09/22(日) 23:35:02.870660デフォルトの名無しさん
2013/09/22(日) 23:36:58.18超人様が色々試して最後に出した結論が「JavaScriptが完璧」
お前らのような何の実績もないど素人が口出しても負け犬の遠吠えだよ
0661デフォルトの名無しさん
2013/09/22(日) 23:48:59.51「haskellの実装をhackしようとしたけれど、僕は、それほど賢くなかった」
って言ってなかった?
>>660
そういや、ryって何で消えたの?
0662デフォルトの名無しさん
2013/09/22(日) 23:55:06.23目的に合わなかったって言ってるだけだよ。
代弁者気取って否定するなよキチガイ。
0663デフォルトの名無しさん
2013/09/22(日) 23:55:18.32実装をhackしようとしただけでも凄いけど、
V8の実装をhackしてC++バリバリ出来る人なんだから、
よくある謙遜だろう
で、ryって?
0664デフォルトの名無しさん
2013/09/22(日) 23:56:34.59そりゃマイルドな言い方するよね
「Haskellは糞だった」なんて俺でも絶対言わないね
でも、結局その人の行動が物語ってるw
0665デフォルトの名無しさん
2013/09/22(日) 23:57:17.03.jsは拡張子名でなく、javascript言語を指す目的だろ。
0666デフォルトの名無しさん
2013/09/22(日) 23:58:41.75ダールのtwitterやgithubのHNってryじゃなかったけ?
突如として消えたって一時期ほど話題だったような
0667デフォルトの名無しさん
2013/09/22(日) 23:59:27.69>.jsって名前つけるからには、全体がJavaScriptのファイル1つでできていることを示唆する。
見識が狭すぎる
人生やり直せ
0668デフォルトの名無しさん
2013/09/23(月) 00:01:23.86経験者だからこそ、適材適所で安易に否定しないだけだろう。
狭い考えの奴にはわからんだろうけど。
0669デフォルトの名無しさん
2013/09/23(月) 00:04:41.82nodeよりも性能の良いYesodがGHCをハックしなくても実装できたんだから、
本当はハックしなくても良かったし、しなくちゃダメだと思っちゃう程度の理解度だった
Haskell使える程賢くなかったんだね、謙遜じゃなくて本当に
0670デフォルトの名無しさん
2013/09/23(月) 00:06:14.030671デフォルトの名無しさん
2013/09/23(月) 00:06:42.67さあ、俺がnode知った頃には、nodeのアカウントはjoyentだったから
昔の話か?
0672デフォルトの名無しさん
2013/09/23(月) 00:07:52.98Haskellを使いこなしててHaskellに拘るような人が作者だったら
ドカタが使えないような難解なAPIになっていた
0673デフォルトの名無しさん
2013/09/23(月) 00:10:28.95後発ならなんとでも言えるわなw
俺だってピタゴラスの定理なんか簡単すぎて屁が出るし、
余弦定理の方が優れてるとか言えるわw
ま、Yesodが流行ってないところ見るとHaskellじゃやっぱり無理なんじゃないのw
0674デフォルトの名無しさん
2013/09/23(月) 00:11:35.32ドカタは間違いなくPHPかJava
よくてASP.NET(VB)
0675デフォルトの名無しさん
2013/09/23(月) 00:11:42.98実際利便性に優れていなかったんじゃないの
ノンブロッキングと相性悪いって話しだし
0676デフォルトの名無しさん
2013/09/23(月) 00:13:05.55理由を少しは考えてみろよ屑ニート
0677デフォルトの名無しさん
2013/09/23(月) 00:13:14.21まあjsだけじゃまともに動かんからv8に組み込んだんだろうけど
0678デフォルトの名無しさん
2013/09/23(月) 00:14:46.50で、「VBは簡単だけどJavaは難しいな」なんて言ってるw
Python、Ruby、Javascriptはもうちょっとレベルが高いイメージ
Haskellはレベルが高いけど数学オタクが使ってるイメージ
0679デフォルトの名無しさん
2013/09/23(月) 00:15:57.34ノンブロッキングと相性悪いって
インポート文一つで済みそうだけど・・
0680デフォルトの名無しさん
2013/09/23(月) 00:16:21.24V8はJavascriptを動かすためのエンジンだろ
何言ってんだ?w
Javascriptを貶したいだけなのが見え見えだw
0681デフォルトの名無しさん
2013/09/23(月) 00:17:50.600682デフォルトの名無しさん
2013/09/23(月) 00:17:54.47さあな
本人が言ってるんで
いろんなノンブロッキングが想定されていないAPIをノンブロッキングのAPIと一緒に使わなくてはいけない
その足かせがないのはJavaScriptだけだったと
Haskellなんかも一見なさそうに見えるけど、本人がそういってるんだからしょうがない
0683デフォルトの名無しさん
2013/09/23(月) 00:18:58.43本人は自分が賢くなくて無理って言ってるだけだよ?
0684デフォルトの名無しさん
2013/09/23(月) 00:19:44.20白痴乙
0685デフォルトの名無しさん
2013/09/23(月) 00:20:14.53そのDOKATAは偉業を成し遂げた分だけ、hackも何もやってないお前よりはマシだなw
0686デフォルトの名無しさん
2013/09/23(月) 00:20:48.01嘘くさいなー
ソースプリーズ
0687デフォルトの名無しさん
2013/09/23(月) 00:21:06.90nodeも十分後発物だろ
ノンブロッキングIO以外目新しい点無い
0688デフォルトの名無しさん
2013/09/23(月) 00:21:13.59http://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.17nodeと比較してYesodは後発だから
0691デフォルトの名無しさん
2013/09/23(月) 00:23:22.20お前の言ってる意味のが理解できん
v8もnodeもC/C++でできてる
0692デフォルトの名無しさん
2013/09/23(月) 00:24:54.16そこに書いてあるJavascriptが良かった点
single threaded, without preconceived notions of "server-side" I/O, without existing libraries
Haskellには当てはまってないな
0693デフォルトの名無しさん
2013/09/23(月) 00:28:12.49うっかりブロッキングIO使っちゃったなんてことは起こらない(コンパイルエラーで弾ける)だろうが
そんな堅苦しい言語でプログラミングしたくないな
0694デフォルトの名無しさん
2013/09/23(月) 00:30:29.63実装がC/C++ってことに何の関係があるんだ?
ターゲットにしてるのはJavascriptだろ
C/C++ではターゲットにならなかったわけだ
うまくノンブロックのプログラムが書けないから
まあ、実装もJavaScriptが多いらしいけど
0695デフォルトの名無しさん
2013/09/23(月) 00:33:34.15お前はさっきから何を言っているんだ
0696デフォルトの名無しさん
2013/09/23(月) 00:33:44.77ドカタ現場はとにかく過去の実績があるものを好む。
国内のWebシステムの多くがPHPやJava、ASPでできているんだから、それ以外を採用するはずがない。
ASP.NET(C#)ではなくてASP.NET(VB.NET)なのは俺のイメージ。
VBを採用する現場はとにかくレベルが低くてコーダーもVB専門みたいな印象が強い。
0697デフォルトの名無しさん
2013/09/23(月) 00:36:12.18でもHaskellのGHCなんかの標準のIO実装がブロッキングIOだからなあ
結局はそれで台無しになっちゃうってことなんだろうね
>>695
お前が理解できないのは多分、プラットフォームの実装に使っている言語の話と
プラットフォームがターゲットにしている言語の話の区別が
出来ていないからじゃないかな
0698デフォルトの名無しさん
2013/09/23(月) 00:36:58.53わざわざ本人の発言を謙遜と曲解してまで
認めたくないヤツが居るのは何故だろう?ふしぎー
0699デフォルトの名無しさん
2013/09/23(月) 00:37:36.58デバッグし辛いバグが混入したままプログラムが走った感じるだろ。jk
>>696
Real World Excel
0700デフォルトの名無しさん
2013/09/23(月) 00:38:05.92なんでYesodは台無しにならなかったの?
Yesodの作者がnodeの作者よりずっと賢くて問題解決しちゃったから?
0701デフォルトの名無しさん
2013/09/23(月) 00:38:21.87だって、曲解しないと言ってる事が矛盾してるじゃん明かにw
>>692の特徴をHaskellは備えていない
0702デフォルトの名無しさん
2013/09/23(月) 00:40:53.00とりあえずjsが完璧という考えなのかそうじゃないのかはっきりしてくれ
0703デフォルトの名無しさん
2013/09/23(月) 00:41:01.44作者の懸念は、誰かがライブラリ等にその標準IOを使ってしまって
ノンブロッキングのプログラミングが
書きにくくなるってことだろ
台無しになっているかどうかは知らないけど、
なっていないとしたら、nodejsの登場によってそういう懸念を世間が
理解して、問題を避けることが出来るようになったって
だけじゃないの?
0704デフォルトの名無しさん
2013/09/23(月) 00:41:38.23既存IOがブロッキングだったとして、何か問題が起きるかな?
0705デフォルトの名無しさん
2013/09/23(月) 00:41:43.52ターゲットとして完璧だった
0706デフォルトの名無しさん
2013/09/23(月) 00:43:44.33Haskell作ってるような連中の知能と比べたらチンカスでしょ
で、それのどこに問題が?
0707デフォルトの名無しさん
2013/09/23(月) 00:44:39.17俺はドカタを恨んでるんだからな。
ずっとドカタっいいづつけるぞ。
0708デフォルトの名無しさん
2013/09/23(月) 00:44:50.30フレームワークの外側で使われちゃったらどうしようもない
そもそもブロッキングが前提なのはIOだけじゃないらしいしね
よくわからんけど、DNSとかもそうだっていってるな
0709デフォルトの名無しさん
2013/09/23(月) 00:45:36.68何の問題もないな
少なくともこのスレの連中よりはるかに賢い
0710デフォルトの名無しさん
2013/09/23(月) 00:45:36.67それが無理なんでしょう?
0711デフォルトの名無しさん
2013/09/23(月) 00:46:56.28Haskellの場合、mainをフレームワーク側が握ってて、
フレームワークのインターフェースがIO型を持ってなかったら
ユーザがIOを使いようが無くね?
0712デフォルトの名無しさん
2013/09/23(月) 00:47:01.03ノンブロッキング主体の世界は作れなかっただろうね。
0713デフォルトの名無しさん
2013/09/23(月) 00:50:04.96どうだろう。
mainのシグネチャを自由に出来ないとか、そういう考え方もあるのか。
それでも二つのプログラムに分かれてしまったら無力だが。
0714デフォルトの名無しさん
2013/09/23(月) 00:50:05.75nodeが出来たあとに作られたんだよ。
nodeが出る以前にJavaScriptのライブラリはあったが
それらはブラウザ様なので当然I/Oライブラリは使用されていない。
つまり0からのスタート。
これがノンブロッキング主体の世界を作るのに
一番適していたんだろうね。
他の言語では世界を作れなかっただろう。
0715デフォルトの名無しさん
2013/09/23(月) 00:57:25.68libioとかlibevの話かと思ったのに
JSerアホだな
0716デフォルトの名無しさん
2013/09/23(月) 00:57:39.78スクリプト言語としてJavaScriptは最適なんだよな。
デフォルトで何も出来ないから、
セキュリティ的に安全。
それがベースが安全側に倒れており、何かを許可したい場合に
ライブラリを追加してあげれば良い。
言語仕様が必要十分かつ、ここまで標準のライブラリの機能が
制限されてる言語って他にないよ。
0717デフォルトの名無しさん
2013/09/23(月) 00:57:40.78それに付け加えてシングルスレッドのイベントモデルだったってのが
大きいんじゃないの?
もともとそれがやりたかったわけで
スレッドで並列処理をする他の言語では、大量の処理を並行して実行する場合に
スレッド生成のオーバーヘッドが
致命的になってしまう
0718デフォルトの名無しさん
2013/09/23(月) 01:00:52.69mainのシグネチャ云々じゃなくて、main自体はフレームワーク側で記述されて
実行されてしまってて、使う側はコールバックをフレームワークに登録するようなケースね
そのコールバックの型がIOを含まなかったらIOは使えない
0719デフォルトの名無しさん
2013/09/23(月) 01:03:02.66スクリプトに提供するAPIなんてホストがいくらでも制限できる
既存の資産が活かせなくなるが、JavaScriptだってそれは同じだ
0720デフォルトの名無しさん
2013/09/23(月) 01:03:07.59だから、mainを自分で記述できないってことでしょ?
そういうアイディアならいけたかもね
まあ、なんか直感的に後からいろいろ不都合がありそうに思えるけど
(mainが実行されちゃっててあの機能が使えないとか、後から出てきそう)
0721デフォルトの名無しさん
2013/09/23(月) 01:03:33.09ブクブク太らせて、便利にするという考えもあるんだけど、
C言語みたいに、言語のコアと標準ライブラリは
必要最小限にして、汎用性を高めるという方法もある。
JavaScriptは結果論だが、C言語をさらにシンプルにして
言語のコアとメモリ内で完結できるライブラリしか持たない言語
外部I/Oを標準で持たないという画期的な言語という見方もできる。
0722デフォルトの名無しさん
2013/09/23(月) 01:04:15.89RubyにPythonにLuaにLisp
スクリプト言語は元からバインディングさえ無ければ
勝手に制限付き環境になりますよ
0723デフォルトの名無しさん
2013/09/23(月) 01:05:07.47その制限を選ぶ作業がとんでもなく大変だろ
何を制限すればいいのか、何をすればセキュリティ的に問題ないのか
それこそ、世界中の技術者達(その中には天才クラスもいるだろう)が
何年もかけてやる作業だ
0724デフォルトの名無しさん
2013/09/23(月) 01:05:35.15> スクリプトに提供するAPIなんてホストがいくらでも制限できる
それじゃだめなんだ。
デフォルトOKで危険なものを制限する。いわゆるブラックリスト方式
デフォルトNGで安全なものだけ許可する。いわゆるホワイトリスト方式。
どちらが安全かは言うまでもないでしょう?
0725デフォルトの名無しさん
2013/09/23(月) 01:08:04.38そういう事はユーザー側がきっちりメモリ意識するようにして、
それできちんとGCもまともに掃除するようになってから言えと。
0726デフォルトの名無しさん
2013/09/23(月) 01:09:58.850727デフォルトの名無しさん
2013/09/23(月) 01:10:20.00ユーザーが問題の話は関係ない。
今は言語の話をしている。
0728デフォルトの名無しさん
2013/09/23(月) 01:12:00.08言語の話もしてるんですけどね。
0729デフォルトの名無しさん
2013/09/23(月) 01:12:07.10自分でやったことがあればわかるが
どっちかというとホワイトリストだよ普通
OKなモジュールを入れるだけ
少なくともnode.jsのAPIを整備する手間に比べたら無視出来る程度のオーバーヘッドだよ
0730デフォルトの名無しさん
2013/09/23(月) 01:12:09.66別に珍しくもないでしょ
0731デフォルトの名無しさん
2013/09/23(月) 01:13:42.36もう入出力できなくね?
0732デフォルトの名無しさん
2013/09/23(月) 01:14:18.580733デフォルトの名無しさん
2013/09/23(月) 01:14:52.51デフォルトでI/Oモジュールも入ってるしなぁw
> 少なくともnode.jsのAPIを整備する手間に比べたら無視出来る程度のオーバーヘッドだよ
え? 既存のライブラリ全てを忘れて
全部ブロッキングなしのものに変更するんだよ?
新しいものを作るだけじゃない。
既存のものを忘れるという作業が必要。
ほぼ全部作り直しじゃないか。
こっちのほうがよっぽど大変だよ。
0734デフォルトの名無しさん
2013/09/23(月) 01:15:37.71http://pc.watch.impress.co.jp/docs/2004/1021/turbo.htm
0735デフォルトの名無しさん
2013/09/23(月) 01:16:35.43あーうん、俺はクロスプラットフォーム派なんで論外
0736デフォルトの名無しさん
2013/09/23(月) 01:16:42.01就職活動したら?
0737デフォルトの名無しさん
2013/09/23(月) 01:17:20.62ドカタ必死だなw
お前が就職活動しろ。
明日はちゃんとハロワに行くんだぞw
0738デフォルトの名無しさん
2013/09/23(月) 01:18:01.34最初から必要なのだけバインドさせとけばいいんじゃないの
JSみたいに
0739デフォルトの名無しさん
2013/09/23(月) 01:18:17.61素直にWindowsしか使えないと認めなさい?
0740デフォルトの名無しさん
2013/09/23(月) 01:18:20.630741デフォルトの名無しさん
2013/09/23(月) 01:18:42.96だからそれができてないんでしょう?
0742デフォルトの名無しさん
2013/09/23(月) 01:19:07.02ぷw
0743デフォルトの名無しさん
2013/09/23(月) 01:19:34.73明日って言っただろバーカw
日をまたぐってことだ。
今日は月曜日だからな。
ドカタは曜日の感覚すら無いwww
0744デフォルトの名無しさん
2013/09/23(月) 01:19:59.97は?何が?
sandbox内でevalさせればいいだけじゃないの?
0745デフォルトの名無しさん
2013/09/23(月) 01:20:27.14それは面倒くさい。
0746デフォルトの名無しさん
2013/09/23(月) 01:21:28.29http://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それでブロッキング関数が
全部ノンブロッキング関数になるとでもいうの?
ファイルI/Oだけじゃない。
ネットワーク関数やデータベース関数
全てがノンブロッキングでないと意味ないからね。
結局全部作りなおさないといけないよね?
今ある資産を捨てて。
0748デフォルトの名無しさん
2013/09/23(月) 01:23:46.60JSだろうとコンテキストは実装持ちでやってること変わらんぞ。
JSONはさすがに例外だけど。
0749デフォルトの名無しさん
2013/09/23(月) 01:24:15.000750デフォルトの名無しさん
2013/09/23(月) 01:24:52.14呼ぶたびにスレッド作ってブロックするAPIを呼び出してるんだよ〜
Windowsでは将来、ブロックしなくなる予定があるんだよ〜
0751デフォルトの名無しさん
2013/09/23(月) 01:29:14.09JavaScriptならそれらを新たに作らなくてもいいとでも?
100あった資産を切り捨てて0からやり直すのと
もともと0のところから始めるかの違いにすぎない
0752デフォルトの名無しさん
2013/09/23(月) 01:29:50.82せめてレス先で何話してるかは理解しようぜ。
0753デフォルトの名無しさん
2013/09/23(月) 01:32:10.06資産を捨てるのは難しいんだよ?
なぜなら言語の標準でこのライブラリを使うって
頭に叩きこまれているから。
最初から何もなくて、ブラウザのコードで
ノンブロッキングでずっとやってきた人たちと
旧来の方法がずっと身にしみてきている奴
発想を変えないといけないからね。
0754デフォルトの名無しさん
2013/09/23(月) 01:33:46.510755デフォルトの名無しさん
2013/09/23(月) 01:34:07.10普段はブロッキングIOの方が便利でしょ
このスレでも、ノンブロッキングIOがデフォのせいで標準入出力のお題が不得意じゃんJS
0756デフォルトの名無しさん
2013/09/23(月) 01:35:39.28昔から普通に使われてたよ。
昔だから分岐はswitchだったけど。
0757デフォルトの名無しさん
2013/09/23(月) 01:36:43.69現実としては間違ってないが、
プログラマの経験や実績を持ち出すならこのスレの話なんてほとんどファンタジーになっちゃうぞ?
node.jsなんて論外だぞ?
0758デフォルトの名無しさん
2013/09/23(月) 01:37:00.930759デフォルトの名無しさん
2013/09/23(月) 01:38:41.57ノンブロッキングで書くととても面倒な感じがした〜
見通しが悪くなる〜
0760デフォルトの名無しさん
2013/09/23(月) 01:38:56.08altJS予言の人がいるぞ。
お前か? お前なんだな?
0761デフォルトの名無しさん
2013/09/23(月) 01:39:21.200762デフォルトの名無しさん
2013/09/23(月) 01:39:44.170763デフォルトの名無しさん
2013/09/23(月) 01:39:55.28そういうのは、今はnodeのオハコだよね。
見通し良いまま書く方法が議論しつくされている。
0764デフォルトの名無しさん
2013/09/23(月) 01:40:25.51無いのが重要だってことが
わかってないのかな?
0765デフォルトの名無しさん
2013/09/23(月) 01:41:13.720766デフォルトの名無しさん
2013/09/23(月) 01:41:32.92冗談はこのスレのコードを100回読んでから言って下さい
0767デフォルトの名無しさん
2013/09/23(月) 01:41:34.47> このスレでも、ノンブロッキングIOがデフォのせいで標準入出力のお題が不得意じゃんJS
だけど、ノンブロッキング標準入出力は得意だよ?
0768デフォルトの名無しさん
2013/09/23(月) 01:41:48.300769デフォルトの名無しさん
2013/09/23(月) 01:42:05.69jsのコード、読めないんですね!?
0770デフォルトの名無しさん
2013/09/23(月) 01:43:50.58上ので納得したが、それでまた納得してしまった。
コールバックネストさせすぎで全然見通しよくねえ。
0771デフォルトの名無しさん
2013/09/23(月) 01:44:04.16あーだこーだと何100レスも使っててワロタわ
0772デフォルトの名無しさん
2013/09/23(月) 01:45:50.34これで混ぜてもらえないでしょうか〜
0773デフォルトの名無しさん
2013/09/23(月) 01:48:11.87得意?
インラインで関数オブジェクトリテラルが書ける言語なら何でも一緒だろ
いや、JSは function(x) { } なんてクソ冗長な表記だからその中でも劣ってるか
0774デフォルトの名無しさん
2013/09/23(月) 01:50:29.19ある特定の実装においてサポートされてるってだけ
0775デフォルトの名無しさん
2013/09/23(月) 01:50:51.260776デフォルトの名無しさん
2013/09/23(月) 01:52:16.56また懐かしい物を
0777デフォルトの名無しさん
2013/09/23(月) 01:52:53.670778デフォルトの名無しさん
2013/09/23(月) 01:58:38.77> いや、JSは function(x) { } なんてクソ冗長な表記だからその中でも劣ってるか
え? アロー関数でかけばいいじゃん?
0779デフォルトの名無しさん
2013/09/23(月) 02:01:30.240780デフォルトの名無しさん
2013/09/23(月) 02:03:24.19javascriptだと何かしら絶対文句つけるから
functionが長いとか、遅延評価じゃないとかがその定番w
このスレはjavascriptを批判することだけが目的の奴が一匹常駐してるからw
0781デフォルトの名無しさん
2013/09/23(月) 02:04:01.07この流れでnodeガン無視っすか
0782デフォルトの名無しさん
2013/09/23(月) 02:04:38.370783デフォルトの名無しさん
2013/09/23(月) 02:05:22.84タイプ数がちょっと多いだけじゃね
本質じゃないと思うが
0784デフォルトの名無しさん
2013/09/23(月) 02:08:50.80タイプ数がちょっと多いだけじゃね
本質じゃないと思うが
0785デフォルトの名無しさん
2013/09/23(月) 02:12:38.41タイプ数がちょっと多いだけじゃね
本質じゃないと思うが
0786デフォルトの名無しさん
2013/09/23(月) 02:17:15.83新しい名前を考える必要がある点で冗長
0787デフォルトの名無しさん
2013/09/23(月) 02:21:21.17動的言語の信奉者は、動的言語には自動補完なんて不要とかガチで思っているのが怖い。
Rubyの開発者とか。
ああいう人たちは一度C#やVBで開発すれば、どうしてRubyがオワコン化しているか分かる。
0788デフォルトの名無しさん
2013/09/23(月) 02:31:20.290789デフォルトの名無しさん
2013/09/23(月) 04:49:46.99多大な時間と議論が必要なのは
functionが長くてうざくて
コードの可読性を落とすのも一因だと思ってた
0790デフォルトの名無しさん
2013/09/23(月) 05:21:27.90問題を解くだけならアロー関数でいい。
それを単純にfunctionに変換すれば今でも動く。
単にたまたま信者がいるだけ。多分そいつ一人が頑張って
問題といてる。
0791デフォルトの名無しさん
2013/09/23(月) 07:57:12.75×動的言語の信奉者は
○Smalltalk以外の動的言語の〜
0792デフォルトの名無しさん
2013/09/23(月) 08:20:57.66ある程度の言語側のサポートはやっぱり必要
もっとも優れたIDEをもつC#には delegate(int x) { } の形式のクロージャがあったのに
その後アローが導入されたよね?
JavaのGUIをIDEで作ろうとすると、IDEが生成する>>491みたいなノイズで冗談みたいに見通しの悪いコードができる
0793デフォルトの名無しさん
2013/09/23(月) 10:12:21.370794デフォルトの名無しさん
2013/09/23(月) 12:15:18.53rubyのIDEならこういうのあるじゃん
俺はエディタで済んでるから使わないけど
0795デフォルトの名無しさん
2013/09/23(月) 12:28:19.710796デフォルトの名無しさん
2013/09/23(月) 12:29:24.34IDE使う意味が無いんだよね。
0797デフォルトの名無しさん
2013/09/23(月) 12:32:34.32スクリプト言語だとできないからな。
0798デフォルトの名無しさん
2013/09/23(月) 12:36:50.55リアルタイムのエラーチェック、コード全体とコードスニペットの一発起動
このくらい出来たら個人的には十分だわ
0799デフォルトの名無しさん
2013/09/23(月) 12:37:54.28仕事さがせよニート
0800デフォルトの名無しさん
2013/09/23(月) 12:39:52.87(優れた)リアルタイムのエラーチェック、(優れた)コード全体とコードスニペットの一発起動
これができるのがIDEなんだけどね。
スクリプト言語だとこれかができなくなるからなぁ。
なら、テキストエディタでもいいんじゃね?ってなるよね。
0801デフォルトの名無しさん
2013/09/23(月) 12:41:30.57全体やファイル単位じゃなくて、
関数単位で実行できるんだよね。
特に追加の作業なしに。
もちろん実行するだけじゃなくて、
そこからデバッグも出来る。
0802デフォルトの名無しさん
2013/09/23(月) 12:41:51.690803デフォルトの名無しさん
2013/09/23(月) 12:42:35.230804デフォルトの名無しさん
2013/09/23(月) 12:42:39.42スクリプト言語か否か関係ないもんが含まれてるぞ
お前、なぜスクリプト言語じゃ出来ないか説明できないだろ
0805デフォルトの名無しさん
2013/09/23(月) 12:43:55.030806デフォルトの名無しさん
2013/09/23(月) 12:45:48.02できるかできないかじゃなくて
どっちが高度に出来るかって話。
俺でもF1レーサーでも車は運転できるが、
どちらも同じレベルで出来るわけじゃないでしょう?
0807デフォルトの名無しさん
2013/09/23(月) 12:46:05.51なんの関係があるんですかね?
0808デフォルトの名無しさん
2013/09/23(月) 12:47:01.74Javaドカタかな?
0809デフォルトの名無しさん
2013/09/23(月) 12:47:52.71静的型情報を元にメソッド調べてるんじゃないの?
気になるならIDEのコードでも調べたら
0810デフォルトの名無しさん
2013/09/23(月) 12:49:06.27例えば、テキストエディタで、JavaScriptでdelete"メソッド” に色がつくんだよね。
deleteは予約語だから色がついていいけれど、
deleteメソッドは 予約語のdeleteとは別物だから色がついてはいけないんだよ。
0811デフォルトの名無しさん
2013/09/23(月) 12:49:06.85出たよニート
0812デフォルトの名無しさん
2013/09/23(月) 12:49:43.39なにその頓珍漢な答え
全く理解できてないことだけ分かるんですけど
0813デフォルトの名無しさん
2013/09/23(月) 12:50:57.62どうでも良いけど、メソッド名に使えるようなもんは予約語じゃなくね?
予約語の定義的に
0814デフォルトの名無しさん
2013/09/23(月) 12:52:08.99暇なんだろうから自分で調べろ屑ニート
0815デフォルトの名無しさん
2013/09/23(月) 12:53:03.100816デフォルトの名無しさん
2013/09/23(月) 12:54:37.41JSに流れて来た感じの低能がスレに一匹混じってるな
0817デフォルトの名無しさん
2013/09/23(月) 12:55:35.640818デフォルトの名無しさん
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そんなことエディタでも出来るから。
プログラム書いたことあるの
0823デフォルトの名無しさん
2013/09/23(月) 13:00:37.03またいつものキチガイか。
はいはい、ドカタ大嫌いなんでしたねw
0824デフォルトの名無しさん
2013/09/23(月) 13:01:28.66だから、できるできないじゃないんだって、
どっちが高度に出来るかって話。
0825デフォルトの名無しさん
2013/09/23(月) 13:01:43.110826デフォルトの名無しさん
2013/09/23(月) 13:02:10.07ホントお前黙ってろよ
一人だけレベル低いんだよ
0827デフォルトの名無しさん
2013/09/23(月) 13:03:57.40高度ってのが細かく設定出来るって意味ならエディタでも余裕
拡張用にスクリプト言語備えたエディタならね
0828デフォルトの名無しさん
2013/09/23(月) 13:04:39.02安全なリファクタリング
高精度で高速なコード補完
コード解析に基づいた、設定ファイルに依存しないGUIビルダ
型やメンバのエラーをリアルタイムに検出
高精度なlint
依存関係の解析
くらいか
0829デフォルトの名無しさん
2013/09/23(月) 13:05:16.18これが、ゆとり世代か
0830デフォルトの名無しさん
2013/09/23(月) 13:06:44.57優れたIDEのサポートがあっても1週間かかるアホが
このスレに常駐してる静的厨です
0831デフォルトの名無しさん
2013/09/23(月) 13:06:49.00細かく制御できるかというと、これぐらい。
Java Code Style Formatter
http://i.stack.imgur.com/vomV2.png
全部載ってる画像がほしいな。
0832デフォルトの名無しさん
2013/09/23(月) 13:07:23.94死ねゴミ共がw
0833デフォルトの名無しさん
2013/09/23(月) 13:07:39.36> 高度ってのが細かく設定出来るって意味ならエディタでも余裕
じゃあ証拠見せて
IDEの場合の証拠は>>831に書いたから。
0834デフォルトの名無しさん
2013/09/23(月) 13:07:42.07プログラマとは思えん
0835デフォルトの名無しさん
2013/09/23(月) 13:08:53.13IDEが型情報を元に処理を行うのが難しいとか?
0836デフォルトの名無しさん
2013/09/23(月) 13:09:24.290837デフォルトの名無しさん
2013/09/23(月) 13:09:26.27本業でもスクリプトで書いてると限らない
0838デフォルトの名無しさん
2013/09/23(月) 13:10:04.48設定ファイル直接いじればいいじゃんw
おまえ馬鹿なの?
0839デフォルトの名無しさん
2013/09/23(月) 13:11:16.46ただのニートに餌を与えないで下さい。
0840デフォルトの名無しさん
2013/09/23(月) 13:11:47.07VS
設定項目名調べて、何文字か書いて保存。
適当なソースコード開いて違いを確認。
いえ、なんでもないですーw
0841デフォルトの名無しさん
2013/09/23(月) 13:13:12.90でも拡張する一番簡単な方法がたいていのIDEでスクリプトなんだよ〜
0842デフォルトの名無しさん
2013/09/23(月) 13:13:47.36それはもちろんその通り
最近のVSとかだとバックグラウンドでJSを実行して型やメンバの情報を収集してコード補完するらしいが、
関数の呼び出し元を探して関数の引数まで型を推測してくれるのはまだ無いと思う
0843デフォルトの名無しさん
2013/09/23(月) 13:14:01.60得意気に画面を貼ってくるから、普段からぽちぽちやってるんだろうなーって誤解しちゃった
そうかー、ぽちぽちやるようなアホがこのスレにいるわけないよね、ゴメンごめん
0844デフォルトの名無しさん
2013/09/23(月) 13:15:46.74IDE厨ってろくにコード書けなさそうなので、
その方法で拡張することは無いんじゃないかな
0845デフォルトの名無しさん
2013/09/23(月) 13:16:16.650846デフォルトの名無しさん
2013/09/23(月) 13:18:00.23ブラウザのコンソールで書くのが最もよく補完してくれるよ
0847デフォルトの名無しさん
2013/09/23(月) 13:18:48.58引数の型も?
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.270852デフォルトの名無しさん
2013/09/23(月) 13:27:10.81動的に型を変更しないときは正しく補完してくれるって感じが良いな
0853デフォルトの名無しさん
2013/09/23(月) 13:29:10.850854デフォルトの名無しさん
2013/09/23(月) 13:35:55.48具体例お願い
0855デフォルトの名無しさん
2013/09/23(月) 13:37:57.74http://wiki.ecmascript.org/doku.php?id=strawman:guards
ESコミュの反応は、こういう仕組みを入れることにに対しては概ね一致
実際のスタイルについてはまだまだこれから
0856デフォルトの名無しさん
2013/09/23(月) 13:41:27.89XHTMLをやめてHTML5にしたという点にも
それは現れている。
過去を捨てるのではなく、
過去を踏まえながらどうするのが
一番最善かを考えて行動している。
0857デフォルトの名無しさん
2013/09/23(月) 13:46:40.88完全に自由じゃなくて、今を壊さずに追加する方法を考えるっていう方が、
方向性も決めやすいし、意見もまとまりやすいのはあるでしょうね
0858デフォルトの名無しさん
2013/09/23(月) 13:50:10.04こんな感じで引数を引き回しても補完できて欲しい
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タグの対応が取れてないだとか。
そういうミスをするなといったのが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.600863デフォルトの名無しさん
2013/09/23(月) 14:00:14.76そういうのは実行時にコメントに書いていないものが
返ったりしたらエラーになって欲しいところだな。
0864デフォルトの名無しさん
2013/09/23(月) 14:01:46.660865デフォルトの名無しさん
2013/09/23(月) 14:09:17.05検査が実行されるってことになって、重いから使わないほうがいいってならないのかな?
0866デフォルトの名無しさん
2013/09/23(月) 14:15:33.61余裕すぎワロタ
0867デフォルトの名無しさん
2013/09/23(月) 14:15:35.22処理系にヒントを与えることになって最適化が進むんだろうか?
そうだとしても、こう書くと最適化されて、こう書くと実行時の負荷が増えるとか
色々考えないといけないことが増えそう〜
さらに○○らしいみたいな風のうわさを頼りに書くことが増えそう〜
0868デフォルトの名無しさん
2013/09/23(月) 14:20:28.230869デフォルトの名無しさん
2013/09/23(月) 14:24:22.59ドカタ共はコメントに型を書く方向へ退化していたw
0870デフォルトの名無しさん
2013/09/23(月) 14:26:22.51可能性はあると思う〜
0871デフォルトの名無しさん
2013/09/23(月) 14:26:38.51そのコード片って具体的には、どんな場面で使うものなの?
0872デフォルトの名無しさん
2013/09/23(月) 14:28:00.790873デフォルトの名無しさん
2013/09/23(月) 14:30:07.43「一方、ロシアは鉛筆を使った。」って、雛形文を聞いたことない?
0874デフォルトの名無しさん
2013/09/23(月) 14:31:01.63javadocとかは実装ありきだから逆な気が。
0875デフォルトの名無しさん
2013/09/23(月) 14:31:04.91http://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.330877デフォルトの名無しさん
2013/09/23(月) 14:38:55.56うげえなにこれ
0878デフォルトの名無しさん
2013/09/23(月) 14:42:18.15がコンパイラやインタプリタの実装レベルで適応された処理系ってありますか?
0879デフォルトの名無しさん
2013/09/23(月) 15:03:37.17「一方、ロシアは静的型言語を使った。」
0880デフォルトの名無しさん
2013/09/23(月) 15:09:09.66国内人気 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ネストされた関数呼び出しの中で生成されたインスタンスが
戻り値で返ってきた場合の例のつもり
素人考えだけど、補完が難しそうかなって
0882デフォルトの名無しさん
2013/09/23(月) 15:13:55.69コアな部分に携わるゲームプログラマが開発に集中するために使うスクリプトだろ
似たような言語のどうでも良いノウハウを掻き集める余裕ってweb開発ぐらいじゃないの?
0883デフォルトの名無しさん
2013/09/23(月) 15:20:18.580884デフォルトの名無しさん
2013/09/23(月) 15:21:37.370885デフォルトの名無しさん
2013/09/23(月) 15:28:22.70馬鹿杉。
コンパイル時間かんがえたら
0886デフォルトの名無しさん
2013/09/23(月) 15:29:25.92脳内プログラマ乙
0887デフォルトの名無しさん
2013/09/23(月) 15:33:27.06それだ! altJSの欠点
コンパイル時間がかかる。
普通にJavaScriptで書いたほうがいいな。
後数年もすりゃアロー関数も普通に使えるようになり
最強の言語になるだろう。
0888デフォルトの名無しさん
2013/09/23(月) 15:35:11.28「コアな部分に携わるゲームプログラマが
開発に集中するために使うスクリプト」
じゃなかったの?
0889デフォルトの名無しさん
2013/09/23(月) 15:37:02.5410分近くもコンパイルに待たされるわけで、
よくそんなので開発できるよね?
理解できない。
0890デフォルトの名無しさん
2013/09/23(月) 15:39:05.100891デフォルトの名無しさん
2013/09/23(月) 15:41:09.46translaterレベルのコンパイル時間なんて気にする必要ないんじゃない?
>>888
c/c++プログラマが学習コスト無しで、ゲーム内のAIなんかを記述するもの
インタプリタだからコンパイル時間不要
何が不思議なの?
>>890
脳内プログラマ乙
0892デフォルトの名無しさん
2013/09/23(月) 15:41:23.26makeしてみろよ。
10分ぐらいかかるからさ。
0893デフォルトの名無しさん
2013/09/23(月) 15:44:23.96それにプロコンパイルさせてdistccすりゃ相当に短縮される。
脳内C++er乙。
0894デフォルトの名無しさん
2013/09/23(月) 15:44:25.71CINTは 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.12c++プログラマだなんて一言も言ってないけど、あんなもの常識。
>>894
それって、NASAとかCERNがシミュレーション書くために書いた処理系で、
ろくにメンテもされてないでしょ。今は確か、chあたり使ってんじゃない?
というか、組込み用途に出来たものじゃないし、最適化もウンコな実装を
誰が製品用途に使うのか不思議で堪らない
0898デフォルトの名無しさん
2013/09/23(月) 15:51:50.920899デフォルトの名無しさん
2013/09/23(月) 15:53:32.83まともに知らずに語ってたの?
脳内プログラマー乙。
0900デフォルトの名無しさん
2013/09/23(月) 15:53:46.510901デフォルトの名無しさん
2013/09/23(月) 15:54:55.13まともに知ってるはずのあんたのレスは
なんで中身が全くないの?
お〜か〜し〜い〜なぁ〜(笑)
0902デフォルトの名無しさん
2013/09/23(月) 15:55:16.06ニート乙
0903デフォルトの名無しさん
2013/09/23(月) 15:56:51.95そういうの俺も疑問に思ってた頃もあったけど
アルゴリズムを考える時間 >>>> コンパイル時間
な奴らだから問題ない
同じように冗長な言語を使っていても
アルゴリズムを考える時間 >>>> ソース記述する時間
な奴らだから問題ない
この手の奴らは圧倒的に思考が遅い
0904デフォルトの名無しさん
2013/09/23(月) 15:58:47.17静的言語は一度コンパイルさせれば、修正にはたいして時間かからないよ。
スクリプトで書く程度の内容で、毎回コンパイルに時間がかかるということは、
上位がそのコードに依存し過ぎて、多岐にわたった影響があるという事。
つまり設計が悪い。
0905デフォルトの名無しさん
2013/09/23(月) 16:00:49.52ヒント:JSPはインタプリタ
0906デフォルトの名無しさん
2013/09/23(月) 16:02:15.07経験ある人が多いと思う〜
0907デフォルトの名無しさん
2013/09/23(月) 16:08:19.03インスタンス別にオブジェクト分ければいいのにね。
0908デフォルトの名無しさん
2013/09/23(月) 16:12:13.82なにそれ、objective-c?
0909デフォルトの名無しさん
2013/09/23(月) 18:27:50.570910デフォルトの名無しさん
2013/09/23(月) 18:41:57.22話が噛み合ってないね
最後は各自が感想を述べて終わってる
0911デフォルトの名無しさん
2013/09/23(月) 19:55:37.220912デフォルトの名無しさん
2013/09/23(月) 20:53:22.740913デフォルトの名無しさん
2013/09/23(月) 21:14:53.09http://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 3をインストールしたのに
0915デフォルトの名無しさん
2013/09/23(月) 21:35:38.82今更移行しようと思ったらアホみたいなコストがかかるわけで
それに見合ったメリットがあるとは思えん
0916デフォルトの名無しさん
2013/09/23(月) 21:52:55.39Linux C/アセンブラ 1700万行
Rails Ruby 10万行
jQuery JavaScript 1万行
Pythonはゴミだな
0917デフォルトの名無しさん
2013/09/23(月) 21:57:40.89JSのウンコさが際立っている
0918デフォルトの名無しさん
2013/09/23(月) 22:08:01.94jQueryは大きいライブラリだと思うけど?
っていうか、じゃあ同じものを実装してみてというだけの話なんだが、
まあ自分にできないことを偉そうに言うのは恥ずかしいよね。
0919デフォルトの名無しさん
2013/09/23(月) 22:12:31.070920デフォルトの名無しさん
2013/09/23(月) 22:17:52.980921デフォルトの名無しさん
2013/09/23(月) 22:18:57.37DropboxもRailsもjQueryも、お前らの作るゴミ作品に比べたら
遥か雲の上の存在だ
お前らが比べてどうこう言える代物じゃない
0922デフォルトの名無しさん
2013/09/23(月) 22:23:08.57俺達の作品がゴミならその素材のゴミなんじゃないの
0923デフォルトの名無しさん
2013/09/23(月) 22:29:29.111万行も書いたら体感的にすげー巨大な印象になるだろうな
0924デフォルトの名無しさん
2013/09/23(月) 22:32:36.24テンプレートのインスタンス化と、objファイルの話
0925デフォルトの名無しさん
2013/09/23(月) 23:30:12.790926デフォルトの名無しさん
2013/09/23(月) 23:31:51.37ゴミ対応(ブラウザ間の差異吸収)こそがjQueryの本質だと思うが
IE678がゴミであることは否定しないが
0927デフォルトの名無しさん
2013/09/23(月) 23:37:06.59それは認識が甘い。
JavaScriptというかDOM操作に関数型言語の
力を加えたのがjQueryの本質。
セレクタを使って、階層構造であるDOMを
リストの形に置き換えることで、関数型の操作が
できるようにしている。
0928デフォルトの名無しさん
2013/09/23(月) 23:39:46.42どんな発想したらそんな意味不明な発言出てくるんだ?
0929デフォルトの名無しさん
2013/09/23(月) 23:40:50.070930デフォルトの名無しさん
2013/09/23(月) 23:40:56.81セレクタエンジンもDOMに標準搭載されている。
(getElementsBySelector)
それでもなおjQueryが優れているのは
全てのa要素に対してclickイベントを割り当てるという
操作をjQueryならループ無しに記述できる所。
getElementsBySelectorを使ってもそれだけでは実現できない。
0931デフォルトの名無しさん
2013/09/23(月) 23:43:22.10forEachが使える今2,3行の関数作れば綺麗に同じことができるよ
0932デフォルトの名無しさん
2013/09/23(月) 23:45:30.32・関数型風汎用ライブラリのunderscore
・アロー関数
・yield
この4つが揃った時、JavaScriptは
最強のスクリプト言語になりそう。
あ、一番目はDOM使わないなら不要だけどw
今言われてる欠点は下二つで
もうすぐ解決しようとしてるよね。
0933デフォルトの名無しさん
2013/09/23(月) 23:47:19.16querySelectorだったか。普段使わないもんでなw
で、functionですら長いと言われているのに
forEachなんか使うのはもってのほかだってw
2,3行の関数作るよりも
jQueryを一行読みこめばそれで、
もっと多くの事ができるようになるんだし。
0934デフォルトの名無しさん
2013/09/23(月) 23:47:55.48jQuery2.0からはゴミに対応することはやめたらしいよ
0935デフォルトの名無しさん
2013/09/23(月) 23:48:03.28> forEachが使える今2,3行の関数作れば綺麗に同じことができるよ
そこからオレオレライブラリが生まれるんですよね。
0936デフォルトの名無しさん
2013/09/23(月) 23:50:39.89かーっ!jQueryないと辛いわ−!かーっ!
とか周りに撒き散らしてるの?
0937デフォルトの名無しさん
2013/09/23(月) 23:52:28.09なんかわざと不正確に書いてるようだから
注釈入れとくわ。ごめんなw
jQuery は1.9系 と2.0系に別れた。
別れたと言っても基本的なコードは同じで
提供する機能は1.9系と2.0系で完全に同じ。
そして今後数年は1.9系と2.0系の開発は
並行して進んでいく。
何が違うのかというと古いブラウザへの対応のみ。
よくある「新しいバージョンでは古いブラウザへの対応は終了。
もう古いブラウザ用の開発は行いません」とはわけが違う。
古いブラウザへの対応は続くが、バージョン番号が違うという話。
0938デフォルトの名無しさん
2013/09/23(月) 23:54:02.80> jQueryを読み込むことすら憚れる場合はどうするの?
しらん。
Perl、Ruby、PHP、Pythonを使うことすら
憚られる場合はどうするの?って聞き返したいぐらい。
知らんって言うしか無いだろw
0939デフォルトの名無しさん
2013/09/23(月) 23:54:23.240940デフォルトの名無しさん
2013/09/23(月) 23:56:21.72上のっていうのがさっぱりわからんが、
ライブラリを使える場面では、
ライブラリを使わないことに比べて綺麗になるのが
一般的と、当たり前のことを言っておこう。
何となくお前は、どんな場面でも使える
銀の弾丸的な最強のライブラリが存在するって言いかねないからw
0941デフォルトの名無しさん
2013/09/23(月) 23:58:37.65さっきからコードも書かずにさいきょうのげんごと言い張ってるのがお前だろw
どうしたんだよw何予防線張り始めてるのw
0942デフォルトの名無しさん
2013/09/24(火) 00:01:15.74え? どれの話?
0943デフォルトの名無しさん
2013/09/24(火) 00:02:22.35言語の話? なんかいろいろごっちゃになってない?
0944デフォルトの名無しさん
2013/09/24(火) 00:04:00.52自分のレスすら忘れてるのかよw
0945デフォルトの名無しさん
2013/09/24(火) 00:05:52.53ふん、やっぱりそうか。
> ・関数型風DOM操作ライブラリのjQuery
> ・関数型風汎用ライブラリのunderscore
> ・アロー関数
> ・yield
>
> この4つが揃った時、JavaScriptは
> 最強のスクリプト言語になりそう。
この4つってちゃんと書いていても、jQueryだけだと
読み違えるんだ。
そういうレベルの人だろうと思ったとおり。
0946デフォルトの名無しさん
2013/09/24(火) 00:10:19.96話が噛み合ってない
0947デフォルトの名無しさん
2013/09/24(火) 00:12:49.06次スレには持ち越すなよ
0948デフォルトの名無しさん
2013/09/24(火) 00:17:17.36じゃあ前が噛みあわせろよ。
先に言ったのは4つそろったら
最強のスクリプト言語なるといった
俺の方だよ。
俺にレスするなら、お前が噛み合わせろ
0949デフォルトの名無しさん
2013/09/24(火) 00:35:02.380950デフォルトの名無しさん
2013/09/24(火) 00:46:16.490951デフォルトの名無しさん
2013/09/24(火) 00:50:13.63Functional 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.060953デフォルトの名無しさん
2013/09/24(火) 01:14:50.78foreach ( 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.770955デフォルトの名無しさん
2013/09/24(火) 08:29:03.210956デフォルトの名無しさん
2013/09/24(火) 08:50:27.210957デフォルトの名無しさん
2013/09/24(火) 09:24:39.08グチグチ文句つけた挙句、時間かけて出てきたコードもクソだったので
JSerが関数型云々言っても全く信用出来なくなった
0958デフォルトの名無しさん
2013/09/24(火) 11:00:03.930959デフォルトの名無しさん
2013/09/24(火) 15:52:33.140960デフォルトの名無しさん
2013/09/24(火) 16:03:16.40nashornが諸手を挙げて優遇されないところに、
言語としてのjavascriptに構文上の限界を感じる。
0961デフォルトの名無しさん
2013/09/24(火) 17:09:46.260962デフォルトの名無しさん
2013/09/24(火) 17:22:03.930963デフォルトの名無しさん
2013/09/24(火) 20:18:36.12ずっと変な奴が住み着いてるよ
0964デフォルトの名無しさん
2013/09/24(火) 20:49:55.230965デフォルトの名無しさん
2013/09/24(火) 21:36:08.21構文上の限界を、具体的に言えないでしょ?w
無理矢理な屁理屈つけるのやめなよ
恥ずかしいから。
0966デフォルトの名無しさん
2013/09/24(火) 22:17:38.87コードは書けんわ、屁理屈こねるわ、
糞の役にも立たんくだらん仕様談義でレス浪費するわでかなわんわ
0967デフォルトの名無しさん
2013/09/24(火) 22:33:52.73protectやprivate,アクセッサ、オペレータのオーバーロード辺りすらないじゃん
rubyとjavascriptの2つを同時に選択できるとき、わざわざjavascriptでOOPなコードなんて書きたくないし
コーディング規約のレベルでOOPなコードが書けても、そんな規約なんか覚えたくないでしょ?
0968デフォルトの名無しさん
2013/09/24(火) 22:42:40.03どっかのJS厨がほざいてる夢物語じゃなくて今現実に十分使えるぞ
0969デフォルトの名無しさん
2013/09/24(火) 23:01:15.29コード出てるだろ。
なんで自分に都合の悪いことは
見えないんだろうな。
そもそもお前がしきった所で
誰もいうことは聞かない。
0970デフォルトの名無しさん
2013/09/24(火) 23:03:25.45JavaScriptはプロトタイプベースのオブジェクト指向。
っていうかそういうなら、同じ理由で
Perlも当然、アウトなんだよな?
privateない。オブジェクト指向じゃない。
0971デフォルトの名無しさん
2013/09/24(火) 23:17:57.14お前はどれ書いたの?
0972デフォルトの名無しさん
2013/09/24(火) 23:21:34.98どれか一つ。どれであるかは意味があるとは思わないので答えない。
で、この質問は重要な事なのか?
0973デフォルトの名無しさん
2013/09/24(火) 23:22:37.56ES5 アクセサ
ES7 演算子オーバーロード
0974デフォルトの名無しさん
2013/09/24(火) 23:26:44.86具体的に答えたら、「あ、それ俺が書いたよ」ってヤツが出てきちゃうもんね
でもそうやってぼかした答えなら大丈夫だね
0975デフォルトの名無しさん
2013/09/24(火) 23:28:16.95あぁ、それが魂胆か。
たしかに、偽物が「俺が書いたやつだ」っていう可能性あったな。
ぼかして正解だったようだ。
0976デフォルトの名無しさん
2013/09/24(火) 23:29:25.830977デフォルトの名無しさん
2013/09/24(火) 23:30:40.87>>78,126
書いた
0978デフォルトの名無しさん
2013/09/24(火) 23:31:00.270979デフォルトの名無しさん
2013/09/24(火) 23:33:50.25くそこーどwwwww
これでいいですか?
お前がやるんだろうなと
思った低能な行動w
0980デフォルトの名無しさん
2013/09/24(火) 23:35:59.20ずっどただ喧伝してるだけならほんともう出て行ってもらえませんかね
0981デフォルトの名無しさん
2013/09/24(火) 23:37:43.15クソコードなのは自他ともに認めてるよ
でも、ちゃんとJSも書いたよ
勿論代表としてじゃなくて、1つの例として書いたから、
他のJSコードがどんどん出てきて埋もれるのが本望だったけど
0982デフォルトの名無しさん
2013/09/24(火) 23:37:54.06なんのこいつ?
0983デフォルトの名無しさん
2013/09/24(火) 23:38:49.97別にお前にどのコードを書いたのか聞いてねーし、
答えたからってどうすりゃいいのさ?
知らんよ。
0984デフォルトの名無しさん
2013/09/24(火) 23:41:59.44自分がいる限りちゃんとお題に対してのJSコード書き続けるから
JavaScriptを認めてねってこと
0985デフォルトの名無しさん
2013/09/24(火) 23:42:30.61どういう解釈したらお題を出せって言ってる事になるのさ・・
0986デフォルトの名無しさん
2013/09/24(火) 23:43:10.37だから、このスレにいたいなら
お題を出せって、俺が言ってるんだよ。
0987デフォルトの名無しさん
2013/09/24(火) 23:44:38.28もう意味わかんねえよ
ほんと疲れるわあんた
0988デフォルトの名無しさん
2013/09/24(火) 23:45:58.69お前が、難しく考えるからだろw
2ちゃんねるは誰でも自由に参加できる掲示板
以上。
0989デフォルトの名無しさん
2013/09/24(火) 23:49:09.120990デフォルトの名無しさん
2013/09/24(火) 23:54:29.12補足:自然数でお願いします
0991デフォルトの名無しさん
2013/09/24(火) 23:54:35.79アルゴリズム考える問題じゃねぇか。
まあいいけどさ。
0992デフォルトの名無しさん
2013/09/24(火) 23:55:08.190993デフォルトの名無しさん
2013/09/24(火) 23:56:01.83http://spinda2.blog48.fc2.com/blog-entry-465.html
0994デフォルトの名無しさん
2013/09/24(火) 23:56:37.523桁の数値の積から回分数を求めるなら、http://ideone.com/OHyjx
任意桁の数値の積から回文数を求めるなら、http://ideone.com/O9rmn
総当たりで試しているのでもう少し効率の良いアルゴリズムに改善する余地はあるかもしれません。
0995デフォルトの名無しさん
2013/09/24(火) 23:59:33.410996デフォルトの名無しさん
2013/09/25(水) 00:33:27.780997デフォルトの名無しさん
2013/09/25(水) 01:15:35.140998デフォルトの名無しさん
2013/09/25(水) 01:32:28.340999デフォルトの名無しさん
2013/09/25(水) 01:33:54.371000デフォルトの名無しさん
2013/09/25(水) 01:39:54.80一人いるみたいだね
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。