X



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

■ このスレッドは過去ログ倉庫に格納されています
0001Mb
垢版 |
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 には賛否両論あるけど、そこは次の世代に判断してもらおう。
0103Mb
垢版 |
2021/09/17(金) 13:30:42.73ID:6yfFjxR9
>>99
C とか C++ とかって大勢でプロジェクトを張ってると、
なんか真っ裸で職場をうろついているような気分になるんだよね。
昔の先輩(女性)は「毎日端末の前で脳内ストリップをやっているのよ!」
と仰っていたし。
> 勉強しなさい
修羅場で場数を踏みなさい。
0104デフォルトの名無しさん
垢版 |
2021/09/17(金) 23:21:04.71ID:qc9SKwMT
>>103
当然C++の方がJavaより幅広い分野をカバーできる
どちらも徐々にRustに置き換わっていくだろうが
0105デフォルトの名無しさん
垢版 |
2021/09/18(土) 06:35:31.87ID:pceSJQ2d
今まで色々なプログラミング言語が注目されては下火になるのを繰り返してきた。

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

とりあえずLinux互換のOSをRustで記述して、Rustならこんなにシンプルで高速になりますって見せてみたら良いんでない?
0108デフォルトの名無しさん
垢版 |
2021/09/18(土) 08:45:20.48ID:bA/qQPAi
MonaOS の再来か
胸が厚い
0109デフォルトの名無しさん
垢版 |
2021/09/18(土) 08:45:20.49ID:bA/qQPAi
MonaOS の再来か
胸が厚い
0110デフォルトの名無しさん
垢版 |
2021/09/18(土) 09:13:42.52ID:WtcFUHdh
>>107
今までそのようなプログラミング言語は存在しない
初めて出現したのがRust
Linux OS開発でもCからRustへ徐々に置き換えて行く方法について議論がなされている
0112デフォルトの名無しさん
垢版 |
2021/09/18(土) 09:23:02.31ID:fW917HvV
>>107
Linux互換OSどころかLinux自体がRustで記述されるプロジェクトがLinux開発チームで動いてるよ
トップのLinusもそれに対して対応すべき項目を挙げたのでその対処が進められているよ
0113デフォルトの名無しさん
垢版 |
2021/09/18(土) 09:35:50.81ID:K0Y+cZmA
GoogleもAndroid OSをRustベースにしたいと言って色々やってるしな。
0114デフォルトの名無しさん
垢版 |
2021/09/18(土) 10:03:02.61ID:ubIEU34Z
願望だけでまだ何一つ置き換えられていないRust
まるでチョン君の永遠の10年後と一緒だなw
0115デフォルトの名無しさん
垢版 |
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に移植することで劇的な性能向上を私たちは見てきました。
0116デフォルトの名無しさん
垢版 |
2021/09/18(土) 10:27:33.99ID:3SyRbMvc
半年付き合って親御さんと顔合わせを済ませて婚姻届に署名捺印して金庫にしまってからでないとコンパイルできないRustちゃんは男女の抱えるトラブルのかなりの部分を解決するけど
浜辺で出会って月明かりの元すぐコンパイルできるCちゃんがいることで維持できる物語もあるんだよ
0117デフォルトの名無しさん
垢版 |
2021/09/18(土) 10:31:41.22ID:rvMzt6Rw
Rust推しは確かにウザいが、大手での使われ方が今までの言語とはっきり違うので
無視して良いものではないけどなあ
0118デフォルトの名無しさん
垢版 |
2021/09/18(土) 10:33:49.72ID:YxnqD7QJ
>>116
実際に書いてみると慣れだけの問題でそんな違いは出てこないよ
むしろRustは後発言語なだけあって他の言語のそれぞれ良い部分を洗練して取り入れた面もあってプログラミングはCより遥かにしやすいね
0119デフォルトの名無しさん
垢版 |
2021/09/18(土) 10:59:49.52ID:owvkbREO
Rustはしばらく半信半疑で様子見されてきていたけど、ここにきてようやく試験に合格したような雰囲気があるな。
0120デフォルトの名無しさん
垢版 |
2021/09/18(土) 11:21:52.46ID:bA/qQPAi
>>116
ワッフル ワッフル
0122デフォルトの名無しさん
垢版 |
2021/09/18(土) 19:00:23.57ID:pceSJQ2d
今現在C/C++はほぼあらゆる場で使えるしなあ。リアルタイムOSもLinuxもとりあえずCを身につけてたら読めるしね。

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

Cの悪名高きポインタも、あれのおかげでハードウェアのレジスタアクセスなんかが簡単に記述できるんで、とってもありがたい存在なのよね。
0124デフォルトの名無しさん
垢版 |
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言語が新たに時代を変えつつある。
0125デフォルトの名無しさん
垢版 |
2021/09/19(日) 02:37:42.97ID:hFofnRJN
着替えが上手ければ更衣室行かなくてもいいよねというCちゃんが胸チラマンチラしながら教室で着替えるからこそ
ガードの固いRustちゃんの振る舞いが周りに受け入れられるんだよ
CちゃんがいなければRustちゃんはただのめんどくさい子
0127デフォルトの名無しさん
垢版 |
2021/09/19(日) 02:59:11.11ID:1dukWiTD
>>125
え??プログラミングしたことないでしょ?
Cが自分でメモリをalloc/freeしなきゃいけないめんどくさい子だよ
Rustは安全に自動で解放までしてくれるから手間のかからない良い子
0128デフォルトの名無しさん
垢版 |
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 コンパイラで書く」という地味な仕事を
かなり昔にやったことがある。
0129デフォルトの名無しさん
垢版 |
2021/09/19(日) 10:16:51.44ID:l0UjyXwH
ちなみに FORTRAN 60 も配列はただのポインタだったので、
「配列の添字に負数を指定してシステム領域に手を伸ばす」
とかいった猥褻な手法が使えたという。
0131デフォルトの名無しさん
垢版 |
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);
}
0132Mb
垢版 |
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 使いには念頭に置いておいてほしいと思う。
0133Mb
垢版 |
2021/09/19(日) 16:38:13.86ID:l0UjyXwH
そういえば、ヘッダファイルの巡回参照で
コンパイラを落とすとかいうのはよくあったなぁ(笑)。
あとは返り値が文字列だったりするときのバッファは
レジスタには収まりきれないのでメモリ上のレジスタの
アドレスで返ってくるわけだが、その領域外のアドレスを
狙ってプログラム領域を書き潰すと、他人の書いたコードの
ところでエラーが出る(ミニコンとかだと、アドレスカウンタガ
表示される)ので、けっこう惨い目に遭ったという話を
聞いたことがある。
0134デフォルトの名無しさん
垢版 |
2021/09/20(月) 10:06:54.60ID:rmuhdvcF
>>129
え??プログラミングしたことないでしょ?
0135Mb
垢版 |
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 はつまんなそうな言語だけど、テーブル設計とかのシステム寄りの
観点からみるといろいろ興味深いところがある。
0137デフォルトの名無しさん
垢版 |
2021/09/20(月) 13:07:38.28ID:m4eFSOkj
自演ばれたぬ
0138Mb
垢版 |
2021/09/20(月) 13:16:07.32ID:ca2ASSgD
>>136
>>137
おまえらコテハンつけて正面から喧嘩売ってこい。
「かかって来いよ。相手になるぜ?」
(Go ahead. Make my day.)
読み筋は「ダーティ・ハリー」。
0139デフォルトの名無しさん
垢版 |
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);
}
}
0140Mb
垢版 |
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 するしか
方法がないので致し方あるまいと思う。
あとは、商業プログラマだと、入力のチェックとか入力文字列の
サニタイズとかで無暗に手間を喰うので、入力は別ルーチンに
しておくと、あとあと保守が楽だぞ。
0141デフォルトの名無しさん
垢版 |
2021/09/20(月) 16:23:28.46ID:zEQlChxu
node-red使いだしてから長ったらしいコード書くのが面倒くさくなってしまったな。
とりあえずC/C++はどこでも使えるから知っておいて損はないかな?
あと、AI系はPythonがライブラリの充実ぶりで圧勝で、あちらの世界で話をするときの共通言語って感じだし、AIは当たり前のものになってきているから避けては通れないかな?

過去に何度も「将来、これが主役になる」と言われたものはあったけど、結局主役になることもなければ完全に消えるでもなくカオスになっただけって感じだし、他のものは必要に応じてってところかな?
0142Mb
垢版 |
2021/09/20(月) 16:38:43.97ID:ca2ASSgD
>>141
OS/2 の時代に VisualAge C/C++ と使っていた世代としては、
とても得心がゆく。
VisualAge はかなり優れた IDE だったが、Java に対応するように
なってから、「IBM」ブランドだと警戒されそうだと思ったか、
「Eclipse」として独立させて成功した。
Node-Red については知る機会がなかったが、
ツールとして興味深いので勉強しようと思う。
0143Mb
垢版 |
2021/09/20(月) 16:49:32.96ID:ca2ASSgD
>>141
> AI系はPythonがライブラリの充実ぶりで圧勝
ディープ・ラーニング(深層学習)とか言ってる時点で
マシンの高速化に頼ったパターン認識の焼き直しでしかないと
考えている。
並列処理に関してきっちり向かいあうかどうかが今後の課題だな。
名ばかりの AI は、邪魔なので道をあけてほしい。
読み筋はトヨタ・チェーリカ。
0146デフォルトの名無しさん
垢版 |
2021/09/20(月) 18:58:44.62ID:V39ohWuW
>>140
cはコマンドライン引数いらんかったらint main(void)って書けるよ
c++ならint main()の書き方でおk
0147Mb
垢版 |
2021/09/20(月) 20:19:20.81ID:ca2ASSgD
>>146
呼ぶ側の都合と呼ばれる側の実装の擦りあわせを考えると、
「言語仕様として、それが可能だ」よりも
「業務レベルで考えると、保守しやすい可読性の高いコード」
というのが重要になってくる。
「ダサいコード」も、誰もがダサいと感じるわけじゃなくて、
それなりに経験を積んでいるプログラマだと、
ニヤっとすることもある。
「つまらないコード」というのは、誉め言葉だったりもする。

>>145
「勉強」という言葉を間違って覚えた典型的な例だな。
他人から言われて「勉強」するんじゃない。
自分が自(みずか)ら自分に科すから “勉強” なんだ。
虐待経験があったのは痛ましいと思うが、
それは別板にゆくかカウンセリングを受けろ。

とはいえ、昨今の精神科っていうと薬物療法が主体なので、
ちゃんとしたカウンセリングを受けようと思うと、
なかなか難しいんだよなぁ ……
0148Mb
垢版 |
2021/09/20(月) 20:39:24.44ID:ca2ASSgD
>>146
Java に慣れちゃうとなぁ ……
引数を握りつぶしちゃうのもいまひとつだし、
オプションをチェックするのも仕事のうちだし、
引数なしで呼ばれたら、「usage()」ルーチンに
飛ぶのが礼儀のような気もするので、
パイプ処理前提の C とは、若干感性が違うかもしれない。
GUI 全盛の現在では、そのあたりはなかなか
理解してもらいづらい点はあるのだが。
0149デフォルトの名無しさん
垢版 |
2021/09/22(水) 05:19:35.39ID:5brsinXw
状態遷移図
0150デフォルトの名無しさん
垢版 |
2021/09/22(水) 11:00:56.12ID:ucS/NBRX
アセンブラとかマシン語とか言ってる奴。
解ってんだろ、実務ではこのご時世、ほぼ糞の役にも立たないって。
余程特殊な業務でもない限りまず使わない。それこそパチンコとかの組込みとか、ゲーム作る際に余程特殊なことやる場合とかだ。
あまり実用的ではないし、理屈だけ知ってればまずアセンブラやマシン語は使われることはない。

