【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/ >>279 C#とかならLINQで終わりとか Scalaも似たようなのあるし Pythonでもそれに近い芸当できないっけ C++はコンパイルエラー分かりにくいのが辛い リフレクションのない言語の宿命なのかもしれんけどなんとかならんのかな Java勉強したけど、教えてくれる人が上手かったからか理解しやすかった 転職につなげたいけど、もういい年だからプログラマーになるのは難しいんだろうな プログラミングの知識って、プログラマーになる以外には、活かせる仕事ってないのかな AI用Scratchを作ればオケ もうテキストエディッタは止めようよ プログラマーじゃないならプログラミング言語なんて一切触る必要ない そんなこと気にしなくていいからせめてExcelの関数一つでも覚える努力しとけ >>2 個人が買えるパソコン程度で、人工知能(のせめて片鱗)が動いたりするの? 今は素のままの言語をコーディングするのってあまり無いよね。大抵の土方はフレームワーク使ってる 自分が若い頃はネラーの殆んどは、スクリプトなんて当然のごとく知ってたよなぁ >>291 CGIやSSIって言ったらみんなPerlだった思い出 import numpy as np A = np.random.randint(0,100,12) print(A) print(np.sort(A)) >>131 最近の言語を軒並み使ったことが無さそう。 microsoftすらnuget用意してるのに。 >>1 たった一つの理由を語るだけなのに記述量が多すぎる言語だということはわかった。 不合理だわ。 Python本体はVBの書き方を更に簡素化させたものってイメージが強いなぁ おれはみんなが C言語を習い C言語のように考え C言語のように行動する ことを望む!!! まあ、Pythonを極めるのであれば、Cも必要なんでしょうね。 Cが土台の言語だから。計算量や速度がそんないらないなら、 Pythonだけでも良いんだろうけど。 >>1 Pythonの強みと言えば、やはりAI分野の外部ライブラリーが豊富な点。 ここがすごい。 すべての人が学ぶべきたったひとつの理由 教える自分が儲かるから 1つしか理由がないんじゃやる気おきんな せめて10個くらいないと なんかさ!py屋がrに対抗してstatやりだして、その延長でDLはやってみんながつかいだしたから、おすすめみたいな流れが作られた感がやだな 日本のIT関係者は幼稚な印象 アカデミックな姿勢で冷静に技術を語り合えない印象 最初はどういうプログラムを作ればいいか初心者の俺に教えてくれよ hello worldを表示させるだけとかメモ帳に打つのとなんも変わらん そもそもプログラムってexeファイルになるんやないんけ? 手でやるとめんどくさい作業をプログラムにやらせるのがいい。 例えば、Excelで毎日の気温を入力して保存していたとする。これはVBAでもできるし、pythonでExcelを操作させることもできる。 >>317 exeはwin専用で、ダブルクリックで実行可能な形式のバイナリファイルのことだよ。exeをつくる前に、テキスト形式のプログラムを書いて、実行可能なバイナリに変換することもあるし、バイナリに変換しないで実行できるものもある。 cqt access.log | grep error | awk '{print $4}' | sort | uniq | wc -l みたいのは、手が勝手に動く感じ。 >>13 ホリエモンがしょっちゅう言ってるよね アレは不誠実だと思う >>320 でもそれってプログラム作ったパソコンでしか動かないんじゃ? 他のパソコンでも同じ環境を用意するとかか? >>325 C言語でcygwin から作ったexe はcygwinの上でしか走らなかった ダブルクリックはだめだった 環境だな 最近はなんでもcliでもPHPで書いちゃうな。慣れって恐ろしい。 pythonはインデント強制は良いけど、閉じ括弧が無いのが気持ち悪い 括弧が足りなかったり1個多かったりするエラーて探すの面倒なんだよな >>328 そんなんエディタがハイライトしてくれるやろ IDEによっては、インデントも自動でそろえてくれる >>317 グーグルコラボ先生使えばTPUのいい環境手に入るぞ 個人のドライブマウントしてCSVファイルも連携出来るし 意識高い系初心者がQiitaに記事を書き、日本語でググるとこしか知らない初心者がそれを見て混乱しつつ自分なりの解釈をQiitaに書き・・・ という微笑ましい負の連鎖 スタックオーバーフローも、玉石混交。qiitaよりましだが。 >>334 sublime textに好きなプラグイン突っ込め >>328 インデントレベルの違う場所にコピペするときに全部手動で間違えずにインデント変えていくほうが手間じゃ >>64 わかる。pythonの言語仕様はほとんどジョーク。モンティパイソンだけのことはある。 3系まで来てまともになったけれどそれでも使いたくない。 Pythonには罪は無いんだけど、Python推しの奴がウザい 本屋さんいくと、pyばっかりだよな。 少し前はなんだっけ?HTML5とか、JAVAとか?phpとか?wordpressか。 その前はなんだろ。 まあ非プログラマがちょっとした処理を自動化したいなら良い言語だと思うよ。構文も非プログラマには既存のより理解しやすいっぽいし。 しかもライブラリ多いから手間がかからない。なんなら深層学習へも簡単につなげられる。 残念なのはライブラリ含めてバージョンによる仕様の差がけっこう大きいからqiitaとか参考にすると死ぬ。あそこ、すっかりクックパッド化したな >>308 C/C++がベースにないプログラマとは仕事しない どうせなら 「ラーメン屋がPythonを学ぶ理由」 にしろよ 括弧が合わないエラーで悩むことが多いから エディタに対応括弧を表示させる機能があるんだろ JSONの終わりってこの機能使って見つければいいのか Chromeのページソース閲覧にこの機能あればいいのに >>353 そんな呆けたこと言っているのは日本人だけだ >>354 あーそれいいねぇ 味の変化を季節などでどうつけるか みたいな >>354 売り上げ予測とか、機会学習でめにゆ〜を自動提案するとか。 そもそもラーメン屋が本屋にこないしプログラムの勉強する発想になるとはおもえないけどねww 味の追求、これのみ。 excel操作したいならpythonかC#あとVB.NET >>355 あるまとまった処理に対して条件振るためにループの中に入れましょう おっと、特定の条件ではまずいから条件分岐の下に入れましょう いっそのことプロシージャにしましょう カッコでくくってインデントはエディタに投げればいい言語と 自分でせっせとインデント付けていく言語とどっちが楽だよwwww ここ読んでC++の評価が高くてびっくりしてる 他の言語の学習者だけど、何が違うの? 知りたい 特別、C++がいいとは思わないが たとえばJava、C#などと比較して しかしコンパイラがいいのが多くあり速度はでる >>361 とりあえずほぼなんでもできるのと、プログラマが制御できる範囲が広いので高速化しやすい。 非プログラマがパイソン学んでどうするの プログラマになる気も能力もないぞ俺は むしろ非プログラマのためのPython 計算機がわり うちの会社の蔵書コーナーに、開発者がつかってていらなくなった本がおかれてて、c++とunix本が数冊寄贈されてた。 他の言語はなかったなぁ。 >>361 定義や宣言が多くて煩わしい=自分が思ってなかった型になってたりしない >>369 古い情報で十分役に立つんだなこれが unixの基本的なところなんて少なくとも30年は変わってない linuxだけを考えても20年前の知識が十分使える >>370 たしかにね。 ディストリごとの違いとかパッケージインストーラーのコマンドとか、initがいまは別の奴になったとかあるけど、基本コマンド(cpとかcatとかのレベル)は廃れないな。 てかwindowsもマウスでD&Dするとか基本操作は20年かわってないか^ ^; >>1 言語を学ぶ目的ならそれこそ学習用に作られたDelphiこそベストでは その後は割とスムーズにC#へ移行できる いまだに unmount 1つ組み込まれてないからな powershell で長く連結してようやくだ >>363 逆に言えばプログラマが全部面倒見るってことだけどな。 字下げで構文まとめるんでなくて、begin・・・endでまとめて欲しかったな。 あと文末に;をつけるようにしてほしかった。 あとC系みたいに、いちいちvoidがどうのこうのとか、毎回同じことをまじないのように無駄に書かせることがないのは良い。 でもPythonはAI計算とかでも使われるそうだが、pi(=3.14)くらいは標準で持っててもよくない? mathモジュールを組み込むわけだが、こういう定数であるべきものを書き換えられるってどういうこと? これはPythonの欠陥だよね? つまり >>>math.pi とコマンドラインで入力すると、 3.141592653589793 と返すんだが、 >>>math.pi=4 とすると 4 と平気で返してくれる。 ここはエラーを出して、piの値は変更できないようにすべきだろ。 あと配列なんかも。 これはPythonだけでなくC系もそうだが、0から数えるんじゃなくて1から数えてくれよ。 a=[10,20,30]とおくと a[0]=10,a[1]=20,a[2]=30でなくて、 a[1]=10,a[2]=20,a[3]=30にしてもらいたかった。 人はモノを数える時は1から数えるだろ?0から数えるバカはいない。 >>376 現在位置から相対的な位置の要素を循環的に参照するとき 0発進だとmod Nとればいいから楽なんだよ モンティパイソンは5人組のお笑いグループだから、 pythonに対抗してdriftersって言語があってもよくない? >>376 繰り返し処理で0から数えるのはメモリ内部が0から数える仕様だから仕方ない。 0から始まると内部ではシフトで四則演算ができるから処理が早いし、変数の格納メモリもCPU近くのものを使う。 逆に繰り返し処理するときにクラスのパブリックパラメーターを使用するとエラーになるケースがある。 スクリプト系はなんでもヒープメモリに入れてごっちゃだからエラーにはならない。当然遅い。 どうしてもいやなら大概の言語にはイテレータがあるからそれを使えばいい。 item in items part in group みたいなやつでループするやつね。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる