【IT】プログラマーだけではない、全ての人がPythonを学ぶべきたった1つの理由
■ このスレッドは過去ログ倉庫に格納されています
「Pythonはどうしてこんなにはやっているんですか」。プログラミングを最近学び始めた人と話をしていて、そんな質問を受けた。自分としてはPythonを学ぶ意義は自明だと思っていたが、プログラミングにあまり詳しくない人にはそうでないのかもしれない。 私は、2019年10月上旬に開催されたイベント「日経 xTECH EXPO 2019」で、「非プログラマーがPythonを学ぶ意義」と題して講演した。そこで今回のコラムでは、この講演のプレゼンテーションを基に、Pythonを学ぶべき理由を説明したい。 ただ、内容を少しだけ変えようと思う。講演では非プログラマーを対象にしていたが、今回のコラムではプログラマーを含めたすべての人を対象にする。Python以外の言語を使っているプログラマーにとっても有用な内容だと思うからだ。講演では、非プログラマーがプログラミングを学ぶ意義を最初に説明したが、その部分は省略する。 Pythonが得意とする分野 世の中にはたくさんのプログラミング言語がある。よく使われているものだけでも、C、C++、C#、Java、JavaScript、PHP、Python、Ruby、Swiftなど様々だ。マイナーな言語も入れると数え切れないくらいある。 プログラミング言語を「汎用プログラミング言語」と呼ぶこともある。どの言語を選んでも、理論的にはどんなロジックでも記述できるという意味だ。この特徴を「チューリング完全」と呼ぶ。チューリング完全でない言語は、普通はプログラミング言語とは呼ばない。 もっとも、言語ごとに得意分野は存在する。例えば、「ある分野で言語Aを使うと処理を一から書かなければならずシステムの開発が大変なのに対し、言語Bは豊富なライブラリーを持つため簡単にシステムを開発できる」といったことはよくある。また、「ある分野で言語Xを使うと高速に実行できるが、言語Yでは処理に時間がかかる」といったこともある。 具体的な得意分野を挙げよう。Javaはエンタープライズシステムの記述に多用されるし、JavaScriptはWebのクライアントソフトウエアの記述に主に使われる。Rubyで書かれたRuby on Rails(以下、Rails)というフレームワークは、Webアプリのサーバー側システムの開発に使われる。Swiftは、iOS向けのアプリ開発に使われている。 では、最近注目を集めているPythonの得意分野は何だろうか。それはずばり人工知能(AI)である。 以下ソース https://tech.nikkeibp.co.jp/atcl/nxt/column/18/00682/111900020/ >>23 あれか スマホがメイン機だとすれば HDMI出力(無線)&青歯キーボード&マウスってとこか あらやだカッコイイ >>4 他の言語にある for (i=0; i<100; i++) みたいな書き方ができないとか たしかに多少の癖はあるかな あとPythonの標準リストとNumPy配列が別物なのもいちいち面倒くさい ただインデント(字下げ)は、やっているうちに慣れたし ソースも見通しやすくて、全般に悪い言語ではないと思う pythonは初心者の俺でも 人間の言語に近いのか扱いやすかった ただし開発環境UIをジジイババアでも使えるようにしないと 革命とは言えない aとbの比較で等しくないとき、a!=bと書くのが気に食わない。 a<>bでいいだろうに! 等しいとの比較もa==bが気に食わない。 a=bでいいだろ。 その代わり値の代入は「:=」を使えばよろしい。 C系やる奴は馬鹿でキチガイだと思う。 for (i=1, i>=10, i++) { ・・・ } とか、構文がバカすぎて何も言えない。 {}も気に食わない。 正常な人の思考なら、 for i=1 to 10 do begin ・・・ end. だろうに。 >>1 AIはただの流行り物だからなぁ。やっぱり学ぶべきはC 言語には二種類しかない Pythonか、それ以外かだ >>29 確かに for (i=1, i>=10, i++) こんなん書くやつは馬鹿でキチガイだと思う 50代の俺がつい最近触ってみた感想は DOS時代のBATファイル?って感じかな おっさんの方がとっつきやすいのかもしれん インデントが構文要素になってるのは、アイデアとしては面白いガ 実際のところ閉じてないと気持ち悪くないか? Pythonがこのまままら、Juliaが来るだろう。 インデックス張る必要性がない繰り返しでインデックスなんて張らんし・・・ インデックス張る必要性がない繰り返しでインデックスなんて張らんし・・・ インデックス張る必要性がない繰り返しでインデックスなんて張らんし・・・ pythonのいいところは・・・exeが作れるところ! >>12 むしろCしか知らない奴の方が使えない 他人がメンテしやすいコード書かないしテキスト文字処理までいちいちCで書くとか柔軟性に欠ける奴ばかり これは多いに誤解される Pythonがいいというよりライブラリだ グーグルとかが参加してて グーグルがルビー、Javascript、タイプスクリプトに乗り換えたら話はかわる >>49 Cを知らないやつが書いたコードは、どの言語使おうが効率悪いやつ多いな ライブラリの中身がどう実装されてるかイメージできずに使ってるからな 言語はくそ。証拠にバージョン2から3でてこずっている。 JavaScript派生の「TypeScript」が爆発的人気--RedMonk分析 2019-09-15 プログラミング言語にははやり廃りがあるが、「TypeScript」の利用の急速な普及が衰える気配がないことを示す新たな証拠が公開された。 https://japan.zdnet.com/article/35142674/ Python開発の“優しい終身の独裁者”は「TypeScript」から何を学んだか 2019-10-05 https://japan.zdnet.com/article/35143547/ >>27 まずfor (i=0; i<100; i++)みたいな処理は実務でないので問題ない Microsoft、組み込みデバイスをターゲットとしたTypeScriptの高速サブセット”Static TypeScript”を発表 2019年11月7日 https://www.infoq.com/jp/news/2019/11/static-typescript-msft-paper/ JavaScript開発者が機械学習モデルを構築できる「TensorFlow.js」の使い所 2019-09-28 ウェブスクリプト言語を使って機械学習モデルを構築し訓練するのは野心的な取り組みに思えるかもしれないが、 2019年の現在では、それは完全に実行可能なことだ。 ブラウザーでの機械学習を可能にするのに役立つのが「TensorFlow.js」だ。 TensorFlow.jsは、「JavaScript」を使用して機械学習を実行するためのGoogleのオープンソースライブラリーである。 先頃、バッハ風のメロディーをオンデマンドで生成する「Google Doodle」によって、TensorFlow.jsが切り開いた大きな可能性が示された。 https://japan.zdnet.com/article/35143214/ とか言ってるけど、python の熟達者は C のコードも書くからね。 >>16 人間はなんでも文字で表現するからね 他の方法ももうあるし、それらはやっぱり 裏で文字で表現してるよ Range 使えば普通に算術ループできますやん ホラはあかんよ、ホラは 昨日、初心者に使わせようとしたけど最初につまづいたのは「pythonってコマンド打ってもcommand not foundになる😫」だった まあpython3ってコマンドしか用意されてなかっただけだけど初心者がこの手のしょうもない話に脅かされるうちはおすすめできん ブロックをインデントに束縛して コードの個人差を減らして保守性を向上させたのは良い点だと思う。 オブジェクト指向周りの文法や、 イミフな定数の不導入とか、 コロンもいらなくね?とか、 文法に乱雑さを感じる。 len()とかsorted()とかをiterableのメンバにせずに 標準関数で外出しにしてるのとかもイラッとくる。 jsがスマートな言語に見えてきて仕方ない。 最近は他の言語用のAIエンジンも増えてきたから まあ、いつまでも独壇場というわけにも いかんだろうな まあ、結局 C だけが生き残ってる っていうのは、いつものパターンだな まあ、色々呼ばれちゃうから、しょうがないんだけどね >>29 きちがいが好きな言語が50年も生き残るかね? pythonやらなきゃというと何故かrubyの方がいいと言う人でてきて面倒くさくなる 初っ端Pythonって正直どうよ 仕事で扱わないならもっと触りやすい言語いくらでもあるやん >>13 そんな奴にはそれこそスマホで十分だろう 個人的にはどう頑張ってもおもちゃ程度だとは思うが どうせ定年まであと7年なので今のまま JavaとPHPとOracleとExcelとVBAでフィニッシュするわ Pythonその他は定年後の趣味の一つにでもしとく なんとかすべき、なんとかな理由 って記事は大体中身がない。 >>68 AIだけじゃない、数値計算用のライブラリが揃ってるのが Pythonの強み ラインエディタの頃の cはシステム領域とかおかまいなく破壊してくれたよね てかpythonってlinux系だと Mailmanでさわった記憶しかないや なんで今更とかは思う 40後半のおじさんだけど、最近仕事でほぼ一からプログラミングの勉強始めた。 ちなみに、初めてのプログラミング言語は、Turbo Pascal。 正直、Pythonは難しい。初心者にはお勧めできない。CNNとか使わないなら、R の方が良いでしょう。NumPy、Pandas、Matplotlibを使いこなすのに学習コスト がかかりすぎる。型の変換が難しい。「こうすればできる」系の情報は多いが、 仕組みを丁寧に解説しているところは非常に少ない。 コードが少なくて済むので、本が薄くなるところとAI系のライブラリがPythonし か無いものが多いというところだけなんじゃないか?良いところは。これで大規模 な開発ができる人は凄いと思うわ。素人考えだけど。 グルー言語としての能力はどのスクリプト言語も大差ないand好みの問題だから、 結局マジョリティ志向になってしまうな PythonはAI手段の一つに過ぎないしそのAIもまた目的のための手段の一つに過ぎないだろ 飯を食う事が目的なら剣でも槍でも鍬でも鉋でもいいと思うが。 >>76 65までプログラマって続けられるもんなんだなー >>1 pythonマスターしたけど、組み込み系ではC++が成長株、Linux C++出来る技術者が足りないとか言われる。 テキストエディタでチョロっと書いただけで動けばいいのに 環境構築とかめんどいわ ライブラリとかなんやねん デフォルト引数の定義のアレも気に入らんし、 メソッド第1引数もなんであんな仕様のまま放置してんのかと >>51 Linux Cの技術者は腐るほどいるが、人余りなんだよな >>83 組み込みにAIは重すぎる。 簡易AIのロジック組んだソフトぐらいが限界。 >>84 俺も50超えたけど何とか生き残ってるわ 早くにファイルやBTreeあたりからRDBへ切り換える仕事がWindowsとセットになって出来たのが大きかったな 俺も>>76 さんといっしょでPHPとJavaScriptでもういいかなって思ってるわ この意味の万能性って、何も言っていないに等しい 2本脚があれば、大陸の端から端まで行けるというような話だから 今のご時世、「Javascript」と言われたら、 どこからどの辺まで含むのかもやもやする。 >>57 マイクロソフトは Windowsを正常に動くようにする事が先だよ。 頻繁に再起動するOSで開発なんてできたもんじゃない。 何がいいかはコミュニティが決める それについてくだけ >>76 Pythonはいまだけの可能性 もっといいやつ出ればAI絡みは別言語へ乗り換える可能性 いつやるの? 今でしょな言語 いまさらな記事。 だから何だよ。 5年前に書いてれば褒めてやったけど。 ゼロからやるならまずライブラリとか無しでBASICで ループとかGOTOとか A=A+1とかを理解して 次に C をやって、 次にアセンブラ<-->機械語 で簡単なプログラムを組んで 実際の仕事では Cや構造化やオブジェクト指向のあるC++だな Pythonは知らんが Cを知らんと何をやっても 基礎がわからんだろう ぱいそん笑 こんなんに振り回される馬鹿がまだいるんかw C++だけでいいんだよ >>99 歴史に順を追えって訳だな。ピアノの練習っぽいな。 作りたいものから使いたいライブラリ・フレームワーク選んで 必要なら新しい言語を学ぶという流れ。 python2と3で互換性がないのに、ネットには情報が混在してる perl最強! perlにできなくて、pythonならできることってあるの? 非プログラマーならvbaとpowershellで自分が必要なことすれば十分だよ。それ以上は趣味だな。 >>1 さらっとRuby書いてるけど誰も使ってねえからw perlにはpandasやnumpyみたいなライブラリはあるんかい? ワシのバイオの分野では一時期流行ったみたいで、perlで書かれた スクリプトが結構あるし、perl使いもまだ多いようだが。 つまり、ちょっと前はvbscript最強、perl最強、php最強、java最強とかきたよね。そのときの時代の旬、いまはAIなのかもしれんが、そのAIについてDL方面のパッケージが充実してるから必然的にpyオヌヌメになってるだけで、pyそのもの自体がオススメってわけじゃないよね。 >>108 Rから統計関係やりだしたので、pyはRにあとから真似してくる感じがある アドホックにやるならRstudioでreport生成しちゃう。 pyはproductionになったときにRをpyに書き換えるといいらしい。 >>108 細かくはみてないがPDLモジュールはnumpy相当なのかなぁ。 >>105 winサバ管ならそうだね。vbscriptもやる。 lnxもやるんで、シェルスクリプトやperlもつかってる。シェルスクリプトが一番出番がおおいかも。pyも書くけど。 個人的には、数学関係ならjupyter notebook + Rから入るのが一番だと 思う。pandasのDataFrameはRを参考にして作られているので、Rが使えれば Pythonの主要ライブラリのpandasも理解しやすかろう。 >>106 rubyすげーもちあげられてるけど、使ってるひとみたことない。redmineつかいたくて仕方なくいれてるけど。 会社にいる海外勢はpyつかいがおおいかも。 >>85 組み込みって知識かなり必要な割に年収低いイメージ >>113 pyで統計やりたいひとがnotebookいれるのに、anacondaいれるQIITAの記事がたくさんあるが、あれは罠だとおもう。重すぎる。さくっと使えないとね。 統計のみさくっとやりたいなら個人的にはR(R studio)なんだが、将来つぶしがきくのはpyかもしれない。 Rかいてもだれもメンテできないし。 その昔、「administrator」の綴りがわからないのに、WindowsのSEだと名乗るひとがいて、おもいっきり裏でこけにしてたのおもいだした。使えねえーくせに給料だけたくさんもらってんだろうな。くそが。 ワシもQIITAの記事などを参考にして、anacondaや小さいminiconda入れたり、 WSLやhyperVやオラクルの仮想マシンを導入したりしてPythonの学習を始めた けど、今はほぼGoogle Colaboratoryオンリー。入門には十分すぎで、セットアップ の必要もほとんどない。これがタダなんて、Googleは神。ちなみに、Rも少しいじれば 使える。 Webアプリ(webサイト)作りたいだけでrubyしか勉強しなかったけど C++極めたら 十分だと思う 皆欲しいでしょ?C++の出来る人 >>120 perl より読みやすく 大抵のことが一応できる ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる