【C?】最初の言語に何を選ぶか【Haskell?】

■ このスレッドは過去ログ倉庫に格納されています
1Mb
垢版 |
2021/09/09(木) 17:13:45.64ID:yI7BAQ6X
前スレ
ぶっちゃけ始めるのにいい言語て何?
http://mevius.5ch.net/test/read.cgi/tech/1583223433/
ぶっちゃけ始めるのにいい言語て何 part2
http://mevius.5ch.net/test/read.cgi/tech/1594883518/
ぶっちゃけ始めるのにいい言語て何 part3
https://mevius.5ch.net/test/read.cgi/tech/1599110613/
ぶっちゃけ始めるのにいい言語て何 part4
https://mevius.5ch.net/test/read.cgi/tech/1615612545/
ぶっちゃけ始めるのにいい言語て何 part5
https://mevius.5ch.net/test/read.cgi/tech/1622766330/

Haskell には賛否両論あるけど、そこは次の世代に判断してもらおう。
45デフォルトの名無しさん
垢版 |
2021/09/11(土) 15:35:48.26ID:3yMDZ0jk
>>40
神岡ターンか(笑)
2021/09/11(土) 18:01:03.01ID:mCM1/tic
学習用アセンブリ
2021/09/11(土) 18:03:51.43ID:PRM8i6LA
>>44
引数ってなんだ??
当時のpush/pop (6809だとpush/pull)は
レジスタをスタックへ退避と復帰のみだぞ
2021/09/11(土) 19:58:33.84ID:5Y9cAMyV
>>42
68000からアセンブラやり始めたとかかもw
2021/09/11(土) 20:28:05.62ID:N54U5q1q
>>47
オペランドのことじゃね
2021/09/11(土) 20:32:33.35ID:3yMDZ0jk
sp をインクリメント/デクリメントするだけで1命令なのか …
それは大変だな。
2021/09/11(土) 20:38:06.19ID:mopEDxb+
>>45
どこから神岡ターンが出てきたんだ?
https://cdn.snsimg.carview.co.jp/carlife/images/UserCarPhoto/876204/p4.jpg
2021/09/11(土) 21:48:40.82ID:6SR7xJAU
>>34
じゃあ
1.Go
2.Haskell
3.Rust or やりたいことに応じてPython, js, C#
2021/09/12(日) 07:42:12.79ID:Xese6WRq
>>44
I/Oとかクソ懐かしいな30年以上ぶりに聞いたわ
高校の時にZ80やった

ちなみにオススメはプロでやりたいならJavaかJSかC#
言語マニアの話とか聞いてもマニアになりたいんじゃない限り意味ないぞw
2021/09/12(日) 09:43:52.24ID:x3+6FKDq
Javaでプロωとかωω
土方まっしぐらωωω
55Mb
垢版 |
2021/09/12(日) 12:49:02.54ID:eZoXy3gP
>>51
オートマだとドライブ一直線だが、
神岡ターンではクリッピングポイントをクリアしてから
「一瞬、ギアをリアに入れる」というとかいったコトをやっている。
C 言語でも、C のコンパイラが吐いたアセンブラのコードを見て、
「ここはステート数が縮められる」みたいなマッドな野郎どもが
昔はいたんだよ。
そういう言語マニアにとっては C 言語なノスタルジックな言語では
あるんだけれども、C++ というのは、マネージャーとかいった
そのあたりの美学を理解しない連中が権勢を揮っているので、
「いい言語」と言っていいとは思わない。
56Mb
垢版 |
2021/09/12(日) 12:54:28.00ID:eZoXy3gP
>>54
> Javaでプロωとかωω
> 土方まっしぐらωωω
あんた病んでるよ。
だけど反社会性パーソナリティ障害障害って、
治療法がないんだよね。
最近の精神科のクリニックは薬物療法が主なので、
カウンセリングはあんまり主流じゃないから期待しないほうがいい。
松沢病院とか受診してみれば?
57デフォルトの名無しさん
垢版 |
2021/09/12(日) 13:23:42.93ID:UuDugmCL
オマエガナー
58Mb
垢版 |
2021/09/12(日) 13:24:37.28ID:eZoXy3gP
>>53
「I/O」は今でも書店に並んでるぞ?
「らんだむ・あくせす・でぃくしょなりぃ」とか懐かしいな。
宮永さんが、ナショナル・セミコンダクタ(通称ナショセミ。
以下 NS)の「SC/MP」(通称「スキャンプ」)の2が出たときに、
煙草の箱サイズの自作パソコンを作って製作記事で紹介していたのだけれど、
「入力はスイッチ一つでいいんだけれど、タイミングを取るのが
大変だからスイッチを二つに増やした」「出力は、ラインを触って
ビリッときたら 1 で、こなかったら 0 だと思ったけど、涙を呑んで
電球をつけた」(当時は LED は一般的ではなく、出力は 5.5 ボルト
だったので電球もついた)とかいう生々しいレポートがあった。
あのころは楽しかったなぁ。

> ちなみにオススメはプロでやりたいならJavaかJSかC#
> 言語マニアの話とか聞いてもマニアになりたいんじゃない限り意味ないぞw
なるほど。マニアになりたい奴には意味があるし、開発の現場では
言語マニアにも居場所があったりする可能性は認めてもらえるんだよな?
59Mb
垢版 |
2021/09/12(日) 13:31:28.12ID:eZoXy3gP
>>49
そういえば、オペコード(オペレーション・コード)って言葉を
久しく聞いていないな。
いまどきアセンブラとかやってる奴がいないせいだろうか。
2021/09/12(日) 13:54:11.81ID:ZMOxDx6c
ネイテイブコードでかかれたゲームクライアントが少なくなったせい?
ゲーム解析でアセンブラとかOSの動作を覚えたw
61Mb
垢版 |
2021/09/12(日) 15:12:01.27ID:eZoXy3gP
>>60
それはフロッピーディスクのコピープロテクトが
一般的でなくなったからだと思う。
あの頃の激戦区は、(参戦はしなかったけど)
楽しかった記憶がある。
2021/09/13(月) 02:10:50.03ID:Hg35TRQG
>>58
まだ売ってるのか良くもったな

例えばJavaの現場でHaskellとかできてもどうにもならないが趣味でマニアな分には
その場合Javaさえできるなら当然問題はない

ただそういう人は変な事する場合があるから言語以外の普通の開発手法とかデザインパターンとかはちゃんとしてね
2021/09/13(月) 12:56:42.13ID:+ZZ666OR
このスレで書き込みしている人達ってやっぱ平均年齢50超えてる?
64デフォルトの名無しさん
垢版 |
2021/09/13(月) 13:20:10.80ID:swd+vclW
あわしろ氏のHaskell推しは一理あるんだよな
2021/09/13(月) 14:28:39.70ID:+ZZ666OR
やっぱなんだかんだ言ってもCが1番
ダイテル本みっちりやればよろし
66Mb
垢版 |
2021/09/13(月) 14:47:08.19ID:C4HWp6ZW
>>63
> このスレで書き込みしている人達ってやっぱ平均年齢50超えてる?
よくわからんが三十代か六十代の、いわゆるスキマ世代が多いんじゃないかな?
読んでるひとは十代とかだったりしそうだけど、
おっさん世代の愚痴やら説教やらを聞いてくれるヒトがいるというのは、
喜ばしいことだと思う。
2021/09/13(月) 18:38:33.54ID:Q8RkP9iF
高級言語から始めてもいずれ「ポインタって何に使うの?」って絶対に聞くんだから最初からアセンブリやっとけよ
つまんない意地はんなや
68デフォルトの名無しさん
垢版 |
2021/09/14(火) 10:25:16.87ID:46IWFnzO
>>67
「C プログラミング初心者あるある」だな。
「値呼び」とか「番地呼び」とか「名前呼び」とか
文字列を含む可変長データの管理とかで悩んだときに
アセンブラにまで立ち戻って考えると確かに理解しやすい。
クヌスの「コンピュータ・プログラミングの技法」とかは
手がかりになりそうだ。
2021/09/14(火) 15:55:48.93ID:ZQjuD2Oo
習得順序がBASIC→アセンブリ→Cであった頃は何の問題もなかった
最初の言語はコンピュータの仕組みや計算機科学べったりでない方がよい
そんなのは2つ目以降で考えればよいこと
70Mb
垢版 |
2021/09/14(火) 17:28:01.01ID:46IWFnzO
>>69
> 習得順序がBASIC→アセンブリ→Cであった頃は何の問題もなかった
> 最初の言語はコンピュータの仕組みや計算機科学べったりでない方がよい
> そんなのは2つ目以降で考えればよいこと
その点については全面的に同意する。
たぶん三十代の遣える方だと思う。
ただ、Pascal の P-System とか、
BCPL とかいった「仮想マシンのアセンブラ」とかいった
いったコンパイラ言語を経験している若者が少ないんだよね。
「コンパイラ → マクロアセンブラ → アセンブラ → 機械語」
とかいった経験を積まないと、システム屋としては未熟だと思う。
そういった経験を積んだ人にとっては、「イマドキの若者」っていうのは
腹立たしいとは思うんだけど、そこは生温かく見守ってあげようよ。
2021/09/14(火) 18:49:56.34ID:vcNuTaNe
>>69
多分高級言語こそ全てのプログラミングの基本であり真髄みたいに考えてるんだろうけど逆だよ
そもそもプログラミングってコンピューター使わなくてもできるからな?
2021/09/14(火) 19:12:04.28ID:bWejLg/l
>>71
コンピュータ使わずにできるプログラミングとBASICは似てるって主張ではないのかな?
つまり、Cやアセンブリはコンピュータに相当忖度しなくちゃ動かないけど、BASICはアルゴリズムを記述したら動く、と。
ローカル変数ないじゃん、とか、構造化プログラミングできないじゃん、みたいのはBASICだと流石に出てきちゃうけど

