Размер видео: 1280 X 720853 X 480640 X 360
Показать панель управления
Автовоспроизведение
Автоповтор
Pythonを勉強する上では言語の強みはもちろん、弱み(向いていない使い方)も知ってた方が様々な状況に対応できるので、こういった動画はとてもありがたいです!あと、解説わかり易かった♪
コメントありがとうございます😊Pythonの文法やライブラリ解説動画だけじゃなくて、色々な動画を今後も出していきます✨
つい最近Pythonの勉強を初めて、Pythonがどういうもので、何に向いていないのかという根本的な部分の理解ができました。どの動画とっても分かりやすいです。
ご視聴いただきありがとうございます😊分かりやすさを重視して動画作りしているので、そう言っていただけて嬉しいです!
いつもわかりやすい動画ありがとうございます!! 以下の4点も弱点と言えますでしょうか?🤔1. バージョン間の互換性公式サポートは終了していますが、一部のシステムでは未だにpython 2が使われており、python 3と互換性がないこと。2. パッケージ管理システムpipとanacondaを混在させて、それぞれにしかないライブラリーを使用すると、予期せぬbugが生まれてしまうことがある。3. selfクラス内でメソッドを定義するときの第一引数にselfを書かないといけない…4. インクリメントi ++ といった書き方ができないのが地味に面倒だったり… これは仕様だから仕方ないですね(笑)
ご質問ありがとうございます😊 1つずつ回答させていただきますね!1. Python2と3の互換性Python2は、2014年ごろにはPython3へ移行するよう促されており、それでも進まず、2020年1月に完全にサポートを終了しております。2022年の現在のタイミングでPython2との互換性を弱点として指摘するのは、個人的には違うかな、と思います。厳しいかもしれませんが、Python3への移行を再三促しているのに、8年も移行をしていないシステムがあるとしたら、それは単なる怠惰かな、と思います。2. パッケージ管理システムこのチャンネルでもライブラリのインストールはpipでのインストールを紹介しているよう、condaはあまり使うことがないという認識です。condaにしかないライブラリを使いたい場合にのみスポットで使う感じだと思っています。パッケージ管理についても今後動画を出して、この部分は詳しく解説したいですね!どちらかというと個人的にはpipenv、poetry、pyenv、この辺りのをどれを使ったら良いかベストが分かりにくい、というのは確かに辛いところかなーっと思います😉3. self私はPyCharmを使っているので自動でselfが挿入されてselfをタイピングすることはないので、あまり気にしたことはありませんでした🤔 そういったエディタを使ってない方は煩雑に感じる方もいるかもしれませんね。ただ「スタティックメソッドを作るときにデコレータを使わない人もいるので、このselfがなくなるとクラスメソッドとスタティックメソッドの違いを見分けるのが面倒ということもあるので、弱点と言われるとちょっと疑問に思いました🤔4. インクリメント私自身はインクリメント変数を自作することはほとんどないため弱点というほどではないかな?と思います。この動画(残念なコード ▶︎ ruclips.net/video/GjbWHLB5zMA/видео.html )でも解説している通り、zipやenumerateを使うとインクリメント変数の自作が回避できる場合が多いですね!辛さや煩雑さは開発環境や外的要因にも関わるので、色々な考えがあって面白いですね!
@@pythonvtuber9917 とても丁寧にご回答していただき、ありがとうございます🙇大変勉強になりました🙇🙇
15年位前はまだCPU性能が低く「Pythonくそ重」と思って避けまくっていましたが、最近はCPU性能もずいぶん上がって昔のように苦痛は感じなくなりましたね。弱点いろいろありますが、素晴らしい言語だと思います。
重すぎて辛いみたいな時期のPythonを触ったことがないですが、そんな感じだったんですね!Cとかと比べると遅いですが、レーテンシーがシビアじゃないものなら問題ないかな!って感じですね😉
今となっては組み込み機器にすらPython突っ込まれてることありますもんね
アルゴリズムやデータ構造でどうにもできず、どうしても早い処理が必要な場合はC/C++で実装して、別の言語で呼び出すことはよくありますね。
コメントありがとうございます😊なるほど、必要な時はC/C++で書いちゃうの凄いです!処理に合った言語を幅広く選択できるのは良いですね!
むしろpython とc系の組み合わせが普通だと思ってる
最近サプーさんの動画にはまって過去のものもいろいろと拝見させていただいています。素人な質問で大変申し訳ないのですが、pythonではライブラリをインポートしながらいろいろな機能を使っていくものと理解したのですが、欲しいものがライブラリにない場合はどうするのでしょうか?自分達で作ったりするのでしょうか?
料理をするときに、切る・煮る・焼くで、包丁や鍋やフライパンを状況に応じて使い分けるのと同じですね。
素晴らしいまとめ、Javaで開発してるので同感。でも便利ではありますね。
ご視聴いただきありがとうございます😊そうですね、純粋なプログラミング言語としてPythonを見ると弱さが色々あるのですが、サクッとコードが書けたりグルー言語としての特性を考えるとやはり便利だな、と思います!
専門家ではなく独学で数年前から勉強してきて、Pythonの使い勝手が悪いと思うところは、パッケージ管理が難しいということです。Requirement.txt とかで専用環境を作れば安定して動作させることができることは理解はできるけれども、用途ごとに環境を変えないと、意味不明のエラーに悩まされる可能性があるというところに限界を感じています。(最近は、MicrosoftのPowerPlatformに興味を持ち始めてます。)
コメントありがとうございます😊パッケージ管理ですがpoetryは使用されたことがありますでしょうか?個人的にはpoetryを使うと割と楽かな?と思っています!今後poetryの動画は出そうと考えています😉 poetry 公式サイト ▶︎ cocoatomo.github.io/poetry-ja/ただ、Pythonでは仮想環境・パッケージ管理ツールは沢山存在していて、どれを選んだら良いか困るのは確かですね😵 (poetry, pipenv, pyenv, conda, virtualenv など...)
サプーさん。私はデータサイエンスの博士課程に在籍している者です。私は日本語を少しわかります。良い授業をどうもありがとうございました \^o^/。サプーさんのビデオは私のPythonの学習にとても役立っています。これからもよろしくお願いします。
コメントありがとうございます😊日本語もデータサイエンスも勉強されてて凄いです!!Pythonに関する動画をたくさん出しているので、是非色々見てもらえたら嬉しいです✨
pythonで書くときに気になるのは、インスタンス変数の可視性や変数の再代入不可を強制できない点ですね。
そうですね、Pythonは言語仕様としてゆるふわな感じですね。
2:26 以前のはなしですが、Pythonの勉強を開始して初めて【動的型付け】という単語を聞いたとき、【動的片付け】かと思ってしまい、『何をお片付けしてくれるんだろう🤔?』『Pythonで面倒な作業を自動化できるらしいからそれと関係しているのかな😀?』と勘違いしてしまいました。今から思うとなぜそんな勘違いを一時的とはいえしてしまったのか自分でもわかりません。
片付け😆確かに「かたづけ」と音で聞くと、片付けと勘違いしやすいかもですね!あれ?ガベージコレクション関連の話かな?って思っちゃうかもです🤔
いつも動画参考にさせてもらっています。pythonを学び始めたばかりでサイト見てもわからないことが多いのでとてもわかりやすい動画はとてもありがたいです。競技プログラミングをする際に処理時間が長すぎてエラーが出てしまうのはpythonではない言語(C系)を学べば解決できるのでしょうか?(探索うまくすればそもそも問題ないのですが...)あとできる言語が今pythonしかないのですが、サプーさん的に他の言語でやっておくべき言語とかはありますか?
ご質問ありがとうございます!言語選択の前に、処理時間が短くなる効率的なアルゴリズムを組むことが重要なのかな?と思いました!すでに効率的なアルゴリズムを使っているのにもかかわらず、処理時間が長くてエラーになるのであれば、言語を変える必要があるのかもしれないですね🤔私は競プロやったことないので Pythonでは通用しないものなのかわからないのですが、C、C++の方が処理は速いですね!「やっておくべき言語」は結局、プログラミングを何に使うかで変わってくるので一概には言いにくいのですが、競プロで使いたいならやはりC++ですかね!
@@pythonvtuber9917 親切に細かく教えてくださってありがとうございます!!これからも応援してます頑張ってください!!
自由度が高い分弱点も多いんですね...勉強になりました!
ご視聴いただきありがとうございます😊 少しでもPython理解のお役に立ってていたら嬉しいです!
なるほど遅延が少ない方がいい場合や同時並行で動かす場合は他の言語の方が適してることも多いんですね。でもせっかく基礎構文がなんとなくわかってきたのでpythonも続けて学習しつつ他言語も試してみたいと思います。スマホアプリに興味あるのでマックのswiftもやってみます。ipadのpythonistaでは限界を感じてきて最近は久しぶりにマックも使ってます。趣味レベルです。
ご視聴いただきありがとうございます😊色々な言語に興味を持つのは良いことですね!!ぜひ色々試してみてください!
一番大きな欠点は変数名の書き間違いがエラーにならない事だと思います。# 変数counterがあるとしてconuter = counter + 1 # この間違いが検出できない
いつも楽しく見てます。並行処理、並列処理のとこで質問があります。例えばArduino IDEで通常1つしかloop 関数が使えませんが、ラズパイピコ等loop関数が二つ使える場合、これは並列処理にあたるのでしょうか並行処理にあたるのでしょうか?宜しくお願いします。
ご質問ありがとうございます!申し訳ないのですが、Arduino・Raspberry Pi Pico用のプログラムについては専門外のためちょっと分かりません...お力になれず申し訳ないです😵
ラズパイピコにおけるloop関数が2つ使える状況は、pythonのマルチスレッド・マルチプロセッサとは違うように思えます。その理由として、pythonがマルチスレッド・マルチプロセッサの使用を宣言した場合、OSがその割り振りを決める点にあると考えられます。逆に、OSがないラズパイピコの場合はプログラムを作る人が自分で実行順番や待ち時間、共有資源の管理をしなくてはならないはずです。(エアプなのでMicroPythoでfrom multiprocessing import Poolができるかどうかわかりませんが・・・)
こんにちは!私が初めてPythonを触った時は、インデントが強制されるなどコードを記述するのに自由度が低く慣れるまで苦労しましたが、誰が書いても解りやすいコードに仕上がるので逆にメリットだと感じました♪ 一つ気になったことは「弱点1」で紹介されてた変数の型についてですが、変数を入れるためのメモリサイズを予め大き目に取られるってことなんですかね?
大きめに取られるということはないと思います。オブジェクトに値が代入されるタイミングで必要な分だけ確保され、値を変えるたびに新しいメモリ領域に必要な分だけ確保されるはずです。参照されなくなったメモリ領域は自動で解放されます!
必要に応じて様々な言語を扱ったりするので、Pythonの弱みに対しては非常に納得できます。本当にPythonは多くの場合で遅くて、動的型付けで何を扱っているのかわからなくなってしまうので、そういう点はC++と比べて悩ましいように思います。後、インタプリタ型言語なので、コンパイル時にわかるバグやエラーを発見するのがしんどいというのもありますね。そのような感じで弱点は何となく分かるのですが、逆に強みはたくさん思いつかないです...そういう動画はあげてない感じですかね?私個人としてパッと思いつくのは「ライブラリの扱いが楽」なのと「初心者が書きやすい」ところが強みかなぁとは思います。C++はライブラリの構築が非常に面倒くさい...。pipやcondaでボタン一発という感じじゃなくて、アレがこれでみたいな感じで、下手な場合、makeする感じで面倒くさいです...。
ご視聴いただきありがとうございます!「強み」という意味では作っていないのですが、第1本目の「Pythonとは?」という動画の中でPythonの良いところを上げています!個人的にはライブラリの多さ、初心者が書きやすい(初期の段階でという意味で)、人気な言語のため教材が多い、とかそのあたりかな?って思いますね😉Pythonとは?▶︎ruclips.net/video/HAQzAaeThbE/видео.html
今流行りのCodonを使えば、速度も上がるし、動的型付けゆえの弱点は克服できそう(外部ライブラリの利便性は下がるけど......)
Poetry についても教えてほしいです!
python,便利なのかな…位で使い始めたら処理速度の遅さにまさにやられました。特にデータが10万,100万もあるとfor文で回すのは至難の業でしたね…結局,Cythonを使っています
コメントありがとうございます😊すごい分かります、Pythonのfor文は遅いですよね...😵 なるほどCythonで書く手もありますね!!
動画楽しく拝見しています。個人的には変数のスコープを小さく持てないところがちょっと惜しいなあと思ったりします。
分かります!!関数内から外の変数にアクセスできたり、for文内で作成した変数がそのまま外でも使えるのとか、どうも気持ちが悪いなぁとPythonを学習し始めた頃は思ってました!ご意見ありがとうございます😊
最近Pythonを使い始めたんですが個人的には階層のコントロールがインデントのみというのがちょっと惜しいと感じましたthen〜endif や {} みたいな範囲の開始終了を明示的にできないので、ちょっと階層が込むと、ifやloopの終わりがどの高さ(インデント)かわかりにくいなーとそれ以外は多機能で充実しているのでとても良い言語だと思っています
ご視聴いただきありがとうございます😊他言語をやっている方だと、インデントのみでコードのブロックを表現するのに違和感を感じますよね!インデントについてはエディターの機能をうまく使いこなして慣れていく感じですかね🤔
型が弱く、その影響で遅くなることをカバーするため、一部をCythonで型定義すると、とても早くなります。
コメントありがとうございます😊Cythonは良いアイディアですね!!参考にさせてもらいます!
プログラミングのモチベーションが下がった時にどう対処したのか教えて欲しいです
短期的で達成できそうな目標を定めるのはどうでしょうか?プログラミング学習の目的にもよりますが、転職が目的なら「人に見せられるポートフォリオをまずは1つ完成させる」とか、業務効率化が目的なら「仕事で使えるツールを1つ作る」みたいなイメージです!
pythonでGUIアプリをexe化して配布しようとすると化け物のような大きさのファイルになって、しかも起動がめちゃくちゃ遅くて現実的な方法じゃないのが僕が思うpythonの弱点その6
コメントありがとうございます😊おっしゃる通り、Pythonのexe化には無理がありますね...exe化をするなら、やはりC++やC#とかですかね!
弱点1が怖すぎる処理内で型をチェックしないといけないのかまだコンストラクタで再代入禁止とかのコードサンプルがあると楽なんだが
人口が多く敷居が低いので、ブログなどでけっこう汚いコードが溢れているところも弱点ですかねー…
ときおり拝見しては参考にさせていただいております。単なるワナビーとしての意見で恐縮ですが、python言語の弱点という観点からは少しズレているかもしれませんが、pythonは環境構築が(実は, 意外にも, 思ったより)難しいということがあると思います。きちんと構築するまでにいろいろ罠がありすぎるといいますか… あんまりよくわかってなくてもそれなりに動かせてしまうのが怖いところだなと(例. Mac OS 上で /opt/ anaconda/bin/python3 みたいなことになっているのを知らずに使っていた、みたいな・・・)。システムに影響を与えないようにする注意書きは案外本にも書かれていなかったり、間違ってはないけどそれってどーなのよって記述も見かけるのでかんぜんに罠というかトラップが張り巡らされている感があります (長文失礼)
なるほど、確かに環境構築につまづくことが多いかもしれないですね...😵 貴重なご意見、ありがとうございます!!
最近使ってて、bit演算が使いにくいなって感じました💦
コメントありがとうございます!!なるほどですね!bit演算はあまり使わないので、盲点でした😳
複数の行を持つlambdaが書けず、defでいちいち別のスコープに書かなければならないのは、イベント駆動型の設計でツール作るときに結構不便だと思っています。ハンドラ関数の定義と登録の場所がバラけてしまい、ほぼC言語の関数ポインタ使ってるコードと同じ感じになって見づらいです。
コメントありがとうございます😊確かに、Pythonのlambdaは複数行書けないですね!!コールバック関数として色々処理を書きたい場合に使えないっていうのは、デメリットですね😵 勉強になります✨
弱点とは違うかもしれませんが、Pythonも知名度はかなり高くなったものの、人に話す際にJavaやCと比べ若干バカにされがちな気もしますw動作が遅く、並列処理も向いていないのに機械学習に向いている言語なのはどういった理由なんだろう
Pythonでスクレイピングをした時に処理に200時間かかってしまった。もちろん、そんな時間は無理だから萎えた
そのコード見てみたい😂
python4 と互換性が無い という可能性がちらつくのが弱点だろう。未来で書き直したくない
なるほどですね🤔
Djangoの弱点と強点も知りたいんですけど、動画を撮る計画がありますか?とても楽しいです。( ◠‿◠ )
私が思うPythonの弱点:Djangoの場合ですけど、非同期通信が難しいのがかなり不便です。これも並列処理のせですか?
ご要望ありがとうございます!Djangoについては、今後、動画を作成する予定です😉Djangoでの非同期通信は具体的にどういう処理かによると思います。
私の思うもっとも致命的な弱点は「文法があまりに簡単 & 基本なんでもできすぎて、高級言語で打ちたくなくなる」点だとおもいます笑日頃からそんなに制約のない状況でコーディングしているのもあって、高級言語を勉強するモチベがどんどんなくなってます(´Д`)
コメントありがとうございます!簡単なコードで色々できるがゆえの弱点みたいなものもあるかもですね!色々な意見が聞けて嬉しいです😊
なぜ手続き型で書くことが多いのでしょうか?🤔
手続き型だと簡単にコードが書けるからですね!ただし、手続き型はコードが汚くなりやすいです。動画でも説明している通り、オブジェクト指向・関数型でコードを書くのは、手続き型より難しくてスキルが必要です。Pythonだと小規模なプログラムが多いので、スキルが必要なオブジェクト指向でガッツリ書くより、手続き型でササッと書いちゃえ!って考える人が多いのだと思います。
@@pythonvtuber9917 なるほどですね!私はどちらかと言えば分ける派ですが、たしかに小規模すぎるときは処理を分けるか悩みます笑
ちなみに関数型プログラミングは関数を使うプログラミングではなく、処理をほとんどを「式」で記載するプログラミング手法です😉 なのでfor文は使えないし、if文も使えません。(for文やif文は「文」なので) ラムダ式は「式」なので使えます!関数型は非常に高度なプログラミングでオブジェクト指向よりずっと難しいです...私は1ミリも分かりません😇
@@pythonvtuber9917 そうなんですね!関数型に関しては私は存在すら知らなかったです💦職場の同じ開発チームの人達も、メソッドのことを良く関数って言ったりしてたので、てっきりメソッドのことかと思いました笑
オブジェクト指向に関する指摘に疑問を感じます。手続き型が多いというのは、単にPythonユーザーの傾向を述べているだけではないでしょうか?C++でも手続き型は書けますし。逆にPythonにデザインパターンを採用することも特に障害は無いように思います。オブジェクト指向を適用する難しさの本質は、「変更に対していかに柔軟に対応するか」という設計そのものであって、Python言語の仕様に由来するものではないと思いますが。。。
ご意見ありがとうございます!そうですね「手続き型が多いので、コードが汚いことが多い」と言う弱点はPythonユーザーの傾向ですね!この動画では「ユーザの性質」や「コミュニティの性質」、総じて「Pythonを取り巻く環境」を含めて、Pythonの弱点と考えて作りました😉 例えば「Pythonのライブラリの多さ」はPythonの言語仕様ではないけど、多くのPythonユーザが長所として考えているのと同じ感じだと捉えてます!
Pythonにも弱点があったのか・・・
むしろ言語としては弱点だらけだけどライブラリの類が強すぎるんや
マルチスレッドしてください
動画の要望ですかね?検討してみますね😉
改めて弱点を知ることでならば逆に「どの言語なら」や「補えるライブラリーは?」等のような逆引き?も可能なのかな?いつもありがとうございます😭
コメントありがとうございます😊おっしゃる通り、この場合はPythonよりこっちの言語だな、って切り替えも大切ですね😉 Pythonに固執してイマイチなアプリしか作れないというのは勿体無いので!
@@pythonvtuber9917 つまり‼️他の言語も覚えた方が良いと(笑)
どうしても作りたいアプリがあってPythonじゃ実現できないなら、選択肢の1つだと思います😉また、学習面からも色々な言語を触るのは、視野が広くなるのでとってもおすすめです!
Pythonを勉強する上では言語の強みはもちろん、弱み(向いていない使い方)も知ってた方が様々な状況に対応できるので、こういった動画はとてもありがたいです!
あと、解説わかり易かった♪
コメントありがとうございます😊
Pythonの文法やライブラリ解説動画だけじゃなくて、色々な動画を今後も出していきます✨
つい最近Pythonの勉強を初めて、Pythonがどういうもので、何に向いていないのかという根本的な部分の理解ができました。どの動画とっても分かりやすいです。
ご視聴いただきありがとうございます😊
分かりやすさを重視して動画作りしているので、そう言っていただけて嬉しいです!
いつもわかりやすい動画ありがとうございます!! 以下の4点も弱点と言えますでしょうか?🤔
1. バージョン間の互換性
公式サポートは終了していますが、一部のシステムでは未だにpython 2が使われており、python 3と互換性がないこと。
2. パッケージ管理システム
pipとanacondaを混在させて、それぞれにしかないライブラリーを使用すると、予期せぬbugが生まれてしまうことがある。
3. self
クラス内でメソッドを定義するときの第一引数にselfを書かないといけない…
4. インクリメント
i ++ といった書き方ができないのが地味に面倒だったり… これは仕様だから仕方ないですね(笑)
ご質問ありがとうございます😊 1つずつ回答させていただきますね!
1. Python2と3の互換性
Python2は、2014年ごろにはPython3へ移行するよう促されており、それでも進まず、2020年1月に完全にサポートを終了しております。2022年の現在のタイミングでPython2との互換性を弱点として指摘するのは、個人的には違うかな、と思います。厳しいかもしれませんが、Python3への移行を再三促しているのに、8年も移行をしていないシステムがあるとしたら、それは単なる怠惰かな、と思います。
2. パッケージ管理システム
このチャンネルでもライブラリのインストールはpipでのインストールを紹介しているよう、condaはあまり使うことがないという認識です。condaにしかないライブラリを使いたい場合にのみスポットで使う感じだと思っています。パッケージ管理についても今後動画を出して、この部分は詳しく解説したいですね!どちらかというと個人的にはpipenv、poetry、pyenv、この辺りのをどれを使ったら良いかベストが分かりにくい、というのは確かに辛いところかなーっと思います😉
3. self
私はPyCharmを使っているので自動でselfが挿入されてselfをタイピングすることはないので、あまり気にしたことはありませんでした🤔 そういったエディタを使ってない方は煩雑に感じる方もいるかもしれませんね。ただ「スタティックメソッドを作るときにデコレータを使わない人もいるので、このselfがなくなるとクラスメソッドとスタティックメソッドの違いを見分けるのが面倒ということもあるので、弱点と言われるとちょっと疑問に思いました🤔
4. インクリメント
私自身はインクリメント変数を自作することはほとんどないため弱点というほどではないかな?と思います。この動画(残念なコード ▶︎ ruclips.net/video/GjbWHLB5zMA/видео.html )でも解説している通り、zipやenumerateを使うとインクリメント変数の自作が回避できる場合が多いですね!
辛さや煩雑さは開発環境や外的要因にも関わるので、色々な考えがあって面白いですね!
@@pythonvtuber9917 とても丁寧にご回答していただき、ありがとうございます🙇大変勉強になりました🙇🙇
15年位前はまだCPU性能が低く「Pythonくそ重」と思って避けまくっていましたが、最近はCPU性能もずいぶん上がって昔のように苦痛は感じなくなりましたね。弱点いろいろありますが、素晴らしい言語だと思います。
重すぎて辛いみたいな時期のPythonを触ったことがないですが、そんな感じだったんですね!
Cとかと比べると遅いですが、レーテンシーがシビアじゃないものなら問題ないかな!って感じですね😉
今となっては組み込み機器にすらPython突っ込まれてることありますもんね
アルゴリズムやデータ構造でどうにもできず、どうしても早い処理が必要な場合はC/C++で実装して、別の言語で呼び出すことはよくありますね。
コメントありがとうございます😊
なるほど、必要な時はC/C++で書いちゃうの凄いです!処理に合った言語を幅広く選択できるのは良いですね!
むしろpython とc系の組み合わせが普通だと思ってる
最近サプーさんの動画にはまって過去のものもいろいろと拝見させていただいています。素人な質問で大変申し訳ないのですが、pythonではライブラリをインポートしながらいろいろな機能を使っていくものと理解したのですが、欲しいものがライブラリにない場合はどうするのでしょうか?自分達で作ったりするのでしょうか?
料理をするときに、切る・煮る・焼くで、包丁や鍋やフライパンを状況に応じて使い分けるのと同じですね。
素晴らしいまとめ、Javaで開発してるので同感。でも便利ではありますね。
ご視聴いただきありがとうございます😊
そうですね、純粋なプログラミング言語としてPythonを見ると弱さが色々あるのですが、サクッとコードが書けたりグルー言語としての特性を考えるとやはり便利だな、と思います!
専門家ではなく独学で数年前から勉強してきて、Pythonの使い勝手が悪いと思うところは、パッケージ管理が難しいということです。Requirement.txt とかで専用環境を作れば安定して動作させることができることは理解はできるけれども、用途ごとに環境を変えないと、意味不明のエラーに悩まされる可能性があるというところに限界を感じています。(最近は、MicrosoftのPowerPlatformに興味を持ち始めてます。)
コメントありがとうございます😊
パッケージ管理ですがpoetryは使用されたことがありますでしょうか?個人的にはpoetryを使うと割と楽かな?と思っています!今後poetryの動画は出そうと考えています😉
poetry 公式サイト ▶︎ cocoatomo.github.io/poetry-ja/
ただ、Pythonでは仮想環境・パッケージ管理ツールは沢山存在していて、どれを選んだら良いか困るのは確かですね😵 (poetry, pipenv, pyenv, conda, virtualenv など...)
サプーさん。私はデータサイエンスの博士課程に在籍している者です。私は日本語を少しわかります。良い授業をどうもありがとうございました \^o^/。サプーさんのビデオは私のPythonの学習にとても役立っています。これからもよろしくお願いします。
コメントありがとうございます😊
日本語もデータサイエンスも勉強されてて凄いです!!
Pythonに関する動画をたくさん出しているので、是非色々見てもらえたら嬉しいです✨
pythonで書くときに気になるのは、インスタンス変数の可視性や変数の再代入不可を強制できない点ですね。
そうですね、Pythonは言語仕様としてゆるふわな感じですね。
2:26 以前のはなしですが、Pythonの勉強を開始して初めて【動的型付け】という単語を聞いたとき、【動的片付け】かと思ってしまい、
『何をお片付けしてくれるんだろう🤔?』『Pythonで面倒な作業を自動化できるらしいからそれと関係しているのかな😀?』と勘違いしてしまいました。
今から思うとなぜそんな勘違いを一時的とはいえしてしまったのか自分でもわかりません。
片付け😆
確かに「かたづけ」と音で聞くと、片付けと勘違いしやすいかもですね!
あれ?ガベージコレクション関連の話かな?って思っちゃうかもです🤔
いつも動画参考にさせてもらっています。pythonを学び始めたばかりでサイト見てもわからないことが多いのでとてもわかりやすい動画はとてもありがたいです。
競技プログラミングをする際に処理時間が長すぎてエラーが出てしまうのはpythonではない言語(C系)を学べば解決できるのでしょうか?(探索うまくすればそもそも問題ないのですが...)あとできる言語が今pythonしかないのですが、サプーさん的に他の言語でやっておくべき言語とかはありますか?
ご質問ありがとうございます!
言語選択の前に、処理時間が短くなる効率的なアルゴリズムを組むことが重要なのかな?と思いました!すでに効率的なアルゴリズムを使っているのにもかかわらず、処理時間が長くてエラーになるのであれば、言語を変える必要があるのかもしれないですね🤔
私は競プロやったことないので Pythonでは通用しないものなのかわからないのですが、C、C++の方が処理は速いですね!「やっておくべき言語」は結局、プログラミングを何に使うかで変わってくるので一概には言いにくいのですが、競プロで使いたいならやはりC++ですかね!
@@pythonvtuber9917 親切に細かく教えてくださってありがとうございます!!これからも応援してます頑張ってください!!
自由度が高い分弱点も多いんですね...勉強になりました!
ご視聴いただきありがとうございます😊 少しでもPython理解のお役に立ってていたら嬉しいです!
なるほど遅延が少ない方がいい場合や同時並行で動かす場合は他の言語の方が適してることも多いんですね。
でもせっかく基礎構文がなんとなくわかってきたのでpythonも続けて学習しつつ他言語も試してみたいと思います。
スマホアプリに興味あるのでマックのswiftもやってみます。
ipadのpythonistaでは限界を感じてきて最近は久しぶりにマックも使ってます。趣味レベルです。
ご視聴いただきありがとうございます😊
色々な言語に興味を持つのは良いことですね!!ぜひ色々試してみてください!
一番大きな欠点は変数名の書き間違いがエラーにならない事だと思います。
# 変数counterがあるとして
conuter = counter + 1 # この間違いが検出できない
いつも楽しく見てます。並行処理、並列処理のとこで質問があります。例えばArduino IDEで通常1つしかloop 関数が使えませんが、ラズパイピコ等loop関数が二つ使える場合、これは並列処理にあたるのでしょうか並行処理にあたるのでしょうか?宜しくお願いします。
ご質問ありがとうございます!
申し訳ないのですが、Arduino・Raspberry Pi Pico用のプログラムについては専門外のためちょっと分かりません...お力になれず申し訳ないです😵
ラズパイピコにおけるloop関数が2つ使える状況は、pythonのマルチスレッド・マルチプロセッサとは違うように思えます。
その理由として、pythonがマルチスレッド・マルチプロセッサの使用を宣言した場合、OSがその割り振りを決める点にあると考えられます。
逆に、OSがないラズパイピコの場合はプログラムを作る人が自分で実行順番や待ち時間、共有資源の管理をしなくてはならないはずです。
(エアプなのでMicroPythoでfrom multiprocessing import Poolができるかどうかわかりませんが・・・)
こんにちは!私が初めてPythonを触った時は、インデントが強制されるなどコードを記述するのに自由度が低く慣れるまで苦労しましたが、誰が書いても解りやすいコードに仕上がるので逆にメリットだと感じました♪ 一つ気になったことは「弱点1」で紹介されてた変数の型についてですが、変数を入れるためのメモリサイズを予め大き目に取られるってことなんですかね?
大きめに取られるということはないと思います。オブジェクトに値が代入されるタイミングで必要な分だけ確保され、値を変えるたびに新しいメモリ領域に必要な分だけ確保されるはずです。参照されなくなったメモリ領域は自動で解放されます!
必要に応じて様々な言語を扱ったりするので、Pythonの弱みに対しては非常に納得できます。
本当にPythonは多くの場合で遅くて、動的型付けで何を扱っているのかわからなくなってしまうので、そういう点はC++と比べて悩ましいように思います。
後、インタプリタ型言語なので、コンパイル時にわかるバグやエラーを発見するのがしんどいというのもありますね。
そのような感じで弱点は何となく分かるのですが、逆に強みはたくさん思いつかないです...そういう動画はあげてない感じですかね?
私個人としてパッと思いつくのは「ライブラリの扱いが楽」なのと「初心者が書きやすい」ところが強みかなぁとは思います。
C++はライブラリの構築が非常に面倒くさい...。pipやcondaでボタン一発という感じじゃなくて、アレがこれでみたいな感じで、下手な場合、makeする感じで面倒くさいです...。
ご視聴いただきありがとうございます!
「強み」という意味では作っていないのですが、第1本目の「Pythonとは?」という動画の中でPythonの良いところを上げています!個人的にはライブラリの多さ、初心者が書きやすい(初期の段階でという意味で)、人気な言語のため教材が多い、とかそのあたりかな?って思いますね😉
Pythonとは?▶︎ruclips.net/video/HAQzAaeThbE/видео.html
今流行りのCodonを使えば、速度も上がるし、動的型付けゆえの弱点は克服できそう(外部ライブラリの利便性は下がるけど......)
Poetry についても教えてほしいです!
python,便利なのかな…位で使い始めたら処理速度の遅さにまさにやられました。特にデータが10万,100万もあるとfor文で回すのは至難の業でしたね…
結局,Cythonを使っています
コメントありがとうございます😊
すごい分かります、Pythonのfor文は遅いですよね...😵 なるほどCythonで書く手もありますね!!
動画楽しく拝見しています。
個人的には変数のスコープを小さく持てないところがちょっと惜しいなあと思ったりします。
分かります!!関数内から外の変数にアクセスできたり、for文内で作成した変数がそのまま外でも使えるのとか、どうも気持ちが悪いなぁとPythonを学習し始めた頃は思ってました!ご意見ありがとうございます😊
最近Pythonを使い始めたんですが
個人的には階層のコントロールがインデントのみというのがちょっと惜しいと感じました
then〜endif や {} みたいな範囲の開始終了を明示的にできないので、ちょっと階層が込むと、ifやloopの終わりがどの高さ(インデント)かわかりにくいなーと
それ以外は多機能で充実しているのでとても良い言語だと思っています
ご視聴いただきありがとうございます😊
他言語をやっている方だと、インデントのみでコードのブロックを表現するのに違和感を感じますよね!インデントについてはエディターの機能をうまく使いこなして慣れていく感じですかね🤔
型が弱く、その影響で遅くなることをカバーするため、一部をCythonで型定義すると、とても早くなります。
コメントありがとうございます😊
Cythonは良いアイディアですね!!参考にさせてもらいます!
プログラミングのモチベーションが下がった時にどう対処したのか教えて欲しいです
短期的で達成できそうな目標を定めるのはどうでしょうか?プログラミング学習の目的にもよりますが、転職が目的なら「人に見せられるポートフォリオをまずは1つ完成させる」とか、業務効率化が目的なら「仕事で使えるツールを1つ作る」みたいなイメージです!
pythonでGUIアプリをexe化して配布しようとすると化け物のような大きさのファイルになって、しかも起動がめちゃくちゃ遅くて現実的な方法じゃないのが僕が思うpythonの弱点その6
コメントありがとうございます😊
おっしゃる通り、Pythonのexe化には無理がありますね...
exe化をするなら、やはりC++やC#とかですかね!
弱点1が怖すぎる
処理内で型をチェックしないといけないのか
まだコンストラクタで再代入禁止とかのコードサンプルがあると楽なんだが
人口が多く敷居が低いので、ブログなどでけっこう汚いコードが溢れているところも弱点ですかねー…
ときおり拝見しては参考にさせていただいております。
単なるワナビーとしての意見で恐縮ですが、python言語の弱点という観点からは少しズレているかもしれませんが、pythonは環境構築が(実は, 意外にも, 思ったより)難しいということがあると思います。きちんと構築するまでにいろいろ罠がありすぎるといいますか… あんまりよくわかってなくてもそれなりに動かせてしまうのが怖いところだなと(例. Mac OS 上で /opt/ anaconda/bin/python3 みたいなことになっているのを知らずに使っていた、みたいな・・・)。システムに影響を与えないようにする注意書きは案外本にも書かれていなかったり、間違ってはないけどそれってどーなのよって記述も見かけるのでかんぜんに罠というかトラップが張り巡らされている感があります (長文失礼)
なるほど、確かに環境構築につまづくことが多いかもしれないですね...😵
貴重なご意見、ありがとうございます!!
最近使ってて、bit演算が使いにくいなって感じました💦
コメントありがとうございます!!
なるほどですね!bit演算はあまり使わないので、盲点でした😳
複数の行を持つlambdaが書けず、defでいちいち別のスコープに書かなければならないのは、イベント駆動型の設計でツール作るときに結構不便だと思っています。
ハンドラ関数の定義と登録の場所がバラけてしまい、ほぼC言語の関数ポインタ使ってるコードと同じ感じになって見づらいです。
コメントありがとうございます😊
確かに、Pythonのlambdaは複数行書けないですね!!コールバック関数として色々処理を書きたい場合に使えないっていうのは、デメリットですね😵 勉強になります✨
弱点とは違うかもしれませんが、Pythonも知名度はかなり高くなったものの、人に話す際にJavaやCと比べ若干バカにされがちな気もしますw
動作が遅く、並列処理も向いていないのに機械学習に向いている言語なのはどういった理由なんだろう
Pythonでスクレイピングをした時に処理に200時間かかってしまった。
もちろん、そんな時間は無理だから萎えた
そのコード見てみたい😂
python4 と互換性が無い という可能性がちらつくのが弱点だろう。未来で書き直したくない
なるほどですね🤔
Djangoの弱点と強点も知りたいんですけど、
動画を撮る計画がありますか?
とても楽しいです。( ◠‿◠ )
私が思うPythonの弱点:
Djangoの場合ですけど、非同期通信が難しいのがかなり不便です。これも並列処理のせですか?
ご要望ありがとうございます!
Djangoについては、今後、動画を作成する予定です😉
Djangoでの非同期通信は具体的にどういう処理かによると思います。
私の思うもっとも致命的な弱点は「文法があまりに簡単 & 基本なんでもできすぎて、高級言語で打ちたくなくなる」点だとおもいます笑
日頃からそんなに制約のない状況でコーディングしているのもあって、高級言語を勉強するモチベがどんどんなくなってます(´Д`)
コメントありがとうございます!
簡単なコードで色々できるがゆえの弱点みたいなものもあるかもですね!色々な意見が聞けて嬉しいです😊
なぜ手続き型で書くことが多いのでしょうか?🤔
手続き型だと簡単にコードが書けるからですね!ただし、手続き型はコードが汚くなりやすいです。
動画でも説明している通り、オブジェクト指向・関数型でコードを書くのは、手続き型より難しくてスキルが必要です。Pythonだと小規模なプログラムが多いので、スキルが必要なオブジェクト指向でガッツリ書くより、手続き型でササッと書いちゃえ!って考える人が多いのだと思います。
@@pythonvtuber9917 なるほどですね!
私はどちらかと言えば分ける派ですが、たしかに小規模すぎるときは処理を分けるか悩みます笑
ちなみに関数型プログラミングは関数を使うプログラミングではなく、処理をほとんどを「式」で記載するプログラミング手法です😉
なのでfor文は使えないし、if文も使えません。(for文やif文は「文」なので) ラムダ式は「式」なので使えます!関数型は非常に高度なプログラミングでオブジェクト指向よりずっと難しいです...私は1ミリも分かりません😇
@@pythonvtuber9917
そうなんですね!
関数型に関しては私は存在すら知らなかったです💦
職場の同じ開発チームの人達も、メソッドのことを良く関数って言ったりしてたので、てっきりメソッドのことかと思いました笑
オブジェクト指向に関する指摘に疑問を感じます。
手続き型が多いというのは、単にPythonユーザーの傾向を述べているだけではないでしょうか?
C++でも手続き型は書けますし。逆にPythonにデザインパターンを採用することも特に障害は無いように思います。
オブジェクト指向を適用する難しさの本質は、「変更に対していかに柔軟に対応するか」という設計そのものであって、Python言語の仕様に由来するものではないと思いますが。。。
ご意見ありがとうございます!
そうですね「手続き型が多いので、コードが汚いことが多い」と言う弱点はPythonユーザーの傾向ですね!
この動画では「ユーザの性質」や「コミュニティの性質」、総じて「Pythonを取り巻く環境」を含めて、Pythonの弱点と考えて作りました😉
例えば「Pythonのライブラリの多さ」はPythonの言語仕様ではないけど、多くのPythonユーザが長所として考えているのと同じ感じだと捉えてます!
Pythonにも弱点があったのか・・・
むしろ言語としては弱点だらけだけどライブラリの類が強すぎるんや
マルチスレッドしてください
動画の要望ですかね?検討してみますね😉
改めて弱点を知ることで
ならば逆に「どの言語なら」や
「補えるライブラリーは?」等のような逆引き?も可能なのかな?
いつもありがとうございます😭
コメントありがとうございます😊
おっしゃる通り、この場合はPythonよりこっちの言語だな、って切り替えも大切ですね😉 Pythonに固執してイマイチなアプリしか作れないというのは勿体無いので!
@@pythonvtuber9917
つまり‼️
他の言語も覚えた方が良いと(笑)
どうしても作りたいアプリがあってPythonじゃ実現できないなら、選択肢の1つだと思います😉
また、学習面からも色々な言語を触るのは、視野が広くなるのでとってもおすすめです!