【Console Application】コンソールアプリを作り終えて【学習記】
今回の概略
Java …資料もライブラリも一杯。でも Android 開発の第一線は Kotlin へ移行…🙄
Java しか分からんって人が Android もやりたい入り口にはなるかな🤔
Kotlin … Java の糖衣言語?いやいや、だいぶ強力で今から Android やるなら断然 Kotlin 🤤
ただ、最終的に Java に翻訳されるので Java のライブラリの扱いを知っていた方が有利…かも😑
Objective-C … C 言語に特殊なガワを被せたラッパー言語😑
位置付け的には Android の Java みたいな感じで今から学ぶのはチョット… C しか分からんって人が iPhone (略
Swift … 文法が OC に寄った糖衣言語っぽい仕様の開発言語😑
iOS とかならこちらが第一線だけれどまだ OC のライブラリを参照する場合も多く、規模の大きいアプリで純 Swift 産はもう少し先になりそう…🤔
#学習記 #Java #Kotlin #Objective_C #Swift
各言語の特徴
先に言っておくとこれは記者の感想で、コンソールアプリケーションというまだ「携帯端末開発の入り口にすらない」状態でのモノである事を前提で読んで欲しいかな🤤
まず言語ごとの紹介みたいな感想を列挙しようかな🤔
Java
かつて業界で猛威を振るった開発言語🤔
天啓さんが有料化へ持っていったので数は減ったみたいだけど無料だった歴史が長く沢山の企業がこの言語で開発を行ったんだけど企業案件で有料化されて他に移る事もできずに…みたいな状態になっているトコは結構有るみたい🙄
そんな経緯で個人ライブラリを持っているだとか技術者人口だとかが多くて携帯端末用アプリでも流れてくる人が多かったみたい😑
携帯端末用環境として Java を選んだ Android は Java エンジンさえ積めば良いのでバイナリ水準で違いを考える必要が無く、開発者が多いのも Java 技術者人口所以だろうなって思う🤤
但し、高速化には結局機種専用のバイナリを作る必要があってアプリでそれに対応しているのはメーカ製のアプリだけじゃないかなって思う😞
作り方に気をつければ Java プラットフォームなので OS の影響を受けないところが強みだけれど Java は PC だと今は制限が増えてしまっているのでコンソール以外では最早 Android か企業案件以外では使われなくなったと考えて差し支えないかな🤔
豊富な日本語資料が存在しているのが開発参入を後押ししてると思うけど Android 用の開発は Kotlin に移行しつつあって、「 Java でやりたい」という人は Kotlin ライブラリを呼ぶ方法を学ぶ必要が有り、最新の技術を使うにもいつも Kotlin ライブラリから、という状況になりつつあるので今から「 Android 開発したいから Java 」は賢明な判断とは言えないかな😞
「 Java しか分からん」とかいう場合に入り口として機能するかな?くらいの認識が良いと思う😑
昔は Android も Java だったから資料は有るけれど最新を Java でやるには?みたいな資料は多分出てこないと思う😞
Kotlin
Android の最先端で行きたいなら外せない言語 Kotlin 🤤
ただ、コンパイルすると Java なので「 Java 族」って呼んでも良いなじゃないかな?これ🤔
Java でできていた事は「ほぼ」可能だけれど「 null 安全」とか「過剰な static 排除」で勝手が変わっていて Java でやっていた、所謂「トリッキーな技法」は分解して記述するハメになると思うので短絡表記でドヤ顔してた様な人程 Kotlin への移行に苦労すると思う😞
Java と違う gradle とかのビルドバッチシステム?を使う必要が有り、学習していた段階では色々自動になってなくてかなり不親切で日本語資料も少ないので学習者としては参入の大きな障壁になると思う😩
他の言語触っててある程度開発環境の知識があると思う自分ですら「ちゃんとアプリを動かせるようになる」のに凄い時間が掛かったくらいだから初心者はそこで諦めちゃってもおかしくないんじゃない?これ🙄
ただ、もしかしたら Windows だと割りと素直に行くかもしれないってのも一応書いておいた方が良いかな
🤔
Objective-C
C 言語使いたい人!はい、 OC でどうぞ!終わり!🤪🤛
学習では C++ でやってたので若干資料が見つからなくて苦労したけれど核になる処理を C/C++ で書いて入り口は OC というのが恐らく最も困らない開発の仕方になるんじゃないかなと思う🤔
C/C++ の技術はそのまま使えるけれど、 OC の予約語や作法がぶつかる事が有るのでその辺り注意かな?その辺りは資料も少ないし😞
Android の Java と同じく、一線は次の新しい言語へ移行していってるので C/C++ の資産を取り込みたい、という場合以外ではオススメできないかな…🤔
OC での変換も手間で、やりくりして C の使いにくさを「減らした」感じの言語かなと感じたお🙄
Java と大きく違うのは、 Java は仮想に近く、 Java 環境用の中間言語に変換されて実行、つまりゲーム機とカセットの様な関係で、 JRE というアプリ上で jar を駆動させるのに対して OC や Swift は CPU 固有のバイナリになるって所…かな?🤔
OC や Swift の、自分の学習記で言う Xcode 族の言語は実行先が Mac か iPhone,iPad というアップルの環境でしか使わないから Java の様に中間言語じゃなくて専用 CPU 用バイナリになるお😑
以前から Android と iPhone では処理の速度に違いが有ってブラウザでさえも Android はカクカクだったっていう時代が有ったけどそういうカラクリなのよね🤔
こちらも今からやるのはオススメできなくて C/C++ で得意な処理のライブラリ…じゃないなら Swift の方が良さそう😑
Swift
iPhone , iPad , Apple Watch , macOS ………今これらのアプリを開発するなら Swift 😑
でも OC で開発した資産も膨大なので OC のライブラリも取り込める様に配慮された言語🙄
どうしても OC や使用するライブラリの C/C++ の作法ひ引きずられるのが現状で OC の事をある程度知ってないとちょっと開発に時間がかかるかも…😞
まぁ、 Inside Macintosh とかいうとんでもない量の資料を手に入れても開発が難しい時代からすれば随分と参入しやすくなったなって感じるけれど🤪
「どうだい、俺達の開発言語はスマートだろう?」ってのが随所に有って正直開発言語として良くない傾向にあるなって学習しててずっと感じてた😞
こんな解りにくい言語でドヤるなら
もうお前らアセンブラでいいだろよ
って言いたい…多分、 Swift 作成の旗振り約はラムダ構文の信奉者だと思う😑
特徴だけで見たら
安心の Java 、それが進化した Kotlin 、時代遅れの C にガワを被せた OC 、 イキ杉攻め杉 Swift …かな🙄
特徴だけで見た Android と Apple の携帯端末開発の学習者の参入難度は Android に軍配かな…🤔
残念だけど OC も Swift も入門者が学ぶには癖が強すぎるお…😞