ソフトウェアエンジニアでC書けない人は本物じゃないと思うけど、プログラミングはソフトウェアエンジニアだけのツールじゃないからねえ。
73Mb
垢版 |
2021/09/14(火) 19:53:31.51ID:46IWFnzO
そのあたりは、REAL BASIC の開発者の意見もあるだろうと思う。
行列の積とかもフツーに計算できる機能もあったはずだ。
Fortran 77 じゃないけど、複素数演算もできたと思う。
つーても、演算子の拡張というのはあまり必要がなかったようで、
現在では使われていないようだ。
74Mb
垢版 |
2021/09/14(火) 20:34:30.77ID:46IWFnzO
>>72
> ローカル変数ないじゃん、とか、構造化プログラミングできないじゃん、
> みたいのはBASICだと流石に出てきちゃうけど
だからこそ悪辣な面白いこともできる、というのは C と同様だぞ(笑)。
文字列領域にマシンコード突っこんで直接コールするとか、
グラフィック用のビットマップ領域を利用してプリンタ用のバッファに使うとか、
「今から三十年くらい昔にはよくやったもんだ(笑)」という話は
先達からいろいろ聞かされている。
昔の「I/O」とか「THE BASIC」とか読むと、その手の話はけっこう出ていると
思う。
2021/09/14(火) 20:56:50.32ID:ZQjuD2Oo
>>71
初心者が真髄なんてものに触れる必要はないというのが論旨なのだが
76Mb
垢版 |
2021/09/14(火) 21:01:13.08ID:46IWFnzO
たとえば、無条件ジャンプ(いわゆる GOTO 文)と
条件ジャンプ(たとえば CALL文。BASIC では GOSUB)は、
番地フラグとして、同じ「ラベル」というのを指定できる。
そうすると、飛び先が同じでも GOTO なのか GOSUB なのかで
挙動が追いにくくなる。
BASIC ならまだしも高級言語だから追いやすいが、アセンブラで
これをやられると、本当にややこしくなる(実際に、追っかけているうちに
訳がわからんことになり、しかも途中でプログラムの自己書換えとかが入って
いて、「一ヶ月くらい悩んだ」という奴がいた。じつはタイマ割込みがセット
されていて、それは単なる「ゲームのイニシャルローダが発売されてから
解読されないための時間稼ぎ」でしかなかったのだが)。
これで「八人の女王」プログラムを書いて褒められたことがある。
C 言語やアセンブラだと、ROM に焼くのと RAM 上に置くのでは挙動が
違うので(ROM に焼くと自己書換えができないが、RAM 上では書換えができる)
とかいった より悪辣なことができるので、C やアセンブラはとても愉しい
言語だと思う。
だけど ANSI-C は牙を抜かれて飼いならされてしまったので、
「ANSI-C は家畜化されて牙を抜かれたブタであって、オリジナルの C は
猪だ」という意見はあったりもする。
2021/09/14(火) 21:48:22.30ID:3XJZM6bN
業務で書く分にはわかりやすさ重視で凝ったアルゴリズムは敢えて使わないな
今や凝らなくても余裕があるし、メンテしようと自分で見返したときに思い出すのに時間がかかるし
詳細仕様とか文書を書き起こす方に時間がかかって大変だからw
2021/09/14(火) 22:31:15.16ID:bFI2iROt
>>69
自分もこのルートだったけど、なんでもアセンブリとかメモリマップに落として考えるようになってしまい、その後クロージャとかコルーチンとか出てきたときにかえって分からなくなってしまった
いい年になってから計算機プログラミングの構造と解釈を読んでようやく前に進めた
79Mb
垢版 |
2021/09/14(火) 23:26:25.19ID:46IWFnzO
>>78
規模の大きいプロジェクトで、支援で突っ込まれると、かなり地獄です。
だいたい、『人月の神話』で「途中で人を突っこまれると余計に
プロジェクトの進行が遅れる」というのは常識のはずなんですけどね。
>>77 さんは『ソフトウェア作法』のほう(構造化)に向かっていて、
前に進めたあなたは(本来の意味での)システムエンジニアへの道が
拓(ひら)けた、ということではないでしょうか。
> いい年になってから
と仰(おっしゃ)いますが、三十五歳を過ぎてからが働き盛りですよ?
2021/09/14(火) 23:53:12.05ID:L77WHZBH
>>69

一理あるな。アセンブラはさすがに現代すっ飛ばすとして、VBAあたりから
入門して「これ、・・・・・駄目じゃない?」レベルまで行けたら


