次世代言語21 Go Nim ..
[2ch|▼Menu]
593:デフォルトの名無しさん
21/03/06 14:42:16.25 XRYgvkNk.net
>>575
IJKが整数型とかあったな・・・(遠い目)

594:デフォルトの名無しさん
21/03/06 16:33:52.93 kirbXePv.net
null 安全だとコンパイル時にエラーになってくれたりするので良いのではないか?
危険な部分は自分で敢て null を使うように書いた部分だけ。それも null チェックした後でしか
本来の型として扱えないようになってればコンパイル時にエラーになって結構安全。

595:デフォルトの名無しさん
21/03/06 16:34:37.52 kirbXePv.net
あ、ごめん。リロードせずに書いてしまった。間に沢山の書き込みがorz

596:デフォルトの名無しさん
21/03/06 16:43:07.04 BWZLcpxD.net
>>573
初期値入れればたいてい推論で済むんじゃね?

597:デフォルトの名無しさん
21/03/06 19:01:39.91 oEmAT3IB.net
>>579
たし蟹

598:デフォルトの名無しさん
21/03/06 21:08:31.03 Tfz5lFd6.net
>>577
馬鹿はとりあえず「汎用」にどこでも使えるように書くもんなんだよ。
そういう馬鹿に馬鹿と言う労力を抑えるために無駄なシンタックス入れて、
また馬鹿がそれに混乱して酷い状況になるっていうのを嫌というほど見てきたわけだが。

599:デフォルトの名無しさん
21/03/06 21:21:03.25 YD4frn+e.net
いつもの人か

600:デフォルトの名無しさん
21/03/07 01:28:00.90 j7St4ggd.net
セキュリティー分野に明るいみたいだけど、最近のトレンド知ってたらそんな事いわないと思うんだけどな。
2020年度だけでUse After Freeがらみいくつあったんよ。
馬鹿に作れるものじゃなくなってるよ。

601:デフォルトの名無しさん
21/03/07 14:06:58.16 Shd6OUrG.net
XSS絡みか、ブラウザのバグじゃん。
お前らには関係ないわ。

602:デフォルトの名無しさん
21/03/07 14:46:13.47 w/ds1TIt.net
Rustが何でどう使われてるかわかったら、ブラウザのバグをどう解決したかわかるんじゃねえの?

603:デフォルトの名無しさん
21/03/07 14:48:03.98 Vfc9MKsb.net
>>576
一々めんどくさいから型宣言せずに使えるって話だろ
IJKを整数型以外にも出来たんじゃなかったかな

604:デフォルトの名無しさん
21/03/07 14:54:59.61 4VZYUHqt.net
機械を意識した具体的なのと表現力重視の抽象的なのの2つでええやろ
@Rust:GCレスながら比較的安全に低レイヤーをさわれる
AIdris2:依存型(型がファーストクラス)ありの線形型(Rustのアフィンの強いやつ)ありのHaskell

605:デフォルトの名無しさん
21/03/07 15:25:04.07 7gy+NlG3.net
>>586
I,J,Kで始まる名前の変数は宣言せずに使うと整数型
宣言すれば他の型にもできるということで
暗黙の型変換があるので宣言してない変数Iに浮動小数点数を代入した場合
Iは整数型になり小数点以下は切り捨てられる
使うときも暗黙の型変換が起こるから切り捨てが起こったことに気づきにくい
ということだったような

606:デフォルトの名無しさん
21/03/07 23:58:15.04 TkByhUzl.net
>>566
色々試行錯誤した中で一番最悪の結論がrustに思えるがな。

607:デフォルトの名無しさん
21/03/08 00:13:09.24 YibNXnJO.net
結局いうほど安全性が求められてるのか?としか思わん。
本当に安全性を求めるならコンパイラに全てを押し付けることが有効かどうか真剣に考えた方が良いのだが、
どうもそういう方向ではないのだな。
結局何かに責任を押し付けたいだけでそれが一番わかりやすというところでコンパイラが
ターゲットにされているだけという茶番なんだわ。

608:デフォルトの名無しさん
21/03/08 00:57:02.44 ++yKnef9.net
昨今のトレンドは後工程で苦労するよりコンパイル時に型チェックで苦労するほうがマシでしょというのがひとつ
あと線形型なんかは採用したらパフォーマンス向上した的な話もあるね
URLリンク(arxiv.org)

609:デフォルトの名無しさん
21/03/08 08:27:49.24 cEivlnWp.net
>>589
let mut, &mut, ::, unwrap, unnecessary trailing semicolon, &str, @val, ast!, dbg!, match
String, Str, CString, Cstr, OsString, Ostrで6種類の文字列型・5種類オブジェクトタイプ
String::from(), to_string(), to_owned(), into(),「.」でチェーンメソッドはするけど
ネームスペースパスは「::」コメントの書き方は6種類、複雑なmatchと暗黙借用のmoving
貶し言葉:イライラする、うるさい小姑、窓のヘリを触ってココ拭いてない言うてくる、全責任はプログラマ
褒め言葉:コンパイラが最高の師匠であり、全てを体得するまでに5年、騎士の剣のような型通りの綺麗な剣技

610:デフォルトの名無しさん
21/03/08 08:39:02.15 PAkrxJnU.net
うーん、無能だからでは?

611:デフォルトの名無しさん
21/03/08 23:08:18.24 XP5LJntG.net
>>580
開成中学生が作ったBlawnとかそんな感じ、型宣言ゼロで静的型付け。関数などがジェネリックなので
コンパイル時にチェッカーが走る。惜しいのが、たぶん頭は良いのだけど言語作成者はメタボロクソに
言われても開発継続する胆力がないとどんなに将来性があっても使ってくれない…

612:デフォルトの名無しさん
21/03/08 23:49:34.34 XP5LJntG.net
>>566
論文がないのはその通りだけど、そういうレベルじゃないよ。Vはコンパイラーは、コンパイル中に必要な
解放呼び出しを自動的に挿入する。Cで言うfree/deallocateが勝手に入る。参照カウントをつかってると
言ってるけど、変更可能な可変長文字列バッファ、やリスト・マップなんかが無ければスコープを外れると
解放される変数と同じでバッファのmallocはコンパイラがfreeするコードを挿入する。(これを入れない
コンパイルオプションがある)循環参照は終了時に消すだけ、それだけの事、Lobsterとか言ってるけどさ
"Memory Management in Lobster"ね。mattnとか初期の汚いVコードというかCのコードを見てGoの
人は入れようと思わないだろうけど、コントリビュータ自身が過大広告言うてるから人を減らしてる