昔ゲーム作る際に使ってて、それ以降全く使っていない俺が言うんだから間違いない。
0151デフォルトの名無しさん
垢版 |
2021/09/22(水) 11:36:49.41ID:+50nKS9n
>>150
それらもRustでプログラミング可能
どうしても一部アセンブラで書かなければならない部分があったとしてもRustはその部分だけをRustプログラムの中にアセンブラで記述可能
0153Mb
垢版 |
2021/09/22(水) 14:04:34.95ID:9UO88pW2
>>149
デシジョンテーブルとかよくやってたなぁ。
昨今の「かな漢字システム」でもいまだに使っていたりする。
少なくとも MicroSoft は、「私、馬鹿でーす」と
顔に貼っているから、もう IME も信用できない。
日本 IBM はどこへ行こうとしているのかが分からない。
0154Mb
垢版 |
2021/09/22(水) 14:18:01.89ID:9UO88pW2
>>150
> 解ってんだろ、実務ではこのご時世、ほぼ糞の役にも立たないって。
> 余程特殊な業務でもない限りまず使わない。それこそパチンコとかの組込みとか、
> ゲーム作る際に余程特殊なことやる場合とかだ。
> あまり実用的ではないし、理屈だけ知ってれば
> まずアセンブラやマシン語は使われることはない。
そういう技術者を消費していた派遣業者が問題であって、
「技術屋」を使い潰してきたバブリーで
脳内アッパラパーな連中に対する
憤(いか)りはもちろんある。
で、「高齢者」「障がい者」とか雇おうとしても、
雇傭者側にも怯えがあたりする。
ちゃんと教えられる人はまだしも救いがあるのだが、
ちゃんと説明できちゃうとバブリー頭の経営者に排除されたるするんだよな。
0155デフォルトの名無しさん
垢版 |
2021/09/22(水) 14:43:54.36ID:KzVGjGnL
BNF
0156Mb
垢版 |
2021/09/22(水) 16:01:28.63ID:9UO88pW2
>>155
> BNF
BNF ことバッカス=ナウア記法というのは
Pascal の文法記述に使われたのが有名だが、
図で表現しようと思うと、やたら面積を喰うので
大型(A 全とか B 全とかの)のプロッタとかがないと
全体が見渡せないんだよな。
0157Mb
垢版 |
2021/09/22(水) 16:05:02.04ID:9UO88pW2
>>156
うちの所長が日本語の形態素解析の仕事をしたときに、
B 全の方眼紙を近所で何枚も買ってきて
日本語の形態素に関する文法を描いてたことがある。
0158デフォルトの名無しさん
垢版 |
2021/09/22(水) 16:05:45.80ID:KzVGjGnL
きみ頭悪いって言われるでしょ
0159Mb
垢版 |
2021/09/22(水) 16:13:49.07ID:9UO88pW2
あと、カルロス・ゴーンさんが
日産のスカイラインGTを復活させるという話があって、
それ用の新しい製造ラインを構築するという話があって
所長が三菱総研の話で入ったことがある。
そんとき所長はSQLの話で入ったのだけど、
ER図(エンティティ・リレーション図)という
Java のオフジェクト図みたいなのを見たらB全で、
とても分かりやすかったという話を聞いたことがある。
0160Mb
垢版 |
2021/09/22(水) 16:17:33.23ID:9UO88pW2
>>158
> きみ頭悪いって言われるでしょ
馬鹿と鋏は使いよう
馬鹿と金槌は使いよう
きみは決して経営者になるな。
子供に金槌を持たせると何でも叩くから。
0161Mb
垢版 |
2021/09/25(土) 14:42:48.30ID:Ow2ePG0l
>>145
>>146
現代ではネットワーク・コンピューティングが一般的だが、
CPU が一個(待合わせの必要がない、ワンプロセスの処理系)の
処理系だと、いわゆる「フォン・ノイマンのボトルネック」という話に
なるんだわ。
どっかのメモリ領域から引っ張ってきた値を処理して、新しい
値を格納する間に、他のプロセスが元の値を書きかえちゃったら
辻褄が合わなくなるだろ? そのために「排他制禦」っつーものが
あるんだけれど、いちいちそれをやっていると実行効率が下がるんだ。
C 言語はハードウェアべったりの「超高級アセンブラ」
(要するに、いわゆる「高級言語(第三世代)」ですらない
第二世代の言語)と云われていたし、Haskell は
「遅延評価」というコンセプトに基づいているので、
「どこに位置づけたらいいのかの判断が難しい」という話になる。
「『竹内の tarai 函数を』 Haskell で書いて実行する」
とかいった話は、掘り下げておいて損はないと思う。
「入山のアルゴリズム」も参考になると思う。
0163デフォルトの名無しさん
垢版 |
2021/09/25(土) 21:29:08.16ID:Ow2ePG0l
>>162
> 結局は「一番距離の近い周りが使っているもの」になるんだろう。
いや、昨今はそのあたり、昨今は切実な話だぞ?
守秘義務契約でガチガチに縛られてて、
テレワークで同じ職場の人間と会話する機会もなくて、
自粛要請のせいで同業者と飲み会をすることもできん。
コーディングで詰まったときに誰にも相談できんというのは
しみじみキツいので、まだしも使っている人間が多い Java は
選ぶ価値があると思う。
ただ、昨今は言語について深く掘り下げようという人間は
少数派なので、けっきょく C 世代の年寄りばっかりが集まって
愚痴を垂れるばっかりになってしまうのだが ……
せめてもの救いは、家庭用のビアサーバーが普及したことくらいかな。
ウィスキーやレモンサワーだと、糖分が少ないせいか悪い酒に
なりがちだ。
0164デフォルトの名無しさん
垢版 |
2021/09/26(日) 00:16:07.46ID:Zk67fDA9
嫌われすぎだろ
0165デフォルトの名無しさん
垢版 |
2021/09/26(日) 09:30:34.16ID:s7bOlMFt
仕事ならなおさら、チーム内で使っていない言語を勝手に選ぶわけにもいくまい。
0166デフォルトの名無しさん
垢版 |
2021/09/26(日) 09:48:46.46ID:xV3OGa/L
>>151
可能かどうかより、周りが使ってるかどうかだろうけどね。