Cは仕組み知るには素晴らしいけどなんか組むには素朴すぎるし、C++は
増築繰り返して化け物化したWin3.1みたいだし、オブジェクト指向バリバリの
JAVAとC#は時代に遅れそうになって増築しすぎの兆しが見えるし…。

Rust?
81Mb
垢版 |
2021/09/15(水) 00:10:05.50ID:U+DAWKzh
>>80
漏れも同じことを考えたので禿同なのだが、
Rust は局所変数の扱いを文法で縛っているという
印象があるので、言語処理系(自然言語処理ではなく、
いわゆるインタプリタやコンパイラ)を「意識しない」
という方向性については いまひとつ疑問がある。

「うちらは幸せな時代に生きてきたんだなぁ」とか思ったりする。
マイクロプロセッサの黎明期に秋葉原をうろついていて、
p-code Pascal とかを体感してきたんだから。
2021/09/15(水) 00:34:22.68ID:F75MY0Rx
>>81
私の世代の場合、まだ世間がNiftyとか言ってるあいだに大学でインターネット、emailに触れ、
Windows95が出た頃には自宅でBSD unixをPCで動かしてXWindow立ち上げてvi/emacsでプログラム書いてgccできたので、まぁ面白い時代だったです
2021/09/15(水) 12:45:32.25ID:U+DAWKzh
>>82
うらやましいな。
おれは unix には触ったことがないので、rogue もプレイしたことがない
(知らない人のためにひとこと。rogue のアクション操作はエディタ vi と
いっしょ)。
そういえば、パロディ判アスキーに、「UNI+」(ユニプラス)という
unix 風のシェルが載ってたな。
2021/09/15(水) 17:51:06.55ID:z0UwWzKV
>>83
読みは、ユニックロスじゃなかったっけ?
2021/09/15(水) 19:13:25.01ID:itygeFef
>>7
PHPはHTML必須なので進めない
javascriptはさほど汎用的でない(javascriptでないと使わない独特技法がある)
学習情報が整理されてるpythonかrubyがおすすめ
それらで基本構文などを習得してからweb行くならJS、PHP
アプリならjava-kotlinなど選べばいい
2021/09/15(水) 19:14:40.22ID:itygeFef
なんだ、このスレはアレな人のスレか・・・
87デフォルトの名無しさん
垢版 |
2021/09/15(水) 19:18:06.92ID:s8iq/VsH
あんたの言うことも大概だ
2021/09/15(水) 20:37:51.00ID:F75MY0Rx
>>83
職についちゃうとその業務で極めようとするからなかなか><
今の人だとスマホで劇的な変化を体験したんだろうか

rogueというかSunOS/Solarisだとhack?
マシンごとにランキングが残るんだけど、誰もやってなかったw
2021/09/15(水) 22:29:40.69ID:yi91ufSt
加齢臭凄いスレだな
2021/09/15(水) 23:22:25.38ID:pLOaSwL8
JUNETでUUCPでmailとnetnewsが来てfj.*を読み書きしてた頃か
インターネット接続になってそれら便利になるとともに多様化で消えていった
2021/09/16(木) 09:23:59.42ID:I3VTO38j
uucpの頃がuuencode/uudecodeか
base64に飲み込まれたな
2021/09/16(木) 12:31:35.39ID:8LdpMeIx
もうおじいちゃん達の懐古主義はお腹いっぱい
昔を懐かしみたいのなら別スレ建てたら?
93デフォルトの名無しさん
垢版 |
2021/09/16(木) 13:01:11.24ID:OOI2XObq
Haskellは数学
94Mb
垢版 |
2021/09/16(木) 16:05:31.30ID:H4jRCgIr
当時似たような unix 風のシェルがあって、
「UNI十(ユニクロス)」とか「UNI×(ユニッペケ)」とかあったんだよ。
たしか当時はまだインターネットが普及してなくて、公衆回線を
使った草の根 BBS のころで、
うんと底のほうのルーチンで回線断されると、longjump で上の方に戻ろうと
するといろいろとトラブルが起きたんだ。
そんなわけで、キャッチ&スローみたいなことをやろうというときに、OS で
コプロセスを起動するということを考えたひとがいて、それがシェルもどきに
なったという経緯があったりする。
知人の unix 使いが「Mimic」というシェルもどきを書いてたっけなぁ。
「mimic」とタイプすると、「It's Me!」と返してくる。
いや、おれは rogue やってないから知らないっつーの (^_^!)。
いまどきの若者は『ダンジョン飯』とか読んでいるので常識っぽい
らしいが。
2021/09/16(木) 16:32:13.86ID:caXrDs0o
>>93
数学だなあ。今モナドの説明読んで理解しようとしてるけど
頭がパンクしそうだ。

ただ、「圏論学ぶと人生観が変わるくらいものの見方が変わる」
らしいからなんとかそこまでたどり着きたいなあ。

