はてなキーワード: CLIとは
世の中にはプログラミングしたくないのに、テック系をやりたいという変種がおるねん。あいつらな、コマンドラインとか Windows についてるやつプロンプトすら起動しないのに、マトリックスや攻殻機動隊の CLI みたいなの絶賛するのよ。そういう奴らが、勝手に理想のエンジニアとか情報倫理とか妄想すんねん。それで、勝手にテック系の「本当の金持ちは〇〇」みたいなマナー講師になっちゃうのよ。そういうやつはさ、現実で実践させるとボロが出るねん。だから、リアルな場合の質問をされると困るので、時間が経つと高圧的な奴が生き残るわけ。時事問題に絡めると、ビッグモーターの自動車の知識のない、そんな二世社長がアイツに傾倒するのは、当然だと思わないか?
Linux Mintを常日頃から使っている。
まず俺はカスタマイズ厨のくせに設定をめんどくさがる部分もある。だからArch Linuxより、安定しているLinux Mintを使う。
そのくせできるだけ軽量化するようなこともしたいので、ウィンドウマネージャなどは見た目的につまらない軽量志向ものを使う。
なんといっても*nix系に慣れているので、CLIはそれ系に互換でないとイライラする。
それで使っているうちに「AI」だの「ニュース」だのに情報を抜かれるのも嫌なので、Windowsはクソと思ってる。
だが最近またFF14をやりたくなってきて、wineじゃガタガタするしWindowsを入れ直そうかなと考えている。
「何を開発するかによる」
というのがおそらくは妥当な答えだろう。
どうもネット界隈だとデカい顔しているWeb系のコーダーが、したり顔でCLIが使えることの重要さを説いているけど、笑っちゃうわ。
そんなのサーバの面倒見るのもセットという、お前らの環境が特殊すぎなんだよ。
そうでもなきゃ、今どきコマンドなんてネットワークスイッチいじるときくらいしか使わないだろ。
まあだからネットワークの専門家になるというなら、CLI見ると腹壊すようでは多分問題。
でもコードいじって遊んでる分にはどうでもいい話だと思うわ。
プログラミングだったら今やWindowsやmacでも、超快適な環境を超簡単にセットアップできる。
だからプログラミングの道具としてデスクトップLinuxを選択する理由は全くない。
そもそもLinuxはプログラミング以前に、MSOfficeもPhotoshopも使えないじゃん。
代替ソフトが使える?品質が低すぎて全然解決になってないから。
果たしてデスクトップLinuxのユーザに、ソフトウェアがオープンソースかプロプライエタリかが問題になるレベルで使っている人間がどれほどいるのかっていう。
CLIを経験できる?経験できたらなんか凄いの?それだけのために他の全てを犠牲にするとか意味がわかりません。
あるいは
自宅ネットワークで、セキュリティのためにタグVLAN切ったりしたいけどEdgeRouterとか中古RTXのようなCLIで設定するのはめんどくさいな…。Wi-Fiとかも1つの機器で一緒にやってほしいな…。という人にピッタリ。
半年ほど前にUnifi Dream Machine(UDM)を買って、GUIやアプリで細かいところまで設定できるし(CLIアクセスは可能だけど使ったことない)便利だなあと思っていながら愛用していたら、先月にUDRの日本版が発売された。UDM買ったばかりなので迷ったけど、PoEとWi-Fi6がほしいので買ってみた。UDMより安いしね。
結果としては大正解で、UDMとくらべてWi-Fiが強くなって風呂に届くようになり、PoE対応で電源タップを1つ開けることができ、Wi-Fi 6対応で自己満足を得ることもできた。CPUのスペックが下がってるのが懸念点だったけど、スピードテストやCPU使用率の値を見る限りでは個人ユースでは問題なさそう(DPIをつけて外向き600Mbps程度は出る模様。それ以上出るのかは不明)。
一つ気になったのはファンの音で、UDMでは無音に等しかったのがUDRでは若干音が聞こえるようになった。上部のカバーが揺れてるのが音の原因の一つらしく、カバーと本体を養生テープで固定したら気にならなくなった。寝室に置くならUDMにしておいたほうがいいかも。
Unifi製品は安くて(英語が読めるなら)ナレッジも多く、ライセンス料不要でアップデートしてくれるのでおすすめです。APあたりも買ってみたい。
昔は難しかったと思うよ。
どのソフトもシリアルナンバーをオフライン認証で入力するだけだった。尻集とかあったりしてな。
でも今はストアとかあって普通に有料のアプリ出せるし、みんな平気で金出すよね。俺も出すようになった。
ストアに公開するのはめんどくさいけど、ノウハウもネットにいっぱい上がってるし、超売れるんじゃねみたいな妄想を膨らませればまぁなんとかいける。
他のソフトはクソみたいなやつでもいっぱい売ってウハウハなのに、なんで俺はフリーソフトで敬意も何もないユーザーの意味不明なバグ報告のお世話係しなきゃならねんだよ。
そう思って1つ試しに出してみたらチャリンチャリン入ってきやがった。
なんだよ超簡単かよ。
これだけで生活するには厳しいが、本当もうなんでタダで出してたのか分からなくなったわ。
そういえば昨日、普段お世話になってる無料のCLIツールの作者に5000円PayPalで送ったらすぐ返事がきたよ。
道中気をつけてな。
自称優秀な人物はたくさんいるが、本当に優秀な人物は限定される。これは、自称金持ちはいるけど本当の金持ちは少ないのと同じだ。
たとえば優秀なプログラマーを見抜くには、条件を追加していけばよい。
以下はただの例 (状況に合わせて任意に条件が変わると考えてほしい)
面接の場合は知識を偽装できてしまうが、技術試験筆記試験の場合は偽装ができない。偽装できない方法で基礎があるかテストすれば大体はふるい落とせる。
「必要になってからやればいい」だと「動けばいい」で仕事をこなす糞コーダが量産されそうだけど、それでいいと思ってるってこと?
「動けばいいでは済まない」事態にならない限り、どれだけソースの保守性が低かろうがいいとも読めるんだが?
それで信頼を失うのが当の本人だけなら勝手にすればいいが、それだけで済まないケースも多々あって、なんなら巻き込まれる可能性も普通にある。
確固たる目的があるということで、PHPをいきなり勉強するのって環境作るだけで結構ハードル高いと思うけどなあ…。
↑を書いた元増田ですが、VBの話から派生した話で、やたらコマンドライン(以下CLI)を使った開発に否定的な人間がいて閉口した件。
そりゃ一口に開発と言っても色々なので、本当に統合開発環境(以下IDE)だけで開発するケースもあるのは、こっちも知ってるんだよ。
だから学習者の中で「何をやりたいか」が既に決まっているなら、CLIを全く触らずプログラミングを学ぶケースもアリということなのだろう。
1つ目は、そもそも「プログラムって何?」というレベルの人が「何をやりたいか」なんて決まっているわけがないので、最初から「何をやるか」を決めてかかるのはナンセンスという話。
むしろどういう開発に進んでもいいように、「等号は代入を意味する」辺りから始まって、どんなプログラミングでも基礎の基礎になる、データ構造とアルゴリズムを意識させることに集中させたい。
そのためには難易度低めで比較的潰しが効く言語を、できるだけシンプルな手順で作業できる開発環境で学べる方がいい。
そしたらPythonの実行環境とそこそこ以上の機能を持つテキストエディタを入れて、コマンドプロンプトとかPowerShellとかのCLIから"Helllo, world"が取っ掛かりだと思うわけ。
もしLinuxの環境が用意できるなら同じことをLinuxでも試してもらって、プラットフォームに依存しない開発の入り口くらいを知っておければベター。
いずれにせよ何かを実行する方法が1つではないという重要な知見は、できれば基礎のうちに知ってもらいたいことの1つだし、それはWindowsとLinuxとかCLIとIDEという対比がうってつけかなーと。
ちなみにIDEは、Pythonによる手続き型プログラミングに慣れた後のタイミングで学べばいいと思う。
そこまで行ったら変数の型や、クラスとオブジェクトとかの難しい話をGo言語で学んでおくことで、現場で使われているJava、C#、swiftへの移行もスムーズになりそうだし。
ちなみに「初心者コース」の最後、もし可能ならRustでポインタとメモリの話の触りくらいを体験してもらえると、組み込みに進む際のハードルが少しは下がるんじゃないかな。
もう1つは、いくら現場によってはIDEだけで開発する現実があっても、CLIを使った開発がどういうものかくらい、プログラマにとっては知ってて当たり前じゃねーの?という話。
もちろん「プログラマが何を知ってて当たり前なのか」は、時代の移り変わりとともにどんどん変わる。
大昔ならおそらく機械語とかが必須だっただろうけど、今なら機械語よりはHTMLを読めるほうが遥かに重要なわけで。
あと、UNIX系OSをパーティションごとに主要なディレクトリを分割してインストールしていた時代であれば、edエディタの使い方は必須だったと聞く。
(/binに入るエディタがedのみだったため、もし使えないとシステムクラッシュして/以外マウントできなくなったときに詰む)
でも今やそんなの完全に過去の話どころか、viとemacsの論争ですら多分古い方の問題になるだろう。
そういう過去の諸々も踏まえるとCLIが未来永劫、プログラマにとって常識的なナレッジだとは自分も思っていない。
でも今はまだ、プログラマを名乗るならCLIからコンパイルだ実行だくらいの基礎は知ってて当然だと思うんだが。
どっちも種類によって使い方も違うんやし
UNIX系OSでバックエンド開発しようとしてる人に「XCodeインストールしてください」「AndroidSDKの仕様学んでください」はおかしいのと同様に
Androidアプリ開発しようとしてる人に「UNIXのCLIの使い方を学んでください」「laravel環境構築してください」はおかしいんやで
それじゃCLIがオプション扱いになっているようにしか見えないわ。
結局のところ「CLIは必要に応じて学ぶ」ことにしたいんだろ?