SlideShare a Scribd company logo
1 of 87
Download to read offline
ソフトウェア開発の
歴史を振り返る
でむら なりかず
13/08/04
自己紹介
13/08/04
この本の著者です
13/08/04
で、本題
13/08/04
今回はネタ&主観の
成分多めで
13/08/04
ソフトウェア開発の
遍歴をたどってみる
13/08/04
温故知新。歴史を
知っておくと
後で役立つよ
13/08/04
1980年代
13/08/04
8ビットCPU搭載の
コンピュータが主流
13/08/04
PC88
MSX
X1
MZ
FM77
13/08/04
CPUは
Z80、6809
13/08/04
この頃、大半のパソ
コン少年が読んでた
雑誌は
13/08/04
マイコンBASIC
マガジン
(通称ベーマガ)
13/08/04
http://replayburners.web.fc2.com/ab2/info_spthanks.html
13/08/04
掲載されている
ソースコードを写経
して実行
13/08/04
入力がすべて完了し
ても、正しく動作す
るとは限らない
13/08/04
この時代の
開発スタイル
13/08/04
BASICが主。高速に
処理する箇所のみ
機械語
13/08/04
市販ソフトでも
珍しくない手法
(大戦略とか)
13/08/04
アセンブリ言語
機械語
LD A, 23H
LD B, 30H
ADD A,B 人が読みやすい
INC A
SUB C
CE23
0630
80      人が読みにくい
3C CPUは読みやすい
90
13/08/04
機械語のコードは
どのように用意する
のか?
13/08/04
アセンブラを使う
ハンドアセンブル
13/08/04
「俺がアセンブラだ!」
という開発手法
13/08/04
詳しく書くと
13/08/04
(1)アセンブリコード
を紙に書く
13/08/04
(2)オペコード表を見
ながら、自分で機械
語に置き換える
13/08/04
http://map.grauw.nl/resources/z80instr.php
13/08/04
なんでそんなに
面倒くさいことする
のか?
13/08/04
アセンブラ(ソフト
ウェア)は高級品。
パソコン少年には
買えない
13/08/04
そんな金あったら
ゲーム買ってるわ!
13/08/04
この頃のパソコン少
年はアセンブリ言語
が使える人が多い
13/08/04
機械語からアセンブ
リコードへの
脳内変換も可能
(ただしZ80限定)
13/08/04
今では冗談のような
ホントの話
13/08/04
なぜBASICと機械語
のみで開発するの
か?
13/08/04
- 実行速度的な理由
- 開発環境的な理由
13/08/04
C言語は
ワークステーション
などの特権階級向け
の言語
13/08/04
大学などの教育機関
でしか使えない
13/08/04
1980年代は
こんな感じ
13/08/04
1990年代
13/08/04
パソコンのCPUは
32ビット化が進む
13/08/04
i386
13/08/04
Windows 3.1
Windows 95
OS/2
13/08/04
この頃の
(個人的な)愛読書
13/08/04
C Managine
Oh! X
出版社はどちらもソフトバンク系列ですね
13/08/04
13/08/04
X68kユーザではな
かったがプログラミ
ングの勉強になった
13/08/04
閑話休題
13/08/04
画期的なソフトウェ
アが登場する
13/08/04
PC-UNIX
13/08/04
386BSD
(後のFreeBSD)
Linux
13/08/04
無償で利用できる
本格的なOS
13/08/04
Linux を本格OSな
んて言うと無茶苦茶
怒られた時代
13/08/04
開発環境も無償
で入手可能
13/08/04
C言語が気軽にPCで
使える様になった
13/08/04
ほかにもいろんな
パソコンが
ありましたね
13/08/04
PC9801
Mac
AMIGA
X68000
13/08/04
一方、組み込み系
開発では
13/08/04
このころのCPU
13/08/04
Z80
68000
ARM
MIPS
あたりがメインだったような
13/08/04
開発スタイル
13/08/04
8~16bit CPU =
アセンブリ言語のみ
13/08/04
32bit CPU =
C言語
+ アセンブリ言語
13/08/04
基本はC言語。高速化
が必要な箇所のみア
センブリ言語
13/08/04
H/W
C言語 アセンブラ
13/08/04
この流れで
MIPS(R3000)の
アセンブリコードを
書きまくった...
13/08/04
2000年代
13/08/04
32~64ビットCPU
13/08/04
64ビットCPUは存
在したが移行は遅々
として進まず...
13/08/04
Windows 2000
Windows XP
13/08/04
Linuxの地位向上。
サーバー用途で利用
されるように
なった。
13/08/04
ソフトウェア開発
13/08/04
特定OS向けソフト
ウェアから
Webを媒体にしたソ
フトウェアが増える
13/08/04
H/W
インタプリタ
スクリプト言語
ブラウザ
JavaScript
OS
JavaScript /
C#
13/08/04
ソフトウェア開発
の傾向
13/08/04
プラットフォームが
ネイティブ
から
Webへ
13/08/04
動作環境が
ネイティブ
から
VirutualMachine
へ
13/08/04
H/Wからアプリまで
のレイヤー(層)が
増加の一途
13/08/04
一方で
13/08/04
C言語が分からない人
が増えている
(らしい)
13/08/04
一因として教える学
校が減っている
(某高専生からの情報)
13/08/04
C言語で開発される
ソフトウェアは
依然として多い
(Linuxカーネルなど)
13/08/04
ましてやアセンブリ
言語は...
13/08/04
アセンブリ言語が
必要な場面は、開発
全体の比率で見る
と、年々減少してる
13/08/04
ただ、ゼロとなるこ
とはない。いつの時
代も必要な知識
13/08/04
低レイヤーができる
=
他のエンジニア
と差がつく
13/08/04
そこでこの本をオススメ
13/08/04
ご静聴ありがとうご
ざいました

