開発言語は何がいいか

さて、先週までで Arch Linux をインストールできた。

(まだコンソール画面だけでブラウザとかメールも見れないけど)

とりあえず、ひと段落したので今週は別の話題。

 

これからプログラミングをしていくのだが、

ここでどの言語を学んだらいいか?

という問題がある。

 

開発言語ランキングとか

言語別の収入ランキングとかいろいろあって

それを見て選ぶのもいいと思う。

しかし、こういうランキングが一概に当てはまらないケースもあると思う。

例えば、収入の多い言語として「Python」となっているが

これは、けっこう幅があって、240万~1750万となっている。

なんと、高低差が7倍もある。

 

これは、言語というより業界の差が大きいと思われる。

Pythonの適用範囲は広く、いろいろな分野で使われているが

収入の高いのは「AI」などの分野にいる人たちだと思う。

また、Javaも高い場合は2000万とかになっているが、

これも、金融業界にいる人たちだと思われる。

 

このように開発言語というよりどの業界に属しているかで

収入の差になっていと想像する。

 

なので、収入や人気にとらわれず

何がやりたいかの目的に応じて

選択するほうがいいと思う。

 

例えば、iSOのアプリを作りたいのであれば、Swift になるだろうし、

Android のアプリを作りたいのであれば、Java 又は Kotlin になるだろうし、

組み込み用の機械制御などは C言語になるだろうし、

金融系のお金の計算などは COBOL になるだろう。

 

そんな中で、私がオススメするのは「JavaScript」である。

理由は、今後かなりの割合で必要になってくる言語だからだ。

また、登場初期は静的Webにちょっとした動きを加える用だった

しょぼい言語だったJavaScriptも今では多くの分野で使われ

クライアントサイドだけだったが、サーバー側の言語としても

使われたりしている。

 

現在はデファクトスタンダートでWebアプリだし、

WebではJavaScriptはどうしても必須になってくる。

 

また、Andriod / iOS の両スマホ向けのページにも使えるし

Windows / Mac / Linux 向けの Desktop アプリも作れる。

知っていて損はない言語だと思う。

 

どの言語にしようかと悩んでいるかたは

JavaScriptJavaScriptJavaScript

やってみたらどうだろう。

 

(2020/05/20 追記)

中学生の若い諸君、「Dart」やっとけ!
今後伸びてくると思う

Arch Linux インストール(インストール後の環境設定)

さて、先週に引き続き Arch Linux をインストールしていくよ。

 

いよいよ、基本パッケージをインストールするよ。

# pacstrap /mnt base base-deval

 

少し時間がかかるよ。

私の場合「3分」ぐらいかかった。

 

fstabを生成するよ。

現在マウントされているパーティションをもとに、適切な値を書き込んでくれるよ。

# genfstab -U -p /mnt >> /mnt/etc/fstab

 

ここまでの作業はUSBブートした Arch Linux で作業を行っていたんだが

ここからはSSDにインストールした Arch Linux のほうに入って作業を行うよ。

これをルートを切り替えるって表現するんだ。

# arch-chroot /mnt /bin/bash

 

タイムゾーンを設定するよ。

# vi /etc/locale.gen

上記ファイルの中で次の2行を見つけて先頭の「#」を削除してくれ。

#はコメントの意味なのでコメントを解除して有効にすることになるよ。

en_US.UTF-8 UTF-8

ja_JP.UTF-8 UTF-8

 

次は、言語ロケールを生成するよ。

#locale-gen

 

次は、デフォルトのロケールを設定するよ。

まだ日本語環境が整ってないのでここでは英語にしておくよ。

# echo LANG=en_US.UTF-8 > /etc/locale.conf

# export LANG=en_US.UTF-8

 

キーボード配列を日本語にするよ。

# loadkeys jp106

# echo KEYMAP=jp106 > /etc/vconsole.conf

 

タイムゾーンを設定するよ。

# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# hwclock --systohc -utc

 

ホスト名を設定するよ。

ホスト名は何でもいいがここでは「kira」とするよ。

自分の好きな分かりやすい名前を付けてくれ。

# echo kira > /etc/hostname

# vi /etc/hosts

127.0.0.1 localhost.localdomain localhost kira
::1 localhost.localdomain localhost kira

 

