前スレ
ぶっちゃけ始めるのにいい言語て何 part6
https://mevius.5ch.net/test/read.cgi/tech/1628771431/
ぶっちゃけ始めるのにいい言語て何 part7
■ このスレッドは過去ログ倉庫に格納されています
2021/09/12(日) 12:56:23.75ID:5CNhVmk1
523デフォルトの名無しさん
2021/10/05(火) 02:24:56.27ID:jjv9GGMe >>521
個人的にはむしろインデックスの開始が負であってほしいことなんて無いけれども
まあ別にあっても良いけど負であってほしいなら負でできる言語を使えば良いし
後ろから取れる方が便利ならそっち使えば良いし
具体的にどの仕事でどんなコード書いた時にインデックスの開始が負である事が
そこまで重要で「害」というほどの問題が出たの?
非常に些細な問題に思えるが
思い込みの強いスペクトラムの人がプログラマ向いてるみたいな事いう人
いるけど全然向いてないんだよね
数学とかのが良いのでは?
個人的にはむしろインデックスの開始が負であってほしいことなんて無いけれども
まあ別にあっても良いけど負であってほしいなら負でできる言語を使えば良いし
後ろから取れる方が便利ならそっち使えば良いし
具体的にどの仕事でどんなコード書いた時にインデックスの開始が負である事が
そこまで重要で「害」というほどの問題が出たの?
非常に些細な問題に思えるが
思い込みの強いスペクトラムの人がプログラマ向いてるみたいな事いう人
いるけど全然向いてないんだよね
数学とかのが良いのでは?
524デフォルトの名無しさん
2021/10/05(火) 06:23:56.53ID:2oqKIsmm そうね
パッとどんなシチュエーションで使えばインデックスがマイナスのとき有用性があるのか思いつかないけど、
スタックエリアも溜め込むときPushを使うとスタックポインタが指すアドレスはマイナスされるとかあるから、どっかで使い道はあるかもね。
弊害としてはちょっと違うかも知れないけど、スーパーマリオで残機増やして128機以上にすると、死ぬとゲームオーバーになる、というのと似ているのかな。
まぁあれの場合は1バイトでも削って作ろうとしていたみたいだから判ってたけど敢えてチェックは入れなかったのかも知れないけど。
機能を理解した上であれば別にそういうもんなんだろう、で片付く話のような気がするよ。
パッとどんなシチュエーションで使えばインデックスがマイナスのとき有用性があるのか思いつかないけど、
スタックエリアも溜め込むときPushを使うとスタックポインタが指すアドレスはマイナスされるとかあるから、どっかで使い道はあるかもね。
弊害としてはちょっと違うかも知れないけど、スーパーマリオで残機増やして128機以上にすると、死ぬとゲームオーバーになる、というのと似ているのかな。
まぁあれの場合は1バイトでも削って作ろうとしていたみたいだから判ってたけど敢えてチェックは入れなかったのかも知れないけど。
機能を理解した上であれば別にそういうもんなんだろう、で片付く話のような気がするよ。
525デフォルトの名無しさん
2021/10/05(火) 07:46:23.69ID:J9uTiL9m >>509
> Pythonは機械学習やった時に半年ほどしか使ってないがマイナスでバグったこと
> 一回もないしむしろその範囲では書きやすくてよかったよ
それな
これが実際書いてるやつの率直な感想だと思うわ
いろんな言語を切り替えて使ってる奴にとって
使ってる言語の仕様に合せてプログラミングするというのは
なんの恐れることもない当たり前の空気のようなこと
極端に経験が少ないか柔軟性が無い奴は怖いだろうけど
> Pythonは機械学習やった時に半年ほどしか使ってないがマイナスでバグったこと
> 一回もないしむしろその範囲では書きやすくてよかったよ
それな
これが実際書いてるやつの率直な感想だと思うわ
いろんな言語を切り替えて使ってる奴にとって
使ってる言語の仕様に合せてプログラミングするというのは
なんの恐れることもない当たり前の空気のようなこと
極端に経験が少ないか柔軟性が無い奴は怖いだろうけど
526デフォルトの名無しさん
2021/10/05(火) 07:48:58.06ID:r5SNpXIN >>510
なんで必要かどうかもわからない拡張性で今ここでいい悪いを論じるのかわからんが、
配列参照演算をオーバーライドできるなら問題ないがな。
逆にあんたの論理だと、配列参照演算をオーバーライドできない言語は拡張性の視点で
全部ダメってことにならないかな。
なんで必要かどうかもわからない拡張性で今ここでいい悪いを論じるのかわからんが、
配列参照演算をオーバーライドできるなら問題ないがな。
逆にあんたの論理だと、配列参照演算をオーバーライドできない言語は拡張性の視点で
全部ダメってことにならないかな。
527デフォルトの名無しさん
2021/10/05(火) 09:31:11.02ID:uYCoijY3 だから何に話をしてるんだっていってんだろ
528デフォルトの名無しさん
2021/10/05(火) 09:56:05.72ID:LkgJCUEu 何にって猫かな?
529デフォルトの名無しさん
2021/10/05(火) 10:34:48.12ID:Fyf6Owff プログラミング言語より猫語の方が役に立ちそう。
530デフォルトの名無しさん
2021/10/05(火) 10:52:37.79ID:MXyUAm/U そもそもマイナス指定っ要するにarr.length-nでlengthを省略できるようにしたいってだけだろ
そこまで省略したいかね?って思うけどね
なんつーかここら辺はTDDとセットでやるから許される言語仕様であって、TDDしてないのにこの言語仕様を肯定するのはバグがあった場合の事想定してなさすぎる
そこまで省略したいかね?って思うけどね
なんつーかここら辺はTDDとセットでやるから許される言語仕様であって、TDDしてないのにこの言語仕様を肯定するのはバグがあった場合の事想定してなさすぎる
531デフォルトの名無しさん
2021/10/05(火) 11:14:47.30ID:J9uTiL9m > 要するにarr.length-nでlengthを省略できるようにしたいってだけだろ
しつけーわ
なんでお前意外とっくに全員わかってることを
いまさら大発見みたいに書き込むんだガイジ
頭悪すぎん?
しつけーわ
なんでお前意外とっくに全員わかってることを
いまさら大発見みたいに書き込むんだガイジ
頭悪すぎん?
532デフォルトの名無しさん
2021/10/05(火) 11:27:15.20ID:uYCoijY3 みんなカルシウム摂ろうぜ
533デフォルトの名無しさん
2021/10/05(火) 11:48:17.87ID:MXyUAm/U え、別人なんだけどこの人怖い
534デフォルトの名無しさん
2021/10/05(火) 13:05:57.99ID:nhjUOKYi length-nを省略すると良いことと悪いことがあって、
言語的に優先することが違うから、採用したりしなかったりするのかもね。
省略したら、ぱっと見判りにくくなるけど、
Pythonみたいなインタプリタは入力減らすほうが優先、とか。
言語的に優先することが違うから、採用したりしなかったりするのかもね。
省略したら、ぱっと見判りにくくなるけど、
Pythonみたいなインタプリタは入力減らすほうが優先、とか。
535デフォルトの名無しさん
2021/10/05(火) 13:23:56.58ID:HrDzy9dq 皆が述べてるように悪い点は3つなのかな
・わざわざ省略するわかりにくさ
・バグでマイナス値になった時と区別がつかない
・インデックス範囲を自由に指定できる仕様とバッティング
だから多くの言語では採用していないのもわかる
結果としてPythonやPerlなど異端な言語のみが採用って感じ?
・わざわざ省略するわかりにくさ
・バグでマイナス値になった時と区別がつかない
・インデックス範囲を自由に指定できる仕様とバッティング
だから多くの言語では採用していないのもわかる
結果としてPythonやPerlなど異端な言語のみが採用って感じ?
536Mb
2021/10/05(火) 13:39:32.69ID:NR1fOsV4 サイズが n だと添字(そえじ)は 0 から n-1。
そんなわけで、添字で指定すると、要素は mod n。
数学的にはなんの問題もないのだが、実務に携わっている
システム屋としては、「範囲外参照なんだから例外くらい
投げろよ」と思う。
「だって、仕様書通りに実装したんだもーん」みたいな
アホがいた時代があった、という話だろうな。
そんなわけで、添字で指定すると、要素は mod n。
数学的にはなんの問題もないのだが、実務に携わっている
システム屋としては、「範囲外参照なんだから例外くらい
投げろよ」と思う。
「だって、仕様書通りに実装したんだもーん」みたいな
アホがいた時代があった、という話だろうな。
537デフォルトの名無しさん
2021/10/05(火) 13:50:38.64ID:2oqKIsmm ぶっちゃけ「始めるのにいい言語」というスレタイからするとその辺はどうでもいい範疇だと思うけどね
538Mb
2021/10/05(火) 13:53:59.41ID:NR1fOsV4 >>522
C はそもそもシステム開発用の言語なので、
そういうことができないとダメなんだわ。
「右の値と左の値」というのがあって、
代入記号というのは「向かって左のアドレスに、
向かって右の値を転写する」というのが基本だった。
「バイト数が合ってたらなんでもあり」でないと、
システムプログラム(OS)は作りづらい。
そこは、アプリケーションプログラムの開発と
システムプログラムの開発では、違う部分があると思う。
C はそもそもシステム開発用の言語なので、
そういうことができないとダメなんだわ。
「右の値と左の値」というのがあって、
代入記号というのは「向かって左のアドレスに、
向かって右の値を転写する」というのが基本だった。
「バイト数が合ってたらなんでもあり」でないと、
システムプログラム(OS)は作りづらい。
そこは、アプリケーションプログラムの開発と
システムプログラムの開発では、違う部分があると思う。
539デフォルトの名無しさん
2021/10/05(火) 14:06:54.91ID:HrDzy9dq540Mb
2021/10/05(火) 14:08:24.92ID:NR1fOsV4 >>523
自閉系スペクトラム障礙の私が敢えていいますよ。
C のルーチンで、バイト列の値を返すときに、可変長だったら
こっちでバッファを用意するでしょう?(もちろん、
alloc した領域の中で処理して、free する前に確保した領域ですが)
そこを上位にルーチンが掻き潰すと、「うちの領域で起きた不具合」に
なってしまうんですよ! 「このクソ忙しいときに、上位会社のケツとか
拭いているヒマはねぇんだよ!」と思うんですが、とにかくシステムが
動かなかったらテストもできない。そんなわけで、障害切り分けをして
レポートを上げたら、「次からは気をつけてね」とか。
襁褓も取れていない小便臭い(プログラミングの何かも知らない)
ひいひいたもれのガキのお守りは、たぶん SE の仕事ではないと思う。
自閉系スペクトラム障礙の私が敢えていいますよ。
C のルーチンで、バイト列の値を返すときに、可変長だったら
こっちでバッファを用意するでしょう?(もちろん、
alloc した領域の中で処理して、free する前に確保した領域ですが)
そこを上位にルーチンが掻き潰すと、「うちの領域で起きた不具合」に
なってしまうんですよ! 「このクソ忙しいときに、上位会社のケツとか
拭いているヒマはねぇんだよ!」と思うんですが、とにかくシステムが
動かなかったらテストもできない。そんなわけで、障害切り分けをして
レポートを上げたら、「次からは気をつけてね」とか。
襁褓も取れていない小便臭い(プログラミングの何かも知らない)
ひいひいたもれのガキのお守りは、たぶん SE の仕事ではないと思う。
541Mb
2021/10/05(火) 14:16:15.90ID:NR1fOsV4 >>539
おぉ、解っていらっしゃる。
C の配列はポインタと同一視されるので、
++ は「ポインタに対して、sizeof 分だけ
インクリメントする」という意味ではあるし、
sp++ とか --spとかいうのも、スタック操作と
いうものを考えると自然な操作だ。
おぉ、解っていらっしゃる。
C の配列はポインタと同一視されるので、
++ は「ポインタに対して、sizeof 分だけ
インクリメントする」という意味ではあるし、
sp++ とか --spとかいうのも、スタック操作と
いうものを考えると自然な操作だ。
542デフォルトの名無しさん
2021/10/05(火) 14:23:26.23ID:HrDzy9dq >>540
Cだと確保した領域を「渡してしまう」のかそれとも「一時的に貸すだけ」なのかの区別がないためどちらがその領域の最終責任を持つのか曖昧になってしまうね
Rustだとそこがはっきりしてるため解放忘れも二重解放も起きないし言語側が全て自動でやってくれるから楽で安全安心
Cだと確保した領域を「渡してしまう」のかそれとも「一時的に貸すだけ」なのかの区別がないためどちらがその領域の最終責任を持つのか曖昧になってしまうね
Rustだとそこがはっきりしてるため解放忘れも二重解放も起きないし言語側が全て自動でやってくれるから楽で安全安心
543デフォルトの名無しさん
2021/10/05(火) 14:30:18.69ID:2oqKIsmm ちなみにC#になるとポインタの概念が消えて
もっとセーフティーなDeregateになったよね。
それを良しと捉えるか悪化と捉えるかは
個人で意見の別かれるところだと思うけど。
もっとセーフティーなDeregateになったよね。
それを良しと捉えるか悪化と捉えるかは
個人で意見の別かれるところだと思うけど。
544デフォルトの名無しさん
2021/10/05(火) 14:34:39.20ID:2oqKIsmm deregateって何だよ
delegateの間違いだわ
スマソ
delegateの間違いだわ
スマソ
545デフォルトの名無しさん
2021/10/05(火) 14:40:48.11ID:HrDzy9dq546デフォルトの名無しさん
2021/10/05(火) 14:46:58.82ID:MXyUAm/U ガベコレがある言語かない言語かでどうしても考え方が分かれるから、始めるのにいい言語はどっちなのか先に決めてもいいんじゃなかろうか?
547デフォルトの名無しさん
2021/10/05(火) 15:49:14.07ID:HrDzy9dq >>546
昔は「GCがない」=「自分でメモリ管理しなきゃいけない」=「ミスると致命的」だったからその区別をする意義が理解できたけど
今は状況が一変してしまいました
【第1期】CとC++(初期)
自分で手動でメモリ解放しなければならなかった
【第2期】C++(現在)
各種スマートポインタ使用によりメモリ解放は自動で行われるようになった
しかしプログラムが込み入ってくると適切なスマートポインタ使用を完全にコントロールできなくなってるケースも多々ありそれが問題
つまり書かれたプログラムにメモリ安全性の保証が必ずしもないことが課題
【第3期】Rust
所有貸し借りをC++よりさらにはっきりさせることでコンパイルが通ったプログラムはメモリ安全性を保証することに成功
もちろんメモリ解放は言語レベルで自動に即座に行われるのでGCなし
しかもGCありの言語と同等もしくはそれ以上にメモリ安全性を保証
つまり以前は『GCなし言語は高速だけど自己責任管理ミス防止が大変』だったのが
今は『GCなし言語で高速なのに言語レベルで管理ミスを確実に防止してくれる』となった
初心者でもGCなしの高速なプログラミングを安全に出来るようになったわけです
昔は「GCがない」=「自分でメモリ管理しなきゃいけない」=「ミスると致命的」だったからその区別をする意義が理解できたけど
今は状況が一変してしまいました
【第1期】CとC++(初期)
自分で手動でメモリ解放しなければならなかった
【第2期】C++(現在)
各種スマートポインタ使用によりメモリ解放は自動で行われるようになった
しかしプログラムが込み入ってくると適切なスマートポインタ使用を完全にコントロールできなくなってるケースも多々ありそれが問題
つまり書かれたプログラムにメモリ安全性の保証が必ずしもないことが課題
【第3期】Rust
所有貸し借りをC++よりさらにはっきりさせることでコンパイルが通ったプログラムはメモリ安全性を保証することに成功
もちろんメモリ解放は言語レベルで自動に即座に行われるのでGCなし
しかもGCありの言語と同等もしくはそれ以上にメモリ安全性を保証
つまり以前は『GCなし言語は高速だけど自己責任管理ミス防止が大変』だったのが
今は『GCなし言語で高速なのに言語レベルで管理ミスを確実に防止してくれる』となった
初心者でもGCなしの高速なプログラミングを安全に出来るようになったわけです
548デフォルトの名無しさん
2021/10/05(火) 16:05:08.71ID:s2K7JbUj >>538-539
規格上は未定義の動作でしょ。
JIS X 3010の6.5.2.1とか6.5.6とかを見てみたら。
[]がポインタ演算として処理されるからといって、配列とポインタを同一視できるわけではない。
実際上は538-539の期待どおりに動作する処理系がほとんどだから、厳密には未定義であることを承知の上で利用することは否定しないが、言語仕様の話をしているときに、それがC言語の本来的な仕様であるかのように語るのは違和感がある。
規格上は未定義の動作でしょ。
JIS X 3010の6.5.2.1とか6.5.6とかを見てみたら。
[]がポインタ演算として処理されるからといって、配列とポインタを同一視できるわけではない。
実際上は538-539の期待どおりに動作する処理系がほとんどだから、厳密には未定義であることを承知の上で利用することは否定しないが、言語仕様の話をしているときに、それがC言語の本来的な仕様であるかのように語るのは違和感がある。
549Mb
2021/10/05(火) 16:16:25.50ID:NR1fOsV4 >>547
正確にいうと、古い世代の言語は GC を明示的に行なっていたけれど、
現代の言語は、そこの部分をうまく隠蔽していて、それを標準として
いるということではないかな?
文字列オブジェクトの A.equals(B)は、LISP の頃は当然だったけれど、
「値が一緒だったら、一緒にしないとまずくねぇ?」という話になって
A.eq(B)みたいな話には、少なくとも Java ではあったりする。
String オブジェクトを「==」で処理するのは行儀が悪いが、
シングルトン実装を踏まえて ちゃんと作法を守って使うのなら、
それはそれで認める。
つーか、これって「ぶっちゃけ始めるににいい言語て何」という
スレタイに合ってねぇだろ。ここは老人の寄合所なのか?
正確にいうと、古い世代の言語は GC を明示的に行なっていたけれど、
現代の言語は、そこの部分をうまく隠蔽していて、それを標準として
いるということではないかな?
文字列オブジェクトの A.equals(B)は、LISP の頃は当然だったけれど、
「値が一緒だったら、一緒にしないとまずくねぇ?」という話になって
A.eq(B)みたいな話には、少なくとも Java ではあったりする。
String オブジェクトを「==」で処理するのは行儀が悪いが、
シングルトン実装を踏まえて ちゃんと作法を守って使うのなら、
それはそれで認める。
つーか、これって「ぶっちゃけ始めるににいい言語て何」という
スレタイに合ってねぇだろ。ここは老人の寄合所なのか?
550Mb
2021/10/05(火) 16:23:52.58ID:NR1fOsV4 >>589
それを言ったら FORTRAN の FOR ループから脱出したときの、
FOR 文の局所変数の値は、規格の上では「不定」だったんだよ!
ANSI 規格の C 言語に文句があるわけじゃない。
行儀よく振舞えって言っているのだ。
それを言ったら FORTRAN の FOR ループから脱出したときの、
FOR 文の局所変数の値は、規格の上では「不定」だったんだよ!
ANSI 規格の C 言語に文句があるわけじゃない。
行儀よく振舞えって言っているのだ。
551デフォルトの名無しさん
2021/10/05(火) 16:30:23.62ID:cUFArVWj CやってJavaだな
その後は流行りのPythonでも、苦行なC++でも好きなのをやれば良い
その後は流行りのPythonでも、苦行なC++でも好きなのをやれば良い
552デフォルトの名無しさん
2021/10/05(火) 16:52:02.45ID:2oqKIsmm Excel VBA(ついでにSQL、ストアド覚えられるとなお良) → VB.Net → C# → ASP.Net(ついでにhtml、CSS、Javascript、JQuery)でいいんじゃないかと。
後は趣味で頭の体操的にアセンブラで。
後は趣味で頭の体操的にアセンブラで。
553デフォルトの名無しさん
2021/10/05(火) 17:03:08.93ID:MXyUAm/U msにどっぷり過ぎワロタ
554Mb
2021/10/05(火) 17:27:23.90ID:NR1fOsV4555デフォルトの名無しさん
2021/10/05(火) 18:35:05.62ID:Sa3guHHs >>551
それでFAだな
それでFAだな
556デフォルトの名無しさん
2021/10/05(火) 20:21:33.51ID:cut86n1U お前らって、
while(true){}
だな
while(true){}
だな
557デフォルトの名無しさん
2021/10/05(火) 20:33:30.49ID:tPNu+94A おうっ
しかも break しねえぜw
しかも break しねえぜw
558デフォルトの名無しさん
2021/10/05(火) 20:38:48.73ID:5baRS80P >>556
'while' statement cannot complete without throwing an excretion.
'while' statement has empty body.
'while' statement cannot complete without throwing an excretion.
'while' statement has empty body.
559デフォルトの名無しさん
2021/10/05(火) 20:51:09.78ID:tPNu+94A lint かよ!
560デフォルトの名無しさん
2021/10/05(火) 22:36:13.22ID:mF9ekTpU CTRL-C
561デフォルトの名無しさん
2021/10/05(火) 23:13:57.08ID:eIScRtg7 アセンブラやったことない人はHuman Resource Machineてゲームをやるといいぞ
562デフォルトの名無しさん
2021/10/06(水) 02:32:14.22ID:ueHX5wRn >>551
始めのCが処女にはイタそう
始めのCが処女にはイタそう
563デフォルトの名無しさん
2021/10/06(水) 04:36:54.38ID:QZp+1IHf 俺の使ってる言語が一番なんだ!他はゴミ!よう知らんけど!
ってなってるよなこのスレ
ってなってるよなこのスレ
564デフォルトの名無しさん
2021/10/06(水) 05:33:03.37ID:Webs8rmO ぶっちゃけ始める、のにいい言語
ですし
ですし
565デフォルトの名無しさん
2021/10/06(水) 07:29:52.21ID:0rwaUoCX 逆におもむろに始めるのにない言語て何?
566デフォルトの名無しさん
2021/10/06(水) 07:36:05.35ID:ObWXcRyK567デフォルトの名無しさん
2021/10/06(水) 10:40:11.12ID:lL0lfCQP568デフォルトの名無しさん
2021/10/06(水) 12:39:58.27ID:YzacvTTA >>565
Haskell
Haskell
569デフォルトの名無しさん
2021/10/06(水) 13:07:32.50ID:CjSIWhaj キテレツ大百科全巻読破から始めよう
570Mb
2021/10/06(水) 14:09:16.80ID:ACaN1g4Y いや、フツーに Java でよくない?
C♯も悪い言語ではないと思うんだけど、
あまりプログラミング初心者にお勧めはしにくい
言語ではあると思う。
Java は Pascal とか C とか COBOL とか
Pascalbとかのレガシー・コードを継承しようという
意思が感じられるのに対して、C♯は、そういう風情が
一切感じられないんだよな。
「あんな奴とつきあってたんだ orz」とかいって、
のちのちトラウマになりそうなのが C♯ で、
「うん。感謝してる。前を向いて歩くわ」というのが
Java だと思う。
C♯も悪い言語ではないと思うんだけど、
あまりプログラミング初心者にお勧めはしにくい
言語ではあると思う。
Java は Pascal とか C とか COBOL とか
Pascalbとかのレガシー・コードを継承しようという
意思が感じられるのに対して、C♯は、そういう風情が
一切感じられないんだよな。
「あんな奴とつきあってたんだ orz」とかいって、
のちのちトラウマになりそうなのが C♯ で、
「うん。感謝してる。前を向いて歩くわ」というのが
Java だと思う。
571デフォルトの名無しさん
2021/10/06(水) 14:34:08.52ID:g0yUV+3l Javaは無いわー
理由
・単純に俺が嫌い
・ネイティブコードまで落としてくれないので重い
・やってる奴がいすぎ
プログラマーの集団に向かって石投げると
大体Javaやってる奴に当たる
供給過多で何かあるとすぐ仕事からあぶれる
理由
・単純に俺が嫌い
・ネイティブコードまで落としてくれないので重い
・やってる奴がいすぎ
プログラマーの集団に向かって石投げると
大体Javaやってる奴に当たる
供給過多で何かあるとすぐ仕事からあぶれる
572デフォルトの名無しさん
2021/10/06(水) 15:19:46.80ID:YLz2RbwR 古いJavaしか知らない知識で語ると
delegateと演算子オーバーロードがないせいで文法が歪んでる気がする
逆にプリミティブ型の扱いは使いやすさ云々除くと本当はjavaのようにあるべきなのかなーとも少し思うが、結局stringぐらい参照型であることを忘れて値型のように扱いたいって願望は出てきちゃう
delegateと演算子オーバーロードがないせいで文法が歪んでる気がする
逆にプリミティブ型の扱いは使いやすさ云々除くと本当はjavaのようにあるべきなのかなーとも少し思うが、結局stringぐらい参照型であることを忘れて値型のように扱いたいって願望は出てきちゃう
573デフォルトの名無しさん
2021/10/06(水) 15:26:59.55ID:iYMIscab JavaやるならKotlinのほうがマシだろ。
ヌルポの無いJavaがあればまだオススメしやすいけど。
ヌルポの無いJavaがあればまだオススメしやすいけど。
574デフォルトの名無しさん
2021/10/06(水) 15:55:18.82ID:ksYOXyia 何年か初心者向けにJavaを教えていたことがあるけど、
「始めるのにいい言語」としてはイマイチな印象
理由としては
・Hello world をするにも(初心者にとっての)おまじないが多すぎて覚えにくい
・オブジェクト指向の概念を早い段階で習得させる必要がある
・基本型と参照型の区別が邪魔
くらいかな (プログラミング言語としては悪くないと思ってるけど)
経験的にはPythonかRubyがベスト。Cからでも悪くはない
「始めるのにいい言語」としてはイマイチな印象
理由としては
・Hello world をするにも(初心者にとっての)おまじないが多すぎて覚えにくい
・オブジェクト指向の概念を早い段階で習得させる必要がある
・基本型と参照型の区別が邪魔
くらいかな (プログラミング言語としては悪くないと思ってるけど)
経験的にはPythonかRubyがベスト。Cからでも悪くはない
575デフォルトの名無しさん
2021/10/06(水) 16:28:45.47ID:YLz2RbwR 正直おまじないヤダーとか言うなら、もうjavascriptでよくね?って思う
環境用意すらいらんのが最強でしょう
環境用意すらいらんのが最強でしょう
576Mb
2021/10/06(水) 16:49:50.68ID:ACaN1g4Y あぁ、そうですか (-_-!)。
> 単純に俺が嫌い
それは仕方がない。
> ネイティブコードまで落としてくれないので重い
それ言うたら LISP はどうやねん。
ネイティブコンパイラだけがコンパイラじゃねぇだろうが。
何がなんでも .obj に落とさにゃいかんのか?
だったら OS から仮想化しろっちゅー話になるやんけ。
> やってる奴がいすぎ
知ったこっちゃねーよ。
> 演算子オーバーロードがない
あれは善し悪しだぞ?
> プリミティブ型の扱いは使いやすさ云々除くと本当は
> Javaのようにあるべきなのか
IEEE に配慮しただけだっつーの。もうちょい簡単な言語が
別にあっても悪くないと思う。
> ヌルポの無いJavaがあればまだオススメしやすいけど。
がっ
> Hello world をするにも(初心者にとっての)おまじないが多すぎて覚えにくい
それはつねづねそう思う。
> オブジェクト指向の概念を早い段階で習得させる必要がある
つーか、「メッセージング」という概念をちゃんと教えろよ、と
思う。
> 基本型と参照型の区別が邪魔
それを言いだすとオートボクシングとか面倒臭い話に
なるんだよなぁ。
プリミティブ型があるから入門しやすいというメリットも
あるんだが。
> 単純に俺が嫌い
それは仕方がない。
> ネイティブコードまで落としてくれないので重い
それ言うたら LISP はどうやねん。
ネイティブコンパイラだけがコンパイラじゃねぇだろうが。
何がなんでも .obj に落とさにゃいかんのか?
だったら OS から仮想化しろっちゅー話になるやんけ。
> やってる奴がいすぎ
知ったこっちゃねーよ。
> 演算子オーバーロードがない
あれは善し悪しだぞ?
> プリミティブ型の扱いは使いやすさ云々除くと本当は
> Javaのようにあるべきなのか
IEEE に配慮しただけだっつーの。もうちょい簡単な言語が
別にあっても悪くないと思う。
> ヌルポの無いJavaがあればまだオススメしやすいけど。
がっ
> Hello world をするにも(初心者にとっての)おまじないが多すぎて覚えにくい
それはつねづねそう思う。
> オブジェクト指向の概念を早い段階で習得させる必要がある
つーか、「メッセージング」という概念をちゃんと教えろよ、と
思う。
> 基本型と参照型の区別が邪魔
それを言いだすとオートボクシングとか面倒臭い話に
なるんだよなぁ。
プリミティブ型があるから入門しやすいというメリットも
あるんだが。
577デフォルトの名無しさん
2021/10/06(水) 16:58:47.72ID:YLz2RbwR プログラマー11年目ワイ、デザパタもdddもRxもpubsubもわかるが、メッセージングが何を指してるのかわからない
578デフォルトの名無しさん
2021/10/06(水) 17:08:35.67ID:CjSIWhaj printfやMessageBoxだよ
579デフォルトの名無しさん
2021/10/06(水) 17:22:12.45ID:YLz2RbwR なん...だと...
580デフォルトの名無しさん
2021/10/06(水) 17:38:11.30ID:ksYOXyia >>575
JavaScriptは言語仕様がかなり難しい(オブジェクト指向と関数型のハイブリッド)し、
実用的に使おうと思うとすぐにライブラリ依存の話になるので、
これまた初心者には向いていないと思う
JavaScriptは言語仕様がかなり難しい(オブジェクト指向と関数型のハイブリッド)し、
実用的に使おうと思うとすぐにライブラリ依存の話になるので、
これまた初心者には向いていないと思う
581デフォルトの名無しさん
2021/10/06(水) 17:39:25.77ID:UJEWl3ey >>578
これはセンスいい
これはセンスいい
582デフォルトの名無しさん
2021/10/06(水) 18:18:52.38ID:HwdaWcdV Cから初めていいんだぜ
Cで挫折するくらいならそもそもプログラミングの適性ないんだからさ
Cで挫折するくらいならそもそもプログラミングの適性ないんだからさ
583デフォルトの名無しさん
2021/10/06(水) 19:51:18.18ID:Iajq5fkt 一理ある
584デフォルトの名無しさん
2021/10/06(水) 20:23:26.06ID:UveQN7Hm ポインタはたしかに適性を見極める第一歩になるよな
585Mb
2021/10/06(水) 20:43:58.99ID:ACaN1g4Y >>577
> プログラマー11年目ワイ
> メッセージングが何を指してるのかわからない
まぁ、二十世紀の世代はそうだろうな。
「オブジェクト志向」というのは、昔は「算体主導言語」といって、
「算体(オブジェクト)」が、狙ったオブジェクトに
メッセージを投げると打ち返してくる、というコンセプトから
始まったんだ。
そんなわけで、基本は静的なオブジェクト(現在だと、static な
オブジェクトと、シングルトン実装されたオブジェクト)どうしの
メッセージのやりとりが基本なんだと思う。
そこから派生したのが、クラス定義から new されたインスタンスで、
内部変数以外は、どっかしらで定義されたコードを参照しているだけなので、
不要になるまではメモリに置かれているだけ、という話ではある。
そのあたりのカラクリは、Java の実行系のコードを追わないと
見えてこないんだが、それがよくできているので、JVM をベースにした
言語がいくつも生まれているという経緯がある。
> プログラマー11年目ワイ
> メッセージングが何を指してるのかわからない
まぁ、二十世紀の世代はそうだろうな。
「オブジェクト志向」というのは、昔は「算体主導言語」といって、
「算体(オブジェクト)」が、狙ったオブジェクトに
メッセージを投げると打ち返してくる、というコンセプトから
始まったんだ。
そんなわけで、基本は静的なオブジェクト(現在だと、static な
オブジェクトと、シングルトン実装されたオブジェクト)どうしの
メッセージのやりとりが基本なんだと思う。
そこから派生したのが、クラス定義から new されたインスタンスで、
内部変数以外は、どっかしらで定義されたコードを参照しているだけなので、
不要になるまではメモリに置かれているだけ、という話ではある。
そのあたりのカラクリは、Java の実行系のコードを追わないと
見えてこないんだが、それがよくできているので、JVM をベースにした
言語がいくつも生まれているという経緯がある。
586Mb
2021/10/06(水) 20:47:51.32ID:ACaN1g4Y 書いてて思ったんだが、
C のコードを JVM に落とすコンパイラを書いて、
そのコンパイラのコードを晒したら、
「ぶっちゃけ始めるのにいい言語」に
なりそうに思うんだが。
C のコードを JVM に落とすコンパイラを書いて、
そのコンパイラのコードを晒したら、
「ぶっちゃけ始めるのにいい言語」に
なりそうに思うんだが。
587デフォルトの名無しさん
2021/10/06(水) 23:55:22.85ID:t05nCb8P >>551
最初にC言語をやるのに同じく賛成
シンプルでありながら基本を把握するのにC言語はベストだと思う
もしC言語ですら理解できないならプログラミング適性がないと早めに知ることもできる話も同意
しかしC言語の次にC++やJavaは反対
C++もJavaも歴史的積み重ねによりシンプルな言語ではなくなっていることがその理由
C言語の次はシンプルかつモダンなプログラミングが学習できるRustがベスト
最初にC言語をやるのに同じく賛成
シンプルでありながら基本を把握するのにC言語はベストだと思う
もしC言語ですら理解できないならプログラミング適性がないと早めに知ることもできる話も同意
しかしC言語の次にC++やJavaは反対
C++もJavaも歴史的積み重ねによりシンプルな言語ではなくなっていることがその理由
C言語の次はシンプルかつモダンなプログラミングが学習できるRustがベスト
588デフォルトの名無しさん
2021/10/07(木) 00:20:19.93ID:UIzBEmv/ 環境構築が難しいからCはないな
まずは、VisualStudioでC#か、AndroidStudioかInteliJでKotlinだな
ある程度のライブラリの概念も知った方が良いしsplitすらないC++には度肝を抜かされたぜ
まずは、VisualStudioでC#か、AndroidStudioかInteliJでKotlinだな
ある程度のライブラリの概念も知った方が良いしsplitすらないC++には度肝を抜かされたぜ
589デフォルトの名無しさん
2021/10/07(木) 00:58:09.00ID:jA+Zs0kE Cはたしかに難しい部分があるけど、C# や python も底なしのような気がしてきた
まぁ欲張らずに、どこまで使うか決めたらいいのだけど、それがなかなか難しい
まぁ欲張らずに、どこまで使うか決めたらいいのだけど、それがなかなか難しい
590デフォルトの名無しさん
2021/10/07(木) 02:06:40.29ID:r1vaezvA コンソールアプリから始めるとしたら何でも良さそうな気がするけど。
後の進路が判ってるなら、最初からそれを選べば良いんだし。
最初からVSでGUIは止めた方が良いと思う。
既に用意されてるプロジェクトファイルが把握しきれない。
後の進路が判ってるなら、最初からそれを選べば良いんだし。
最初からVSでGUIは止めた方が良いと思う。
既に用意されてるプロジェクトファイルが把握しきれない。
591デフォルトの名無しさん
2021/10/07(木) 02:10:36.89ID:zfZmG7eF Cの環境構築ってGCC入れるだけだじゃないの?
592デフォルトの名無しさん
2021/10/07(木) 03:12:25.23ID:rhyTsq3P >>591
それが初心者にできるか、ってことじゃね?
それが初心者にできるか、ってことじゃね?
593デフォルトの名無しさん
2021/10/07(木) 04:24:56.37ID:L6y4SXkD594デフォルトの名無しさん
2021/10/07(木) 06:36:58.88ID:zARHXhX9 Kotolin推奨してるのって何なの?
andoroid開発する以外に何のメリットがあるの?
null許容なんてバリデーションかませればいいんだし
andoroid開発する以外に何のメリットがあるの?
null許容なんてバリデーションかませればいいんだし
595デフォルトの名無しさん
2021/10/07(木) 06:48:09.88ID:/NxLR4OT >>588
Visual Studio入れるならC/C++でも環境構築難しいとかないだろ
Visual Studio入れるならC/C++でも環境構築難しいとかないだろ
596デフォルトの名無しさん
2021/10/07(木) 07:58:04.70ID:Z7i7oTy9 >>594
将来的にJavaがやってることが全部Kotlinに置き換わるからJava並の需要が生まれる
将来的にJavaがやってることが全部Kotlinに置き換わるからJava並の需要が生まれる
597デフォルトの名無しさん
2021/10/07(木) 08:18:37.42ID:5yquuu60598デフォルトの名無しさん
2021/10/07(木) 08:18:59.82ID:5yquuu60 >>596
それは無いわ
それは無いわ
599デフォルトの名無しさん
2021/10/07(木) 10:21:18.77ID:tSoyVx3Q >>596
KotlinはOracle不安定なんですけど
KotlinはOracle不安定なんですけど
600Mb
2021/10/07(木) 12:06:39.91ID:r04zjL6z >>592
> それが初心者にできるか、ってことじゃね?
そこは若い人の感性なので否定はしない。
その昔、IBM の「OS/2 Warp」というOS があって、
TV CM に山口智子が出演していた。
OS/2 は IBM と マイクロソフトの確執があったらしく、
マイクロソフトが Windows を推すにあたって邪魔だというので
潰された。
OS/2 Warp は、「デスクトップという概念が、ない!」という
画期的な OS で、しかもプリエンティブなマルチタスク OS だった。
> それが初心者にできるか、ってことじゃね?
そこは若い人の感性なので否定はしない。
その昔、IBM の「OS/2 Warp」というOS があって、
TV CM に山口智子が出演していた。
OS/2 は IBM と マイクロソフトの確執があったらしく、
マイクロソフトが Windows を推すにあたって邪魔だというので
潰された。
OS/2 Warp は、「デスクトップという概念が、ない!」という
画期的な OS で、しかもプリエンティブなマルチタスク OS だった。
601Mb
2021/10/07(木) 12:18:11.38ID:r04zjL6z その OS/2 Warp の開発環境が、IBM の「ActiveAge C/C++」という
IDE だった。これが Eclipse の前身だ。
ところが OS/2 Warp がマイクロソフトに潰されたので、
Java 用に「Eclipse」(Sun に対抗したという噂があった)を
開発したのだが、「『IBM 製』っていうと、フリーソフトウェア
系のプログラマに対しては印象悪いよねぇ?」という理由
(だと思う)ので別会社にしたという経緯があったりする。
Java と Eclipse の組合せは開発環境としては悪くないし、
バージョン 1.4 でほぼ安定しているので、まぁ 5 とか
使っときゃ最新版でもきっちり動くので、
それはそれで初心者向きだと思う。
IDE だった。これが Eclipse の前身だ。
ところが OS/2 Warp がマイクロソフトに潰されたので、
Java 用に「Eclipse」(Sun に対抗したという噂があった)を
開発したのだが、「『IBM 製』っていうと、フリーソフトウェア
系のプログラマに対しては印象悪いよねぇ?」という理由
(だと思う)ので別会社にしたという経緯があったりする。
Java と Eclipse の組合せは開発環境としては悪くないし、
バージョン 1.4 でほぼ安定しているので、まぁ 5 とか
使っときゃ最新版でもきっちり動くので、
それはそれで初心者向きだと思う。
602デフォルトの名無しさん
2021/10/07(木) 12:46:51.99ID:qQDkxEJX (何もかも関係ない話だな)
603デフォルトの名無しさん
2021/10/07(木) 13:27:12.22ID:NQ92UcB1 モンタニエ博士はイベルメクチンを推奨
MS系ワクチンは打つなと言ってるよ
MS系ワクチンは打つなと言ってるよ
604デフォルトの名無しさん
2021/10/07(木) 14:02:15.02ID:mXJGjQlH Javaの開発環境って,まだEclipseが定番なんですか?
605デフォルトの名無しさん
2021/10/07(木) 15:55:11.02ID:tSoyVx3Q VSCODEでJava作ってるぜ
606デフォルトの名無しさん
2021/10/07(木) 16:34:12.31ID:82wRVZeJ いま公聴会で話題のFacebookですら基幹システムをJavaからRustへ置き換えたのでしょ
Javaが優れてる点は無いのだからRustでいいんじゃない
Javaが優れてる点は無いのだからRustでいいんじゃない
607Mb
2021/10/07(木) 16:45:35.23ID:r04zjL6z >>604
そんなもん知らんよ。使いなれてるから使ってるだけだ。
宮大工さんに「いまどき墨壺とか槍鉋とか手斧(ちょうな)とか
使ってるんですか wwwwww」とか言うのと似たようなもんだろ。
うちの近所は町工場が多いんだが、光明丹とかキサゲとか
擦合わせ定盤(じょうばん)とかはフツーに現役で
使われてるぞ?
そんなもん知らんよ。使いなれてるから使ってるだけだ。
宮大工さんに「いまどき墨壺とか槍鉋とか手斧(ちょうな)とか
使ってるんですか wwwwww」とか言うのと似たようなもんだろ。
うちの近所は町工場が多いんだが、光明丹とかキサゲとか
擦合わせ定盤(じょうばん)とかはフツーに現役で
使われてるぞ?
608Mb
2021/10/07(木) 16:52:34.95ID:r04zjL6z >>606
> いま公聴会で話題のFacebookですら基幹システムを
> JavaからRustへ置き換えたのでしょ
あれは別に基幹システムの話とは関係ないだろ。
Java が使えるような古参兵が他の業務に引っ張られちゃったので
新兵に Rust を使わせているだけの話だ。
つーか、Java が使えるルーキーもそれなりにいるだろうが、
そういう奴を集められない時点で、企業としての FaceBook の勢いが
墜ちているというだけの話じゃないか?
> いま公聴会で話題のFacebookですら基幹システムを
> JavaからRustへ置き換えたのでしょ
あれは別に基幹システムの話とは関係ないだろ。
Java が使えるような古参兵が他の業務に引っ張られちゃったので
新兵に Rust を使わせているだけの話だ。
つーか、Java が使えるルーキーもそれなりにいるだろうが、
そういう奴を集められない時点で、企業としての FaceBook の勢いが
墜ちているというだけの話じゃないか?
609Mb
2021/10/07(木) 16:58:34.39ID:r04zjL6z >>606
> Javaが優れてる点は無いのだからRustでいいんじゃない
そういうことは、Rust が Java より優れている点を
具体的に列挙してから言ってくれ。
「自民党が優れている点は無い」とか言っている
立件民主党とか共産党とかとどこが違うかという話だ。
だったら Rust が政権を担えるわけでもあるまい。
> Javaが優れてる点は無いのだからRustでいいんじゃない
そういうことは、Rust が Java より優れている点を
具体的に列挙してから言ってくれ。
「自民党が優れている点は無い」とか言っている
立件民主党とか共産党とかとどこが違うかという話だ。
だったら Rust が政権を担えるわけでもあるまい。
610デフォルトの名無しさん
2021/10/07(木) 17:10:35.64ID:tSoyVx3Q GoogleはKotlinに関してOracleから賠償請求されてるっけ?
611デフォルトの名無しさん
2021/10/07(木) 17:17:59.39ID:sszEonW2 GoogleはLinuxとAndroidをRustへ移行進めてるな
Linusも了承したので来年からRustへの置き換え開始
Linusも了承したので来年からRustへの置き換え開始
612デフォルトの名無しさん
2021/10/07(木) 17:36:50.38ID:ovEQBNKZ C#じゃなくてRustにするんだ
それはそれで楽しみだな
Javaはくたばれ
それはそれで楽しみだな
Javaはくたばれ
613デフォルトの名無しさん
2021/10/07(木) 17:40:33.13ID:I+6aGzyK614デフォルトの名無しさん
2021/10/07(木) 17:41:13.98ID:sszEonW2 >>612
C#はガベージコレクションのあるおもちゃ言語なので無理
C#はガベージコレクションのあるおもちゃ言語なので無理
615デフォルトの名無しさん
2021/10/07(木) 18:09:06.84ID:82wRVZeJ >>613
RustはIT業界が総支持しているメインストリーム言語
メモリ安全性を保証しGCも無いRustよりも良い言語が存在しないため
>大手IT企業たちの方針
>
>プログラミング言語「Rust」のための「Rust Foundation」設立 -- AWS(Amazon)、Microsoft、Google、Mozilla、Huaweiが創設
>https://japan.zdnet.com/article/35166267/
>
>Facebookが「Rust Foundation」に参加
>https://japan.zdnet.com/article/35170192/
RustはIT業界が総支持しているメインストリーム言語
メモリ安全性を保証しGCも無いRustよりも良い言語が存在しないため
>大手IT企業たちの方針
>
>プログラミング言語「Rust」のための「Rust Foundation」設立 -- AWS(Amazon)、Microsoft、Google、Mozilla、Huaweiが創設
>https://japan.zdnet.com/article/35166267/
>
>Facebookが「Rust Foundation」に参加
>https://japan.zdnet.com/article/35170192/
616デフォルトの名無しさん
2021/10/07(木) 18:37:06.59ID:UPeZZJQA >>615
Huaweiが入ってるかsらダメ。
Huaweiが入ってるかsらダメ。
617デフォルトの名無しさん
2021/10/07(木) 19:37:18.49ID:1MYnoZGB618Mb
2021/10/07(木) 20:56:15.21ID:r04zjL6z ところで、
「Rust はガベージコレクション(GC)」がない
という話のソースはどこなんだろう。
「静的な GC がない」のは分かるのだけど、
「動的な GC(別名を WC(ウェイスト・コレクション。
日本語では、通称「便所掃除(べんじょそうじ)」といって、
一九八十年代から LISP 業界では一般的な呼び名))」は、
少なくとも SmallTalk 80 の時代から一般的だったように
記憶しているが、それは認知症の老人の妄想だろうかね?
せめてエビデンスを確認してから往生したいと思う。
「Rust はガベージコレクション(GC)」がない
という話のソースはどこなんだろう。
「静的な GC がない」のは分かるのだけど、
「動的な GC(別名を WC(ウェイスト・コレクション。
日本語では、通称「便所掃除(べんじょそうじ)」といって、
一九八十年代から LISP 業界では一般的な呼び名))」は、
少なくとも SmallTalk 80 の時代から一般的だったように
記憶しているが、それは認知症の老人の妄想だろうかね?
せめてエビデンスを確認してから往生したいと思う。
619デフォルトの名無しさん
2021/10/07(木) 21:06:28.71ID:iL6kZNBg >>616
どうせ影響小さいんじゃね
どうせ影響小さいんじゃね
620デフォルトの名無しさん
2021/10/07(木) 21:34:03.44ID:4ZUcinjQ 別にRustだっていいんだがプロとしては現状JavaでGAFA等入ってから使うものなので
まあ今んとこJavaだよ
フロントならJS
まあ今んとこJavaだよ
フロントならJS
621デフォルトの名無しさん
2021/10/07(木) 22:06:14.52ID:9GfeYqSI >>618
C言語と同じで、いわゆるGCというものは実装していないそうな。
ただ、そのままではゾンビ領域(いわゆるメモリリーク)ができてしまうので、
確保された領域へのポインタの持ち主(となる変数)が1つだけになるようにした。
ポインタが代入されると、領域の所有権も代入された側に移る・・所有権を
失った側のポインタを使おうとするとエラーになる。
これで、変数の消滅とともに領域を自動的に開放できるので、プログラマが
わざわざメモリ解放したり、GCで管理させる必要がなくなった。
というカラクリみたいね。
C言語と同じで、いわゆるGCというものは実装していないそうな。
ただ、そのままではゾンビ領域(いわゆるメモリリーク)ができてしまうので、
確保された領域へのポインタの持ち主(となる変数)が1つだけになるようにした。
ポインタが代入されると、領域の所有権も代入された側に移る・・所有権を
失った側のポインタを使おうとするとエラーになる。
これで、変数の消滅とともに領域を自動的に開放できるので、プログラマが
わざわざメモリ解放したり、GCで管理させる必要がなくなった。
というカラクリみたいね。
622デフォルトの名無しさん
2021/10/08(金) 05:08:48.20ID:sqiV0pTr■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 現役猟師・東出昌大、クマ被害続出も過熱する報道に「クマはそんな危ないもんじゃない」理由語る [muffin★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- さっっっっっっっっっっっっっっっっっむ!?!!?!?!?!!??!??!???!
- 日本の歴代総理大臣で1番ダメだった奴
- 高市政権「中国依存の経済から脱却する」?「それはダメーッ!」
- 【急募】今!!夜更かししている全お前らに告ぐ!!!何時に寝るのか宣言するのだ!!!
- 4時だから窓から4回ちんこ出した
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
