オフィスブログ

Windows前と後でプログラムは変わったんです・・・

Windowsの前後と言いましたが、正確に言えばGUIがこの世に出現する前後というのが正解ですね(^_^;)

こんにちは。ディーキャリアITエキスパート名古屋丸の内オフィスの志村です。

まあ、みんな Windows 使ってるから・・・そう言っちゃいました。すみません。ホントはWindowsよりもっと前から、GUI(Graphical User Interface)はありました。

わたしが知ってる範囲ではね、Macは最初からGUIだったし、そもそもゼロックスのパロアルト研究所とかいうところにGUIコンピュータの原型があったらしい。

Alto(アルト)というのがあった。(※パロアルトのアルトなんでしょうね)

それを見たスティーブ・ジョブズが最初に作ろうと思ったコンピュータは、Lisa(リサ)とか言うらしい。いろいろすったもんだあって、結局、ジョブズが世に出したのはMac(マック:マッキントッシュ)です。
まあ、他にもあったかもしれませんね。(わたしの記憶、あやふやです・・苦笑)
でも、そこはどうでも良いのです。

いずれにせよ、そういうのが、今わたしたちが使っているGUIコンピュータのご先祖様です。 普及したのは Windowsです。ちょっとはMacも使われていますが。

それでGUIというのは、画面上に絵を表示させて、マウスなどのポインティングデバイス(カーソルという矢印で指し示す機械のことです)を使って操作ができるという奴です。

みんな使っていますね。

マウスじゃなくて、タッチパッドでもいいし、画面を指で直接タッチするやり方もあります。

いずれにせよ、画面に絵(アイコンなど)を表示させておいて、それに対して何かの操作をしてコンピュータを使う・・・そういうのがGUIです。

これが普及する前は、CUI(Character User Interface)とかCLI(Command Line Interface)といって、命令(コマンド)をキーボードで打ち込んで、コンピュータに指示を出してました。

皆さんはコマンドを打ち込むなんて・・・したことない・・・でしょうね。
一般ユーザーにとってはGUIが圧倒的に使いやすい。
コンピュータ(パソコン)は使いやすく進化したのです。

それで、そこは今日の話題ではありません。

この記事で紹介するのは「プログラムの書き方」「プログラムの考え方」が、GUIが出てきたら変わったということです。

あまりはっきりこういうこと言われないもんだから、プログラミングの勉強してて、みんな戸惑うかもしれない。
だからとりあえず、言っておこうと思いましてね・・・。

CUIのプログラムでは、プログラムはコマンドとして実行する時に「起動」します。起動したら順次、処理が始まります。

とりあえず意識しているのは、UNIXとかMS-DOSとかLinuxとか、小型のコンピュータのOSを前提として話します。
(大型コンピュータでも、CUIだったら本質は同じだと思ってください。リアルタイムオンライン処理だとちょっと違います。端末でTSS処理してたら同じだと思えばよいです。まあ、広く考えればバッチ処理もおおよそ同じ考え方で良いです)

それでCUIのプログラムはコマンド実行時には何か「入出力」があるものだ・・・と思ってください。
だから、プログラムとは下図のようなものだと教えられました。

これがCUIのOSで動くプログラムを作る時の基本です。

プログラムには入力と出力がある。
プログラムをコマンドラインから実行(起動)しますから、入力と出力を簡便に扱うために、それらはすべて「ファイル」だと考えます。
それでプログラムは自動的、標準的に入出力があるので、それを「標準入出力(Standard Input / Output)」と言います。

これって(上図のようなイメージ)・・・直線的ですね・・・(^_^)」

ところがね・・・GUIのOSではちょっと違います。

プログラムはね、直線的ではない。ループしています。グルグル回っている。

グルグルしながら、何かのきっかけを待っている。

グルグル回るのを「イベントループ」と言います。(Windowsでは「メッセージループ」) きっかけを「イベント」と言います。(Windowsでは「メッセージ」)

イベントにはいくつか典型的なものがあって、例えばマウスのクリックです。キーボード入力もイベントです。ドラッグとかドロップとかの動作もイベントです。

分かります?

コマンドを打ち込んで、そのコマンドのプログラムを動かすという感じと違うでしょ。

いろいろなイベントを取り込む。取り込んだイベントはキューという構造のデータ領域に入ります。キューというのは入った順に押し出していくみたいな・・・トコロテン方式・・。

う~ん、トコロテンが分からないか・・・(笑)

トンネル状に両端が開いた筒のようなものを想像してください。入ったものを後ろから押して、前のを押し出していく・・・みたいな・・・

こんな奴、分かりました?(笑)

イベントが発生するとキューに入れられて、いくつもイベントが発生するからドンドン入れていく。それを順に押し出して処理していく。

イベントが命令のような意味を持ちます。だからGUIのプログラムは実行し始めても、まずは「イベント」(命令)を待っている。それでイベントが起こるとそれに対して処理をする。

そういう仕組みになっている。イベント・ハンドリングといいます。

何かを「待つ」という処理は、無限ループ処理で実行します。

