次世代言語Part7[Go Rust Swift Kotlin TypeScript]
レス数が1000を超えています。これ以上書き込みはできません。
文字数制限きついので改題
スレタイ以外の言語もok
前スレ
次世代言語議論スレ[Rust Kotlin Haskell]第6世代
http://mevius.5ch.net/test/read.cgi/tech/1503924817/ 今更Cプリプロセッサが派手に変わることなんて無いもんな、そりゃド安定よ
しかしそろそろローカル変数名はマクロで置換されない程度の改良は欲しい >>924
ヘッダごと切り替えて、typedef自体も定義してたんじゃねえの?そういう時は。 >>929
ハイジェニックでない事が予想もつかない活用()を生み出せる原点では?
bashかなにかのソースでびっくりしたことがある。十年以上前かな。 >>932
なんだ?Cの悪口か?
そもそも文章下手くそなくせに「活用()」とか独特な用語使ったり、突然bashの話始まったりして何が言いたいのかわからん TypeScriptでジェネリクス使っててちょっと複雑なことをしようとすると
とたんにしんどくなるのを体験して、型がない世界が羨ましいと思ったことはある。
(本末転倒感)
メタプログラミング部分を動的言語に任せてハイブリットにするというのが
ありかもしれない。
メタプログラミングツールの例
http://moapp.hateblo.jp/entry/2017/06/30/210636 >>933
悪口じゃなくて、良くも悪くも無茶苦茶書けるのが良い所だって言ってるんだが。
今回はちゃんと会話できてる相手が居る以上、最低限、読もうと思ったら読めると思うが、なんか特別な説明要るの?怠惰な人には。
あとごめん、shのソースだった。見たらわかる。
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/sh >>934
TSやJavaのような型消去のジェネリックはいわば単なるLintの一種
メタプログラミングに使えるようなものじゃないよ
テンプレート方式じゃないなら.NETみたいにリフレクションでジェネリック型をnewできたりするような実行時サポートがないと
ジェネリックを活かしたメタプログラミングは無理 >>792
>>793
Scala をdisってんのかよ?
大人気動画サイトのドワンゴで使われてるって知らないのか?
Scalaにおける最適なDependency Injectionの方法を考察する
?なぜドワンゴアカウントシステムの生産性は高いのか?
https://qiita.com/pab_tech/items/1c0bdbc8a61949891f1f >>937
ニュース見てないのか?
このタイミングでドワンゴの生産性はscalaのおかげって、
思いっきりディスってるとしか。
scalaのイメージ落ちたわ >>939
いくらなんでも、すぐに釣られすぎじゃね?
ドワンゴがScala使ってるのは↓で知ったよ。
https://anond.hatelabo.jp/20171129214218 >>935
話し通じてるってなんだ?会話できてる人がいることと>>932の文が荒れていることにはなんの相関もないし、>>932をちゃんと読めていることを明示している人はいないぞ
要約するとこうか?
Cのマクロはハイジェニックでないが故に良い
何が良いかというと、予想もしない活用()を生み出せる所である
だとするとこの活用()に込められたニュアンスはなんだ? ニコ動の問題にアカウントシステム関係なく無い?
何がどう破綻してるのか謎だし
こじつけで無理やり並べてるだけだろ >>942
解ってると明示する必要が無いのが、解ってるって事そのものだろ。
会話と文章が荒れてる事と相関がないと言うなら、文章の荒れと表現力に相関も無く、あるのは単純な読み手の理解力の問題では?
()に込められた意味?
もはやCのソースとしては成り立ってないような構文すら許される所。
せっかく探して貼ったんだから、どの.cでも良いから読んできたらホントに一瞬でなんの事言ってるかわかる。 >>944
そのレスに触れているのが俺だけなのによくそんなこと言えるな。前に黙っている多数の意見はわからないから代弁しない方が良いみたいなこと書いてたくせに自分は良いのか?
貼ってくれたshのソース見たわ。おまえこのmac.hのマクロの使い方はいいものだって思うのか?
いやこのマクロの使い方のどの辺がいいんだ? ニコ生は今、Rust で書き直しているらしい
これからは、Rust, Elixir の2択じゃないの? >>945
代弁してないじゃんw
必要無いのが解ってるって事だ、って言ってるだけで、皆は解ってるから明示してない、って主張じゃない。
「犬はワンって鳴くよね」と「皆はワンって鳴いたからあれが犬だと理解してる」の違い。
この表記が良いとは言ってないだろ。だから「予想もつかない活用()」なんだよ。
>>935で言ったように「良くも悪くも無茶苦茶書けること」自体が良い事だって言ってるの。 >>948
おまえに触れると面倒だからみんな触れてないんだよ
そこんところ勘違いしてるのは良くない >>949
今回はわりと正しい事言ってる自信はあったんだがな。 >>948
はあ?Cのマクロが良いものだって言うんならせめて良い使い方の例持って来いや 一回名無しに戻って、煽りを辞めて書いたらどうなるかやってみるか。 >>946
なるほど。Rustで書いてるってモジラの提灯持ちすることで金をもらってる訳か
本当にRustで書けるわきゃねーからな >>951
#define swap(a, b) \ do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0)
なんて良いマクロじゃない?kernelのswap。 >>946
そういう新しい言語にすぐ飛びつくようじゃ終わりなんじゃ。 >>955
それはハイジェニックでない、無茶苦茶書いてる良い例ですか?
あとコピペしたけどコンパイル通らん >>948
あと、
『代弁してないじゃんw
必要無いのが解ってるって事だ、って言ってるだけで、皆は解ってるから明示してない、って主張じゃない。
「犬はワンって鳴くよね」と「皆はワンって鳴いたからあれが犬だと理解してる」の違い。』
って何?面倒だから放置されてるそうだけどw >>950
おまえが間違ってると思うし、読みにくいと思う。
それでよくそこまで相手を煽れるなと感心までする。
正直ウザいし二度と書き込まないで欲しい >>957
だから、無茶苦茶書くのが良い例なんじゃなくて、無茶苦茶書ける余地があることに意義を見出してるんだが。
コンパイル通らんのは何て出てんの?
kernel.hから取ってきた事は覚えてるが、俺のアンチョコが間違ってるかもしれん。
#define pf(fmt, val) fprintf(stderr, #val " = " fmt ";\n", val);
これは割と無茶してるかな。出典不明。
>>958
そうだなぁ、これは俺が悪かったかもしれん。 >>959
思う分には個人の自由だからな。
よくぞそこまで煽らせるなぁ、とも思うが。 >>906と>>907がたった6分で矛盾してるし、まぁそういう人なんだろう。 コンパイル通らんとか言ってる奴はマジで言ってんのか?
そんな理解度でよくCの話題に絡もうと思ったな >>960
ハイジェニックでなく、滅茶苦茶書けるのが利点って言っておきながら、それをしたコードは悪いコードってどういうことやねん。
それハイジェニックな方がいいってことじゃん。何言ってんだ
あと、おまえは文が下手なことはいい加減認めろ
この関連何度目だよ >>964
悪いコードとも言ってないだろ。
コード自体は良い悪い自体言ってない。書く奴が好きに書ければそれで良い。
よく読め。 あとエラーコードはstray ‘¥’ in programって奴だな
cのマクロなるべく避けてるし、正直初めて見た
>>963
ちょっとideonにでも書いて動いてる状態紹介してくれんか? >>962
Cは見るけどインラインアセンブラは見ないってことなんだけど、お判りにならない? >>966
swapの後ろについてる¥マーク取ったら動くよ
見たらわかるだろ >>968
あ、動いたわ。これ改行の代わりか
久々に見たわ。ありがとう >>965
あのさあ。ハイジェニックなマクロはちゃんとメリットあってハイジェニックなの
ハイジェニックでないことが良いって言っておきながら、ハイジェニックな良い例を挙げられないってどういうこと?
色々書けることそのものなんて、ハイジェニックなことの利点と比べたらゴミみたいな利点なわけ
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.8.2.htmlみたいなコード量産可能になることがハイジェニックなことより重いって思ってるわけ? ていうか、kernelから引用するならもっと良いマクロあると思うんだが
container_ofとか
http://d.hatena.ne.jp/big-eyed-hamster/touch/20091226/1261754005
でもC言語大好きだった頃は凄いと思ったが、いま見たら全然しょーもないわ c11が実行できるところだと実行できると思う。pfの便利さもわかる。
ideoneはc11が動かんからcでは確認できないけど、c++14だと動いた。
https://ideone.com/0PBzBG
このままtest.cでも動くんじゃないかな。
スマホからでほかの環境めんどくさくて見てない。ごめん。 >>973
あー。いや。マクロ動かないのは完全に俺が悪かった。申し訳ない >>970
知ってるよ。利点は。lispまだ使ってるしな。
>>971
それより、maxとminと、min_not_zeroの方が好き。 そういやプリプロセッサが乗ってる言語って最新の言語では見ないよな。
Go言語は意図的に削ったのは分かるんだけど(コンパイル速度優先のため)
他のはどういう理由なんだろうな。swiftとかあったほうがいいと思うんだが 構文として統合されたマクロならむしろ盛況な気がする
DやTemplate Haskellやcamlp[45]が散々こねくりまわして、nimにもrustにも
Cプリプロセッサのような、言語からも独立して使えるようなマクロはないけどさ >>977
単純にダサいからだよ
言語設計者にとってみれば、自分の言語はテキストマクロに頼らないと使い物にならないゴミですと恥を晒してるようなもんだ まあC言語のポータビリティの高さはマクロがテキストマクロってことが大きい
構文マクロだと、複数のコンパイラによって拡張構文がちょっとずつ違うみたいな状況には対応できん
次世代言語が実用に耐えてるのは処理系が「まだ」ひとつしかないって面もあると思う >>945
すまんが今来た俺もお前が手抜き過ぎると思うわ
分かんないなら無闇に質問するんじゃなく勉強するか
じふには理解できないものと諦めろよ。
自分に理解できないのは相手が悪いみたいな態度は、
もっとこう、なんでも分かる人にしか許されないと思うぞ
それに相手ちゃんと質問に詳しく答えてくれてるじゃん。
以上。 どうせあが言ってる事はまた理解できない事だろうから、俺が理解できないのもこいつが悪いに違いない
まあ仕方無いかもしれないな cのマクロで言いたかったことは
別にcのマクロが良いものだって話ではなくて、
高級な機能のマクロでバカが作ったものより
低級な機能でも優秀な人が作った枯れた技術のが安定するってことなんだけどな。 >>977
include 処理とか, Boost みたいに高級な事すると恐ろしいコンパイル時間になることが分かったからでしょ。
あれのせいでファイル分割しないのがベストなプログラミングとかいう奴まで出始めたわけで。。
まあそういう実験所を提供してるってのはc++の良いところな気もするけどね。
実験に巻き込まれたくはないけど。 >>985
>include 処理とか, Boost みたいに高級な事すると恐ろしいコンパイル時間になることが分かったからでしょ。
これ。
インクルード処理にマクロを使ってるからな。
例えばpsコマンドのソースをコンパイルする時<sys/stat.h>を37回includeしようとするらしい。
こういうのがソースの依存関係が大きくなるに従って指数関数的に増えていく。
結果としてコンパイルに40分とかかかるように。
Goは上記のコンパイルの無駄な時間から生まれたらしい。
詳細は
https://talks.golang.org/2012/splash.article 40分とか掛かるのはPSの話じゃないし、
40分が30分くらいに短縮したってだけじゃん。 マトモな実用OSでC以外の言語で記述したの
何かある? 次スレのタイトル考えた
現行のままでもいいけど
文字数制限(48byte)には注意
次世代言語Part8[Elm Nim Julia Elixir Crystal]
次世代言語Part8[C#7.2 C++17 Java9 ES2017 PHP7.2] (他Python3.6) 次世代言語議論スレ[略]
で良いじゃん、毎度揉めるなら。
2ぐらいに各言語入れとけば? メジャー言語はいらないと思う
代わりにRustやSwift, Kotlin, Hack等の新興言語入れればいい hackはnull安全だからあり。
elmも仲間に入れて このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 43日 4時間 40分 58秒 レス数が1000を超えています。これ以上書き込みはできません。