次世代言語15 Go Rust Bosque Kotlin TypeScript

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/04/19(金) 22:19:00.41ID:er92Du55
スレタイ以外の言語もok

前スレ
次世代言語15 Go Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1541331010/
2019/06/08(土) 21:56:54.48ID:Yv0NxNrw
コンテキストによって使えるAPI制限できる言語ってありますか?
割込みコンテキストとかイベントループでsleep禁止のような
2019/06/09(日) 03:00:13.29ID:rrOdeJnk
>>319
言語自体に?聞いたことない
というかコーディングルールで決めてLINTみたいなもので自動チェックさせるんじゃない?
2019/06/09(日) 03:38:53.80ID:+EirEPbP
あとはRoslynのAnalyzerはめっちゃ強力で自由度も高い
2019/06/09(日) 06:10:20.02ID:iH+avyP7
コンテキストってのを明示的にsleepに渡すのがセオリーだよな
つまりsleepの引数を一個増やす

ただしコンテキストの捏造はないものとする
その型のコンストラクタ使用禁止
同じ型の変数定義禁止またはその変数への代入禁止や所有権移動禁止
323デフォルトの名無しさん
垢版 |
2019/06/09(日) 06:22:10.99ID:QhNKpSst
センスがないな
324デフォルトの名無しさん
垢版 |
2019/06/09(日) 07:15:38.36ID:Hf+s2B1M
>>297
俺はGoが嫌いだからそれはできないな
2019/06/09(日) 07:46:59.42ID:iH+avyP7
例えば英語圏の外の人がいくら勉強しても英語のセンスがないとか
英語の本格的な発音を聞いただけで笑ってしまうとか
感性とかセンスとか言ってる場合じゃないだろ
2019/06/09(日) 08:24:12.13ID:OSjRKT39
>>104 Python 実装系の一つ PyPy は、静的型付けの有る RPython と言うPython のサブセットで書かれている。
RPython はC のソースコードなどを吐き出す。 しかもJIT で動く。
概ね、PyPy は、CPython (本家のPython) より4倍くらい早い。( JIT の効果 )

RPython で作られたRuby実装 で Topaz が有るが早いみたい。(実験的に作られただけ見たい)
同じくRPython でPHP実装 も作られてる。
2019/06/09(日) 08:41:41.42ID:UPAQxCOy
つまりCってことなんだよな
なら最初からCで書けって話になる
2019/06/09(日) 09:03:13.51ID:OSjRKT39
>>327 最初からCで書いた実装が、CPython なんだよ。

それよりなぜ早くなるかと言うと、VM 上でJIT が動くからだよ。
PyPy がインタプリタとして動くときは、C のコードを吐き出すんじゃなくて、バイトコードを吐き出し、そのバイトコードをVM 上でJIT が動かしている。

CPython もバイトコードインタプリタなんだけどJIT で動いていない。 その一部をJIT で動くようにしたのがNumba
2019/06/09(日) 09:24:23.09ID:/FZVYwra
>>319
そういう問題を技術で解決しようと思うのが間違ってる。
322の意見のようなクソシンタックスを無駄に増やすだけだから。
2019/06/09(日) 09:36:31.41ID:rOs+UB5j
つまり精神論で解決しろと。
2019/06/09(日) 10:04:24.28ID:/FZVYwra
>>330
こういう極論言うバカにコードを触らせるなということ。
2019/06/09(日) 10:09:55.36ID:/FZVYwra
冗談抜きにほとんどの事例において「バカにコードをいじらせない」が
ベストソリューションなケースはかなり多いのになんで採用されないのかね?
2019/06/09(日) 10:11:45.69ID:rOs+UB5j
>そういう問題を技術で解決しようと思うのが間違ってる。

こういう極論?
2019/06/09(日) 10:30:57.11ID:EP7mnTxk
今現在では極論じゃなくて正論だと思う
精神論じゃなくて技術や設計で解消ということではないかな

コーディング時にsleep自体禁止しても他のメソッド内でsleep使ってたりするのを避けたいのかもしれないけど
もし外部の言語で作ったDLLで使ってたりするとわからない
内部で動的にコード生成してたらすり抜ける(そもそもこれはアウト)

