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/
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は関数に何でも渡せるからコード書くのが楽だが、それが原因不明の動作につながることが多い
0242名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:17:10.21ID:FkTJR/wL
ネット全体が、玉石混交の石多目になってきてるね。
ググればわかることを焼き増しで劣化させブログにしてアフィ目的。

やたら行間がおおい。情報量は少ない。
0243名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:19:02.67ID:YZ18oM0B
>>235
Pyなら出来ますってのが地雷になりそうだな
Cなら
VBなら
と同じ構造
0244名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:22:40.00ID:2uqZSNSC
>>240
雑談禁止なんだけどな
買収されて胡散臭くなってから辞めた
何に流用されるかわからん
0245名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:24:29.35ID:2uqZSNSC
>>242
英文の一次情報当たるしかないんだよ
日本語になってる時点で一年遅れ
0246名刺は切らしておりまして
垢版 |
2019/11/25(月) 11:58:57.18ID:4X/PcllC
とりあえず、Pythonしか知らないデータサイエンティストがドヤ顔でマウントしてくるのだけは勘弁
0247名刺は切らしておりまして
垢版 |
2019/11/25(月) 12:17:53.64ID:RpivYJd8
【IT】プログラマーだけではない、全ての人がPythonを学ぶべきたった1つの理由
https://t.co/2Dsb2K0BLq 👀
Rock54: Caution(BBR-MD5:b73a9cd27f0065c395082e3925dacf01)
0248名刺は切らしておりまして
垢版 |
2019/11/25(月) 12:21:31.42
プログラムテクニック系の英語って簡単だしプログラムが書いてあるから
英語がダメな人でも問題ないんだよな
フレームワーク論やシステム論とかになると違うんだろうけど
0249名刺は切らしておりまして
垢版 |
2019/11/25(月) 12:27:36.91ID:RpivYJd8
【IT】プログラマーだけではない、全ての人がPythonを学ぶべきたった1つの理由
https://t.co/2Dsb2K0BLq 👀
Rock54: Caution(BBR-MD5:b73a9cd27f0065c395082e3925dacf01)
0250名刺は切らしておりまして
垢版 |
2019/11/25(月) 12:36:49.79ID:VAT8/A3d
>>218
むしろBCD演算ができるハードに対応したコードを吐けるのがCOBOLの強み。
その辺のx64やARM使うならCOBOLである必要性はない。
0252名刺は切らしておりまして
垢版 |
2019/11/25(月) 12:54:00.49ID:V5AkLlpH
>>231
クソコード量産したくせに置いてけぼりくらう風習を踏襲しまくったから
VB.NETは悪くない言語だが扱う人間が石器使うしか頭がないような輩しかいない
未だに2.0で動かしてくださいみたいなクソ案件があるんだから廃れて当然
0255名刺は切らしておりまして
垢版 |
2019/11/25(月) 13:16:47.60
オブジェクト指向言語を1つ知ってれば言語は簡単に習得できる
機械学習を習得するためにライブラリと格闘する意思があるかってだけだろう
0256名刺は切らしておりまして
垢版 |
2019/11/25(月) 13:32:17.91ID:s9Djf9wE
なんかリンゴ信者みたいな記事だな。
0259名刺は切らしておりまして
垢版 |
2019/11/25(月) 13:58:59.60ID:PZOhCEVc
C++は難しいとされるが
JavaでもC#でもPythonでもTypeSCRIPTでも
C++相当の文法、命令はあって大差ないとおもうが
0260名刺は切らしておりまして
垢版 |
2019/11/25(月) 14:03:52.44ID:PZOhCEVc
オブジェクト指向という面だとC++よりもJavaScriptやTypeScriptの方がそうだろ
こういうのもオブジェクト指向がらみだが