最初の言語としては全くお勧めしないw
そもそも「他の言語を何か使えること」がほぼ前提の言語だし。
2021/09/16(木) 18:26:49.69ID:dCSvSg78
Haskellって数学以外に何が出来るの?
2021/09/16(木) 21:54:32.61ID:H4jRCgIr
>>96
まぁ……数学がわかんなくても遅延評価がうまいこと
やってくれるので、運がよければ組合せ論的爆発を
避けることができる、というのが取り柄かな。
トランプや麻雀のプログラムとか、選挙の議席数によって
どれくらい影響力があるか(シャープレイ=シュービック
指数という。単独過半数だと面白くもなんともないが、
二大政党の議席数が拮抗してて野党がキャスティング・ボウトを
握っていたりすると、いろいろ面白い結果が出たりする)とかの
話だと、Haskell は強力かもしれない。
2021/09/16(木) 22:01:59.31ID:H4jRCgIr
C や C++ って、記述の粒度が細かすぎて
全体像が掴みにくいんだよな。
オブジェクト志向になると、モジュール化がしやすいから
全体構造はいくらか見えやすいんだが、こんどは
いろいろと制約っつーか縛りがきついので、C とかから入ったひとは
「これでホントにシステム組めるのか?」とか面喰ったりする。
何人くらいのチームで、どれくらい知識が共有できててスキルがあるのか、
とかいった観点から言語を選ぶのも、ひとつの選択だと思われる。
2021/09/16(木) 22:12:52.54ID:LOVaWXEK
>>98
その点はJavaと全く同じ
Javaしかやったことないからそんな意味不明なことを言ってる
勉強しなさい
2021/09/17(金) 00:07:56.63ID:gId/Wf8n
>>98
> 「これでホントにシステム組めるのか?」とか面喰ったりする。

以前LavVIEWをちょこっと触ったときには少々面食らったw
Cコードに展開させてみて、はぁそういうもんかと理解した
2021/09/17(金) 00:09:58.34ID:gId/Wf8n
>>100
誤字失礼。。。LabVIEW
2021/09/17(金) 13:05:38.49ID:9sB/yeOV
LabVIEWは俺に効くからやめてくれ…
103Mb
垢版 |
2021/09/17(金) 13:30:42.73ID:6yfFjxR9
>>99
C とか C++ とかって大勢でプロジェクトを張ってると、
なんか真っ裸で職場をうろついているような気分になるんだよね。
昔の先輩(女性)は「毎日端末の前で脳内ストリップをやっているのよ!」
と仰っていたし。
> 勉強しなさい
修羅場で場数を踏みなさい。
2021/09/17(金) 23:21:04.71ID:qc9SKwMT
>>103
当然C++の方がJavaより幅広い分野をカバーできる
どちらも徐々にRustに置き換わっていくだろうが
2021/09/18(土) 06:35:31.87ID:pceSJQ2d
今まで色々なプログラミング言語が注目されては下火になるのを繰り返してきた。

そして、結局なんだかんだ言われながらC/C++が残っていくのでしょうね。
米粒みたいなワンチップマイコンから富岳まで、ほぼ全てのレンジでCコンパイラは用意されてるし。
2021/09/18(土) 07:10:08.72ID:WtcFUHdh
>>105
C/C++と同じことが出来て、なおかつ、メモリ安全性を保証できるプログラミング言語Rustが登場したので
C/C++は各分野で徐々にRustへと置き換わりつつある
2021/09/18(土) 08:17:03.85ID:bNqoSBDr
>>106
今まで色々な言語が出る度にそういう主張は目にしてきたわ。
まあ、そういうかなり乱暴なこともできるのがCのいいところでもあるんだけどね。

とりあえずLinux互換のOSをRustで記述して、Rustならこんなにシンプルで高速になりますって見せてみたら良いんでない?
108デフォルトの名無しさん
垢版 |
2021/09/18(土) 08:45:20.48ID:bA/qQPAi
MonaOS の再来か
胸が厚い
109デフォルトの名無しさん
垢版 |
2021/09/18(土) 08:45:20.49ID:bA/qQPAi
MonaOS の再来か
胸が厚い
2021/09/18(土) 09:13:42.52ID:WtcFUHdh
>>107
今までそのようなプログラミング言語は存在しない
初めて出現したのがRust
Linux OS開発でもCからRustへ徐々に置き換えて行く方法について議論がなされている
2021/09/18(土) 09:19:00.43ID:QypuRU23
Rust推しウザい
議論じゃなくて実際に置き換えてから来てくれ
2021/09/18(土) 09:23:02.31ID:fW917HvV
>>107
Linux互換OSどころかLinux自体がRustで記述されるプロジェクトがLinux開発チームで動いてるよ
トップのLinusもそれに対して対応すべき項目を挙げたのでその対処が進められているよ
113デフォルトの名無しさん
垢版 |
2021/09/18(土) 09:35:50.81ID:K0Y+cZmA
GoogleもAndroid OSをRustベースにしたいと言って色々やってるしな。
2021/09/18(土) 10:03:02.61ID:ubIEU34Z
願望だけでまだ何一つ置き換えられていないRust
まるでチョン君の永遠の10年後と一緒だなw
115デフォルトの名無しさん
垢版 |
2021/09/18(土) 10:08:29.77ID:K0Y+cZmA
Facebook、開発言語に「Rust」採用 次期ビルドシステムの開発で
https://www.itmedia.co.jp/news/articles/2107/28/news152.html

