コンピュータプログラミングの歴史は、 コンピュータの歴史 自分自身、おそらく以前でも。一部の人にとっては驚きかもしれませんが、最初のコンピュータープログラマーの多くは女性であり、ほとんどすべてが物議を醸していました。

だから、誰だった 最初のコンピュータープログラマー そして最初のコンピュータプログラミング言語は何でしたか?見つけるために読み続けてください!


TL、DR

最初のコンピュータープログラマー...
時計仕掛けはプログラミングの最初の例です。 Jacquard Loomパンチカードシステム(1804)は、バイナリシステムの最初の例である可能性があります。エイダラブレスは最初のコンピュータプログラム(1840年代)を書きました。 Lovelaceはまた、コンピューターが単なる電卓以上のものである可能性を示唆した最初の人物でもありました。グレースホッパーは、平易な英語をコンピューターコードに変換できる最初のシステムであるLOW-MATICを開発しました(1952年)。

コンピュータープログラミングの歴史最初のコンピュータープログラマー

最初のプログラマーは誰でしたか?

時計仕掛け デバイスはおそらく 「プログラミング」の最初の例を最初に知る。最も初期の既知の例は アンティキティラメカニズム(紀元前200年から紀元前70年)。このため、マシンをプログラムした最初の人が実際に誰であるかを確実に言うことはできません。

電子計算機の前には、人間と機械のコンピューター、そしてもちろん時計仕掛けの装置がありました。たくさんの 時計仕掛けのデバイス とても複雑だったので彼らは 「プログラム」することができます ダンスやライティングなどの一連の複雑なタスクを完了するため。

スイスの時計職人ピエール・ジャケ・ドロズが1770年代に設計、製造したオートマトン(機械人形)「The Writer」は、特に素晴らしい例の1つです。

作家、Jaquet-Drozによるオートマトン、ヌーシャテル美術館 ラーマ, CC BY-SA 2.0 FR、ウィキメディアコモンズ経由

ライターは、羽ペンでさまざまな文字を書くように「プログラム」することができます。各ギアは異なる文字を表します。ライターは約600の異なる部分で構成されています。信じられないほど、それは今日でも機能します。あなたはできる 彼の行動を見るMuséed'artetd'histoire、ヌーシャテル、スイス.

最初のバイナリシステムとプログラミングの誕生

ジャカード織機パンチカードシステム、特許を取得 1804、おそらく バイナリシステムの最初の既知の例、または少なくともオン/オフ命令フォーマット。このシステムにより、さまざまなパターンを素材に織り込むプロセスを自動化することが可能になりました。

ジャカード織機パンチカードシステム。

Jacquard Loomパンチカードシステムの仕組み:

織機で布を織るには、糸(横糸)を別の糸のセット(縦糸)の上と下に通します。さまざまなパターンを作成するために、さまざまな色の縦糸が横糸の上または下に配置されます。 Jacquard Loomパンチカードシステムが発明される前は、織機のアシスタントは、パターンを作成するために、各列で異なるスレッドを手動で上下させる必要がありました。これは非常に時間がかかりました!

Jacquard LoomPunchカードシステムがこれを自動化しました。原理は非常に単純でした:一連のパンチカードが織機に供給されました。カードに穴がある場合は針が上がり、穴がない場合は針が下がったままになります。その後、シャトルは織機を横切って移動し、生地にパターンを作成しました。

デザインは最初に方眼紙で作成されました。次に、カードメーカーはデザインに基づいてカードをプログラムしました。カードの穴が色付きの正方形を示しておらず、穴が空白の正方形を示していることを知って驚くかもしれません。

パンチカードは後に他の種類のデータを保存するために使用され、1890年には米国国勢調査データを保存するためにも使用されました。それらは、人間がコンピューターと「話す」方法を提供したため、初期のコンピュータープログラミングの基礎を形成しました。徐々に、カードはパンチテープ、磁気テープ、ディスクに変わりました…

パンチカードで働く若い女性。

このシステムはJoseph-MarieJacquardが特許を取得しましたが、実際にはJacque deVancasonが開発しました。このシステムの名前は、使用されていた織機に由来しています。ジャカード織機。

モールス信号

モールス信号が最初のバイナリシステムであると考える人もいるかもしれませんが、これは正しくありません。バイナリシステムには2つの「シンボル」しかありません– オフ。モールス信号は、ドット、ダッシュ、およびスペースを使用します。さらに、文字間のギャップがわずかに長く、単語間のギャップがさらに長いモールス信号を送信するのが通例です。 5つまたは6つの異なる「シンボル」でシステムを効果的に作成します。

