プログラミング言語の難易度ランク作りました ご覧ください [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
-------S(唯一神)-------
機械語
-------A(ハッカー)-------
アセンブラ C++ C
-------B(一般プログラマ 凡人)-------
java C♯
-------C(日曜プログラマ)-------
ruby python swift
-------D(一般事務員でも使える)-------
VBA PowerShell
-------E(手段が目的になっているただのカス)-------
その他のマイナー言語厨(特にHaskell) 俺の経験から難易度を点数化した
異論は認めない
点数 言語
---------
16.0 Coq
11.0 Haskell
10.0 OCaml
9.5 C++
5.0 アセンブラ
4.0 C
3.5 Swift
3.5 C#
3.0 Java
3.0 Scheme
2.5 Smalltalk
2.5 JavaScript
2.0 Python
2.0 Ruby
2.0 PHP
2.0 Perl
1.5 BASIC cそんなむずいか?
一定水準以上の脳みそを所有してたら他の言語より相対的に下がりそうだが アマゾンとかの評価で適当にあたりを付ける
↓
大きい本屋に行く
↓
あたりを付けた順にざっくり読んでみる
↓
わかりそうな本を買って読む
↓
実際にちょっとやってみる
これでなんでも理解できるようになるかな 難易度というより>>102の個人的な上げ下げでしかないな。
難易度ならPythonよりRubyやPerlがそんなに下のわけないし逆にSwiftは高すぎる。 Julia ←凡百にはわからないのでランク対象外
この立ち位置いいよね >>102
>9.5 C++
>5.0 アセンブラ
気持ち分かる。
アセンブラより難しい高級言語っていったいどういう立ち位置なんだろうかと
思ってしまう。 言語の違いって、このハサミはあのハサミより使いにくい程度のものと認識 まあ切れれば同じだろの精神でカッターナイフといった似て非なるものに化けてるような言語はあるけどな >>103
async/await、linq、.net、ジェネリクス、リフレクション、jit、スクリプト実行、il、マルチスレッド、…
使うだけなら簡単かもしれないけど、一通り学ぶのはスクリプト言語とかよりは重いかなと思った
>>104
構造体や共用体、配列やポインタ、プリプロセスやリンケージ、修飾子や指定子、手軽なLLより難しいと思う
理解したとしてもメモリ管理やエラー処理や設計等は面倒臭くなりがち
標準ライブラリにある多数の使うべきではない関数、期待通りに動いてしまう言語仕様にはない環境依存のプログラム、他言語よりダントツに多い脆弱性等、落とし穴も多い
>>106
順序はデタラメ
点数で見て
python、ruby、perlは同列
swiftも圧倒的に高いわけではない rubyXLでエクセルいじってるが
印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・ 5ch では、マルチポストは禁止です!
同じ質問を、複数のスレで聞いてはいけません!
Ruby のスレの方で、聞いてください! チューリングマシン語とか
ブレインファックとか
が難易度最高レベルと思う 難易度なんていくらでも上げられる
問題は生産性に見合っているか 最近触った言語の中でケタ外れに難しかったのはrust
ちいさいプログラムを書く分にはそうでもないけど
ある程度実践的な部分に踏み込んでいくと途端にうまくいかない
理解不足が露呈する
気難しい言語、でも好き >>116
難易度を上げる、生産性を上げる
どっちも目的にしてない言語があるのを知らないのか だいたい合ってんじゃん
このランキングに載らないようなのはゴミってことで そう思ってた時期が私にもありました
今は命令数が数千もあって
理解が難しい命令も色々とある
簡単では無いよ >>118
そういうネタ言語はゴマンとあるけど
難易度ランクに入れても無意味っしょ じゃあ難易度も生産性も無視した
メジャーな言語教えてよ 関数型言語は解ってる奴が使えば副作用が起きづらいからデバッグや保守が簡単になるんでしょ?
そういった生産性が故に注目されてるんじゃないの?
将来的なものも含めて全く生産性に寄与しない言語なんて注目されようがないと思うんだけど。
ネタとして以外に >>127
研究分野がある
プログラマーは興味ないだろうけど まぁ研究まで含めるならいくらでも難しい言語はあるんだろうけど
その難しさがwとWだけで書くからとか
そういう難しさじゃランクに並べる意味が無いと思うのよ
個人的な意見だけど Perlは、
・引数に参照やポインタの様なものを渡す関数を作りたいと思ったら上手く行かなくて
難しい。そもそも、関数がちゃんと書けないという説がある。
・文字列を1文字ずつ処理したいときに勝手にさまざまな変換が行われてしまいがちなので難しい。
・ASCIIコードと文字そのものの区別が複雑で、その変数が果たしてどっちなのかなかなか分からなかった。 >>120
でも、ポインタや再帰が難しく感じるような人には、マシン語を使いこなすのは難しいはず。 >>131
わりと下らんだろ。
不動点コンビネータとか発見(どやっ)とかやっちゃってるの馬鹿らしいなと思うわ。 rpg3やrexxはどのくらいですか?w
vb.netも無いし めんどくさいと難しいは違う。
アセンブラやC言語は簡単。
だけどめんどくさいだけ。 >>138
機械語は0と1だけ
アセンブラはアルファベットやで
まあ気持ちはわかるけど 機械語
バイナリイメージを指すこともあるし
それを16進数表記した物を指すこともある >>137
それでも、
・ケアレスミスなどが起き易い。
・C言語で言う所の生ポインタを型も付けずに使うことで間違いが起き易い。
ポインタは型を導入することでアセンブラよりは劇的に間違いが少なくなっている。
C言語のポインタに厳密な型があるのはそのために導入された。
・命令数やコードの量が多くなる。
・ローカル変数からグローバル変数に直すような事も、C言語の様に宣言の場所を変えれば
済むようなことはなく、その都度丁寧にソースを見直して影響を受ける場所を加筆・修正しなくてはならない。
その際、沢山の命令の追加・削除・変更や、使うレジスタの変更も伴う。
・C言語のように「変数名を検索」すれば必ずしも関連場所が見つかるようなことは無い。
レジスタで処理されている場合が多いため。
・BYTEからintに変更したいような場合も、命令やレジスタの大幅変更を伴うことが結構多い。
・関数に引数を渡すのも複雑な手作業のようになるので、作業量が多い。
・コンピュータの深い理解が必要。
などがあって実際のプログラミングは難しい。 >>142
「C言語の生ポインタは、それを書いた場所とは全く別の場所で原因不明のバグを生み出すので
避けたほうがいい」
などという人がいる。
アセンブラでは生のアドレスによる間接参照を使うがそれはポインタをさらに危険にしたようなものなので、
とても書いた場所とはまったく別の場所でバグを生み出すことがある。
そうなると原因を探し出すのにとても時間がかかる。
そういうことがあって、アセンブラで大きなプログラムを書くことが出来た人は、
バグが非常に少ないプログラミングが出来る人か、または、バグが入っても
上手く原因を見つけ出すことが出来る人に限られた。
それが出来る人が非常に少数派だったので、できる人は天才、などと呼ばれた。 >>143
さらに言えば、当時のパソコンは、現在の様な「保護モード」では動いていないために、アセンブラで書いたプログラムに間違いがあると「暴走」や「ハングアップ」「再起動」などの現象が起きた。
そうなると、パソコンをリセットしてOSを再起動して、またやり直す必要があった。
それに時間が掛かるのでバグが少なく書ける人で無いとアセンブラでプログラムするのはとても難しかった。
当時、BASICで書いていると間違いがあってもこのような現象がほぼ全く起きなかったので、それと比してもアセンブラは難しい印象を与えた。
なお、その後にパソコンでも使えるようになったC言語でも同様の現象は起きた。
が、アセンブラに比べれば間違いが起きにくかったのでアセンブラよりはだいぶ易しい印象を与えた。 >>141
そのバイナリイメージってつまり二進数ってこと? バイナリっていうくらいだから元は2進数って意味だけど
今はビルド後のファイルやROMイメージという意味で使われる
2進数で表示すれば2進数だし
16進数で表示すれば16進数
256進数とも言えるし
base64形式なら64進数とも言える Haskell > C++ > Scala >= C >> Java >>149
cと同じくらい。
ルールは少ないように感じるけど、実際作るとめちゃくちゃ不安定なものが出来上がるところとか。 ぶっちゃけ、どの側も言語もそれぞれ難しさがあると思うけど、Haskellは抽象性が高いから、抽象的思考に慣れていないと、アプリのコード組めないと思う。
てことで、個人的偏見ありで、
Haskell >> C++ > C > Java, JavaScript > Python 人間のおつむは再帰を直感的に理解するようにできてない ■ このスレッドは過去ログ倉庫に格納されています