【PHP,Python】スクリプト,バトルロワイヤル34【Perl,Ruby】
1 :
デフォルトの名無しさん :
2013/05/06(月) 01:45:45.29
2 :
デフォルトの名無しさん :2013/05/06(月) 03:47:20.68
< `∀´>ニダー
死ねゴミ共がw 死ねゴミ共がw 死ねゴミ共がw 死ねゴミ共がw 死ねゴミ共がw 死ねゴミ共がw 死ねゴミ共がw 死ねゴミ共がw
4 :
デフォルトの名無しさん :2013/05/06(月) 05:17:42.72
こっちが普通のスクリプト言語のスレかねぇ
不本意だけど、JSは締め出さざる得ないだろうね。
8 :
デフォルトの名無しさん :2013/05/06(月) 11:07:57.23
>>6 多分ひとりいなくなってくれれば、あっちのスレだって構わないのだが。
ともかく追い抜くこと。
JSもユルユルの型や可変長引数の話は面白かったけどね
あの人さえいなければ、JS歓迎だけどね。当然。
ただ、突然スレタイからRubyを除外したり、少し変だったよね。
アンチJSのことか
改変されたテンプレを見ると、アンチ動的型言語だと思う
>>14 確かに、動的型は危険なところでエラーを吐くべきという話で
じゃあ静的型使えば良いとか言ってたからな。定期的にそういう話の持って行き方をしてた
それでもRubyを外したりテンプレでJSを強調してるのはJS厨だと思うよ
まあ同一人物かもしれんけど
JS厨はJSを褒め称えるためにとにかく無理やりウソを重ねすぎ 前スレでThunderbirdとKomodo EditorはJS製とか言ってたがそれもかなり怪しい
Python製じゃん
ズコー
python製のソフトを挙げたのでは
無理があるなあ
コアや GUI は C や C++ で拡張言語に JavaScript と Python ってところだろうか
thunderbirdは本当にjs製だったわ 無理があるね
>>22 ファイル数見るとPythonが一番多くてjsは皆無なんじゃないの?
大雑把に言ってPython製
ThunderbirdのメインはC/C++だと思うのが Javascriptは「どれくらい」使われてるんだ?
>>23 基盤のgeckoがC++で書かれてる時点でアレだが
一応根拠を聞きたい
>>27 本当だ。つまりJS厨の言ってることの半分くらいは本当かもしれないってこと?
とりあえずjsの話はもういいです 最強の言語はjsでいいから
どうせ願望込みで適当に言ってるだけだから良く間違えるってだけだろ
結局ブラウザエンジンありき。他の言語と違いすぎる
>>32 他の言語だって結局ライブラリありきだろ
そのライブラリもOSのAPI依存だし
同じだよ
JSは他所のスレで語ればいい。それだけ
LL四大言語が揃い踏みしたことだし、バトル再開!
Rubyは日本製だから、ここ日本にはRubyistがいっぱいいるはずなのになあ まともな人が多いのかな。海外でも熱心なRubyistがいるらしいので新しい情報は欲しいものだが
金持ち喧嘩せずじゃないけど、 文法的にRubyはPythonよりも遥かに洗練されているので バトルする必要がない
それじゃあPythonの不戦勝だよ
アンチJS厨=Python厨だからな あんなキチガイがいる場所で、RubyやPerlのまともな話ができるわけがない
JSが糞仕様なのは事実だし アンチJS厨とかレッテル貼って言って根に持ってる奴は JS関係なく自分が妄想垂れ流しデタラメ並べたから叩かれたことを理解してない これからも一生理解しないだろう。もうこのスレには書き込めないはずだけど
perlはシェルスクリプトの一部として簡単な処理を短く(ワンライナで)書くことに 威力を発揮するらしいから覚えたいけど暗号みたいだからつらい
ここでHaskellの話を出すのもだめだぞ アンチHaskell厨が現れて炎上するからな
LL言語は関数型言語から多くを取り込んでいると思うけれど、 成果をあげていると言えるのだろうか。
JSが真のクロージャと柔軟なプロトタイプベースオブジェクト指向を備えた 素晴らしい仕様なのは事実 単純なところで言えば、ネストした関数定義も他の言語にはなかなかない ただ、PythonやRubyがいいのもまた事実
関数型言語は動的でなくてもreplがデフォで使えたりするけど
現実的にはhaskellが便利だと言える人は少数なんじゃないの
>>43 そこなんだよな。関数型言語から多くを取り込んでるけど
結局は関数型言語でない形だったからこそ普及した
haskellみたいな潔癖症みたいな極端な仕様より
Scalaのほうが受け入れられやすいと思う。これはJVMの効果もあるかもしれんが
>>43 それぞれの言語で事情が違う。よく一般化して、LL言語も関数型を取り込んでいる
なんていうけど、安易にそれで納得するのは危険。
各言語ごとに語ってもらうのが一番。
Javascriptのように、実は関数型言語なんだけど、 関数型言語だとバレないうちに手続き型の皮をかぶって こっそりと普及するという手もある
JSが普及したのは糞仕様とは関係ないしスレチだから
Rubyなんかで、自分は関数型言語と見做してRubyの コードを書くぞと決めてかかるとよい結果がでると いうようなことはあるのかな。
関数型言語を使ってるぞとドヤ顔できる
そういうふうに書いた方が見通しがいい時もあるけど 結局場合によるよねって感じじゃね そもそも関数型っぽく書いただけで良くなるなら、Lispもっと流行ってた
pythonは関数型言語の仕様を利用して コーディングすると見やすくなる。 ifやforを思いっきり使って、どんどんネストを 深くすると読むのが辛くなる。関数に閉じ込めても 一緒。再帰的に処理が進められる関数型の方が 読みやすい。
Lispは普及した時期が悪かったな。 C、BASIC、Prolog、Pacalの普及期に重なった。 その後、Cの延長としてC++、Javaが普及し出して 出る幕がなくなった。
再帰って手続き型でもできるだろ むしろ繰り返しに再帰しか使えないとなると 面倒だったり分かりにくいことが増える
JSはプロトタイプベースオブジェクト指向だったことが 普及した要因の一つだろうね。 これが意外と柔軟性があった。
>>52 map,filter,lambdaを使うのが関数型言語っぽいかな
本質的にはリスト内包表記も同じなんだろうけど
pythonのリスト内包表記は確かに読みやすいね
リスト内包表記って冗長だし訳した人アホだね 内包なんて日常使わない List comprehensionと書いたほうがわかりやすい
itertoolsにはお世話になってます
RubyのeachがPrologのmember述語に似てるなんて話がある。 memberはPrologの中核のパターンだけど、結構いろんなもの うまく取り入れている。
>>57 内包を日常で使うかはおいといて
リスト内包表記といえばpython固有の機能って感じがする
シンタックス的には「(リスト内に) for 文内包表記」なんだよな
まあそういうList comprehensionもpythonだけってわけじゃないけど
JavaScriptの場合、Underscoreとかで mapやfilterが実装されてるんだよね。
>>59 どのへんが似てるのかもう少し詳しく聞きたいけど第一印象としてはあんまり似てないと思う
Prolog の member は member(X, L). で L に X が含まれるか調べるものらしいけど
Ruby の each は配列などの要素を列挙するのに使うものだから
Prolog の member 相当は Ruby だと member? か include? ではないかと
irb> [1,2,3].member? 1
=> true
Prologのmemberって列挙も出来た記憶が
>>62 私もあまり詳しくは知らないのだが、
?- L=[1,2,3,4,5],
findall(E,(member(E,L),0 is E mod 2),X).
X = [2,4]
のような使い方が普通ではないかな。
prologは大学でしかやってないけど、あれは独特だったな そのうち今の関数型みたいな論理型のブームっぽいのはくるのかね
>>62 >>64 これだけ見てると Python の in に似ている気もする(実際は違うんだろうけど)
>>> L = [1, 2, 3, 4, 5]
>>> 1 in L
True
でLに含まれるかどうか調べられるし、
>>> [x for x in L if x % 2 == 0]
[2, 4]
で列挙もできる
>>65 関数型は速く動くから結構流行ると思う。一方、Prologはなかなか速くできない。
それで簡単には流行らないと思う。ただ、ラムダ計算法より述語論理の方が
より人間的で自然なので、底堅く生き残るだろう。
> 関数型は速く動くから結構流行ると思う。一方、Prologはなかなか速くできない。 速い場合があるってだけで、 大概は遅いでしょ?
>>41 1文字の予約変数だとおもって覚えるしかない。
とはいえ、perlの基本は一括処理だから埋め込みでつかう程度だとそれすらほとんどでてこないはずなのだけどね。
ワンライナーで使うのって$_ $/ $??くらいじゃない?
rubyでは真偽値を表す関数・変数名に ? を使えるのか ま、ipythonでは object? で help(object) が表示されて便利だから別にいいけど デフォの対話環境でもそうして欲しい
Rubyの ! とか ? は失敗だったなって思う。 結局守られてないし。 せめて間違った使い方をした時コンパイルエラーが起きるのならね。
>>64 宣言型使いとの溝を感じました。頭が割れそうです
Ruby だとこう?
irb> [1,2,3,4,5].find_all{|e| e.even? }
=> [2, 4]
irb> [1,2,3,4,5].find_all(&:even?)
=> [2, 4]
>>61 Underscore面白いね
Javascriptが関数型というのもわかる気がする
>>72 >>64 に近い述語定義。
uniq(L1,L2) :-
findall(E,(
append(_,[E|R],L1),
\+(member(E,R))),
L2).
ここでappendはmemberのスーパーセットにあたる。残り要素Rが欲しかったから
memberではなくappendを使った。
下のmemberの方は検査として使っている。ただし不在証明。
75 :
74 :2013/05/06(月) 20:08:36.67
「残り要素リストRが欲しかったから」ですね。
>>73 mapとかがlistを返すのが、もう設計が古くてアホ的でゴミ
>>76 genarator信者乙
そんなことしなくてもJavascriptをpythonより速いからw
>>71 そうなんだ。選択肢があるとブレるだけってことか
>>77 前スレのベンチマークじゃCythonより10倍遅く無かったっけJS
設計が古くてゴミの上に遅いとか最低じゃね?
>>79 静的言語の10倍程度か
400倍遅いPythonより随分マシじゃね?w
CythonはCPythonで動くんで、Python使いなら誰でも使えるんですよ あ、馬鹿には難しい話かな?
Cで書いたコードがnode.jsで動くのと同じかw
node.jsで動くCのコードが TypescriptみたいなJSに型情報を付けた言語から コンパイルで生成されたなら、まさにそう
そうかそうか じゃあjavascriptと同じだな 何もしなくても十分速いjavascriptの方がマシと
全然違う 例えばTypescriptはJSにコンパイルするだけだから JSより速くならない それとも、どこにも存在しない仮想のコンパイラをベースに話をする? ホントそういうの好きだよねJS厨
Cythonで高速化が必要な状況でJSの速度なら十分とか誰も思わない
文字通り「信者」なんだよな 何事もJSに都合のいいように解釈する馬鹿
だから、Cのような別言語で書けば同じだろ?w javascript書けるならC書けるだろw
そもそもgeneratorが無くて困る場合なんて無いから どうしても困るなら、クロージャでgenarator風に書けばいいだけ
Cythonが素晴らしいのは静的型付け言語だからだよ
pythonのfor文はリストだけじゃなくジェネレータを辿れるから リスト内包表記とかじゃ複雑すぎるときは for i in g(): hoge とできるから良いよね
それは、他の言語だと while ( i = g() ) hoge かな?
>>94 g()が偽に相当する値を返すんじゃない?
Pythonのジェネレータは True, True, False, True みたいな 真偽値を含むストリームも扱えるよ リストがそういった値を格納できる以上、扱えないと困る
>>93 ,95
それだと最後に偽を返すように(それまでは0とか偽とかないとして)
ジェネレータg()を定義した上で
gg = g()
while(i = gg.next()) hoge
みたいになるのかな。言語に依るだろうが
最新版のJavascriptは型つき配列が使えるらしいけど あれってFireFox限定?
なにこのジェネレーターギャップ
ジェネレータつーてもな。 確かにシンプルにはかける。かけるよ? でも、他の書き方と比べてほんの数文字 短いぐらいのものなんだよ。
>>100 JSの開発者はそうは思ってないみたいだけど?
>>102 JS厨は (x for x in L) だけがジェネレータだと超絶勘違いしてるから答えには期待できない
>>104 103じゃないけど、yieldを使ってジェネレータが書ける
こんな感じで
def product(xss):
if xss:
for x in xss[0]:
for y in product(xss[1:]):
yield x + y
else:
yield ''
print(','.join(product(['abc', 'xy', '12']))) #=> ax1,ax2,ay1,ay2,bx1,bx2,by1,by2,cx1,cx2,cy1,cy2
普通の3重ループじゃ駄目なの?
>>106 ループ数は引数のリストの長さで決まるから、
再帰を使った方が書きやすいよ
やっぱpythonのjoinはちょっと気持ち悪いな List.joinでいいじゃんと思ってしまう 設計思想的にこうなんだろうけど
List.joinでは手続き的すぎて古臭いって思想か ジェネレータもそれかな ただの軽量スレッドでは面白くないからジェネレータなのだ
ジェネレータで書けるものを再帰で再現するとスタックの無駄遣いで 再帰の方が非効率だと思う
112 :
デフォルトの名無しさん :2013/05/07(火) 10:33:25.70
% Prologでジェネレータ書いてみる。やはり再帰でしか書けない。 product([_文字列],_一文字) :- sub_atom(_文字列,_,1,_,_一文字). product([_文字列|R1],_生成文字列) :- sub_atom(_文字列,_,1,_,_一文字), product(R1,_生成文字列_2), atom_concat(_一文字,_生成文字列_2,_生成文字列). ?- product([abc,xy,'12'],X). X = ax1; X = ax2; X = ay1; X = ay2; X = bx1; X = bx2; X = by1; X = by2; X = cx1; X = cx2; X = cy1; X = cy2; ?-
>>109 そのList.joinはクラスメソッドかインスタンスメソッドか分からない
List::join
$List->join
これなら分かる
>>113 そうだね
まあ普通はクラスメソッドにするよね
とりあえずpythonは様々な型が入るListに文字列メインのjoinがあるのはキモイって文化で、Rubyとかは多少変でも直感的ならええやんって文化なのかなと思った
再帰使わないで書いてみました def product2(xss):#全角スペースは半角スペースに直してね xx = xss[0:-1] yy = xss[-1] while True: if not xx: break tmp = [] for x in xx.pop(): for y in yy: tmp.append(x + y) else: yy = tmp[:] for i in yy: yield i
結果を全部リストに格納してから返してるけど、 それじゃジェネレータの意味ないよ
末尾再帰で、 (defun product (xss &optional (result (list ""))) (if xss (product (cdr xss) (mapcan (lambda (x) (map 'list (lambda (y) (concatenate 'string x (string y))) (car xss))) result)) result)) (format t "~{~a,~}~%" (product '("abc" "xy" "12")))
再帰なし、yieldなしでtmpも作らない from functools import reduce def product(xss): loop_counters = [0] * len(xss) max_counters = [len(xs) for xs in xss] loop_deps = len(xss) - 1 def _(): nonlocal loop_counters, loop_deps if loop_deps < 0: return None res = reduce(lambda x, y: x + y, (xs[n] for xs, n in zip(xss, loop_counters))) for n in range(loop_deps, -1, -1): loop_counters[n] += 1 if loop_counters[n] < max_counters[n]: break else: loop_counters[n] = 0 else: loop_deps = -1 return res return _
なかなか reduce を使い慣れないし、その存在を忘れてしまう。 (defun product (xss) (reduce (lambda (a b) (mapcan (lambda (c) (map 'list (lambda (d) (concatenate 'string c (string d))) b)) a)) xss :initial-value (list "")))
>>118 funtools.reduceって組み込み関数のreduceと違うの?
>>120 Python3では組み込み関数からreduceが外された
# yieldなしでProduct2 class Closure2Iter: def __init__(self, f): self.f = f def __iter__(self): return self def __next__(self): return self.f() class Product2: def __init__(self, xs, ys): self.xs = xs self.ys = ys def __iter__(self): ixs = iter(self.xs) x = next(ixs) iys = iter(self.ys) def f(): nonlocal x, iys while True: try: y = next(iys) return x + y except StopIteration: x = next(ixs) iys = iter(self.ys) return Closure2Iter(f) print(','.join(Product2('abc', Product2('xy', '12'))))
>>121 そうなんだ。mapやfilterは組み込み?
確かにreduceはあまり使わないというか
直感的でないから定期的に使ってないと使い方を忘れる
なんだか
>>112 のコードと差があり過ぎる。もうちょっと何とかならないものか。
もっと分割するとか。
>>118 >>> product(['abc', 'xy', '12'])()
'ax1'
すいません、上手くできないので教えてください
>>125 ここでは記号処理的な課題になっちゃってるからね。
元々、PrologやLISPはそれ用の言語だから。
>>126 ただの関数オブジェクトを作って返しているので、イテレータプロトコルは使えないんだ
f = product(['abc', 'xy', '12'])
x = f()
while x is not None:
print(x)
x = f()
みたいな感じで使う
こんな感じのラッパーを作れば、イテレータとしても使えるね from itertools import repeat, takewhile def iproduct(xss): return takewhile(lambda x: x is not None, (f() for f in repeat(product(xss)))) print(','.join(iproduct(['abc', 'xy', '12'])))
lambdaの中でtryが使えない仕様のせいで 例外を投げるよりNoneを返す方が有利になっている
>>105 をRubyの内部イテレーターで
Rubyの文字列はEnumerableじゃないのだけど、だいたい似たような感じ
def product(xss)
; if xss.empty?
; ; yield ''
; else
; ; xss.first.each_char do |x|
; ; ; product(xss.drop(1)) do |y|
; ; ; ; yield x + y
; ; ; end
; ; end
; end
end
#product(['abc', 'xy', '12']){|x| p x} #Rubyの普通の使い方は、こっち
g=enum_for(:product,['abc', 'xy', '12']) #内部イテレーターをジェネレーターに変換
puts g.to_a.join(',')
メソッドの頭で
def product(xss)
; return enum_for(__method__,xss) unless block_given?
とかしておくと、ブロックが与えられなかったときにはジェネレーターを返すようになる
1.9以降の標準メソッドではそんなAPIになってるものが多い
#再帰なしで内部イテレーター def product(xss) ; sizes = xss.map(&:size).reverse ; sizes.reduce(:*).times do |i| ; ; indexies = sizes.map{|s| i,r = i/s, i%s; r}.reverse ; ; yield xss.zip(indexies).map{|xs,n| xs[n]}.join ; end end g=enum_for(:product,['abc', 'xy', '12']) puts g.to_a.join(',')
#配列を生成 def product(xss) ; xss.reverse.reduce([""]) do |a, b| ; ; b.each_char.flat_map{|x| a.map{|y| x + y}} ; end end puts product(['abc', 'xy', '12']).join(',')
Python3.3 でジェネレータ def product(xss): yield from ((x + y for x in xss[0] for y in product(xss[1:])) if xss else [''])
JavaScriptもasm.jsつかってAOTコンパイルすればCythonとやらに負けないんだが
>>118 >>> product(['abc', 'xy', '12'])()
'ax1'
すいません、上手くできないので教えてください
137 :
134 :2013/05/08(水) 08:50:19.76
yield from 使ってみたくて使ったけど不要だった
def product(xss):
return (x + y for x in xss[0] for y in product(xss[1:])) if xss else ['']
>>136 何故
>>126 と同じ質問を繰り返すの?
>>123 reduceは2変数関数を自動的にn変数に拡張する
手動でn変数関数を作りたくない時に使う
>>135 C/C++で書かれたコードの利用なんてFFIで遥か昔から可能
Cythonはそういうのとは違って、C/C++より書き易い言語でC/C++コード生成を目的としている
asm.js: C/C++ のコードを emscripten でコンパイルして Javascript コードを生成
Cython: Python like なコードをコンパイルして C/C++ のコードを生成(Pythonから利用可能)
まあそのうちTypeScriptがasm.js生成するようになるでしょ
というより、普通にJavaScript自体が高速
また存在しないコンパイラの話だよ
スレチどころか板違いの言語の話はもういいです
>>139 asm.jsは普通に手で書けるんだけど?
別に全てを書く必要はない
ボトルネック、特にCでメモリを扱うような処理をJSで高速にさせるために使う
その他は十分素のJSで早い
投機的実行って未来の技術だと思ってたけど JAVAでは9割でよばれる関数はされるみたいでビックリ スクリプト言語エンジンでそうするのある? V8とかはどうだろ
新技術「起動が9割」
javascript系はお隣へどうぞ。
黙ってジェネレータのコードを貼ってくだけなら良いぞ > Javascript
>>145 もともとその他のオーバーヘッドが巨大なのでそういう低レベルな最適化はあまり効果がない
メンバの検索を速くしたりするほうが遥かに重要
V8がやってるようなJavaScriptの最適化は 型システムを工夫してキャッシュを駆使していかに静的型っぽく実行させられるか、ってのが基本 静的型なコードにしちゃった時点でその部分は他に比べて十分速いから そういう細かいことは相対的にどうでもいいんですよ
キリッ
>>145 JAVAっていうかOaracleのJVM?
9割で呼ばれる関数が投機的実行されているって状況が良く理解できないんだけど、
どこ行けばそんな情報得られるの?
インラインキャッシュかなんかと混同してるんじゃないの
>>155 CPUでやってるような投機的なコードの実行の話ではないんだね
仮想呼び出しされてるメソッドの呼び出しが、9割以上特定のメソッドの呼び出しに偏ってれば、
それを静的なメソッド呼び出しに置き換えちまうって話か
これは動的言語のJITならだいたいやってると思う
SunでHotSpotの開発してた人がGoogleに移籍してV8の開発リーダやってるしね 同じような仕組みは入ってるだろ
呼び出し箇所ごとにキャッシュ持つやつだな(インラインキャッシュ) スクリプト言語の場合はメンバの検索が非常に重いから、それを避けるために普通に使われてる考え方だよ 実装も簡単だしJITでないと使えないわけでもないし スクリプト言語だとインライン展開まではやらずにメンバの検索を無くすまでで十分
この手の技術を投機的実行と呼ぶなら世の中で使われるキャッシュのほとんどが投機的実行になるw
node.js ってファイル書き込み遅すぎるんだけど このコード試したら終わるまでに12秒掛かったぞ var fs = require ('fs') var write_stream = fs.createWriteStream("test.txt"); for (i = 1; i <= 100000; i++) { write_stream.write(i+"\n"); } write_stream.end() しかも、最初はループ数を1000000で試してたんだけど、 そっちは5分待っても終わらなかったし(途中で諦めた)
pentiumDだが一瞬で終わるぞ? まさかver0.4使ってますとか言うんじゃないだろうな?
> node -v v0.10.5 なんでだろ?10000なら一瞬で終わるんだが
ああ、言ってる意味が分かった その処理を終えるまでの秒数じゃなくて ファイルが実際に書き込まれるまでの時間ね そりゃあ名前の通り非同期の単なるストリームなんだからそんな大したものじゃないよ バッファ作らないと
オブジェクトは検索が9割って、ちやほやすると見せかけて貶されてるだろ クロージャ派の陰謀なんだよ
日経Linux ?@nikkei_Linux 日経Linux 6月号では、Rubyの父、まつもとさんの新連載「言語の世界」が開始です。 私もびっくりしましたが、高校生の頃から「いつか自分の言語を作りたい!!」 とずっと言語に浸られていたエピソードなどが出てきます。 そして「理想そのもの」とおっしゃるLispをひも解きます。(あ) 返信 リツイート お気に入りに登録 その他 2013年5月9日 - 12:09
>>164 オブジェクトは検索が9割?誰がそんなことを
まあボトルネックになっててくれないと最適化の成果が出ない
死ねやバカ共w
ゴミゴミw
170 :
デフォルトの名無しさん :2013/05/11(土) 20:57:18.52
てすと
やったーアク禁解除されたぁー\(^o^)/
>>126 、136はアク禁中に代行さんに依頼したもので、
代行さんが間違って2回投稿しただけなんですよぉ
>>144 > asm.jsは普通に手で書けるんだけど?
強がりじゃないなら、このスレに出てるproductを書いてみてよ
「普通に」書けるなら楽勝だろ?
いろんな言語・パターンで書かれたサンプルが上にゴロゴロ転がってるしさ
もちろんジェネレータで書いてくれるんですよね?
>>172 productって何?
レス番示してよ
それにどうしてそんなに突っかかるのか不思議
普通にっていうのは、コンバートが当たり前みたいな流れに対して言った言葉で
書こうと思ったら書けるくらいの意味だよ
でも、もしV8で採用されたら使うつもりだよ
今作ってるゲームが5%でも高速化するのなら普通に手で書く
そのくらい本当に速度が必要に感じてれば、
手で書く気が起きるレベルってことが主張したいのです
とりあえず数十行のサンプルソースでしか試してないけど
ボトルネックってのはそんなに多くないし、変更少ないもんだし
十分手で書ける手応えはあったよ
というか元々あるライブラリを変換するならともかく
新規に別言語で作って変換するのは嫌
それならDartとか最初から別言語使ったほうがいい
スレ内を検索する事すら出来ない 馬鹿には無理 それとも、検索するほどヒマじゃ無いって言い出すかな? 長文書き込むヒマはあるみたいだけど
てかjsは板違い せめて向こうのスレでやって
"use strict"; function product(xss) { if (xss.length != 0) { for (let i = 0; i < xss[0].length; i++) { for (let y in product(xss.slice(1))) { yield xss[0][i] + y; } } } else { yield ""; } } print([x for (x in product(["abc", "xy", "12"]))].join(","));
すげえ、書けちゃったw
しかもこれ、Pythonさん自慢の内包表記っぽいじゃないですか!w 普通のforで内包表記もできちゃうのか まさにJS最強すぎワロタw
あれ?真性JS厨
>>90 のクロージャ最強説はいずこ…
やっぱジェネレータ必要ですかね?
>>179 っぽいじゃなくて丸パクリしただけだから
ジェネレータで余裕とか嘘だから
これES6のつもりか? せめて実際に動かして 正しく動くの確認してから貼れよ……
間違えた。ジェネレータはクロージャで余裕とか嘘だから
185 :
177 :2013/05/13(月) 00:15:18.32
>>182 Gjs 1.32.0 で確認してるよ。
だから Mozilla の JavaScript 1.8.5 でも動くと思う。
どこまでが ECMAScript 5.1 で、どこまでがMozillaの独自かは知らない。
すげええええええええ これがあればyield要らんね! Iteratorもあるし! まさにJS最強だわ さすが柔軟だな
>>185 お前がJS書けないのも、実際に実行してないのも良く分かったよ
forの中のinの振る舞いはJSとPythonで違うんだよ
まあそもそも
>>184 のライブラリを使えば解決ですしおすし
マトモに書く事もできん言語のコードを スレ違いだと言われた直後に貼付けて勝利宣言 くさってやがる
>>184 は無視か?
JSはなんでもライブラリで出来るんよ
柔軟だからな
>>188 それ言ったらPythonなんて標準ライブラリなんですけど?w
全然意図が分かってないな。別にその結果が欲しい訳じゃねーよ。馬鹿だなあ
>>177 だけど
printをconsole.logにして、type="application/javascript;version=1.7"なら
Firefoxで動いた
ややこしなあ。JSコード貼る奴はHTML含めた実行環境まで書けってことだな。糞だなあ
じゃあ、どういう意図なんだ? 結局、Pythonは別の書き方で簡単に実装できちゃうものが標準で 洗練されてませんよ?って意味?
いやJS厨のクロージャさえあればジェネレータ不要って主張が事の発端だろ クロージャで簡単に実装できるのかは知らんが
yield無いなら素直に内部イテレータでやれと言いたい コールバック万歳の言語なんだから
結局、動いちゃって
>>177 の大勝利かw
動かないとか言ってた奴ら
m9(^Д^)プギャー
殆どの環境で動かないコードが正解って
200 :
177 :2013/05/13(月) 08:24:31.91
勝利?
自分はJavaScriptについて詳しくないので、
>>177 が
JavaScript的に妥当な書き方なのか分からない。
調べると、Javascriptでは配列のループに for...in が落とし穴の1つだということは分かった。
JavaScriptをプッシュしている人は、自分ではプログラムを書き込んでいないようだけれど、
asm.jsに対応しているものや、ECMAScriptの範囲内のものを書いて欲しい。
将来のJSにジェネレータが入るってことは JSの標準化に関わる人達はクロージャで十分と思ってなくて ジェネレータの有効性を認めてるってことか
でも実際は十分だよな
数百行のコードで
>>196 が作れるわけだし
まあ、なくてもいいけどあってもいい程度の認識だろう
>>202 どういう帰結になってるのか。わかりにくいのだが、言語によってはジェネレータ
なんて数行で書くことができる訳だが。
>>203 元々は、RubyのeachがPrologのmemberに似ているかどうかの話から始まった。
Rubyのeachは作り付けだけども、Prologのmemberは純粋にユーザ定義の述語。
それが二行だということだ。JSの人が書き込んでいることの意味が分からない。
>>203-204 だとするとJSの何に文句を言ってるのか分からない
良く分からんけど、本当に言語によってジェネレータが数行でかけるなら、おそらくは
JSでもたいした行数じゃないよね
そこに何の問題があるの?
>>206 毎回一行require書けば済む
というのはおいておいて、例の1000行のライブラリは
eachとかmapとかその他もろもろを遅延評価で書くためのもの
productもあるから引き合いに出た
ジェネレータとは少し異なる
ただし、ジェネレータが必要なほとんどの場面に適用できるだろうけどね
マクロはおもろいけど、ジェネレータの便利さとやらを ソースコードで書いてみせてくれないと説得力ないな あと、JSはクラス無しでクラスと同等以上の事ができる Pythonが内包表記でlambdaと同等以上の事が出来るから lambdaなくそうという動きがあるのと似てる
あのお、JSはスレチなんですけど、スレタイ読めないんですかね
>>207 Prologのジェネレータは g(A,[B|R]):-A=B;g(A,R). ですが、さすがに、
手続き型言語ではこうはいかない。それで、まつもとさんはeachという形で
うまく取り込んだね。そういう話題にクロージャがどうのこうのと言われても。
「初心者がクロージャ意識して書くのですか?」としかいいようがない。
内部イテレータは呼び出す側で制御できないだろ プッシュ型になるので途中で止めて後で再開したりできず、手続き型とは相性が悪い 結局rubyも外部イテレータを導入した それに、外部で内部は全く問題なく代替できるが逆は不可
213 :
デフォルトの名無しさん :2013/05/14(火) 07:14:50.82
死ねゴミクズ
214 :
デフォルトの名無しさん :2013/05/14(火) 07:16:06.43
217 :
デフォルトの名無しさん :2013/05/15(水) 12:54:09.50
>>218 本当にプログラミング大好き男だったら、
Ozなんて言われたらちょっと怯えるだろうな。
PHP勉強し始めて1か月くらいなんですけど、質問です。スレチだったらすいません ↓このプログラムの値を受け取るにはどのようにしたらいいのでしょうか? <form action="sample10-2.php" method="get"> <?php $items=array('a-1'=>'ガム', 'b-2'=>'チョコレート', 'c-3'=>'クッキー'); foreach($items as $itemKey => $itemValue){ print('<input type="checkbox" id="'.$itemKey.'" value="'.$itemKey.'" /> <label for="'.$itemKey.'">'.$itemValue.'</label>'); } ?> <input type="submit" value="送信する" /> </form>
>>220 初心者向けのPHP本を参考に進めていくと
そういうバッドノウハウ(やっちゃいけない事)ばかり覚えちゃうから
別の言語を勉強した方がいいよ
RubyとRailsか
PythonとDjangoやっておけばおk
初心者なら日本語の書籍が多いRubyのほうがいいかな
>>220 ドキュメントも実績もPHPの方が圧倒的に多いよ
ここは現実をみられないおじさんが多いから気を付けよう
ちなみに値は$_GET[value名]で取得できる
PHP世代はもう30代のおっさんだろ Perl世代は40代〜 スクリプト言語界のCOBOLになりつつある
224 :
デフォルトの名無しさん :2013/05/17(金) 09:09:43.86
zend2の書籍まだぁ?
Tripod使ってたのがperlで Xrea使ってたのがPHP使い。
そして今の若者はAWSか 老害が取り残される時代だね
227 :
デフォルトの名無しさん :2013/05/17(金) 16:48:37.50
今の若者はHerokuとかCloudFoundaryだろ
>>228 HerokuってAWSの再販だろw
AWSの上に余計な層挟んで鞘抜きしてるだけ
無料部分があるから一概に中抜きしかしてないわけじゃないが
ちょっち質問 PHP使ってデータベースとくっつけたHP作ろうと思うんだけど開発環境どれにするか迷ってる 今後適当に長く付き合って行きたいからみんなが使ってるの参考までに教えてくれ
>>231 ここはPHP馬鹿にするやつらしかいないしPHPのスレで聞いたほうがまし
開発環境がIDEのことなのか、フレームワークのことなのかわからん。
フレームワークなら、CodeIgniter, cakePHP, ZendFrameworkなど。
有名なのいくつか試して自分で決めればいいだろう
あと長く使いたいなら、PHPよりASP.NET MVCとかで作るほうがいい。
10年以上サポートされる。
企業でやるならだんぜんASP.net
233 :
デフォルトの名無しさん :2013/05/18(土) 10:33:23.21
>>232 "hate ASP.NET"
約 14,400 件 (0.15 秒)
ASP.netは世界で一番使われてるWebフレームワークだ
>>234 すごい頭悪そうなレスだね
ASP.netは世界で一番ドカタ仕事に使われてるWebフレームワークだ
オワコンのイントラ系受託開発用言語押し付けるなよ お前らは下請けのゴミになりたいのか? 違うだろ FacebookやTwitterのようなグローバルなWebサービス作りたいんだろ そこを履き違えるな
そもそもWebサービスを作るのに興味が無い
スクリプト言語スレで何いってんだコイツ
俺もwebサービス作るのに興味ないわ コイン落とし系iOSアプリ(アイテム課金)その他作ったら びっくりするほど儲かったし ビジネスモデルがAdsenseやAmazon広告依存で1PVあたり0.03〜0.05円しか売り上げないWebサービスなんてやるだけ無駄だよ
俺の起業仲間が誰でも使えるASP型の画像アプロダ作って運営してたが 転送量で赤字、広告はめったにクリックされないで結局借金抱えたまま サービス閉鎖に追い込まれてたわ webサービスで一山当てようだなんて夢を見るな
まぁ今時Windows向けスタンドアロンパッケージソフト開発で 儲けようとする奴よりはマシだけどな 大昔:パッケージソフト、シェアウェア全盛期(オワコン) 昔:Webサービス全盛期(オワコン) 今:iOS、Androidアプリ全盛期 だよ ガンホーの株価みて気付かないアホは経営に関わっちゃいけない
まだWEBサービスで夢見てる馬鹿高齢者が居るのか?
>>243 特定した
tp://blog.loda.jp/2012/02/lodajp-331.html
247 :
デフォルトの名無しさん :2013/05/18(土) 19:33:59.83
>>246 違法なファイルへの対策ができないなら、海外で鯖立てればいいのにね。2chみたいに。
>>247 閉鎖は営業赤字が主な原因だろw
転送量は
動画>>>>画像>>>>テキスト
写真メインのwebサービスがある程度の顧客を獲得すると
優良広告主が付く前に資金がショートしやすい
動画に至っては優良広告主がいても赤字
自社で広告配信システム持っててインフラに対するスケールメリットを
最大限活用できるGoogleじゃないと黒字化は難しいだろうな
そういやニコ動ってまだ赤字なん? 日本人が開発した動画系サイトで成功してるのは 無料の海外アプロダにデータ置いて転送量を負担してもらう(訴えられたらアウト) 違法アニメ視聴サイトくらいしか知らんなw fc2が買い漁ってたから数億単位で儲かったんじゃないか、創業者は
一般回線絞って有料会員増やしてトントンくらいじゃないのあそこ それでもよく鯖不調とかやってるし まあ超会議とかやってるし別に気にしてないだろたぶん
>>241 スクリプト言語ってWeb用言語のことじゃないぞ
事実上web専用だろ 9割以上はweb系で使われてる
Pythonはそうでもないだろ
PHPやJSしか使えない低能が スクリプト言語全般を語るな
本来のスクリプトらしいまともな使い方をされてるのって PythonとPerlくらいか
>>255 シェルスクリプト、Lua、スクワール(スペル忘れた)
スクリプト言語ってバッチファイルみたいなイメージだわw
>>256 LuaやSquirrelみたいなアプリ組み込みスクリプトをまともな使い方とするなら
ブラウザスクリプト(JS)もまともな使い方に含まれる
まともじゃないという言い方はおかしいが、 JavascriptとLuaとSquirrelとEmacs Lispは アプリ組み込み言語として同カテゴリ
厳密な定義ないしな まあPerlが一番スクリプト言語って感じかも
ツールのPython、糊のPerlって認識
Perl5: ごった煮。簡単に書けるようでもはや簡単ではない。遅い。 PHP: 他の言語の良いところをいろいろ拾ってWebに特化してみました。でも互換性の問題を引きずり始めたよね? Python: バージョン間で互換性を失うという地雷を踏んでみましたw というイメージw
俺の中ではJS=(WSHで使う)バッチファイルの補助言語だな 逆にブラウザで使ったことがほとんどないや
Perl5:目が痛いw PHP:罠のある巣箱 Python:互換性(以下略
JSみたいにレガシーシステムで使われることのない言語は 互換性捨ててどんどん良い言語になってるな 逆にJSは互換性のためとか言って史上最悪のクソ言語になりはてて しかも結局クソ言語のツケを後のコーディングで払うという悪手しか打てない状況 こんなの好き好んで使ってる奴いねーわな。しかもブラウザ以外で使うとかキチガイすぎw どうせ頭逝ってるやつだから一切会話は通じないクソスレ乱立、クソレス連投の馬鹿だから相手にするだけ無駄だけど
JSはそもそもが糞仕様すぎるのに、何も改善できないとか終わっとる あとはあっちのJS専用クソスレでお願いします。スレチなんで。
PHPはクソ仕様で、互換性については異なるバージョンで別々に開発を続ける。どっちが良いのか誰にもわからない Pythonは2.8はもうでない。2を使いたいなら使ってもいいけど、3の方が良い言語で全体的には3に移行 JSはブラウザによって互換性のないコードがいっぱいある最悪クソ環境
PHPは簡単なWebサイトを作るのには良いツール(≠良い言語)かもしれないけど > PHP: 他の言語の良いところをいろいろ拾って これはねーよw
PHPのドキュメントやリファレンスは素晴らしいと思う 言語仕様のことは言うな
270 :
デフォルトの名無しさん :2013/05/19(日) 10:05:09.97
>>270 特定のホストを引き合いに出したらJSじゃないってことですか?
それじゃIOすら無いじゃないですかw
>>271 いや俺が言いたいのは、WSHで動かすスクリプトってJScriptやVBSじゃねーのって
>>272 それを言うならJavaScriptだって本来は特定のブラウザに組み込まれたスクリプトの呼称なんだぞ?
今JavaScriptといえばEcmaScriptをベースにしたスクリプト言語の総称とするのが一般的なんだから
JScriptもJavaScriptだ
274 :
デフォルトの名無しさん :2013/05/19(日) 10:43:40.18
E2CHとは、新しい掲示板サービスです。 Pythonのフレームワーク Tornado 使用 e2ch.com
紛らわしいからJavaScript=ブラウザスクリプトの総称ということにして WSH/JScriptとかWinJSとかnode.jsみたいなのはecmascriptを名乗るべき
>>275 VBScriptだって立派なブラウザスクリプトだぞ
VBScriptってJavascriptに匹敵するくらいウンコなの? それとも少しはマシなの?
>>277 ブラウザ上で動かすならどっちも同じだろ
ブラウザで動かすこととウンコさに関係があるの?
VBScriptの方が昔は人気あったな
何かくみ上げるのにサンプル探したら、 各機能ごとにVBScriptとJScriptのどっちかの例が 見つかってどっちに合わせよー!?とかなる。
生き残ったのはJScript
ホストに用意された関数を 適当に呼び出すだけのコードを書くのが JS系言語のお仕事だから、言語が糞でも問題ないんだよね 何らかのロジックを書く必要があると大変なんだけど
お前の実力ではなw
実力がある人はJSでも作れるよ マトモな言語を使えばもっと生産性が高いだけで
JSはかなり良い部類と今では見なされてるけどな
>>268 それが悪い方向にごった煮になっているんだ。
クラスまわりがJava臭いのにメソッド・関数はJavaScript臭い。
関数の参照はPerlの文字列のシンボル?になってるし。
変数はシェル〜Perlあたり?
JavaScriptはブラウザに特化した部分を取り除けば まあそこそこ使いやすい言語。
型付けの弱い言語は最近の流行じゃないよ メリットが無いし
>>289 最近は静的言語に回帰傾向にあるのは事実だが、メリットがないつーのは嘘だろ。
RubyとかPHPとかバカでもプログラミングできたりするじゃん、例えば
それは確かなメリット
まーた型の強弱と静的動的の混同か…
動的型付け言語で型づけが強い言語なんてあるの? 静的型付け言語で型付けが強い弱い言語はあるけど
型が弱ければ弱いほど、全てを間違わず把握する能力が要求される バカが触るのは不可能になる。動的でも強いほうが良い そういう話をしてるって理解できないのだろうか
静的+型推論が最強で結論でてる。 動的言語はIDE作らなくていいから乱立してるだけ。 技術的優位性はない。
ここでそういう書き込みするとHaskellスレへ喧嘩売りに行く馬鹿がいるからやめてくれ
> 動的言語はIDE作らなくていいから乱立してるだけ。 静的言語ってIDEを作る必要があるの?それって劣ってない?
>>296 コンパイラだけではその言語誰も使わない
IDEは必要だよ
ゼロから作る必要は当然ない。
有名IDEのプラグインだけつくればいい
劣ってる?アホじゃないの
IDEがあれば生産性は格段にあがる。
必要なものが欠けているのが動的言語
なるほど、静的言語はIDE無いと生産性が下がるんだね 劣ってるね
静的型付け+型推論+IDE この三拍子そろったプログラミング言語って例えば何?
>>299 C#
静的ならIDEはたいていある。
IDEないと普及しない
いまどきコマンドラインでコンパイルしてる原始人はいない
反論出来なくなって罵倒ですか 言語だけでなく信者も劣ってますね
>>301 C#の型推論?w
あんなのOCamlやHaskell知ってたら笑っちゃうよマジで
ショボイほうの型推論のことか
>>303 OCaml? Haskell?
プププ
もっと人気のある言語になってから言えw
なるほど、技術的な優位性は無いけど人気はあるよ、と
Haskellは実際生産性かなり劣ると思うけどね 副作用がないという制約の中で四苦八苦せざるを得ない 達人でもやっぱり競技プログラミングで勝てないみたいだしな
競技プログラミングはグローバル変数上等だからな まあ実際の開発でもハスケルが優れてるとは思えないが
グローバル変数上等だとHaskellが勝てないの? 関係ない気がするけど
>>309 よくそんな回らない脳みその気のせいを信頼できるな
お前の考えは全部間違ってると考えたほうが正解に近いぞ
さすがにそれはないわw 説明できないからって、人格批判されてもねえw
>>309 はどういう理屈で関係ないと断言してるんだ?それがまず意味不明
>>311 自分が正しいという考えを捨てろ。お前は間違ってるから
>>307 Haskellプログラマにとって、副作用がないということは
当たり前のことで、四苦八苦するなんてことはない。
我々が酸素を吸って生きているか、窒素を吸っていきているか。
そんなこと気にしないくらい、気にならない。
グローバル変数どころか、問題のデータサイズに合わせて 配列の大きさまで決めうちで定数使うのが競技コード 計算量が多いだけでコード量は全然小さいし、競技のときだけ動けば良いので保守性を考える必要もない このスレで言われてるような、型の強さや副作用の除去が 全然メリットにならない、特殊なプログラミングだよ
ていうか、話を戻しちゃうけど 動的型言語にもIDEあるよね
>>315 そのいずれをとってもHaskellが不利になる要素ではない
複雑なロジックを組むにあたって、静的なチェックはある程度
有利にはなるよ
結局、グローバル変数だのデータサイズ決め打ちだのとは全く関係なく、 副作用のないスタイルをHaskellで書くのに四苦八苦して 生産性が悪いから勝てないんだと思うよ
>>317 何がどう有利なんだ?それは開発上の理想論だろ
競技プログラミングはテストケースを通せさえすればフェイルセーフとかどうでもいいのに
>>318 グローバル変数は最大の副作用だろ。馬鹿すぎる
>>319 実際、論より証拠で、動的型言語より静的型言語の方が
圧倒的に強い
>>320 別にグローバル変数だからといって副作用にする必要全くない
副作用が有利なのは間違いないけど
ただでさえ数値計算ならC/C++が鉄板のところ、 グローバル変数やデータサイズ決め打ちで良く、 汎用的に書くのが面倒というC/C++のデメリットも無視出来るなら 大抵の奴はC/C++で書くよ
>>321 競技プログラミングで静的型の方が強いのは実行速度が速いからだよw
で、ハスケルのC/C++に対する優位性って何?
>>321 > 別にグローバル変数だからといって副作用にする必要全くない
それただの定数や
>>321 その「副作用にする必要全くない」って何?
実際に副作用として使われてるから言ってるんだが
>>323 実行速度が速いからってのは大きな間違い
間に合うか間に合わないかの二択で、それは
アルゴリズムのオーダーによる
言語によって異なる事はまずない
HaskellのC++に対する優位性はあまりないだろうね
ただ、サイズ決め打ちだの保守性考えなくていいだのは
Haskellにとっても、不利でも何でもない
>>324 Haskellは全部ただの定数にする必要があるから
そこで不利なんだろうね
>>325 それならいいよ
副作用として使えないという論点なら、Haskellが間違いなく不利だから
328 :
デフォルトの名無しさん :2013/05/20(月) 08:16:20.90
関数型は大多数の開発者にとって 開発生産性が低下する。 学習コストも高くつく それも大きな「副作用」
競技プログラミングでグローバル変数にしてるのは、たいていは、やろうと思えば 関数の引数で渡せるものばかりだけどな 単に、引数書くのが面倒だから省略してるという側面があるわ
>>329 参照渡しするなら副作用だし
値を返して変更するのも副作用、しかも多値を返せない言語だと実装が面倒になる
完成までの速度も競ってるんだから省略もするだろう
実際の開発でも、開発速度と抽象化にかけるコストはトレードオフだ
ハスケルみたいな極端な言語は、おもちゃとして面白いだけで終わるかもしれない
HaskellはIO回りがやたらかったるいからな やばいこんな複雑なアルゴリズムが簡潔にかけてしかも速い!ってやるのにはいい言語なんだろうけど まあ単体で使うような言語ではない気がする
抽象化にかけるコストって? Haskellだとそれがかかっちゃうのか?
>>330 値を返してそれをそのまま使えば副作用じゃなくなるけど
ただ、haskellでは、そういう場所に限らず全てでそのスタイルを強要されるし、
C++ならどこであっても、副作用が使えるってだけ
Haskellは空間計算量の見積もりが難しすぎるわ 計算量を増やしたらスタックオーバーフローした、ってのが日常茶飯事すぎる
なるほどな 再帰とかたくさん使いそうだもんなw
>>334 それ再帰つかったloop処理の話?
Scalaの本にも、再帰で大量のループやると
スタックオーバーフロー起こすことがあるって書かれてた。
関数型言語ってクソだなとおもった
スタックオーバーフローも「副作用」だよね
繰り返し文がある言語なのにドヤ顔で意味もなくスタックに関数を積み上げる馬鹿もいるよね
つ末尾再帰
Rubyって2012年に出したRuby20周年の目玉がキーワード付き引数とかだったからびっくりしたわ。 C#とかC++とかはいかに動的型づけ言語に生産性を近づけるかで大きく進歩する伸び代があったけど、 RubyとかPHPとかPythonとかはゆとり言語だから、とにかく言語としての限界が既に決まっている。 かといって途中から型とかクラス追加とかしたらPerlみたいになるのは目に見えているし、正直動的型づけ言語はオワコンだわ。
論理構成がめちゃくちゃすぎ アンチ動的もあっちのスレを使えよw
コンパイラが人間の替わりに型チェックしてくれる。
>>342 私は動的言語しか知らないから聞いているのだが、
引数と引数の型の齟齬で致命的なエラーになるケースは
そんなにあるものですか。
>>343 メンバ変数やメソッドの有る無しもコンパイラが静的にチェックしてくれる。
>>345 無かったことが分かるタイミングが違う。
動的言語は実行時、静的言語はコンパイル時に分かる。
静的言語のコンパイラの方が多機能といえる。
まれにしか実行されないコードっていうのもあるからな 動的型付け言語の場合にはその辺まできっちりテストとか書いてないと 静的型付け言語ならコンパイル時に簡単に検出できるようなつまらない型の齟齬で 肝心なときに大惨事に陥る可能性が高くなる
>>347 そういうことは分かるのですが、私のような
一発完動世代にとっては、丁寧さこそ力でして。
>>348 紙カードにフォートランのコードをパンチしてたこともある俺からしても
静的型付け言語の型チェックは重要だと思うのですが
規模にもよるのでは。 小規模なものだと、Prologのように全部フラットで構造体なしっていうのが 一番エラーは少ない。その代わりどうしても大きな構造でしか表現できない ものが出てくると困る。
>>350 Prologは確かに型なしで動的なんだけど、引数部分では検査しないが、
実は、細分化された述語の構造が型なんだね。だから、コンパイルすると
静的言語と同様にエラーも発見できる。再帰的に述語定義をlistingして
行くことができるけど、これなどは型推論そのものだし。
>>347 …たまにしか動かなかったらテストしないのか?
型以外の問題が放置されそうだが…
>>348 > 私のような
> 一発完動世代にとっては、丁寧さこそ力でして。
俺、元天才プログラマーだったので
機械語でOSとかコンパイラとかスクリプトエンジンとかHTMLブラウザとか書きまくっていたけど
確かにデータ型とかそんなバグは出したことがない。
それどころか1バイトを書き換えるいたずらすらあっという間に発見してた。
しかし、テストしなかったのはテストツールを作るのがめんどくさかったからであって、
テストツールや入力補助機能があるんなら大いに活用するべきって言うか
機械語で入力していたときでも、後から変更するときというのは新規に作るのと同じだけの労力がかかってしまうので
入力補助ツールを作ってから仕様変更をしていた。
そしたら天才といえども明らかに作業が楽になってはかどるようになった。
また、機械語といっても8進数限定だったので
16進数環境に遭遇したときは8進数エディタを作ってから入力してた。
つまり、入力環境は重要。
ちなみに、アルファベットを使わなかったのは当時3歳だったので大きすぎるキーボードしかなく、入力効率が落ちるから。
テストは自分でやったことはなく、他人にやらせてた。
さらに、データ型でエラーは出なかったけど、数値が大きすぎてオーバーフローするバグには遭遇したことがある。
コーディング中に桁あふれを考えるのは難しいから、そこはプログラム設計とかデータ設計をするときに考えないといけない。
mrubyでドライバとか書けるの?
Perl6は惜しかったよな。せっかくスクリプト言語でも型宣言必要って早々に気づいたのに。
>>353 一発完動は所詮努力目標だね。それより、マイケル ジャクソン が何かの雑誌の
インタビューに答えていたが、盲目のCOBOLプログラマに教えたときの彼らの
真剣な丁寧さ。IDE(当時の)を使えばプログラマは嬉しいかもしれないが、
何か別に大事なことがある、という話。一発完動って、そういうことなんだな。
358 :
353 :2013/05/21(火) 16:41:18.52
Wikipedia
>マイケル・ジャクソンは、個々のプログラムに証明を付けることは現実的には難しいだろうと述べている。
>ジャクソンは構造化プログラミング手法の一つであるジャクソン法で有名なコンピュータ・コンサルタント。
データ構造に着目?
それは確かにCOBOL的だ。
ttp://livedoor.blogimg.jp/petapen/imgs/7/c/7c9fc419.png > IDE(当時の)を使えばプログラマは嬉しいかもしれないが、
金がかかるから”無能な”経営者はうれしくないかもね。
> 何か別に大事なことがある、という話。
ズバリ、お金ですね。
> 一発完動って、そういうことなんだな。
一人で感動してろ。
> 一発完動は所詮努力目標だね。
再編集するツールがない場合は目標とか言ってられなくて、絶対やらないといけないんだが。
しかし、修正箇所が少なければ捗るのも確か。
盲目のプログラマとかちょっと考えられないけど
パンチカードで入力してた当時ならむしろふさわしい仕事だったかもね。
359 :
353 :2013/05/21(火) 16:52:19.58
俺がプログラム書いてた頃って スーパーコンピューターっぽいものでも1CPU当たりのメモリが 128kB とかで 記録メディアもテープで1MB以下だったりするんで リッチなツールや環境を作ることが許されない世界だったんだよね。 だから最小限のツールで一発で完成しないといけなかった。 とあるオブジェクト指向なスクリプト環境もアセンブラで作らないとメモリが足りなすぎだったんですよ。 アセンブラで作ってもメモリの半分以上食っちゃうのであんまり大きなスクリプトは作れなかった。 それをスパコンで動かそうとしても、1CPUあたりのメモリが少なすぎてスクリプトを実行できないので 4CPUを使って一つのスクリプトを実行するように改造し、気象シミュレーターを作った。2,3日で。 アセンブラでマルチスレッドなプログラムを書くのってすげー大変だから。 単純に呼び出すだけじゃなくて非同期通信しないといけないからね。 ちなみにこれは20年間気象庁で気象予測に使われてた。 馬鹿だよねー メモリをちょっと増やせばややこしいことしなくて済んだのに。
コンパイル環境自体も昔は共有物だったらしいね、誰が何秒CPU使ったか記録されてて 昔の環境で皆で「コンパイラがチェックしてくれるからOK」なんてやり方してたら日が暮れた、 大きなプログラムを一日に何度もコンパイルしてたら苦情が来る… コンパイラのチェックはあくまで保険で、自分でチェックしたほうが早い上に経済的だった …ってのは俺も知ってるが流石にそりゃ昔の話だね、今は個々で小さな環境持ってるし処理も速い むしろテストまでを何度でもやるワケで 「たまにしか動かないからテストしない」なんてことないでしょ
華麗にムーンウォークをコボラーに教えながら、「ンギャッ」「フゥー」とか言ってる マイケルジャクソンを思い浮かべた
ちょっと誰か353にやらせるアセンブラのお題出してみて
363 :
デフォルトの名無しさん :2013/05/21(火) 23:23:22.83
どちらにせよ静的言語のほうがテスト量を減らせるのは事実なわけで。
バグの特定も静的型言語のほうが楽。
大将の言う通り!そろそろお帰りになってもらえませんかね
結局、前処理ナシで実行させようと思ったら動的型が実装しやすいからってだけだよな 静的検査無しでいかに型を間違えないかという本末転倒な努力ばかりで 動的型の性質そのものが活かされることなんてほとんどない
はあ、動的vs静的の隔離スレは別にあるだろ… どうせなら「動的型の性質を活かす」とはどういうことなのか語ってくれよ
関数を値として扱うなら動的か、静的でも推論が欲しいかな ローカル変数の型くらいならまだいいが 関数を引数にとって関数を返す関数とか書くときにイチイチ頭の一行の記述に悩まされたくない 「A型の値を引数にとってB型の値を返す関数を引数にとってC型の値を引数にとってD型の値を返す関数を返す関数」 とかもうこの日本語の時点で不安になるよ
371 :
370 :2013/05/22(水) 01:48:12.34
>>369 こんな簡単な関数でも型推論できない言語ばかりなわけで……
型推論のある言語でも、動的型と同じようには書けないよ
def sample(my_map):
a = my_map(lambda x: x + 1, [1, 2, 3])
b = my_map(lambda x: x + "@", "abc")
return a, b
>>364 > どちらにせよ静的言語のほうがテスト量を減らせるのは事実なわけで。
へー、動的だとどんなテストが増えるの?
具体的にコード書いてみてよ
テストでは引数や戻り値について 値の正しさを検査するコードは書くんだろ? その検査をパスすれば型も正しい(弱い型の言語を除く)のが普通だが 一体どんなテストコードが増えるというんだ?
動的言語のテストが増えるなんてのは常識だよ その程度の知識もないのか 無知すぎる
あ、具体的なコードは無しですか コード書けない低能は大変ですね
377 :
デフォルトの名無しさん :2013/05/22(水) 08:05:46.03
>>376 大規模ソフトウェアがすべて静的言語なの見ればわかるだろ
動的言語は大規模になるほど生産性が落ちるから使えない。
なんでそんな簡単なこともわからないのか
スクリプト言語厨はほんと頭悪いわ
低能のくせに上から目線でコード出せとか命令しやがる。
テストコードが実際のコードに対するチェックを間違いなく網羅できているかの保障がないからね それに比べると静的言語の型チェックは実際のコードに対するチェックを一応網羅できる
あー、論理的に
>>374 に反論できないのかー
こりゃだめだな
ぶっちゃけ値が正しくなかったら 型だけ正しくても意味ない
>>379 おまえがスクリプトしかつかえないアホなのはわかった
人間はミスをする ゆえにテストを書く 人間はミスをする ゆえにテスト漏れが起きる
>>377 じゃあなんですべてのアプリケーションがスクリプトじゃないんだ?
使い分けだろ。で、ここはそのスクリプトについて語るスレ
静的型至上主義ではお話にならないんだよ
ま、ただの荒らしに正論ぶつけてもスルーして荒らし続けるだけってのは分かってるけど これだから池沼はたちが悪いんだよ 一切コミュニケーションが成立しないから
>じゃあなんですべてのアプリケーションがスクリプトじゃないんだ? 大規模開発には向いていないからだろ。
ああ、お前は日本語が限界まで不自由なのを忘れてた 「じゃあなんですべてのアプリケーションが静的言語じゃないんだ?」 という質問の方がよかったな
>>377 何故生産性が落ちるのか、説明できていない。
静的動的の議論は既にやり尽くされてるしスレチ 日本でも今年の三月あたりに大量のブログが書かれた もういいよ。未だにスクリプト使えないとか 言ってる奴は残念ながらこのスレのスタート地点にすら立ててない
なぜ議論を避けるのか
馬鹿が嬉々として100番煎じのスレチな話題を展開するだけだから
というか静的厨は何であの自分で乱立した糞スレから出てきちゃったの?
自分のやりたいトピックにみんなが食いつかなかったからって、勢いのあるスレに寄生を試みるとか下衆だなあ
393 :
353 :2013/05/22(水) 13:45:52.64
>>368 > 「動的型の性質を活かす」とは
動的型とか知らないけど
データ型を意識せずになんでも変数にぶち込めるようにした結果、
関数もデータもクラスという概念で扱えるようになり、
オブジェクト指向な設計が可能になった。
概念を扱えるようになったわけだから
例えるならまどかマギカのまどかかな。
ポインタ変数使っても同じことだけど
ポインタと違うのはデータを安全に柔軟に表現できるところ。
なんじゃこりゃ
動的型の性質を生かすといえば、普通ダックタイピングだろうよ。
396 :
353 :2013/05/22(水) 15:54:06.80
> ダック・タイピング(duck typing)とは、Smalltalk、Python、Rubyなどの
> それらの言語ではオブジェクト(変数の値)に何ができるかはオブジェクトそのものが決定する。
うんだからオブジェクトを参照するから安全で柔軟ってわけなんだが。
> Smalltalk
> 1972年に開発が開始、
> 1980年に公開
俺が
>>353 で紹介したスクリプトエンジンのほうが3年先に完成してたな。
>>359 で書いたとおり、スーパーコンピューターっぽいものでもメモリ不足だったので
布教活動ができなかったのが残念だ。
どんな言語かというと、まあ、Lua なんだが。
> Lua
> 型付け ダック・タイピング
> Luaの特徴としては、汎用性が高いが比較的容易に実装が可能である、というものである。
> 実際のところLuaは、オブジェクト指向などといった他の要素としての働きを明白にはサポートしていないが、サポートしていない範囲においても容易に拡張が可能である。
> Luaは〜〜高速に動作する。これはLuaの理念である、簡素、高効率、高移植性を目指した実装の産物である。
>安全で柔軟ってわけなんだが 安全ではない。
変なやつに居座られちまったな。
そのためのスレだろう?
まあ被害担当スレだけど クソスレ立てて分割したあげく戻ってくるとはホントきりがないな
401 :
353 :2013/05/22(水) 18:11:12.43
>>397 プログラマにポインタ演算させるとシステムやデータを破壊する可能性があるけど、そういうことがなくなるということ。
また、当時はなにしろメモリが少ないんでコピーとかするとメモリ不足で止まってしまうんだけど、コピーしなければそういうこともなくなる。
まあ、結局はメモリ食うんで中間コードに変換することになったし
空きスペースが分断化するんでガベージコレクタ入れたけど。
参照と静的動的は関係ない?
でも、参照することで動的型が実現できたわけで。
んで、動的だからスクリプト言語が作れたわけで。
どんだけ頭悪いのコイツ
レベルが低すぎる。というかさ、プログラミングのこと全く知らないなら スレ立てるまでもない質問スレに行けよと
404 :
353 :2013/05/22(水) 20:32:00.67
>>402-403 なんか俺に言ってるように聞こえるけどそうなのかな?
別に質問とかしてないからたぶん違うんだろうけど。
おめーだよ。 ダックタイピングは静的に型安全じゃねーんだ。 頭悪いな。
406 :
353 :2013/05/23(木) 11:29:23.15
>>405 動的だから静的な訳ないだろ。お前こそ何言ってんだ。
それを安全と言ったのはお前だろ。 >うんだからオブジェクトを参照するから安全で柔軟ってわけなんだが。
;;■■■■■■■;; ;;;■# ×ノ( ■;;; ;;;;ii#× ノ三ヾ( #ii;;;; ;;;;|ノ.(( 。 )三( ゚ )∪|;;;; ;;;;<__⌒ノ( | | ノ( _>;;;; ;;;;|u ● ● u |;;;; ;;;\ |++++|:: /;;; ` ー―‐ ''" ;;■■■■■■■;; ;;;■# ×ノ( ■;;; ;;;;ii#× ノ三ヾ( #ii;;;; ;;;;|ノ.(( 。 )三( ゚ )∪|;;;; ;;;;<__⌒ノ( | | ノ( _>;;;; ;;;;|u ● ● u |;;;; ;;;\ |++++|:: /;;; ` ー―‐ ''" ;;■■■■■■■;; ;;;■# ×ノ( ■;;; ;;;;ii#× ノ三ヾ( #ii;;;; ;;;;|ノ.(( 。 )三( ゚ )∪|;;;; ;;;;<__⌒ノ( | | ノ( _>;;;; ;;;;|u ● ● u |;;;; ;;;\ |++++|:: /;;; ` ー―‐ ''" ;;■■■■■■■;; ;;;■# ×ノ( ■;;; ;;;;ii#× ノ三ヾ( #ii;;;; ;;;;|ノ.(( 。 )三( ゚ )∪|;;;; ;;;;<__⌒ノ( | | ノ( _>;;;; ;;;;|u ● ● u |;;;; ;;;\ |++++|:: /;;; ` ー―‐ ''"
>>405 >>407 ダックタイピングってメソッドが見つからなくても例外投げるだけじゃん
例外投げるから型安全じゃないって言うなら、
ぬるぽやゼロ除算で例外投げる言語も型安全じゃないって事になるぞ
Javaはダックタイピングできないのにヌルポがある最低の言語
型の話をしだすとスクリプト言語も無闇と難しくなる。 もっと表層を主流にしたスレにならないものか。
;;■■■■■■■;; ;;;■# ×ノ( ■;;; ;;;;ii#× ノ三ヾ( #ii;;;; ;;;;|ノ.(( 。 )三( ゚ )∪|;;;; ;;;;<__⌒ノ( | | ノ( _>;;;; ;;;;|u ● ● u |;;;; ;;;\ |++++|:: /;;; ` ー―‐ ''" ;;■■■■■■■;; ;;;■# ×ノ( ■;;; ;;;;ii#× ノ三ヾ( #ii;;;; ;;;;|ノ.(( 。 )三( ゚ )∪|;;;; ;;;;<__⌒ノ( | | ノ( _>;;;; ;;;;|u ● ● u |;;;; ;;;\ |++++|:: /;;; ` ー―‐ ''" ;;■■■■■■■;; ;;;■# ×ノ( ■;;; ;;;;ii#× ノ三ヾ( #ii;;;; ;;;;|ノ.(( 。 )三( ゚ )∪|;;;; ;;;;<__⌒ノ( | | ノ( _>;;;; ;;;;|u ● ● u |;;;; ;;;\ |++++|:: /;;; ` ー―‐ ''" ;;■■■■■■■;; ;;;■# ×ノ( ■;;; ;;;;ii#× ノ三ヾ( #ii;;;; ;;;;|ノ.(( 。 )三( ゚ )∪|;;;; ;;;;<__⌒ノ( | | ノ( _>;;;; ;;;;|u ● ● u |;;;; ;;;\ |++++|:: /;;; ` ー―‐ ''"
>>409 型安全かどうかはしらんが、ぬるぽやゼロ除算は安全じゃないだろ。
だからメソッド見つからなくて例外投げるのは全然安全じゃない。
ぬるぽと同じように危険だ。
415 :
414 :2013/05/24(金) 16:12:28.56
;;■■■■■■■;; ;;;■# ×ノ( ■;;; ;;;;ii#× ノ三ヾ( #ii;;;; ;;;;|ノ.(( 。 )三( ゚ )∪|;;;; ;;;;<__⌒ノ( | | ノ( _>;;;; ;;;;|u ● ● u |;;;; ;;;\ |++++|:: /;;; ` ー―‐ ''" ;;■■■■■■■;; ;;;■# ×ノ( ■;;; ;;;;ii#× ノ三ヾ( #ii;;;; ;;;;|ノ.(( 。 )三( ゚ )∪|;;;; ;;;;<__⌒ノ( | | ノ( _>;;;; ;;;;|u ● ● u |;;;; ;;;\ |++++|:: /;;; ` ー―‐ ''" ;;■■■■■■■;; ;;;■# ×ノ( ■;;; ;;;;ii#× ノ三ヾ( #ii;;;; ;;;;|ノ.(( 。 )三( ゚ )∪|;;;; ;;;;<__⌒ノ( | | ノ( _>;;;; ;;;;|u ● ● u |;;;; ;;;\ |++++|:: /;;; ` ー―‐ ''" ;;■■■■■■■;; ;;;■# ×ノ( ■;;; ;;;;ii#× ノ三ヾ( #ii;;;; ;;;;|ノ.(( 。 )三( ゚ )∪|;;;; ;;;;<__⌒ノ( | | ノ( _>;;;; ;;;;|u ● ● u |;;;; ;;;\ |++++|:: /;;;
>>415 消えろ
もう名前はいらないな ぬるぽのどこが危険なんだ。ただのデータじゃないか。
>>418 変数にゼロが入っていることが危険だと言うなら、具体的に何が起きるのか言ってみろよ。
Javaは確かに動的型をとやかく言えんな 型で縛ったにも関わらず、メソッドが無い可能性(null)を考えなきゃならんし nullなんて、必要なら代用手段あるんだから無くて良かったハズだよね
>>420 だから変数にゼロが入っているだけだと説明したろうが。
変数として割り当てたメモリ空間にゼロが入っていることの何が危険なんだ?
それを危険だと言うなら文字列をNULLターミネートするのも危険だろうが。
PHP厨涙目ww
下手くそがヌルポを連発するのは言語のどこかに欠陥があるとは思う Javaの改良版であるC#ではどうなんだ?
>>421 えっと、つまりJavaの方向性は正しいけれど
まだ完璧じゃないといいたいわけ?
君はnullの可能性すらないほうがいいと言ってるわけだよね?
>>409 勘違いしてるぞ
> ダックタイピングってメソッドが見つからなくても例外投げるだけじゃん
メソッドがない場合に例外を投げるなんてことは、最初っからわかっていることなのに、
それが実行時にならないと例外を投げないからダメだって言ってるわけ。
427 :
デフォルトの名無しさん :2013/05/25(土) 04:52:05.10
やっとアク禁が解かれたぜ JS厨も最近静かだった所を見ると 俺と同じocn系っぽいなw
>>424 Javaでぬるぽが多いのはnullの仕様というよりは規約に問題がある
ライブラリの境界越えてぬるぽ投げていいので無茶苦茶
.NETのnullの仕様はJavaと同じだけど、引数や状態はしっかりチェックして
ぬるぽはライブラリ外に出さないのが一般的なのでそこまで酷くはない
>>426 だから、それはJavaでも一緒だろ?Object型変数には全部null入れられるんだから
ただし、Javaはダックタイピングできるメリットが無いから
メリット/デメリットの収支でマイナス
型の違いによるコーディングミスなんてそんな連発するもんじゃない ロジックの問題がほとんど それは静的動的関係なくテストによって見つけるしかない だからテストコードをしっかり書きましょうね、という方向
ドカタ業界ではユニットテストなんて都市伝説ですよ Excel試験項目表 + 人力デバッグが全て テストコードなんて書いてません
>>431 人力だろうが自動化されていようが、やってる内容は同じこと
動かしてみないと分からないバグの方が大半だってこと
むしろもっと重要なバグに注視したいから機械でどうにかできるところを人間にチェックさせるな ってのが静的型付なんだと思うよ
>>425 コンパイル段階でチェック出来るのがメリット、と言うのならね
どうせ動的なチェック要るなら大したメリットにならん…
てか仕組み的には可能なハズじゃないか?
435 :
デフォルトの名無しさん :2013/05/25(土) 10:43:14.05
>>429 ぜんぜん違うわw
Hoge hogeとあったとき、
hoge.foo() を hoge.hoo()と間違って書くことはできない。
間違った値を入れるということじゃなく、
間違ったメソッド名、プロパティ名を
書いてしまうのが問題なんだよ。
それを実際に実行するまで検知できないだろ?
\ ネトウヨ! / ガクガク 彡⌒ミ; ミ ガクガク /≡≡≡≡≡≡≡≡≡| ブルブル ノノ §′ ;ミヽ )) ブルブル|┌─────┐ J ||| 彡/⌒ ̄ ⌒ヽ| ((. | | 彡⌒ミ; .| ◎ ||| ガクガク _彡/ι 人 | ヽ ヾ___. |..| (´・ω・`) .| ||| ブルブル 彡/ ι / ヽ ヽ .| ))) ./| | | | ||||||| ||| / ノノ/ι /ノノ ヾ\_ノノノ // |└─────┘||||||| || |二 彡/ | (((二二二二二ニ|/||  ̄| | ̄|| ̄ ̄ ̄ ̄| | ̄|| | (((| ι )))■■■ ||||| .......|_|.:::::::::::::::::::::::::::::|_|:::::::::
439 :
デフォルトの名無しさん :2013/05/25(土) 11:33:17.46
>>437 スペルミスがバグにまで発展してしまうのが
いかんよな。
ダックタイピングできないから インターフェース定義しまくって、冗長な型注釈も書いて、 その代りに得られるのがスペルミスをコンパイル時に見つけられるだけ? どうせテストで見つかるのに?
最近のエディタは動的型であっても 補完機能が結構すごいからねー スペルミス?ふーんって感じ
でも世間一般では静的型の方がメジャーなわけだから、 動的型はなんらか不利なんだろうよ。
強い型 vs 強いテスト論争の焼き直し
JS厨もそうだけど、自分でプログラム書けない奴って 具体的に反論できないから、すぐ世間では何々って話に持っていくよね
447 :
デフォルトの名無しさん :2013/05/25(土) 12:39:55.00
>>440 テストで見つかるのはバグが有るという情報だけだよ。
その原因が何かは、デバッグしないといけない。
しかもテストが完璧でないのなら、テスト実行しても見つからない。
テストですべての行を実行したとしても
例えばメソッドがなくてエラーで落ちたのはわかるが、
なぜそのメソッドがないのかがわからない。
スペルミスかもしれないけど、実はスペルミスではなくて
メソッドを動的に追加し忘れたのかもしれない。
メソッドを動的に追加するなんてのはレアケースなのだから
そのレアケースのためにデバッグ時間をかけるのはあほらしい。
世間で静的言語が一般的だと何か不味いことでもあるの?
アク禁が解けた途端、アンチJS厨がわらわらと現れたなw
型情報が冗長というが動的言語でも結局 コメントで、この変数は○○型であるって書くんだよなw 本末転倒とはまさにこの事。
>>447 それ、コンパイル時にエラーが出たときも一緒
本当は定義されてるべきメソッドが定義されてないのか、
それとも呼び出す側のミスなのか
デバッグしなきゃわからない
C++でコンパイルエラーが出たときに比べると
動的にエラーが出たときの方が
スタックトレースが出るから分かりやすいくらいだぞ
>>452 コンパイルエラーで動かないのに、
デバッグってどういうことだ?w
>>449 被害妄想ひどすぎぃ!
スクリプトスレでアンチ動的が暴れてるだけだろ
まあスレタイも読めない池沼に何を言っても無駄だけど
これからまた毎日毎日毎日毎日論破されながら荒らし続けるんですね?頑張ってください
>>450 その型情報も、listやmap等の具体的な型名じゃなくて
イテレート可能な型、のような書き方をする
ダックタイピングだからね
>>453 コンパイルエラーがバグじゃないとでも?
>>455 お前ダックタイピングの意味わかってないんじゃね?
アヒルの物まねをする人は
アヒルであるっていう意味だぜ。
>>457 お前が何も分かってないことだけはひしひしと伝わってきて虚しいw
>>456 コンパイルエラーをバグっていう人は初心者だろw
コードの書き方がわからず四苦八苦している
新入社員に教育している段階。
C言語の時代からやっていた人にとって
コンパイルエラーはよし書き終わった。
これから本番だ。みたいな感覚でしかないぞ。
どちらにせよ静的型の方が一般的なんだから、 静的型あいてに喧嘩するのは止したほうがよい。 永遠に動的型言語はサブの位置なんだから。
ダックタイピングって 所詮インターフェースというコンピュータが理解できる書き方を コメントで書くようにしただけにすぎんしな。 本末転倒。
>>460 間違うも何も、お前は何も言えてないだろ。何も理解してないから。
本末転倒の意味すらわからないのか。日本語もプログラミングも何も知らないなら黙る他ないだろ
>>464 じゃあ
>>457 はどういう意味でわかってないと指摘したのか説明してみろw
「アヒルの物まねをする人は
アヒルであるっていう意味だぜ。 」
これで何か言ったつもりになってるとか苦笑するしかないわ
じゃあ、黙れよw
アヒルの物まねをする人は アヒルであるっていう意味だぜ。 (キリリッ!
>>466 「イテレート可能な型」はダックタイピングではない。
インターフェースだ。
やっぱり分かってねーなw インターフェースはメソッドのシグニチャじゃなくて インターフェース名で判別してんだよ
また、「インターフェースだ」ってなんだよ どういう意味なのかまるで説明しない そりゃあ何でもインターフェースだろ。馬鹿すぎる
何の話だか判りませんなぁ。
インターフェースだ(キリリリリリッ!!!
>>470 名前だけで判断してねーぞ。
メソッドのシグニチャというのは
一つのメソッドでしかないが、
インターフェースというのは、一つ以上のメソッドの
シグニチャをグループ化したもの。
メソッドのシグニチャの上位概念といってもいい。
馬鹿じゃね?それに名前を付けて判断してるんだろ
そうなんだよね。 ダックタイピングだと単一のメソッドがあることという概念しか定義できず、 このオブジェクトには「AメソッドとBメソッドがあること」という定義ができない。 しかも言うまでもなく、そのメソッドを実行して初めてエラーになるから あとからCメソッドも必要になっても、それを検出する方法がない。
>>476 まあ、メソッド一つでも名前つけて問題ないからね。
それダックタイピングの使い方間違ってるから そんな馬鹿な使い方をしなきゃいけないのは いつかのクロージャ厨みたいにダックタイピング縛りしてる奴だけだろ
>>479 じゃあ、お前の考える
正しいダックタイピングの使い方を
書いてください。
お前が間違ってるって指摘できるからさ。
ダックタイピングの概念は調べて分かったけど、使い方はわかりません。それだけの話か まだ議論できる土俵に立ててないから スレを立てるまでもない質問スレに行きなよ
ダックタイピング「も」できるなら問題ないけど ダックタイピング「しか」できないから問題視されてる。 「動的言語+ダックタイピングのみ」は 最悪の仕様だよ。
>>478 そういう問題じゃない、全然理解できていない
全く同じシグネチャであっても、インターフェース名が違ったら
適用できないってのがポイント
こうなってると、独立に開発されたライブラリを混ぜて使う場合
シグネチャも機能も互換性があるのに、ライブラリAのオブジェクトを
ライブラリBの関数引数に使えなかったりする
>>484 Javaだとコンポーネントのバージョン管理が貧弱だから
確かにあまり意味がなく不便なだけに見えるかもしれないが、
.NETではそのへんは大規模開発をサポートする仕組みとして活用されてるよ
メソッドに明示的にインターフェイス名を付けてメソッドを実装できるので
別のライブラリのインターフェイスでたまたまシグネチャが被ってても問題なく
両方共別々に実装できるどころか、
複数バージョンの同じライブラリを同時に使うときに
同じインターフェイスを複数実装することすら可能
>>484 同じ関数名であってもシグネチャが
違っていたら適用できないのと何が違うんだろうか?
独立に開発されたライブラリで
シグネチャが完全一致するとでも?
インターフェース名に相当する関数名が
違うことだってざらにあるだろうに。
本質的には、ダックタイピングであれインターフェースであれ
独立に開発されたものが、それぞれで定義されたオブジェクトを
相互に混ぜて使えるほど互換性があることはないって当たり前の話だろ。
たまたま互換性があって良かったね。それで独立で開発されたものが
今後も互換性があるとでも? これからも大丈夫って安心できるのか?
そんな考え方で開発していたとしたら怖いわーw
俺が考えた俺俺イテレータ風ライブラリに
お前が独立で開発したオブジェクトが使えるかどうか考えてみなさいよ。
俺のライブラリはどんな関数・シグネチャを要求するかエスパーさん、お答えください。
>>487 同意
たまたま独立したプロジェクト間でメソッド名とシグネチャが一致することは
まあ無くもないだろうけど、その上でさらに実装に求められる仕様が偶然一致するって
どんな確率だろうな
インターフェイスとライブラリのバージョンも含めてメソッド名とする
.NETのアプローチは、静的型にこだわるなら極めて正当なやり方だよ
たまたまシグネチャが一致していたら それは同じものであるって考え方は ポインタとintが共に32bitで数値だから intにポインタ入れるようなもんだな。 ちゃんとしたライブラリAの仕様があって その仕様にあわせて作るなら問題ないけど、 たまたまライブラリAの仕様と同じだったからって それをそのまま使う勇気はないわ 将来拡張された時、互換性が取れるかどうかなんてわからんだろ。 独立性とか疎結合とか知らんのかな。
「その仕様にあわせて作るなら問題ない」
独立に開発したって言ってんだろw
>>484 をちゃんと嫁や
>>487 ソースコードを共有しなくても済むところかなぁ
>>490 だったらダックタイピングの意味って?w
あ、492はこれの答えね > 同じ関数名であってもシグネチャが > 違っていたら適用できないのと何が違うんだろうか? 互換を意識して開発してても、独立したプロジェクトなら ソースコードまで共有したくないケースは多いよ パッケージのネームスペースとかさ
>>484 > 全く同じシグネチャであっても、インターフェース名が違ったら
> 適用できないってのがポイント
> こうなってると、独立に開発されたライブラリを混ぜて使う場合
> シグネチャも機能も互換性があるのに、ライブラリAのオブジェクトを
> ライブラリBの関数引数に使えなかったりする
※「インターフェース名」を「関数名」に置き換えて読んでください。
>>493 動的のダックタイピングは実装が圧倒的に楽。当たり前だろ
動的型だと「普通に実装したらダックタイピングにならざるを得ない」ということに過ぎないよね 高尚な哲学的な意味があるとでも思っちゃってた?w
>>497 お前にとっては、インターフェースに高尚な哲学があるんだろうね
>>496 具体的に何が楽なんだ?
関数名が違ったら、委譲すればいい。
シグニチャが違っていれば、委譲すればいい。
たまたま、関数名とシグニチャが同じだったら?
そのまま使って、君は安心できるのか?
同じものだと考えないほうがいいだろうね。
で、何が楽なんだ?
>>499 アダプターパターンのこと?別にそれ動的言語でもできるぞ。馬鹿は知らんだろうが
あと単純に委譲が面倒だから
同じものだと考えるのは誰だ?誰がどういう意図でその機能を使うのかってことを勘違いしてると思うよ
同じものだと思って実装したとして、それを誰かが知らずに使うなんてことをを想定してるだろ?話にならないよ
>>500 > あと単純に委譲が面倒だから
関数名や、シグニチャが違うのに
委譲しないでどうするつもり?
>>501 だから、同じ場合に使えるだけなんだって。馬鹿だろ
関数名とシグニチャが(たまたま)一緒だったら ラッキーだ、そのまま使え、という手抜きな考え方を しているからダメなんだよ。 将来も一緒だとは限らない。 関数名とシグニチャ(すなわちインターフェース)は 意図的に合わせるもの。 意図的ではなくたまたま一致しているっていうのは、 たとえ一緒でも違うものとして考えるべき。 ライブラリAのインターフェースに合わせて作っているのだから 当然、ライブラリAにライブラリBのオブジェクトを関数引数に使える。
>>501 プロトタイプベースの場合、
関数名が違うだけならエイリアスになるメソッドを足す
純粋なダックタイピングにしたらドキュメント書きづらくない? 結局実質はドキュメントをまとめるためだけの空っぽのクラスが生み出されて インターフェイスと変わらないですよね
>>504 それは動的型というかオブジェクト指向一般の話だろ
動的型ならいちいちアダプターを用意する必要がない場合もあるだろうが
>>505 残念ながらたまたまでもラッキーでもない。終わり。
>>505 シグニチャを意図的に合わせても
同じソースコードの同じインターフェースを継承しないと無理
>>504 シグネチャがたまたま一致していれば簡単に書けるよ。
委譲したい名前を羅列すればいいだけ。
名前だけが違ってシグネチャが違う場合でも
対応表を書けばいいかな。
将来もシグネチャが一緒とは限らないけどねw
シグネチャが違えば、メソッドごとに
個別対応が必要だよ。
Javaでもコードジェネレータ使えば
委譲コードは簡単に生成できるけど
Eclipseとかについていた気がするな。
>>508 > 残念ながらたまたまでもラッキーでもない。終わり。
だから、独立に開発したライブラリの話だって言っている。
独立に開発したライブラリの関数名とシグネチャが一致するのは
「たまたま」でしかない。
関数にドキュメントを付けても、無名関数にはドキュメントを付けない だからと言って無意味とか言ってる奴は馬鹿でしかない
>>504 関数名が違うだけのアダプターパターンなら一行だけ
Price.getPrice = Price.getCost
>>509 訂正しておこうか?
同じソースコードの同じインターフェースを継承すれば可能
>>511 アヒルのように鳴きアヒルのように歩くものを引数にとるメソッドが複数あったとして
すべてのメソッドに対してこの引数にはアヒルのように鳴きアヒルのように歩くものを入れろと書くのかってことだよ
たまたまとかアヒルがどうとか言ってる奴は論外すぎる
>>517 じゃあどういうふうに書くの?
この関数の、この引数には、(静的言語で言えば)
○○インターフェースを実装しているオブジェクト、
すなわち ○○Inteferce型を代入しますって書くの?
>>518 あ、いつもの人が来たなーって思ってるww
OOPの説明に動物クラスと犬猫クラスを持ち出すレベルのアホっぷり
>>518 >>484 の話だよ?
独立に開発されている以上、関数名とシグネチャが一致するのは
たまたまでしかありえない。
オカルトの話でも始めたいの?
何かの仕様に合わせて作るのであれば、
そのインターフェースを継承すればいい。
だから、互換ライブラリを開発するときは シグニチャは意図的に一致させても ソースコードまで共有したくねーってんだよ
凄い勢い。 やっぱ動的型言語は静的型言語にコンプレックスがあるのか。 実際、動的型のメリットってコンパイラとインタプリタの実装が楽ってだけだからな。 重いし危険だし使う側はメリットない。
独立で開発してても シグネチャが一致することだってあるだろ シンクロニシティ(笑)
>>523 それは関数定義すればいいからラムダ式いらないって言ってるのと同じなんだって
その通りだよ。ダックタイピングは楽だから使うだけ
>>524 え?ちょっとまって、
たしかにあんた、ソースコードを共有って言っていたけど、
もしかして本当にソースコードを共有、
つまり同じリポジトリにソースコードを入れるとか
そんな風に思ってたの?
ごめん、それはあまりにも想定外だった。
全くの初心者だったとは。
C言語で言えば、他のライブラリとリンクをするのなら
コンパイル済みのライブラリと、そのヘッダだけがあればいい。
Javaで言えばコンパイル済みのJarファイルがあればいい。
ソースコードを共有する必要なんて全くない。
オープンソース以前の時代を知っていれば、
リンクするライブラリはクローズドなのが当たり前だろ?
それでも使える仕組みがあるんだよ。
>>522 アヒルとどう違うのか知らないけど、例えば
getNameメソッドとgetAgeメソッドとsaveメソッドを持ったオブジェクトとでも言えば満足?
実際ドキュメントをどう書くべきなのか教えてほしいだけだよ。何か難しいこと言ってる?
オープンソース以前()
>>527 だからどの程度楽なんだって?
シンクロニシティ(笑)なんてめったにないから、
どっちみち変換して呼び出さないといけない。
意図的に何かの仕様に合わせてインターフェースを実装するのであれば、
それは、ダックタイピングではなく普通にインターフェースを実装してるだけ。
>>531 はいはい何でもインターフェースですね
動的型はインターフェースの実装も楽なんだよ
>>525 静的型信者がスレチなスクリプトスレで暴れるメリットって何?
>>530 ん?具体的に1998年とかいったほうが良かったか?
オープンソース以前は比較的最近なんだよ。
> オープンソース
> History of the OSIによれば、1998年2月3日に、パロアルトにおいて、
> Netscapeブラウザのソースコードをどのような形で公開していくかと
> いう戦略会議の中でつけられた新たな用語であると説明している。
>>532 インターフェースの実装はどちらも手間は変わらないが、
インターフェースが変更された時
それが検出できないのがダックタイピングだよね。
>>528 置き換える相手のjarに依存するなら一緒
プログラミングの短い歴史を考えたら15年前は大昔だが、そのころの常識を真顔で語っちゃう老害って何なの? ちょっと前もひたすら化石環境を長文連投してたよね。ただの醜いボケジジイだろ
>>536 何と何が一緒なのか
ちゃんと日本語ぐらい話せよ。
>>537 ×そのころの常識
○そのころから今までずっと続いている常識
今も普通に使われてる常識を知らんから
馬鹿にされてる。
つか、外部ライブラリを使うのに、 そのソースコードが必要だって なんで思っちゃったの?w Windows APIを使うのに Windowsのソースコードが必要なのかよw
>>535 真のダックタイパーなら、アヒルのように鳴きアヒルのように歩くものを寄越せと
書いてるはずだからアヒルが変更されても問題ないよ
>>539 オープンソース以前を知っていれば、という前提を置くのは何故?
昔に比べてコンピュータの速度がこんなに速くなったのに、 未だに静的型言語にシェアでおされている動的型言語。 コンピュータのリソースを無駄に使う分、 ユーザビリティーが優れていると思われがちだけど、 実際にはコンパイラを作る、のが簡単ってだけで、 使う側はメリット無い。現に静的型言語にシェアで負けているし、 これからずっとそれは変わらない。
>>538 パッケージのネームスペースとかを共有したくないって書いてるじゃん
そこ共有しないとダメだよインターフェースじゃ
それに、置き換え狙ってる対象のjarが無いと動かないってアホじゃね?
>>543 クローズドコードのライブラリは
ソースコードが手に入らないってのは
考えるまでもない話だなって
さすがに気づくだろ?
>>544 今更ドヤ顔でそれしか言えないクズw
お前がキチガイだって事実もお前が死ぬまで変わらない事実についてどう思う?
いや、死んでも変わらないか。このスレで馬鹿を何ヶ月も晒し続けてる事実は一生残るわけだから
>>545 > パッケージのネームスペースとかを共有したくないって書いてるじゃん
意味がさっぱりわからん。
例えば、お前が作ったライブラリで
コアライブラリのネームスペースを参照したくないってことか?
普通に参照するだろ?
コアライブラリのネームスペースにメソッドを追加するって話は
誰もしとらんぞ。単に参照するだけだ。
関数型言語スレにJavaを持って行ってシェアがーとか言ってる奴がいたら変人だろ このスレでも同じだ
Javaだけではなく、CやC++やC#も、 人気の有る言語は総じて静的型言語。
だから、何?関数型言語スレで手続き型言語のシェアがーとか言ってる奴はキチガイでしかない このスレも然り。まあ自覚して開き直って荒らし続けてるゴミクズだからどうしようもないか しかもプログラミングのことは全く知らないというおまけ付き
上のほうでも出てたけどさ、 ライブラリAと関数名、シグニチャが完全に一致していれば 単純に処理を転送すればいいから、移譲は簡単にかける。 だがよく考えてみ、それは「ライブラリAと」に限っての話だ。 この時点でライブラリAに依存しているという事だぞ。 一見あるライブラリAに依存していないように見えても、 ライブラリAの場合でしか委譲は簡単にかけないのであれば、 転送処理というのは、ライブラリA専用のロジックというわけだ。
>>550 なんでそんな話になる
こっちが意味わからんわ
例えば、他人が作った数値計算ライブラリのコアライブラリ(行列演算等)を
別のコアライブラリに置き換えるような話だよ
>>555 その二つのコアライブラリ、関数名やシグネチャが全く同じという偶然は
ありえないので〜という話に続くのですか?
思うんだけど、ちょっと前にJSがーって暴れてた人と似てない?同一人物?
>>557 十中八九そうだろ。その前にJavaはLLとか言って暴れてた奴も同じ。
>>557 しらない。というかそんな昔から監視続けてるのお前?
規模がでかいとパッケージスコープが出てくるから 単純にシグネチャが合ってりゃ差し替えできてもいいだろうというわけにもいかなくなるよ
>>556 意図的に互換ライブラリとして作るに決まってるだろ
でも違うプロジェクトなんだからネームスペースは共有したくない
数値計算では本当に良くある話
動的型言語は静的型言語より実行時のオーバーヘッドが大きいわけだけど、 そのオーバーヘッドが誰のために使われているのかが問題。 言語の利用者ではなく、言語の開発者の怠慢のために使われている。 滑稽だね。
>>561 だからぁ〜、無理ならインターフェース使えば良くね?
>>563 だってプログラムのユーザ = 開発者だもの
スクリプト言語ってそういう立ち位置だよ
>>565 確かに。嫌々使わなければいけないってことも少ないし
静的言語を擁護するために攻撃する意味がわからんよなあ
静的言語からしてもこんなキチガイのサポートなんていらんだろうに
>>564 シグネチャと仕様が合ってても差し替えできない例を示しただけだけど
何を言ってるの?
>>562 もっと熟考してから発言して(笑)
> 意図的に互換ライブラリとして作るに決まってるだろ
何と互換ライブラリとして、誰が作るの?
> 例えば、他人が作った数値計算ライブラリのコアライブラリ(行列演算等)を
> 別のコアライブラリに置き換えるような話だよ
他人が作った数値計算ライブラリのコアライブラリの
互換ライブラリとして、君が作るんだよね?
違うパッケージ名で作ればいいじゃない?
互換ライブラリを作るんでしょ?
それとも互換ライブラリではなく、互換オブジェクトを作りたいの?
つまり他人のコアライブラリと自分のコアライブラリを混ぜられるようにしたいの?
依存してるなら依存関係をもたせるのが当然の設計だよね。
互換ライブラリと互換オブジェクト、本当に作りたいのはどっち?
>>567 > シグネチャと仕様が合ってても差し替えできない
えぇ、関数名が違えば差し替えできませんよ?
ダックタイピングでもね。
>>568 ライブラリAと違うパッケージ名で作ったら、シグニチャ等全部一緒でも
ライブラリAのインターフェースを使ってる関数引数に渡せないよ
>>569 仮に動的言語にパッケージスコープがあれば
Java同様、既存コード側のカプセル化を壊さずに好きなものに差し替えることはできなくなるよ
>だってプログラムのユーザ = 開発者だもの それは静的言語でも同じだが、 ここで言う開発者は言語のコンパイラの開発者のこと。
仮に
>>570 渡せるぞw
パッケージ名は違っても・・・、あー具体的に言うとだな。
自分で作ったのがMyPackageのMyClassな。
このMyClassがクラスがLibraryAのAPackageのAInteface(もしくはAClass)を
継承していればAInteface(AClass)を使っている関数引数に渡せる。
>>573 言語的にパッケージスコープが無くても
規模が大きくなってきたら外からアクセスされたくないメンバや型はどうしても出てくるでしょう
ダックタイピングに継承は不要
>>574 置き換える対象のパッケージ名に何で依存してるの?
>>575 それは常識だろう
両者ともありえない話をしてるだけだろ
ダックタイピングもインターフェースも両方使えばいいだけなのに
>>576 継承の記述が不要なだけで
実際は継承と同じ事を脳内でやってるんだけどなw
>>577 だってお前が言ってるだろ?
> ライブラリAのインターフェースを使ってる関数引数に渡せないよ
ライブラリAのインターフェースを使ってる関数引数に渡したいと言っている以上
それは「依存してる」ということ。
静的型でダックタイピングできる言語ってマジで少ない C++で技巧をこらすか、OCamlを使うか、Scalaで(インターフェースより激しく遅いのを我慢して)使うか
>>580 ダックタイピングの言語なら
関数引数にインターフェースなんて書いてないから、
そんな心配いらない
>>579 ある特定の機能だけ一致してるだけで共通クラスとは考えないなあ
そういう意味でアダプターパターンは無理やりまとめてるだけで
記述上継承だが継承の関係とも微妙に違う
>>582 心配って何が心配なんだ?
依存しているなら依存していると明示するのがよい設計だろ。
このMyClassはライブラリAの関数の引数に
使えるのか使えないのか、はっきりさせたようが良くないか?
どうせコメントで書くのだろう?互換性がありますって。
依存してるのに、それをコードとして記述できないことを
だめだって話をしてるのに、お前は何を言ってるんだ?
>>584 シグニチャが決まってるだけで、
特定のパッケージにもインターフェースにも依存していない
ダックタイピングの言語なら
>>581 TypeScript
引数の型としてリテラルでインターフェイス宣言しなきゃいけないけど
>>585 シグニチャが決まってるのはどれでも決まってるだろw
お前が言うべき言葉は「シグニチャが何と互換性があるか決まってる」だ
特定のパッケージやインターフェースの何と互換性があるか
決まってるのであれば、その特定のパッケージやインターフェースが
どれであるか明示しなければいけない。
それをコメントでやるか、コードでやるかの違い。
インターフェースベースで話してるから話が噛み合ってないよ
>>588 インターフェースが嫌なら
関数名でもいいよw
コンピュータがこれだけ高性能になったのに、 いまだに静的言語が主流なのはどうしてだろうね。 ふっしぎー!!
高性能だからこそ静的言語が主流なんだろ? 昔はIDEのリアルタイムプログラミングサポート機能は 重いと言われて敬遠されていた。 今はエディタの一機能と同等の感覚で使う 手に馴染んだツールになってる。 リアルタイムプログラミングサポート機能を実装するには コードを実行やコンパイルをしなくても、 コードを静的に解析して、それをプログラマにフィードバック できなきゃいけない。 コードからより多くの情報を取得できるのは静的言語なんだよ。
スレチ
このスレを見て分かるのは何かのトピックについて ディスカッションしたいときに2chは使い物にならないってことだけ
何を今更… 上場してる某IT企業の創業者も 2chに質問投稿したが煽られるだけで 何の役にも立たなかったと言ってたなw
>>590 みたいな役立たずのクズにプログラミング語る資格はないってこった
あ、最初から何も語ってないか
質問してもあおられるから、わざとけなして証明させるのが2ちゃんねるの使い方だってえらい人が言ってた。
延々スレチなことしか言えないゴミは2chの使い方をわかってないから死んだほうがいいけどな まあ日本語通じないから何言っても無駄だけど
ところでライブラリのソースを共有したくないって話があったが 動的言語の大半において、ライブラリはソースそのものなんよね
静的言語・動的言語なんてテーマで延々と議論できる人達が羨ましいです。
>>598 うん、それもデメリットやね。
ソースを公開するかどうかは
それを使う人間の思想で決めるべきで
言語作者が決めることじゃない。
どっちも選べる方がいい。
公開出来るような物を作ってから言え
602 :
デフォルトの名無しさん :2013/05/25(土) 21:13:23.16
>>601 公開するとパクられるから。
>>600 だからたいていの場合は選択できる。
ただ、逆コンパイルとかできたりする。
ソースが公開されてるからって実装の詳細を前提にした使い方をするのは カプセル化を破ってるだろ ちょっと変更されたらおしまい
簡単に逆コンパイルできる中間コードにコンパイルして パクり防止とか馬鹿なこと言いませんよね?
>>603 カプセル化の意味を解って言ってるんだよね?
>>605 まさかカプセル化がフィールドの隠蔽だけを意味すると思ってたりしないよね?
実装の詳細を前提にした使い方、ってのが何を示してるかによるんじゃないかな
ホットパンツ
publicなアクセサー公開している時点でそれはカプセル化じゃないんだけど オブジェクト指向型言語にわかはそれを理解してないよなw
今時Beansから入門する奴もいないだろうに
'そもそもカプセル化とかいらない子だしな
頭大丈夫かこいつ
オブジェクト指向型言語かどうかは、アクセス修飾子の有無より、多重継承できるかどうか、全ての要素がオブジェクトであるかどうかの方が重要だな。 RubyとPythonは合格。 C#は拡張メソッドを使えば多重継承できるから合格。 Javaは、基本型も関数もオブジェクトではなく、多重継承できないから不合格。
Javaはオブジェクト指向じゃなくて名詞指向
phpでの開発で使ってるIDEって、Eclipseが多いんでしょうか? DreamweaverCS6でかちゃかちゃやってるんですが、デバック作業が・・・
それ以前にphpを使いません まともな開発をしたかったらJavaを選びます
>>616 何をもって「まとも」というかによるが…
復活もクソも元々馬鹿が継承使えないって騒いでるだけだぞ
>>619 昔はオブジェクト指向といえば、差分プログラミングで
継承重視だったが。
>>620 あの頃のオブジェクト指向はシンプルでよかったな。1990年頃のことだけど。
老害って昔話しかできないよな
>>622 我々が愛したものメチャクチャにしたのが君たちの世代というわけだ。
おっと、「を」が抜けてる。老人は目が弱くてね。
いちいち手を変え品を変え荒らさなくていいから おもしろくないし。なんでそんな馬鹿を晒し続けるのか理解できない
理工系ならPythonが最強すぎるんだけど 行列演算から統計、機械学習に画像処理、果てはグラフ描画までほんとになんでもできる やる気があればそこからWebアプリでもGUIアプリでも比較的簡単に組み込めるし こんな言語他にあり得ない、理工系の人間は全員Pythonやれって自信をもって勧められる
使い分け不要の超多機能プログラム電卓としては最強 まあ理工系はどうせC、R、Verilog、 大学がライセンスを買ってるはずのMatlab,Maple,Mathematicaあたりもできなきゃいけないんですけどね
それらを一つの汎用プログラミング言語で済ませられるとか最強すぎる Matlabとか高いし、もうそんなもんにお布施しなくていい
>>626 分野によるのだろうけれど、
統計にPython使ったら、何それ聞いたことない信頼性あるの? て論文をリジェクトされたりしないのだろうか?
>>626 はぁ?
理工系ならFORTRAN一択だろ?
死ねやカス
>>628 どこから「それらを一つの汎用プログラミング言語で済ませられる」なんてことを言ってんだ
済まねえよ。Matlab使ったことねえだろ
>>629 されるわけない、確かに統計だけならRに一日の長があるけど。
>>630 今更FORTRAN書くのとか苦行以外の何物でもない。
確かに定番だが、過去の資産とか特別な理由でもない限り書きたくない。
>>632 大概の数値計算ならいける、確かに全てを網羅してるわけじゃないけど。
>>633 やろうと思えばできるだろうけどC/C++は勘弁。
いや、PythonがscientificなのはC/C++やFORTRANと連携できる環境が用意されてるからだよ
>>629 言語ではないけど浮動小数点の誤差がーって教授がよく言ってたな
>>636 で、Javaと連携できる環境が用意されてないから
ドカタ仕事と縁遠いのですね
PHPとRubyに興味があって、どちらが優れているかとかはまだちょっと素人すぎて理解出来ないので 「PHPを覚えてからRubyに手を出す」のと、「Rubyを覚えてからPHPに手を出す」のではどちらが楽そうでしょうか
>>636 科学技術系でのスクリプトとC/C++/Fortranの連携なんてだいたいファイル経由だから何でも変わらんw
641 :
デフォルトの名無しさん :2013/05/29(水) 00:39:00.31
PHPとRubyならどっちも捨てろとしか言いようがないな
>>639 HTMLを吐き出すしか脳のないPHPと違って、Rubyはちょっとした処理の自動化なんかにも使えるので
「使える」実感が得やすくて長続きすると思う
英語上等ならPythonの方がそういう意味ではさらに使えるしシンプルで覚えやすくて変な癖も付きにくいけど
PHPはダメだという評価自体には まあ妥当性があると考えている辺りが面白いな
>>645 > 高校も大学も中退
> 高校2年生にもなって2週間もメートル法について勉強していた。)
> コンピューターサイエンス専攻
> 学ぶことは少なかった。
> 生化学に専攻を変え
> 単位が一番少ない数学に専攻を変え
> 教養のクラスを取るのがおっくうで
> 大学も退学
> 大学は人間的に社会的に成長した場所だった。
> おおまかな全体図をまず把握して、そこから部分的につめていくことが大事だ
> オフィスのダサさ等に何か感じるものはあったがそうなんだなFacebook
いや、
Facebookの大金持ちが選んだ妻を見れば分かるだろJK
>>645 こんなスレまで来て、静的型でなければ云々書き込む
アホは100回読むべきだな
>>636 それにRとも連携できているし、SQLとも連携できる。
pythonは意外とできる子。
Rのは殆ど使われてないだろ
殆ど使われてないかもしれんが、ちゃんとメンテされてて連携できる
RはR自体が良いんじゃなくて、Rの膨大な外部ライブラリが凄いから
Rは統計で使う分には使いやすい。
>>626 > 行列演算から統計、機械学習に画像処理、果てはグラフ描画までほんとになんでもできる
> やる気があればそこからWebアプリでもGUIアプリでも比較的簡単に組み込めるし
大抵のメジャー言語にはこれらの機能を実現するライブラリが存在するんだけど
重要なのはコミュニティの活発度で、統計ではRが圧倒鉄器ということ
>>656 数学、科学技術系ライブラリではLLの中でPythonが頭三つくらい抜けて洗練されてるわ
他は正直使い物にならない、かといって今更FORTRANとか書くのはもう嫌
今更FORTRANとか言ってる奴は66か77あたりをディスってて、今のFORTRANのことは知らないから困る
F9x程度ならFortranのイメージを改められるほどモダンな言語になったというわけでもないだろw それ以降のはほとんど使われてないし
今のFORTRANとか言うんだったら、FORTRANじゃなくてFortranって綴ってね
Fortranはいくら言語がまともになってもユーザーがなあ 奴等スクリプトでも絶対に構造体の類は使わずスカラー配列ぶん回すからな
>>660 残念ながら化石頭の教授が授業で使ってたりするんだなあ
Fortranにオブジェクト指向持ち込んだ奴は頭おかしい おかげで誰にも見向きもされず90止まりですよ
配列 x[v] y[v] 構造体 v.x v.y 関数 f(x) オブジェクト x.f() 順序を変えるだけで簡単に革命が起きる
奴等に言わせれば、列ごとに配列で持つとキャッシュメモリに乗りやすくなるので 数値計算では構造体より速くなる場合が多いという もっともらしい理由があるんですよ まあ結局「慣れてるから」なんだけど
構造体があっても配列が無くなるわけではないが配列があれば構造体は無くても良い 構造体 ⊂ 配列 ⊂ 連想配列 この関係をクラスの継承で表現できないのが残念です
>>667 継承を何か勘違いしてね?
継承とは”継承関係"にある場合に定義するもので
継承関係にないものが世の中にあるってのは
当たり前の話なんだが?
お前らも含めてショボイよw
>>664 Fortran2003だっけ
使ってる奴いるの?
一般人は使ってないだろうねニヤニヤ
>>669 プログラミングは才能がすべてだよ
何十年の経歴があろうと
コボラーには革新的なソフトウェアは作れない
コボラーじゃなくても革新的なソフトウェアは作れない。特にお前
気象系の研究室にいたけど、Fortran使ってたよ それこそスクリプト言語とセットで使うけど 単体で全部書くような人見たことない
道具なんだから目的にあったものを使うのが当たり前、特にプロならな。 鉈で魚をおろす寿司屋はいないだろ? 数値計算屋はFORTRANを使うのがあたりまえ
過去の負の遺産w
FEMをPerlでやる物好きはいないだろ?
数値計算の世界も最近は新規の大きなプロジェクトはC++に移行していってるみたいだよ
結局Fortranが一番速いからな まあ今はスパコン専用言語みたいなもん
awkは?
初代のLLは本当に軽量言語 専門馬鹿は外の世界をスルーできるので軽い 世界重過ぎ
GoがFortranも駆逐する
汎用言語では無理
てかそろそろスクリプト言語の話しろよ
100試して1成功するような事例だと、Fortran なんて使ってられない。 試しながら、確認しながら進むような場合は Python とかインタプリンタの方が良い。 自分のいたところは「Matlab? ( ´,_ゝ`) プッ Fortran だろ jk」ってな風潮だった。 でも、今の時代 Fortran なんて使ってたら世界の研究・開発のスピードに付いていけないと思う。
>>687 そもそも、
>100試して1成功する
って意味がわからんけど?
ついていけないのはお前のレベルじゃないの?
スパコンはC++コンパイラがなあ・・・ 京も一応C++コンパイラが開発されてるけど かなりの糞コンパイラらしい
>>687 世界の研究・開発()してる人がFortranくらい書けないと思ってるのか?(笑)
全てをCやFortranで書いてる人は少ないだろうが
>>687 が言ってるのは個人ではMatlabを自作できないというだけなので話が別
理数系、特に数値計算の分野で、Fortranでアルゴリズムが記述できないやつがCとかC++なら書けるのか? 話にならんな
まあただのPython厨なんだろ そもそも想定してる計算量の認識が違いすぎる ああいうのは月単位とか少なくても日単位で計算させるから そんなの多少面倒だろうが、少しでも速い言語で書くに決まってる 高機能電卓くらいのノリでPythonとか使う方はいるけど
みんながみんな日単位で計算してるわけじゃねえよ
そうそう、ほとんどの計算は汎用言語で事足りるんだよ 計算規模が大きくなってきたらボトルネックをFortranとかで実装とかすればいいんだよ
>>695 あの…
Fortran(FORTRNでも)は、汎用言語なんですけど?
アスペみたいなこと言うなよ
ガキかよ
FORTRANが汎用言語でないとすると、Pythonはスクリプト言語か。
スクリプト言語だろ
なんか、FORTRAN vs Python のバトルロワイヤルなのか?
多分どちらも相手の言語を使ったことないな(笑)
違うよ、アスペ vs ガキだよ
最近はJavaScriptがこの業界の トップになったね。 jQueryというライブラリが優れていた。 関数型プログラミングをJavaScriptに取り入れることが出来た。
せめてスクリプト言語同士でやってくれよ
>>708 5日間以上も怨念をためていて、やっと念願の復讐()が叶ったようだなw
うわぁ〜ストーカーみたいな感想ですね (´・ω・`)・ω・`) キャー / つ⊂ \ コワーイ
プロトタイピングに Fortran なんか使ってたら確実に死ねる。
ドカタに縁遠い話題が続きすぎて しびれを切らしてる奴がいるなw
ドカタの話だと思っていたが・・・
>>711 もしそうならFortranでなくても危ないから早く逃げろ
他の人が簡単に死ぬような場所の近くにいるのに自分は大丈夫と思うのはおかしい
Fortranはスクリプト言語じゃないんだけど、 いつまで続けるつもり?
Fortranと連携できるスクリプト言語は?って話ならアリだけどね
連携する程度ならどれでも出来るしな まあ不毛
じゃあそれぞれの言語でどう書くのか示して欲しいのだが
ライブラリの作り方を示すより 大量のライブラリをプリインストールする方が早いというのが主流で ライブラリを自作しやすいのはマイナー言語ばかりなので説明しずらい
ああ、面倒この上ないけど頑張ればできるとかいう次元の話ね。ゴミ
そうだねゴミだね メジャー言語は、プリインストールされてないライブラリの例を頑張って探すのが面倒
> プリインストールされてないライブラリの例を頑張って探すのが面倒 プログラミング初心者丸出しか…
話が噛み合ってない気がするが、 連携ってのがFortranの共有ライブラリを呼び出す事を指すなら Cの共有ライブラリが呼び出せればFortranも同じでしょ
(*゚Д゚) わかりました、最強の言語はFortranです (ヽノ) >ω>
ムホムホ
>>723 そんな簡単なことでも
Jなんとか言う糞言語には難しい
>>726 JavaなのかJavaScriptなのかしらんが、
どっちも可能だよ。
Javascriptとかいうクソ言語はスレチ
JavaScriptもスクリプト言語じゃないの? 今はCLIで実行することも可能だし。 ファイルアクセスとかもできるし。
JavaScript良い言語だと思うけどね。 プロトタイプベースでオブジェクト指向できるし。 スクリプト言語の中でも速い方に分類されるし。
>>729 ,730
スレタイ読めないのか?JSのスレがあっただろう
経緯:JSが何故クソかという議論は語り尽くされ、その後はブラウザ信者が暴れるだけになった。以上
>>731 だからスクリプト言語だろう? JavaScriptは?
名前にScriptって入ってるしな。
話の通じないやつだな。
>>734 だからスレチだって。例の荒らしか?
ああ、規制が解除されてまた連日荒らし続けるのか…うざすぎる
おまえら撤退が苦手だよな 火に油を注ぐのは得意だけど方向転換が苦手
ただ炎上させたいだけなんだから当然だろ 馬鹿しか使わねーよこんなスレ
バトルロワイヤルなのに追い出して勝った気になってるとか 哀れにもほどがあるな まあ例の人格攻撃しかできなかったPython厨だろうが
なんでスレが分離したの足りない頭で考えろ キチガイ荒らしのおかげでJSの優勝、殿堂入りだよ ここは負け組言語のスレで、だからJSはスレチ。それでいいだろ なんで執拗にJSの話題をしたがるんだ?荒らしたいだけじゃねーか
ブラウザガーブラウザガーでJSの大勝利だよ。他のあらゆる言語は黙殺。 スクリプトの用途は度外視の最凶最悪仕様のゴミ言語の話題を延々としたがるカス
(*゚Д゚) わかりました、最強の言語はJSです (ヽノ) >ω>
>>739 むしろ過剰反応して荒らしてるのはお前だろう
>>726-727 でJavaScriptがちょっと触れられただけでコレ
もはや何がしたいのかわからない
Javascriptの単語見ると攻撃したくなる発作が起きるんだろうが、
お前の発作を抑えればスレは荒れないよ
>>742 そういうスレを望むのなら
>>732 を使えよw
なんでJSを除外したスレでわざわざJSの話をしようとするのか謎
何が過剰反応だよ。そもそもこのスレ自体がJS厨が邪魔だったから立てられたスレだぞ
744 :
デフォルトの名無しさん :2013/06/03(月) 02:32:00.21
なんでそこまでJSを毛嫌いするのか分からん。 女子小学生って素直でいいんだけどなあ。
>>743 別のスレを立てること自体が過剰反応だろ。
JavaScriptがスクリプト言語であることは
紛れも無い事実なんだし、避ける意味がわからない。
お前がJSが邪魔に感じてるだけじゃないか。
>>745 だからー、このスレは過剰反応なスレなの。さっさと出ていけよw
747 :
デフォルトの名無しさん :2013/06/03(月) 04:00:53.35
こちらには JS がない あちらには Ruby がない 誰が過剰反応してるか分かるね。
>>746 ここはお前専用のスレじゃねーよw
俺がいたいと思ったらいる。
俺は自由だ。
いつもの開き直りクヅ
JS厨はそう言って荒らし続けた。誰も俺を止められないってね。そりゃあその通り。荒らし続けて、どうぞ
俺が荒らしたいと思ったら荒らす。 俺は自由だ。
荒らしはしてないしするつもりもないけど、
スレの管理者から許可を得たから
問題ないね。
>>746 ザンネンでした。公式に認められました。
JSスレを乱立した挙げ句、結局JS禁止で正常化したスレを乗っ取り、荒らす、荒らす、荒らす! 毎回これ。なぜJSスレでやらないのか?誰もJSの話なんてしたくなくて過疎ってるから。 JSはスレチと言われて相手にしてもらえるだけで射精してるんだろうな
>>753 だからお前が一番荒らしになってるんだよ。
自覚しろよ。みんな呆れてるぞ。
JavaScriptはスクリプト言語なんだから 普通にJavaScriptの話をしようって言ってるのに 品性の欠片もない人ですね。
JSキチガイが我が物顔で居座る限り続けるわ もともとのスレをJS厨に明け渡したわけだからな JSの話をしたけりゃあっちに行けよ なんでJSを追い出したこちらに書き込み続けるのか? キチガイ荒らしだからだろ。誰も反論できない キチガイ荒らしにキチガイ荒らしと言ってるだけ このやり取りがしたくてこのスレに書き込んでるんだろう さあ、糞JSのゴミレスを続けろ!さあ!
>>756 お前はそうやって罵倒しているだけ。社会のゴミ。
俺らは普通にJavaScriptを含めた
スクリプト言語の話をする。
その違いの意味をよく考えることだ。
もうこれ以上お前のようなキチガイ荒らしにレスしてやらんよ。
これからは無視してスクリプト言語の話をする。
>>735 スレタイ、テンプレから除外された理由を知ってるくせに白々しい
というかJSでスクリプトスレを糞スレ化した張本人だろ?
もういいよ。お前はJSのことも全く知らない雑魚じゃねーかw
プログラミングの話題が出来ないから、あえてJS禁止スレで茶化してるだけ
喧嘩プロレスしたいだけなんだろう?
JSの話がしたいならお前が腐らせたあのスレで淡々とJSネタ投下してみろ。まあ、無理か
ここでJSの話題を淡々としてみよう。
スレチ荒らしの池沼じゃないなら何なの?
761 :
デフォルトの名無しさん :2013/06/03(月) 07:50:16.84
>>744 かと思えば、たまに恐ろしくクールで取っ付きにくいうちの娘みたいなのは除外ですか……
そもそもスレチの前にローカルルール的に板も違うっていうね まあ勝手にしてくれ
>>727 >>729 御題:次のFortranの関数を実行せよ
subroutine incr(i)
integer i
i = i+1
end subroutine
手軽に書けるのがPHPの特徴だと思っていたのに PHP5のソースコード見たら、すっげーめんどくさいことしてんだけど PHP5ってPerl6みたいに死産したの? それとも現役?
ググレカス
>>764 PHPは王道をたどっただけ。
1. シンプルな言語
2. ゆえに普及する
3. だんだんとプログラマの要望が増える
4. 言語が進化する
5. プログラマと言語がともに成長する。
6. 一流の言語へ
>>768 C++みたいな変態言語へと変化したのもあるけどな
>>768 王道?
そんな経過を辿った言語が他にあるというのか。
>>766 PHPって2010年頃から順調に下降線をたどってるんだね
>>770 C++とか。
昔のC++はシンプルだったよ。
STLは無い、当然Templateもない。
例外機能もない。実行時型情報もない。
どの言語もどんどん機能が追加されているんだよ。
Goがまさに王道を歩んでいる
>>772 C++が一流の言語?
変態度合いは一流と呼んでいいが…
>>774 どうせ自分の知らない言語をディスりたいだけだろ。
人間性を疑うね。
でもC++とPHPは変態で有名なのは有名だからね ここまで有名なら信憑性あるよね 評判を参考にするのは当然だよね
変態って言ってるのはお前だけというw
PHPは知らんけど、最近のC++は変態な記法増やしたなあとは思う
PHPは変態ではない 場当たり的な変更と拡張でウンコになっただけ
スカトロなんて変態の極みじゃないですかぁー! PHPド変態ですよぉー!!
JS叩きの次はPHP叩きか。 まったく呆れるね。 結局罵倒することしか出来ない。
JS推してる奴とPHP推してる奴って 話題の唐突さとコメントの内容の無さが 同一人物かと思う程に似てるね
意訳 叩いている奴は同一人物
785 :
デフォルトの名無しさん :2013/06/04(火) 00:16:50.41
1984年(29年前)グリコ・森永事件 13年前に雪印食中毒事件 6年前に 不二家 の賞味期限切れ卵事件 こないだ 明治のヨーグルトに虫混入事件 さて、得をしたのは誰?
PHPはあくまでWeb上に特化したプログラミング言語で 確かにその分野に限って言えばメリットも見いだせるんだろうけど 結局土方みたいなプログラミングしかできないよね
PHPはあまり好きな言語じゃないけどwikipediaやfacebookもPHPで作られてるし、それはおかしいんじゃないでしょうか
俺が負けてる?ありえない。この俺が土方になんか負けるはずがない。
>>788 PHPはWebのフロントエンド専用言語だろって書き込みに対し
Webのフロントエンドで使ってる事例を持ってきても
反論になってないよ
facebookはフロントエンド以上のことやってると思うな
facebookではフロントエンド以外の部分はPHPじゃなくてC++、ERLANG、JAVA、Pythonとか使ってる
フロントエンドは、HTML+JavaScriptだろ? PHPはサーバーサイドで使う言語だ。
Webシステムのフロントエンドならクライアントのブラウザのあたりのことで Webのサーバサイドのフロントエンドなら ブラウザからのリクエストを受けてレスポンスを返すあたりの処理のことだな
テンプレートからHTMLを生成して返す処理を フロントエンドといわれても違和感があるな。
いや普通に使うから。 フロントエンドとかバックエンドなんていうのは相対的な位置を表す言葉だからね? 特定の機能を指す言葉じゃないよ?
相対的というのなら、何に対してなのか書けよ。
アスペかよw PHPを使ってるかどうかの話なんだからサーバサイドに決まってるだろw
>>799 だから全部PHPで作ってれば
PHP以外出てこないだろ?
サーバーサイド=PHPかよ
言葉の使い方はともかく、PHPはHTMLを吐き出すだけの言語だ
PHPを吐き出すだけとは? データベースにアクセスも出来る。 たった一件でお前の主張は崩れたわけだが?
PHPといいJavaScriptといいJavaといい 結局は勝っているものに対しての嫉妬なんだなぁって思う。
>>804 おい、そんなことを言ったら、
Objective-CはC++やC#より上に行っているんだが?
Objective-Cを羨んだりするかね?
するんじゃない? なんかカッコいいじゃん オシャレなマックやiPhoneの開発言語でちょっとイカシタ名前で ちょっとマイナー感もあってなんだか通っぽいしさ
PHPやJavascriptでは機械学習や数値計算、自然言語処理などの高度な計算機科学は無理 Web上でちょろちょろ動くものを作る土方みたいな作業やるには素晴らしい言語なんじゃない?
Lisperになればコード書くなんて土方みたいなことしなくてもよくなるぞ
仕事そのものがないから、他の業種にいくことになるという意味かw
PHPerってさ、検索エンジンやリコメンドシステムも DBにアクセスしてHTML吐き出す処理が メインと思ってるのかな
お前は検索エンジンの会社が主に検索エンジン作ってるだけと思ってるのか
バカにしてる人の論調がPHPer以下でアホらしすぎる
>>812 お前が何を言いたいのか知らんが、
お前がメインと思っている部分が
PHPで書けないという根拠を言ったら
話を聞いてやらんでもないぞ。
JSP >>>>> PHP
>>816 それって、笑ったらいいの?
リアクションに困る
検索エンジンやリコメンドシステムがバックエンドなら HTML吐き出すのはフロントエンドだよねって言ってるだけで、 PHPでフロントエンドを書くのはドカタでも出来る簡単なお仕事とか、 そんなことは一言も言ってないよ
えとな、 PHPでHTMLを吐き出すことができる ≠ PHPでHTMLを吐き出すことしか出来ない。 この二つの違いわかるか? HTMLを吐き出したらフロントエンドというのなら JavaだってRubyだってPythonだってフロントエンドだろうが。
(y) いいね!
>>819 だからさ、PHPがHTML吐き出すのに特化した、汎用言語としては欠点だらけの
クソ言語だなんて誰も言ってないよ
>>821 おまえが粘着型気質で、さらに、ある種の心の病を患ってるなんて誰も言ってないよ
うっほw そこは言語の文句言えよ 完全に逃げてる! オマエの負けだwww
hcapp.rakusaba.jp hcapp.rakusaba.jp/?page=HC-Standalone-B hcapp.rakusaba.jp/?page=HC-Standalone-S hcapp.rakusaba.jp/?page=HC-wbRadStudio hcapp.rakusaba.jp/?page=HC-LocalServer
Webシステムの話なら、普通フロントエンドって言ったらブラウザとブラウザ部分のことだよね
PHPでミドルウェア書くのがプログラマの仕事
それ以外は板前の見習いとかで、その辺りでギークを自称している連中は 俺は将来サーファーになるんだぐらいのちょっと恥ずかしい人たちで、 後々で自分が書いたブログを読み返して黒歴史だと感じ頭を布団に埋めてジタバタする。
ミドルウェアって、OSとかデバイスと、アプリケーションの間のソフト/ライブラリのことでしょ。 サーバアプリを実装する言語/レイヤーのことをミドルウェアと呼ぶのは聞いたことない。
node.jsのことをミドルウェアって書く記者なら見たけど?
あれw?IDキターwwwww?
ああwごめん末尾!かw
ミドルウェアのミドルは基本ソフトウェアと応用ソフトウェアの間って意味でしょ
>>829 それは、node.jsを使ってWebアプリケーション(あるいはサーバアプリ)を書くという文脈じゃないの?
Webアプリやサーバアプリそのものを実装する言語のことは、普通ミドルウェアとは言わないよ。
>>825 すでに
>>797 が指摘してるけど、
・プログラマ目線では、フロントエンドはブラウザ
・アーキテクト目線では、フロントエンドはサーバ
かな?
>>828 エンタープライズ分野ではサーバアプリを実装するレイヤを指して
ミドルウェアと呼ぶのは常識
代表例だと、OLTP(例: 日立 OpenTP1)やメッセージング(例: IBM MQ)など
まあ、この板の住人の大半を占めるだろう末端プログラマや
学生さんには縁遠い世界だから、聞いたことが無いのも無理は無いが...
>>834 OLTPもMQもサーバアプリが使用するレイヤのソフトでしょ。
今は、
> PHPでミドルウェア書くのがプログラマの仕事
の表現がおかしいって流れなの。
>>834 TPモニタとかMQとかは、大規模システムで集められる三次四次移行の末端のプログラマでも知ってる話。
プログラミング言語自体は基本ソフトウェアに含まれるかな プログラミング言語で実装されたフレームワークとかをミドルウェアと呼ぶ思うけど 最近だとプログラミング言語とフレームワークが一体になってるようなものもあるから、 どちらに分類するか曖昧になることもあるかね
言語は基本ソフトウェアじゃないでしょ・・・
基本ソフトウェア=オペレーティングシステムで これに言語を含めないのはPC系の文化かね
>>839 言語を基本ソフトウェアに含めるという文化は、いつ/どこの話なんだ?
Wikipediaだと基本ソフトウェアはシステムソフトウェアの意味で 広義では言語処理系もこれに含めてるな
>>841 wikipediaには、「基本ソフトウェア」の項目がないんだけど、それ何の項目の説明?
>>843 システムソフトウェアには、言語も含まれる場合があるとは書かれてるけど、基本ソフトに関しては、
> 日本の大手旧来マスメディアなどは、「オペレーティングシステム」の言い換え語として「基本ソフト」を使っている
として書かれてないけど。
>>844 >語感としては「システムソフトウェア」のほうが「基本ソフト」に相当する
>>845 いや、それは読んだが、だからといって、
>>841 > Wikipediaだと基本ソフトウェアはシステムソフトウェアの意味
とはならない。
誰が決めたか知らないが、現状では基本ソフトといえばイコールOSのことでしょ
>>846 転送されてるし、Wikipedia的にはシステムソフトウェア=基本ソフトウェアとしてるように思えるけど
まあ、これはどっちでもいいや
それで、どうなの?
システムソフトウェア=基本ソフトウェア ○or×?
システムソフトウェアに言語処理系が含まれる ○or×?
どっちでも良いだろ糞が。
>>848 システムソフトウェア=基本ソフトウェア ×
システムソフトウェアに言語処理系が含まれる ○
俺の記憶だと、DOSの時代からマスコミはOSのことを基本ソフトと言ってたな。
おぺれーちんぐ・すすてむ
言語処理系って言ったってピンキリだろ? bash だって言語だぞ
>>840 メインフレームのCOBOLは基本ソフトウェアの中に含まれる。
>>854 ググると、メインフレームの文脈でも、OSのことを基本ソフトと言ってる人多数だよ。
まぁ俺メインフレーム触ったことないから、現場ではどうなのか知らないけど。
IBMのメインフレームだったら、アセンブリ言語、PL/I、COBL、FORTRANは付属品だわな。 昔(いつかは秘匿)はOSのことを基本ソフトとは呼ばなかったよ、誰も。 コンピュータが一般に使われるようになるまではね。 OS(オペレーティング・システム)じゃ一般の人はなんのことかさっぱりわからないから適当に基本ソフトって言い換えたのが始まり
>>855 そりゃ、あたりまえだ
基本ソフトというカテゴリにオペレーティングシステムが含まれるんだから
もちろん基本ソフトというカテゴリにはCOBOLやCといった言語処理系も含まれる
現場では常識
「基本ソフト」なんて日本だけで通用する造語じゃないの? 基本ソフトを英訳するとなんて言うの?
日本語話者同士の会話の中で「基本ソフト」って言う言葉が出てきたら、英語話者に伝える場合は、もう間違いなくOS(Operating System)。 基本ソフトのカテゴリがOSのカテゴリと違うとか言ってるのは恥ずかしい
>>857 > 基本ソフトというカテゴリにオペレーティングシステムが含まれるんだから
それはトートロジー。
ググってないでしょ。ググってごらんよ。メインフレームの文脈で「基本ソフト=OS」って言ってる人多数だから。
どうでもいいわ
864 :
デフォルトの名無しさん :2013/06/06(木) 18:20:15.26
なんでスクリプトのスレでOSの話してんだよ。お前ら馬鹿じゃねーのか。
> 841 Wikipediaだと基本ソフトウェアはシステムソフトウェアの意味で 広義では言語処理系...
> └842 >> 841 wikipediaには、「基本ソフトウェア」の項目がないんだけど、それ何の項目の...
> └843 >> 842 基本ソフトウェアから転送される
> └844 >> 843 システムソフトウェアには、言語も含まれる場合があるとは書かれてるけ...
> └845 >> 844 >語感としては「システムソフトウェア」のほうが「基本ソフト」に相...
> └846 >> 845 いや、それは読んだが、だからといって、>> 841 > Wikipediaだと基...
> └848 >> 846 転送されてるし、Wikipedia的にはシステムソフトウェア=基本ソフ...
> └850 >> 848 システムソフトウェア=基本ソフトウェア × システムソフトウ...
諸悪の根源はWikipediaか
ttp://ja.wikipedia.org/wiki/オペレーティングシステム OS=ハードウェアを抽象化
ttp://ja.wikipedia.org/wiki/システムソフトウェア (基本ソフトから転送)
ハードウェアを管理・制御
これは転送が間違ってるね。
昔の情報処理試験のテキスト見ると、 システムソフトウェアに基本ソフトウェアとミドルウェアが含まれて、 基本ソフトウェアに以下の三つが含まれてるな 制御プログラム(OS) 言語プロセッサ(アセンブラ、コンパイラ) サービスプログラム(ユーティリティプログラム)
867 :
デフォルトの名無しさん :2013/06/06(木) 18:27:27.25
(最新 | 前) 2007年 7 月28日 (土) 07:59? 210.154.96.162 (会話)? . . (44バイト) (-6)? . . (←システムソフトウェアへのリダイレクト) (取り消し) (最新 | 前) 2006年12月31日 (日) 06:43? Fryed-peach (会話 | 投稿記録)? . . (50バイト) (+50)? . . (←オペレーティングシステムへのリダイレクト) IPアドレスまたは利用者名: 210.154.96.162 2007年7月25日 (水) 07:03 (差分 | 履歴) . . (+170)? . . ノート:システムソフトウェア ? 2007年7月25日 (水) 06:58 (差分 | 履歴) . . (+800)? . . ノート:オペレーティングシステム ? 2004年9月27日 (月) 05:36 (差分 | 履歴) . . (+65)? . . 筑波大学 ? (→?沿革) 筑波大学の馬鹿が犯人だな。
>>868 現場ってどこだよ。筑波大学が現場ですか。確かに土方の卵だから現場に行くんだろうけどさ。
見苦しすぎ
ちょっと前の基本情報処理のテキスト引っ張り出してきたけど、
>>865 みたいな分類になってるわw
まあ基本情報処理なんて土方試験ですけどねw
872 :
864 :2013/06/06(木) 18:53:13.55
>>872 バカはお前だ
基本ソフトウェアに言語処理系が含まれるかどうかの話をしてるのに
875 :
デフォルトの名無しさん :2013/06/06(木) 19:01:26.88
>>873 バカはお前だ
基本ソフトウェアに言語処理系が含まれるかどうかの話をすべきなのに
>>875 流れを理解できないバカだなあ
基本ソフトウェアに言語処理系が含まれるかどうか議論していて
Wikipediaでシステムソフトウェアに言語処理系が含まれるという記述があってそれに異論が無いようだったから
それならば、基本ソフトウェアとシステムソフトウェアとOSの関係はどうなのか?について議論してたのに
まあ結論はでたね
>>838 の
>言語は基本ソフトウェアじゃないでしょ・・・
これがお馬鹿さんだったということでw
つまらんスレを大量に消費した反省をしてくださいw
なんだこれ。JS厨並の馬鹿二人の水掛け論 生きてて恥ずかしくないんだろうか
879 :
864 :2013/06/06(木) 19:13:21.68
>>876 だから 「Wikipediaだと基本ソフトウェアはシステムソフトウェアの意味で」とか言い出した馬鹿を見つけて否定したんだろ。
それとも何か?お前の意見では 「基本ソフトウェア=システムソフトウェア」 なのか? Wikipediaにはそう書いてあるけど。
ここまで全部JS厨
それなら仕方ない
>>879 Wikipediaに「基本ソフトウェア=システムソフトウェア」と書いてあるなら、
「Wikipediaだと基本ソフトウェアはシステムソフトウェアの意味で」これは正しいだろ?なんで馬鹿なの?
884 :
864 :2013/06/06(木) 19:31:26.68
>>883 単純に引用してしたり顔してると言う事は、正しいと主張してるのと同じ。
確かに書いてはあるが、間違った事が書かれているということで、否定している。
Wikipediaにそう書いてあるというのは
>>864 で俺も認めていて、
そしてその内容が間違っていると主張しているんだけど、まだ理解できないの?
それとも、まだ自分の間違いを認められないの?
>>846 も書いてるだろ。
>
>>845 > いや、それは読んだが、だからといって、
>>841 > > Wikipediaだと基本ソフトウェアはシステムソフトウェアの意味
> とはならない。
>>884 単純に引用されてるのを見ただけで
「したり顔してるとか」、「正しいと主張してるとか」、
そう感じるなら病院に行ってお薬貰ったほうがいいぞ
システムソフトウェア、基本ソフトウェア、広義のOS、ミドルウェア この辺の範囲はけっこう曖昧だよ。 ミドルウェアを特に区別してなくて、 システムソフトウェア=基本ソフトウェア=広義のOS みたいな感じの現場もけっこうある。
887 :
デフォルトの名無しさん :2013/06/06(木) 19:48:54.12
>>885 > 単純に引用されてるのを見ただけで
いやいや
その引用へのレスに対するレスを参考にしてますよ。
>>868-870 > たぶん
>>862 とか
>>864 はぐぐってるだけで現場を知らない
> 見苦しすぎ
どう見てもこれ、勝利宣言だろ。
>>887 お前が勝ったとか負けたとかどうでもいい
本題と関係無いから黙ってろ
今回の恥ずかしい敗者は
>>838 「言語は基本ソフトウェアじゃないでしょ・・・」
>>840 「言語を基本ソフトウェアに含めるという文化は、いつ/どこの話なんだ? 」
>>887 基本ソフトウェア、システムソフトウェア、OSとかの範囲をきっちり区別できると思ってるあたりが現場を知らないね
OSの言い換え語としてバカみたいに「基本ソフト」って言い換えてるバカマスコミに脳をやられたバカが多杉
891 :
864 :2013/06/06(木) 20:28:59.10
>>886 あいまいならなおさら気をつけて使うべきだろ
>>889 現場では 基本ソフト=OS なんだからこれを区別しない
>>888 じゃあ本題の話をしようか
Pythonみたいなシェルスクリプトに使われてるのは基本ソフトと言ってもいいけど
JavaScriptみたいなブラウザ上でしか動かないようなスクリプト言語はせいぜいミドルウェアかアプリケーションのおまけなので基本ソフトには入らない。
PHP, Perl, Ruby もWebサーバーとしかやり取りしないんだから基本ソフトとは言えない。
だからスクリプト言語が基本ソフトに含まれるかどうかを議論するのは不毛。
しかし、プログラミング言語を使う時に、追加のライブラリと区別するために最初からついてるのを基本ソフトと表現するのはありかなと。
結局は ”基本” という言葉の語感が諸悪の根源。
シェルスクリプトに使われてるのはPerlだろ
やっぱり864は、いつも暴れてるアンチJS厨=Python厨なんだなw
言語は基本ソフトウェアじゃないでしょ・・・って言ってた人はどこ行っちゃったの?
895 :
864 :2013/06/06(木) 20:36:22.19
>>891 JSがブラウザ上でしか動かないとかいつの時代の人なんだよ
Windows8とかJSでアプリが書けるのに
JSはブラウザ依存言語だからな 環境によって全くの別言語になるゴミ 詳しくはスレチだから他所に言って語り合ってくれ
898 :
893 :2013/06/06(木) 20:41:49.07
>>891 Perlがないと成り立たないLinuxディストリビューションやBSDシステムは多い。
超適当に分けると
Perl システムツール
Python アプリケーションソフトウェア
という傾向はありそう。
> しかし、プログラミング言語を使う時に、追加のライブラリと区別するために最初からついてるのを基本ソフトと表現するのはありかなと。
これは「標準ライブラリ」とでも言いたい。
なにこのプログラミング一年生みたいな議論は
何が基本ソフトウェアに含まれるかというより、 基本ソフトウェアを提供する側が何を基本ソフトウェアに含めるかっていう区分なんだよね
902 :
864 :2013/06/06(木) 20:57:36.68
UNIX系知らないとかPython厨はWindowsでPython使ってるのか?
また別言語の話かよw JSネタはこればっか。もういいよ、他所でやってくれ
>>904 864はPython厨じゃねえよ
PythonがLinuxのシステムに使われてるって聞きかじりの知識で喋ってるだけ
これに限らず全部テキトー。まともに取り合ってる奴らのレベルも同じくらい低いけど
909 :
864 :2013/06/06(木) 21:19:08.87
>>907 > そういうこと。この程度知識しか無い奴が
> 偉そうに語ってる。言ってることは間違いばかり
> 信用できる? もう信用出来ないね。
なるほど。つまり、基本ソフト≒OS と言う事ですね。分かりました。
910 :
864 :2013/06/06(木) 21:21:15.53
>>903 > これ論破したレベルだと思うけど、
> 反論できる?
>そう。もちろんこれは素のECMAScript, JavaScriptではなくて、MS製品のJavaScript(JScript)である。
そのページに書いてあったよ。
Larryですらも今ティーンエイジャーならjavascript使うって言ってたぞw
912 :
864 :2013/06/06(木) 21:26:08.11
だいたいいまどき、 Flash の ActionScript だって、プラグインがDirectXの機能を呼び出してくれてるよ。 スクリプト言語の話すればいいのになんで .net の話すんの? 馬鹿なの?
>>910 MS製品のJavaScriptですよね?
それがどうかしましたか?
>>910 じゃあお前はどこが作ったJavaScriptのことをJavaScriptと呼んでるの?
>>912 .net上で動くスクリプト言語はスクリプト言語じゃないの?
コンパイルが必要www死んどけ
あーあ、またJS厨が暴れ始めた
なんかピンチになるとJS厨って騒ぐ人いるよねw
何がどうピンチなのか詳しく解説して欲しい
スレチな話題で荒らされるというピンチ
864はどうみてもいつもJS厨といっしょにスレを浪費してるやつだろ
921 :
864 :2013/06/06(木) 22:02:39.44
俺
>>353 なんだけどそんな前からこのスレ見てるわけじゃないから。
ああ、だからみんながスルーしてる荒らしに反応してしまうのか。
すまんこ。
そもそも Perl を作ったのも俺なんだけどな。
Web用に作ったんだ。
そーそー、スレチはスルーすればいいんだよっ!
というか、その昔IEをOSに含めるか否かで揉めてただろ
狭義のOSはカーネルだけ。 広義のOSはカーネル以外も含む。 ただしOSメーカーがの一部と考えてる場合だけだ。 PythonもPerlも必須パッケージではない。 オプショナルなパッケージだからOSではない。
アンインストールしたらOSが動かなくなるオプション
926 :
デフォルトの名無しさん :2013/06/06(木) 23:22:21.88
リンクをクリックしたらメールが飛ぶPHPを作ってますが、 これって巡回ロボットがリンクを踏んでもメールが飛ぶのでは? 防ぐにはどうしたらいいですか?
927 :
926 :2013/06/06(木) 23:23:14.12
誤爆です
928 :
デフォルトの名無しさん :2013/06/07(金) 01:38:29.09
Wikipediaなんてソースとしては不適切だからな
PerlはしらんけどPythonはなくても動くな。 というか、最小構成でインストールしたから Pythonは入ってない。
Ubuntu入れてsynapticでpython消そうとしたら警告されたよ
>>928 Web上に根拠を求めることが不適切ということかな。
CentOS、RHEL、Fedoraあたりはパッケージ管理にyum使ってるが そのyumがPython無いと動かない
yum には Python 必須みたいですね
俺、汎用の経験もあるし一時期客先常駐ばっかやらされてていろんな現場行ったことあるけど、 現場で「基本ソフト」なんて言葉聞いたことないぞ。マスコミが言ってるだけじゃないの? 現場で基本ソフトと言ってるという奴は、一体どういう文脈でその単語が使われてたんだ?
>>934 OSとか言語とかやってるとこの部署名が基本ソフト〜だった
「yumはPythonで書かれている」を「yumにはPython必須」とか言っちゃう奴はセンスが欠片も無い
940 :
864 :2013/06/07(金) 14:54:04.71
>>937 これのことか
pythonのバージョン上げるとyumが動かなくなった - ike-daiの日記
>>937 pythonが無ければyumが実行できないんだから、yumにはpython必須でしょ
>>942 Anacondaがあったから何だと言うんだ
もう RedHat系はインストールの時からPython要求してるってこと OpenSUSEのYaSTがRubyを採用したらしい OSによってシステム言語的に組み込んでるってことでした
インストーラは関係無いでしょ
946 :
デフォルトの名無しさん :2013/06/07(金) 16:12:02.03
>>931 責任感持ってやってるトコなら問題ないだろうけどさ
WikipediaにはそんなものはないしアドミンもDQNだからな
はい自分は追放された荒らしだという告白入りましたー
948 :
デフォルトの名無しさん :2013/06/07(金) 18:03:32.86
それどこよ
PerlやPythonやRubyがシステム言語的に使われてるのに PHPがそうならないのは、PHPが汎用言語としてはウンコすぎるから?
もええええええええええええええええええええええええええええええええ
951 :
864 :2013/06/07(金) 21:12:33.89
Rubyはrailsがないとまともに動かないだろ
>>949 > PerlやPythonやRubyがシステム言語的に使われてる
はあ?
> PHPがそうならないのは、PHPが汎用言語としてはウンコすぎるから?
こっちは正しい。
「はぁ?」と「こっちは正しい」としか 言ってない人間は信用されない。
ひぃひぃふぅ
955 :
デフォルトの名無しさん :2013/06/07(金) 22:19:15.75
まあこの板嘘つきばかりだからな
PerlやPythonやRubyがシステム言語的に使われてるのに Javascriptがそうならないのは、JSが汎用言語としてはウンコすぎるから?
そうだといいなぁ。
まだ世に生まれていない最強言語が、システム言語に使われていないのは 最強言語が、汎用言語としてうんこすぎるから?
JSとJS厨がウンコだから
これから、ウンコ言う奴がウンコなw
JSはスレチって何度言えば分かるんだ あ、馬鹿だから一生分からないか。ごめんごめん
はい、一生分かりません。 わかったらもう黙っててくださいね。
馬鹿だなあ
こんな奴に使われてるPythonが可哀そうだわ
糞仕様のJSがこんなキチガイにしか使われないのは仕方ないことだよね(´・ω・`)
967 :
864 :2013/06/08(土) 00:58:09.41
>>907 > 信用できる? もう信用出来ないね。
>>953 > としか
> 言ってない人間は信用されない。
単語だけでどの宗派の人か分かるんだけど名乗らない。
ステマばっかり。
どの宗派だとわかったんだ?w 外れていたら恥ずかしいぞ。 その根拠とともに答えたまえ
>>966 まーたJS厨のテンプレ改悪クソスレ乱立か…
これで何個だ?さっさと死ね!
Python厨の自演分かり易すぎ
効いてるw効いてるw
過剰反応してスレ汚し 人格攻撃 Javascriptユーザー装って乱立荒らし こんな奴に使われる言語、それがPython 他のPythonユーザーは迷惑被っているだろうが 引き取ってくれよな
ということにしたいんですねw JSがスレ潰し&クソスレ乱立したことを責任転嫁 JS禁止スレでJSの話題をしまくってる馬鹿はどこのどいつだよ。あ?
JSの話題さえなければ荒れないのに 他の言語関係ない話題でブラウザがーブラウザがスレを荒らしまくるゴミ ブラウザ依存言語の話とか誰も興味ないだろw
977 :
864 :2013/06/08(土) 01:19:58.26
信用と言う言葉を使うのは
洗脳を仕事とする宗教家。
宗教がプログラミング言語に絡んでいるのはRuby。
だからRuby工作員。
>>949 Ruby↑ PHP↓ PHPが〜ウンコ
>>956 Ruby↑ JS↓ JSが〜ウンコ
>>277 VBScriptって〜ウンコ
>>279 ブラウザで〜ウンコ
>>780 PHPは〜ウンコ
ほらね。
Rubyはいつも上げ
Ruby以外の言語は「ウンコ」と言うイメージの悪い言葉とともに下げ
こうやって抽出してまとめて比較するとよく分かる。
そのほかの例がこれ
>>785
978 :
864 :2013/06/08(土) 01:22:40.56
979 :
864 :2013/06/08(土) 01:26:49.46
義務教育での採用を目指しての工作活動と仮定すると、 外国生まれの言語は工作する意味がないんだよね。 別にうまみないし。 学校の教材みたいな実用性皆無のところを狙っても落ちぶれるだけ。 そんなところにリソースを割くよりも業務を優先するもんだ。 まあ、UNIX系のツールや言語は大学で使われてきたと思うけど 優秀な学生なら教えれば使いこなせるし就職したら採用してくれるんで商売になる。 日本の小学生に教えても意味ない。全然違う。
>>953 別に、バカに信用されたいわけじゃないから (w
981 :
デフォルトの名無しさん :2013/06/08(土) 03:22:10.18
馬鹿がまともな人間に信用されたいといくら思ってもそれは無理だぜ?
> 馬鹿がまともな人間に信用されたいといくら思ってもそれは無理だぜ?
たしかに、
>>981 とか見るとよくわかるな (w
>>976 だからWeb外の話を要求してるんだが、PHPやJSはWeb以外の話になると話続かないのがね
JSとかWeb以外にも色々あるはずなんだが、ここに来る輩にそれをやってる人間がどうも居なさそう
JSって何
985 :
デフォルトの名無しさん :2013/06/08(土) 16:48:36.86
女子小学生だろjk
一応WebProg板なんでねPHPやJSは ここより過疎ってるけど
だけどWebの話を排除するとPythonが最強という結論にしかならないわな
逆に言えばWebじゃPythonはかなわない。
逆に言えばWeb以外なら?
WebってHTML吐き出すアレ?
>>987 Pythonはワンライナーが辛いかと…
短いバッチ殴り書き用:Perl ちょっと気合入れて作る用:Python で終了だな
いやいや、可読性最悪のPerlさんの方が気合入るって。 それに、ワンライナーだから気楽にできると思ったら大間違い、 ワンライナーに収めるみょうちくりんなテクニックとか駆使せなアカンし、 可読性はさらに最悪になるし、もうパズルですよ。 ワンライナーにせずに関数書いたりする方が気楽にできるのは間違いないよね。 ワンライナーなんかただのオナニーなんだよ、一行に収めるのにどんだけ労力かけてんだよって。
一行に収めるとはすごい発想だw 一行でおさまる程度のコードだから 一行で書くんだよ。
一行とかどうでもいいって
996 :
デフォルトの名無しさん :2013/06/09(日) 04:08:41.32
古谷
CUI使いにとっては、ワンライナーはどうでも良く無いよ ファイルに書くまでもない一行コマンドを実行することは良くある まあ、sedやawkで十分ではあるが
Perlとかどうでもいいって
なるほど、Perlには敵わないから どうでも良いという事にしたいのですね
Windowsだと一式入れるの面倒だからPerlだけ突っ込んでる sed役もawk役もPerlだけでこなせるからな まあsedに関しては付属のpsed使ってるが
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。