Mozillaがリリースした、プログラミング言語「Rust」について語るスレです。
http://www.rust-lang.org/
https://github.com/rust-lang/rust
Servo
https://servo.org/
https://github.com/servo/servo
◆前スレ
プログラミング言語 Rust 2
http://echo.2ch.net/test/read.cgi/tech/1478023960
探検
プログラミング言語 Rust 3 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/05/21(日) 14:04:29.55ID:9L9dm7b/622デフォルトの名無しさん
2017/08/20(日) 16:16:49.80ID:T53roUwE623デフォルトの名無しさん
2017/08/20(日) 21:48:27.38ID:tw1yQ9/1 いくつか↓のコードについて質問させてください。
https://play.rust-lang.org/?gist=b2fe59eb7aee706b6acb67bb9709967f&version=stable
1. PartialEqが実装されていないというエラーが出てしまうのですがどう対応したら良いのでしょうか?
試しに
#[derive(PartialEq)]
pub trait Serialize {
としたところerror: `derive` may only be applied to structs, enums and unionsというエラーが出てしまいました。traitにPartialEqを持たせることはできないのでしょうか?
2. error[E0277]: the trait bound `std::vec::Vec<&Serialize>: std::iter::FromIterator<Value<'_>>` is not satisfiedというエラーですが、これはどのようなコードにすれば良いのでしょうか?解決方法が全く思い浮かびませんでした。
ちなみに、enumでArray(Vec<Value>)ではなくArray(Vec<&'a Serialize>)となっている理由は外から型?を追加したいためです。
よろしくお願い致します。
https://play.rust-lang.org/?gist=b2fe59eb7aee706b6acb67bb9709967f&version=stable
1. PartialEqが実装されていないというエラーが出てしまうのですがどう対応したら良いのでしょうか?
試しに
#[derive(PartialEq)]
pub trait Serialize {
としたところerror: `derive` may only be applied to structs, enums and unionsというエラーが出てしまいました。traitにPartialEqを持たせることはできないのでしょうか?
2. error[E0277]: the trait bound `std::vec::Vec<&Serialize>: std::iter::FromIterator<Value<'_>>` is not satisfiedというエラーですが、これはどのようなコードにすれば良いのでしょうか?解決方法が全く思い浮かびませんでした。
ちなみに、enumでArray(Vec<Value>)ではなくArray(Vec<&'a Serialize>)となっている理由は外から型?を追加したいためです。
よろしくお願い致します。
624623
2017/08/20(日) 22:15:56.31ID:tw1yQ9/1 すみません、少し修正したものをアップしました。よろしくお願い致します。
https://play.rust-lang.org/?gist=e29af50f281802f700c0bdf8d676da54&version=stable
https://play.rust-lang.org/?gist=e29af50f281802f700c0bdf8d676da54&version=stable
625デフォルトの名無しさん
2017/08/20(日) 22:56:17.35ID:JGkv/tSR トレイトと型、ライフタイムパラメータと型パラメータの区別が付いてないような、
pub enum Value<'a> {
Nil,
Array(Vec<&'a Serialize>),
}
これとか、書くなら
pub enum Value<'a, T> where T: 'a + Serialize, {
Nil,
Array(Vec<&'a T>),
}
こうでは?
> impl<'a> Serialize for Value<'a>
...
pub enum Value<'a> {
Nil,
Array(Vec<&'a Serialize>),
}
これとか、書くなら
pub enum Value<'a, T> where T: 'a + Serialize, {
Nil,
Array(Vec<&'a T>),
}
こうでは?
> impl<'a> Serialize for Value<'a>
...
626デフォルトの名無しさん
2017/08/20(日) 23:13:22.65ID:T53roUwE 一応impl<'a> PartialEq for &'a Serializeはできる
クソの役にも立たないからやるべきでないが
クソの役にも立たないからやるべきでないが
627623
2017/08/21(月) 01:00:32.98ID:FwjdF0gP >>625
ありがとうございます!
頂いたpub enum Value<'a, T> where T: 'a + Serialize, {を入れてみたところ以下のようなエラーになりました
error[E0243]: wrong number of type arguments: expected 1, found 0
--> src/value/serialize.rs:10:24
|
10 | impl<'a> Serialize for Value<'a> {
| ^^^^^^^^^ expected 1 type argument
この場合Serializeを実装した型を追加で指定しないといけないと思うのですが、例えば
struct UUID {
uuid: u128,
}
impl Serialize for UUID {
}
こんな感じの型をライブラリ使用者が外部から追加しようとした場合、教えていただいた書き方だとどのように指定すれば実現できるのでしょうか?
あと最後の…(省略されてる?)が気になります…
>>626
そんな書き方もできるんですね!参考になります!
ありがとうございます!
頂いたpub enum Value<'a, T> where T: 'a + Serialize, {を入れてみたところ以下のようなエラーになりました
error[E0243]: wrong number of type arguments: expected 1, found 0
--> src/value/serialize.rs:10:24
|
10 | impl<'a> Serialize for Value<'a> {
| ^^^^^^^^^ expected 1 type argument
この場合Serializeを実装した型を追加で指定しないといけないと思うのですが、例えば
struct UUID {
uuid: u128,
}
impl Serialize for UUID {
}
こんな感じの型をライブラリ使用者が外部から追加しようとした場合、教えていただいた書き方だとどのように指定すれば実現できるのでしょうか?
あと最後の…(省略されてる?)が気になります…
>>626
そんな書き方もできるんですね!参考になります!
628デフォルトの名無しさん
2017/08/21(月) 01:35:15.12ID:bqQguu/k >error[E0243]: wrong number of type arguments: expected 1, found 0
この場合、impl<'a, T> Serialize for Value<'a, T>としなければならない。というかエラーメッセージが言っていることそのもの
ところで、Value::Arrayには複数種類の型の値を入れることを想定している?
だとしたら>>625のような型パラメータによる手法は適さないと思う
実現したい事が分からないから具体的な提案はできないけれど、とりあえずArrayのなかに&SerializeやT: Serializeを持たせる以外の方針が必要だと思う
例えば、serde_json::ValueだとArrayの中にT: Serializeでなく、Valueを入れ子に持っている
この場合、impl<'a, T> Serialize for Value<'a, T>としなければならない。というかエラーメッセージが言っていることそのもの
ところで、Value::Arrayには複数種類の型の値を入れることを想定している?
だとしたら>>625のような型パラメータによる手法は適さないと思う
実現したい事が分からないから具体的な提案はできないけれど、とりあえずArrayのなかに&SerializeやT: Serializeを持たせる以外の方針が必要だと思う
例えば、serde_json::ValueだとArrayの中にT: Serializeでなく、Valueを入れ子に持っている
629623
2017/08/21(月) 02:32:19.49ID:FwjdF0gP >>628
> ところで、Value::Arrayには複数種類の型の値を入れることを想定している?
はい、いろんな型を入れたいです。
今現在↓みたいになっていて(コンパイルできない)改行が多くて書き込みできなかったので改行を減らしてあります。
pub enum Value<'a> {
Nil, Bool(bool), Int8(i8), Int16(i16), Int32(i32), Int64(i64), UInt8(u8), UInt16(u16), UInt32(u32), UInt64(u64),
Float32(f32), Float64(f64), Binary(Vec<u8>), String(String), Array(Vec<&'a Serialize>), Map(HashMap<String, &'a Serialize>),
}
これをライブラリとして公開して、そのライブラリの使用者が
struct UUID {
uuid: u128,
}
impl Serialize for UUID {
fn serialize(&self) -> Vec<u8> {
unimplemented!()
}
}
こんな感じにSerializeをUUIDに実装すればArray(Vec<&'a Serialize>)の中に入れられるのではないかと思い実装しました(だめだったのですが…)
serde_jsonも参考にしたのですがArrayの中にValueを入れてしまうとライブラリの使用者が型を追加できないのではと思って上の感じにしました。
何かいい方法はないのでしょうか?
> ところで、Value::Arrayには複数種類の型の値を入れることを想定している?
はい、いろんな型を入れたいです。
今現在↓みたいになっていて(コンパイルできない)改行が多くて書き込みできなかったので改行を減らしてあります。
pub enum Value<'a> {
Nil, Bool(bool), Int8(i8), Int16(i16), Int32(i32), Int64(i64), UInt8(u8), UInt16(u16), UInt32(u32), UInt64(u64),
Float32(f32), Float64(f64), Binary(Vec<u8>), String(String), Array(Vec<&'a Serialize>), Map(HashMap<String, &'a Serialize>),
}
これをライブラリとして公開して、そのライブラリの使用者が
struct UUID {
uuid: u128,
}
impl Serialize for UUID {
fn serialize(&self) -> Vec<u8> {
unimplemented!()
}
}
こんな感じにSerializeをUUIDに実装すればArray(Vec<&'a Serialize>)の中に入れられるのではないかと思い実装しました(だめだったのですが…)
serde_jsonも参考にしたのですがArrayの中にValueを入れてしまうとライブラリの使用者が型を追加できないのではと思って上の感じにしました。
何かいい方法はないのでしょうか?
630623
2017/08/21(月) 02:40:57.36ID:FwjdF0gP https://github.com/3Hren/msgpack-rust/blob/master/rmpv/src/lib.rs#L416
このライブラリだとValueの中にExtを作ってその中にシリアライズ済みのデータを入れてるみたいですね。
確かにこれならいけそうですが、Valueの中にシリアライズ済みのデータを入れるのがなんだかスッキリしないです…
これ以外には方法はないのでしょうか?
このライブラリだとValueの中にExtを作ってその中にシリアライズ済みのデータを入れてるみたいですね。
確かにこれならいけそうですが、Valueの中にシリアライズ済みのデータを入れるのがなんだかスッキリしないです…
これ以外には方法はないのでしょうか?
631デフォルトの名無しさん
2017/08/21(月) 05:08:14.26ID:G0wb4QJd (ageるなウザい)
633デフォルトの名無しさん
2017/08/21(月) 16:25:46.95ID:oGU2m9lq rustの使用者は型をガチガチに固めて型安全であることを至上としてる風があるから
利用者が自由に型を追加できることの方にスッキリしない印象を持つのではなかろうか
例えば、hyperのHTTP Headerとかね
それでも尚そうしたいのであればrmpvなやり方は正しいんじゃないのかね
利用者が自由に型を追加できることの方にスッキリしない印象を持つのではなかろうか
例えば、hyperのHTTP Headerとかね
それでも尚そうしたいのであればrmpvなやり方は正しいんじゃないのかね
635デフォルトの名無しさん
2017/08/21(月) 21:48:43.99ID:rYDUfKH7 ライブラリを作る側はゆるゆるにする、使う側はギチギチにする、だったかな
636デフォルトの名無しさん
2017/08/22(火) 02:48:14.20ID:womi0ii/ 何の言語における誰の格言だい?
Rustライブラリの話じゃないよな, Rustはno_std + unsafeでもしないと作る時すらギチギチだものな
Rustライブラリの話じゃないよな, Rustはno_std + unsafeでもしないと作る時すらギチギチだものな
637デフォルトの名無しさん
2017/08/22(火) 09:17:41.34ID:C9KUE8jE638デフォルトの名無しさん
2017/08/22(火) 09:30:00.19ID:DDLonIhk >>637
Specialize可能な実装を表す修飾語
https://github.com/rust-lang/rfcs/blob/master/text/1210-impl-specialization.md
Specialize可能な実装を表す修飾語
https://github.com/rust-lang/rfcs/blob/master/text/1210-impl-specialization.md
639デフォルトの名無しさん
2017/08/22(火) 09:35:30.79ID:deDFrfsy rustconfのまとめ誰かたのむ
640デフォルトの名無しさん
2017/08/22(火) 09:41:20.78ID:C9KUE8jE641デフォルトの名無しさん
2017/08/22(火) 23:09:44.08ID:SJLsCwn3 impl-specializationってfor T以外に具象型でも出来たのか。パラメタ型が現れればいいのか。
>>640
まだRFC #1331が出来てないから正式な文法は存在しない。
自分が使ってるrustcのソース読む以外に文法知る術はないよ。
>>640
まだRFC #1331が出来てないから正式な文法は存在しない。
自分が使ってるrustcのソース読む以外に文法知る術はないよ。
642デフォルトの名無しさん
2017/08/23(水) 02:50:24.84ID:4QoHymGs チルダ記号~、owned pointer が廃止されてから余ってるけど、何かに使わないのかね
643デフォルトの名無しさん
2017/08/23(水) 07:25:27.68ID:B+nj/ke1 オフラインで開発するときにどうすべきかを書いたドキュメントってないの?
インストール方法とかライブラリの取得・展開方法とか
インストール方法とかライブラリの取得・展開方法とか
644デフォルトの名無しさん
2017/08/23(水) 07:54:23.48ID:4QoHymGs https://www.rust-lang.org/ja-JP/other-installers.html にインストーラーあるだろ。
あるいはレポジトリからソース落として ./configure; make; sudo make install で終わらんか?
依存ライブラリは、Cargo.toml で
[dependencies]
foo = { git = "https://github.com/hoge/foo.git" }
の代わりに、https://github.com/hoge/foo をクローンして来て、
[dependencies.foo]
path = "../foo"
こんな感じでパスを与えれば良い。
あるいはレポジトリからソース落として ./configure; make; sudo make install で終わらんか?
依存ライブラリは、Cargo.toml で
[dependencies]
foo = { git = "https://github.com/hoge/foo.git" }
の代わりに、https://github.com/hoge/foo をクローンして来て、
[dependencies.foo]
path = "../foo"
こんな感じでパスを与えれば良い。
645デフォルトの名無しさん
2017/08/23(水) 09:46:49.23ID:OBNmODWh 最近のpythonではpipでコンパイル済みのバイナリをダウンロードしてインストールしてくれるけど
rustの世界でもこうなりませんかね
rustの世界でもこうなりませんかね
646デフォルトの名無しさん
2017/08/23(水) 12:24:06.11ID:18+Jkbm8 前も同じ質問してたな
rpmやbrew, windows storeにバイナリをアップすればいいんじゃないの
ユーザ向けのバイナリ配布環境なんてrustやcargoが整備するモノじゃないでしょ
どうせrustやcargoを扱うのは開発者で
開発者はバイナリよりソースの方が色んな面で助かる
rpmやbrew, windows storeにバイナリをアップすればいいんじゃないの
ユーザ向けのバイナリ配布環境なんてrustやcargoが整備するモノじゃないでしょ
どうせrustやcargoを扱うのは開発者で
開発者はバイナリよりソースの方が色んな面で助かる
647デフォルトの名無しさん
2017/08/23(水) 13:30:39.91ID:H3GKgLxU cargoにオフラインモードってないの?
648デフォルトの名無しさん
2017/08/23(水) 23:29:11.08ID:iIVYU9Hy >>643,647
めんどくせぇ話ししてんな。
alexcrichtonが頑なに拒み続けてるからオフラインでcargoは*まとも*につかえね。
依存crateが全部ローカルにあれば問題ないけど、そもそも外部crateがcargoに
依存してるせいで結局、ネットワークにアクセスする。それにapache archivaみたいなのが
rustにはないからローカルで管理もできんし、cargo-vendorもcargo-local-registryも開発止まってる。
現状、依存グラフの全てを事前にローカルにダウンロードするツールがない。
cargo側のindexもcargo.lock更新する必要もないのに
ネットワークアクセスしてオフラインでクラッシュする問題は
そろそろ落ち着いてきたけど、rustcの依存関係調べるあたりが
腐ってるからそっちも影響してくる。これの問題は今、
インクリメンタルコンパイル実装の障害になってるからどうにかしてる最中。
海外は日本と違って無線LAN環境普及してるからか、
ちょっとオフラインになっただけでテストすら走らせられなくなったりでissue飛びまくってんだけどね。
結局replaceも糞でpatchに置き換わるし。
めんどくせぇ話ししてんな。
alexcrichtonが頑なに拒み続けてるからオフラインでcargoは*まとも*につかえね。
依存crateが全部ローカルにあれば問題ないけど、そもそも外部crateがcargoに
依存してるせいで結局、ネットワークにアクセスする。それにapache archivaみたいなのが
rustにはないからローカルで管理もできんし、cargo-vendorもcargo-local-registryも開発止まってる。
現状、依存グラフの全てを事前にローカルにダウンロードするツールがない。
cargo側のindexもcargo.lock更新する必要もないのに
ネットワークアクセスしてオフラインでクラッシュする問題は
そろそろ落ち着いてきたけど、rustcの依存関係調べるあたりが
腐ってるからそっちも影響してくる。これの問題は今、
インクリメンタルコンパイル実装の障害になってるからどうにかしてる最中。
海外は日本と違って無線LAN環境普及してるからか、
ちょっとオフラインになっただけでテストすら走らせられなくなったりでissue飛びまくってんだけどね。
結局replaceも糞でpatchに置き換わるし。
649デフォルトの名無しさん
2017/08/24(木) 00:17:41.78ID:l7HQ+RMc 自宅ならともかくモバイルで開発しようとするとオンライン必須は迷惑
rustc直打ちなら問題ないけど非標準のCrateをどうするんだという話に
rustc直打ちなら問題ないけど非標準のCrateをどうするんだという話に
650デフォルトの名無しさん
2017/08/24(木) 00:28:13.68ID:31vrvgnR Frequently Asked Questions
http://doc.crates.io/faq.html#how-can-cargo-work-offline
> How can Cargo work offline?
> ...(中略)
> As of Rust 1.11.0 Cargo understands a new flag, --frozen, which is an assertion that it shouldn't touch the network.
http://doc.crates.io/faq.html#how-can-cargo-work-offline
> How can Cargo work offline?
> ...(中略)
> As of Rust 1.11.0 Cargo understands a new flag, --frozen, which is an assertion that it shouldn't touch the network.
651デフォルトの名無しさん
2017/08/24(木) 02:10:25.35ID:2y1G8HO4 モバイルもさることながらオフライン限定サーバとかあるしなあ
652デフォルトの名無しさん
2017/08/24(木) 09:10:11.03ID:7OYe0+S4 よく分からんけど、週末カフェでテザリングしながら開発する分には全く困ったことないけどな
海外っつーか米国は半端に無線LANが整備されまくってるから大変そうだなぁとは思う
海外っつーか米国は半端に無線LANが整備されまくってるから大変そうだなぁとは思う
653デフォルトの名無しさん
2017/08/24(木) 10:02:40.03ID:N2QX0p2s654デフォルトの名無しさん
2017/08/24(木) 10:56:17.70ID:yyGwhDVO655デフォルトの名無しさん
2017/08/24(木) 11:36:23.74ID:nec4MnrL 移動中という状態を除外したら移動体通信ではなくて只の無線通信
656デフォルトの名無しさん
2017/08/24(木) 18:47:05.57ID:NSzs0jC1 個人的にはcargoが色々手を回しすぎなのが問題だと思うよ
ちょっと想定外だけど真っ当な使い方をしようとすると面倒が増えて、それをissueとして投げるしか無いからcargoがますます巨大になる
https://github.com/rust-lang/rust-roadmap/issues/12
↑でもちょっと出てるけど、今のcargoはインターフェイスとしてそれなりに使えるので、rustc以上cargo未満なツールを作ってくれるとありがたい
他のビルドツールとの連携とか今はかなり面倒。
ちょっと想定外だけど真っ当な使い方をしようとすると面倒が増えて、それをissueとして投げるしか無いからcargoがますます巨大になる
https://github.com/rust-lang/rust-roadmap/issues/12
↑でもちょっと出てるけど、今のcargoはインターフェイスとしてそれなりに使えるので、rustc以上cargo未満なツールを作ってくれるとありがたい
他のビルドツールとの連携とか今はかなり面倒。
657デフォルトの名無しさん
2017/08/25(金) 06:54:52.63ID:fv88sy22 struct Node<T> {
data: T,
}
があって、
struct Container<T> {
nodes: Vec<Rc<RefCell<Node<T>>>>,
}
のようなContainerを定義して、このコンテナから&Tに直接アクセスするiteratorを作りたい
のですが、どうしたら出来るでしょうか?(そもそも出来るのでしょうか?)
雰囲気的には↓のような感じになると思うのですがライフタイムがよく分かりません。
https://play.rust-lang.org/?gist=fb73c80c4303adc14083d049de6ccf3e&version=stable
data: T,
}
があって、
struct Container<T> {
nodes: Vec<Rc<RefCell<Node<T>>>>,
}
のようなContainerを定義して、このコンテナから&Tに直接アクセスするiteratorを作りたい
のですが、どうしたら出来るでしょうか?(そもそも出来るのでしょうか?)
雰囲気的には↓のような感じになると思うのですがライフタイムがよく分かりません。
https://play.rust-lang.org/?gist=fb73c80c4303adc14083d049de6ccf3e&version=stable
658デフォルトの名無しさん
2017/08/25(金) 12:13:31.91ID:wqoYH6g/659デフォルトの名無しさん
2017/08/25(金) 15:09:41.26ID:yTj1cv1p >>657
この例ではRefCell::borrowが返すRef (owned)から<Ref as Deref>::derefによってRefからの借用として&Node<T>を得ているわけだけど、
<NodeIter as Iterator>::nextの末尾でRefがdropされているから借用は関数の外まで生き残らない
&Tを直接返す方法があるとは思えないけど、Ref<'a, T>を返すことはできる
https://play.rust-lang.org/?gist=5c4a7b0de00dcc6ec0612b8846dd6bfb&version=stable
この例ではRefCell::borrowが返すRef (owned)から<Ref as Deref>::derefによってRefからの借用として&Node<T>を得ているわけだけど、
<NodeIter as Iterator>::nextの末尾でRefがdropされているから借用は関数の外まで生き残らない
&Tを直接返す方法があるとは思えないけど、Ref<'a, T>を返すことはできる
https://play.rust-lang.org/?gist=5c4a7b0de00dcc6ec0612b8846dd6bfb&version=stable
660デフォルトの名無しさん
2017/08/25(金) 15:38:40.83ID:J7NBnr1n661デフォルトの名無しさん
2017/08/26(土) 10:47:16.34ID:O+zDlIdw このスレで話題にするのはアレかもしれないが、 Servo nightly build が
いつ試してみても盛大にぶっ壊れていて、開発順調なのか心配になる。
Rust で開発していると mutability で詰むことがあって、よーく考えてデータ構造なり
を変更すればうまく解決できることが多いし、コードもより良くなっていることが多い。
でもその変更って毎回異なった自明でないものだし、局所的なもので済まないこともある。
Servo くらい大規模なプログラムになったとき、もうどうしようもなく詰んだりしないんだろうか。
いつ試してみても盛大にぶっ壊れていて、開発順調なのか心配になる。
Rust で開発していると mutability で詰むことがあって、よーく考えてデータ構造なり
を変更すればうまく解決できることが多いし、コードもより良くなっていることが多い。
でもその変更って毎回異なった自明でないものだし、局所的なもので済まないこともある。
Servo くらい大規模なプログラムになったとき、もうどうしようもなく詰んだりしないんだろうか。
662デフォルトの名無しさん
2017/08/26(土) 11:32:33.62ID:mrwT3sC4 やっぱブラウザ作るには向いてません
てなったら悲しいな
てなったら悲しいな
663デフォルトの名無しさん
2017/08/26(土) 12:07:35.67ID:O+zDlIdw 気づいたら struct のメンバがほとんど RefCell になってるとかありそう。
664デフォルトの名無しさん
2017/08/26(土) 12:14:24.38ID:3J5PaXHT Rustに熟知してれば変更は自明であり、機能分解点を精査してれば変更は局所的なもので済むんでないかな
小規模なモノを無計画に作るにはRustは適さない言語だと心底思う
Servoは長いこと開発続けてるけどあんまり精力的に開発する気なさそうだよなぁ
Mozillaが営利団体として潰れそうだし・・・実際Mozilla Japanは潰れてるorz
小規模なモノを無計画に作るにはRustは適さない言語だと心底思う
Servoは長いこと開発続けてるけどあんまり精力的に開発する気なさそうだよなぁ
Mozillaが営利団体として潰れそうだし・・・実際Mozilla Japanは潰れてるorz
665デフォルトの名無しさん
2017/08/26(土) 12:48:20.45ID:qL+5xDF6 キノコ雲を見上げるsteveklabnikの画像がRust界隈でにわかにミーム化しつつあって笑う
666デフォルトの名無しさん
2017/08/26(土) 16:16:56.49ID:1psTTOfA servoで作ったモジュールがfirefoxに取り込まれていっているし、実験プロジェクトとしては成功なのでは
667デフォルトの名無しさん
2017/08/26(土) 22:25:08.80ID:YYTb5WfA Rustに限った話ではないですけど
・構文解析
・ハイライト
・オブジェクト追跡
・入力補完
などの機能を持ち高速に動作するテキストエディタってないですかね?
JavaやNode.jsを使った物は総じて動作が重いですし、Cなどで書かれてネイティブな物は機能性で劣る気がします
・構文解析
・ハイライト
・オブジェクト追跡
・入力補完
などの機能を持ち高速に動作するテキストエディタってないですかね?
JavaやNode.jsを使った物は総じて動作が重いですし、Cなどで書かれてネイティブな物は機能性で劣る気がします
668デフォルトの名無しさん
2017/08/27(日) 01:57:19.50ID:OZ/i8G6F >>667
Node.jsで作ったエディタが重いってそれVSCodeの前で言えるの?
Node.jsで作ったエディタが重いってそれVSCodeの前で言えるの?
669デフォルトの名無しさん
2017/08/27(日) 02:04:39.75ID:mxFQINt9 ageるなアホ
VSCodeつーかAtomは実際重たいからな
あとスレッドぶん回すからノートPCで動かすとバッテリー消費がシャレにならん
JetBrainsのCLionにRust Plugin入れたらブレークポイントも貼れるし良いぞ
誰かJetBrainsから有料版出る前にブレークポイント貼れるようにするPR出さないかねぇ
地味に高いから購入する気にはならんのだよな
VSCodeつーかAtomは実際重たいからな
あとスレッドぶん回すからノートPCで動かすとバッテリー消費がシャレにならん
JetBrainsのCLionにRust Plugin入れたらブレークポイントも貼れるし良いぞ
誰かJetBrainsから有料版出る前にブレークポイント貼れるようにするPR出さないかねぇ
地味に高いから購入する気にはならんのだよな
670デフォルトの名無しさん
2017/08/27(日) 02:12:16.71ID:PbodRtd5 Rustプラグインを単体の製品にするとは思えんけどねえ
彼らは例えばScalaのプラグインとかも手がけているけど別に製品化している訳じゃないし
彼らは例えばScalaのプラグインとかも手がけているけど別に製品化している訳じゃないし
671デフォルトの名無しさん
2017/08/27(日) 02:34:48.02ID:SDSllFYF VSCode重たくて殺意生える
いちいちワンテンポ遅いんじゃ
いちいちワンテンポ遅いんじゃ
672デフォルトの名無しさん
2017/08/27(日) 04:11:59.30ID:y+D9Ax/7 Vimすらも重いことあるんだけど俺
673デフォルトの名無しさん
2017/08/27(日) 07:38:59.45ID:mxFQINt9 vi使えよ、viの軽さに慣れたらvimはそりゃ重たいでしょ
>>670
Scalaなんて10年以上前に流行った言語のIDEを今更有料化しても売れないだろうからな
Rustは今現在流行ってる(?)言語だし売るんじゃねーのかね
>>670
Scalaなんて10年以上前に流行った言語のIDEを今更有料化しても売れないだろうからな
Rustは今現在流行ってる(?)言語だし売るんじゃねーのかね
674デフォルトの名無しさん
2017/08/27(日) 10:25:11.28ID:y+D9Ax/7 viとか使ってるやついたのか
675デフォルトの名無しさん
2017/08/27(日) 12:17:29.76ID:PbodRtd5 Xi使おうぜ
676デフォルトの名無しさん
2017/08/27(日) 12:49:38.49ID:PVSAtTcW Atom (Electron) が Blink から Servo に乗り換えれば軽くなるのだろうか?
677デフォルトの名無しさん
2017/08/27(日) 19:27:41.18ID:gsqvcCn0 vscodeって重いよな?起動も動作も軽快とは言い難い
むしろvscodeが軽快に使えているという人がいるならどのような環境で使用しているのか聞きたいわ
SSDを乗せた標準電圧版Coreiモバイルノートでも結構もっさりだし
むしろvscodeが軽快に使えているという人がいるならどのような環境で使用しているのか聞きたいわ
SSDを乗せた標準電圧版Coreiモバイルノートでも結構もっさりだし
678デフォルトの名無しさん
2017/08/27(日) 19:39:49.26ID:PbodRtd5 もっさりとかいう言葉じゃ意味不明だからせめて数値で言ってくれ
679デフォルトの名無しさん
2017/08/27(日) 19:47:01.83ID:SLqFnPu1 何を妥協して「せめて」なのか分からんが数値あげてやろう
MacBookでIntelliJが6時間くらい保つ所が3時間くらいしか保たない程度に無駄処理多い
プロセス上の待機スレッド数も10〜20くらい違った覚えがある
待機中でもそんだけスレッド回してるから、コーディング中、ビルド中の負荷もでかくなるよね
VSCodeを愛用してるコーダーはemacs愛用してるコーダー並みにマゾだと思う(viユーザ感
MacBookでIntelliJが6時間くらい保つ所が3時間くらいしか保たない程度に無駄処理多い
プロセス上の待機スレッド数も10〜20くらい違った覚えがある
待機中でもそんだけスレッド回してるから、コーディング中、ビルド中の負荷もでかくなるよね
VSCodeを愛用してるコーダーはemacs愛用してるコーダー並みにマゾだと思う(viユーザ感
680デフォルトの名無しさん
2017/08/27(日) 19:49:16.80ID:SLqFnPu1681デフォルトの名無しさん
2017/08/27(日) 23:25:25.14ID:tvWh4D3N 好きなエディタを使ったらええ
682デフォルトの名無しさん
2017/08/28(月) 09:34:01.20ID:A8OmMbPi 全くだ、重たいと事実を指摘されても発狂することなく
重たくても他に良い所があるから使ってるんだと言い切っていたemacs愛用者は良い人たち
>>675
バックエンドRust, フロントエンドSwift, 通信プロトコルJSON, プラグインサンプルPython
ごった煮過ぎて笑うわw
重たくても他に良い所があるから使ってるんだと言い切っていたemacs愛用者は良い人たち
>>675
バックエンドRust, フロントエンドSwift, 通信プロトコルJSON, プラグインサンプルPython
ごった煮過ぎて笑うわw
683デフォルトの名無しさん
2017/08/30(水) 13:54:58.32ID:AB0hyKA3 rustってやっぱりスペックいいパソコンと高速なネット回線がないと厳しいですね
684デフォルトの名無しさん
2017/08/31(木) 22:48:16.13ID:agJG8fpm 普通の言語だと処理の一部を関数に切り出すのとか簡単に出来るけどRustだと返り値の方が分からなくてそれが難しいことがあるよね
685デフォルトの名無しさん
2017/09/01(金) 10:25:57.73ID:pDFuyP/L let a: () = { ... };
でコンパイラがエラーとして正しい型を教えてくれるぞ。
でコンパイラがエラーとして正しい型を教えてくれるぞ。
686デフォルトの名無しさん
2017/09/01(金) 13:32:10.36ID:PRuVKL7F クロージャにすれば良い
なあに、きっと最適化で普通の関数と同じ扱いになるさ(適当)
なあに、きっと最適化で普通の関数と同じ扱いになるさ(適当)
687デフォルトの名無しさん
2017/09/01(金) 20:19:45.83ID:Mxd80Z9N Rustのスレあったんだね
688デフォルトの名無しさん
2017/09/01(金) 20:51:46.56ID:d10AKhdK おい、時報はどうしたんだ?
689デフォルトの名無しさん
2017/09/01(金) 23:41:11.07ID:62CxLGbq unsafeだらけ
690デフォルトの名無しさん
2017/09/01(金) 23:45:28.89ID:PRuVKL7F Pijulで開発されているらしきcrateを発見してrepositoryリンクを辿ってみたらNot foundが返ってきた
https://crates.io/crates/futures-derive
https://crates.io/crates/futures-derive
691デフォルトの名無しさん
2017/09/02(土) 00:14:47.90ID:aRnAy5mn スクワット中なんじゃないの, 筋力ついたらリリースされるでしょ
692デフォルトの名無しさん
2017/09/02(土) 00:45:15.54ID:Qzt2A3g3693デフォルトの名無しさん
2017/09/02(土) 01:24:01.14ID:X2T/f4uE Round 1の結果のみで語られてもねえ
694デフォルトの名無しさん
2017/09/02(土) 01:50:33.08ID:cF7LUBE8 なんかnightlyにPythonのジェネレータ入ったとか聞いたんだけど誰得?
もうtokioつかFutureあるし。
もうtokioつかFutureあるし。
695デフォルトの名無しさん
2017/09/02(土) 08:16:03.50ID:oilxAadu いつまでたってもスライスパターンが標準にならないのなんで?
ほかの関数型言語みたいな言語標準?のリストと、そのパターンマッチ、があればいいけど
そういうつもりもないんならスライスパターンをはよ強化&標準装備してほしいんだが
ほかの関数型言語みたいな言語標準?のリストと、そのパターンマッチ、があればいいけど
そういうつもりもないんならスライスパターンをはよ強化&標準装備してほしいんだが
696デフォルトの名無しさん
2017/09/02(土) 08:35:22.00ID:zv/5K5Jn 私は最強のRust以外のプログラミング言語で書く気はありません
697デフォルトの名無しさん
2017/09/02(土) 08:40:19.17ID:MacxmZWQ Featureを駆使するので楽になるのはそうだが、
逐次処理的に書けるasync/awaitの方がさらに楽なので
それを実現するための要素としてgeneratorは必要
あとIteratorの実装も楽になる
逐次処理的に書けるasync/awaitの方がさらに楽なので
それを実現するための要素としてgeneratorは必要
あとIteratorの実装も楽になる
698デフォルトの名無しさん
2017/09/02(土) 08:40:57.03ID:MacxmZWQ FeatureじゃなくてFuture
699デフォルトの名無しさん
2017/09/02(土) 11:39:08.16ID:Nnknp9qO >>692
なんていうか、自分のチームの優位性を示してドヤろうとしたけど決定的な証拠がなかったから自分に有利な調整をしたという感じだな
特定のチームへの非難をしつつそのチームの人間のツイートを自分の主張の補強に使っているのもいろいろアレ
まあ競技プログラミング界のゴタゴタはどうでも良いけどとりあえずRustを巻き込まないで欲しいわ
なんていうか、自分のチームの優位性を示してドヤろうとしたけど決定的な証拠がなかったから自分に有利な調整をしたという感じだな
特定のチームへの非難をしつつそのチームの人間のツイートを自分の主張の補強に使っているのもいろいろアレ
まあ競技プログラミング界のゴタゴタはどうでも良いけどとりあえずRustを巻き込まないで欲しいわ
700デフォルトの名無しさん
2017/09/02(土) 12:32:15.66ID:3cz+aWzV >>692に対してちょこちょこマジレスがいるけど
正規化の文章の注釈[4]でウォーズマン理論とか引っ張り出してるからな
正規化の文章の注釈[4]でウォーズマン理論とか引っ張り出してるからな
701デフォルトの名無しさん
2017/09/02(土) 13:10:10.49ID:U8pYefIa マヌケは見つかったようだな…ロクにリンク先も読めないのに批判する口だけの能無しが…
702デフォルトの名無しさん
2017/09/02(土) 17:38:03.40ID:pn8ujE89 風情のないやつらだ
703デフォルトの名無しさん
2017/09/02(土) 19:03:59.64ID:AHW4eZK5 ウォーズマン理論により各言語の普及率(PG人口比)でスコアを倍加すると
数の暴力が発揮されJavaが最強のプログラミング言語であることが証明される
とでも言えば風情があるのかね?
数の暴力が発揮されJavaが最強のプログラミング言語であることが証明される
とでも言えば風情があるのかね?
704デフォルトの名無しさん
2017/09/02(土) 19:58:54.78ID:X2T/f4uE 風情駆動開発
705デフォルトの名無しさん
2017/09/03(日) 01:23:29.76ID:KzrJfOQ0 ネタにマジレス以下の寒い話だな
706デフォルトの名無しさん
2017/09/03(日) 02:55:54.90ID:8KnlJyLG ネタに対する模範解答って『やはりRust最強だな!』とか?
707デフォルトの名無しさん
2017/09/03(日) 09:50:38.50ID:YZmIGy7N708デフォルトの名無しさん
2017/09/03(日) 11:35:08.63ID:CVrfF8Ix709デフォルトの名無しさん
2017/09/03(日) 12:50:33.18ID:E+2Ill1j お前ら、associated constantsがstableになったってのにいつまで下らない話を続けているんだ
710デフォルトの名無しさん
2017/09/03(日) 13:04:30.79ID:Zk5wiRrT 関連定数が乗ったなら、次は依存型だ!
711デフォルトの名無しさん
2017/09/03(日) 13:07:07.67ID:9s1YDGRT 依存型はやり過ぎだ!高階型でいい!
712デフォルトの名無しさん
2017/09/03(日) 14:56:28.19ID:3Ui33to1 impl Trait と トレイト境界の特殊化の実装が先だろ……
これのせいで書けないコードあるんだぞ
これのせいで書けないコードあるんだぞ
713デフォルトの名無しさん
2017/09/03(日) 14:59:38.46ID:E+2Ill1j きっとimpl periodのうちに全部実装してくれるよ(適当)
714デフォルトの名無しさん
2017/09/03(日) 16:40:58.80ID:Sqyt1HzW async を汎用的に実装するなら モナド ( M<T> ) 的な高階型が必要?
715デフォルトの名無しさん
2017/09/03(日) 17:05:48.88ID:4Saw+NMi emccなしでwasmれるって本当?
716デフォルトの名無しさん
2017/09/03(日) 20:29:20.09ID:HVXRIsjy linkerとしてemcc必要では
717デフォルトの名無しさん
2017/09/04(月) 01:02:25.35ID:TiSfjsBP そもそもwasmなんて誰が必要としてるんだという問題がある
実際現状wasm使うよりV8の方が速いだろ
実際現状wasm使うよりV8の方が速いだろ
718デフォルトの名無しさん
2017/09/04(月) 02:18:35.33ID:yWQauj9l 実験的な機能に現時点での必要性を求められても……
719デフォルトの名無しさん
2017/09/04(月) 03:38:50.42ID:B0/qvj/R JSの分野でもRust使いたいじゃん
720デフォルトの名無しさん
2017/09/04(月) 03:56:46.84ID:acsdbygY asmjsが早いんだからランタイム側の対応が十分進めばwasmも早くなるでしょ
721デフォルトの名無しさん
2017/09/04(月) 10:53:07.99ID:e2EV4sJ/ >>719
Rustなんて実用にならない言語未満使うくらいなら、クソとはいえ言語の体なしてるJS使うわクソ
Rustなんて実用にならない言語未満使うくらいなら、クソとはいえ言語の体なしてるJS使うわクソ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- ネトウヨ、「高市さんがカンペを無視して存立危機発言をしたのは、岡田に『カンペ読むな』と執拗に言われたので言っただけ」と歴史を捏造 [314039747]
- 敵「ククク、キミの親友の俺くんの死体を蘇らせて操り、お前らと戦わせるぞ」お前ら「」←どうする?
- コウメ太夫のネタ考えたから評価してくれ
- トランプ、G7に代わるcore 5を発表 [805596214]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- うち近所に本格的ピッツァ屋あるけど羨ましい?
