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

プログラミングとコンピューティングの歴史についての質問。

2
Cで配列を関数の引数として渡すことができないのはなぜですか?
このコメントに続いて、私はグーグルでグーグルを試みましたが、グーグルフーは失敗しました。 リンクからのコメント: [...]しかし、重要なことは、Cでは配列とポインターが異なることです。 コンパイラの拡張機能を使用していないと仮定すると、通常、配列自体を関数に渡すことはできませんが、ポインタを渡し、ポインタを配列であるかのようにインデックス付けすることはできます。 ポインターには長さが付加されていないという事実に不満があります。配列を関数の引数として渡すことができないこと、または配列が暗黙的にポインターに低下することを不平を言うべきです。
12 c  history 

1
オブジェクト指向のパラダイムが主流になるのに長い時間がかかったのはなぜですか?
この質問を読んで、かなり最近のことについて考えさせられました。オブジェクト指向言語。最初のものがいつ作成されたのかわかりませんが、なぜ彼らが主流になるまでにそれほど時間がかかったのですか? Cは非常に人気を博しましたが、後にオブジェクト指向C ++になりませんでした(数十年後)。 90年代以前の主流言語はオブジェクト指向ではありませんでした オブジェクト指向は、ほぼ同時期にJavaとC ++を使用するようになりました さて、私の質問、なぜこれにそれほど時間がかかったのですか?Cが元々オブジェクト指向言語として考えられていなかったのはなぜですか?C ++の非常に小さなサブセットを使用しても、コア言語に大きな影響は及ばなかったのに、なぜこのアイデアは90年代まで普及しなかったのでしょうか?



3
MicrosoftによるオリジナルのC#紹介ペーパーはどこで読むことができますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 2002年にMicrosoftが.NET FrameworkとC#言語を発表したとき、C#を紹介した最初の記事は何でしたか? 他の言語の必要性を説明し、背景を話し、コードサンプルを持っている可能性のある、MSDNまたはMicrosoftのWebサイトで公開されている論文を探しています。 また、一般的な.NET Frameworkドキュメントではなく、元のC#の紹介に興味があります。 私がいることを覚えて、早期の.NET論文はかなり霧だったし、それが再読み込み、それらに楽しいの公正なシェアである一方で、私は言語を中心とした文書を目指します。
11 c#  microsoft  history  msdn 

3
バージョン管理のコミット履歴とリファクタリングおよびドキュメントの保存
バージョン管理システムが保持しているコミット履歴を使用しても、ほとんど費用はかかりません。ただし、主要なプロジェクトのリファクタリング(または再編成/クリーンアップ)の作業中に、関数とクラス、さらには名前空間も移動されます。いくつかのファイルが一緒にマージされ、他のファイルが分割される場合があります。これらの変更により、いくつかのファイルの元のコミット履歴が失われることがよくあります。 私の意見では、プロジェクトの組織を維持することは、ソースコードの履歴を保持することよりも重要です。優れたプロジェクト編成により、合理的な労力で新機能を継続的に追加できますが、ソースコードの履歴の価値は疑わしいようです。 さらに、単体テストを使用すると、回帰の問題が迅速に特定されます。最新バージョンがすべてのソフトウェア要件を満たしている限り、実際にソースコードの履歴を保持する必要がありますか? メジャーバージョンアップグレードを実行せずに顧客にサポートを提供する必要があるため、出荷されたソースコードを保存する必要があることを理解しています。しかし、これとは別に、ソースコードコミットの履歴を保持することに何か価値はありますか? ソースコードのコミット履歴は、チームメンバー間のコミュニケーションに何らかの役割を果たしますか?コミット履歴を廃止し、代わりに「ソースコード」+「ユニットテストコード」に依存して通信した場合はどうなりますか? コミット履歴の存在は、主要な設計/要件の変更やそれらの変更を推進した一連の思考など、プロジェクトに関する重要な情報の長期的な文書化に満足しますか?

