アカウント名:
パスワード:
唯一の実装が規格~みたいなコミュニティーベースの発展途上のプログラミング言語を採用することを気にしないのか......#気にする業界・気にする分野の仕事をしている人は凄く気にする
私は以前から、この分野の標準はゴミだと大声で主張してきた。標準が間違っているので、私たちは標準を無視している。Rustについても同じことが言えるだろう
https://japan.zdnet.com/article/35193521/2/ [zdnet.com]
気にする人が別実装を用意すれば良いのでは?
# Rustはメモリの取り扱いに起因するセキュリティーホールが一掃されるので大歓迎
参考までにお聞きしたいのですが、気にする業界・気にする分野というのは例えばどういうところなのでしょうか?工場では一度入れたら何十年も使い続けるそうですがそういうところでしょうか。
自分の知ってる範囲だと、自動車業界はかなり気にする。コンパイラのバグで不具合とか、過去にもあったし。ASIL-D相当だと、コンパイラもバージョン毎に認定が必要なんで、RUSTみたいに、頻繁にバージョンアップする言語は大変。
自分の知ってる範囲だと、自動車業界はかなり気にする。
TOYOTA が 2025 に実用化するとする Arene は Rust だし、新規案件は以前とは事情が変わってきてるような。
RUSTみたいに、頻繁にバージョンアップする言語は大変。
Rust はプロジェクトディレクトリ下の rust-toolchain ファイルでコンパイラだけでなくツールチェインのバージョンを指定できる分他の言語より開発者全体で開発環境を統一するのは簡単では。
Rust の採用が増えているのって、言語仕様もあるけどrustup + cargo の存在が大きいんじゃないかと思う。
統一なら大抵の言語でreq.txtみたいなのがあるから…
医療機器業界も気にするよ。IEC62304って規格があって、医療機器も使用するソフトウェア(コンパイラや開発環境)を自社の製品開発に使用する為に、検証した上でSOUPとして社内規格に登録し、それを使用した開発を行なう事になるから、開発環境に不具合があって更新なんてなったら、自社開発のソフトウェアだけでも検証が大変なのに、開発環境の検証も再度行なう必要があるんで、結果的に開発期間の遅れに繋がるよ。なので、最新版が出たとしても、出来上がったソフトウェアに問題がない限り、開発環境は古いものを使い続けるよ。
MISRAなんてティア1のソフトやでもあんまきにしてないぞ
金融業界じゃないの? サグラダ・ファミリア建設中に前提がコロコロ変わったら困るわけで
そもそも、オープンソースと商用ソフトを同列に論じちゃダメだと思う。オープンソースは少なくとも作ってる人たちは無保証でやってるんでしょ。
基本的に産業系・組込系はみんなそうでしょ例えば、原発の安全性保証に関わる業界標準になるようなシミュレーション・コードを書くのにどのような処理系を選びますか?webアプリケーション開発だとかで定期的にスクラッチからの作り直しは想定内/計画済み、コンパイラなんてその時に切り替えても問題なしという開発とは違う(真面目にそういう質問をされるのが驚き)
元ACです。皆さま回答どうもありがとうございました。勉強になりました。
現状のLinuxが純粋なC言語じゃなくてgccの拡張機能にバリバリ依存した書き方されてんのに何言ってんの??
最近はclangでもビルドできるようになったんだっけ
それってclang側が頑張ってgcc相当の機能を実装したからでは。昔GPL3で新しいgccを利用できなかったFreeBSDの貢献も大きいかもしれません。
Rustを使えば、単純にメモリ安全になるわけじゃない。正しくRustを使えば、その範囲でメモリ安全になる。危険な使い方をしたRustは、Cと変わらない。Rustは言語規格以外に、分野・用途別の共通のコーディング規約が定まらないと、お堅い業界では利用しづらいだろう。Linuxがその辺を自ら定めて利用するようなら、他分野に対し実績として十分な説得材料になりそう。
CLang でコンパイルしたカーネル楽しいかも。ベンチマーク見ると、最適化は gcc と似たり寄ったりみたいだけど。
それってclang側が頑張ってgcc相当の機能を実装したからでは。
そんなこたない [blogspot.com]
#4331028です。知らなかったので勉強になりました。ちょっと古い記事だったので、VLAISをキーワードにその後どうなったのかググってみた。
AndroidがClangだから、Karnelもgccを使わないで済むよう取り組んでいるという記事https://lwn.net/Articles/734071/ [lwn.net]
その結果、Karnel4.20でVLA自体を使用しないよう書き換え完了したという記事https://linux.slashdot.org/story/18/10/29/1935253/the-linux-kernel-is-... [slashdot.org]
4年も前の話なのか。アンテナ低すぎだろ、俺。
gccの拡張機能はかなりの数がclangに取り込まれているのは事実と思うが、僅かな例外があったとして「そんなこたない」と否定できるもんかな?
「そんなこたない」というのはC99規格標準の可変長配列のことですよ。
可変長配列はclangで普通に使えますよ。VLAISを誤解されてるのでは。
void hoge(int size){ int array[size];}
↑こーゆーのなら結構前のclangからサポートしてますね。https://godbolt.org/z/5d6Ed3861 [godbolt.org]
C11規格で後退したのは、マイコンとかではコンパイラの実装や利用が厳しいことを考慮したのかな。PIC16Fとか、ただの配列ですら実用的とはいいがたいコードを吐く。
PIC用のコンパイラが標準規格に準じてることを期待する奴はおらんだろ
MSがウンコだからじゃねhttps://godbolt.org/z/K781nPa89 [godbolt.org]
Linus「こんな事もあろうかとLinuxコンパイル用のRustを自ら作っておいた」
たぶんこういうことだと思う。6.1には、対応する特定ブランチのRustが付くんだろう。
Linuxを一からビルドしようとすると、まずRustのコンパイラをビルドするところから始めるようになるのでは
気にする人は古いカーネルを使うから問題ないんじゃない?元々バグがゼロになることはあり得ない分野だし。
それを言うなら、Cも発展途上。linuxカーネルで長年使われてきたC89と最新の最終草案が出たばかりのC23では別物だよ。
30年以上前から標準規格が度々更新されてるC言語と現状標準規格に類するものが存在しないRustはぜんぜん違うよアホか
Linuxカーネルが依存してるGNU89って標準規格あんの?
C23を例に挙げてCも発展途上だという話となんか関係ある話かな? >GNU89
とっくにC11だが
発展途上ナノが問題なのではなく明確な規格がないのが問題です。 不定とか処理系依存とかは知らん。
なんの言語でも発展途上の時代はあったでしょそんなこと言ってたら一生古いものを使い続けなきゃいけなくなる継ぎはぎと1から新しく作るのでは全然違うし
時代が違う。今、Linux全部を発展途上なクオリティに下げると世界がひっくり返るぞ。Rustを牛耳ってる面子を囲い込んだらLinuxに多大な影響を与えられる、というのは影響力がお買い得に過ぎる。
他の枝でも出てるようにLinux開発メンバーがRustをフォークするか、同等のクオリティ・信頼度になるよう支えるか。あるいは、Rustの影響が無いCのままのLinuxがフォークされるか。
Rustを牛耳ってる面子を囲い込んだらLinuxに多大な影響を与えられる、というのは影響力がお買い得に過ぎる。
Linux に多大な影響を与える他の方法よりもRustを牛耳ってる面子 [rust-lang.org]を囲い込む方が難しいんとちゃうやろか。
> Rustを牛耳ってる面子 日本にはもうTOYOTAしか残ってないという残酷な事実 (´・ω・`)
でもそこの TOYOTA Connected [toyotaconnected.com] って
Headquarters 5905 Legacy Dr Ste. 210 Plano Tex [google.com]
どうせプリプロセッサと独自ライブラリでC言語ともGNU Cとも違う独自言語化したのがLinuxのコードだしRustのコードもそうなる。
Javaがグズグズ規格の話し合いしてる間にMSの実装が規格みたいな勢いのC#が抜けていきましたね
正直業績悪化と買収でゴタゴタしたほうが…
国家が採用するにはJISやISOで規格化されることが重要とか言われたのを真に受けて頑張ってJIS化したのに、JISでもISOでもECMAでも規格化されていないPythonを採用されるという梯子外しをくらったRubyとかいう言語がありましてね
PC分野ではもう巻き返しは厳しいから、せめて組み込みでは生き残れるよう、mruby準拠のJIS規格の組み込みプロファイルを、策定すべきじゃないかな。mruby/cぐらい目的に振り切っちゃうと規格とか関係なくなるけど、mrubyのようにそこそこ多目的を目指すと規格ってやっぱり重要。mruby/cは、最近メガドライブ(RAM64KB)にも移植されたみたいですね。
最初はドライバーからって前言ってたから、そのドライバーがいらない限り、しばらくは必要にはならないいんじゃないかな。 いきなりカーネルの中枢にRustが使われることはないと思うよ。
Linux Cは唯一の実装が規格~みたいなコミュニティーベースの発展途上のプログラミング言語です。リーナスもそのような発言をしており問題ないものと思われます。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
身近な人の偉大さは半減する -- あるアレゲ人
気にしないのか? (スコア:1, 興味深い)
唯一の実装が規格~みたいなコミュニティーベースの発展途上のプログラミング言語を採用することを気にしないのか......
#気にする業界・気にする分野の仕事をしている人は凄く気にする
Linusの回答 (スコア:2, 参考になる)
https://japan.zdnet.com/article/35193521/2/ [zdnet.com]
Re: (スコア:0)
気にする人が別実装を用意すれば良いのでは?
# Rustはメモリの取り扱いに起因するセキュリティーホールが一掃されるので大歓迎
Re: (スコア:0)
参考までにお聞きしたいのですが、気にする業界・気にする分野というのは例えばどういうところなのでしょうか?
工場では一度入れたら何十年も使い続けるそうですがそういうところでしょうか。
Re:気にしないのか? (スコア:2, 興味深い)
自分の知ってる範囲だと、自動車業界はかなり気にする。
コンパイラのバグで不具合とか、過去にもあったし。
ASIL-D相当だと、コンパイラもバージョン毎に認定が必要なんで、
RUSTみたいに、頻繁にバージョンアップする言語は大変。
Re:気にしないのか? (スコア:1)
自分の知ってる範囲だと、自動車業界はかなり気にする。
TOYOTA が 2025 に実用化するとする Arene は Rust だし、
新規案件は以前とは事情が変わってきてるような。
RUSTみたいに、頻繁にバージョンアップする言語は大変。
Rust はプロジェクトディレクトリ下の rust-toolchain ファイルで
コンパイラだけでなくツールチェインのバージョンを指定できる分
他の言語より開発者全体で開発環境を統一するのは簡単では。
Rust の採用が増えているのって、言語仕様もあるけど
rustup + cargo の存在が大きいんじゃないかと思う。
Re: (スコア:0)
統一なら大抵の言語でreq.txtみたいなのがあるから…
Re:気にしないのか? (スコア:2, おもしろおかしい)
医療機器業界も気にするよ。
IEC62304って規格があって、医療機器も使用するソフトウェア(コンパイラや開発環境)
を自社の製品開発に使用する為に、検証した上でSOUPとして社内規格に登録し、
それを使用した開発を行なう事になるから、開発環境に不具合があって更新なんてなったら、
自社開発のソフトウェアだけでも検証が大変なのに、開発環境の検証も再度行なう必要があるんで、
結果的に開発期間の遅れに繋がるよ。
なので、最新版が出たとしても、出来上がったソフトウェアに問題がない限り、
開発環境は古いものを使い続けるよ。
Re:気にしないのか? (スコア:1)
Re: (スコア:0)
MISRAなんてティア1のソフトやでもあんまきにしてないぞ
Re: (スコア:0)
金融業界じゃないの? サグラダ・ファミリア建設中に前提がコロコロ変わったら困るわけで
Re: (スコア:0)
そもそも、オープンソースと商用ソフトを同列に論じちゃダメだと思う。
オープンソースは少なくとも作ってる人たちは無保証でやってるんでしょ。
Re: (スコア:0)
基本的に産業系・組込系はみんなそうでしょ
例えば、原発の安全性保証に関わる業界標準になるようなシミュレーション・コードを書くのにどのような処理系を選びますか?
webアプリケーション開発だとかで定期的にスクラッチからの作り直しは想定内/計画済み、コンパイラなんてその時に切り替えても問題なしという開発とは違う
(真面目にそういう質問をされるのが驚き)
Re: (スコア:0)
元ACです。皆さま回答どうもありがとうございました。
勉強になりました。
Re: (スコア:0)
現状のLinuxが純粋なC言語じゃなくてgccの拡張機能にバリバリ依存した書き方されてんのに何言ってんの??
Re: (スコア:0)
最近はclangでもビルドできるようになったんだっけ
Re: (スコア:0)
それってclang側が頑張ってgcc相当の機能を実装したからでは。
昔GPL3で新しいgccを利用できなかったFreeBSDの貢献も大きいかもしれません。
Rustを使えば、単純にメモリ安全になるわけじゃない。
正しくRustを使えば、その範囲でメモリ安全になる。危険な使い方をしたRustは、Cと変わらない。
Rustは言語規格以外に、分野・用途別の共通のコーディング規約が定まらないと、お堅い業界では利用しづらいだろう。
Linuxがその辺を自ら定めて利用するようなら、他分野に対し実績として十分な説得材料になりそう。
Re: (スコア:0)
CLang でコンパイルしたカーネル楽しいかも。
ベンチマーク見ると、最適化は gcc と似たり寄ったりみたいだけど。
Re: (スコア:0)
それってclang側が頑張ってgcc相当の機能を実装したからでは。
そんなこたない [blogspot.com]
Re:気にしないのか? (スコア:1)
#4331028です。知らなかったので勉強になりました。
ちょっと古い記事だったので、VLAISをキーワードにその後どうなったのかググってみた。
AndroidがClangだから、Karnelもgccを使わないで済むよう取り組んでいるという記事
https://lwn.net/Articles/734071/ [lwn.net]
その結果、Karnel4.20でVLA自体を使用しないよう書き換え完了したという記事
https://linux.slashdot.org/story/18/10/29/1935253/the-linux-kernel-is-... [slashdot.org]
4年も前の話なのか。アンテナ低すぎだろ、俺。
Re: (スコア:0)
gccの拡張機能はかなりの数がclangに取り込まれているのは事実と思うが、僅かな例外があったとして「そんなこたない」と否定できるもんかな?
Re: (スコア:0)
C11規格ではオプションに後退してるけど、大きな違いだと思う。
Re: (スコア:0)
「そんなこたない」というのはC99規格標準の可変長配列のことですよ。
可変長配列はclangで普通に使えますよ。VLAISを誤解されてるのでは。
Re: (スコア:0)
「そんなこたない」というのはC99規格標準の可変長配列のことですよ。
void hoge(int size)
{
int array[size];
}
↑こーゆーのなら結構前のclangからサポートしてますね。
https://godbolt.org/z/5d6Ed3861 [godbolt.org]
Re: (スコア:0)
C11規格で後退したのは、マイコンとかではコンパイラの実装や利用が厳しいことを考慮したのかな。
PIC16Fとか、ただの配列ですら実用的とはいいがたいコードを吐く。
Re: (スコア:0)
PIC用のコンパイラが標準規格に準じてることを期待する奴はおらんだろ
Re: (スコア:0)
MSがウンコだからじゃね
https://godbolt.org/z/K781nPa89 [godbolt.org]
Re: (スコア:0)
Linus「こんな事もあろうかとLinuxコンパイル用のRustを自ら作っておいた」
Re: (スコア:0)
たぶんこういうことだと思う。6.1には、対応する特定ブランチのRustが付くんだろう。
Re: (スコア:0)
Linuxを一からビルドしようとすると、まずRustのコンパイラをビルドするところから始めるようになるのでは
Re: (スコア:0)
気にする人は古いカーネルを使うから問題ないんじゃない?元々バグがゼロになることはあり得ない分野だし。
Re: (スコア:0)
それを言うなら、Cも発展途上。
linuxカーネルで長年使われてきたC89と最新の最終草案が出たばかりのC23では別物だよ。
Re: (スコア:0)
30年以上前から標準規格が度々更新されてるC言語と現状標準規格に類するものが存在しないRustはぜんぜん違うよアホか
Re: (スコア:0)
Linuxカーネルが依存してるGNU89って標準規格あんの?
Re: (スコア:0)
C23を例に挙げてCも発展途上だという話となんか関係ある話かな? >GNU89
Re: (スコア:0)
とっくにC11だが
Re: (スコア:0)
発展途上ナノが問題なのではなく明確な規格がないのが問題です。 不定とか処理系依存とかは知らん。
Re: (スコア:0)
なんの言語でも発展途上の時代はあったでしょ
そんなこと言ってたら一生古いものを使い続けなきゃいけなくなる
継ぎはぎと1から新しく作るのでは全然違うし
Re: (スコア:0)
時代が違う。今、Linux全部を発展途上なクオリティに下げると世界がひっくり返るぞ。
Rustを牛耳ってる面子を囲い込んだらLinuxに多大な影響を与えられる、というのは影響力がお買い得に過ぎる。
他の枝でも出てるようにLinux開発メンバーがRustをフォークするか、同等のクオリティ・信頼度になるよう支えるか。
あるいは、Rustの影響が無いCのままのLinuxがフォークされるか。
Re: (スコア:0)
Rustを牛耳ってる面子を囲い込んだらLinuxに多大な影響を与えられる、というのは影響力がお買い得に過ぎる。
Linux に多大な影響を与える他の方法よりも
Rustを牛耳ってる面子 [rust-lang.org]を囲い込む方が難しいんとちゃうやろか。
Re: (スコア:0)
> Rustを牛耳ってる面子
日本にはもうTOYOTAしか残ってないという残酷な事実 (´・ω・`)
Re: (スコア:0)
> Rustを牛耳ってる面子
日本にはもうTOYOTAしか残ってないという残酷な事実 (´・ω・`)
でもそこの TOYOTA Connected [toyotaconnected.com] って
Headquarters
5905 Legacy Dr Ste. 210 Plano Tex [google.com]
Re: (スコア:0)
どうせプリプロセッサと独自ライブラリでC言語ともGNU Cとも違う独自言語化したのがLinuxのコードだしRustのコードもそうなる。
Re: (スコア:0)
Javaがグズグズ規格の話し合いしてる間にMSの実装が規格みたいな勢いのC#が抜けていきましたね
Re: (スコア:0)
Re: (スコア:0)
正直業績悪化と買収でゴタゴタしたほうが…
Re: (スコア:0)
国家が採用するにはJISやISOで規格化されることが重要とか言われたのを真に受けて頑張ってJIS化したのに、JISでもISOでもECMAでも規格化されていないPythonを採用されるという梯子外しをくらったRubyとかいう言語がありましてね
Re: (スコア:0)
PC分野ではもう巻き返しは厳しいから、せめて組み込みでは生き残れるよう、mruby準拠のJIS規格の組み込みプロファイルを、策定すべきじゃないかな。
mruby/cぐらい目的に振り切っちゃうと規格とか関係なくなるけど、mrubyのようにそこそこ多目的を目指すと規格ってやっぱり重要。
mruby/cは、最近メガドライブ(RAM64KB)にも移植されたみたいですね。
Re: (スコア:0)
最初はドライバーからって前言ってたから、そのドライバーがいらない限り、しばらくは必要にはならないいんじゃないかな。 いきなりカーネルの中枢にRustが使われることはないと思うよ。
Re: (スコア:0)
Linux Cは唯一の実装が規格~みたいなコミュニティーベースの発展途上のプログラミング言語です。リーナスもそのような発言をしており問題ないものと思われます。