sleep単体だけならいいけどあれこれ禁止するならシグネチャーが複雑になる
結局あっても頼りきりにもできないけどめんどくさい制約にしかならないと思う
2019/06/09(日) 10:31:09.24ID:H/8fB0U/
だってジャップランド土人村にはその「バカ」が9割じゃん
2019/06/09(日) 10:38:00.85ID:EP7mnTxk
ユーザーからぼくの考えた最強issueがガンガン上がって来ていらない機能がどんどん追加されて
学習コストが高いだけの誰も使わないクソ言語
2019/06/09(日) 10:56:34.15ID:QhNKpSst
こういうののユーザーはなんもわかってないから
2019/06/09(日) 11:18:22.23ID:iH+avyP7
しかし、バカ予備軍こと質問者が現れた時点で早くなんとかしようと思わなかったのかね
それらしい答えが出てから慌てて文句言っても遅い
2019/06/09(日) 11:56:10.75ID:IfQgGLWG
一応JavaのSecurityManagerでできるけど
信頼できないリモートコード制限用の機能だから
普通のアプリじゃ使いにくい
2019/06/09(日) 14:03:25.15ID:YgD2+vFC
>>319
基盤実装とスクリプトに分けるとかは?
スクリプトに対してはいろいろ禁止できるかと
2019/06/09(日) 14:28:28.36ID:/L4eTa4o
>>340
どんな感じで禁止できますか?
静的にみつけられるでしょうか?
例を教えてもらえるとうれしいです。
2019/06/09(日) 14:36:28.82ID:YgD2+vFC
>>341
単純にスクリプトにsleep APIを公開しない、みたいなのを考えてた
2019/06/09(日) 14:43:11.20ID:/L4eTa4o
なるほど・・・
しかしスクリプト側で使用可能APIを一括で管理ってできるでしょうか?
例えば仮にPythonだとして標準のライブラリのimport禁止など可能なんでしょうか?
2019/06/09(日) 14:47:35.09ID:YgD2+vFC
luaはそこらへん簡単でredisとか標準ライブラリが割と無い
python組み込みは詳しくないけど可能そうなもんだけどな
2019/06/09(日) 14:50:20.90ID:/L4eTa4o
いずれにせよ、そういう言語ってなさそうですね。
仕事でリアルタイム系のシステム組んでいるのですが、sleepしない、blockしないとか、
他にもdead lockしないとか、定期的にこれらのルールをやぶるコードが紛れるので
なんとかならないかと思っています。
静的解析のツールで解決できたりするのでしょうか?
2019/06/09(日) 15:05:51.96ID:YgD2+vFC
並列性とか非同期性がそういう問題の根源なので、
直列実行しかできないスクリプトに切り出して、
基盤側を単純にしたらいいのではと思ってしまう
リアルタイム系の経験が無いからよくわからんけど
2019/06/09(日) 16:48:10.91ID:/FZVYwra
明らかにsleep呼んでる側がおかしいのにsleepの内部で何か対策考えるとか
それがバカだって言ってんだよ。
そういうのを解決しようと思えば最終的にグローバル変数から状況を読み込んで
「いい感じに処理する」みたいなクソなことがまかり通るようになる。

こんな当たり前のことを「精神論」とか言って遠ざけて
無駄な技術をゴテゴテ投入すれば解決すると思う方がよっぽど精神論だわ。
2019/06/09(日) 16:57:08.28ID:IfQgGLWG
リアルタイム系ならそもそも言語の選択肢が殆ど無いような
2019/06/09(日) 17:25:04.36ID:S7l1hTT6
外部ツールで特定の処理を呼んでないか調べる位しかできないだろ
2019/06/09(日) 18:38:09.36ID:/L4eTa4o
>>348
はい、普段C/C++なんですがもう卒業したい気分でいっぱいです・・・
実はRustはもしかしたらという気持ちで質問させてもらいました。(Rustの詳細知りません)
原理的には型システムで解決できる問題のような気がするんですけどね
2019/06/09(日) 20:20:15.46ID:H/8fB0U/
何がもしかしたらじゃボケ
そんな甘ったれた根性を次世代言語スレに持ち込むな
2019/06/10(月) 00:45:35.90ID:jEmCjZ4g
ひーイェッサー
お言葉ですがその調子だとMicroPythonに逃げられるっす
(リモコンそんなので作られた日には電池持ちがおそろしいことになりそう)
2019/06/10(月) 08:50:34.25ID:dPjM7CY8
>>352 もう少し他の人にわかるように話してくれないかな。 少し興味のある言葉が出てきたので。
micro:bit か何かをリモコンとして使おうとしてる?
2019/06/10(月) 09:17:26.23ID:1Q0pkxdy
わかりやすさの基本は嘘を書かないことだ
それ以外のことを改善しても誤差程度にしかならん
355デフォルトの名無しさん
垢版 |
2019/06/10(月) 11:57:54.61ID:7zXwptBd
micropythonでいいじゃん
2019/06/10(月) 13:36:54.01ID:6ZtZcGx6
>>321で出てるけどRoslynでできないんかな?
2019/06/10(月) 13:51:46.71ID:VMXLuCX0
>>356
なにが?
2019/06/10(月) 14:00:59.77ID:6ZtZcGx6
>>357
>>319への対処
2019/06/10(月) 14:59:12.58ID:VMXLuCX0
>>358
できるよ
2019/06/10(月) 15:03:28.43ID:2rhfeA0H
最近の話の流れは、 >>345 の続きかな?

