X



【IT】プログラマーだけではない、全ての人がPythonを学ぶべきたった1つの理由
■ このスレッドは過去ログ倉庫に格納されています
0001田杉山脈 ★
垢版 |
2019/11/24(日) 19:37:07.19ID:CAP_USER
「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/
0138名刺は切らしておりまして
垢版 |
2019/11/24(日) 22:56:14.89ID:l9tz8fOI
>>134
怖いよね

いま、そういう使えない人をうっかり採用しないために、そのひとのgithubのレボジトリとか
コントリビューションがどうなのか、
実績みせてもらうのが確実だよね。
0139名刺は切らしておりまして
垢版 |
2019/11/24(日) 22:58:46.28ID:l9tz8fOI
>>136
従ってるよー(><;)
でも初心者に最適って推してるわりに、最初つまずくポイントが意外と多い、そんな感想だよ。ネットで拾ったpy2のコードをpy3で動かそうとして、意味不明なエラーとたたかっちゃうんだyo
0140名刺は切らしておりまして
垢版 |
2019/11/24(日) 22:59:27.91ID:8JMEiJiL
>>136
それ読むと使いものになりそうにもない
0142名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:01:20.08ID:l9tz8fOI
ライブラリの開発の速さが速いってことなんだろうな。互換性気にしてたら、いいものがすばやくつくれない。なので、仮想環境という仕組みが生まれた。

そういう、文化的背景を知らしめないとなぁ。
0144名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:02:40.17ID:nuc7ClcV
言語なんてどれも一緒。
重要なのはデザインパターンとイベント処理。
0145名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:04:31.34ID:9+M132cy
一般人はRで十分
0146名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:06:51.56ID:Lp0FBLcB
AIAIうるせぇから、今更ながら少し勉強するかと思ってるけど
そうなるとやっぱりpython一択なのか?
0147名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:08:30.35ID:l9tz8fOI
さてと、あしたも、Rでしごとしてるふりしてバックテストですよwww
FXの投資ロジック検証たのしいよ。
0148名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:08:30.68ID:U8powpTr
仮想環境は、素人ならconda( anacondaかminiconda)にしよう。anaconda なら
jupyter notebookも使えるし。numpy, pandasなどよく使うものみんな入っている。
そんで十分のはず。使いやすいよ。pipもcondaで入れるんだ。
Windowsなら、WSL + conda でしょう。おかしくなったら、仮想環境をもう一度
作り直すか、WSLの再セットアップ。
0149名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:09:08.19ID:TK6uyRd6
>>140
他の言語でライブラリ地獄をお愉しみください。
0150名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:09:20.90ID:z1gtgWEt
pythonて難しいのかな。使ったことないや
0151名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:10:03.01ID:xmLe61sN
>>140
合わないと思うならやらなきゃいいだけのこと
0152名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:13:47.24ID:xmLe61sN
>>124
てか初学者なら不要だぞそれ
なんか教科書がボケてんだろ
かあてずっぽにネットでみてこけたあんたが初学者以前だ
0153名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:15:26.73ID:xmLe61sN
>>148
って書いてあるからcondaやったらそのあとOpenCVでハマった
0154名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:16:55.66ID:xmLe61sN
>>146
AIってこの程度なのかと知ることがまず第一歩
0156名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:20:18.13ID:U8powpTr
condaはあくまでも素人向け。ややこしい依存関係とかあるのを使うなら、
Dockerが必要。condaは複数のチャンネルからインストールすると、はまる
ことがある。試行錯誤も必要。
0157名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:22:34.74ID:xmLe61sN
>>156
そうだなconda様に服従しないとな
0158名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:24:21.68ID:Ug1Da/5d
paizaラーニングは、オンラインでプログラミングしながらスキルアップできる、プログラミング入門学習コンテンツです。

Python×AI・機械学習入門編 
Pythonを使用して、機械学習の基本について学びます。

Python3入門編 
書きやすく、直感的に理解しやすいと言われるPythonの初歩を学びます。

