タグ付けされた質問 「comparison」

データ比較とそれを達成するための効率的な方法に関する質問。

5
これらの比較で、SwiftはどのようにObjective-Cよりもずっと速くできますか?
Apple はWWDC14で新しいプログラミング言語Swiftを発売しました。プレゼンテーションでは、Objective-CとPythonのパフォーマンスを比較しました。以下は、これらのスライドの1つで、複雑なオブジェクトの並べ替えを実行するこれら3つの言語の比較の写真です。 RC4暗号化アルゴリズムを使用したパフォーマンス比較について、さらに驚くべきグラフがありました。 明らかにこれはマーケティングの話であり、彼らはこれがそれぞれにどのように実装されているかについては詳しく説明しませんでした。私は私が疑問に思うままにします: 新しいプログラミング言語はどのように高速化できますか? Objective-Cの結果は不良なコンパイラが原因ですか、Objective-CではSwiftよりも効率が悪いものがありますか? 40%のパフォーマンス向上をどのように説明しますか?ガベージコレクション/自動化された参照制御は、追加のオーバーヘッドを生成する可能性があることを理解していますが、これだけですか?

7
動的対静的型付け言語の研究[終了]
静的に型付けされた言語と動的に型付けされた言語の有効性に関する研究はありますか? 特に: プログラマーの生産性の測定 不良率 単体テストが採用されているかどうかの影響も含まれます。 私はどちらの側の長所についても多くの議論を見てきましたが、だれかがそれについて研究したかどうか疑問に思っています。

24
プログラマーがMac OS Xを使用または推奨するのはなぜですか?[閉まっている]
私はしばらくの間MacとWindowsの両方で働いてきました。しかし、プログラマーがWindowsやLinuxよりもMac OS Xを熱心に選択する理由を理解するのにまだ苦労していますか? WindowsとLinuxを好むプログラマーがいることは知っていますが、Mac OS Xはプログラマーに最も適していると考えているため、Mac OS Xのみを使用するプログラマーに質問しています。 Mac OS Xは美しいUIを持ち、nixベースであると主張する人もいるかもしれませんが、Linuxはそれを行うことができます。Windowsはnixベースではありませんが、Cocoa / Objective-Cを除くすべてのプラットフォームまたは言語で開発できます。 Mac OS Xでのみ利用可能なアプリケーションですか?それは本当に価値がありますか? iPhoneアプリの開発ですか? Windowsを2年ごとにアップグレードする必要があるためですか(下位互換性は低い)。 マルチメディア/エンターテインメント業界で働いている人々がMac OS Xを使用する理由を理解しています。しかし、Mac OS XがWindowsに比べて強いメリットがあるかはわかりません。Macで毎日開発し、他の何よりもMacを好む場合、MacがWindows / Linuxより優れているというメリットを教えてください。Macでできることは、Windows / Linuxでは同じレベルでは簡単にできないことでしょうか? ここで別のMac対Windowsをしようとはしていません。MacではできるがWindowsではできないことを同じレベルで簡単に見つけようとしましたが、できませんでした。だから、私はいくつかの助けを求めています。

3
F#とScalaの最大の違いは何ですか?
F#とScalaはどちらも関数型プログラミング言語であり、開発者が不変のデータ型のみを使用することを強制しません。どちらもオブジェクトをサポートしており、他の言語で記述されたライブラリを使用して、仮想マシンで実行できます。どちらの言語もMLに基づいているようです。 F#は.NETとJavaプラットフォーム用のScala向けに設計されているという事実にもかかわらず、F#とScalaの最大の違いは何ですか?

7
ASP.NET MVCでできることとRuby on Railsでできないことは何ですか?[閉まっている]
ASP.NET MVCとRailsの使用領域は似ており、同じアーキテクチャを中心に構築されています。どちらのフレームワークも比較的新しく、オープンソースです。 それで、私が知りたいRailsプログラマーとして、ASP.NET MVCができることとRuby on Railsができないこと、そしてその逆のことを知りたいですか?