>>345 RTOSは使ってるんでしょ?
MicroPython なんて持ち出してるってことは、RTOSを入れていない?
RasberryPi だと、RTOSとして RT Preempt なんて使ってるね。
RTOSを入れていればそれほど言語に厳しい制約をかけなくてもよさそうな気がするけど。 

このサイトを見ると似たようなサイズのアプリケーションに、RTOS(Zephyr)(ゼファーと読むのかな)をいれてMicroPython で動かしてるね。
https://open-degu.com/downloads/20190315_degu.pdf

Zephyr入門
https://qiita.com/ueba/items/c5fe99bedd8862854ebd

OSサイズは11KBとコンパクト
PyPi にもラッパーが登録されているのでPythonからも使える。 

日本だから、μT-Kernel(μITron)が普及するとよいと思うけど。
μT-Kernel 2.0がベースのIEEE 2050-2018がIEEE標準として正式に成立
https://www.tron.org/ja/2018/09/press0911/
2019/06/11(火) 20:49:00.58ID:GAHoXfWa
await asyncが使えればsleepでスレッドをブロックしないのに
2019/06/11(火) 22:45:27.77ID:KDSvfPuN
割り込みハンドラの話だろうからawaitの仕組み(イベントループ+コールバック)でどうにかなるものじゃないと思うよ
2019/06/11(火) 23:02:57.60ID:GDgSrcmQ
>>360
Pythonの話にはのりましたが、実際にはスクリプトでそのあたりの処理書くのは採用できないです
GC走る言語はsleepされるのといっしょですからね
Roslynってのは知りませんでしたが.NET限定の技術なんですかね?
2019/06/11(火) 23:10:03.46ID:fTJbh9kM
>>363
RoslynはC#/VB.NETのコンパイラー
DiagnosticsやRefactoringのAPIも提供してて、簡単にAnalyzerを書ける
2019/06/12(水) 05:13:51.19ID:fMVFjy++
既に上がっている次世代言語のスコープではなく
そのような要望を満たすものがない
2019/06/12(水) 08:05:40.60ID:17Y43fFw
>>365
どのような要望?
2019/06/12(水) 08:13:15.38ID:0MIcRAAH
新しい言語を一通り触ってjavaScriptかC言語に戻ってくる
C/C++とか書く奴いるけどC++も大概クソだからな
結局Cでできるように書き直したほうが簡潔になるっていう
2019/06/12(水) 08:24:04.66ID:PbqdNRjx
生産性低いおっさんは要らないから
2019/06/12(水) 08:55:30.78ID:A9JlUf6z
Cに戻ると言いながらJSと二刀流してるだろ
二刀流が正統派にでもなったら革新的じゃないか
2019/06/12(水) 08:56:29.46ID:k5XrsZPH
>>363 自分でgc をenable disable にしてコントロールしたり、gc を自分で呼んで(collect) 明示的にgc を起こさせるのいうような方法でリアルタイム性は確保できるんじゃないの?
MicroPythonですらそれらの方法が利用できる。

沢山のIoT デバイスで使われてるだろうから、GC が勝手に動く心配をする必要はないように思うけど?

例えばRTOS Zephyr では、main thread とidle thread で区別してる。
2019/06/12(水) 09:43:44.27ID:jw1ViI3v
リーナスと同じこと言ってる俺かっこいい的な
2019/06/12(水) 11:05:36.47ID:A9JlUf6z
俺かっこいいはポジティブ思考
リーナスはネガティブ思考のくせに建設的だぞ
2019/06/12(水) 11:06:33.06ID:WfNq1KdO
>>371 Linus Torvalds か、面白いやっちゃな
https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%BC%E3%83%8A%E3%82%B9%E3%83%BB%E3%83%88%E3%83%BC%E3%83%90%E3%83%AB%E3%82%BA