無線LANの設定をやるよ。

前にやって現在、無線LANにつながっていると思うけど

再起動しちゃうと設定が失われるから、再起動してもOKな

ように設定するよ。

# lspci -k

「wireless」という文字を探してね。

あったらドライバがロードされていて使える状態にあるよ。

 

# ip link

ネットワークインターフェースの一覧と状態を表示するよ。

先頭が「wlp」になってるものはあるかな?

私の場合は、「wlp2s0」となっている。

あとで使うからメモしておいてくれ。

 

# ip link set wlp2s0 up

# cd /etc/netctl

# cp example/wireless-wpa wireless

# chmod 600 wireless

# vi wireless

Interface=wlan0 → wlp2s0

ESSID='MyNetwork' → F660T-mmpx-A

Key='wirelesskey' → 暗号化のキー

赤い部分を書き換えてくれ。

 

# netctl enable wireless

 

次は、ルートのパスワードを設定するよ。

# passwd

 

パッケージデータベースのアップデートを行うよ。

# pacman -Syy

 

Kira L93はIntel CPUなのでIntelのマイクロコードのアップデートを有効にするよ。

# pacman -S intel-ucode

 

ブートローダーをインストールするよ。

# pacman -S dotfstools efibootmgr

# pacman -S grub

# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck

 

/boot/EFI/bootにもブータブルスタブを作成しておくよ。
# mkdir /boot/EFI/boot
# cp /boot/EFI/arch_grub/grubx64.efi /boot/EFI/boot/bootx64.efi

 

grub.cfgを作成するよ。
# grub-mkconfig -o /boot/grub/grub.cfg

 

よっしゃー!

設定はこれで終わった。お疲れさま。

再起動するよ。

USBメモリは抜いておいてくれよ、USBから起動してしまうんで。
# exit
# umount -R /mnt
# reboot

 

さて、うまくいってたら、SSDから Arch Linux が起動するよ。

Arch Linux インストール(パーティション編)

さて、先週はWifiでネットワークにつなげるまでできたよね。

今日は、続きをやっていくよ。

 

HDDのパーティション分割を行うよ。

WindowsだとCドライブだとかDドライブだとか見たことあるかな?

これは、1つのHDDをCドライブとDドライブに分割して

CドライブにはOSを入れる、

Dドライブにはユーザーデータを入れるとか

使う用途によって分割しておくと便利なんだ。

 

パーティションについては、以下の記事が詳しいので

分からない人は読んで欲しい。

 

eng-entrance.com

 

今回は、個人で使用するPCなのでシンプルに

最低限のパーティション分割にしようと思う。

 

  1. EFI システムパーティション:200M(FAT32)
  2. 残り全部(Ext4

という2つに分割するよ。

 

(※スワップ領域はメモリが8Gあるので不要らしい、後でスワップファイルとして設定できるので今回は作らない)

 

下記コマンドを入力してくれ。

赤い文字の部分が入力したコマンドだよ。

(そのままエンター)のところはdefaultのままでいいので、

何も入力せずにエンターキーを押すよ。

 

# sgdisk --zap-all /dev/sda
Creating new GPT entries
GPT data structures destroyed! you may now partition the disk using fdisk or
other utilities.

# fdisk -l
Disk / dev/sda : 119.2 GiB, 128035676160 bytes, 250069680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes/ 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdb: 3.7 GiB, 3965190144 bytes, 7744512 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0058f1e5

Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 7744511 7742464 3.7G c W95 FAT32 (LBA)

Disk /dev/loop0: 442.1 MiB, 463548416 bytes, 905368 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

# gdisk /dev/sda
GPT fdisk (gDisk) version 1.0.3

Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present

Creating new GPT entries.

Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y

Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-250069646, default = 2048) or {+-}size{KMGTP};(そのままエンター)
Last sector (2048-250069646, default = 250069649) or {+-}size{KMGTP}: +200M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): ef00
Changed type of partition to 'EFI System'

Command (? for help): n
Partition number (2-128, default 2):(そのままエンター)
First sector (34-250069646, default = 411648) or {+-}size{KMGTP}:(そのままエンター)
Last sector (411648-250069646, default = 250069646) or {+-}size{KMGTP}:(そのままエンター)
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Tnter = 8300):(そのままエンター)
Changed type of partition to 'Linux filesystem'