Node.jsの非同期処理のコールバック地獄を Promise、Generator、async/await を使って解決する - Qiita
無名関数を使えば引数に関数オブジェクトを直接指定できるので、同期処理と同じように簡潔に記述できます。
非同期で直列処理を行う場合、コールバック関数を連続して記述します。
しかし、そのまま書くとネストがどんどん深くなり、コールバック地獄と呼ばれる読みにくいプログラムになります。
https://qiita.com/Nossa/items/e712eac7404348f35881
0262名刺は切らしておりまして
垢版 |
2019/11/25(月) 14:18:56.34ID:KZdap+GF
>>186
名前変えたよね。
別言語ってことにするのか。

perl5 で大規模開発はつらいからな。
ちょこっと使うには便利な言語だが。
0264名刺は切らしておりまして
垢版 |
2019/11/25(月) 14:35:03.07ID:dwfg0Z7l
こういうのもオブジェクト指向、あらゆるものはオブジェクトという



Javascriptでクイックソート
Q = A => A.length<=1? A :[
...Q(A.filter((x,i)=> i>0 && x<A[0]))
,A[0],
...Q(A.filter((x,i)=> i>0 && x>=A[0]))];
https://ideone.com/yXp8GZ


Pythonでクイックソート
def Q(A):
if len(A)<2: return A
p = A[0]
return Q(filter(lambda x: x<p, A)) + \
filter(lambda x: x==p, A) + \
Q(filter(lambda x: x>p, A))
https://ideone.com/TSgpzy
0265名刺は切らしておりまして
垢版 |
2019/11/25(月) 14:36:13.67ID:4T1TotfV
>>191
いくら頑張っても、万能汎用言語が作れないんだよ
だから、職人が道具を自作するように、目的にあった言語を作るのだ
0266名刺は切らしておりまして
垢版 |
2019/11/25(月) 14:39:28.24ID:dwfg0Z7l
JavaScriptのオブジェクト指向が10%理解できる記事(実践編)

クラスベースとプロトタイプベース
言語機能の話に入る前に、少しだけオブジェクト指向の分類の話をします。
オブジェクト指向のプログラミング言語がクラスベースとプロトタイプベースに分類されるという説は古くから有名で、
JavaScriptは後者のプロトタイプベースに属する言語の代表格となっています。

JavaScriptには本来(ES2015まで)クラスという用語はありませんでした。
JavaScriptが採用していたプロトタイプベースでは、オブジェクトは他のオブジェクト(プロトタイプ)への参照を保持しており、
自身で処理できないもの(メソッドなど)はプロトタイプに移譲します。
その一方で、JavaScriptにはnewのようにクラスベース言語っぽい構文も持ち合わせており、
クラスベース的な考え方でコードが書けるようにもなっています。これがJavaScriptの難しいところです。
https://qiita.com/uhyo/items/ab8e273e1eb71d02e29a
0267名刺は切らしておりまして
垢版 |
2019/11/25(月) 14:42:22.91
素人でも抽象化とかを意識して作らないと
全体が出来上がってから
無駄なことやってるなと思って修正することになるんだよな
0268名刺は切らしておりまして
垢版 |
2019/11/25(月) 14:49:49.66ID:+W0FbnR1
>>264
社用でちょっとjavascriptいじってるんだけど
なんだっけec6
アローの使い方がいまいち理解できないのとIE11が未対応らしいので、古い書き方だわ。
閉じカッコの数
数えるのに必死だけど。
0270名刺は切らしておりまして
垢版 |
2019/11/25(月) 15:04:51.94ID:8wjFv4ep
なんとAIでプログラマーと言う職種がなくなるとは、、
0271名刺は切らしておりまして
垢版 |
2019/11/25(月) 15:13:45.07
AIのためにデータ加工屋が必要だからプログラマはなくならない
0272名刺は切らしておりまして
垢版 |
2019/11/25(月) 15:15:05.23ID:6Df9X/SI
>>84
徹夜作業とかがなければ続けられる。
元に60代のプログラマは現場でも結構多い。
下手したら20代のプログラマより多いかも。
0273名刺は切らしておりまして
垢版 |
2019/11/25(月) 15:27:04.81ID:dwfg0Z7l
>>268
サーバーサイドと言われるnodejsで少々文法がちがうことはあるかと
あと一行、一文で書くことにこだわりみにくくはなっている
0274名刺は切らしておりまして
垢版 |
2019/11/25(月) 15:33:56.02ID:uqGAPUsH
>>264
そういう車輪の再発明やってて面白いのか?