最初のコンピュータープログラマーは誰でしたか?

adalovelace世界初のコンピュータープログラマー
エイダラブレス別名オーガスタエイダバイロン-1843年または1850年アントワーヌクローデによる珍しいダゲレオタイプ。 アントワーヌ・クロード, CC BY-SA 4.0、ウィキメディアコモンズ経由

の中に 1840年代、エイダラブレスは最初のコンピュータープログラマーになりました、という事実にもかかわらず、 分析エンジン (彼女がプログラムを設計したコンピューター)はこれまで製造されていませんでした。

彼女はまた、コンピューターが単なる特大の計算機以上のものである可能性があることを示唆した最初の人物でもありました。彼女の急進的な考えは、 数値 コンピューターによって生成された 数字以外のものを表すために使用できます:記号、音符など、ほとんど何でも…誰もが納得したわけではありません。

1833年6月5日、ラブレース(17)は、ロンドンでのパーティーでコンピューターのパイオニアであるチャールズバベッジ(40)に初めて会いました。二人はありそうもない友情を始めた。バベッジのマシンの信じられないほどの力にもかかわらず、ラブレースがそれらの可能性を最大限に発揮するのにかかった。

1842年、ルイージフェデリコメナブレアはバベッジの分析エンジンに関する論文を書きました。 Lovelaceはそれをフランス語(8,000語)から英語に翻訳し、彼女自身のメモ(20,000語)を追加しました。彼女の翻訳には最初の「コンピュータープログラム」が含まれ、1843年に出版されました。コンピュータープログラムは、 ベルヌーイ数.

babagefirstコンピューター
1834年にバベッジによって考案された分析エンジン。1871年に彼が亡くなる前に、機械の一部のみが完成しました。これは、印刷機構を備えた工場の一部です。

彼女自身の手書きでメモが見つかりましたが、多くの学者が彼女の信用を傷つけようとしました。これは彼女が女性数学者だったからだと推測する人もいます。

分析の将来の使用のために、新しく、広大で、強力な言語が開発されました。その真実を利用して、これまで私たちが所有していた手段よりも、人類の目的のために、これらがより迅速かつ正確に実用化されるようにします。可能になりました。このように、精神的および物質的なだけでなく、数学の世界における理論的および実践的なものは、互いにより親密で効果的な関係にもたらされます。 –エイダラブレス

彼女は私たちが今日どこにいるのか想像できたでしょうか。

アラン・チューリング

もちろん、に関する記事はありません コンピュータプログラミングの歴史 の言及なしで完了するだろう 理論計算機科学の父 彼自身: アラン・チューリング!

アランチューリング1930
現代のコンピューティングの発明者であるアランチューリング。

1936年、コンピューターがそのような複雑さを実現する前に、Turing(23)は、コンピューターサイエンスを永遠に定義することになる論文を書きました。Entscheidungsproblemへの適用を伴う計算可能な数について「。この論文は、少なくとも理論的には、「ユニバーサルコンピューティングマシン」(チューリングマシン)は、正しいアルゴリズムが与えられている限り、理論的には任意の数学的計算を計算できることを証明しました。

驚異的なキャリアを通じて、チューリングは第二次世界大戦を推定3年短縮するのに役立ち、コンピューターサイエンスについての考え方を定義する論文をさらにいくつか執筆し、初期のコンピューターの多くの開発に取り組みました。

多くの初期のコンピューターのパイオニアのように、彼は論争がなかったわけではありません。彼は反発に直面し、彼の仕事の重要性の多くを納得させるのに絶えず苦労しました。さらに、彼の人生は41歳で悲劇に終わった。同性愛に対する迫害のために、彼は自殺したと多くの人が推測している。ただし、証拠は不明です。

最初のコンピュータープログラマー(電気コンピューター上)

コンラッドズーゼ
Konrad Zuse、最初のコンピュータープログラマー–電気コンピューター。

1941, コンラッドズーゼ なった、たぶん、 電気コンピュータをプログラムした最初の人 そして、ラブレースとは異なり、コンピューターは実際に操作を実行することができました!

アランチューリングが謎のコードを解読するのに忙しい間、彼のドイツの「カウンターパート」。 ZuseはZ3を開発していました。世界初の電気機械式プログラム可能な全自動デジタルコンピュータ。コンピューターには、一片のフィルムがプログラムに供給されました。ジャカード織機システムと同じように、フィルムには穴が開けられていました。