More Related Content

What's hot

Rで学ぶ現代ポートフォリオ理論入門 - TokyoR #18
Rで学ぶ現代ポートフォリオ理論入門 - TokyoR #18Rで学ぶ現代ポートフォリオ理論入門 - TokyoR #18
Rで学ぶ現代ポートフォリオ理論入門 - TokyoR #18
horihorio
 

What's hot (20)

データ活用をするための組織
データ活用をするための組織データ活用をするための組織
データ活用をするための組織
 
道具としての機械学習:直感的概要とその実際
道具としての機械学習:直感的概要とその実際道具としての機械学習:直感的概要とその実際
道具としての機械学習:直感的概要とその実際
 
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
 
ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くないChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くない
 
失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用
 
Format string Attack
Format string AttackFormat string Attack
Format string Attack
 
情報統計力学のすすめ
情報統計力学のすすめ情報統計力学のすすめ
情報統計力学のすすめ
 
14 データ収集とバイアス
14 データ収集とバイアス14 データ収集とバイアス
14 データ収集とバイアス
 
ネ申Excelと事務情報化 (関西オープンフォーラム2017)
ネ申Excelと事務情報化 (関西オープンフォーラム2017)ネ申Excelと事務情報化 (関西オープンフォーラム2017)
ネ申Excelと事務情報化 (関西オープンフォーラム2017)
 
リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介
 
Rで学ぶ現代ポートフォリオ理論入門 - TokyoR #18
Rで学ぶ現代ポートフォリオ理論入門 - TokyoR #18Rで学ぶ現代ポートフォリオ理論入門 - TokyoR #18
Rで学ぶ現代ポートフォリオ理論入門 - TokyoR #18
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要か
 
CF-FinML 金融時系列予測のための機械学習
CF-FinML 金融時系列予測のための機械学習CF-FinML 金融時系列予測のための機械学習
CF-FinML 金融時系列予測のための機械学習
 
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 
データサイエンティストのつくり方
データサイエンティストのつくり方データサイエンティストのつくり方
データサイエンティストのつくり方
 
データサイエンティスト スキルチェックリスト
データサイエンティスト スキルチェックリストデータサイエンティスト スキルチェックリスト
データサイエンティスト スキルチェックリスト
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介
 
ソフトウェア工学における問題提起と機械学習の新たなあり方
ソフトウェア工学における問題提起と機械学習の新たなあり方ソフトウェア工学における問題提起と機械学習の新たなあり方
ソフトウェア工学における問題提起と機械学習の新たなあり方
 
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
 

Viewers also liked

【カジュアル勉強会】ゲームタスクシステム
【カジュアル勉強会】ゲームタスクシステム【カジュアル勉強会】ゲームタスクシステム
【カジュアル勉強会】ゲームタスクシステム
Takuro Hashimoto
 
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
suno88
 
アーキテクトになるには
アーキテクトになるにはアーキテクトになるには
アーキテクトになるには
ymmt
 

Viewers also liked (20)

【カジュアル勉強会】ゲームタスクシステム
【カジュアル勉強会】ゲームタスクシステム【カジュアル勉強会】ゲームタスクシステム
【カジュアル勉強会】ゲームタスクシステム
 
