どうも、フリーランスのITエンジニア兼ブロガー兼投資家のKerubitoです。
「プログラミングにテンキーは必要なんでしょうか?」
たまに聞かれるこのフレーズ。
まず結論から申しますと、「特殊なことをしないのであれば、テンキーは不要!」
もう一度言います。
「テンキーいらねえ!」
なぜいらないと言い切るのか、またいる場合についても説明していきたいと思います。
そもそもテンキーってなに?
テンキーとは数値を入力するためのキーボードの一部、またはキーパッドの一部。
Wikipedia的な説明だとこんな感じです。
独立しているものだとこのような製品ですね。
見たとおり、数値を入力するのに便利な代物ですね。
プログラミングにテンキーが必要ない理由
プログラミングにテンキーが必要ない理由ですが、「数値を入れる機会がそんなにないから」です。
そのまんまですが・・・。
下のコードを見てください。
これは私が以前作成したものですが、一文字も数値はありません(笑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | func save(id: String, key: String, data: T) { let encoder = JSONEncoder() do { let encoded = try encoder.encode(data) let query: [String: Any] = [ kSecClass as String: kSecClassGenericPassword, kSecAttrService as String: key, kSecAttrAccount as String: id, kSecValueData as String: encoded, ] let status = SecItemCopyMatching(query as CFDictionary, nil) switch status { case errSecItemNotFound: SecItemAdd(query as CFDictionary, nil) case errSecSuccess: SecItemUpdate(query as CFDictionary, [kSecValueData as String: encoded] as CFDictionary) default: print("該当なし") } } catch { print("エラー") } } |
もちろん無理に数値を排除しているわけではなく、自然とこうなっています。
このコードは以下の記事にも掲載されていますので、よかったらどうぞ。
【Swift】キーチェーンにライブラリなしでデータを保存
どうも、フリーランスのITエンジニア兼ブロガー兼投資家のKerubitoです。 キーチェーンにデータ(ユーザーID、パスワード、証明書、秘密鍵)を保存したい。 よくあることかと。 ライブラリを使うと簡 ...
続きを見る
たまたまかもしれませんので、もう一つ例をあげてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | Class UpgradeNotice { internal static let shared = UpgradeNotice() private init() {} private let apple_id = "***" internal func fire() { guard let url = URL(string: "https://itunes.apple.com/jp/lookup?id=\(apple_id)") else { return } let request = URLRequest(url: url, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 60) let task = URLSession.shared.dataTask(with: request, completionHandler: { (data, response, error) in guard let data = data else { return } do { let jsonData = try JSONSerialization.jsonObject(with: data) as? [String: Any] guard let storeVersion = ((jsonData?["results"] as? [Any])?.first as? [String : Any])?["version"] as? String, let appVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String else { return } switch storeVersion.compare(appVersion, options: .numeric) { case .orderedDescending: DispatchQueue.main.async { self.showAlert() } return case .orderedSame, .orderedAscending: return } }catch { } }) task.resume() } } |
こっちは「60」という数値が出てきました。
ただ、2文字のみです。
このコードは以下の記事にも掲載されていますので、よかったらどうぞ。
SwiftでiOSアプリの更新(アップデート)通知を最速で簡単に自作してみた
どうも、フリーランスのITエンジニア兼ブロガー兼投資家のKerubitoです。 アプリ開発者なら必ず通る更新通知。 こういうやつですね。 アプリを運用・保守していくには必須の機能になるかと。 Swif ...
続きを見る
どうでしょうか?
これだけみたら、ほとんど数値は入力していないことがわかるかと思います。
プログラミングで数値をそれほど入力しない理由
上のようにプログラミングではあまり数値を入力しません。
その理由は「プログラミングとはコンピュータと人間の会話」だからです。
人間 → 画面に文字を表示して → コンピューター → ほらよ!
人間 → 写真を撮影して → コンピューター → ほらよ!
人間 → 入力した文字を受け取って → コンピューター → ほらよ!
みたいな感じで、人間はコンピューターにさせたいことを指示し、コンピュータは指示どおりに動きます。
人間の言葉をコンピューターが理解してくれれば楽なのですが、今のところ無理なので、プログラムでコンピューターと会話しなければなりません。
人間の会話でもそうですが、普段の会話で数値はそれほど出てこないでしょう。
「◯◯の資料を作成しておいて」
「会議日程を調整したい」
などなど、そんなに数値は入ってきません。
プログラミングで数値が必要なケース
上でプログラミングで数値を入力する頻度が少ない理由について説明しましたが、もちろん異なるケースもあります。
これは人間世界でも同じことが言えますね。
たとえば、企業の経理部門の人は数値を毎日扱っていると思います。
また、金融系、銀行や証券会社になると事業自体が数値と深い関わりがありますので、その組織内の多くの人も業務で数値を扱います。
そうなると会話の中にも数値がよく出てくるんですね。
システムも同じで、会計システムだと数値が必ず出てきます。
ただ、少しややこしいのが、だからといってコードの中に数値がうじゃうじゃ出てくるかというとそうでもありません。
なぜかというと、数値自体はデータベースというデータを保存するコンピュータに入っているからです。
プログラムはデータベースに数値を保存したり、保存した数値を読み出したりはするのですが、数値自体は変数という形で持ちます。
仮に得意先からの100万円入金があったとし、それがデータベースに保存されていたとしますね。
その情報を画面に表示したい場合、プログラム上は以下のような書き方になるんです。
入金金額 = データベース.入金.金額
左の入金額が変数になり、100万円がセットされます。
つまり、数値を扱っているにもかかわらず、コード上はまったく数値が出てこないというわけです。
おすすめのキーボード
せっかくなので、テンキーなしのおすすめのキーボードを紹介しておきます。
レノボ・ジャパン ThinkPad トラックポイント・キーボード - 英語 0B47190
信頼性の高いレノボのキーボード。
打刻感が素晴らしく、長時間使っても疲れないプログラマー向けの製品です。
英語表記のクールなデザインで、価格も7,000円前後とリーズナブルなのも魅力。
有線であることが気にならない人であれば、おすすめですね。
サンワサプライ(SANWA SUPPLY) 英語配列USBスリムキーボード SKB-E3UN
薄型、軽量のプログラマー向けキーボード。
本体サイズは29.3×11.5×1.9cmで、非常にコンパクト。
パンタグラフ式なので、ノートパソコンを日々使っている人と相性が良いです。
正直、そこまで高品質ではないですが、3,000円前後で買えますので初級プログラマーであればこれで充分!
東プレ REALFORCE R2 テンキーレス「PFU Limited Edition」英語配列 (ブラック) PZ-R2TLSA-US4-BK
人間工学を考慮しており長時間の入力でも疲れづらく、耐久性にも優れているため、業務用入力機器として高い支持を集めているハイエンドモデル。
キースイッチのオン位置を1.5mm~3mmの3段階で調整できるのもすごいです。
価格は3万前後と高いですが、本気でプログラミングをやるのであれば買って後悔なしの一品。
まとめ:プログラミングにテンキーは不要
この記事に辿り着いたということはそれほどプログラミングに慣れてない人だと思います。
そういった人たちに再度言います。
「テンキーは不要なので、テンキーのないキーボードを買いなさい!」
それでもテンキーが必要になるかもしれないと不安な場合は、テンキーだけのキーパッドを買えばいいと思います。
で、もし必要になったらそのときテンキーを引っ張り出してくればいいのです。