613:デフォルトの名無しさん
21/03/08 23:50:13.81 XP5LJntG.net
>>593
消えろよ、クズ

614:デフォルトの名無しさん
21/03/09 08:33:23.74 9uGzSsM0.net
>>595
自動で挿入するのはいいんだけど、難しいのはそれをいつどこで何を解放するかだろ。
スコープを外れたら解放するだけでいいならRAIIと変わらんが。

615:デフォルトの名無しさん
21/03/09 10:48:51.29 TUAITkUp.net
raiiまで効率化出来るなら凄いことで
トランスパイラが仕込んだfree()をコンパイラさんが最適化してくれるなんてあり得ないだろうし
ショートループの中でヒープをガッチャガチャ確保解放するコードとか頻出だろ

616:デフォルトの名無しさん
21/03/09 14:25:02.31 jjaB3qUV.net
>>597
BlawnのようなRAIIとは違い、Vの方はちょっと上の説明が間違ってるというか、分かりにくい言い回しを
してるが参照カウントしてるようだ。それをGCと呼ばないのはその通りでしょう
手続


617:言語のコンピューター工学を持つ学位で証明されている理論なのかは知らんけど、そんなの無くても RubyとかPHPとか動いてるわけで、必死で否定する必要もないでしょうよ。いまだ0.2?ぐらいなので ワイも使わないけどさ



618:デフォルトの名無しさん
21/03/09 14:32:59.11 jjaB3qUV.net
>>598
「ショートループの中でヒープをガッチャガチャ確保解放するコードとか頻出だろ 」
それをやってるのがRustのDropトレイトでしょう。トランスパイラが仕込んだfree()を最適化するなんて
どんな言語でもあり得ないと思いますよ。実行グラフを辿って使われなくなるスコープでfreeするだけだろう
gccのLTO(リンク時最適化)ならまだしもfreeの最適化なんてほとんどの言語はしないと思う

619:デフォルトの名無しさん
21/03/09 14:37:29.46 jjaB3qUV.net
GCのある言語でSTW(Stop the World)するような言語だと、freeの最適化なんてしないで、断片化するから
コンパクション操作が必要になるわけで、それを言語仕様かと言えばそうでは無く、言語からは決められないし
起動時のオプションがあるくらい。もちろんRustはプログラミング次第だけども

620:デフォルトの名無しさん
21/03/09 15:55:19.39 4JaghKzr.net
変数定義があるんだから使い終わったらfreeだかデストラクトだか出来るようにすればいいのだ。

621:デフォルトの名無しさん
21/03/09 20:09:07.93 M6pVOKfv.net
Rustが未完成だった頃もこんな議論をしていたのか?
ウォーターフォールのように先に議論をして後で実装したのか?

622:デフォルトの名無しさん
21/03/09 20:27:41.71 gKCoJnTT.net
Rustの場合は研究レベルで線形型アフィン型がまず実現されてて、所有権もC++の時点で既にあったし、それらがデフォルトになる実用向け言語としてデザインされていったものだから解決の方針も出されてないのとは訳が違うんよ
GCだとZGCが最先端になるのかな
Goで培われたmulti-coloringなmark&sweepとbitmap、対抗馬のshenandoahと同様の複数リージョンによる並列マーキングと並列コンパクションの全部盛りだし
研究レベルの技術に詳しい人居たら教えて欲しい

623:デフォルトの名無しさん
21/03/09 21:30:54.08 9uGzSsM0.net
>>599
はーん、GCを使わないというからRustみたいなものを期待したけど
実のところは単なる参照カウント方式だったというわけか。

624:デフォルトの名無しさん
21/03/09 22:19:12.47 2CFdfqCA.net
>>599
単なる参照カウントとはいえ結局循環参照の解決にgc使う(PHP等)とかそれっぽい参照を検出するとか必要なのに少なくとも前者のオーバーヘッドは否定してるし、参照カウント特有のカウント増減のオーバーヘッドも否定してる
その上でinnovativeな解決策があるそうだからオーバーヘッドもそれらよりは少ないんだろうよ
参考元らしいLobsterに順ずるならライフタイム分析とコンパイル時所有権トレースによる参照カウント増減の最小化・局所化が期待されるらしい
一方で実際にはメモリリークがあり循環参照が実行終了時の開放に任されてる部分が少なからずあるからinnovativeってなんだよって話になるのは自然だろ

625:デフォルトの名無しさん
21/03/09 23:53:34.35 SwzIUFtj.net
>Rustの場合は研究レベルで線形型アフィン型がまず実現されてて、所有権もC++の時点で既にあったし
これと実装レベルじゃ話が全く違うがな。。これでまず研究があったとか思えるって相当おめでたいんじゃないかね

626:デフォルトの名無しさん
21/03/10 10:36:37.47 JIwrPDXM.net
>>606
ライフタイム分析は確かに複雑な操作じゃ無ければ参照カウントのメント操作を省略できるでしょう。
それが「最小化・局所化が期待されるらしい」と上記の"Lobster"の言うように95%削減できるかは
プログラム次第だけどw
多くの言語が現在では型推論を備えてるわけだが、これが昔からある理論だとしても多くの人が使用が
できるようになったのはつい最近。型推論を現在で動作しないと否定する人は殆


627:どいない(嫌う人はいる かもしれない)途中では「ただし、これは執筆時点では実装されていません。」と言っているので、まあ 革新的ではまだないだろうね、単なる目標数値なだけで。 >>605 また多くの人が現実的な問題として否定してるのは参照カウントのオーバーヘッドなんかじゃ無くてGCによる STWやコンパクションなんかでしょう?現実問題として参照カウントのオーバーヘッドなんて気にしてる言語は 殆どないよ。例えば、RustだってRc<T>やArcによる参照カウントをプログラマ・プログラム側でやってるだけ >>607 それとRustもGraydon Hoareの個人プロジェクトでMozillaになっただけで研究が先にあったとは言い切れない そりゃ有名人やコンピューター工学の権威とか参加してるだろうけども