記録からみるLinus TorvalsのC++観
https://cpplover.blogspot.com/2013/05/linus-torvalsc.html
メモリー確保のようなものを隠したがるコンパイラーや言語は、カーネル用にふさわしい選択ではない。
374デフォルトの名無しさん
垢版 |
2019/06/12(水) 14:34:52.90ID:JnPGfPd9
>>367
C言語にデストラクタ的な機能が入ればすごく嬉しい。
2019/06/12(水) 15:44:31.00ID:nkjsUKao
>>373
リーナスは人間的にはだいぶクソな奴らしいが
技術的な意見についてはさすがにおかしなことはいってない
カーネルレイヤーにC++が相応わしいかというとたしかに微妙だ
だが、アプリレイヤでC++でなくCのほうが良いというのはただの勉強不足
376デフォルトの名無しさん
垢版 |
2019/06/12(水) 16:05:20.23ID:x67noP4p
「神がいないと言うのは勉強不足。もっと勉強しろ。そうしたら分かる」
2019/06/12(水) 17:09:53.27ID:A9JlUf6z
足りないのは勉強でも努力でもない

勉強でも努力でもない何かが存在することくらいはすぐ分かりそうなものだが
必死に勉強したらしいのに分かってない奴がそこにいるのが証拠だ
2019/06/12(水) 17:32:01.72ID:cGak2oax
Linus と Unix を掛け合わせて、Linux にしたんだな。
良いネーミングになったけど。

昔々、安価に使える記憶媒体が5’ のフロッピーディスクしかなかった頃、初めて取り寄せたUnix は、512KB のフロッピーディスク12枚に入って送られてきた。
6MB だよね。
その頃からCがもてはやされ始めた。 C もUnix も基本はシンプル。
2019/06/12(水) 20:41:19.44ID:eCiQ25Tx
>>374
それだったらgoのdefer文入れた方がいいわ。
デストラクタはcには馴染まん。
2019/06/12(水) 20:44:28.68ID:eCiQ25Tx
>>375
gitもcだが?
2019/06/12(水) 21:06:53.07ID:7TWmWXJk
リーナスの持論からいくと、メモリ管理を手のひらでコロコロできるレベルの低レイヤーが触れない言語は等しくファックなんだよ
つまり次世代言語は
382デフォルトの名無しさん
垢版 |
2019/06/12(水) 22:03:42.09ID:HtzxRgq7
まあメモリ管理を隠蔽しようとするからおかしなことになってる感はあるよな
2019/06/12(水) 22:08:38.70ID:owyEx2iy
人類の95割はメモリ管理なんてできんだろ
GCのコストをペイできるほど高速でファックな処理なんて人類の95割には必要ない
2019/06/12(水) 22:10:10.69ID:eCiQ25Tx
>>381
linusが主張してるのはOSみたいな低レイヤーいじる時だけの話だぞ。
c++みたいにどっちもいけるわー言ってどっちもクソな物を嫌っとるだけ。
2019/06/12(水) 23:20:39.48ID:fFCW9Zwk
gitは低レイヤーじゃなくね
上のリンクにもあるけどlinusは前提条件無しでC++嫌ってる
386デフォルトの名無しさん
垢版 |
2019/06/13(木) 00:32:28.05ID:qgmlIWHM
まぁ昔のc++に酷い目にあったら、そりゃ嫌になるよ。
2019/06/13(木) 00:39:28.30ID:scxOg7Fk
最近のC++はメモリアライメント指定が標準になったりゴミだったアロケータ周りがだいぶ改善されてるから組み込みとかにも使いやすくなってるんじゃないの
2019/06/13(木) 01:47:04.28ID:SaZXT9dZ
>>383 1桁桁を間違えてるぞ。 よくプログラムが書けるな。
2019/06/13(木) 02:36:25.85ID:N64uvTiV
レイヤーっていうかカーネルとGUIを分離しないのはSmalltalkとかObjCとかの伝統か?
2019/06/13(木) 07:40:23.90ID:L4EbGlGi
>>388
2019/06/13(木) 15:41:02.12ID:sUvB9/Hq
LinusのC++嫌いには↓みたいなこともあるんじゃない?
C with classesだったのに
よってたかっていじくりまわしてあんなわけわかんない仕様になった
2019/06/13(木) 17:17:28.07ID:Tx6T4XdA
議論をする理由は、嫌っているからではなく、言いたいことがあるからじゃないか
嫌ならC++使わなければいいだけ
だが、言いたいことがあるなら言うに決まってる
393デフォルトの名無しさん
垢版 |
2019/06/13(木) 20:22:59.74ID:3Y+kP9Xa
らいなすは使ってないからc++嫌いでしょ
2019/06/13(木) 20:28:55.21ID:fmTPRROb
使わなければいいはその通りだが
あいつらは人に使わせようと押し付けてくる圧が半端ない
2019/06/13(木) 20:37:58.96ID:NT1P6o5G
LinuxをC++で書き直せっていう意味不明な圧力をかけてくる馬鹿が数万人から数百万人規模でいて
そいつらに会うたびにC++、C++って言われるんだろ

