X



次世代言語Part7[Go Rust Swift Kotlin TypeScript]

レス数が950を超えています。1000を超えると書き込みができなくなります。
0886デフォルトの名無しさん
垢版 |
2017/11/29(水) 01:08:31.46ID:ZTL4r6Le
jsが糞だなんて世界の共通認識やろ
0887デフォルトの名無しさん
垢版 |
2017/11/29(水) 01:32:48.31ID:/BpqyHHR
何でやjsは最高やろ
javascriptはうんこだけど
0888デフォルトの名無しさん
垢版 |
2017/11/29(水) 01:34:30.49ID:wq9Dycsx
jsはブラウザ標準だから広まってるけど実際かなりの変態言語だよね
大分マシになってきてるけど
0889
垢版 |
2017/11/29(水) 08:18:33.62ID:fb/gmNyy
phpは、protectedとか何だかんだ大先生が要るって言うものはつけたけど、正直必要性がわからんね、みたいな事を作者が言ってるぐらいだからな。

JSはあの変態具合がじつに良い。
0890デフォルトの名無しさん
垢版 |
2017/11/29(水) 10:31:45.07ID:/xS4M0rU
>>881
ダメだろ。動的言語の言語仕様として正確な補完は不可能。
PHPとかPHPDocで追跡できるようにもできるけど、結局ドキュメント部分だから
信用できるとは限らないし
0891デフォルトの名無しさん
垢版 |
2017/11/29(水) 10:35:30.46ID:/xS4M0rU
>>889
ポリシーがない作者の言語は大体そう。
投票制で機能の実装を決めるって結局糞になる一方だと思うんだけど。
swiftも最近はそうだっけ?
0892デフォルトの名無しさん
垢版 |
2017/11/29(水) 11:19:53.91ID:ags1OwXJ
ハンバーガーとコーラとWindowsが多数派になったおかげで、少数派の自己肯定感が強い
0893
垢版 |
2017/11/29(水) 12:52:13.36ID:fb/gmNyy
>>891
作者は、ポリシーがないのがポリシーみたいな人だしな。
たまに引数の順序とか違うけど、仕方ねえじゃん。積み重ねってあるんだから。それに便利さって尺度あるじゃん?とか、
自然言語だって言語学者が整理して作ったら英語なんかと全然違う整然としたもの出来るけど、それってホントに実用になるかはわからんよね。
って開き直ってるからな。
goto実装したときのやり取りとか滅茶苦茶面白かった。

譲れない部分以外は適当に決めろよ、俺使わねえし、みたいな方向性もアリだとは思う。
0894
垢版 |
2017/11/29(水) 12:55:46.19ID:fb/gmNyy
>>890
補完が無いからダメ、を否定してるんでは?
「補完なんか無くても書ける」レベルのやつが書けばいいんだよ、っていう主張かと。
そんで、俺はそれでいいと思う。
補完が無くても大体間違いようがない、っていう使い方はあるもんだし。システムハンガリアンじゃない、本当の意味の方のハンガリアンとか。
0896
垢版 |
2017/11/29(水) 16:23:39.89ID:fb/gmNyy
>>895
是非説明して欲しい
0898デフォルトの名無しさん
垢版 |
2017/11/29(水) 17:33:20.21ID:jE6TKqng
最近の言語なんて全部ポリシーないじゃん。
他の言語で流行ってる機能だからうちも入れよう
みたいな話ばっか。
0899
垢版 |
2017/11/29(水) 18:31:36.52ID:fb/gmNyy
>>897
見えないすべての他人の代弁者ご苦労様。
0900デフォルトの名無しさん
垢版 |
2017/11/29(水) 18:51:31.66ID:/xS4M0rU
>>898
Go言語はポリシーあるけどね。と言うかGoogle社内で使うための言語として
進化してきたって感じ?
結局C++コードベースで作ってきたシステムがコンパイルするたびに40分とかかかるようになってきたから、Go言語でそこを改善した。
具体的には継承を使わないようにしたり
パッケージ間の依存関係を極力抑えるために敢えてDRY原則無視したり。
後プリプロセッサを削除してパッケージシステムをしっかりしたもの(未使用なパッケージをimportしたらコンパイルエラー)
にしたり。
0904デフォルトの名無しさん
垢版 |
2017/11/29(水) 23:38:03.94ID:0SzzSOSo
goは線形代数使わない用途向けか?
TensorFlow for goで全部やってるってわけでもなかろうし>>903の言う通りだろうか?
0905
垢版 |
2017/11/30(木) 00:01:53.15ID:5c50KJX1
Grumpyも単純に書くと遅いしな。
速度を出したいならcとインラインアセンブラで書くだろうし、大規模に走らせるならHPC系に載せやすいfortranとかベンダのCだろうし、
気楽に書きたいならpythonで良いし、
その為に何か言語を、って手段と目的が入れ替わってる気がする。

既存の道具で目的が果たせるならそれで良い分野だろ、それ。
0907デフォルトの名無しさん
垢版 |
2017/11/30(木) 00:21:22.97ID:ZeZezy1g
Cで数学コード書く奴いるけどあいつら凄いわ
俺なんかFortanの形状引き継ぎ配列使わない縛りでも発狂しそうになるのに、さらにサポート少ないCでよくやるわ
0908デフォルトの名無しさん
垢版 |
2017/11/30(木) 00:25:37.10ID:ZeZezy1g
いや、Cとインラインアセンブラって、もしかしてあれか。よく知らんけど、CPUベンダーが実装してるような何かか
0909デフォルトの名無しさん
垢版 |
2017/11/30(木) 00:25:51.08ID:6I05rtBK
>>907
ゲーム目的とかならCでやるんじゃないの。
と言っても今は優秀なゲームエンジンが無料の時代だから意味ないかもだけど。
0911デフォルトの名無しさん
垢版 |
2017/11/30(木) 00:30:03.93ID:ZeZezy1g
>>909
しれっとC++にしてEigenかublasかなんか混ぜたりしない?そうでもない?
あれCで書いてる奴本当に凄いと思うわ
0913デフォルトの名無しさん
垢版 |
2017/11/30(木) 02:40:07.39ID:3Jq96VTV
アドベントカレンダー見てたら地味にelmユーザ増えてる?
reduxきっかけで流れてきたユーザー居るのかね
0914デフォルトの名無しさん
垢版 |
2017/11/30(木) 02:43:19.27ID:3Jq96VTV
>>911
すげーかもしれんがそういう低レベルのコードを書くプログラマーっていま日本にどれだけいるんだろうな。もはや大手ゲームベンダーも他社のゲームエンジンに頼る時代だし
0915デフォルトの名無しさん
垢版 |
2017/11/30(木) 04:01:07.03ID:aR0OMF8n
みんなC言語が分ってるのが当たり前だと思ってたけど、
最近はC言語は知らないのが前提らしい
低レベルプログラミングという本が殆どC言語の解説書なのは驚いた。
0917デフォルトの名無しさん
垢版 |
2017/11/30(木) 08:03:32.96ID:uu2PxLG/
Cについて知っててもらわんと色々説明しづらい部分があると思うんだが
大丈夫なんかね。
0918
垢版 |
2017/11/30(木) 08:34:13.82ID:pYUAd/ci
>>909
流体のシミュレーション書いたことある。
多分同業は同じように内製してるか、か今は外注するかしてるけど、ガチの方のシミュレーションでは結構使う。
0920デフォルトの名無しさん
垢版 |
2017/11/30(木) 09:09:00.14ID:TiHNvA1L
>>914
あんなもんCで書いてて嫌にならないのは怠惰さの足りない奴でしょ
そういうのをやらされる/やる人が減るのは健全なことだと思う
0921
垢版 |
2017/11/30(木) 11:03:50.95ID:pYUAd/ci
新しい言語を作ってそしてメンテしていくほうが面倒だと知ってるからな。
トランスパイラに近い闇マクロがCにはあるので、その辺で逃げるが勝ちの部分もある。
0922デフォルトの名無しさん
垢版 |
2017/11/30(木) 11:23:43.51ID:6I05rtBK
>>921
C11ってジェネリクスがあるの?
正直プリプロセッサで頑張れば何でもありな気もする。
ライナスがあんだけCだけ大好きっ子なのは何かあるんだろうね。
0923
垢版 |
2017/11/30(木) 12:55:43.51ID:pYUAd/ci
>>922
思ってるようなジェネリクスとは多分違うけど型ジェネリクスで型から、呼び出される関数と引数を列挙してswitchみたいな事は出来る。それをマクロに書いたら型ごとに呼び出される関数が切り替わるように書ける。
けど使わん。ポインタなんかであっさり意図してない呼び出しになったりする事がままある。
ただの文字置換として展開出来るように書くほうが無難だと未だに思ってる。
0924デフォルトの名無しさん
垢版 |
2017/11/30(木) 13:26:07.53ID:aR0OMF8n
違うジェネリックスが出来る前は
関数の名前の後ろに_intとかつけなければ同じことはマクロでも出来なかったんだよ
0925デフォルトの名無しさん
垢版 |
2017/11/30(木) 13:37:31.49ID:SJCWnhNZ
標準機能だけでtgmath.hを実現できなかったから補うように追加したものではあるけど
そもそもサンプル以外でtgmath.hを実際に使っているところを見たことない
0926デフォルトの名無しさん
垢版 |
2017/11/30(木) 13:57:00.88ID:6I05rtBK
>>925
>tgmath.h
そんなのあるんか、正直Cは10年以上書いてないから知らんかった。
http://www.c-lang.org/detail/tgmath_h.html
型総称マクロかー。linuxとかでもそう言うの駆使して進化した書き方してんのかな。
Cって二段構えなんだよね。マクロでプリプロセスするから結構、動的な処理もかける。obj-cも初期の頃はマクロで出来てるって聞いた。
それが現在でもiOSで健在だし、結構良く出来てる。

例えば、obj-cのコンテキストとcのコンテキストが明確に分離できてる。

正直c++よりobj-cのほうが好き
cの資産を利用できるし。なによりc++より言語仕様が理解しやすい。
0927デフォルトの名無しさん
垢版 |
2017/11/30(木) 14:34:01.14ID:uu2PxLG/
まじめに20年以上c++追ってればこれほどコンパイラ毎に動作の異なる言語もないことはわかるよ。
残念ながらlinuxコードにあるプリプロセスマクロのがよっぽど安定してる。
0928デフォルトの名無しさん
垢版 |
2017/11/30(木) 15:30:31.34ID:xynddTwh
Cもattribute((cleanup))が標準ならなぁ
0930デフォルトの名無しさん
垢版 |
2017/11/30(木) 15:44:49.65ID:SJCWnhNZ
今更Cプリプロセッサが派手に変わることなんて無いもんな、そりゃド安定よ
しかしそろそろローカル変数名はマクロで置換されない程度の改良は欲しい
0931
垢版 |
2017/11/30(木) 16:06:05.26ID:pYUAd/ci
>>924
ヘッダごと切り替えて、typedef自体も定義してたんじゃねえの?そういう時は。
0932
垢版 |
2017/11/30(木) 16:09:24.35ID:pYUAd/ci
>>929
ハイジェニックでない事が予想もつかない活用()を生み出せる原点では?
bashかなにかのソースでびっくりしたことがある。十年以上前かな。
0933デフォルトの名無しさん
垢版 |
2017/11/30(木) 17:58:05.82ID:TiHNvA1L
>>932
なんだ?Cの悪口か?
そもそも文章下手くそなくせに「活用()」とか独特な用語使ったり、突然bashの話始まったりして何が言いたいのかわからん
0934デフォルトの名無しさん
垢版 |
2017/11/30(木) 18:04:13.66ID:6I05rtBK
TypeScriptでジェネリクス使っててちょっと複雑なことをしようとすると
とたんにしんどくなるのを体験して、型がない世界が羨ましいと思ったことはある。
(本末転倒感)

メタプログラミング部分を動的言語に任せてハイブリットにするというのが
ありかもしれない。

メタプログラミングツールの例
http://moapp.hateblo.jp/entry/2017/06/30/210636
0935
垢版 |
2017/11/30(木) 18:14:08.53ID:pYUAd/ci
>>933
悪口じゃなくて、良くも悪くも無茶苦茶書けるのが良い所だって言ってるんだが。
今回はちゃんと会話できてる相手が居る以上、最低限、読もうと思ったら読めると思うが、なんか特別な説明要るの?怠惰な人には。

あとごめん、shのソースだった。見たらわかる。
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/sh
0936デフォルトの名無しさん
垢版 |
2017/11/30(木) 18:17:01.73ID:7wApdvUL
>>934
TSやJavaのような型消去のジェネリックはいわば単なるLintの一種
メタプログラミングに使えるようなものじゃないよ
テンプレート方式じゃないなら.NETみたいにリフレクションでジェネリック型をnewできたりするような実行時サポートがないと
ジェネリックを活かしたメタプログラミングは無理
0939デフォルトの名無しさん
垢版 |
2017/11/30(木) 19:09:50.98ID:3Jq96VTV
>>937
ニュース見てないのか?
このタイミングでドワンゴの生産性はscalaのおかげって、
思いっきりディスってるとしか。
scalaのイメージ落ちたわ
0942デフォルトの名無しさん
垢版 |
2017/11/30(木) 20:07:57.37ID:TiHNvA1L
>>935
話し通じてるってなんだ?会話できてる人がいることと>>932の文が荒れていることにはなんの相関もないし、>>932をちゃんと読めていることを明示している人はいないぞ

要約するとこうか?
Cのマクロはハイジェニックでないが故に良い
何が良いかというと、予想もしない活用()を生み出せる所である

だとするとこの活用()に込められたニュアンスはなんだ?
0943デフォルトの名無しさん
垢版 |
2017/11/30(木) 20:17:15.63ID:sboMNgKS
ニコ動の問題にアカウントシステム関係なく無い?
何がどう破綻してるのか謎だし
こじつけで無理やり並べてるだけだろ
0944
垢版 |
2017/11/30(木) 20:35:16.45ID:5c50KJX1
>>942
解ってると明示する必要が無いのが、解ってるって事そのものだろ。
会話と文章が荒れてる事と相関がないと言うなら、文章の荒れと表現力に相関も無く、あるのは単純な読み手の理解力の問題では?

()に込められた意味?

もはやCのソースとしては成り立ってないような構文すら許される所。
せっかく探して貼ったんだから、どの.cでも良いから読んできたらホントに一瞬でなんの事言ってるかわかる。
0945デフォルトの名無しさん
垢版 |
2017/11/30(木) 20:41:59.13ID:TiHNvA1L
>>944
そのレスに触れているのが俺だけなのによくそんなこと言えるな。前に黙っている多数の意見はわからないから代弁しない方が良いみたいなこと書いてたくせに自分は良いのか?

貼ってくれたshのソース見たわ。おまえこのmac.hのマクロの使い方はいいものだって思うのか?
いやこのマクロの使い方のどの辺がいいんだ?
0946デフォルトの名無しさん
垢版 |
2017/11/30(木) 21:05:16.87ID:aDlGM/9P
ニコ生は今、Rust で書き直しているらしい

これからは、Rust, Elixir の2択じゃないの?
0948
垢版 |
2017/11/30(木) 21:39:53.99ID:5c50KJX1
>>945
代弁してないじゃんw
必要無いのが解ってるって事だ、って言ってるだけで、皆は解ってるから明示してない、って主張じゃない。
「犬はワンって鳴くよね」と「皆はワンって鳴いたからあれが犬だと理解してる」の違い。

この表記が良いとは言ってないだろ。だから「予想もつかない活用()」なんだよ。
>>935で言ったように「良くも悪くも無茶苦茶書けること」自体が良い事だって言ってるの。
0949デフォルトの名無しさん
垢版 |
2017/11/30(木) 21:44:38.87ID:ZeZezy1g
>>948
おまえに触れると面倒だからみんな触れてないんだよ
そこんところ勘違いしてるのは良くない
0950
垢版 |
2017/11/30(木) 21:45:42.64ID:5c50KJX1
>>949
今回はわりと正しい事言ってる自信はあったんだがな。
0952
垢版 |
2017/11/30(木) 21:47:31.29ID:5c50KJX1
一回名無しに戻って、煽りを辞めて書いたらどうなるかやってみるか。
0954デフォルトの名無しさん
垢版 |
2017/11/30(木) 21:49:32.82ID:xrLQLoOt
>>946
なるほど。Rustで書いてるってモジラの提灯持ちすることで金をもらってる訳か
本当にRustで書けるわきゃねーからな
0955
垢版 |
2017/11/30(木) 21:50:17.24ID:5c50KJX1
>>951
#define swap(a, b) \ do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0)
なんて良いマクロじゃない?kernelのswap。
0957デフォルトの名無しさん
垢版 |
2017/11/30(木) 21:59:56.00ID:q+NcGFmb
>>955
それはハイジェニックでない、無茶苦茶書いてる良い例ですか?
あとコピペしたけどコンパイル通らん
0958デフォルトの名無しさん
垢版 |
2017/11/30(木) 22:02:10.12ID:q+NcGFmb
>>948
あと、
『代弁してないじゃんw
必要無いのが解ってるって事だ、って言ってるだけで、皆は解ってるから明示してない、って主張じゃない。
「犬はワンって鳴くよね」と「皆はワンって鳴いたからあれが犬だと理解してる」の違い。』

って何?面倒だから放置されてるそうだけどw
0959デフォルトの名無しさん
垢版 |
2017/11/30(木) 22:15:03.46ID:ZeZezy1g
>>950
おまえが間違ってると思うし、読みにくいと思う。
それでよくそこまで相手を煽れるなと感心までする。
正直ウザいし二度と書き込まないで欲しい
0960
垢版 |
2017/11/30(木) 22:15:56.48ID:5c50KJX1
>>957
だから、無茶苦茶書くのが良い例なんじゃなくて、無茶苦茶書ける余地があることに意義を見出してるんだが。
コンパイル通らんのは何て出てんの?
kernel.hから取ってきた事は覚えてるが、俺のアンチョコが間違ってるかもしれん。
#define pf(fmt, val) fprintf(stderr, #val " = " fmt ";\n", val);
これは割と無茶してるかな。出典不明。

>>958
そうだなぁ、これは俺が悪かったかもしれん。
0961
垢版 |
2017/11/30(木) 22:16:56.76ID:5c50KJX1
>>959
思う分には個人の自由だからな。
よくぞそこまで煽らせるなぁ、とも思うが。
0962
垢版 |
2017/11/30(木) 22:18:18.81ID:5c50KJX1
>>906>>907がたった6分で矛盾してるし、まぁそういう人なんだろう。
0963デフォルトの名無しさん
垢版 |
2017/11/30(木) 22:18:33.66ID:+950NXzu
コンパイル通らんとか言ってる奴はマジで言ってんのか?
そんな理解度でよくCの話題に絡もうと思ったな
0964デフォルトの名無しさん
垢版 |
2017/11/30(木) 22:20:02.16ID:q+NcGFmb
>>960
ハイジェニックでなく、滅茶苦茶書けるのが利点って言っておきながら、それをしたコードは悪いコードってどういうことやねん。
それハイジェニックな方がいいってことじゃん。何言ってんだ

あと、おまえは文が下手なことはいい加減認めろ
この関連何度目だよ
0965
垢版 |
2017/11/30(木) 22:21:51.05ID:5c50KJX1
>>964
悪いコードとも言ってないだろ。
コード自体は良い悪い自体言ってない。書く奴が好きに書ければそれで良い。

よく読め。
0966デフォルトの名無しさん
垢版 |
2017/11/30(木) 22:22:18.54ID:q+NcGFmb
あとエラーコードはstray ‘¥’ in programって奴だな
cのマクロなるべく避けてるし、正直初めて見た
>>963
ちょっとideonにでも書いて動いてる状態紹介してくれんか?
0970デフォルトの名無しさん
垢版 |
2017/11/30(木) 22:32:07.23ID:q+NcGFmb
>>965
あのさあ。ハイジェニックなマクロはちゃんとメリットあってハイジェニックなの

ハイジェニックでないことが良いって言っておきながら、ハイジェニックな良い例を挙げられないってどういうこと?

色々書けることそのものなんて、ハイジェニックなことの利点と比べたらゴミみたいな利点なわけ
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.8.2.htmlみたいなコード量産可能になることがハイジェニックなことより重いって思ってるわけ?
0973
垢版 |
2017/11/30(木) 22:59:11.95ID:5c50KJX1
c11が実行できるところだと実行できると思う。pfの便利さもわかる。
ideoneはc11が動かんからcでは確認できないけど、c++14だと動いた。
https://ideone.com/0PBzBG
このままtest.cでも動くんじゃないかな。
スマホからでほかの環境めんどくさくて見てない。ごめん。
0975
垢版 |
2017/11/30(木) 23:01:40.03ID:5c50KJX1
>>970
知ってるよ。利点は。lispまだ使ってるしな。

>>971
それより、maxとminと、min_not_zeroの方が好き。
0976
垢版 |
2017/11/30(木) 23:03:30.70ID:5c50KJX1
>>974
これは俺も煽って申し訳ない。
0977デフォルトの名無しさん
垢版 |
2017/11/30(木) 23:09:55.30ID:6I05rtBK
そういやプリプロセッサが乗ってる言語って最新の言語では見ないよな。
Go言語は意図的に削ったのは分かるんだけど(コンパイル速度優先のため)
他のはどういう理由なんだろうな。swiftとかあったほうがいいと思うんだが
0978デフォルトの名無しさん
垢版 |
2017/11/30(木) 23:14:35.31ID:SJCWnhNZ
構文として統合されたマクロならむしろ盛況な気がする
DやTemplate Haskellやcamlp[45]が散々こねくりまわして、nimにもrustにも
Cプリプロセッサのような、言語からも独立して使えるようなマクロはないけどさ
0979デフォルトの名無しさん
垢版 |
2017/11/30(木) 23:20:37.73ID:7wApdvUL
>>977
単純にダサいからだよ
言語設計者にとってみれば、自分の言語はテキストマクロに頼らないと使い物にならないゴミですと恥を晒してるようなもんだ
0980デフォルトの名無しさん
垢版 |
2017/11/30(木) 23:30:56.56ID:SJCWnhNZ
まあC言語のポータビリティの高さはマクロがテキストマクロってことが大きい
構文マクロだと、複数のコンパイラによって拡張構文がちょっとずつ違うみたいな状況には対応できん
次世代言語が実用に耐えてるのは処理系が「まだ」ひとつしかないって面もあると思う
0982デフォルトの名無しさん
垢版 |
2017/12/01(金) 07:30:06.98ID:lcmprfyj
>>945
すまんが今来た俺もお前が手抜き過ぎると思うわ
分かんないなら無闇に質問するんじゃなく勉強するか
じふには理解できないものと諦めろよ。
自分に理解できないのは相手が悪いみたいな態度は、
もっとこう、なんでも分かる人にしか許されないと思うぞ
それに相手ちゃんと質問に詳しく答えてくれてるじゃん。
以上。
0983デフォルトの名無しさん
垢版 |
2017/12/01(金) 08:36:21.42ID:LZY9k/Ly
どうせあが言ってる事はまた理解できない事だろうから、俺が理解できないのもこいつが悪いに違いない
まあ仕方無いかもしれないな
0984デフォルトの名無しさん
垢版 |
2017/12/01(金) 08:45:25.80ID:z9aMt2sx
cのマクロで言いたかったことは
別にcのマクロが良いものだって話ではなくて、
高級な機能のマクロでバカが作ったものより
低級な機能でも優秀な人が作った枯れた技術のが安定するってことなんだけどな。
レス数が950を超えています。1000を超えると書き込みができなくなります。

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