問題タブ [dynamic-languages]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
842 参照

functional-programming - Clojureプロキシは常にsuper.method()を呼び出しますか?

Clojureプロキシを使用している間、プロキシにfns渡されると既存のメソッドをオーバーライドする必要がありますか、それともそれらは?と組み合わせて呼び出されsuper.method()ますか?

次のコードでは、RequestHandler.get()がプロキシとともに呼び出されますget []

コンパイル済み/継承バージョンでも同じことが起こります。

トレースは、プロキシが呼び出されてから、(デフォルトで)例外をスローするsuper.getを示しています。

Clojureプロキシの実際の動作についていくつかの単語を見つけようとしました。誰かがこの助けを与えることができますか?

0 投票する
8 に答える
2293 参照

php - PHP: PHP は緩い型/動的言語なのでコード チェッカー?

サイズが適度に大きくなり始めている小さな PHP Web ベースのアプリケーションがあります。

PHP緩い/弱い型付けの動的言語であるため、PHP コード ベースの管理に関心を持ち始めています。

他の人は、ゆるい/弱い型付けの動的言語に基づいてコードをどのように管理していますか?

コードベースでチェックを実行して、以下のようなものを識別することができる PHP 用のプリパーサーはありますか?

更新

上記の例は最良の例ではないかもしれませんが、本質的に伝えようとしているのは、動的に弱い型付けされた言語の特定のエラーは、コードが本番環境で RUN TIME に実行されたときにのみ見つかるということです。一方、これらの問題のいくつかは、通常、COMPILE 時に強く型付けされた静的言語で発見されます。

非常識な数の単体テストを作成することなく、コードを本番環境に移行する前に、PHP でこれらの非アルゴリズム タイプのエラーを見つけるにはどうすればよいでしょうか?

そのため、本番環境に移行する前に PHP コードを実行できる場所はありますか? このプリプロセッサはコードを解析して、定義済みの変数のみを使用していることを確認します。非アルゴリズムタイプの使用。たとえば、文字列に対して代数を実行しようとしないなど。

更新 2

ランタイムではなく「コンパイル」タイプでPHPのこれらのタイプの非アルゴリズムエラーを特定する方法を探しているため、この質問にはまだ回答がないことに注意してください。

0 投票する
7 に答える
362 参照

python - 動的言語を始めるのに最も好まれる言語はどれですか

JAVA で長い間働いた後、気分転換に他の言語も学びたいと思っています。今回は、動的言語の 1 つを学び、読むことに時間を費やしたいと思います。これは、動的言語によって提供されるほとんどの機能と、おそらく楽しい構文をカバーする最も適切なものであり、ほとんどの動的言語で使用される構文に近いものです。

BR、ケシャブ

0 投票する
4 に答える
378 参照

java - なぜJavaナンバーワン?

なぜJavaが最も使用されているプログラミング言語なのですか?なぜJavaのプログラマーの仕事が最も多いのですか?

ここで私を誤解しないでください?私はJavaが好きで、Javaで作業していますか?私はそれに反対するものは何もありませんか?

また、関数型プログラミングを備えたClojureのように、OOPボックスから他のことを学ぼうとしています。