Command (? for help): w

Final checkes complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK: writing new GUID partition table (GPT) to /dev/sda.

 

よし、これでパーティションの分割ができた。

次は、フォーマットを行うよ。

 

# mkfs.fat -F32 /dev/sda1

# mkfs.ext4 /dev/sda2

 

次は、マウントを行うよ。

 

# mount /dev/sda2 /mnt

# mkdir /mnt/boot

# mount /dev/sda1 /mnt/boot

 

次は、ミラーリストを編集するよ。

ミラーリストというのはパッケージをダウンロードするとき、どこのサイトから 行うかを記述しているものだ。海外のサーバーだとダウンロードが遅いので日本のサーバーに変更するよ。

 

# vi /etc/pacman.d/mirrorlist

上記ファイルの中で「jaist」という行を探して上に持ってくる。

上にあるほど優先順位が高いんだ。

 

次は、時間を合わすよ。

# timedatectl set-ntp true

 

さて、いよいよインストールだ。

続きは来週(ってTVかよ!)

Arch Linux をUSBから起動してインストール

先週で、

Arch Linuxのブート可能なUSBができたと思うので

今日は、これでインストールしていくよ。

 

PCの電源を切って、

USBポートにUSBメモリを指して

電源をONしてくれ。

 

何もせずにほっておくと

Windowsが起動してしまうよ。

 

これは、OSを起動する順番があって

通常はUSBよりHDDドライブの方が

優先順位が高くなってなっているためだ。

 

これを変えるには、

電源をONした直後に何かのキーを押して

Bios画面を出すんだ。

このBios画面で起動順序を変えてあげる必要がある。

 

じゃあ、何のキーを押すかというと

分からないので検索してみよう。

 

dynabook kira l93 bios 起動方法」で検索

すると、DelキーとかF2キーとかF12とか

いろいろな情報が出てきてよくわからない。

まあ、壊れたりしないから

適当に押してみよう。

 

Biosが起動できたかな。(F12が当たりだったかな?)

ここで「Boot sequence」を変えてあげるよ。

USBというのをHDDより上に移動させて

保存して終了させよう。

 

するとUSBから起動され、Arch Linuxの画面が出てくると思う。

rootユーザーでログインされ、コマンドプロンプトが表示されるよ。

 

以前調べた、以下のサイトを参考にするよ。

  1. インストールガイド - ArchWiki - Arch Linux
  2. Arch Linuxインストール | 普段使いのArch Linux
  3. AzSky2 - Arch Linux の使い方

 

まずはキーボードレイアウトを変更するよ。

デフォルトのキーボードレイアウトは US キーボードなので日本語にするよ。

これをやってないと記号などが思うように打てず、やっかいだからね。

# loadkeys jp106

