将来性ないプログラミング言語。Delphi含まれず安心
■ このスレッドは過去ログ倉庫に格納されています
5 Programming Languages That Are Probably Doomed
https://insights.dice.com/2019/07/29/5-programming-languages-probably-doomed/
Ruby
Haskell
Objective-C
R
Perl Python信者「関数が長いと見にくいので次第に短い関数を書くようになるから教育的に優れている」 C/C++ の場合、三回ブロックが終わった後に aaa が書いてあると分かる:
}
}
}
aaa;
Pythonの場合、以下の様になっていて、画面上のaaaの先頭に「定規」でも付けて
エディタで上にスクロールして、ifやforや内部関数定義の冒頭(defかな?)などを見つけて
どこと一致してるか確認してから、下にスクロールして意味を考えないといけない。
aaa; >>74
でも同じロジックでも、C/C++やC#やJavaやRubyで書いてあれば
ブロックの範囲で悩むことは無かった。だから書き方の問題ではなく、
言語そのものの設計の問題だと考えられる。 他人のプログラムのロジックの難しさで悩むのはしょうがない。
しかし、ブロックの範囲がそもそも分からなくて悩むのはPython特有で
今までの言語では無かった悩みどころが入ってしまった。 定規とかアホすぎ
上下移動でカーソル位置は横に移動しないエディタとか
縦に補助線引けるエディタとか使えよ
(もちろんそこまでしなくても読めるが馬鹿には必要な機能なんだろ) >>79
ちなみに、自分の IQは、メンサ会員になれるよりだいぶ上です。 まず、
if
if
for
の入れ子とかおかしいからな
こんな作り方しないよ >>81
そんなことないです。
その位は普通に有りますし、悪いプログラムでも汚いプログラムでもは有りません。
問題はソースの方にあるのではなく、Pythonの設計の方にあります。 じゃあPythonを改善したスゴい言語でも作れば?
IQ高いんだろ 他のメジャーな言語はだいたいカッコか、そうでなければendとかfiとかキーワードでブロック作るもんな
Pythonだけじゃん キスしてイチャイチャしたいだけでしょ
スルーでいい >>1で将来性のないプログラミング言語筆頭にRubyが挙げられてることから目を逸らしたい幼稚な工作でしょwww Rubyの未来は
ウォウウォウウォウウォウ
世界が羨む
パイパイPython >>80
統合失調症かよ
ム板って何でこんなやつが多いんだ VSCode の拡張機能、Bracket Pair Colorizer, indent-rainbow などで、対応関係がわかる
WEB+DBのJulia特集を読んだ
http://medfreak.info/?p=4850
漏れも、同じ意見
Python ではプログラミングしづらいけど、
Julia は、do 〜 end など、Ruby に似てるから、プログラミングしやすい
やっぱり、外人も同じように思ったから、Julia, Elixir などが作られた!
Juliaは、Pythonのライブラリも呼べる
NumPy がいらない。
ベクトル演算・行列積・線形代数・統計処理などが標準装備
LLVM のJIT だから速い
今後は皆、Pythonから、Juliaに流れそう >>94
>VSCode の拡張機能、Bracket Pair Colorizer, indent-rainbow などで、対応関係がわかる
解決策ありがとです >>94
漏れも、同じ、意見。
Rubyは、廃れる! VB6までが無い
Perlが挙がってるのが個人的には不思議 >>43 その通りだな。 インデントが無茶苦茶でも通るからロジックのまとまりがどうなってるかわかりづらい。 仕方なく自分でインデントを整理するが。
ま、どんな言語でも作ってるやつがクソならクソなプログラムになってる。 時々イラっときて作り直した方が早い。 >>66 () {} などで括られた中はインデントを気にしなくても良い。 >>86 あのさ、そんな些細な事より、{} で括るとか、
if
fi
とかの方が余程コーディングの手間が多いぞ。
1タッチでも少ない方が良い。
そもそも、Python はスクリプト言語だと言うことを無視して話してる。
その都度実行されないといけないんだぞ。
間違えるわけがない。 書くのは一回、読むのは数十回
たった一回書くのが楽なことよりも
何十回も読むのが楽な方を選ぶ Perlに依存してるパッケージが減りつつあるような気がしないでもない >>101 何十回も試行錯誤して、採用するのは一つという世界がわからない? 何十回も試行錯誤してる。
その間、何十回も読んでいる。 うちもそうだけど知ってる範囲じゃperlはもう書かせない会社ばっかりだな 弱小うんこwebドカタ仕事専用のRoRのシェアが落ちてきたって本当ですか? まぁ一番将来性無いのは勉強止めた奴だけどな。派閥抗争ごっこする位なら新しい言語の一つでも覚えりゃいい。 保守はしたくないけどプロトタイピングにはいまでも有用
なんだかんだ文句いいながらも使えるひとが多い pythonのインデントでブロック作るのホント嫌い
ちょっとした入力ミスでインデントがズレると死ぬ
あれのせいでワンライナーを半ば強制されてるようなもので
チューニングはしづらいし、可読性は下がる >>116に対する反論。
俺の会社の奴らはインデント矯正されないと
インデントめちゃくちゃにする。
可読性はもっと下がる。誰のせいか? 普通のプログラミング言語なら push 時にインデントチェックして拒否したり自動整形するようにできる
python みたいなインデントでブロック作る言語はダメね >>117
フォーマッタ使えばよくね???
インデントが狂っても静的チェックでエラー出ないからバグの温床になるし
長くなったコードを改行するときにもインデントが必要になるから区別がつけづらいし
ラムダ式書く場合も内容が複数行に渡る場合は関数内関数を定義する必要が出てきてこれがまた書き難いし読み辛い
インデントブロックは俺も最初は見やすくていいじゃん!って思ってたけど
使い込むうちに不便な側面の方が強くなってきたわ インデントでブロックを作るやつはデバッグとか
動作検証したいだけってときに面倒だよね
自分で手書きするときはインデントするし
最終的には綺麗にするんだけど、
一部のコードをコメントアウトしたり
動きがわからんから、一部分抜き出して動きを見たりとか
そういう作業中のじゃまになる。 >>117
emacsならC-c C-qでもいいし他のエディタも整形機能ついてるのあるんじゃないの
pythonはエディタが特化してないとどうしようもない
インデントだけで管理しなきゃいけないってのは悪手だ 経験上、インデント面倒臭いというやつのコードは汚い >>123
(上級者は)インデントするのが面倒くさいって言ってるんじゃないからな。
デバッグや動作検証などの一時的なコードまでインデントするのが面倒くさいって言ってるんだからな。
すぐ消すようなコードまでインデントする必要ないし
後で消すときに目立つようにあえてインデントを崩してる。 インデントと論理構造の一致が不要という人もいるだろうし
コードはすべて大文字で書くべきという人もいるだろう
コーディング規約の一貫性は不要だという人もいれば
レビューは工数の無駄だという人もいるだろう
そういうレベルのお話よね インデントとカッコで同じ情報を表してるんだから冗長なのは事実
知能が高いと冗長さは単純に無駄だが、低脳ドカタには冗長さも必要ってことだよ インデントとカッコが同じ情報だと思ったことがPythonの敗因だろうね
インデントっていうのはスペースと同じなんだよ。
コンピュータからすれば意味はなくて、
人間が見やすくなるように人間のためのもの
意味がある情報だけで言えば、スペースは要らない
カンマや演算子の前後にスペースは要らない
関数の引数だって,のみスペースは禁止にしたってよかったはずだ。
でもそうしなかったのは関数の引数を区切るカンマと
見やすくするためのスペースは別物だから
Pythonは見やすくするためのインデントを意味と共通化してしまったから
見やすい記述に制限ができてしまった。 >>128
それに、ブロックの終了の記号が何にも無いのは明確さがなく、
ケアレスミスの元となる。レイアウト的なものは、空行を入れたり
少し違う業や関数からコピーして来たりするときにずれ易い。
ずれたときにブロックの終了記号があると助かる。
>>127
逆に助長性は安全性に繋がりやすい。例えば、C/C++の最後のセミコロン";"
は無くてもコンパイラがその都度推定できる可能性はあるが、
有った方が確実だから有る。Rubyなんかは無くても分かるときはなくて良い
仕様ではあるが、大規模プログラムではそれが見つけにくいバグの原因に
なる可能性がある。 >>127
文系の人は、lexical(字面)的な読解力が頭の良さだと勘違いしやすいが、
そうではない。字面ではなく本質的なところが重要。字面的な判別能力
を自慢にしてる人は、短いが見にくい変な書き方をして結局本人も間違う。 >>127
ちなみにおいらは、客観的に見て低脳ドカタではない。
高IQ、高学歴、高実績で評価は高い。 理系の短いは実行する行が少ない(定義文や空行は含めない)
文系の短いは書く量が少ない >>128
C/C++において、関数の引数を二行以上に渡って書きたいような時、
インデントと意味は、有る意味ではずれる。しかし、それぞれの引数の後ろに
一つずつコメントを書きたいようなときにはそのの書き方は見やすい :
func(
aaa, // これこれこういう意味。
bbb, // TYPE *pXxxx
);
また、ターゲット別に #if #endif などでコードを変えたいような場合は、
インデントの関係がどうしても崩れる場合があるし、その場その場で
マクロに対するインデントを重視するか、C/C++言語に対するインデントを
重視するか、どちらがいいかは一概には決まらない。
#if xxx
TYPE aaa;
・・・
#else
・・・
#endif
↑TYPE aaa; の部分に、#if ブロックのインデントを付けた方がいい場合と、むしろ、その場の
C/C++ のブロック宣言としてのインデントの位置を維持した方が分かりやすい場合とが有り、
どちらも優劣付けがたい。 >>133
文系の人は、文章そのものの雰囲気的な美しさに美学を見出す傾向がある。
芥川龍之介の「表現技巧(?)」が素晴らしいとか、○○氏の詩的表現は
真似できないとか。
しかし、それをプログラミングに持ち込んで欲しくない。ここでもそういう
表面的な美しさばかりにとらわれている人が多い気がする。 上級者はコードの書き方に拘って
見やすいように、意味が伝わりやすいよに書くんだが
低級者は無意味に見づらく書く(本人は見づらいことがわかってない。そこまで気が回らない)
そういう低級者にインデントのみ、書き方を押し付けることが出来るが
どちらにしろ低級者なので、クソコードにしかならない
低級者には補助輪程度の役目にしかならず、上級者には足かせとなる そういえば、プログラミングにおいても>>134の場合のように、関数の
引数を折り返して書く場合、どの程度引数の前に空白やタブを入れるべきかは
人間が見たときの「見易さ」で決まる。それは関数名 func 部分の長さに
よっても変化し得る。そして、何が美しいかは「美学」「美術」の領域に
入ってきてしまう可能性がある。だからプログラミングは芸術とも言われる。
その意味で、インデントに論理的な意味を与えすぎると、芸術的な
美しさが得られなくなってしまう可能性は高い。 まるで自分が将来性が無いって言われてるように感じてしまって必死なんよ 年収3000万超えてからが上級やぞ
それまでは低脳ドカタ インデントで話を散らかしてRubyの将来性>>1から意識を逸らしたいだけw デルファイは言語じゃ無くて、IMEの名前じゃね?
あれ、中身言語はpascalだよな? Rubyに将来性はないし、使ってる99.999%は低脳ドカタ pythonはインデントガーとか言ってる人ってメモ帳でソースでも書いてるの?w メモ帳以外で書いたら、勝手にインデント揃えてくれるんか?
例えば、他から持ってきた複数行のコードをコピペしたときに
インデント=ブロック構造というコードの意味になってるんだから
勝手に整形してくれるわけないな ペーストしたとこからの相対でインデント維持しないん? >>149
秀丸とか使ってそう(^^;;
とりまVSCodeかatom入れようよ(^-^; >>150
無理だろ?
例えばこういうコードに
def repeat_msg(msg, repeat=3):
for i in range(repeat):
print msg
他のコードで使われてる、インデントが異なるこの2行をコピペして
print foo
print bar
def repeat_msg(msg, repeat=3):
for i in range(repeat):
print msg
print foo
print bar
に勝手にインデント揃えてくれるエディタなんて思いつかん
そもそも実現可能なのか?やる方法があるにしても、どこからコピペを
開始して、どこに移動してから貼り付けるとかパッと出てくる? コピー先の最初の行のインデントの深さだけ決めてコピーしたら
残りの行のインデントも自動的に揃えられるだろ >>153
草
ちょっとは最新のエディタも触ってみようぜ >>154
残念ながらそれは無理。
def repeat_msg(msg, repeat=3):
for i in range(repeat):
print msg
| ここで貼り付けをすると
こうなる。
def repeat_msg(msg, repeat=3):
for i in range(repeat):
print msg
print foo
print bar >>153>>156
ここでPythonのインデント云々って言ってる人はこんなレベルだったの? WEB+DB vol.111 は、Ruby on Rails 6, Julia 特集だけど、
Python から、Julia へ流れそう
Julia は、do 〜 end が使えて、Ruby風に改良されてる!
Jupyter Notebook(JN)でも使える
Windows で、RubyをJNで使っている人は、日本語でバグらないの?
irb では、バグるけど
RubyをVSCode で使っているけど、JNでも日本語でバグらないかどうか、知りたい >>156
自分の周りにコピペプログラマーがいないからちょっとびっくりなんだけど
こういうレベルの人が世の中に結構いたりするの?! >>156
しかもそれ他の言語でも同じだよね例えばcならこうなるけどカッコで対応とれてるからってそのままこういう風に書き続けるのかキミは?w
void repeat_msg(char *msg, int repeat){
for (int i = 0; i < repeat; i++){
printf("%s\n", msg)
}
printf("%s\n", foo)
printf("%s\n", bar)
printf("end.\n")
} 敢えてやるなら
def repeat_msg(msg, repeat=3):
for i in range(repeat):
print msg
if True:
print foo
print bar
こんな感じ
コピペの方がインデント浅い時とか長い時は別関数造って呼ぶ とりあえずpythonで書き慣れると他の言語が鬱陶しくて仕方ないねインデントに限らず
プログラミング言語の完成形に近いと思うわ
恒常的に動くシステムのソフトとかでもない限りpython一択だと思うわ
あ、GUIアプリは知らん わい氏、第1得意言語haskell、第2得意言語ruby、無事死亡 pythonの何が完成系なんだよ。
変数のスコープがあいまいだし、
参照かコピーかあいまいだし、
ライブラリと同じ名前のファイル名つけたら悲惨だし
結局あいまいだからちょっと複雑なものを作るとうんざりする。
完成されたライブラリにちょっとパラメータ変えて流すには便利ってだけの代物 >>160
ある機能を他でも使うから関数化しようかなーとかあるわけだが >>167
ちょっと複雑なものなんてお前には作れないだろ
モッサリ鈍重ウンコwebサイトは複雑でもなんでもないからね? あいまいではないな。
仕様どおりだ。
仕様が変だという話かな。 Python, Ruby っぽい、Julia
関数型なら、
Haskell っぽい、Elm。
Ruby っぽい、Elixir >>167
まあ無能な奴は厳しい規則設けて檻に入れとくしか飼いならす方法ないもんなあ
プログラミング言語も同じで草 ■ このスレッドは過去ログ倉庫に格納されています