628:デフォルトの名無しさん
21/03/10 12:26:05.36 SA6nop04.net
最近の言語研究は、あわしろ氏の論文がベースになってるものが多い。

629:デフォルトの名無しさん
21/03/10 13:00:36.02 5VzsYcNg.net
モダンな最新のC++っていくらするの?

630:デフォルトの名無しさん
21/03/10 14:00:30.87 hyPPhEFL.net
ソフトウェアのデバッグは比較的容易だから無料なんだな
文書の誤りや詭弁やデマを取り除くのだけ金がかかる

631:デフォルトの名無しさん
21/03/10 15:44:24.64 MgNVoYVm.net
推奨NGワード: あわしろ

632:デフォルトの名無しさん
21/03/10 15:53:52.43 SA6nop04.net
あわしろ氏の論文抜きに次世代言語は語れないだろ。

633:デフォルトの名無しさん
21/03/10 20:32:58.62 wDDQFNF0.net
>>608
話の繋がりがよくわからんレスばかりだけど、とりあえずV言語は単なるリファレンスカウント方式ってことでおk?

634:デフォルトの名無しさん
21/03/11 11:10:34.72 CIKGh+S+.net
バカ「JavaBeans方式のプロパティはリフレクションあってこそのものなのにC++で真似してもなー。 」

635:デフォルトの名無しさん
21/03/11 11:33:02.30 onpwfsyg.net
>>615
スレ間違えてるぞバカくん

636:デフォルトの名無しさん
21/03/14 12:34:28.91 HIwD2fvq.net
Julia Go RustでPythonを潰そう

637:デフォルトの名無しさん
21/03/14 13:49:01.04 flEVf/TW.net
むしろpythonの足りない所補完するんじゃないか?

638:デフォルトの名無しさん
21/03/14 16:28:02.83 2WkkfJc2.net
Pythonを潰すならNimだろ、中身は別物だけど構文はめっちゃ似てる

639:デフォルトの名無しさん
21/03/14 17:07:51.14 oR08qjJB.net
つか、構文しか似てない。全然被らんだろう。

640:デフォルトの名無しさん
21/03/14 17:45:58.00 flEVf/TW.net
コンパイルして配置のひと手間入るだけで適用分野が全く変わってくる

641:デフォルトの名無しさん
21/03/14 19:29:18.99 pQGk05s+.net
動的言語の分野でも静的チェック入れたいって要望に応えるような追加が多い。
多分これからは徐々にチェックを厳しくするってリファクタリングをどれだけ段階的に入れやすくできるかってのが
言語に求められる要望になるんじゃないかね。

642:デフォルトの名無しさん
21/03/15 16:25:13.23 gJzvcWoz.net
今からC++かrust学ぶならどっちがいいと思う?
CとJavaはわかる前提で

643:デフォルトの名無しさん
21/03/15 16:48:36.32 tiOBROfx.net
両方やれば?
逆にどっちかだけ学習するより理解しやすいかもね。

644:デフォルトの名無しさん
21/03/15 17:49:05.74 8Ti0c4YE.net
CとjavaがわかっているならC++は入り易いと思う

645:デフォルトの名無しさん
21/03/15 20:36:28.58 esGaOKmu.net
>>623
目的によるだろ

646:デフォルトの名無しさん
21/03/15 21:58:43.20 ia87ngdU.net
とりあえず新しい事勉強することが目的ならRust
なんらかのプロダクトが目的ならどうせC++のAPIやライブラリ、ビルドツールから逃れられないのでC++
どうせ避けて通れないなら勉強するのはRustで問題に直面してからC++の両方コース

647:デフォルトの名無しさん
21/03/15 23:13:56.48 R


648:7EGufd+.net



649:デフォルトの名無しさん
21/03/15 23:59:28.47 M0xOqYlK.net
C++ならCと同じに使えるよ。better C。

650:デフォルトの名無しさん
21/03/16 00:18:10.95 wbddlCFD.net
まあおもしろみもクソもない極めて優等生的な普通の解答をさせてもらうと
まずは C そして C++ 最後に Rust と勉強するのが最も望ましい

651:デフォルトの名無しさん
21/03/16 01:15:21.91 t/pA05jQ.net
newを使っただけで芋蔓式に
例外処理とRAIIとスマートポインタとtemplateが必要になるC++を
better Cとか言われてスルーしてる優等生の闇が深い

652:デフォルトの名無しさん
21/03/16 01:21:12.51 GTaecVmm.net
誰も本気でプロダクトコード書くと思ってないだけだぞ。

653:デフォルトの名無しさん
21/03/16 01:45:08.00 t/pA05jQ.net
だとすると、Pythonのチェックを徐々に厳しくするってのも誰も本気でやらないだろう

654:デフォルトの名無しさん
21/03/16 05:45:19.04 0EC0D1BB.net
>>631
オブジェクト指向とか使ったらダメ。
クラスもテンプレートも使わない。
あくまでもC。

655:デフォルトの名無しさん
21/03/16 07:57:14.44 /8PJuxcZ.net
Javaは決してレガシーな言語じゃない。今も昔もJavaが世界の目指す方向を教えてくれる
URLリンク(engineer-lab.findy-code.io)
Javaの素晴らしさはJVM(Java仮想マシン)の性能の良さやエコシステムの豊かさにあると思います。
エコシステムとはJavaを取り巻く環境やコミュニティといった意味で、これまでさまざまな企業や人々がJavaに対して貢献してきました。
OSSの世界におけるものごとの考え方やコミュニティ運営における方法論は、Javaが歩んできたカルチャーが色濃く影響していると私は考えています。
現在も、多くの企業や人々がJavaの進化を支えています。たとえば、JDK 15の開発には錚々(そうそう)たる企業が参加しています。エンジニアなら誰しも憧れるような有名企業がJavaのエコシステムに関わっているんです。
<JDK 15の開発に参加している企業> Oracle、Red Hat、SAP、ARM、Tencent、NTT Data、Amazon、IBM、 Intel、Alibaba、Loongson、Huawei、BellSoft、Ampere Computing、 Google、JetBrains、Azul、DataDog、Microsoft、他多数。
日本ではJavaがレガシーというイメージが強いですが、実は世界的に見れば全くレガシーではありません。
Javaの進化を見れば、世界のIT企業各社が何を目指しているかがわかります。このエコシステムの素晴らしさを、もっと多くの方々に知っていただけると嬉しいですね。