コードガールこれくしょん 
遊びながらプログラミング力を鍛えられる!簡単なプログラミング問題をクリアして電脳世界に平和を取り戻そう!

エンジニアが死滅シタ世界
20XX年、エンジニアだけが20XX年、エンジニアだけが感染するウイルスによって荒廃した世界。美少女アンドロイドとの旅が今始まる…。

一攫千金プログラミング 
AIディーラーと勝負するコードを育てよう!ギャンブルbotを作って世界中のユーザーとランキングを競い合え

ロジックサマナー〜閃光の召喚プログラマ
君が書いたプログラミングコードが召喚魔法になる!初心者から上級者まで楽しめる異世界ファンタジーゲームです

「もし女」新感覚開発シミュレーション
楽しく華やかな環境での業務シミュレーション!paizaランクB〜Dの難易度のプログラミング問題で構成。

恋するハッカソン〜君色に染まるアイドル〜
プログラミングでアイドルを育成できる!豊富なボイスとBGMがゲームをさらに盛り上げます!

プログラミングで彼女をつくる
プログラミングであなた好みの彼女が作れるゲーム!!アンドロイド彼女をかわいく着せ替えちゃおう!
https://paiza.jp/works
0161名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:37:28.70ID:yOdsiA2r
>>16
要は複雑で精緻な部分はAIが補完してくれて
人はだいたいのやりたい大枠を示せばいいだけみたいな?
0164名刺は切らしておりまして
垢版 |
2019/11/24(日) 23:56:45.66ID:xRUAyNbn
C言語が一番汎用的じゃねーの?

Cできれば職はいくらでもある
0165名刺は切らしておりまして
垢版 |
2019/11/25(月) 00:07:14.95ID:HkAGErDC
長ッ
結論はよ家
0166名刺は切らしておりまして
垢版 |
2019/11/25(月) 00:09:57.07ID:urwxZwOt
>>104
perl5 と perl6 もな〜
0167名刺は切らしておりまして
垢版 |
2019/11/25(月) 00:10:54.26ID:cgQRRqbn
>>131
他の言語にもにたようなものはある。
rubyにおけるrbenvとかね。
pythonだけの問題ではないのでは?
0168名刺は切らしておりまして
垢版 |
2019/11/25(月) 00:16:31.00ID:2iOyPpGG
勝手にシャローコピー
勝手にグローバル変数
インデントレベルの違うところにコピペが終わってる
0170名刺は切らしておりまして
垢版 |
2019/11/25(月) 00:25:23.81ID:AEhr1QzO
お前らCOBOLも語らないで何言ってんの?
0171名刺は切らしておりまして
垢版 |
2019/11/25(月) 00:29:24.12ID:hxe1IKP9
たった一つの理由とか、そう言う下らないタイトル止めろ!
0172名刺は切らしておりまして
垢版 |
2019/11/25(月) 00:32:07.43ID:T0FqUnGe
python, pythonいうてるけど、Perlの方が何倍も難しくて
何倍もまともに書けたらすごい、Pythonは他の言語より簡単なんで
他のがかける人はpythonをかけて当たり前、覚えることは少ない
0174名刺は切らしておりまして
垢版 |
2019/11/25(月) 00:44:40.95ID:mBaPC2hh
猫も杓子も人工知能人工知能ってw
相場予測でもなんでもいいけど、
一つでも金を生み出すもんつくったんかおんどれらわw
0175名刺は切らしておりまして
垢版 |
2019/11/25(月) 00:46:26.47ID:36ExyrQF
Perlができなくて、PHPやPythonじゃないとできないことってあんの?
その逆はたくさんありそうだけど。
0177名刺は切らしておりまして
垢版 |
2019/11/25(月) 00:55:46.82ID:13dZtuzc
で、たった1つの1つって何なのよ
0179名刺は切らしておりまして
垢版 |
2019/11/25(月) 01:00:36.26ID:cqJSdAAB
取りあえず2進数と16進数を学ばないとな
0181名刺は切らしておりまして
垢版 |
2019/11/25(月) 01:14:22.60ID:76XP7sNl
結局アルゴリズムの概念は0、1の世界なんだよな
高級言語なら例えBASICでも問題ない
論理回路を文章化する言語などなんでもいいんだよ
0183名刺は切らしておりまして
垢版 |
2019/11/25(月) 05:59:52.90ID:PZOhCEVc
>>181
三進数や10進数や量子コンピュータもあるが
0184名刺は切らしておりまして
垢版 |
2019/11/25(月) 06:06:54.26ID:PZOhCEVc
量子コンピュータって実際のところ何? NECもアニーリングに注力