電子工作系でもRust使った作例はごく僅か、ほとんどC/C++とアセンブラだもんね。
0167デフォルトの名無しさん
垢版 |
2021/09/26(日) 10:04:35.46ID:xV3OGa/L
>昨今は言語について深く掘り下げようという人間は 少数派なので、

プログラミング言語の栄枯盛衰が激しいからね。掘り下げるなんて言ってる間に次の流行りが来る。
その多くがC/C++の欠点をあげつらってこんなに素敵なんだ、これからはコレが主役だ!とか言ってたけど、結局その他大勢の中の一つになっていったしね。
まあ、新しい言語を作る側の人間もまたC/C++使いだったりもするんだろうけど。

てか、人生ズボラ派としては、いい加減、文字をずらずら並べてプログラムを記述するというスタイルそのものがどうにかならんのかな?と思ったりはするわ。
0168デフォルトの名無しさん
垢版 |
2021/09/26(日) 11:03:31.80ID:YbVO1WH/
ポトペタの方が効率悪い
0169Mb
垢版 |
2021/09/26(日) 13:19:09.44ID:tXVd2t/V
>>167
> 文字をずらずら並べてプログラムを記述するというスタイルそのものが
> どうにかならんのかな?
それは「ノンテクスチュアル・プログラミング」といって、
わりと人類の夢みたいなところがあるんだが、実現しようと思うと
JIS フローチャートとかで育った人が話をややこしくするのだ。
SPD とか NS チャートとか、構造化に向いたものもあるんだけどな。
早稲田大学(日立?)の二村先生は、「この世から JIS フローチャートを
撲滅したい」と公然と主張していらっしゃった。
いちど筧先生の研究室のお邪魔したときに、外廊下のどんづまりが
二村研究室で、仕事で日常的にフローチャートを書いていた私は
逃げ帰ったことがありました。
0170Mb
垢版 |
2021/09/28(火) 21:11:09.09ID:1n55ADGm
もう言語から作っちゃうのが早いような気がしてきた。
昔の Fortran 77 で、「最短のプログラム」というのがあって、
「END.」だそうだ。
Pascal だと begin 〜 end がやたら目についたし、
C や Java だと「main()」で始まるし、
Java で「exit()」とかやると JVM そのものが落ちて面倒な
ことになる。
そのあたりを整理して、変数スコープをはっきりさせて、
強い静的な型付けを強制して、swap とか
loop 〜 until 〜 do 〜 repeat とかも導入して、
void だったら 「repeat.」とちゃんと書かないと文法エラーになるような、
かっちりした教育用の言語があったら、
遅かろうがなんだろうが使う価値がありそうに思う。
0171デフォルトの名無しさん
垢版 |
2021/09/29(水) 02:34:40.12ID:guchPPTa
IBMメインフレームのアセンブラなら、最短のプログラムは
ST__EQU_*
____SR__15,15
____BR__14
____END_ST

