スレ立てるまでもない質問はここで 149匹目
レス数が900を超えています。1000を超えると表示できなくなるよ。
質問する前にGoogleで検索しましょう。 http://www.google.com/
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。
ワッチョイは住人が離れスレが寂れます導入禁止。
前スレ
スレ立てるまでもない質問はここで 148匹目 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1495618637/ >>817
次前コンパイルという手順をコンピューター側で自動にしておけば、
スクリプト言語とかわらないんだがな。 TypeScriptでもライブコーディングできるのにな。 >>830
これって簡単なんですか?
オペレーター側のローカルPCのの環境セットアップが簡単ならやりたいです。 ユーザーにスクリプトをいじらせる必要がなくてダブルクリックで実行できればいいなら
配布はC#が一番楽だな。 スキル上げしてたら、極悪扱いされた。。。
ペット虐待ではあるが・・・。
>>832
ts-node とか deno
配布に関してはrubyと同じ問題抱えるから
部員のリテラシーも考慮して自分でトレードオフ見極めるしかない >>817
例えば、Ruby で、以下のコードを、script.rb に書く
そして、ダブルクリックで起動できるように、
script.bat ファイルに、ruby .\script.rb と書く。
または、script.vbs ファイルに、CreateObject("WScript.Shell").Run "ruby .\script.rb", 0
(各ファイルが、同じフォルダ内にある場合)
クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
他にも、FileUtils::DryRun も便利。
ファイル操作を実際にしないで、どういう処理が行われるかだけを確かめる。
PowerShell の、-WhatIf と同じ
他には、VSCode, Node.js もインストールしておけばよい >>817
PowerShell スクリプトも、同様に、bat, vbs から、ダブルクリックで起動できるだろ
クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる
例えば、script.vbs ファイルに、
CreateObject("WScript.Shell").Run "powershell ""gcb | % trim | scb""", 0
同様に、script.bat ファイルにも、
powershell .\script.ps1 と書けば、ダブルクリックで起動できるだろ >>838
色々ありがとうございます。
私が、batでrubyのシェバンをする理由は、ファイルが一つで済むようにという意図が大きいです。
そちらの観点だとなにかオススメはありますでしょうか。 operatorを大量に使う時、
+ A
+ B
+ C
と、、
A +
B +
C +
のどっちが普通でしょうか?A/B/Cは変数名が入るので結構長かったりもします。 >>841
画面内に配置した大量(数は状況次第で、最小120、最大でたぶん1000以上)のオブジェクトの座標から、
次に配置するオブジェクトの座標を決める必要があるので・・・ >>817
@echo off
@ruby -x "%~f0" 2>%~n0.err
@for %%i in ("%~n0.err") do if %%~zi == 0 (del /s /q "%~n0.err") >NUL
@exit /b
こういうのは、Perl 並みに、可読性が悪くて、意味がわからないw
こんな暗号みたいなコードを、誰も保守できないだろ
VBS, PowerShell でも、Ruby よりは可読性が悪いから、保守しづらい
やっぱり、Rubyで、script.rb に、コードを書いたら、
端末から、ruby script.rb で実行もできるし、
それをダブルクリックで起動したいのなら、
script.bat, script.vbs ファイルに、起動部分だけを書く方がよい
まさに、アプリのショートカットも、同じ仕組み。
アプリと起動部分を分けてる
それと名前欄に、811 と入れて投稿してください。
投稿者が、誰か分からないので >>843
.rbの拡張子をrubyに関連付けすればscript.rbのダブルクリックでスクリプト実行できるよ
-xオプション付きにしたければそういう関連付けも可能
そのバッチは引数で渡されたrubyのコードを含むファイルを-xオプション付きで実行して
標準エラーをファイルに書いてサイズが0なら削除するっていう内容だけど
rubyでエラーハンドリングしてログファイルに書き出せば基本的にいらないと思う >>842
処理の目的は理解できたんだけど
オペランドが1つの"+"オペレータってどういうものなの?
改行が式や文の区切りではなくて
A + B + C + と +A + B + C ?
いずれにしろ使ってる言語のスタイルガイドを参考にして決めればいいと思う
処理的にはループやコレクションで抽象化して
オペレータを大量に書かなくてもいい仕組みを考えたほうが良さげ >>842
オペレーターが大量か少量かによらず、改行が必要なとき、二項演算子の前と後ろどちらに改行を入れるのかをコーディングルールで定めるべき
可読性の面で演算子が先に来る方が俺は好きだ >>842
最小120ですべて個別の変数名ってありえないよ
そんなクソコード誰に保守させるつもり? 画面に似たようなオブジェクトが100個もあるなら普通は配列かstd::vectorなどを使うだろ。 みあんさんありがとうございます。
仰る通りコレクション化してしまえば、
2Dゲームの「衝突判定 → 判定結果によって移動させる」やり方がほぼそのまま使えそうです。
くだらない質問ですみませんでした。 昔「弾幕」って本買ったけど積読したまま押入れの肥やしにしてるのを思い出した ここ3日間くらいの「RubyとPythonどっち」っていうやりとりに便乗させてください。
だいぶ前ですが、質問者さんと同様に自分もスクリプト言語を習得したくなって、
ネット上で調べたり聞いたりしたことがありました。
「WindowsでRubyを使うと罠にハマることが多い。地雷原を歩くようなもの」
といったご意見が複数あり、Rubyは候補から外しました。
今回のやりとりでRubyを勧められてる方が多いので少し驚きました。
テキスト処理程度ならWindowsで利用するのも問題ないのでしょうか。
自分は結局、どのWindows PCにも入っていてるという利点に惹かれてPowerShellを
使うようになったのですが、入門書/入門サイトで少しだけ触った好感度でいうと
Ruby>Python≧PowerShell でした。
すぐにPowerShellから乗り換えようとまでは思わないのですが、今後の参考のために
教えてください。 これだけ長文で質問がかかれてなくて句点付きか…
なかなかの才能の持ち主だと思った >>853
すみません、回りくどかったです。質問は下記のとおりです。
テキスト処理程度ならWindowsで利用するのも問題ないのでしょうか。 >>851
すまんが元ネタわからない
>>852
Unix系に比べると
- 最初の環境セットアップのハードルがやや高い
- 文字コードでつまづく可能性あり(これはPythonでも同じ)
- RubyのWindowsユーザーが少ないので情報量が少ない
10年近く前に数年間CygwinでRuby使ってたけどRubyが直接の原因で困った記憶はない
文字コード関連の問題と使いたいUnixツールが使えないってのはよくあった
ってことで俺は全く問題ないと思うがそこは自分で試して見るほかないと思う 皆さんの意見を総合するとRubyが一番良さげですね。
加えて、C#&EXE化も検討します。
ありがとうございました。 正直テキスト処理程度で最強を争ってもしょうがない
テキスト処理はソフトウェア開発に置いて
一分野でしか無い >>855
詳しくありがとうございます。
過度に心配することはないみたいですね。
機会があれば試してみようと思います。 >>857
Perlは私には難しかったです・・・。
PowerShellをやるまえにPerlの入門書を読んで、
簡単なスクリプトを書いて使うことはできたのですが
1〜2年プログラミングから離れたあと書こうとするとすっかり忘れてしまって
3回入門しなおして、あきらめました。
VBAやPowerShellでもある程度忘れるのですが
Perlのほうが記号のたぐいが多くて、暗記力のない私にとっては忘却度が深刻でした。 テキスト処理でこまったらまたperl初めるといいよ
等分はrubyで >>852
>>813-814
に書いてある。
Windows でも、CSV・テキスト処理程度なら問題ない
1つ前のバージョンを使えばよい。
Mac/Linux ならRuby 2.6 で、WindowsならRuby2.5
Windowsでは、irb, pry のようなREPL は、日本語でバグるから、ダメ!
漏れは、ユーザー環境変数、RUBYOPT に、--encoding=UTF-8 を設定しているから、irb は使えない。
Windows とのやり取りを、UTF-8だけに限定しているから、CP932 では動かない
代わりに、VSCode で、Code Runner という拡張機能で、
右クリックメニューから、選択したコードを実行する
他には、1-liner で、クォーテーションの解釈でバグるから、%Q( ) で、囲む必要がある。
-p オプションにバグがあるから、代わりに、-n を使う
Linux では、
ls | ruby -ne 'puts $_.center(20, "-")'
Windows では、
ls -name | ruby -ne 'puts $_.center(20, %Q("-"))' Perl は、暗号みたいで可読性が低い。
PowerShell, VBS は、あまり複雑なものは無理
結局、CSV・テキスト処理は、Ruby になる 最初Perlを覚えようとして数分でギブアップしてRubyにしたな
必要があればPythonやLua、JScriptも書くが基本Rubyだわ。コード効率が全然違う
そういやRubyってWindowsのコマンドライン引数をUnicodeで取れるようになったのか?
ちょっと前のバージョンだとダメだった記憶があるが Windowsでは、irb, pry のようなREPL は、日本語でバグるから、ダメ!
漏れはWindowsで、ユーザー環境変数、RUBYOPT に、--encoding=UTF-8 を設定しているから、
irb, pry のような、CP932 でやり取りする、REPL は使えない。
Windows とのやり取りを、UTF-8だけに限定しているから、CP932 では動かない
VSCode で作って、PowerShell から実行する
「ruby オプション script.rb 引数」の形
それをダブルクリックで起動したいのなら、
script.bat, script.vbs ファイルに、起動部分だけを書く
.rb の拡張子を、ダブルクリックに紐づけると、不注意で起動されてしまうので危険! >>868
>>817のshebangが最強ってことじゃない? >>866
いやいやRubyくんは知識が中途半端だから
問題の本質がわかってないだけだよw
話は単純で、RubyやPerlなどUnixやLinuxに最適化されてるものは
ファイルの文字コードにはUTF-8を使うようにしましょうと言うだけの話。
(ファイルの文字コードは元からUnicodeなので問題は起きない)
Windowsもコマンドプロンプトはデフォルトこそ(日本語設定では)ShiftJISだが
UTF-8対応してるし、WSLはUTF-8が基本。
スクリプトファイルをUTF-8で記述するようにし(メモ帳ですらUTF-8対応してる)、
そこから読み込むデータファイルをUTF-8にすることで、LinuxでもWindowsでも
文字コードの問題は一切発生しなくなる。
UTF-8を使うだけで文字コードの問題はすべて解決するというわけ
もしスクリプトファイルからShiftJISのファイルを扱いたければ、
スクリプト外のiconvやnkfを使って変換すればよい。もうUTF-8に統一しよう。 2.5に--encoding=UTF-8を付けるとARGVはUnicode対応になるようだ
>>870
昔のWindows版RubyはARGVがCP932決め打ちだったと記憶している
そのためCP932に含まれない文字列を含む引数の扱いに難があった _ismbsleadや_ismbstrailって、Shift-JISのような2バイト文字のときはわかるけど、
UTF-8のような3バイト以上の文字のときは、どのような動作になるのでしょうか。
それとも、2バイト文字専用の関数ですか? javascriptのデータ型の質問です
var num = [10,20,30,];
var num2 =num;
num[1] =50;
console.log(num2);//結果10,50,30
配列は参照型なのでこの結果には納得できますが
var num = [10,20,30,];
var num2 =num;
num =[40,50,60];
console.log(num2);//結果10,20,30
console.log(num)//結果40,50,60
この場合なぜnum2の値は変わらないのですか?
配列を全て入れ替えると、num2に入れたnumとは別物(参照先が別)扱いになるのですか? num = [40,50,60];
は
num[0] = 40; num[1] = 50; num[2] = 60;
ではなくて
num = new Array(40,50,60);
だから
添字のブラケットとブラケット構文は別物です JSの[N,M]は配列リテラルなので、それそのものが配列として機能したと思う。 >>873
num2 = num;
は箱の場所(住所みたいなもの)を num と同じにしろ、という意味。
だから、num[1] =50; とすると、num2[1] も 50 になる。
一方、
num =[40,50,60];
とすると、「今までの num の場所に右辺をコピーして上書きしろ」
という「意味ではなく(!!)」、
「num という変数の『指している』対象を右辺の置いてある場所(先頭)に変えろ」
という意味。だから、num2には全く影響を与えず、num2は依然として
昔の箱の場所を指し続けている。 皆さんいろいろ教えていただいてありがとうございました。
近いうちにRubyを導入してみようと思います。 >>871
それはコマンドプロンプトの問題だったんじゃないかなぁ
Cygwinだと1.9時代でも問題なかったよ
>>868
>Windowsでは、irb, pry のようなREPL は、日本語でバグるから、ダメ!
「バグる」で思考停止せずに問題を切り分けよう
https://github.com/pry/pry/wiki/Windows-support
>.rb の拡張子を、ダブルクリックに紐づけると、不注意で起動されてしまうので危険!
これはその通りだけど、.batでも.vbsでも同じようなものじゃないの?
セキュリティも考えるなら署名付きPowerShellとかのほうが安全ではあるよね >>872
どういう動作になるかはわからないけど
MBCS用の関数だからUnicodeには対応してないんじゃない?
VC系のスレで聞いたほうがいいかも >>874-876
num40,50,60は別の配列で初めnumとは参照先が違うという認識でいんですね
ありがとうございました。 ココまでの流れを見ると、PythonはAIやらない限りRubyに劣るという認識でよろしいですか?
文法やライブラリで勝るところって何か無いのでしょうか? >>881
全然認識が違う
Pythonが劣っている訳ではなくて、Python使えますというと数学力や機械学習を期待されてしまい、それがない人は辛くなる
なおPythonが文法で勝るところは余りないように思うが、別に負けているとも感じない
Rubyのメソッドチェーンは素直に羨ましい
Pythonのimport/from importの仕様やジェネレータの仕様はなんだかなぁ状態
Rubyはメソッド周りがわけわかめ、def、proc、porc.new、->はなんとかならんかったのか
強力なライブラリはRubyよりもPythonのが多い
pandasやnumpyがめっちゃ強力、matplotlib,seaborn,plotlyでグラフもOK
JupyterがあるのもPythonの利点だったけど、最近はRubyも使える
画像処理は外部ライブラリを使うだけなので似たり寄ったり
C言語とのバインドはRubyでswig使うよりはPythonのが簡単に思う
Python2の頃は日本語処理が酷かったが、pytjon3になってからはそうでもない
バージョンアップごとの対応はどっちも辛かった
Ruby 1.8 -> 1.9 -> 2.0で都度キレた
Pythonは2.7から3系になったときに同じくキレた
4系でも多分キレると思う >>881
Rubyの標準クラスライブラリのリッチさは上位組だと思うけど
素の状態で勝負したらPythonに勝ち目はないね Python は東大数学科・大学院など、数学・統計学などの重要度が高いから、あまりプログラミングと関係ない。
プログラマーのキャリアパス上からは、仕事が得られない
学歴・大学院などの要素が大きい。
MBA など、文系の修士号から来る人も多い
プログラミングは、手を動かすものだけど、
低学歴プログラマーが頑張っても、なんともならない領域
YouTube で、KENTA が言ってる通り、
初心者が1年勉強して、仕事を取れることがない。
周りが高学歴ばっかりだから
一方、Ruby は、Web 系サーバー側に限定されているから、プログラマーのキャリアパス上にある。
Ruby → JavaScript, Go, Elixir, Kotlin。
サーバー側の正統派のキャリアパス
最先端の自社サービス、GitHub, Airbnb, Kickstarter、
Cookpad、食べログ、Gunosy など
Rubyは、Java みたいな、5大SIer・多重下請け構造・階層ピラミッド・土方系とは異なる。
階層に入ると、1社経由する度に、3割抜かれる(システムの請負料金・保証料金) Rubyは作者が日本人だけあって言語が一時しのぎの感情論で作られていて論理性が全く感じられず
使うだけで洗脳されて馬鹿になるからやめた方がいい
pythonはその反対 ↑などという論理性が全く感じられない感情論を吐くのが
洗脳されて馬鹿になってる証拠 Rubyは作者が日本人だけあって言語が一時しのぎの感情論で作られていて論理性が全く感じられない。
ちょっと使ってみただけでも、そんな感じになってるのが感覚的にわかるだろ
その雰囲気を肌で感じることが出来ないやつは、論理性がなく感情論で話をしてる >>887
Rubyの論理性の無さの例を教えて下さい。 PC用のソフトウェアが、スマホアプリのように気軽に課金される日は来ると思う?
PCから割れの被害がなくなる日は来ると思う? >>890
バカじゃねえのか
有料課金質問サイトで質問しろよ
おめーはネタと情報はタダだと思ってんだろ
だからそれでいいんだよ 独自URLを定義したいんだけど
ただ自分のアプリ(localhost動作)で使うだけのURLの場合、スキームはどうすべき?
dokuzi://my.app/
URLを使いたいのは、ただそうするのが標準だからかなと思ったから。
外部アプリから自分のアプリが管理してるデータへの参照を、
どんな文字列でもよかったんだけど、
どうせならURLっぽくやろうかなと思った。 >>893
Custom URL Scheme, Deep Link, Universal Link, iOS/Androidとかのキーワードでググる カスタムURIスキームの利点はユーザーがURLを指定できるところに
何でも起動できちゃうURLを仕込めるというところにあるから
自アプリだけで完結しているなら利点はないしそこまで好き勝手に使っていいという気はしないな Docker, Ruby on Rails(REST、リソースベースのルーティング)などを使えば? Rubyはメソッドチェーンのおかげで最高の言語だと感じますが、間違いでしょうか?
grep、join、gsub、gsubってつながっていく様子が、まるで
ファイヤー、アイスストーム、ダイアキュート、ブレインダムド、ばよえ〜ん、
って印象です。 関数繋げるだけならlispと何が違うんだ?
ただし、個人の主観は絶対的に正しいので、オメーが最高の言語だと感じてるならどうぞお好きにとしか言いようがない
つまりは、個人の主観に間違いなし、だ
コイツの脳内で渦巻いてる主観には間違いは無いし間違いがあろうとなかろうとそれには気付けない
だから主観そのものは絶対的に正しい
よかったネ! たぶん人違い
いろんなところに出没するrubyで荒すやつがいるんだ フォームから入力した値をDBに登録する際に、入力された値が決められた規則に従っているか確認したいので、
プログラムでチェックするべき範囲とDBのCHECK制約で行う範囲の明確な線引きとかガイドラインがあれば教えてください。 >>902
そんな雲をつかむような質問ではまともな回答しようがないので質問のガイドラインを勉強してきてください まず、出来る限り、プログラムでチェックする。
ここでチェックできれば、ネット回線へ送られないから、すごく良い
DB 書き込みでは、すべてをチェックする。
ブラウザで、送られるデータをチートする人もいるので、必ずDB では、すべてチェックする!
基本、ブラウザから送られるデータを信用してはいけない!
チートしたり、伝送ミスで、データが間違っている事が多いから CHECK制約は使わない
せいぜい保険の最終防壁
いろいろ理由はあるがDBが返す「CHECK制約xxに違反しました」といったエラー情報をまともなエラーメッセージに変換するのがまず厄介 >>905
最終防壁なら、バグでもない限りでないんだから、そんなエラーをまともなエラーメッセージに修正する必要ないじゃん
スタックトレースをわかりやすい日本語に直さなきゃいけない。みたいな
アホなことをお前は言ってるぞ。 クライアント側でチートしたり、伝送エラーがある
ドラクエでは、よくエラーが起こっているから、
インターネットから来るデータは、絶対に信用してはいけない!
途中のルーターで、伝送エラーを見つけても、再送せず、そのまま送ってくるし クライアント側チェックとサーバー側チェックの話じゃないぞ >>902
明確な線引きやガイドラインは無い!!
CHECK制約で守れる整合性の重要度、不整合発生時の影響度、DBにアクセスするプログラムの数、
採用してる設計手法、維持管理・変更時の手間、パフォーマンスペナルティ、プログラマーのレベル等々
置かれた状況とトレードオフを判断して設計者が決めること
プログラム側のみでチェックする場合もあれば
DB側のみでチェックしてプログラム側でユーザーフレンドリーなエラーにする場合もあるし
両方でチェックしてDB側エラーは集約ハンドラで汎用エラーにする場合もある
プログラムーはプログラムだけで保証したがる
DB屋はプログラマーを信用してないからCHECK制約をできるだけ使いたがる そりゃ条件式の複雑度数が20を超えたらプログラムで対処、だろ
複雑度数がなんなのかは知らない マルチエージェントシミュレーションをしようとしているのですが
シミュレーションを管理するクラスと各エージェントクラスはどのような関係にすべきでしょうか
各エージェントを管理クラスに保持すると一括してアップデートできて便利ですが、エージェントが他のエージェントの情報にアクセスできません 開発プロジェクトの谷間にて、業務効率化スクリプトの機能追加や改善を行っています。
VBA、VBS、Ruby、Perl等いろんな言語のスクリプトが混在していているのですが、皆はこれが厄介だと言います。
しかし、チームで一番若い新人が一番四苦八苦しているのは正規表現の解読であり、私が質問を受けるのももっぱら正規表現関連ばかりです。
結局、業務効率化スクリプトなんてのは、正規表現がわかればその都度、「早く書ける」「操作性が良いのが書ける」を考えて言語を選べばよいだけという認識で良いですかね? 正規表現なんて、少し難しい漢字を知ってる程度のレベル
知らなきゃ困るが、知っていたからっていい文章(コード)が書けるわけじゃない >>906
早とちりだぞ
最終防壁として使う分にはいいが、CHECK制約単体でエラーチェックを賄うのはやめとけ、その理由の第一はメッセージのハンドリングがしにくから、という文意だ >>914
「業務効率化スクリプト」って例えばどういう処理してるの? >>917
他にも色々ありますが、以下のようなものが代表的です。
・プロジェクト新規参入者のPCキッティング
・適切な対象の適切なタイミングでのSVN更新補助
・CUnitでのアサートチェックに適さないテスト結果ログの比較自動化
・静的解析ツールでは出来ない開発Pjソース上の不適切箇所の検出 >>915
知ってたらいいものが書けるわけじゃないけど、知らないと全く以てスクリプトが書けないのだから、覚える以外に無いでしょう?
十分条件ではなく必要条件だということなだけなんですから。 こういうサイト使って正規表現のテスト実行環境を整備すると理解が深まるかもしれない
URLくっそ長くなるけど
https://fatiherikli.github.io/fil >>918
おお、想像してたのと全然違った
基本的には読みやすさとメンテのしやすさを考えてベースとなる標準言語を決めておいて
処理内容の特性によって違う言語を選択するようなゆるいルールを作っとくほうがおすすめ
自分はチームメンバー10人いれば下から3番目くらいのメンバーの技術レベルに寄せる
2人くらいできないやつがいても残りでカバーできるから
あと正規表現はもともと読みにくくなりやすいから部品に分解してコメント書いたり
多少遅くても読みやすい表現を選んだり簡単なテストコードを残すとかドキュメント生成とかする
言語によっては正規表現は一続きで書かないとダメなやつもあるからその辺も選択基準になる >>913
シミュレーションはわからないけど
エージェントが必要としてる他のエージェントへの参照を管理クラスが渡してやればいいんじゃないの? >>921
>おお、想像してたのと全然違った
どんなのを想像されていたのでしょうか?
>ベースとなる標準言語を決めておいて
標準とするならRubyでしょうね。Perlについては昔Perl大好きくんがいたから残っているだけで、新規に書く理由がないですからね。
VBSはInputBoxが標準で使えることと、Win環境である限りどこに持っていっても動くという利点以外に利点が無いので、こいつもRuby化したいですね。
VBAだけは、C#アドイン化が大変なのと、外部化するメリットが無いものが多いのでそのままメンテかな…。 >>913
>エージェントが、他のエージェントの情報にアクセスできません
たぶん、Chef, Kubernetes などでも、
エージェント同士が直接アクセスする事は、認めていないと思う
そういうプログラミングは、難しすぎて出来ない。
多くのエージェント間で、整合性が取れない
必ず、エージェントはマネージャーに頼んで、マネージャーが仕切るはず!
デザインパターンで言うと、
直接やり取りのObserver(発行/購読)ではなく、
マネージャー経由のMediator(管制塔) >>914
テキスト処理なら、総合的に考えて、Ruby が良い!
Rubyでは、Perl 由来の暗号のような変数、$;, $< なども、使わないようにしていく方向
正規表現は、入れ子構造のあるものに対して、使ってはいけない!
例えば、URL の解析でも数千行あるから、複雑すぎて、一企業じゃ作れない
<div 1>
<div><div></div 4></div>
<div></div>
</div 8>
例えばこれを、div で最短マッチしても、div 1・4が対応してしまう。
これらすべてを正しく対応させるのは、至難の業
他にも、CSV 処理を、CSV Module を使わずに、正規表現でやってる人も、ダメ!
CSV, JSON, HTML など、入れ子構造を持つものは、パーサーで処理しないといけない!
正規表現では、数千行も必要だから、無理! Perlが廃れた理由が分かった
普通の人間には正規表現が難し過ぎるんだ
その部分がモロに出てるperlは忌避される 廃れた理由はオブジェクト指向じゃないから
正確に言えば、オブジェクト指向をすることもできるし、
そのためのモジュールもあるが、どれもスタンダードにはならなかった。
モジュールを使わずにオブジェクト指向もできるがめんどくさい。
基本的な部分で書き方が色々ありすぎて統一できなかった。 Hooksのようにオブジェクト指向から関数に時代は流れているのだよ。 レス数が900を超えています。1000を超えると表示できなくなるよ。