(先頭の#はコマンドプロンプトの意味なので入力する必要がない)

 

次は、起動モードの確認
Kira L93はUEFI モードで起動しているはずだが念の為確認。

# ls /sys/firmware/efi/efivars

ディレクトリが存在してるよね?

「はい」

 

よし、では次。

無線LANを設定してネットにつなげる

①# ip link show

②# ip link set wlp2s0 up

③# iwlist wlp2s0 scanning | grep ESSID

④# wpa_supplicant -B -i wlp2s0 -c <(wpa_passphrase F660T-mmpx-A pass)

 

青字の「F660T-mmpx-A」は③で検索された無線LANのアクセスポイントを設定する

赤字の「pass」はアクセスポイントのパスワードを設定する

 

⑤# dhcpcd

⑥# ping google.com

 

⑥のコマンドでgoogle.comに接続できるかをテストしているが

つながったかな?

 

ちょっと長くなったのでまた続きは来週に

 

さあ、Arch Linux をインストールするよ

まずは、Arch Linux のブートUSBを作るよ

 

「Arch Linux ダウンロード」で検索

Arch Linux JP Project - ダウンロード

というArch Linuxの日本語サイトが

出てくると思うので、これを参考にするよ。

 

参考サイトに書いてある日本の適当なサーバー(jaist.ac.jp)

から「archlinux-2018.04.01-x86_64.iso」をダウンロードしてくれ。

赤字(2018.04.01)の部分は日付なので作業した日付によって変わってくるからね。

上記は、2018.04.15時点のファイル名だ。

 

さあ、ダウンロードが終わったかな。

いちよう、ハッシュ値を確認しておくよ。

なぜかというと、配布用のサーバーに保管されているarchの

isoファイルが破損していたり改変されていないかを確認するためだ。

isoファイルと同じところに「sha1sums.txt」というファイルも置いてあるはずだ。

このファイルの中身とダウンロードしたisoファイルから作成したハッシュ値

同じだったら、isoファイルが正しいことになる。

 

では、ダウンロードしたisoファイルのハッシュ値を計算してみよう。

md5 windows」で検索

すると、windowsでも特別なツールを入れることなく

標準でハッシュ値の計算ができるようである。

コマンドプロンプトで下記コマンドを実行

certutil -hashfile archlinux-2018.04.01-x86_64.iso SHA1

すると、何やら数字とアルファベットの文字が表示されると思う。

これがハッシュ値だ。これと、Arch Linuxダウンロードサーバーの

「sha1sums.txt」を比較してくれ。

同じかな?

「あ、同じだ」

 

よし、では次に進もう。

あとは、USBメモリに焼いたらいいんだが、

単純にコピーしただけだとだめなんだ。

ブート可能なUSB(ブータブルUSB)にする必要がある。

 

「usb boot ツール」で検索

なんでもいいんだが、今回は「Rufus」というツールを使うよ

Rufusをダウンロード&インストールしてくれ。

 

USBメモリを差し、

Rufus起動し、

ダウンロードした「archlinux-2018.04.01-x86_64.iso」を選択すればいい。

 

簡単だから大丈夫だよね?

これで、ブート可能なUSBができた。

 

さあ、来週からこのブータブルUSBを使って

Arch Linuxをインストールしていくよ。

とにかくOSをインストールするんだ

え、なに?

ITスキルを付けたいだって。

それじゃあ、まずはやってみようか。

 

PCは持ってるよね?

「ウン」

 

機種は?

Toshiba Kira L93だよ」

 

OSは?

Windows 10 Homeが入ってる」

 

そっか、じゃあ、Windows捨ててLinuxでも入れよう。

なぜなら、Windowsはみんなが使ってる、

みんなと同じことやったって競争が激しいから

みんながやらないことをやったほうがいい。

みんなが表の国道を通るなら、みんなの行かない県道の裏道を行こう。

裏道だから、いろんな障害があると思うけど

きっと乗り越えられるからね。

 

というわけで、Toshiba Kira L93 にLinuxを入れるよ。

Linuxにはいろんな種類があって迷うけど、

今回は「Arch Linux」にするよ。

Ubuntu は簡単にインストールできちゃって面白くないからね)

(あとローリングリリースといって日々進化した最新版が提供されるからおすすめだ)

 

まずはやりたいことをグーグルで検索してみよう

「archlinux インストール」と入力して検索してみよう。

ここで「インストール」と日本語を入れているところがミソだよ。

英語で「install」とやっちゃうと英語のサイトが多く出てくるからね。

もちろん、英語ができるのであれば全く問題ないけれど。

君は英語はあまり得意じゃないので日本語のほうがいいだろう。

 

検索するといっぱい出てくると思うけど

今回は、以下のサイトを参考にするよ。

  1. インストールガイド - ArchWiki - Arch Linux
  2. Arch Linuxインストール | 普段使いのArch Linux
  3. AzSky2 - Arch Linux の使い方

 

1つの情報に依存してしまうと間違いや

間違ってないにしてもベストでないやり方が書いてある

かもしれないので、3つぐらいの情報を見て

自分で判断しながらやったほうがいいよ。

 

まあ、今回は「1」のサイトはArch Linuxの公式Wikiだから

間違いないだろうけど、情報量が多すぎて読むのが大変だから

簡潔にまとまっている「2」と「3」のサイトも参考にするよ。

 

まずは、上記3つのサイトをざっと読んでみようか。

実際の作業は来週やろうか。

じゃあ、それまでに読んでおいてね。