IEFBR14だ
0172Mb
垢版 |
2021/09/29(水) 15:22:19.43ID:g61nlzZ7
>>171
さすがに濃すぎてわからん。うちらは通信用のスーパーミニ
(たしかハネウェルのコピーの NCOS)だったので、
いわゆるメインフレームは触ったことがないのだ。
ひょっとして、「白い机の 360」とかの世代の方ですか?
0173デフォルトの名無しさん
垢版 |
2021/09/29(水) 17:55:38.49ID:2n7INrGl
さすがに…
360、370の後継の z/OSです
ですが、IEFBR14 は360の頃から使用されていますね

何もしないで戻り値として 0を返すだけのプログラムです
intelで戻り値をaxレジスタにセットするように、レジスタ15に0を設定しています
0174Mb
垢版 |
2021/09/29(水) 20:22:53.72ID:g61nlzZ7
>>173
私も「NCOS」といっても「スーパーミニ(MS140以降)」の時代なので、
「NCOS 1 アセンブラ」はちょっと齧っただけ。
入間基地の FADP にメインフレーム級の NCOS が
あったのは見た記憶がある。
ミニコンピュータといっても、「PDP」シリーズは写真でしか
見たことがなく(あのカラーリングの感性はいかがかと思う)、
PDP-11 の仮想記憶版の拡張型であるVAX-11(いわゆるブルー・バクスン)は
NEC の府中事業場の隅っこで埃をかぶっていたのを見たことがある。
つーても、あれってサイズが高級車一台分くらいあるんだよなぁ …
「“ミニ” コンピュータ」っつーんだから、せめて大型冷蔵庫くらいの
サイズにしてほしい。
自宅にサーバールームを用意して、17 インチのラックを設置するとかいうのは
さすがに控えようと思うのだが、ケース買ってきて自作マシンというのは、
若気の至りで一度やらかしたことがある。
0176デフォルトの名無しさん
垢版 |
2021/10/01(金) 21:14:38.49ID:wkRzMgwV
ぶっちゃけ、高級アセンブラとしてのC。