そういうふうにプログラムは書かないといけない。 GUIのプログラムは、そういうイベントループを持つ構造になってます。

だからね、Windowsが出てきて、プログラムを書く・・・って時に、とんでもなく分かりにくかったのです。 そういうものだよって、前もってちゃんと言ってくれてたら、多少は理解しやすかったのかもしれない。

C++でWindowsプログラムを書く・・・みたいな参考書を買って読むとね・・・ プログラムの記述が多いし(ループ処理の部分があるからねぇ・・・笑)、それが何の意味があるか最初分からないし・・・。

大変でした。大体、参考書、分厚い!

Windowsプログラミングって、辟易しましたよ。

さて、良いでしょうか。今時のプログラムは、GUIが前提ですからね。

この仕組みを「イベント駆動」といいます。 イベントループのある構造になっています。 イベントの発生に対して、どんな処理をするか・・・がポイントです。

ちなみに、Webアプリはね・・・ブラウザがそもそもイベント駆動部分を担当してくれるんで、イベントループ自体の記述はしなくて良いのです。

ラッキー!楽だね。

ディーキャリアITエキスパートではWebアプリ開発からプログラミングを学びます。 取っ掛かりやすい。 ちゃんとイベント駆動のプログラムで、そのイベントループの部分はブラウザがやってくれて(隠されて)いるんで、したいことの本質部分に集中できる。

いいねぇ。
うまいこと考えた。

それで一応言っておくと、IT業界で技術者として働こうと思ったら、もう少し踏み込んでいろいろな仕組みを勉強しておくのが良いです。
大体、システム開発の多くはJavaとか、C++とかを使ってプログラムを書くことが多いです。

コンパイラ型の言語です。

OS上でプログラムが動くということを知らなければなりません。 (ブラウザありきのWebアプリとは違います)

時にイベント駆動のプログラムも作るかもしれないし、コマンド型のプログラムを作ることもあるかもしれない。 違いが分かっていないといけないです。

ちょっと頑張りましょうね・・・ディーキャリアITエキスパート名古屋丸の内オフィスでお手伝いします。(^_-)-☆


ディーキャリアITエキスパート名古屋丸の内オフィス 
 ・電話052-218-4877
 ・メール it-nagoyamarunouchi@dd-career.com 
 ・所在地:〒460-0002
      愛知県名古屋市中区丸の内2-17-22丸の内桜通ビル2階
 ・HP:https://dd-career.com 