656:デフォルトの名無しさん
21/03/16 08:06:55.78 5ZkckJOg.net
JavaのダメなところってまさにJVM、エコシステム、コミュニティじゃないの
インターンのこに就職先を相談されたら、Javaをやらされるところは絶対やめろと言ってるわ

657:デフォルトの名無しさん
21/03/16 08:29:00.56 /qP4Y71T.net
旧世代言語の話になるといきなり饒舌になるなこいつら

658:デフォルトの名無しさん
21/03/16 08:49:56.34 MKzWqFI1.net
JVMに依存する言語は他にscalaやgroovy, kotolinか



659:javaが死亡したらこれらも死亡してしまうのか?



660:デフォルトの名無しさん
21/03/16 09:06:48.35 GTaecVmm.net
>>633
普通にtypingモジュール周りは整備されてきてるだろ。
クソみたいな反発ひけらかしてるんじゃねーよ。

661:デフォルトの名無しさん
21/03/16 10:08:43.09 t/pA05jQ.net
>>639
反発はしていない
誰も本気で書かない、という意見に同調しただけ

662:デフォルトの名無しさん
21/03/16 12:14:14.36 tUVUKdZi.net
YouTube で有名な、雑食系エンジニア・KENTA の動画がある
「Scalaが日本で衰退し始めている理由を説明します」
衰退し始めると食えないから、まともな香具師がいなくなる。
コミュニティーには、初心者にマウントを取ってくるような香具師が住み着くようになる
一方、今は、Ruby, Elixir などのコミュニティーが強い。
とても廃れるようには見えない

663:デフォルトの名無しさん
21/03/16 12:21:23.58 tUVUKdZi.net
みずほの統合プロジェクトは終わったけど、
ピラミッド建設並みの40万人月
4千億円 / 40万人月 = 1人月当たり百万円
この内、本人がもらえる額は、2〜3割ぐらいしかない。
7〜8割がどこかで抜かれる
大手がJavaを勧める理由は、グループ企業数社間で抜けるから。
末端は土方奴隷
だから、KENTA などが、抜かれない自社開発系を勧めるわけ
逆に、SES はJavaを勧める。自分達が抜けるから。
これがポジショントーク

664:デフォルトの名無しさん
21/03/16 12:23:30.42 K4E4Nbs9.net
推奨NGワード: YouTube
推奨NGワード: 有名
推奨NGワード: 雑食
推奨NGワード: KENTA
推奨NGワード: 香具師
推奨NGワード: コミュニティー
推奨NGワード: マウント
推奨NGワード: Ruby

665:デフォルトの名無しさん
21/03/16 12:26:07.75 K4E4Nbs9.net
推奨NGワード: みずほ
推奨NGワード: ピラミッド
推奨NGワード: 人月
推奨NGワード: 大手
推奨NGワード: 土方
推奨NGワード: 奴隷
推奨NGワード: 自社開発
推奨NGワード: SES
推奨NGワード: ポジショントーク

666:デフォルトの名無しさん
21/03/16 20:40:29.28 V+qRx+gd.net
目隠しでもすれば?

667:デフォルトの名無しさん
21/03/16 23:30:09.00 J1HBzpcA.net
kenta崇拝してるエンジニアはだいたい無能

668:デフォルトの名無しさん
21/03/17 20:40:27.48 hH82Uf3P.net
>>642
java以外の言語だったらその構図がなくなるとでも思ってんのか?おめでてーな

669:デフォルトの名無しさん
21/03/17 20:43:41.24 VqvtKHBn.net
これがレガシーじゃないJava最新版の実力だ
Oracle、「Java 16」を発表 〜パターンマッチングinstanceofとrecord型が正式機能に
URLリンク(forest.watch.impress.co.jp)

670:デフォルトの名無しさん
21/03/17 21:37:12.31 6p7FfRZM.net
もういっそGADTsと型クラスまたはトレイトを導入したらいいんじゃね

671:デフォルトの名無しさん
21/03/17 22:30:28.05 Fepqvkt7.net
えええ
スマートキャストすんなよきしょい
Javaなんだから代入しようず…

