1read 100read
2013年17プログラム23: [JavaScript] スクリプト言語34 [Perl,Python,PHP] (765)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
C#, C♯, C#相談室 Part80 (663)
SSE AVXのプログラミング (910)
ネットワークプログラミング相談室 Port29 (372)
関数呼出しはgoto文である (192)
Google Maps API 質問箱 (345)
【最速へ】LowLevelVirtualMachine【LLVM】 (608)
[JavaScript] スクリプト言語34 [Perl,Python,PHP]
- 1 :2013/05/06 〜 最終レス :2013/09/25
- JavaScript, Perl, PHP, Python, …
スクリプト言語をすべて扱うスレッドです。
最強のスクリプト言語は、どれよ?
さあ、死ぬまで語りやがれ!!!
■ スクリプト言語の用途
簡易Webアプリ、シェルスクリプト 、JavaScript
■ スクリプト言語の特徴
1レスで書ける程度の使い捨ての短いコードなら作成が容易だが
実行速度は劣っており、2人以上の開発、1000行を超えるソースコード、
10ファイル以上からなるソースコード、大規模になればなるほど
修正時の影響範囲の把握が困難で簡単なスペルミスが
発見しづらいバグを生み、IDEなどの静的解析ツールの適用が難しく
何から何まで人手でやらなければならずプログラマの負担が大きい。
・インタプリタ
・動的型
・正規表現
・クロージャ
などを利用できるものがある。
1レスには収まらないが100行程度の短いコードはここで
ttp://play.island.ac/codepaste/
[JavaScript,PHP] スクリプト言語33 [Perl,Python]
http://toro.2ch.net/test/read.cgi/tech/1367556949/
- 2 :
- RubyはHPC Rubyが出てからが本番だから(震え声)
- 3 :
- Rubyは遅いからな。
- 4 :
- 【PHP,Python】スクリプト,バトルロワイヤル34【Perl,Ruby】
http://toro.2ch.net/test/read.cgi/tech/1367772345/
- 5 :
- [Mac/NUC] AGK / DarkBASIC / Basic4GL / 99BASIC 2013 Part.1
http://jbbs.livedoor.jp/bbs/read.cgi/computer/43761/1367197701/l100
- 6 :
- 前スレ>>999
> リスト内包は集合論とかの数式を見慣れた人には分かりやすいよね
短い場合はそうだと思うけど、
長くなった場合は見にくいよ。
多分その理由は思考の流れと逆に書くからだと思うな。
ディレクトリのように、前から絞り込んでいくやりかたと
後ろから絞り込んでいくやり方がある。
長い場合は、前から絞り込むほうが理にかなっている。
例えばドメインは、後ろから絞り込んでいくやり方だけど
パスの部分は前から絞り込んでいくやり方になってる。
住所を真似して後ろから絞り込んだのはいいが、
途中(パスの部分)で破綻したのではないかな。
GUIのメニューやCSSのセレクタも前から絞り込んでるね。
英語の文化のせいで後ろから絞り込むやり方が存在するけど、
論理的に考えたら前から絞り込むほうがいいのだろう。
日本語は基本的に前から絞り込む文化。
- 7 :
- HTMLに組み込める言語が標準入出力がないことが要件なら
Luaやmrubyなんかは駄目なんですか?
- 8 :
- Luaやmrubyは標準入出力あるだろ
- 9 :
- 前スレ>>998
無理→気軽にできない→getが冗長→ださいよ
本当に下がりましたねぇ
もはや最後完全に好みの問題じゃないですか
- 10 :
- 結局のところ、言語仕様なんて
開発効率に大きな差は産まないんだよ。
大きな差を生むのはライブラリ。
そしてライブラリは人が多くなれば
自然と多くなる。
JavaScriptはその頂点にいる。
人をたくさん集める魅力がある。
言語仕様だけが魅力の源ではない。
- 11 :
- だから、名前はgetじゃなくてnewCounterの方だっつーの
- 12 :
- newCounterはJavaScriptの方の名前じゃねーか
名前つけてるじゃねーかー
いるんじゃねーか
- 13 :
- だから、その例でつけてるだけで、実際にコードを書く際には
つけねーよ
- 14 :
- ちなみにpythonの有名なデスクトップアプリって何?
ググっても出てこなかった
- 15 :
- Rゴミ共がw
Rゴミ共がw
Rゴミ共がw
Rゴミ共がw
Rゴミ共がw
Rゴミ共がw
Rゴミ共がw
Rゴミ共がw
- 16 :
- >>13
名前付けないなら1回しかつかえねーだろ。
インスタンス一個しか作れねーだろ。
- 17 :
- >>16
お前、いちいちイベントハンドラに渡すクロージャに名前つけるの?
- 18 :
- >>17
つけねーよ?
匿名クラスつかうよ?
だからなに?
- 19 :
- 底辺の言語が争ってるw
- 20 :
- ほーらまた底辺が来た
- 21 :
- 底辺の言語を愛する底辺Webドカタが戯れるスレ
- 22 :
- ほらな、結局あの冗長なめんどくさい匿名クラスになるだろ
しかもfinalしか参照できないやつな
さらにさらに結局インターフェースに名前が必要だしな
そりゃクロージャ欲しがるわけだわw
- 23 :
- 今度は冗長→ださいよ?の流れか?
ぶっちゃけあんなのタイピング速度争いでもしてない限り
問題にならないだろ。
お前の言う冗長な部分は、補完機能で勝手に生成されるし。
- 24 :
- finalしか参照できないことの何が問題なんだろうか?
final変数に入れればいいだけじゃないか。
- 25 :
- final変数を配列で定義して
書き換え可能にするテクがあるから(震え声
- 26 :
- その割にはクロージャ入れるぞーって必死になって、かなりの大事になって
何年も侃々諤々と議論しまくってるなw
- 27 :
- なんだそのテク?
普通にオブジェクトなら書き換え可能だし、
戻り値使えよ。
- 28 :
- >>26
何年も立ってるのは入れる理由があまりないから
優先順位低いんだろ。
最近になってマルチコアを効率よく
使うためという名目が出来たけどな。
- 29 :
- 俺は非同期スタイルやイベントベースで、流石に匿名クラスはちょっと嫌だわ
functionですらちょっと長くて嫌だしw
- 30 :
- >>28
何年もかかってるのは、クロージャがあまりに言語の根幹を揺るがす
重要すぎる機能だからだよ
- 31 :
- 重要ならすぐに入れようとするだろJK
- 32 :
- >>26
結局はSAM type の構文糖ってことに落ち着いたんだよ
最初は本物のクロージャを入れようって頑張ってる人もいたんだけどねぇ……
「ブルーカラーの言語には相応しく無い(ドカタには過ぎた道具だろ、ぷぷww)」って言われて
本物は却下されちゃった
http://www.infoq.com/jp/news/2007/12/closures-preserving-feel-of-java
- 33 :
- それが無理なんだわ
大手術なんで
- 34 :
- Java vs Javascript スレ
- 35 :
- >>33
SAM type の構文糖だけど?
何が大手術?
- 36 :
- 色々あってSAM typeの構文糖しか入れられなくなって、
さらにOracleがやる気無さ過ぎて
「セキュリティ対策が面倒くさすぎるからJava8のリリース延期するわ。
まあlambda捨てても良いなら予定通りリリースしてやるけど」
とか言い出す始末
OracleにとってはSAM typeの構文糖ですら重荷
http://headlines.yahoo.co.jp/hl?a=20130422-00000026-mycomj-sci
結論:Javaはオワコン
- 37 :
- 朔
新月の初心者向け利用ガイドつくりました。
人が増えてくれたらいいな。
www.dive2shingetsu.appspot.com
http://uni.2ch.net/test/read.cgi/operatex/1366273472/399
.pyを検索
tksaku.pyをダブルクリック
dos窓から python saku.py -v
saku.pyをダブルクリック
- 38 :
- スクリプト言語Javaについて語るのはここですか?
- 39 :
- Javaにクロージャはあまり必要無いように思うんだけどなあ。
匿名クラスでマルチスレッドやイベント作る場合以外は使わなくない?
それよか、いまだに型推論、プロパティ、インデクサ、関数ポインタがないのが痛すぎる。
しかもこの4つは全てVM弄る必要はなくて、ただの糖衣構文だから、全てコンパイルのパーサを変更すればいいだけだし。
なんでこの4つを実装せずにラムダ式に時間かけているのかよく分からんわ。
- 40 :
- 糖衣構文って重要なの?
どうでもいいものなの?
- 41 :
- 結局例外透過もなくなっちゃったな
チェック例外が大失敗なのは今さらだが、Javaワールドに視野を限れば
未だに優れた仕組みだと信じて有り難がってる人が多いのに
自ら使い物にならなくするとはなw
- 42 :
- 総称型拡張されて総称型をthrows節に置けるようになってなかったっけ?
http://mail.openjdk.java.net/pipermail/lambda-dev/2012-April/004738.html
読むと、例外透過の実験的サポートが削除ってのは、
検査例外のリストを総称型であらわせなくなったって事らしいよ。
要するに interface Func<E> { void f() throws E; } はできるけど、
マルチキャッチみたいに Func<IOException | SQLException> はできないって話。
- 43 :
- JAVAは中間コードに直す時コンテキストが失われ過ぎて
普遍コードをループ外に出す等の最適化が満足にできない欠陥言語だから期待するほどダメ
- 44 :
- Javascriptは酷いところも多いが、良いところも多く
好きな奴は好きだろう
Javaは現在では良いところが少な過ぎてキツい
- 45 :
- 正露丸の糖衣版程度の需要
- 46 :
- IDEでも埋めきれないレベルでJavaは冗長
当然スクリプト言語では無いし、もうこのスレで話題にすべきじゃないね
Java厨やC#厨の所為でスレタイ変わった経緯もあるくらいだし
- 47 :
- ところでRubyerとPHPerは絶滅しちゃったの?
- 48 :
- RubyやPHPさえあればなんでもできるぜと豪語する人を見たことがない
皆仕方なくやってる感じで本物のRubyerやPHPerは多分いないんだろうなあと感じる
- 49 :
- githubにはRubyerたくさんいるだろとマジレス
- 50 :
- 日本では見ない
githubなんかどこの氏族の溜まり場かわかんないし
- 51 :
- githubは一番有名なホスティングサービスだろ
- 52 :
- rubyerで吹いた
- 53 :
- rubyみたいな呼称はrubyerと表記するのが一般的
- 54 :
- 俺は名前や見た目で性質が分からないものは大嫌いなんだよね
githubとか意味分かんない
同じくJAVAやRubyとかも何なのかわからない
その点JavaScriptはJavaって名前のスクリプトだと犬でもわかるから好きだ
- 55 :
- でも俺、別にジャワ島を操作したいとか思ってないしなあ…
- 56 :
- それ、お前がgitという超有名バージョン管理システムと
hubっていう超有名英単語知らんだけじゃん
- 57 :
- 引数の数をチェックしない糞言語ってJSの他に何がある?
- 58 :
- チェックをするのが良いという発想がまず間違い
- 59 :
- 例えば、あるブラウザAのバージョン1がmethodA(arg1, arg2)をサポートしているとする
バージョン2で新たに機能を増やしてmethodA(arg1, arg2, arg3)になったとする
さらにブラウザBやCではmethodA(arg1, arg2)のままだとする
すると、ブラウザAバージョン2に対応したJavascriptで、methodA(2, true, true)などとして呼び出すわけだが、
これがバージョン1でもBでもCでも動くようにするためには
チェックしない仕様になっていると都合がいい
こんな感じの事情だと推測できる
- 60 :
- 引数の型をチェックしない糞言語?
- 61 :
- >>59
methodA(arg1, arg2, arg3=None)で解決だが?
- 62 :
- 検索結果
Rubier 80,000件
Rubyer 8,000件
- 63 :
- >>57
Perl
- 64 :
- >>57
php、多すぎてもエラーでない
- 65 :
- Rubyist 347,000件
- 66 :
- Rubyistって日本でだけ通じる言葉?
- 67 :
- >>61
それはブラウザAバージョン2がそう定義するという話か?
それだと、59と何も変わってないぞ
- 68 :
- たとえば、引数が3つの関数があった。
methodA(1,2,3)という呼び出しをしていた。
でも別のブラウザでは引数は2つだった。
methodA(1,2,3)というコードがエラーでてはいけない。
- 69 :
- >>63
やべーな、これが良いとか言えるのはJS厨くらいだろ…
引数は特殊変数@_に格納される。
# 丁寧に書いた例
sub mul {
my ($left, $right) = @_;
return $left * $right;
}
sub mul { $_[0] * $_[1] }; # こうも書ける
>>67,68
デフォルト引数で実現できるから引数の数をチェックしない理由にはならないとわかるか?
まあJSのデフォルト引数は>>61みたいにスマートには書けないようだが
どうせ中身で挙動を変えるんだからデフォで可変長引数なんてなんのメリットもない
むしろ過不足があっても止まらない糞仕様
過不足があるってことは完全にコードが間違ってる場合だ
- 70 :
- その場合、一つ目の引数と二つ目の引数は必須の役割で、
三つ目の引数は付加的な役割であるってことが多いんだろうな
ブラウザ独自の拡張機能とか
そうなると、引数の数をあえてチェックしていない意味が出てくる
- 71 :
- >>69
いや、デフォルト引数を新しいバージョンに付け加えただけでは、
古いバージョンでエラーが出ることに代わりはないだろ
59デフォルト引数前提だろ
ちなみにJavascriptのデフォルト引数の書き方は
arg1=arg1||0;
みたいなのが一般的だ。
- 72 :
- オプショナルな引数以外は全て指定されてる必要はあるわけだから
チェックしない意味は出てこないな
- 73 :
- >arg1=arg1||0;
完全にバッドノウハウな見た目じゃないですか
やだー
- 74 :
- >>73
はぁ?
Perlだって
my $a = shift || 1;
ってやるんですが!?
- 75 :
- >>72
結局それは、自分でオプショナルなものと必須のものを指定する必要があるだろ
それに、>>59は引数が足りない場合ではなく、引数が増えてしまってる場合の話で、
別の場合だし
- 76 :
- スクリプト言語はこういうユルユルさがメリットなわけで
そんなにガチガチにしたいなら静的型付け言語使っていればいい。
- 77 :
- いや確かにバッドノウハウっぽい見た目だよw
まあ慣用句だからみんなわかってて大丈夫ってだけw
- 78 :
- >>71
どゆこと?古いバージョンに対して余分な引数を与えてしまったら
その余分な分が効くはずの意図した動きはしないだろ?
あと、そのデフォルト引数はそれは罠付きだろw
しかも可変長だから関数内に書けないこともクソ
引数やデフォルト値を調べるのにソースコードの中身を見る必要がある
pythonではドキュメンテーション文字列を用意しなくても
例えば help(f) とすれば f(a, b=1) と引数までは表示される
- 79 :
- >>78
> どゆこと?古いバージョンに対して余分な引数を与えてしまったら
> その余分な分が効くはずの意図した動きはしないだろ?
しなくていいんじゃないですか?
だってデフォルト引数ってそういうものでしょう?
- 80 :
- >>78
だから、その余分な分は付加的な機能であることが多いんじゃないかな
たとえば、ボタンの角を丸くするとか、ちょっと速度を微調整するとか
だから、古いバージョンがそれを無視してしまっても構わない
そういう場合が多いんだと思う
そういう時に、うまく行ってしまうわけ
- 81 :
- >>61
> methodA(arg1, arg2, arg3=None)で解決だが?
これって何も解決してないよな。
だって、古いブラウザは
methodA(arg1, arg2)
こうでしょ?
- 82 :
- >>79
違う
>>80
ブラウザのためだけにそんな糞仕様にしてしまったのなら
他のブラウザ関係ない言語と比べたら欠陥でしかない
- 83 :
- >>81
それは既に指摘済み
多分、そこは相手も納得した
- 84 :
- >>82
何が違うの?
デフォルト引数はあってもなくてもいいもの。
なければ以前と同じ動作をするだけ。
- 85 :
- >>82
> ブラウザのためだけにそんな糞仕様にしてしまったのなら
> 他のブラウザ関係ない言語と比べたら欠陥でしかない
だからJS以外はブラウザで動かないんだよ。
- 86 :
- 間違えた。>>78は「デフォルト値を関数内にしか書けない」ことがクソってこと
- 87 :
- >>85
じゃあブラウザの外では糞言語でしかないってことだよね
- 88 :
- >>86
そんなに関数と同じ行に書きたいのなら
セミコロンでつないで一行にすればいいじゃないですかw
- 89 :
- 確かに、人間が間違える危険性を無視してブラウザの都合を
通している感は否めない
ただ考えさせられるのは、本当はどっちが便利だったんだろうってこと
一見めちゃくちゃに見えるが、意外とそれでjsはうまく行っちゃったように見える
コンセンサスが得られた理論や、理想論と現実の違いというかw
- 90 :
- >>87
世の中HTMLとJavaScriptの時代に
ブラウザ外ってなにがあるんだ?
- 91 :
- いや、引数の数、つまり使い方が違うなら新しい関数を定義して
新しい関数を知ってる人だけが使えるようにすればよくね?
methodAにたいしてmethodA2を作ればいいだけ
可変長引数とか馬鹿すぎる解決法だよ
- 92 :
- >>91
一理あるが、一概にそう言えるのか?
名前が増えたら混乱するという面もあるぞ
- 93 :
- >>91
えーと、つまりファイルのopen()関数に
新しいロックオプションを追加するとき
別の関数を作れと?
- 94 :
- >>88
勘違いしてるようだが一行を表示するんじゃなくて
何行で書こうが関数名をhelpで参照すれば引数とデフォルト値が表示される
- 95 :
- >>93
古い環境を捨て切れないせいでデタラメな言語になったんだな
しかも今の言い分だと二度と改善されないようだ
定期的に糞仕様を切り捨てる他のスクリプトが圧倒的に優れてるわけだわ
- 96 :
- 案外デタラメがうまくはまっちゃうこともあるんよ
- 97 :
- >>91
Win32APIは末尾にEXをつけて対応してるね
ExExとか
- 98 :
- ただブラウザの仕組みもだいぶ成熟してきてるから、
ここらでチェックを厳格にするのもありかもな
strictが出てきてるように
次のバージョンっていつになるだろう
DartやCoffeeあたり使うのもありだね
- 99 :
- >>97
Win32 APIはC言語からでも使える仕様だからな。
どうしても互換性が取れないときはそうしてるけど
ほとんどは、関数の第一引数にバージョン番号を入れる。
・・・というのはちょっと違っていて、
バージョン番号というのは分かりやすく言っただけで
本当はsizeof(引数の構造体)を入れるんだが。
仕様拡張=引数の構造体が変わる
- 100read 1read
- 1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
【最速へ】LowLevelVirtualMachine【LLVM】 (608)
Cygwin + MinGW + GCC 相談室 Part 7 (343)
★初心者以前の質問に雪崩のように答えるスレ★ (909)
Google Maps API 質問箱 (345)
Java低速GUI Swing & JavaFX 10 (828)
マルチプラットフォーム プログラミング言語 haXe (135)
--log9.info------------------
今PC買おうと思ってる奴、今買うんだ今しかない!!5 (916)
CPU比較 (586)
【EPSON】Endeavor NP11★3 (687)
【静音】hp compaq nc6000 Part2【高性能】 (382)
おまいらのPCの買い替えサイクルってどれくらい? (280)
【DELL】Precisionシリーズ Part2【Workstation】 (342)
サイコムは高すぎる【宣伝うざいよ】 (440)
初心者のパソコンにありがちなこと (937)
【小型】AcerダイエットPC その10【残部隊報告ヨロ!】 (779)
パソコンっつーのは何年もつんじゃ? (522)
【終りなき】デスクトップVSノート【戦い】 (168)
ドスパラアンチを生暖かくヲチするスレ (233)
韓国サムスン、次はWindows 8でOS Xのドックを模倣 (313)
【DELL】Studio desktop / Studio Slim desktop 4 (267)
【EPSON】 Endeavor Pro7000 第2部 【新モデル】 (886)
ThinkPad Tシリーズ Part66 (312)
--log55.com------------------
【名取裕子】 ▲ マークスの山 △ 【萩原聖人】
【麦わら帽子】人間の証明【ストウハ】
戦国自衛隊 パート7
戦時中の国策映画や満洲映画について語るスレ
黒澤明 どん底
昔の邦画でオナペットにしたシーン
【小林聡美】尾道版・転校生3【尾美としのり】
【角川】汚れた英雄
-