その上はいろんな哲学を学ばないといけないから。
0177Mb
垢版 |
2021/10/02(土) 10:53:36.01ID:9AHxi4+O
>>176
>その上はいろんな哲学を学ばないといけないから。
C は記述の粒度が小さいもんだから、
小さいプログラムを自分ひとりで書いているうちは
いいんだけど、なんかしら全体構造が見えづらくなっちゃうんだよな。
若いうちはそれでも力業でなんとかなるんだけど、さすがに
三十代半ばを過ぎると「三日前の自分は他人」というのが
身に染みてきて、ちょっと大きなプロジェクトでチームを組むと
なにかしら行き詰まりを感じたりする。
私の場合は、その先のポジションが Java だっただけで、
C♯とかいう人もいるかもしれない。
0178デフォルトの名無しさん
垢版 |
2021/10/02(土) 16:00:47.63ID:HwAmnb74
>>177
それならばRustが良いですね
Cと同じく低水準な記述も可能でネイティブコンパイルされGCも無し
C言語がとっても便利で強力になったものがRust言語
0180デフォルトの名無しさん
垢版 |
2021/10/02(土) 23:55:02.44ID:0KUEFcg9
D
0181デフォルトの名無しさん
垢版 |
2021/10/03(日) 00:29:42.74ID:rhju0Lgz
最初に学ぶというからには、手っ取り早くでなくということではなく、体系的に学びたいということなんだよね

僕はC押しだったけど、たしかにCはかならず一度は通らなくてはならないと思うのだけど、最初にCで挫折してしまうより、もう少し取っつきやすい、アルゴリズムに集中できる言語から入るのがいいのかなとも

順番に拘らないというか
0182デフォルトの名無しさん
垢版 |
2021/10/03(日) 10:51:06.49ID:oCTMWA/s
どうせやるんだから(やらなきゃ話にならないんだから)
最初からやったほうがいいに決まってる

後からで良いって逃げてる香具師は使い物にならない(レベルで満足してるのが多いイメージ)
0183デフォルトの名無しさん
垢版 |
2021/10/03(日) 11:03:25.80ID:dAyKRsSE
どうせやることになる言語はrustやhaskellに限らずたくさんあるんだから、何もそれらを最初にやる必要は全くなく、基礎的なもの分かりやすいものから順に積み上げるのは妥当だろう
0184デフォルトの名無しさん
垢版 |
2021/10/03(日) 11:21:17.66ID:lzwjEZSj
>>181
おかしかったワ:
最初に学ぶというからには、手っ取り早くということではなく体系的に〜
0185デフォルトの名無しさん
垢版 |
2021/10/03(日) 14:03:17.28ID:XAcVATkF
>>183
妥当というか当然だよね
このスレにいる奴は頭のおかしい社会不適合者ばかりだから世間とずれすぎてる
0186Mb
垢版 |
2021/10/03(日) 15:35:19.26ID:13zKiOvX
>>185
> このスレにいる奴は頭のおかしい社会不適合者ばかりだから世間とずれすぎてる
それは×かなぁ。
「こんなマイナーなスレをわざわざ荒しにくる奴は、どっか心を病んでいる
『精神的な社会不適合者』ばかりだから、プログラマ文化からずれすぎてる」と
いうのが適切だと思う。
先天的に脳がおかしい(ということは、「頭がおかしい」)けれど、
「自閉なんだけどフツーに有能なプログラマ」は電算業界には普通にいるし、
理数系の研究者に関しては、むしろ「自閉系である」というのが
強みであったりする。
「世間とずれすぎてる」というのは、同調圧力に負けているんじゃないかなぁ。
0189Mb
垢版 |
2021/10/03(日) 21:18:00.43ID:13zKiOvX
>>188
漏れもそう思う。紫とか使っちゃうところがパンクチュアルだと思った。
0190デフォルトの名無しさん
垢版 |
2021/10/03(日) 21:32:54.16ID:f+cxTxee
DECがロゴの色をバーガンディに変えたのは1990年代のことだがな。
PDPの時代はいわゆる"Small Blue"
0191Mb
垢版 |
2021/10/03(日) 21:48:09.94ID:13zKiOvX
そうだったんだ。
仮想記憶システムをフォローした VAX-11 は、
「ブルー・バクスン」と云われていたのは憶えている。
Prolog で有名な中島(「ナカジマ」ではなく「ナカシマ」)
秀之さんは Prolog 処理系の VAX への移植で有名だが、
未見だけれども「秘境 Prolog に名前呼びの修羅場を見た!」
という論文があるとかないとか(もうすぐ『bit』の電子版が
出るらしいので、興味があったら購入して探していただきたい)。
0192Mb
垢版 |
2021/10/03(日) 21:57:33.48ID:13zKiOvX
そういえば思い出した。
DEC はパソコンにも手を出して、ケース型のパソコンを出して
いたんだよな。それで「DEC なら信用できるだろう」と思って
秋葉原で買ったら、パソコン業界からいきなり撤退しやがった(T_T)。
以来、「DEC」というブランドは信用しないと決めている。
同様に、「Microsoft」「アスキー」とかいったブランドは、
基本的に信用しないと(個人的な意見だが)決めている。
0193デフォルトの名無しさん
垢版 |
2021/10/03(日) 22:55:23.52ID:Fj8TwfDX
DECの関東工場で生産されるパソコンはMade in TOKYOと銘打ってHPが販売してる。
0194デフォルトの名無しさん
垢版 |
2021/10/03(日) 22:56:02.47ID:Fj8TwfDX
Made in TOKYOと言うが本当は群馬産。
0195デフォルトの名無しさん
垢版 |
2021/10/04(月) 01:14:14.63ID:rfKfA2dL
最速ならvscodeでもダウンロードしてきてjavascriptでもてきとうにいじるのが良いかもね。
そのあとは知らんが。
0196デフォルトの名無しさん
垢版 |
2021/10/04(月) 01:55:28.66ID:hBHzC2Ye
vscodeだと汎用的すぎて開発ターゲット決めるところからだし敷居が高い