672:デフォルトの名無しさん
21/03/17 22:36:07.88 Fepqvkt7.net
URLリンク(openjdk.java.net)
if (b instanceof Point p) {
...
よかった代入してたけどなんかきしょい
代入先が右にくるからか

673:デフォルトの名無しさん
21/03/17 22:58:09.11 +I2IngIP.net
JavaのKotlinに最後まで抗う感すげえな

674:デフォルトの名無しさん
21/03/18 06:10:16.22 Z1aY9uWu.net
forも代入先が右ならよかった

675:デフォルトの名無しさん
21/03/19 02:24:03.10 KZRw2lg0.net
Juliaは1.7で実用的になったらしい

676:デフォルトの名無しさん
21/03/20 01:33:47.12 NBypSHDT.net
Pythonに代替する言語早く出てくれ
記述がシンプルで速いヤツ

677:デフォルトの名無しさん
21/03/20 09:27:09.06 SD207SQV.net
>>654
まだ1.5じゃね?

678:デフォルトの名無しさん
21/03/20 09:38:24.94 vUNrx7r3.net
よし見慣れた <


679:br> 早く使いたい



680:デフォルトの名無しさん
21/03/20 11:47:53.86 ARQDcx4T.net
>>655
go

681:デフォルトの名無しさん
21/03/20 13:16:39.14 KZGebSzt.net
linux kernelにrustディレクトリが出来たみたいだね
次世代言語として磐石な立ち位置を確立したね

682:デフォルトの名無しさん
21/03/20 13:40:40.93 Yqrg6wwp.net
どの部分を置き換えるんだろうな?

683:デフォルトの名無しさん
21/03/20 13:46:03.02 WZkKHDRu.net
Pythonブーム終われと思ってる

684:デフォルトの名無しさん
21/03/20 14:07:37.20 IyzEzHor.net
Ruby on Rails 6 の本を出している人の、入門書が出た。
Erlang/OTP 上で動く、Ruby風の関数型言語
Elixir実践ガイド、黒田努、2021/2/5
Ubuntu 20.04, Docker CE 19.03, Elixir 1.11
>>655
皆Python から、MIT製のJulia へ移行してる

685:デフォルトの名無しさん
21/03/20 14:08:30.45 RK0j7xAM.net
Pythonブームが終わるのはいいけど
その次のやつはテンプレートメタプログラミングをやるのかやらないのか
早く判断しないと話が始まらない

686:デフォルトの名無しさん
21/03/20 14:31:20.03 OmO/62/g.net
>>660
いまのところ書き換えは狙ってないって宣言されてるよ
新しいカーネルモジュールをRustで書けるようにするのが目標みたい
URLリンク(lwn.net)

687:デフォルトの名無しさん
21/03/20 14:33:14.82 Yqrg6wwp.net
>>664
そうなんだ
でもすごい事だな

688:デフォルトの名無しさん
21/03/20 19:00:58.65 1UkxzHtC.net
>>662
juliaなんて流行るわけねーだろあんなfortranくさい言語

689:デフォルトの名無しさん
21/03/20 19:07:26.91 pbI+9NdC.net
とりあえず言語の名前は固有名詞で唯一無二のネーミングを新たに創造してほしい

690:デフォルトの名無しさん
21/03/20 21:01:13.23 Yqrg6wwp.net
5文字ぐらいの単語をランダムに生成して辞書引きでヒットしなかったものを使うしかないけどそんなの流行るかな?

691:デフォルトの名無しさん
21/03/20 21:10:08.83 2mvexEfV.net
そんな極端なことしなくても、ちょっと綴りをもじるぐらいで良いじゃん。
BluRayみたいな。

692:デフォルトの名無しさん
21/03/20 21:17:55.54 yTMQr8HE.net
AV女優ばっか検索かかっちゃう言語名で良いのかね

693:デフォルトの名無しさん
21/03/20 21:53:24.28 Yqrg6wwp.net
xxx langで大抵ははじけるけどな

694:デフォルトの名無しさん
21/03/20 21:57:26.85 CnPV4MQo.net
外国人はきちんとlangつけてて国内の人はlangつけてないって傾向ある?

695:デフォルトの名無しさん
21/03/20 22:01:58.22 vUNrx7r3.net
JavaのやつC#でもうあったわ

696:デフォルトの名無しさん
21/03/21 11:30:16.19 LObm+gcQ.net
rustで検索するとネトゲしか出て来ない時期あったな

697:デフォルトの名無しさん
21/03/21 17:56:17.54 SWaIFGXw.net
とりあえず Go おまえの名前はだめだ
Go の何がだめといって名前がクソすぎる

698:デフォルトの名無しさん
21/03/22 00:46:24.50 TakJ5P2I.net
Goだと検索に引っかかりにくいという難点はあるな

699:デフォルトの名無しさん
21/03/22 10:30:05.11 34uAeWpb.net
外国人は一文字言語の頃からちゃんとlangと付けてたのかねえ

700:デフォルトの名無しさん
21/03/22 10:40:46.73 g8se3Ggw.net
clangがな

701:デフォルトの名無しさん
21/03/22 12:24:42.48 b6jSgIhJ.net
Cとかはインターネット自体がまだそんなに普及してなかったからな

702:デフォルトの名無しさん
21/03/22 17:29:55.95 mGS5nVo3.net
>>655
Nim

703:デフォルトの名無しさん
21/03/22 21:57:37.36 9lhdYRnl.net
つかググラビリティを気にするようになったのは2000年以降だろう

704:デフォルトの名無しさん
21/03/22 21:59:15.41 SRfXrm/K.net
その頃はまだヤフってたわ

705:デフォルトの名無しさん
21/03/22 23:37:25.80 cezDTGq+.net
千里眼使ってたわ。

706:デフォルトの名無しさん
21/03/23 21:05:10.36 ekfmkzWo.net
Microsoft Power Fx のご紹介
URLリンク(c)


707:ommunity.dynamics.com/365/b/dynamicsblog-ja-jp/posts/microsoft-power-fx



708:デフォルトの名無しさん
21/03/25 09:09:11.03 /Q1xsaOg.net
>>655
Julia

709:デフォルトの名無しさん
21/03/25 16:48:07.88 LuSagST9.net
プログラミング言語Crystal、初のメジャーリリースとなるバージョン1.0を公開

710:デフォルトの名無しさん
21/03/25 17:03:45.18 xF1J6Xyz.net
Rubyが好きな人のためのコンパイラか

711:デフォルトの名無しさん
21/03/25 18:30:54.53 18nzHvsr.net
最近は、Go, Rust よりも、Elixir が熱い
動的型付けの関数型で、型を書かないのが楽チン

712:デフォルトの名無しさん
21/03/25 20:04:29.48 KmpgWBAt.net
Erlang VMのお世話が大変だろ
なんでJava等と比べてGoがデプロイ楽と言われてるか
シングルバイナリで行けるからだろ
ScalaやClojureはJavaVM、ElixirはErlangVMから実行時まで逃れられない

713:デフォルトの名無しさん
21/03/25 20:17:34.37 QAr0K9ya.net
Goなんではやらんのか
例外ないとかきいてうえってなったけど
panicあったらいいじゃん

714:デフォルトの名無しさん
21/03/25 21:02:19.53 KZQE7Wft.net
普通に使われてるだろGO

715:デフォルトの名無しさん
21/03/25 21:22:28.63 s30NAs5i.net
golangは悪くは無いんだが、この分野ではgoだよねというシーンが無いというか

716:デフォルトの名無しさん
21/03/25 21:32:12.66 ItxHMUbH.net
>>689
ScalaやClojureはnative compileできるようになったからJVMなくても動くよ
Scalaは普段使いしないけどClojureはCLIのツール作るのに便利

717:デフォルトの名無しさん
21/03/25 22:20:19.07 CbMP1UQH.net
Goはなにが駄目といってまず名前が駄目
あとエラー処理が面倒すぎる!

718:デフォルトの名無しさん
21/03/25 22:27:03.79 QAr0K9ya.net
そうなのか

719:デフォルトの名無しさん
21/03/26 12:21:14.41 mmjZdfI1.net
Elixir も、パターンマッチの戻り値で判定するから、
例外機構を使わないのが普通
YouTube で有名な、雑食系エンジニア・KENTA いわく、
Go だけは、普及のキャズムを超えた
Rust, Elixirは超えられなかった
Elixirは、VSCode, Remote Container(Docker)で、
文字列処理などのツールでは楽

720:デフォルトの名無しさん
21/03/26 13:15:37.07 oXROwrcp.net
goはjavaのダメな点を修正したってだけな気もするが、だがそれがいい。

721:デフォルトの名無しさん
21/03/26 13:17:22.27 oKOCwUd9.net
こっとりーん

722:デフォルトの名無しさん
21/03/26 16:43:15.75 5JaI5I85.net
>>693
native compileされたバイナリの依存関係はどうなってるの?

723:デフォルトの名無しさん
21/03/26 21:27:15.39 VTO9jEEg.net
あとGoはマスコットがキモすぎる

724:デフォルトの名無しさん
21/03/26 21:32:54.53 S1KAvzhB.net
lispよりマシ

725:デフォルトの名無しさん
21/03/26 22:00:57.79 VCm8TcY+.net
どっちもかわいいのに…

726:デフォルトの名無しさん
21/03/26 23:26:17.82 f+NQDuNV.net
gopherはもうちょいデフォルメすればかわいい(たぶん)
LISPは諦めてもろて

727:
21/03/27 00:16:06.66 h1BsDCwR.net
>>701
Lisp にマスコットなんかあったっけ?

728:デフォルトの名無しさん
21/03/27 00:40:16.75 PG67SvNd.net
URLリンク(i.imgur.com)
Goのひっぱたきたくなるやつよりはかわいいかな

729:デフォルトの名無しさん
21/03/27 01:07:42.58 71XDemdj.net
Javaの☆のやつのがきもい

730:デフォルトの名無しさん
21/03/27 01:09:38.24 +DporzDl.net
>>705
ごーふぁー君はイラっとくるキモさだが
こいつはリアルに純粋にキモいなw

731:デフォルトの名無しさん
21/03/27 02:04:50.15 ViXMOfbR.net
しかも名前がLispエイリアンとかふざけてる

732:デフォルトの名無しさん
21/03/27 02:39:16.96 ZUW1x11T.net
舌足らず(lisp)なのかな

733:デフォルトの名無しさん
21/03/30 02:28:48.17 uKQPYHO8.net
>>614 よく分からないなら職場の先輩に聞いてください。あなたのくだらない煽りに答える所ではありません。 無視しても良かったのですが、あまりにも気持ち悪すぎるので書いておきます RustのRc、Arcと言っているのに、それにまったく気づかない文章読解能力の無さどうかと思います。 ARC (automatic reference counting) というのアルゴリズムです。 言うまでもなくRcは(reference-counting)です。単純な参照カウントを改良・自動化したのがARCです。 改良すべきは細かい話になりますが、1つ目が値の受け渡しによるコピーをなくすためのムーブ操作です。 理論上は、ムーブセマンティクスと呼ばれる、C++11/14からある所有権のムーブで、メモリーコピーを 防ぎます。これは「所有権」という言葉からRustを想像すると思いますが、まさしくそれでRustはムーブを 明示的にシンタックスで行いますが、VやNimbleなどはそれが自動化されます。strong/weak/unownedの キーワードが必要になりますが、確かSwiftもARCです。Vの場合はmutが必要です 2番目にスレッド間でのデータが共有されるため、ここも単純なRCと比べて改良されています。 他にもRCに比べて利点があります。多くの単純な例ではオーバーヘッドと見做されるようなカウント操作を 行わないようになります。これは明示的に所有権の移動を行うRustと同じです。Rustの利点はGCが不明な 箇所では行われない事です 簡単に表せば、最も単純な例では関数を抜けた後にメモリ解放を必要とする変数のデストラクタ呼び出しを コンパイラが自動的に挿入します。(ここでカウント操作はありません)ただ循環参照を処理する場合には 参照カウンターとは別にサイクルカウンターが必要となります。 Rustはunsafeを使わずとも「循環参照は、メモリをリークすることもある」と認めていますが、独自データ 構造で循環参照を作った場合、メモリーリークしないよう保証するのは実装者の自分自身が必要です。 JavaなどのGCがあるとされる言語は多くはこれを解決するために、マークアンドスウィープを使用して結果的に Stop the Worldが発生します。これを解決して抑えるためコンカレントGCを作りましたが、常にGCされるので に結果的にパフォーマンス低下します。



735:デフォルトの名無しさん
21/03/30 09:11:59.50 BHNwTu7Q.net
>>710
RustのArcはAtomically Reference Countedの略な

736:デフォルトの名無しさん
21/03/30 09:44:21.64 ZeIxFSpI.net
>>710
RcとArcの違いが全然分かってなさそうだけど大丈夫か?
カウント操作にアトミック命令使ってるかどうかだけなんだが。

737:デフォルトの名無しさん
21/03/30 15:01:48.57 3h4JBsbE.net
あまりにも気持ち悪すぎるwワロス
こいつらマウント取りたくて必死すぎだろwなんも反論になってないw
そんなにVが嫌いならダメな所あげたら良いのに

738:デフォルトの名無しさん
21/03/30 16:45:27.89 QeTs/eYE.net
ReScript良さそうだな

739:デフォルトの名無しさん
21/03/30 16:50:58.07 ZCSqiewq.net
見たくないものは見えないんだなあ

740:デフォルトの名無しさん
21/03/30 18:21:16.68 bKhExOEr.net
最新の言語ってデバッグのための値操作とかどうやるんですか
JavaやCだと変数値は変えられるのがデフォだから
一応元の処理は流したうえで値を書き換えてやるのが基本だった気がするけど
最近のってletでデフォconstじゃないですか

741:デフォルトの名無しさん
21/03/30 22:53:17.23 hcFmxLDn.net
デバッガからなら書き換えられるのも多いのでは?

742:デフォルトの名無しさん
21/03/30 23:09:39.66 hr


743:1twhx6.net



744:デフォルトの名無しさん
21/03/30 23:25:34.80 PerNg8Uc.net
純粋関数型言語で値の書き換えできるやつってあるのかな
HaskellとかElmで変数(とは言わないかもだが)表示しながらステップ実行とか式の評価の履歴みれるのは知ってるけど

745:デフォルトの名無しさん
21/03/30 23:31:06.76 p2ycBMb7.net
できない理由はないんじゃない?メモリ上に置かれないような最適化とかされない限り。

746:デフォルトの名無しさん
21/03/30 23:58:23.09 2Xqp7lc5.net
24日、最新版となる「Julia 1.6」をリリースしたと発表した。

747:デフォルトの名無しさん
21/03/31 00:29:37.70 asE4SEMA.net
ステップ実行やりたいがためにCのライブラリ呼び出しすんな派と
Cライブラリ呼び出しーや派
言語の流行はほぼこれで説明がつく

748:デフォルトの名無しさん
21/04/01 20:50:12.42 4OCi/swF.net
「AsyncAPI Initiative」がLinux Foundationに参画、イベントドリブンなAPIの記述標準化を目指す
URLリンク(www.publickey1.jp)

749:デフォルトの名無しさん
21/04/08 04:40:42.69 kgR5ZIDd.net
>>710はスルー力検定?

750:デフォルトの名無しさん
21/04/08 08:12:35.42 oHbd1x+/.net
Rust言語でAndroidはより強固・安全に 〜GoogleがOS開発への導入を進める
C/C++コードの完全な置き換えは非現実的だが、新規コードへの活用は不具合の予防に効果あり
URLリンク(forest.watch.impress.co.jp)

751:デフォルトの名無しさん
21/04/08 15:38:13.33 YWFqFncu.net
Rustほんと人気だね

752:デフォルトの名無しさん
21/04/08 15:43:04.97 CsfSuBCz.net
Javaのパクっておkの勝訴の影響はどうなるの

753:デフォルトの名無しさん
21/04/08 19:17:59.07 ByNsu0yr.net
フェアユース

754:デフォルトの名無しさん
21/04/08 21:12:55.75 KJ+7YtJl.net
googleがイニシアチブとってくるとかなり変わってくるな
ただfirefoxの遅れ取り戻すために作ったものが今後chromやedgeにも使われるとなるとどうなんだろ?

755:デフォルトの名無しさん
21/04/09 01:33:52.25 q4HnPycb.net
GoogleのJavaはそもそもドロイドのアプリ層でしか使ってないとオモウ
なのでOpenJDK標準になってたりKotlin押しになってるアプリ開発環境は変るかも

756:デフォルトの名無しさん
21/04/09 07:43:56.69 PY9i7lti.net
節子!それ盗作ちゃうで!インスパイアかフェアユースや!

757:デフォルトの名無しさん
21/04/09 11:54:55.40 1od6wqSM.net
フェアユースの定義はどう見ても自然科学の管轄外なので
どちらかといえばコミュ力に近い能力が役に立つ事案

758:デフォルトの名無しさん
21/04/09 20:44:39.89 ae3tE6Ku.net
やったもん勝ちでいいじゃんいいじゃん

759:デフォルトの名無しさん
21/04/10 09:37:11.94 WdqgOojm.net
中国人みたいなこと言いよる

760:デフォルトの名無しさん
21/04/10 09:56:08.18 xmdeuDkH.net
そういう判決だったからな

761:デフォルトの名無しさん
21/04/16 16:43:46.37 iRzpcHGc.net
Go言語はos.Open()の戻り値のエラーはスルーできないのに
File.Close()の戻り値のエラーは普通にスルーできるのが気持ちわるくてやめた
(だいぶ前の話だから今どうなってるかは知らない)
せめて
_ := f.Close()
にしないと警告出すくらいのチェックはほしい

762:デフォルトの名無しさん
21/04/16 17:20:31.43 U88khvJX.net
>>736
どういう事?
voidではない関数の戻り値もかならず代入文によって捨てるコーディングがしたいってこと?

763:デフォルトの名無しさん
21/04/16 18:28:46.84


764: ID:iRzpcHGc.net



765:デフォルトの名無しさん
21/04/16 20:10:02.72 U88khvJX.net
>>738
うーん、他の言語もタプルとかとして受け取るなら一部だけ受け取るなんてこと出来ないんだし、一般的な仕様だと思うけどな。

766:デフォルトの名無しさん
21/04/16 22:00:20.82 iRzpcHGc.net
>>739
その部分だけで考えれば普通なんだけど言語全体で考えるとバランスが悪い感じ
Openの方は
f, err := os.Open(..) // errを使わないとコンパイルエラー
f, _ := os.Open(..) // 敢えてエラーチェックはしない
の二択だけど、Closeの方は
err := f.Close() // errを使わないとコンパイルエラー
_ := f.Close() // 敢えてエラーチェックはしない
f.Close() // エラーチェックしないの?
の三択になって、例外を使わずに変数の使用を強制することでエラー処理を明示的にするっていう
Go言語のスタンスがぼやける気がする
(そのスタンス自体が私の思い違いかもしれないけど)
Closeだとエラー無視しても大したことないけど、Chdirあたりだと
エラーをスルーできて例外も飛ばないのは危険さを感じてしまう
C言語と同じだと言えばそれまでだけど、変数の不使用はコンパイルも通さないのに
戻り値の不使用は警告も出さないっていう仕様はアンバランスだと思った

767:デフォルトの名無しさん
21/04/16 22:43:53.10 U88khvJX.net
>>740
errを使わないとコンパイルエラー、は違うよ。
_ = err
と捨ててもコンパイルエラーは避けられる。
例外を使わず、は正しいけど、変数の使用は実質強制されてない。
そういう、errを捨てるような書き方は、Javaのthrows書きたくないからとExceptionで大雑把に例外を握りつぶしてるメソッドみたいなもんで、躾の問題だと思うよ。

768:デフォルトの名無しさん
21/04/16 23:39:26.78 h4psCBcA.net
>Javaのthrows書きたくないからと
極刑を望む

769:デフォルトの名無しさん
21/04/16 23:53:42.11 iRzpcHGc.net
「使う」の意味が曖昧だったかな
errを使うっていうのはエラーをチェックをするという意味じゃなく
コードの中でそのerrをどう扱うかを明示するって意味で書いた
(普通はエラー処理だけど)
>>741の例だと
_ = err
の中で「そのエラーはチェックしない」って意図を明示するためにerrを使ったことになる
_ := f.Close()

f.Close()
の違いは、下の書き方だと
・そこでエラーが返される可能性
・そのエラーを無視するという意図
の2つが伝わりにくくなること
もしかしたらコードを書いた本人もCloseがエラーを返す可能性を見落としてるかもしれなくて
そうなると想定しない状態でプログラムが動き続けて予期しない結果を招くかもしれない
もしコンパイラが戻り値を受け取らないパターンを弾いてくれればそういう見落としは防げるようになる
(そこで何も考えず戻り値を捨てる書き方をして予期しない結果になったならそれはもう躾の問題だけど)

Javaで例えるならExceptionで握りつぶすというよりcatch(Exception)して何もしない感じかな
自分は「飲み込む」と表現してる

770:デフォルトの名無しさん
21/04/17 02:30:54.76 6GAIvEwc.net
そんなに説明しなくても>>736だけで十分わかるよ
URLリンク(github.com)
URLリンク(github.com) <― Rob Pike

771:デフォルトの名無しさん
21/04/17 02:59:32.14 Cl8a1wE7.net
同じこと言った記憶あるなあと思ったら一昨年だった
スレリンク(tech板:927番)
927 デフォルトの名無しさん sage 2019/09/29(日) 19:19:16.64 ID:siw3JIyP
deferのためなんだろうけど、返り値全捨てでの握り潰しがコンパイルエラーにならないのは不満

772:デフォルトの名無しさん
21/04/17 09:13:21.49 GZ3nvsuU.net
>>743-744
これは俺が不勉強だった。Issueも立ってたのか。
この議


773:論は確かに有益だな。 issueで書かれてるように、deferで雑に閉じたいとかそういうケースが確かに漏れるか、ってぐらいだな。 うーん、なかなかバランス難しいもんだな。 とはいえRustみたいな気難しいコンパイラになられるのもなかなかだし。



774:デフォルトの名無しさん
21/04/17 09:39:43.53 WqZ6rzHC.net
>>742
それは形式的に判断できるものじゃなくて、大雑把かどうかはその内容によるわな。
握りつぶしていい例外は存在するしそれは握りつぶしていい。

775:デフォルトの名無しさん
21/04/17 11:00:28.48 tBKly9ku.net
throwsを書くのは関数や変数の型を書くことと同じ
それに対し「型を書かなくていい変数は存在する」と
言い返したのと同じだから痛快だね
全ての変数に型を書くのに今までどれだけ無駄な努力をしていたか

776:デフォルトの名無しさん
21/04/17 12:15:23.05 WqZ6rzHC.net
>>748
Javaの検査例外はたしかに例外を型安全に扱うための仕組だけど、throwsを書かないのは
いわばvoid型のようなもので、型推論や動的型付けで型を書かないのとは違う。

777:デフォルトの名無しさん
21/04/17 12:35:03.15 GZ3nvsuU.net
検査例外は「ただの大域jmp、しかも行き先が自分ではわからないやつ」っていう例外の悪い部分をうまく取り扱うための、そこそこいい仕組みだと思うんだけど、
いかんせん例外で対応することが多すぎた気がする。
このメソッドより外側には漏れ出しません、ってのは俺はいい宣言だと思うんだけどな。
今はかなり改善されてるんだろうけど、Javaにいい印象なくてなかなかJava系の言語やる気持ちになれないや…。

778:デフォルトの名無しさん
21/04/17 13:37:15.96 GMKTrofB.net
Javaの例外処理は独自の例外クラスを作って低層の例外を取り込んでいく設計を知らないと
throwsの中身が膨れ上がって大変なことになるね
throwsが面倒っていう人は独自の例外クラスを作るのが面倒なんだと思う
GoとかRustは返せるエラー型が原則1つに制限されるから必然的にそういう設計を迫られる

779:デフォルトの名無しさん
21/04/17 17:29:58.69 GZ3nvsuU.net
>>751
C#で言うInnerException的な?
まあ、業務ロジックでハンドリングするならアプリケーションで定義した例外に包むわな、確かに。

780:デフォルトの名無しさん
21/04/17 22:12:19.57 IisFsCzs.net
Javaの検査例外は直上でのハンドリングを強制したのが失敗
Goみたいに一種類だけならまだしも、全種類はさすがにノイズになりすぎた
コンパイル時にチェックしたいだけならthrowsは暗黙的にコンパイラが生成し、最終的にキャッチされないままの例外があったら警告出すくらいで十分だったんだよ
結局Javaはmulti catch導入して、型を緩める方向に舵を切っちゃった

781:デフォルトの名無しさん
21/04/17 22:53:24.71 /69X/cno.net
throwsを暗黙的に生成するのはそんなに簡単じゃない気がする

782:デフォルトの名無しさん
21/04/17 22:59:40.59 WqZ6rzHC.net
検査例外がというより、そこは例外に多彩な型を持たせること自体が失敗だったと言うべきだろうな。
例外というものは呼び出し階層の複数の階層を越えて上位層が下位層に依存してしまうんで
それをSOLID原則のに従うようきっちり依存性逆転させるのは骨が折れる。

783:デフォルトの名無しさん
21/04/17 23:31:17.79 dnL36O9R.net
例外の型って大抵デバッグ目的で持たせるエラー情報の種別に応じて作られるわけだけど、
それってプログラムでのエラーハンドリングの制御とは異なる関心事なんだよな
それをごっちゃにしてしまったのがJava系の例外の失敗だと思う
プログラムの制御にとっては、成功、リトライ可能な失敗、リトライ不可な失敗、くらいの分類があれば十分で、それ以上細かくしてもノイズになるだけ

784:デフォルトの名無しさん
21/04/18 00:47:22.61 z4d4288G.net
プロセスやスレッドを起動するならexi


785:tでいいのに シングルタスクでイベントループを終了しないで続けるためにthrowとcatchがある 上位層が下位層に依存するのはシングルタスクの欠点だが それは旧世代言語の欠点だというのがなぜか定説になってしまった



786:デフォルトの名無しさん
21/04/24 08:05:00.86 8O98k7om.net
> 例外というものは呼び出し階層の複数の階層を越えて上位層が下位層に依存してしまう
これどういうこと?
上位下位というのは継承関係?コンポジションの関係?
いずれにせよピンと来ないんだが


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

301日前に更新/229 KB
担当:undef