量子コンピュータは量子ビットを活用して計算を実行するコンピュータ。従来のコンピュータ(古典コンピュータ)は0と1の2値で表現される“ビット”(古典ビット)で情報を取り扱う。
一方で、量子力学が取り扱うミクロな領域は物質の基本的性質として複数の状態を同時にとる「重ね合わせ」が起こる。
https://image.itmedia.co.jp/mn/articles/1901/21/mat2019-01-17nec_image03.jpg
https://monoist.atmarkit.co.jp/mn/articles/1901/21/news036.html
0186名刺は切らしておりまして
垢版 |
2019/11/25(月) 06:41:34.77ID:P+EnNRHV
>>166
ようやくperl6は諦めたらしいよ
0188名刺は切らしておりまして
垢版 |
2019/11/25(月) 07:09:44.08ID:KIST1oMT
普通の人にとってはスクリプトやバッチファイル程度の自動化で十分
そのくらいローカルマシンもモンスターパワー化した
0189名刺は切らしておりまして
垢版 |
2019/11/25(月) 07:10:12.77ID:eVXddG+j
>>103
俺も最近その結論に達した
目的が先にあって、それにこのツール使うから、この言語の順
先に言語がああだこうだじゃねーんだよ
0190名刺は切らしておりまして
垢版 |
2019/11/25(月) 07:11:58.34ID:WTH7QZoU
>>16
GUIプログラミングがあるにはあるけど、文字列以上に相違点チェックが難しいぞ。
全く同じロジックでも、線を引く位置が違うだけで違う内容w
0191名刺は切らしておりまして
垢版 |
2019/11/25(月) 07:17:10.70ID:eVXddG+j
つかプログラム言語って次々新しいの作るのやめろ
1つとはいわんけど3つもあればいいんだよ
次から次に出てくるのはIT土方を数年おきに入れ替えるためだろ
0194名刺は切らしておりまして
垢版 |
2019/11/25(月) 07:48:51.99ID:HC5UakEd
>>191
んなわきゃない
ここまで新しい言語が増える理由はプログラマの欲求そのものだ
短く書きたいとかバグ減らしたいとか理由は様々だがね
プログラミング言語が日本向けになんぞ作られているわけがないしな
レガシーな書き方しか知らない奴が脳筋プログラムをして死滅するのは当然の結果だ
0196名刺は切らしておりまして
垢版 |
2019/11/25(月) 08:10:50.92ID:4X/PcllC
Perlが使えるとPythonを学ぶ動機がない
AI系のライブラリを使うときぐらいかな
Juliaに期待しよう
Pythonのライブラリも使えるし
0197名刺は切らしておりまして
垢版 |
2019/11/25(月) 08:18:14.71ID:PZOhCEVc
Perlはつかえないだろ
たまたま一時的に使われただけで
いまつかう意味あるか?
0198名刺は切らしておりまして
垢版 |
2019/11/25(月) 08:20:24.91ID:xijkDg6a
>>1 まぁ〜たNikkeiBPの記事かー。スレ立てなくていいよ
0199名刺は切らしておりまして
垢版 |
2019/11/25(月) 08:21:00.78ID:WDCuXsNK
>>197
デベロッパーがゼロから学ぶとして有用なのを3つくらい選ぶとするとどれ?
0200名刺は切らしておりまして
垢版 |
2019/11/25(月) 08:40:47.45ID:4X/PcllC
>>197
ん?普通に使えるけど
0202名刺は切らしておりまして
垢版 |
2019/11/25(月) 08:52:55.72ID:RE48uj7B
>>197
perl5 の代わりが務まる言語がない
正規表現再帰できるのは異端だし
\R でOSに関らず改行マッチできたりなど独自の拡張が便利
0203名刺は切らしておりまして
垢版 |
2019/11/25(月) 09:04:45.51ID:PZOhCEVc
コボルと似たようなものでは?