Rustを用いることで、どのような利点があるのか。Facebookは記事の中で次の4つの項目を挙げています。

@Rustのasync/awaitシンタックスは、非同期のコードをとてもスムーズに記述できますし、Rustは複雑な並行処理の詳細を正しく理解するのに役立ちます。
BuckのJavaの計算を一つ一つ並行処理に移行するのは数カ月に及ぶ困難な作業でしたし、シングルスレッドの大きなボトルネックがまだ存在しています。

ARustには、開発をより簡単で楽しいものにしてくれる多くの高レベルな言語機能があります。
それらはenum、パターンマッチング、trait、手続き型マクロなどで、Rustの開発者の多くに愛されています。

BRust はメモリの割り当てをより細かく制御することができます。
ガベージコレクションのある言語では、たとえジェネレーショナルコレクションであっても、Buckが行うようなインクリメンタルな演算に対応するのは困難です。

CRustは高性能です。
Rustに移植することで劇的な性能向上を私たちは見てきました。
2021/09/18(土) 10:27:33.99ID:3SyRbMvc
半年付き合って親御さんと顔合わせを済ませて婚姻届に署名捺印して金庫にしまってからでないとコンパイルできないRustちゃんは男女の抱えるトラブルのかなりの部分を解決するけど
浜辺で出会って月明かりの元すぐコンパイルできるCちゃんがいることで維持できる物語もあるんだよ
2021/09/18(土) 10:31:41.22ID:rvMzt6Rw
Rust推しは確かにウザいが、大手での使われ方が今までの言語とはっきり違うので
無視して良いものではないけどなあ
2021/09/18(土) 10:33:49.72ID:YxnqD7QJ
>>116
実際に書いてみると慣れだけの問題でそんな違いは出てこないよ
むしろRustは後発言語なだけあって他の言語のそれぞれ良い部分を洗練して取り入れた面もあってプログラミングはCより遥かにしやすいね
2021/09/18(土) 10:59:49.52ID:owvkbREO
Rustはしばらく半信半疑で様子見されてきていたけど、ここにきてようやく試験に合格したような雰囲気があるな。
120デフォルトの名無しさん
垢版 |
2021/09/18(土) 11:21:52.46ID:bA/qQPAi
>>116
ワッフル ワッフル
2021/09/18(土) 12:39:13.38ID:QVwR+RdB
とりあえずPythonで良い
2021/09/18(土) 19:00:23.57ID:pceSJQ2d
今現在C/C++はほぼあらゆる場で使えるしなあ。リアルタイムOSもLinuxもとりあえずCを身につけてたら読めるしね。

SystemCでハードウェアまで含めたシミュレーションや論理合成まで繋げられるから、C++でアルゴリズムを検証した後、負荷の重い部分をSystemC環境に移してFPGA化して高速化するなんていう具合にハードウェアとソフトウェアをシームレスに繋げられるのも利点だよね。

Cの悪名高きポインタも、あれのおかげでハードウェアのレジスタアクセスなんかが簡単に記述できるんで、とってもありがたい存在なのよね。
2021/09/18(土) 19:23:10.42ID:+Oz1AToR
Visual Studio が標準で Rust をサポートしたら本気出す
まあ公式がこんなドキュメント出してるくらいだからそのうち標準になるんじゃないかと楽観視してる
https://docs.microsoft.com/ja-jp/windows/dev-environment/rust/setup
2021/09/19(日) 00:46:23.07ID:AEO23oDW
1970年代に生まれたC言語が現在でもよく使われているのは、ハードウェアに直接アクセスできる基礎的な言語であるためだが、
メモリー関連の脆弱性が発生しやすいという問題も抱えている。

Mozillaが支援し、開発されたRustは、システムプログラミングでC言語の代わりになる言語として期待されている。
例えば、Googleが一部で「Android」の開発にRustを導入しつつあり、
RustをLinuxカーネル開発の第2言語に採用しようとする活動も進んでいる。
またAmazon Web Services(AWS)はインフラ開発にRustを使用しており、
Microsoftにも「Windows」や「Azure」の開発にRustを使い始めている。