C/C++なら、ポインタの配列を用意して_qsort()呼ぶだけ。

ポインタの並べ替えの対象はポインタで、ポインタが指すオブジェクトや構造体の
サイズやどんなメンバ変数を持っているかに関係なく、ポインタのサイズは同じ
であり、並べ替えにオブジェクト自身のコピーは一切発生しないから最も高速。

生ポインタが扱えない言語ではできない芸当。
0276名刺は切らしておりまして
垢版 |
2019/11/25(月) 16:08:57.38ID:4DbWTBhi
>>1
おまえが記事を書かないでPythonのみで生計立てたら信用する
0277名刺は切らしておりまして
垢版 |
2019/11/25(月) 16:31:50.48ID:dwfg0Z7l
上のクイックソートは効率面は別にして
オブジェクト指向と再帰の勉強目的だ
これで大規模なやつをやろうとすると多分コピー多発で効率は悪い
0278名刺は切らしておりまして
垢版 |
2019/11/25(月) 16:32:22.13ID:Y/yaIutr
こういうこと書いてる本人は使えるようになったの?
0279名刺は切らしておりまして
垢版 |
2019/11/25(月) 16:40:13.97
DBありきだとソートをプログラムで使うことはないけど
ネット情報を収集するスクリプトとかだとソートしないといけないときがあるから困る
0280名刺は切らしておりまして
垢版 |
2019/11/25(月) 16:49:34.57ID:GtW1GUSi
>>1
なにこのゴミ記事w
0281名刺は切らしておりまして
垢版 |
2019/11/25(月) 16:54:08.24ID:VAT8/A3d
>>279
だいたいライブラリの方でソートが用意されてるだろ
0283名刺は切らしておりまして
垢版 |
2019/11/25(月) 19:01:33.83ID:D31Vs90M
C++はコンパイルエラー分かりにくいのが辛い
リフレクションのない言語の宿命なのかもしれんけどなんとかならんのかな
0284名刺は切らしておりまして
垢版 |
2019/11/25(月) 19:04:42.31ID:DAiE6nMA
Java勉強したけど、教えてくれる人が上手かったからか理解しやすかった
転職につなげたいけど、もういい年だからプログラマーになるのは難しいんだろうな
プログラミングの知識って、プログラマーになる以外には、活かせる仕事ってないのかな
0285名刺は切らしておりまして
垢版 |
2019/11/25(月) 19:18:31.87
スクリプト職人として職場で重宝がられるだろ
0287名刺は切らしておりまして
垢版 |
2019/11/25(月) 19:48:26.87ID:DD+ssELy
プログラマーじゃないならプログラミング言語なんて一切触る必要ない
そんなこと気にしなくていいからせめてExcelの関数一つでも覚える努力しとけ
0289名刺は切らしておりまして
垢版 |
2019/11/25(月) 19:50:50.38ID:HrmTTFmm
今は素のままの言語をコーディングするのってあまり無いよね。大抵の土方はフレームワーク使ってる
0290名刺は切らしておりまして
垢版 |
2019/11/25(月) 19:56:21.88ID:kCqAy7fN
自分が若い頃はネラーの殆んどは、スクリプトなんて当然のごとく知ってたよなぁ
0292名刺は切らしておりまして
垢版 |
2019/11/25(月) 20:15:54.34ID:J08H2T67
スクリプトってシェルスクリプトとやらのこと?
0293名刺は切らしておりまして
垢版 |
2019/11/25(月) 20:24:29.87
Javaスクリプト
0299名刺は切らしておりまして
垢版 |
2019/11/25(月) 21:03:03.98ID:Hd/baHUN
>>16
その文章を文字を使わずに表現してみろよ
0300名刺は切らしておりまして
垢版 |
2019/11/25(月) 21:03:55.69ID:Hd/baHUN
>>288
できるよ
0301名刺は切らしておりまして
垢版 |
2019/11/25(月) 21:14:24.06ID:uHDtKNDU
結局ボッキデータかよ
0303名刺は切らしておりまして
垢版 |
2019/11/25(月) 21:26:40.07ID:c4wxsDw3
知らねーわボケ
0304名刺は切らしておりまして
垢版 |
2019/11/25(月) 21:26:58.99ID:SsStlbbZ
>>1
たった一つの理由を語るだけなのに記述量が多すぎる言語だということはわかった。
不合理だわ。
0306名刺は切らしておりまして
垢版 |
2019/11/25(月) 21:51:40.24ID:1kg8ad3p
おれはみんなが
C言語を習い
C言語のように考え
C言語のように行動する
ことを望む!!!
0309名刺は切らしておりまして
垢版 |
2019/11/25(月) 22:07:25.11ID:E46y7yPx
まあ、Pythonを極めるのであれば、Cも必要なんでしょうね。
Cが土台の言語だから。計算量や速度がそんないらないなら、
Pythonだけでも良いんだろうけど。
0311名刺は切らしておりまして
垢版 |
2019/11/25(月) 22:16:34.47ID:UtyrddeU
>>1
Pythonの強みと言えば、やはりAI分野の外部ライブラリーが豊富な点。
ここがすごい。
0312名刺は切らしておりまして
垢版 |
2019/11/26(火) 01:10:35.87ID:Rkn7Li1V
ビジネス書みたいなスレタイだな
0315名刺は切らしておりまして
垢版 |
2019/11/26(火) 02:03:23.93ID:HfFqEdqV
なんかさ!py屋がrに対抗してstatやりだして、その延長でDLはやってみんながつかいだしたから、おすすめみたいな流れが作られた感がやだな
0316名刺は切らしておりまして
垢版 |
2019/11/26(火) 05:10:27.73ID:Onwt0x2N
日本のIT関係者は幼稚な印象
アカデミックな姿勢で冷静に技術を語り合えない印象
0317名刺は切らしておりまして
垢版 |
2019/11/26(火) 05:53:31.38ID:YiG3KRBY
最初はどういうプログラムを作ればいいか初心者の俺に教えてくれよ
hello worldを表示させるだけとかメモ帳に打つのとなんも変わらん
そもそもプログラムってexeファイルになるんやないんけ?
0318名刺は切らしておりまして
垢版 |
2019/11/26(火) 06:18:45.73ID:HfFqEdqV
手でやるとめんどくさい作業をプログラムにやらせるのがいい。
例えば、Excelで毎日の気温を入力して保存していたとする。これはVBAでもできるし、pythonでExcelを操作させることもできる。
0320名刺は切らしておりまして
垢版 |
2019/11/26(火) 06:23:26.90ID:HfFqEdqV
>>317
exeはwin専用で、ダブルクリックで実行可能な形式のバイナリファイルのことだよ。exeをつくる前に、テキスト形式のプログラムを書いて、実行可能なバイナリに変換することもあるし、バイナリに変換しないで実行できるものもある。
0321名刺は切らしておりまして
垢版 |
2019/11/26(火) 06:27:25.39ID:HfFqEdqV
cqt access.log | grep error | awk '{print $4}' | sort | uniq | wc -l みたいのは、手が勝手に動く感じ。
■ このスレッドは過去ログ倉庫に格納されています

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