7
ほとんどの主流言語が、3者間ブール比較の「x <y <z」構文をサポートしないのはなぜですか?
2つの数値(または他の適切に配列されたエンティティ)を比較したい場合は、で比較しx &lt; yます。それらのうち3つを比較したい場合は、高校の代数の生徒が試してみることをお勧めしx &lt; y &lt; zます。私のプログラマーは、「いいえ、それは無効です、あなたはしなければなりませんx &lt; y &amp;&amp; y &lt; z」と答えます。 私が出会ったほとんどの言語はこの構文をサポートしていないようです。これは数学でどれほど一般的であるかを考えると奇妙です。Pythonは注目に値する例外です。JavaScript は例外のように見えますが、実際には、演算子の優先順位と暗黙の変換の単なる残念な副産物です。node.jsでは、と1 &lt; 3 &lt; 2評価されtrueます(1 &lt; 3) &lt; 2 === true &lt; 2 === 1 &lt; 2。 だから、私の質問はこれです:なぜx &lt; y &lt; z期待されるセマンティクスで、プログラミング言語で一般的に利用できないのですか?

11
Java vs. C#-生産性の観点[終了]
Javaでの長年の経験とC#および.NETでの長年の経験がある場合、これら2つの環境間のソフトウェア開発の生産性の違いについての意見を評価します。顧客の1人が、既存のソフトウェアソリューションの置き換えを検討しています。交換には約が必要です。10〜15人年の作業、Javaまたは.NETの選択は、それらの間の生産性の違いに基づいて、必要な投資と市場投入までの時間に大きく影響する可能性があります。 JavaとC#/。NETのソフトウェア開発の生産性の違いを示す情報を提供していただけますか?次のように回答を受け取りたいと思います。 私の経験は、JavaでのX年の経験とC#/。NETでのX年の経験に基づいています。次のことを考慮すると、JavaはC#.NETまたはC#/。NETよりもX%生産的です。


18
言語Xが得意なのはいつですか?
これは、彼女との会話に戻ります。プログラミング言語(C ++)で自分を良いと思うほど十分に感じていないことを彼女に伝えようとしました。彼女はそれから私に尋ねました、「さて、あなたはいつ自分を十分に良いと思いますか?」 それは興味深い質問です。私は彼女に何を伝えるべきか分からなかった。だから私はあなたに尋ねています。 プログラミング言語、フレームワークなどの場合、いつ座ってあなたがポイントに到達するか、あなたがやったことを見て、「ねえ、私は実際にこれでかなり良いです」と言いますか?「うん、私はXが得意です」と正直に言うことができるように、「良い」をどのように定義しますか。 さらに、他の人ができることを比較することで、これらの結論に達しますか? 追加情報 あなたがこの分野の専門家になるまでに1万時間かかる標準的な論文を読みました。(この論文が再び呼ばれることを知っている人への小道具) また、人々へのインタビューに関するコーディングホラーのさまざまな記事を読みました。一部の人々は、「フレームワークの外では機能できない」と言われました。したがって、それらはそのフレームワークにとって「良い」かもしれませんが、そうでなければ言語ではそうではありません。これは本当ですか?

10
ほとんどのプログラミング言語に '!>'(より大きくない)および '!<'(より小さくない)演算子がない理由はありますか?
何か理由があるのか​​、それとも単なる歴史の偶然なのか、ほとんどのプログラミング言語には演算子!&gt;と!&lt;演算子がないのだろうか? a &gt;= b (大きいOR Bに等しい)のように書くことができた!(a &lt; b) (より少ないNOT b)に等しくなります、a !&lt; b。 この質問は、私が自分の式ツリービルダーをコーディングしている最中に思いつきました。ほとんどのプログラミング言語は持っていないa != bためにオペレータを!(a=b)、なぜ何!&gt;と!&lt;? 更新: !&lt;(ないより少ない)で発音しやすくより&gt;=(大きいまたは等しいです) !&lt;(ないより少ない)で入力するより短いより&gt;=(大きいまたは等しいです) !&lt;(以上ではない)理解するのが簡単です&gt;=(以上) * OR2つのオペランド(grater、equals)を操作するために必要なバイナリ演算子であるのに対しNOT、単項演算子であり、1つのオペランド(より小さい)でのみ操作する必要があるためです。


5
インスタンスは、より具体的なタイプの他のインスタンスと同等ですか?
私はこの記事を読みました:Javaで平等メソッドを書く方法。 基本的に、継承をサポートするequals()メソッドのソリューションを提供します。 Point2D twoD = new Point2D(10, 20); Point3D threeD = new Point3D(10, 20, 50); twoD.equals(threeD); // true threeD.equals(twoD); // true しかし、それは良いアイデアですか?これらの2つのインスタンスは同じように見えますが、2つの異なるハッシュコードを持つ場合があります。それは少し間違っていませんか? 代わりにオペランドをキャストすることで、これがよりよく達成されると思います。
25 java  c#  scala  comparison 

2
最小数の比較で2つのソートされた配列をマージするアルゴリズム
サイズnおよびmのタイプTの 2つのソートされた配列a、bが与えられます。2つの配列を(最大サイズn + mの)新しい配列にマージするアルゴリズムを探しています。 安価な比較操作がある場合、これは非常に簡単です。1つまたは両方の配列が完全に走査されるまで、最初の要素が最も低い配列から取り出し、残りの要素を追加します。このようなもの/programming/5958169/how-to-merge-two-sorted-arrays-into-a-sorted-array ただし、2つの要素を比較すると、ソース配列からターゲット配列に要素をコピーするよりもはるかに高価な場合、状況は変わります。たとえば、大きな任意精度の整数または文字列の配列があり、比較が非常に高価になる場合があります。配列の作成と要素のコピーは無料で、コストがかかるのは要素を比較することだけだと考えてください。 この場合、要素比較の最小数で 2つの配列をマージします。以下に、単純なマージアルゴリズムよりもはるかに優れた機能を発揮できるいくつかの例を示します。 a = [1,2,3,4, ... 1000] b = [1001,1002,1003,1004, ... 2000] または a = [1,2,3,4, ... 1000] b = [0,100,200, ... 1000] 次のように、単純なマージアルゴリズムが最適になる場合があります。 a = [1,3,5,7,9,....,999] b = [2,4,6,8,10,....,1000] したがって、アルゴリズムは、配列がインターリーブされている場合、または少なくとも大幅に悪化していない場合に、理想的には正常に低下し、最大n + m-1回の比較を実行する必要があります。 サイズの違いが大きいリストに対しては、バイナリ検索を使用して、小さな配列の要素を大きな配列に挿入することで、かなりうまくいくはずです。しかし、両方のリストが同じサイズでインターリーブされている場合、それは適切に低下しません。 要素で利用できるのは(合計)順序関数のみであるため、比較を安価にするスキームは不可能です。 何か案は? 私はScalaでこのビットを思いつきました。比較の数に関しては最適であると思いますが、それを証明する能力を超えています。少なくとも、私が文献で見つけたものよりもずっと簡単です。 そして、最初の投稿以来、これがどのように機能するかについてのブログ投稿を書きました。

3
Node.jsは他のサーバー側フレームワークとどう違うのですか?
Node.jsが非常にポピュラーになったことに気付き、小規模なプロジェクトを実行している人々のインスタンスを見てきました。 また、長所と短所のリストを見て、Node.jsで何ができるかを理解しましたが、PHP、Perl、Rubyなどの他のより成熟したサーバー側の技術との違いについてはまだ明確ではありません。レール。 特に、Node.jsと現在の選択肢との違いは何ですか?その理由は何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.