誰だって切れるだろ
2019/06/13(木) 21:28:37.75ID:Br82W2pC
最近は穏やかになったらしいぞリーナス
2019/06/13(木) 21:36:46.00ID:prWfaseT
怒るのは人を動かす最適な手段ではないということを学んだだけで
別に中身は変わってないだろう多分
2019/06/13(木) 21:53:10.05ID:4mCpTyWI
リーナスが言語つくればいいのに
2019/06/13(木) 22:02:30.89ID:fmTPRROb
言語とか多分一番興味ないと思うぞ
2019/06/13(木) 23:21:38.09ID:Tx6T4XdA
OSの仕様も自分で作ったんじゃないだろ
コピーレフト実装
述べて作らず
2019/06/14(金) 02:07:33.43ID:xBXyqLPT
言語関係での近年の快挙は、LLVM の成功だろうな。
402デフォルトの名無しさん
垢版 |
2019/06/14(金) 05:46:06.33ID:M8ulC+VI
百理ある
2019/06/14(金) 07:49:25.33ID:GCMXjCT5
逆にGraal/Truffleは厳しそうよね
404デフォルトの名無しさん
垢版 |
2019/06/14(金) 15:58:39.91ID:KT+BNezz
だってoracle。。。
2019/06/14(金) 16:23:41.29ID:nhZxODXt
>>403
最近どうなん?
406デフォルトの名無しさん
垢版 |
2019/06/18(火) 06:15:40.52ID:3nOE2mBA
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
2019/06/20(木) 23:38:07.49ID:RFLFzSqA
vlangバイナリ公開延期だってよ
だめだこりゃ
2019/06/20(木) 23:48:24.58ID:lDaMx0Vn
元からネタだろ
409デフォルトの名無しさん
垢版 |
2019/06/20(木) 23:59:27.68ID:o9q+BZLg
rustで書かれたfacebookのlibraのmove言語やろうぜ!
2019/06/21(金) 00:30:06.78ID:0JVOBbqs
言語を変えればソフトウェア生産性が上がるとか嘘だから。
2019/06/21(金) 00:34:28.05ID:z8DQFGzJ
新言語についていけない使えないおっさんを切り捨てる理由にできるので結果として生産性は上がるぞ
2019/06/21(金) 03:34:45.89ID:N5cCa2Fg
C++でOSを作ったか作らなかったかの1bitは現実
現実が1bitなわけがないという直感や、生産性がなめらかに増減するイメージは嘘だった
413デフォルトの名無しさん
垢版 |
2019/06/21(金) 03:43:03.16ID:GHyPzIJc
C2x まだ出ないの?
deferとかscope的なの入れてくれよ
2019/06/21(金) 07:59:10.78ID:8QFr95z+
旧来の言語にdeferを入れるメリットって何?
c++やc#でも要望あるけど
本当に必要?
例外使うのとdefer使うのは違うけど一番大事なのは意識では?
どちらかをしっかり使おうと言う意識があればそれなりに仕上がると思う
2019/06/21(金) 10:37:17.43ID:N5cCa2Fg
子プロセスとexitとatexitを使わないこと
イベントループでsleepやスレッドやプロセスを使わないこと
イベントループのデメリットを挽回すること
2019/06/21(金) 20:19:24.08ID:0JVOBbqs
>>411
ついていけないのはおっさんよりも若者だったりするわけだが。
で、そんなバカなことをやってる中でgoが幅を利かせ始めたというのが全てを物語ってる。
2019/06/22(土) 01:32:25.74ID:HNN5wiOS
PerlでできることはPythonでもできる感がある
PythonはPerlについていった
一方JSやGoはそもそもついていく気がないな
418デフォルトの名無しさん
垢版 |
2019/06/22(土) 02:34:05.57ID:e0kWbxTa
PythonはPerlについていったの意味が分からん。
風が吹いたからやったみたいだ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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