ITエキスパート名古屋丸の内のブログ一覧

  1. 冬のセルフケア

  2. 「IT人材」になって就職する②

  3. 「IT人材」になって就職する①

  4. 思考・姿勢・考え方における基盤を作る

  5. 「夢」は…かないました。

  6. 毎日が気付きの宝庫

  7. 安定した勤務の下地作り・・・大事です

  8. 思考の癖

  9. なりたい姿について考える

  10. 価値に表方と裏方あり

  11. SESとはどういうものなの?

  12. ペースとサイクル

  13. う~ん、どうしよう。chatGPT4.0

  14. コントロールできる、できない

  15. オブジェクト「指向」って何よ?(笑)

  16. 回り道しても、安定した就労の近道に

  17. プログラムの中にプログラム?(3)

  18. プログラムの中にプログラム?(2)

  19. プログラムの中にプログラム?(1)

  20. 梅雨時期のネガティブを切り替える

  21. ざっくり言うと、プログラミングは・・・

  22. 少しずつ少しずつ

  23. プログラミング(学習)”以前”

  24. 一度で解決しなくても、大丈夫♪♪

  25. 長年の勘・・・ですけどね(苦笑)

  26. 心の余裕と健康

  27. クラスとインスタンス・・・て何?

  28. 仮想と現実・・・マトリックス?アバター?・笑

  29. 安定して働きつづけるために、大切なこと

  30. ディーキャリア卒業におけるプレゼンテーション

  31. 地味にスゴイ・・

  32. 入口と出口が問題なんですよ。

  33. OSのお話(その2)

  34. 生活リズムを整える=安定した就労への近道

  35. OS(オペレーティングシステム)のお話

  36. チャンスは何度かやってくる

  37. 大事なのは変わっていく事…変わらずにいること

  38. 気付きと活かしの宝庫、ライフスキル訓練

  39. 発達障害のある方におすすめの引っ越し先1選+α

  40. 2024年のディーキャリアITエキスパート名古屋丸の内オフィス

  41. 自分について想う

  42. 派遣の話・・・IT業界ではね・・

  43. 2023年を振り返って

  44. コミュニケーションにおける態度や心構え

  45. IT企業から見た時、何が目につくのか・・・

  46. 問題解決 ~勤怠の安定~

  47. ライフスキル訓練における意識 

  48. 時間

  49. COBOLをどう思います?

  50. 特性や診断と向き合う自己理解

  51. ポートフォリオ? ああ、作品集・実績ですね

  52. ポートフォリオはできました・・で、どうする?

  53. 全体訓練=ライフスキル訓練の利点

  54. たまには・・・意味のない?お話も、実は意味がある・・(^_-)-☆かもね

  55. やりっぱなしにはご注意を!

  56. プログラミング「技術」って・・・

  57. プログラミング学習するにはどの言語?

  58. 発達障害の診断は自分に正直なしるし

  59. 短期回復と長期回復

  60. ごほうび効果

  61. プログラミング、はじめの一歩・・・

  62. 「業務アプリ」を使う理由(ワケ)

  63. 仕事ができるようになるには

  64. 就職する、がゴールではないですよね??

  65. パソコンなんか、何に使うの・・・

  66. chatGPT(チャット君)ありがとね〜

  67. ファイルシステムのお話

  68. どんなライフスキル訓練も自己理解に繋がっていますね?

  69. それでも、受かること、あるからねぇ・・・

  70. 今度は疑似言語ですよ・・おお、構造化プログラミングだね

  71. まず、やってみよう・・・それからだよ

  72. 設計するって何する?

  73. 派遣、SES、請負・・え?出向なの?

  74. ゆる〜い関係もまあ良しか・笑

  75. 就職では「人となり>技術力」かな・・・

  76. 想い続ける・・・いいね

  77. クラウド(雲)時代を生きる

  78. 今や、インターネットは一般用語ですね。

  79. この夏にやってみたいこと

  80. 水で通信しよう・・・

  81. 夏のセルフケア ~水分摂取の巻~

  82. (世の中の)歯車なんだよね・・・

  83. 「知っている」と「活用する」ことの違いについて

  84. フリーは、い〜な

  85. ITを活用する人になろう

  86. システムエンジニアなんですけど・・・

  87. 大きなシステムだって・・・分かってる?

  88. ある利用者からの質問

  89. 天気と気分・視点の変え方

  90. 自己肯定感を取り戻す

  91. 夢が叶う時…

  92. 何が大事って、安定した勤務です

  93. 梅雨時期の乗り越え方

  94. オタクですが・・・なにか(笑)

  95. IT人材は不足しているそうです

  96. 感情とその気付き

  97. ライブラリィ・・・ん?

  98. 3分間スピーチと自己開示

  99. 暗号化ってどうよ・・・

  100. 宣言効果と目標設定

  101. chatGPTは社会を変える?

  102. ネモフィラとセルフケア

  103. はなまる

  104. 報連相について

  105. ショックとのおつきあい

  106. 体調管理

  107. 発達障害のある方にお勧めするお金の管理法3選

  108. Iメッセージ

  109. 就職活動

  110. 負ける強さ

  111. 発達障害とお片付け

  112. ADHDのリスクとリターン

  113. しだれ桜

  114. スティーブ・ジョブズに学ぶ、もののとらえかた

  115. やすむこと

  116. “今、ここ”を意識することの大切さ

  117. 春の訪れ

  118. おかげ

  119. 心の防寒

  120. 立春

  121. 自己理解について

  122. アロマテラピーと自己理解

  123. 大寒波

  124. ホッと温かい寒さ対策

  125. 遅くなりましたが

  126. 自己理解、一歩踏み込んで

  127. 2023年は卯年

  128. 2022年を振り返って

  129. 年末にすること

  130. あっという間の1年

  131. ディーキャリアITエキスパート名古屋丸の内オフィス、配置変えの巻

  132. 冬の早朝

  133. 寒い中で気付けること、感謝できること

  134. 逃げること、回避すること

  135. 寒い季節の悩み

  136. 目的を持って取り組むこと

  137. ものの見方は自分次第、捉え方は2つ以上ある

  138. 最近のセルフケアと癒し時間

  139. 切り替えて別の案を考えること、満喫すること

  140. 毎月の目標設定

  141. 生活リズムを整えるには・・・

  142. コツコツと、ささやかな習慣化

  143. 秋の楽しみ、そして、セルフケア

  144. 楽しみ方

  145. 働く上で大切にしていること

  146. 睡眠の質

  147. 衣替え

  148. 雑談について

  149. 色とセルフケア

  150. 季節の変わり目

  151. アサーティブとは、しずかちゃん!

  152. 5分間のホッとする時間

  153. ライフスキルコースについて

  154. ビジネスマナー 右手を隠す編

  155. BGMの活用

  156. 仕事を楽しむには

  157. 雨の日の気分転換

  158. 開所4か月目

  159. セルフケアって何だろう?②

  160. ビジネスマナー

  161. セルフケアって何だろう?

  162. ITエキスパート名古屋丸の内スタッフ紹介! ②イケメンカリスマ営業マン(^_-)-☆

  163. ITエキスパート名古屋丸の内スタッフ紹介! ①システムエンジニア サービス管理責任者

  164. 発達障害特化とは(^_-)-☆

  165. オフィスのおすすめポイント② (^_-)-☆

  166. ITエキスパート名古屋丸の内オフィス 4月1日開所しました(^^)/

オフィス情報

ITエキスパート名古屋丸の内オフィス

アクセス
名古屋市営地下鉄 桜通線/鶴舞線「丸の内駅」3番出口すぐ
電話番号
052-218-4877