しかし、私は疑問に思っています、なぜJavaが一番なのですか?つまり、動的言語(Ruby、Python、Php、JavaScript)の人々は、静的型言語(Java、C / C ++、C#)の人々は、生産性にうらやましいと言っていますか?彼らは彼らが仕事をより速く終わらせると言います...

では、動的言語の生産性が高いとしたら、どうしてJavaがその地位に立つのでしょうか。

0 投票する
3 に答える
622 参照

ironpython - IronRubyとIronPythonの主張

マイクロソフトでの動的言語のサポートが不足していると認識しているため、一部の主要な開発者が動的言語チームを離れるというニュースを誰もがすでに聞いていると思います。

私はPythonが大好きで、頻繁に使用しようとしています。ですから、拡張として、私はIronPythonに関心があり、それが進化し続けることを望んでいます。多くの人がIronRubyについて同じように感じていると思います。しかし、私がまだ完全に理解できないことは、なぜ.NET開発者がIronRubyとIronPythonを気にする必要があるのか​​ということです。

DLRとIron言語のサポートと開発を継続するように依頼する手紙をマイクロソフトに書くとしたら、どのような議論を使用しますか?

まだ作成されていないコミュニティでサポートされているバージョンのIronPythonまたはIronRubyに貢献するために開発者の時間を費やすように雇用主を説得する場合、ビジネス価値の観点からどのように合理化しますか?

これが私が思いつくことができるいくつかの興味深いユースケースですが、マネージャーが上記の質問を熟考している場合、私はおそらくそれら説得力のあるものとは思わないでしょう:

  1. 大規模なアプリケーションに埋め込まれたスクリプト言語:有効なユースケースですが、ほとんどの開発者にとってはニッチなシナリオのようです。
  2. テストとテストの自動化:特にRubyには、優れたテストツールとライブラリが豊富に用意されており、IronRubyを介して.NETで使用できるようにすると便利です。しかし、 SpecFlowSeleniumのWebDriverなど、同等の.NETライブラリがそのギャップを埋めているようです。
  3. Microsoftスタックでの既存のフレームワークの実行: IronRubyがRuby on RailsをIISおよびMSSQLを使用するWindowsで実行できるようにする場合、これにより、Microsoftスタックで標準化されたショップがRoRを採用するようになります。

誰かがもっと良いことを考えることができますか?

0 投票する
1 に答える
528 参照

ruby - Railsで実行されているRubyクラスにモジュールが含まれているのはいつですか?

特定のモジュールを含むすべてのクラスを教えてくれるメソッドを書こうとしています。このように見えます-

ここで、「Rateable」は、いくつかのモデルに含まれている私のモジュールです。

私が見つけたのは、Railsコンソールを起動した後、またはサーバーを実行した直後にこのメソッドを呼び出すと、このメソッドが[]を返すことです。しかし、消費モデルの1つのインスタンスを最初にインスタンス化すると、そのモデルが結果に返されます。

では、モジュールはいつ含まれるのでしょうか?彼のアプリが起動したときよりも、プロセスの後半で推測しています。プロセスの早い段階でこの方法でこの情報を取得できない場合、これを達成する方法はありますか?

0 投票する
1 に答える
61 参照

language-agnostic - 「method_missing」タイプの機能の正当な用途は何ですか?

Ruby には「method_missing」、Tcl には「unknown」があり、高度に動的な言語のほとんどには、未定義のメソッドが呼び出されたときに呼び出される同等の構造があります。そのような機能を追加することは完全に理にかなっています。何かが起こる必要があり、プログラマーが何かを再定義することを許可しない理由はありません。追加するのはかなり簡単で、きちんとした「自分の言語で何ができるかを確認する」デモが作成されます。

この動作は、実際のアプリケーション コードのどこで実際に役立つのでしょうか?

私が考えることができるのは次のとおりです。

  • スタックをアンワインドせずにデバッガーを起動するのに役立つかもしれません (ただし、それが「通常のアプリケーション コード」としてカウントされるかどうかはわかりませんが、ほとんどの場合、例外は同様に機能します)。
  • 「魔法の」プロキシオブジェクトの場合..つまり、インターフェースを変更せずに最初の使用時に作成またはロードされる遅延オブジェクト(ただし、これは他の方法で行うのは非常に簡単に思えます)。

他に正当な用途はありますか?

明確化: 私は、「引用符を入力しなくても済むようにするための構文糖衣」が正当な使用法であるとは考えていません。他の人はそうかもしれませんが、私はそうではありません。

0 投票する
3 に答える
247 参照

java - 静的言語(java / c#)からPythonのような動的言語に移行する人にとっての一番の落とし穴

静的言語(java / c#)からPythonのような動的言語に移行する人にとっての一番の落とし穴は何ですか?

方法はすばらしいようですが、メソッドの名前を変更したり、パラメーターを追加/削除したりするのは非常に危険です。

各メソッドのテストを作成する唯一のソリューションはありますか?

0 投票する
2 に答える
654 参照

optimization - スティーブ・エッゲが「動的言語の逆襲」で言及した(当時の)未発表の最適化は何でしたか?

スティーブ・エッゲの動的言語ストライクバックのプレゼンテーションの転写を読んでいたとき、彼がトレースツリーについて話し始めたときにこのコメントに気づきました。

私はあなたに正直に言うと、私は実際にこの話に入ることができなかった2つの最適化を持っていますが、それらはまだ公開されていないため、これよりもさらにクールです。そして、私は彼らが出版する前に猫を袋から出させたくありませんでした。つまり、これは実際には氷山の一角にすぎません。

彼が言及していた最適化は何ですか?

アップデート

数日前、私は記事へのコメントでこの質問をしました。ただし、コメントのモデレートは(正当な理由 )オンになっているため、まだ表示されていません。

アップデート

私が最初に著者に連絡を取ろうとしてから数週間が経ちました。他の誰かが彼に連絡する別の方法を知っていますか?

0 投票する
1 に答える
316 参照

c# - Expression.Add の op_Addition OR 実装メソッドの発見

Antlr と式ツリーを使用して言語を書いています。

ツリー パーサーが加算を生成するときに使用する標準のファクトリ メソッドを定義しました。これは、組み込みの整数型に対して非常にうまく機能します。次に、より一般的な型に進みます。

現時点では信じられないほどナイーブで、これを行うだけです (進行中の TDD コードは、しばしばナイーブに見えます!?):

WherePromote7_2_6_2は、C# 仕様 7.2.6.2 で定められた統合昇格の規則に従う Convert 式を生成します (言語は C# に似ていますが、JScript とクロスオーバーし、他のまったく新しいキーワードがあります)。

当然のことながら、文字列の追加のテストに移りました。つまり"a" + "b";、次のエラーが表示されます。

System.InvalidOperationException: The binary operator Add is not defined for the types 'System.String' and 'System.String'.

十分に公平です-私はSystem.Stringを反映しており、演算子が実際に定義されていないことを十分に確認しています。次のようなテスト メソッドで式ツリーを生成します。

Add BinaryExpression が実際に作成されているが、実装メソッドがいずれかのメソッドに設定されていることを示していstring.Concatます。

場合によっては、このようなことを検討する必要があることは承知していましたが、このように足し算を定義する型が他にいくつあるでしょうか? それはただstringですか?

それは C# コンパイラに埋め込まれたルールですか?それとも、他の型でそのようなメソッドを自動検出するために使用できるある種の検出可能なメタ データはありますか?

前もって感謝します!