このようにIT業界が一斉に同じ新たなプログラミング言語を採用するのは史上初のことであり、
メモリ安全性を保証しつつC言語が担ってきた分野を完全に置き換え可能なRust言語が新たに時代を変えつつある。
2021/09/19(日) 02:37:42.97ID:hFofnRJN
着替えが上手ければ更衣室行かなくてもいいよねというCちゃんが胸チラマンチラしながら教室で着替えるからこそ
ガードの固いRustちゃんの振る舞いが周りに受け入れられるんだよ
CちゃんがいなければRustちゃんはただのめんどくさい子
2021/09/19(日) 02:54:45.41ID:rdoGn3lB
そういうことよ
2021/09/19(日) 02:59:11.11ID:1dukWiTD
>>125
え??プログラミングしたことないでしょ?
Cが自分でメモリをalloc/freeしなきゃいけないめんどくさい子だよ
Rustは安全に自動で解放までしてくれるから手間のかからない良い子
2021/09/19(日) 10:12:45.82ID:l0UjyXwH
>>127
> Cが自分でメモリをalloc/freeしなきゃいけないめんどくさい子だよ
ANSI標準 C のでは確かにその通り。
文字列も含めて配列はただのポインタでしかないので、その先にある
データ領域は明示的にサイズを示すかSIZEを指定して alloc しなきゃ
いけないし、領域外参照も自動的にチェックしてくれないから
pop/push 時に自分で監視しなきゃいけない。
まだ Mac が古い OS だったころの C では、文字列は
ポインタではなくてハンドル(ポインタへのポインタ)で、
文字列もヌル・ターミネートの C 文字列じゃなくて、
先頭に文字列調を持った Pascal 文字列だったように記憶している。
そういう点に配慮した、初心者にとって扱いやすい C 言語は、
学習用にあってもいいと考えた人もいて(たしか T 社)、
「C のインタプリタを C コンパイラで書く」という地味な仕事を
かなり昔にやったことがある。
2021/09/19(日) 10:16:51.44ID:l0UjyXwH
ちなみに FORTRAN 60 も配列はただのポインタだったので、
「配列の添字に負数を指定してシステム領域に手を伸ばす」
とかいった猥褻な手法が使えたという。
2021/09/19(日) 13:29:58.47ID:hFofnRJN
いやんエッチ!
131デフォルトの名無しさん
垢版 |
2021/09/19(日) 15:29:22.07ID:Zxr4Akvi
はい頑張って勉強します

/* very simple daytime client */
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
int main() {
int sockfd, n;
char buf[127];
struct sockaddr_in servaddr;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(13);
inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr);
connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
n = read(sockfd, buf, 126);
buf[n] = 0;
fputs(buf, stdout);
exit(0);
}
132Mb
垢版 |
2021/09/19(日) 16:27:16.85ID:l0UjyXwH
>>131
頭っから stdio.h が入ってマクロアセンブラのヘッダが並んでいて、
終わりが exit(0)っつーのが通な感じだな。
Java で exit すると JVM のプロセス自体が落ちちゃうので、
C だと上のプロセスからコールされて、longjump みたいな
感じの大域脱出をするパターンで使うのが吉かと。
まぁ、最近の Java だったらキャッチ&スローで処理するところだけど、
上の方のルーチンで例外を握りつぶしていたりするので、
大きなプロジェクトではときどきトラブルが起きたりはするのだが。