世界・日本のコンテンツ及びビデオゲーム市場の動向 (Digital content and video game market in the world ...
世界・日本のコンテンツ及びビデオゲーム市場の動向 (Digital content and video game market in the world ...世界・日本のコンテンツ及びビデオゲーム市場の動向 (Digital content and video game market in the world ...
世界・日本のコンテンツ及びビデオゲーム市場の動向 (Digital content and video game market in the world ...
 
ゲームニクス理論2
ゲームニクス理論2ゲームニクス理論2
ゲームニクス理論2
 
ゲームエンジンの中の話
ゲームエンジンの中の話ゲームエンジンの中の話
ゲームエンジンの中の話
 
ゲーム企画書の書き方? ~大久保磨編~ ver.1.4.0
ゲーム企画書の書き方? ~大久保磨編~ ver.1.4.0ゲーム企画書の書き方? ~大久保磨編~ ver.1.4.0
ゲーム企画書の書き方? ~大久保磨編~ ver.1.4.0
 
My開発環境の話
My開発環境の話My開発環境の話
My開発環境の話
 
Dmedia
DmediaDmedia
Dmedia
 
What's Operating System?
What's Operating System?What's Operating System?
What's Operating System?
 
N88-BASIC Language
N88-BASIC LanguageN88-BASIC Language
N88-BASIC Language
 
マイコンを語る
マイコンを語るマイコンを語る
マイコンを語る
 
自作ゲーム配布方法の歴史
自作ゲーム配布方法の歴史自作ゲーム配布方法の歴史
自作ゲーム配布方法の歴史
 
ローカル環境にCent OSサーバをVirtualBoxで作ろう!
ローカル環境にCent OSサーバをVirtualBoxで作ろう!ローカル環境にCent OSサーバをVirtualBoxで作ろう!
ローカル環境にCent OSサーバをVirtualBoxで作ろう!
 
技術書執筆とリモート
技術書執筆とリモート技術書執筆とリモート
技術書執筆とリモート
 
Awful Guy in Early Ages of Japanese Computer / 昔の人はえらかった
Awful Guy in Early Ages of Japanese Computer / 昔の人はえらかったAwful Guy in Early Ages of Japanese Computer / 昔の人はえらかった
Awful Guy in Early Ages of Japanese Computer / 昔の人はえらかった
 
GC黄金時代
GC黄金時代GC黄金時代
GC黄金時代
 
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
 
アーキテクトになるには
アーキテクトになるにはアーキテクトになるには
アーキテクトになるには
 
誰でも出来るローカル開発環境の作り方
誰でも出来るローカル開発環境の作り方誰でも出来るローカル開発環境の作り方
誰でも出来るローカル開発環境の作り方
 
プログラマ人生論
プログラマ人生論プログラマ人生論
プログラマ人生論
 
正しいプログラミング言語の覚え方
正しいプログラミング言語の覚え方正しいプログラミング言語の覚え方
正しいプログラミング言語の覚え方
 

More from demuyan

低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
demuyan
 
GDKとLLVM(横浜PF部向け)
GDKとLLVM(横浜PF部向け)GDKとLLVM(横浜PF部向け)
GDKとLLVM(横浜PF部向け)
demuyan
 
ゲーム屋的パフォーマンスチューニング
ゲーム屋的パフォーマンスチューニングゲーム屋的パフォーマンスチューニング
ゲーム屋的パフォーマンスチューニング
demuyan
 
Linuxカーネルから紐解くAndroid
Linuxカーネルから紐解くAndroidLinuxカーネルから紐解くAndroid
Linuxカーネルから紐解くAndroid
demuyan
 
Android&Web&Titanium
Android&Web&TitaniumAndroid&Web&Titanium
Android&Web&Titanium
demuyan
 
Gdgd発表スライド
Gdgd発表スライドGdgd発表スライド
Gdgd発表スライド
demuyan
 
Android & BeagleBoardで組込入門
Android & BeagleBoardで組込入門Android & BeagleBoardで組込入門
Android & BeagleBoardで組込入門
demuyan
 
AppBank 村井氏 講演資料
AppBank 村井氏 講演資料AppBank 村井氏 講演資料
AppBank 村井氏 講演資料
demuyan
 
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からAndroidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点から
demuyan
 
いまさら聞けないRuby1.9
いまさら聞けないRuby1.9いまさら聞けないRuby1.9
いまさら聞けないRuby1.9
demuyan
 
現在のCOM事情
現在のCOM事情現在のCOM事情
現在のCOM事情
demuyan
 

More from demuyan (14)

低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
 
GDKとLLVM(横浜PF部向け)
GDKとLLVM(横浜PF部向け)GDKとLLVM(横浜PF部向け)
GDKとLLVM(横浜PF部向け)
 
組込Android本の執筆環境
組込Android本の執筆環境組込Android本の執筆環境
組込Android本の執筆環境
 
ゲーム屋的パフォーマンスチューニング
ゲーム屋的パフォーマンスチューニングゲーム屋的パフォーマンスチューニング
ゲーム屋的パフォーマンスチューニング
 
Linuxカーネルから紐解くAndroid
Linuxカーネルから紐解くAndroidLinuxカーネルから紐解くAndroid
Linuxカーネルから紐解くAndroid
 
基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroid基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroid
 
Android&Web&Titanium
Android&Web&TitaniumAndroid&Web&Titanium
Android&Web&Titanium
 
Gdgd発表スライド
Gdgd発表スライドGdgd発表スライド
Gdgd発表スライド
 
Android & BeagleBoardで組込入門
Android & BeagleBoardで組込入門Android & BeagleBoardで組込入門
Android & BeagleBoardで組込入門
 
AppBank 村井氏 講演資料
AppBank 村井氏 講演資料AppBank 村井氏 講演資料
AppBank 村井氏 講演資料
 
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からAndroidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点から
 
いまさら聞けないRuby1.9
いまさら聞けないRuby1.9いまさら聞けないRuby1.9
いまさら聞けないRuby1.9
 
現在のCOM事情
現在のCOM事情現在のCOM事情
現在のCOM事情
 
Yet Another Development Language
Yet Another Development LanguageYet Another Development Language
Yet Another Development Language
 

Recently uploaded

Recently uploaded (8)

LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 

ソフトウェア開発の歴史を振り返る