3
テストファーストプログラミングに関する最初に公開されたリファレンスは何ですか?
Martin FowlerによるRefactoringを読み直しています。第4章「テストの構築」で、次の文章に出会いました。 実際、テストを作成する最も便利な時期の1つは、プログラミングを開始する前です。機能を追加する必要がある場合は、テストを作成することから始めます。これは思ったほど後方ではありません。テストを書くことで、関数を追加するために何をする必要があるかを自問しています。また、テストの記述は、実装ではなくインターフェイスに集中します(常に良いことです)。また、テストが機能するときに、コーディングを完了する明確なポイントがあることも意味します。 私は現在、テスト駆動開発の提唱者ですが、5年近く前にこの本を最初に読んだときにこの概念を紹介されたことを覚えていませんでした。 Amazon.comによると、この本はもともと1999年7月8日に発行されました。これは、テストファーストプログラミングへの最初の発行されたリファレンスですか、それとももっと早いものですか?
11 testing  history 

11
ムンプスは生きていますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 最初の職場では、PDP 11クローン(TPA 440)でDigital Standard MUMPSを使用していましたが、90年代前半にHP-UX 9のHewlett-Packardマシンで実行されるMicronetics Standard MUMPSに切り替えました。 ムンプスはまだ生きていますか?それを使用している人はいますか?はいの場合は、それについていくつかの言葉を書いてください:あなたはキャラクターモードでそれを使用していますか、それはウェブサーバーとして機能しますか?など(Cachéも意味します。) あなたがそれを使用したことがある場合、あなたはそれについてどう感じましたか?気に入りましたか?

1
C ++の静的グローバルと匿名名前空間
後者を導入するときに、C ++が静的グローバル(内部リンケージ)と名前のない名前空間のシンボル(外部リンケージですが、外部から参照する方法がない)を区別したのはなぜですか? これらの理由のいずれかがまだ有効ですか、それとも新しい理由がありますか? それらがまだ異なる場所が残っていますか?しかし、匿名グローバル(または名前空間スコープ)ユニオンはである必要staticがあるという任意のルール、およびそれらは何ですか? ボーナスポイントに関して、それらが異なる理由が残っていない場合、それらを同等にするリクエストはありますか? C ++が名前空間(C ++ 98)、特に名前のない名前空間を導入したとき、静的グローバルは陳腐化し、熱意の中で新しいものよりも劣っていたが、C ++ 11で元に戻された: staticキーワードの廃止…もういや? C ++ 11より前は、内部リンケージのあるシンボルをテンプレート引数として使用できませんでした。C++ 03が外部リンケージを持つためにテンプレートパラメーターを必要とするのはなぜですか。

1
一般的なリスト処理関数名の由来
リストまたは配列を操作するためのいくつかの高階関数が繰り返し採用または再発明されました。関数map、fold [ l | r ]とfilterは、Scheme、ML、Pythonなど、共通の祖先を持たないように見えるいくつかのプログラミング言語で一緒に見つかります。質問を集中させるために、これら3つの名前を使用します。 名前が普遍的ではないことを示すために、他の言語での同等の機能の名前のサンプルを以下に示します。C ++はい変換するのではなく、マップやremove_ifの代わりに、フィルタ(述語の意味を反転させます)。Lispは持っているでmapcarの代わりに、マップを、削除-IF-ない代わりに、フィルタ、および軽減の代わり倍(一部現代のLispが持っているバリアントマップが、これが表示されますがために派生形。)C#の用途は選択の代わりにマップし、どこの代わりに、フィルター。C#の名前はLINQを介してSQLに由来し、名前の変更にもかかわらず、それらの機能はMLの影響を受けたHaskellの影響を受けました。 map、fold、およびfilterという名前は広く普及していますが、普遍的ではありません。これは、彼らが有力な情報源から他の現代の言語に借用されたことを示唆しています。これらの関数名はどこから来たのですか?