よくあるシミュレータ付きの適当なIoTデバイス用IDEでJS対応してるのがオススメ
遊ぶ分にはデバイス購入不要
他にもUserscriptの改造とかすぐ目に見えて動かせるものが良いはず
0197デフォルトの名無しさん
垢版 |
2021/10/04(月) 09:14:06.26ID:rfKfA2dL
>よくあるシミュレータ付きの適当なIoTデバイス用IDEでJS対応してるのがオススメ
で、具体的に何?初めての人はそれがわからんから苦労するんだろ。
0198デフォルトの名無しさん
垢版 |
2021/10/04(月) 12:54:41.34ID:toVLiTfB
>>197
有名どころで取っつきやすいのだと
https://www.microsoft.com/ja-jp/makecode
ここのArcadeかmicro:bitのチュートリアル

いっそ初手ならここのブロックプログラミングで良い気もする
0199Mb
垢版 |
2021/10/04(月) 14:56:58.28ID:JFT4UYBi
>>193
>>194
そうなのか orz
「がっちりマンデー」の報道は嘘だった(法律上は「嘘」とは
言えないだろうが)んだな。
「Made in TOKYO」といっても、
「東京都内で組み立てています」というだけの話であって、
たとえば餃子の餡と餃子の皮を中国から輸入して日本で包めば、
「Made in Japan」の餃子になっちゃうわけだからなぁ ……
0200デフォルトの名無しさん
垢版 |
2021/10/05(火) 00:31:07.56ID:eIScRtg7
組み上げたあとの検品をちゃんとしてくれたら文句はないんだけど
最近は国内メーカーの冠ついてても信用ならんのよね
0201Mb
垢版 |
2021/10/07(木) 21:07:09.78ID:r04zjL6z
マウスコンピュータの評判はどうなんだろう。
本来ならば、いわゆるノートブック・パソコンは
姿勢が辛(つら)くなるのでお勧めはしたくないのだが、
新型コロナウイルス感染症の流行明けだと、
「矯正出社」というのがあってリモートワークも
ままならなくなっているらしい。
昔は「読書机」というものがあったのだが、
昨今はパソコンも小型化しているので
なんかしらそういう環境があってもいいと思う。
「最初の言語に何を選ぶか」というのも重要なんだが、
まず開発環境を整備しないといけないと思う。
■ このスレッドは過去ログ倉庫に格納されています

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