最も嫌われているプログラミング言語は?--Stack Overflowが調査結果を発表
2017-11-02 14:50
Stack Overflowを利用している開発者の中には、プログラミング言語「Perl」を扱いたくないと思っている人が多くいることが明らかになった。
PerlはLarry Wall氏が開発したもので、生まれて30年近くになる。
Perlは1990年代にはよく使われていたが、今では「Python」の方が好まれることが多い。
https://japan.zdnet.com/article/35109803/
0205名刺は切らしておりまして
垢版 |
2019/11/25(月) 09:16:51.72ID:xjABU/eL
386の頃からやってるけど、今のPC演算力もメモリもアホみたいにあるんだから、Pythonでも困らないだろ。
もし定常的に発生する処理が重くて限界感じたらそこだけCでライブラリ作って呼び出せばOK。
0208名刺は切らしておりまして
垢版 |
2019/11/25(月) 09:37:53.81ID:7XYbvFyi
c/c++にすれば、すべてに通じる。
0209名刺は切らしておりまして
垢版 |
2019/11/25(月) 09:38:04.44ID:OT1LH2yJ
たった一つの理由は『アメリカで広く利用されているから』じゃないの?
ライブラリも技術ブログなんかも多い※からだろ。
※全て英語
0210名刺は切らしておりまして
垢版 |
2019/11/25(月) 09:38:44.20ID:8SdFQ3vN
>>64
オマイの日本語が乱雑で
標準化されてないwww
0211名刺は切らしておりまして
垢版 |
2019/11/25(月) 09:48:19.50ID:8SdFQ3vN
>>67
現役次代2年ほど日経ソフトウエアその他日系の雑誌読んだけど
役に立つものは何も無かったな。
工学社のI/Oに載ってたAPPLE][版「平安京エイリアン」の
マシン語を逆アセンブルして解析したほうが判り易く
役に立った。
0213名刺は切らしておりまして
垢版 |
2019/11/25(月) 09:54:45.80ID:G6esCt9m
HightyCunyで十分
0214名刺は切らしておりまして
垢版 |
2019/11/25(月) 10:06:56.13ID:AnileK48
>>205
その文脈だとPythonの代わりはいくらでもあるな
0215名刺は切らしておりまして
垢版 |
2019/11/25(月) 10:07:07.24ID:S3npWt3B
複数言語学ぶの無駄、Webもサーバもブラウザも全てPythonにして欲しいわ
0218名刺は切らしておりまして
垢版 |
2019/11/25(月) 10:16:16.09ID:KIST1oMT
>>212
そういうのって特化することによって何かメリットあるんかね?
ハードに金かけなくてもいいとかそんなとこ?
0219名刺は切らしておりまして
垢版 |
2019/11/25(月) 10:19:15.49ID:d7tNWLht
言語を増やすと、知の集積が分散してしまい、プログラミング界の発展を阻害する。

そして、いつまでたってもプログラマーの使い捨てがおこり、底辺から抜け出せない

経営層や資本家側の陰謀なのかも。
0220名刺は切らしておりまして
垢版 |
2019/11/25(月) 10:24:51.05ID:8SdFQ3vN
>>56
for(i=0; i<100; i++){
処理
}

マイコン揺籃期のBASIC以来綿綿と継承された
FOR I=0 TO 100 STEP 1
処理
NEXT I
のコンピュータが得意とする繰り返し処理パターンじゃん。
0222名刺は切らしておりまして
垢版 |
2019/11/25(月) 10:31:39.14ID:d7tNWLht
>>220

> >>56

MSX BASICからやってるので、
> FOR I=0 TO 100 STEP 1
> 処理
> NEXT I
が好き。

なんでおなじことやるのに、こういう書き方になってきたんだろう。
> for(i=0; i<100; i++){
> 処理
> }

シフト押す回数ふえるのでつかれる。
コロンとセミコロンも見分けがつかないし。
間違いの元。
0223名刺は切らしておりまして
垢版 |
2019/11/25(月) 10:43:08.30
Python遅いんだよな
プログラムの勉強ってPythonを学ぶっていうよりライブラリの使い方を習得する作業なんだよな
0224名刺は切らしておりまして
垢版 |
2019/11/25(月) 10:44:20.83ID:8SdFQ3vN
>>218
BASICとかCの四則演算は有効数字何ケタで大体の結果がわかればいいというレベルだが
給料など金額は億、兆の桁数の多い数字数字で
1円でも間違ったらクレームが来るから
1バイト8ビットで0から255まで表わせる二進数の10から15を犠牲にして
1バイト8ビットで0から99までをコード化したBinary Coded Decimal=2進化10進数で計算するんだな。
0225名刺は切らしておりまして
垢版 |
2019/11/25(月) 10:45:49.61ID:/b6WVW18
確かにVB系の言語仕様は日本語の「てにをは」があるイメージがあるので論理が組みやすくて好きだな
0226名刺は切らしておりまして
垢版 |
2019/11/25(月) 10:57:00.34ID:wrdVUskK
>>219
できるやつとできないやつの生産量はオーダーが違うからな
そうでないなら、言語やプラットフォームの共通化は意味あるかもしれんが
0227名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:01:44.39ID:53+eKF1d
ライブラリが豊富とかの理由でPythonに来るのやめてほしいわ。
なぜそうなるに至ったか、Pythonの長所の本質を理解できない
奴が書くコードってクソだから。

Javaかなんか書いてた奴がPythonに移ってきたのか、
全部でたかだが20~30行程度のちょっとしたことをやるスクリプトで
わざわざクラス化してたり、わざわざややこしく、読みづらくして
この人、バカじゃないのかな?と思うことはよくある。
その程度のものにオブジェクト思考なんか必要ねーんだよ。

Pythonの長所はコードの書きやすさと読みやすさにある。 
だからこそ、開発者が増えてあれだけライブラリも豊富になった。
それがわからない理解できない感性がイカれている奴は
Python使うな。
0228名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:03:39.47ID:d7tNWLht
わざわざクラス化

わかるわ。

再利用しないのに、クラス化、関数化。

気をつけなければ。
0229名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:07:19.52ID:2uqZSNSC
>>222
構文解析が楽
特に意味はない
0230名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:08:01.34ID:QdPFbehH
>>16
Scratchですら字は使われるからな。
0231名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:08:05.09ID:+yoUZ43q
>>225
VBすげー可読性高いのに何で廃れたのかな…
.NET Coreにも未だ対応されないし、アップデートでどんどんC#に置いて行かれてる
0232名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:08:37.87ID:2uqZSNSC
>>224
無限精度BASICを使うんだよ
0233名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:10:59.00ID:D31Vs90M
>>227
プログラム自体に興味ない素人が大勢流入してきてるからね
Qiitaとか玉石混交で大変なことになってるし
0234名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:11:53.56ID:2uqZSNSC
>>227
ライブラリが豊富以外のメリットが無いな
一時期の流行りだから逃げる人も多いだろ
出来ること少なすぎるし
0236名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:14:08.19ID:2uqZSNSC
>>233
玉石混交?
ゴミしか無いだろ
教科書の劣化コピペだらけだぞ
玉どこよ?
0237名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:14:37.93ID:HrmTTFmm
Pythonは関数に何でも渡せるからコード書くのが楽だが、それが原因不明の動作につながることが多い
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況