4
プログラマーがパンチカードを使用した場合、プログラミングはどのように機能しましたか?
私はこれを見ました:パンチカードでプログラムすることを学ぶ そして私はこれを見てきました:http : //en.wikipedia.org/wiki/Computer_programming_in_the_punched_card_era しかし、彼らは望まれる多くを残します。 誰かがパンチカードを使用したときにプログラマがどのようにプログラミングしたかを誰かに説明できますか?具体的には、パンチされたカード自体から命令を取得するために使用される入力コンピューターのシステム。 レトロコンピュータについてはあまり知りませんので、あなたがおなじみの入力システムならどれでもかまいません。より一般的な回答も歓迎します。
11 history 

2
C ++では、SFINAEとメタプログラミングは意図的でしたか、それとも単なるテンプレートの副産物でしたか?
SFINAEとtemplateメタプログラミングは素晴らしいことを行うことができ、多くのライブラリーもそれらをかなり使用しています。 歴史的に、これらの「魔法の概念」は両方とも、C ++で意図的に導入/サポートされていましたか?または、それらは後にオリジナルのtemplateプログラミングの有用な副産物(副産物)として発見されましたか?

2
配列要素に角括弧を使用する習慣はどのように発展しましたか?
多くのプログラミング言語は、構文a[i]を使用してi配列、シーケンス、またはベクトルのi番目の要素を参照します。a具体的には、CおよびPascal(1960年代後半から1970年代初頭)はこれを行います。一方、Fortran(1950年代のもの)などの一部の初期の言語では、この規則を使用していません。また、私は少し数学を研究し、数学者は間隔に角括弧、配列と行列の添え字(または配列が負でない整数の関数と考えられる場合は通常の括弧)に添え字を使用します。 だから、私の質問です:配列の添え字用のこの角かっこは、どこで、どのように、どのようなコンテキストで開発されましたか? 注:Cでの中括弧の使用に関するこの質問の真似はまったくありません。
11 history  array  syntax 


5
「charset」が一般的な使用法で「エンコード」を本当に意味するのはなぜですか?
私を長い間混乱させてきたのは、多くのソフトウェアが「charset」と「encoding」という用語を同義語として使用していることです。 人々がユニコードの「エンコーディング」に言及するとき、それらは常にユニコード文字をASCIIやUTF-8のようなバイトのシーケンスとして表すためのルールセットを意味します。これは合理的で直感的なようです。これは、指定したルールセットを使用して、これらの文字をバイトとして「エンコード」するという考え方です。 これらのルールセットは、すべてのユニコード文字の一部のサブセットを「エンコード」する機能しか提供しないことがあるので、「文字セット」の短縮形である「文字セット」は、ユニコード文字のセットを意味するだけで、これらの文字はエンコードされます。したがって、エンコーディングは文字セットを意味します(128文字のエンコードに関するルールのみを持つASCIIのようなエンコーディングは、それらの128文字の文字セットに関連付けられます)が、文字セットはエンコーディングを意味する必要はありません(たとえば、UTF-8、UTF) -16とUTF-32はすべて異なるエンコーディングですが、同じ文字セットをエンコードできます)。 それでも-そして、これが私の質問の核心です-「charset」という単語の実際の用法は、単語の構成が意味するものと一致しません。ほとんどの場合、「エンコード」を意味するために使用されます。 例えば: charsetHTML の属性は、エンコーディングを指定するために使用されます CharsetJavaのsはエンコーディングです charsetsとcharacter setsMySQLでは、これもエンコーディングです。 この好奇心の強い(乱用)言語の使用は何歳ですか?この「直感的ではない」「文字セット」の定義はどのようにして生まれましたか?それはおそらく、実際に、使用中のエンコーディングとそれらがサポートする文字セットとの間に1対1のマッピングが実際にあった時代に由来するのでしょうか?それとも、この単語の定義を規定する特に影響力のある標準や仕様はありましたか?

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