初期のコンピュータープログラマー

1945 その 最初のフルタイムの有料コンピュータープログラマー、 で起訴 エニアック (最初の電子汎用デジタルコンピュータ)は ケイ・マクナルティ、ベティ・ジェニングス、ベティ・スナイダー、マーリン・ウェスコフ、フラン・ビラス、ルース・リヒターマン、ペンシルベニア州ムーア電気工学部の人間計算機のプールから選択されました。再び、彼らは生涯の間に彼らの業績に対する認識を得るのに苦労し、「冷蔵庫の女性」と否定的にラベル付けされました。

最初に支払われたフルタイムのコンピュータープログラマー
最初の有料コンピュータープログラマー。 Betty Jean Jennings(左)とFran Bilas(右)は、ムーア電気工学部でENIACのメインコントロールパネルを操作しています。 (ARLテクニカルライブラリのアーカイブからの米軍の写真)

あったように 当時はプログラミング言語はありませんでした、女性は機械の設計図を研究し、一連の外部スイッチとダイヤルを使用して機械をプログラムしました。

最初のコンピュータプログラミング言語

1952 –アメリカのコンピューター科学者、 グレースホッパー、変換できるシステムを開発しました 平易な英語をコンピュータコードに。これは後にCOBOLになります。これは、今日でもデータ処理に広く使用されているコンピューター言語です。

最初のコンピュータープログラミング言語
コンピュータプログラミングの母。 UNIVACキーボードのグレースホッパー、c。 1960年 不明(スミソニアン博物館), CC BY 2.0、ウィキメディアコモンズ経由

COBOLは、UNIVAC I(最初の大規模電子コンピューターの1つ)用に設計されました。他の初期のコンピュータープログラマーと同様に、フーパーは反発に直面しました。彼女が最初にそのアイデアを提案したとき、人々は否定的で、コンピューターは「英語を理解できなかった」と彼女に知らせました。

ほとんどの人にとって、記号を使用するよりも英語のステートメントを書く方がはるかに簡単です。そこで私は、データプロセッサがプログラムを英語で記述できるようにし、コンピュータがそれらを機械語に変換することを決定しました。 –フーパー

仕事で最初のコンピュータープログラマーUnivacI
国勢調査局のUnivacIと2人のオペレーター1960年 米国国勢調査局の従業員、パブリックドメイン、ウィキメディアコモンズ経由

最初のコンピュータウイルス

最初のコンピュータウイルス、と呼ばれる クリーパー、 に登場 1971。それはによって設計されました ボブ・トーマス.

最初のコンピュータウイルス

現代のコンピュータウイルスと比較して、それは比較的無害でした。自分自身をハードドライブにコピーし、「私はクリーパーです:できれば私を捕まえてください「。コンピュータにすでに保存されているデータに損傷を与えることはありませんでした。

最初のアンチウイルスソフトウェア

1972年に最初の「アンチウイルス」ソフトウェア。 刈り取り、クリーパーに直接応答して作成されました。それはによって作成されました レイ・トムリンソン (最初の電子メールシステムも設計した人)。 Reaperは、コンピューター間を移動してハードドライブからCreeperのインスタンスを削除するコンピュータープログラム「解毒剤」でした。

コンピュータプログラミングの未来

最近では、コンピュータープログラムとコンピュータープログラミングのない世界を想像するのは難しいです。スマートフォンからデザインに使用するソフトウェアパッケージまで、 お気に入り BricsCAD、私たちが触れたり、見たり、操作したりするものはすべて、コンピュータープログラミングの助けを借りて作成されています。最初のコンピュータープログラマーが迫害と反発に直面したと考えるのは驚くべきことです。

コンピュータプログラミングの初期には非常に多くの女性が重要な役割を果たしているので、それを学ぶのは非常に驚くべきことです。 2020年はコンピュータープログラマーの8%だけが女性でした。女性プログラマーも 8番目に高い性別 賃金格差。しかし、多くの若い女性が興味を示しています 、物事は再び反対方向に振れる可能性があります。時間だけが教えてくれます!

誰だった "世界初のコンピュータープログラマー」?

誰が世界の称号に値すると思いますか 最初のコンピュータープログラマー? エイダ・ラブレス、彼女の理論的計画とは?パンチカードシステムの発明者、ジャック・ド・ヴァンカソン?たぶん、コンピューター科学者のグレースホッパーでさえ?コメントであなたの考えを教えてください。