>>130
> いやんエッチ!
Mb といえば「ブラックアートの沼津秘宝館」、
Mr.Moto といえば「ギミックの玩具箱」、
所長といえば「アルゴリズムの生辞引(ウォーキング・ディクショナリー)」
と云われたものなんだがな(笑)。
まぁ、とりあえず何でも訊いてくれ。
C コンパイラに、なんか仕掛けるとかいったネタは、
チューリング賞の受賞講演とかであったように思う。
「ブートストラッピング開発には、
セキュリティ上の穴がある」というのは、
Linux 使いには念頭に置いておいてほしいと思う。
133Mb
垢版 |
2021/09/19(日) 16:38:13.86ID:l0UjyXwH
そういえば、ヘッダファイルの巡回参照で
コンパイラを落とすとかいうのはよくあったなぁ(笑)。
あとは返り値が文字列だったりするときのバッファは
レジスタには収まりきれないのでメモリ上のレジスタの
アドレスで返ってくるわけだが、その領域外のアドレスを
狙ってプログラム領域を書き潰すと、他人の書いたコードの
ところでエラーが出る(ミニコンとかだと、アドレスカウンタガ
表示される)ので、けっこう惨い目に遭ったという話を
聞いたことがある。
134デフォルトの名無しさん
垢版 |
2021/09/20(月) 10:06:54.60ID:rmuhdvcF
>>129
え??プログラミングしたことないでしょ?
135Mb
垢版 |
2021/09/20(月) 11:18:11.57ID:ca2ASSgD
>>134
大文字の FORTRAN(FORTRAN 60)はさすがに無ぇな(笑)
Fortran 77 は勉強したけど動かせる環境がなかった。
仕事で使ったのは学生時代にカシオのプログラマブル電卓とBASIC、
修飾してからはアセンブラだった。
趣味では Pascal と C を触っていたのと、BASIC で FORTH の
インタプリタとか書いていた。
その後は C で仕事をするようになり、ちょっと病気でブランクがあった
ので Java を勉強し、SQL で仕事を貰ってから Java が本職に。
その後 Web の仕事が多くて、言語じゃないけど HTML と CSS と JSPを
勉強。なぜ SQL が入っているかというと、再帰とか木構造データとかが
得意な人がおらず、非数値処理屋だった私にお鉢が回ってきたから。
Oracle 9i からは「CONNECT BY」という再帰呼び出しが可能になり、
これを使って二つの木構造データを比較たいという仕事をアサインされたから。
SQL はつまんなそうな言語だけど、テーブル設計とかのシステム寄りの
観点からみるといろいろ興味深いところがある。
2021/09/20(月) 11:52:16.89ID:V39ohWuW
すきあらば自分語り
137デフォルトの名無しさん
垢版 |
2021/09/20(月) 13:07:38.28ID:m4eFSOkj
自演ばれたぬ
138Mb
垢版 |
2021/09/20(月) 13:16:07.32ID:ca2ASSgD
>>136
>>137
おまえらコテハンつけて正面から喧嘩売ってこい。
「かかって来いよ。相手になるぜ?」
(Go ahead. Make my day.)
読み筋は「ダーティ・ハリー」。
139デフォルトの名無しさん
垢版 |
2021/09/20(月) 13:42:53.65ID:dNvINLUv
きょうは参考書のソースをいじってpenサーバーつくったよ
socketの段取りマンドクセ

/* telnetでport 20000につないでみてください */
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>

int main()
{
int listenfd, connfd;
struct sockaddr_in servaddr;
char buff[4096];
listenfd = socket(AF_INET, SOCK_STREAM, 0);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(20000);
bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
listen(listenfd, 1024);
for (;;) {
connfd = accept(listenfd, (struct sockaddr *)NULL, NULL);
snprintf(buff, sizeof(buff), "%s\r\n", "This is a pen, That is a desk.");
write(connfd, buff, strlen(buff));
close(connfd);
}
}
140Mb
垢版 |
2021/09/20(月) 15:05:29.99ID:ca2ASSgD
>>139
なんかしら見ていて気色わるいコードだな(-_-;)。
「main()」はかなり昔(もう二十年以上も前)のスタイルで、
昨今は「main(argc, argcnt)」だったような ……
Java だと配列はオブジェクトなので、「main(args)」で
済んじゃうんだが。
「for (;;) {」もどういうコードに落ちるか不安になるが、
C にも Java にも「LOOP - UNTIL - DO - REPEAT」構文がないので、
「for (;;)」とか「while(true)」とか書いておいて途中で break するしか
方法がないので致し方あるまいと思う。
あとは、商業プログラマだと、入力のチェックとか入力文字列の
サニタイズとかで無暗に手間を喰うので、入力は別ルーチンに
しておくと、あとあと保守が楽だぞ。
2021/09/20(月) 16:23:28.46ID:zEQlChxu
node-red使いだしてから長ったらしいコード書くのが面倒くさくなってしまったな。
とりあえずC/C++はどこでも使えるから知っておいて損はないかな?
あと、AI系はPythonがライブラリの充実ぶりで圧勝で、あちらの世界で話をするときの共通言語って感じだし、AIは当たり前のものになってきているから避けては通れないかな?

過去に何度も「将来、これが主役になる」と言われたものはあったけど、結局主役になることもなければ完全に消えるでもなくカオスになっただけって感じだし、他のものは必要に応じてってところかな?
142Mb
垢版 |
2021/09/20(月) 16:38:43.97ID:ca2ASSgD
>>141
OS/2 の時代に VisualAge C/C++ と使っていた世代としては、
とても得心がゆく。
VisualAge はかなり優れた IDE だったが、Java に対応するように
なってから、「IBM」ブランドだと警戒されそうだと思ったか、
「Eclipse」として独立させて成功した。
Node-Red については知る機会がなかったが、
ツールとして興味深いので勉強しようと思う。
143Mb
垢版 |
2021/09/20(月) 16:49:32.96ID:ca2ASSgD
>>141
> AI系はPythonがライブラリの充実ぶりで圧勝
ディープ・ラーニング(深層学習)とか言ってる時点で
マシンの高速化に頼ったパターン認識の焼き直しでしかないと
考えている。
並列処理に関してきっちり向かいあうかどうかが今後の課題だな。
名ばかりの AI は、邪魔なので道をあけてほしい。
読み筋はトヨタ・チェーリカ。
2021/09/20(月) 17:00:51.99ID:OciMvJKX
数値計算もSQLも両方書けて初めて一人前な感じはするよね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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