次世代言語9[Haskell Rust Kotlin TypeScript Dart]

■ このスレッドは過去ログ倉庫に格納されています
2018/03/06(火) 10:09:15.60ID:x/Au45rc
スレタイ以外の言語もok

前スレ
次世代言語Part8[Haskell Rust Kotlin TypeScript]
http://mevius.5ch.net/test/read.cgi/tech/1512137301/
601デフォルトの名無しさん
垢版 |
2018/03/25(日) 00:16:01.86ID:U5SlEUJl
民主党→民進党のように名前をちょっと変えると爆発的に売れる場合もあるからな。
2018/03/25(日) 00:18:17.39ID:JVNvN7ma
>>591
保守性という観点で言えば、DRYさえ死守してれば後は些細な問題だと思うよ
HTMLに限った話じゃないけど
2018/03/25(日) 00:30:12.26ID:GhdgZmXr
htmlでdryを守とかそれが無理だっつーの
2018/03/25(日) 00:41:53.53ID:Wz8WBZT8
OCamlに話すことあるか?
2018/03/25(日) 00:55:24.67ID:Qy9e8iWO
>>594
収益に直結してないものはやりたい人がいなくなったらそれまでだからな
606デフォルトの名無しさん
垢版 |
2018/03/25(日) 01:20:58.23ID:4Rittzre
>>602
全部グローバル変数で名前規則さえ死守してればいいとでも言うのか?
2018/03/25(日) 07:18:41.27ID:WO056vpM
>>604
Haskellと重複する部分についてDRYを死守する方法を話して
608デフォルトの名無しさん
垢版 |
2018/03/25(日) 08:01:39.02ID:U5SlEUJl
http://www.stroustrup.com/JSF-AV-rules.pdf
ロッキード・マーティン F-35 Strike Fighter Air Vehicle 開発のためのC++コーディング・ガイドライン。
※URLでお分かりの通り禿が関わっています。
2018/03/25(日) 14:46:57.32ID:2EIVAaim
>>601
立憲民主党と勘違いしてない?
2018/03/25(日) 16:11:18.40ID:+oTPc842
関数があるのにDRYに苦労する状況が分からん
611デフォルトの名無しさん
垢版 |
2018/03/25(日) 19:01:20.02ID:NiWlHtrf
政治の話はNGで
2018/03/25(日) 21:25:39.57ID:WO056vpM
プログラム技術という観点では政治も経済も経営もNG
613デフォルトの名無しさん
垢版 |
2018/03/25(日) 22:55:03.56ID:U5SlEUJl
政治では名前が長くなり始めると危険領域だよな。
○○民主主義自由独立解放戦線的な。
朝鮮民主主義人民共和国とか欲張りすぎな国もあるし。
予言しておくけど立憲民主党は時代とともに名前が長くなるぞ。
614デフォルトの名無しさん
垢版 |
2018/03/25(日) 22:56:11.12ID:U5SlEUJl
日本も大日本帝国時代は危険領域だったんだろな。
615デフォルトの名無しさん
垢版 |
2018/03/25(日) 22:57:49.97ID:U5SlEUJl
Googleのコーディングガイドラインは名前はいくら長くなっても良い、省略された名前はダメと述べているからな。
罠かもしれんな。
616デフォルトの名無しさん
垢版 |
2018/03/26(月) 00:02:29.61ID:3hemhRjv
悩ましいぞな
2018/03/26(月) 00:05:05.18ID:mhu6xXG+
つまりこう

for (int indexOfItemInArrayOfProxyInformation = 0; ; ++i) {
auto proxyInformation = arrayOfProxyInformation[indexOfItemInArrayOfProxyInfomation];
...

みたいな
2018/03/26(月) 00:08:00.38ID:QH+aPMzj
ofを使ったら負け
2018/03/26(月) 00:10:58.12ID:mhu6xXG+
でもインデックス複数あったら?
620デフォルトの名無しさん
垢版 |
2018/03/26(月) 00:23:51.81ID:WZ1ZCWjW
ストアドよりインデックスのほうが早いよ。
621デフォルトの名無しさん
垢版 |
2018/03/26(月) 00:32:41.52ID:ceAN67+T
何でも極端に走っちゃいかん。
バランスは大事よ。
2018/03/26(月) 00:35:46.73ID:mhu6xXG+
getInfo なんてのは Android の api でも見かけるし
information を info と略するのはありなんだろうな
普通の会話でもしばしばそう略すし

他にもなにか例外があるかとAndroid ndk api リファレンス眺めたら
名前がどれもこれも長くて驚いたわ…特にenum
2018/03/26(月) 01:21:09.02ID:BMtnwc7n
理由がわからない命令に従うから暴走するんだな
長くする理由を知ってたら必要な長さ以上にはならないし
理解できないものは反対したり批判したりする習慣があれば暴走しない
2018/03/26(月) 01:28:05.88ID:mhu6xXG+
例えを出しただけなのに「理由がわからないなら反対しろ!」と言われましても…
2018/03/26(月) 01:45:15.94ID:h+3ybIF8
馬鹿らし過ぎる。。
関数切り出してスコープ切ればいいだけの話だろうに。
今時の言語ならネームスペースだって使えるだろうし、エイリアシングみたいなものも
ある。
てかそれもなければなんの略かのコメントでも付けてろよ。
2018/03/26(月) 01:59:38.91ID:BMtnwc7n
>>624
反対しろとは言ってないぞ
しかし単語の組み合わせを少し改竄するとそういう意味になる可能性はあるのか

だから短い単語を組み合わせるのをやめて長い固有名詞を一個だけ書くのか
2018/03/26(月) 02:02:12.66ID:hwIkGQhx
goだとどいつもこいつもクッソ短いんだけどな
google内でも派閥があると見える
2018/03/26(月) 02:05:44.31ID:mhu6xXG+
>>626
哲学とかも不要な誤解や意図した曲解を避けるために用語をどんどん定義していくよね

今回で言えば「合目的的」であれ、とかか。
でも非常に長い名前は必ずしも判りにくくは無いんだよねああして書いてみると。
見難いのが問題なだけであって。
2018/03/26(月) 03:07:46.44ID:qQm2MzQc
名前が無いものに分かりやすい名前を付けようとするとどうしてもそのまんまの名前になっちゃうんだよな
aにbを足してcをかけた数に「aにbを足してcをかけた数」という名前を付けたり
630デフォルトの名無しさん
垢版 |
2018/03/26(月) 04:27:44.25ID:WZ1ZCWjW
C++11から日本語の識別子も使えるようになったんだよな。
ということは。

#define もしも if

もしも(0 < プロキシ情報の配列におけるアイテムの索引) {
  ・・・
}
631デフォルトの名無しさん
垢版 |
2018/03/26(月) 07:19:11.84ID:WZ1ZCWjW
最近気が付いたのは、MSは情報を収集するためにちょっと踏み込んだことをしてるな。
Google的になったというか。
例えばMSが提供する一部のアプリケーションでは変換中の文字列について対象文節をわかりにくくするようになった。
これはつまり、単漢字変換のようなことをせず、一括変換してから間違えた部分を修正してほしいということだろう。
なぜそのようなことをするのか?
誤変換に関する統計情報が欲しいのだろう。
632デフォルトの名無しさん
垢版 |
2018/03/26(月) 07:21:37.08ID:WZ1ZCWjW
もちろん、一括変換がうまく機能しないからこそユーザーは変換範囲を狭めて変換するのだし、誤変換情報が欲しいのは、変換が上手くいかないことがわかっているからだろう。
つまり、一部のソフトウェアは意図的にとても使いづらくなっている。
2018/03/26(月) 08:36:23.04ID:fyNor71T
つまり次世代言語とは日本語の事だった…!?
634デフォルトの名無しさん
垢版 |
2018/03/26(月) 08:48:45.88ID:WZ1ZCWjW
いや中国語だろうけどさ。
2018/03/26(月) 16:34:24.37ID:b2RxclhK
ブラックジョークかな?
2018/03/26(月) 16:41:17.53ID:jinbnpD9
でもたしかにコードが中国語なら、短い変数名で意味が通るからコードはすっきりしそう
2018/03/26(月) 16:52:27.07ID:Xx23wWxJ
C 風の文法なら名前が空白区切りで並ぶ必要あまり無いし、
名前の途中に空白を含めても良いという言語があっていい気がする

var indexOfProxy := 0;
var index of proxy := 0;

どっちが見やすいかな
2018/03/26(月) 17:37:31.08ID:dvRuSlEv
>>636
今の中国の字(簡体字)はよくわかりません
2018/03/26(月) 18:56:27.15ID:MGgBxL58
謝謝茄子…
2018/03/26(月) 19:33:26.92ID:sC9O8aKE
>>637
勘弁して。こんな発想はエアプだけだろ。少なくともエディターとの連携がしづらいし。
そもそもどっからどこまでが予約語で変数かどうやって判断するの?

当然の帰着として変数名に予約語を含めることは絶対禁止ってことになるだろ。
想像しただけで死にたくなってきた。
2018/03/26(月) 19:40:27.04ID:jinbnpD9
Fortranは空白無視するがな
642デフォルトの名無しさん
垢版 |
2018/03/26(月) 19:55:57.52ID:pOsEMXVS
お前ホモかよお!?
2018/03/27(火) 00:43:26.13ID:ry3uUZdU
予約語は大文字だけ、変数名は小文字だけで書くとか…

VAR index of proxy := 0;
2018/03/27(火) 00:56:02.73ID:Zrk+MxC2
そんな前時代的な……
2018/03/27(火) 01:05:23.75ID:5DREL+sj
クソワロタwww
2018/03/27(火) 01:14:44.93ID:1nOfLeWK
お前ら頭悪いなwww
俺様が華麗に解決してやろう
ほらよ
var index%20of%20proxy := 0;
2018/03/27(火) 02:14:32.56ID:xOo+kmL4
どんどんバカになっていってる。
2018/03/27(火) 02:49:05.89ID:nthqohzW
>>646
読みにくいしこうしたらどうだろう?(名案)

var index_of_proxy := 0;
2018/03/27(火) 11:11:55.54ID:4hOyl1p5
バカなことを思いつくことは誰にでもあるが
それを宣伝して押し売りするか黙って廃棄するかの判断がおかしくなってるんだろう
2018/03/27(火) 22:54:29.91ID:D/rPklFE
いわゆる全角スペース使うとか、とにかくコンパイラにスペースと思われない文字だが見た目がスペースのやつを使えばいいのでは?
Java なんかはそれでなんとかなっちゃうよな。
2018/03/27(火) 22:59:22.15ID:xOo+kmL4
職場で本気でそんなことしだしたら俺は怒るよ。
2018/03/27(火) 23:16:27.79ID:iLpxT8od
DDDとかだとDSLを作るって言うけど
それって変数名とかメソッド名に日本語を許容するってこともありえんのかな?
2018/03/27(火) 23:35:51.57ID:O0jMKDc6
最近の言語って識別子に日本語使えるの増えたよな。まあ日本語っていうかUnicodeなんだけど。
654デフォルトの名無しさん
垢版 |
2018/03/28(水) 05:56:44.07ID:LrPDAu7h
絵文字を駆使したハンガリアン記法時代の幕開けだ
2018/03/28(水) 07:22:48.81ID:lXnJ1NTY
ようやく時代がSmalltalk-72に追いついたかw
https://pbs.twimg.com/media/DDhrUoSXkAAtvJO?format=jpg
2018/03/28(水) 10:43:26.92ID:Pilbwiej
時代を先取りしすぎるのも考え物
2018/03/28(水) 10:45:01.89ID:qnpV2Jxp
APL…
2018/03/28(水) 10:53:19.54ID:yjlej8xR
正直APLは今なら流行ると思う
2018/03/28(水) 10:55:53.02ID:qnpV2Jxp
統計とか各種データの集計に良さそうだもんな
660655
垢版 |
2018/03/28(水) 11:29:22.55ID:ng8CxZVM
>>657
たしかにそうなんですが…APLの方は記号を読みやすくするために用いているように思えなかったので…

ピタッとはまれば驚愕の短さで書けますけどね

例: Conway's Game Of Life in APL
https://www.youtube.com/watch?v=a9xAKttWgP4
2018/03/28(水) 16:41:04.69ID:Lb32PKeB
>>654
むしろ文字使用禁止な言語
(コーディングルールじゃなく言語仕様でemojiと記号を強制)
次世代言語感がいっぱいw
2018/03/28(水) 17:21:22.86ID:4ymmJVEB
そういう次世代感か…
文法エラーにも優しくどう書いても何らかの動作をすることが望ましいな。
「プログラマになろう」というサイトを開いてみるか
2018/03/28(水) 22:26:11.70ID:CTFOdrqh
チューリング完全になろう系じゃないか
C++とHaskellの親戚みたいな言語がいっぱいだぞ
2018/03/28(水) 23:09:42.27ID:yjlej8xR
C++とHaskell の親戚ってなんだ
2018/03/29(木) 02:16:30.07ID:Hc4kPWXM
テンプレ(異世界転生or転移、チート、ハーレムあり)小説が量産されるみたいなノリで
テンプレ(手続き型or関数型、型推論あり)言語が量産されるわけか

その傾向はあるよね
2018/03/29(木) 02:37:14.12ID:tc7M6rRR
Fortranのサブルーチンみたいな感じで副作用は全部intent(out)の引数にのみ許すことで実質純粋手続きみたいな言語って他にある?
2018/03/29(木) 07:56:15.41ID:plQi1Ped
COBOLとかPLIとか汎用機時代の主役はだいたいそうでしょ
まさかCOBOLプログラミングは全部グローバル変数でデータのやり取りをするみたいな話を真に受けてる?
そんなの汎用機全盛時代の超規模開発において一山いくらのPG達に管理しきれるわけないだろ
コンパイル単位を分割して、サブプログラムに明示的に構造体の参照を渡す形でリンクするか、別の実行ファイルにして間に一時ファイルを挟むんだよ
Cがヘッダのincludeを覚えてしまったことで業界がダークサイドに堕ちたけど、昔のプログラムは今よりずっと疎結合で単体テストしやすかったんだよ
2018/03/29(木) 08:11:58.91ID:xXxQyZNu
グローバル変数を使うのはパソコンのbasicの時代ではないか
プロがどんな美しいコードを書こうが
ネットで検索できるオープンソース以外は知ったことではない
2018/03/29(木) 08:13:12.45ID:9BLtoEOh
以前の俺含め今時は一時ファイルなんかダサいAPIやメッセージキューにしろなどと抜かす人が多いけど、汎用機を経験するとみんなバッチ信者になるよ
単体テストしやすく、開発規模面でもパフォーマンスス面でもスケーラブルで、運用も容易
汎用機のバッチ処理の設計は現代のプログラマ全員が学ぶべき素晴らしい技術
2018/03/29(木) 08:25:29.74ID:xXxQyZNu
ダサいというのは建前で、JITコンパイラ言語でそれをやりたくないのが本音ではないか
2018/03/29(木) 08:28:00.50ID:Hc4kPWXM
Linux でも良くやってるぞ
2018/03/29(木) 09:11:24.31ID:r+OSvbaK
>>669
モックライブラリがこんなに発達してるのに何言ってんだ
2018/03/29(木) 09:27:39.99ID:pztT5rJU
>>672
バッチならファイル作って放り込むだけやぞ
結合状態でのリグレッションテストとかもdiff取るだけだし
2018/03/29(木) 10:09:08.49ID:CZF8yyoA
バッチ処理で何してんの?
システム運用中に流せるもの?
停止してから流すとしたら、想定時間内に終わらないように作んないといけなかったりするんじゃないの?
2018/03/29(木) 10:18:06.32ID:r+OSvbaK
>>673
モックならインスタンス作って放り込むだけやぞ
結合状態でのリグレッションテストとかも状態比較するだけだし
2018/03/29(木) 10:48:51.83ID:pztT5rJU
>>675
結果が意図しないものになってるときにどうやって途中経過を調べるの?
バッチならファイル見れば一発だけど、全サービスクラスにログ出力入れるの?
2018/03/29(木) 11:16:09.01ID:r+OSvbaK
>>676
ログ出力も何もオブジェクトのスナップショットとって状態比較するだけ
てか、結合テストで途中結果見てる時点で、それモジュールテストだろっていう
2018/03/29(木) 11:18:13.25ID:r+OSvbaK
結合テストでは通常おのおののモジュールが期待した結果を出力することを前提に振る舞いテストのみを行うだろ?
結果の比較なんかしてる時点で、考え方がズレてる
2018/03/29(木) 11:26:16.78ID:r+OSvbaK
てか>>674も書いてるけど、バッチ処理なんて前提条件厳しすぎるし、障害対応もめちゃくちゃ大変だろ
今どき、そんなシステムどんな業種で開発するんだ
680デフォルトの名無しさん
垢版 |
2018/03/29(木) 16:52:27.07ID:wUGa4G8N
>>666
純粋手続きってのがわからん。
引数にin outだったらadaも付けれるぞ。
2018/03/29(木) 17:13:18.86ID:mREgEFij
>>680
Fortranのpure subroutineのことや。まんま訳して純粋手続きって書いたけど、分かりにくいなら以後pure subroutineって書くわ
2018/03/29(木) 17:55:25.23ID:d3FuArtt
>>680
Fortran等の昔の言語には、サブルーチンと関数の区別があって
サブルーチンは副作用あり、関数は副作用なしって使い分けがあったんだよ
(その区別はAdaにもあったんだが、2012年の改定で関数もoutパラメータを持てるようになってしまった)
2018/03/29(木) 17:57:17.44ID:mREgEFij
>>682
intent(out)さえつけといたらsubroutineにもpure修飾子をつけれることを俺は>>666で言ったの
2018/03/29(木) 18:04:24.92ID:d3FuArtt
>>683
あーすまん、話の流れを追いきれてなかった
2018/03/29(木) 18:42:15.80ID:mREgEFij
言ったのと言いつつ言ったつもりになってただけだわ。謝られるとこっちが申し訳ない
686680
垢版 |
2018/03/29(木) 22:25:28.48ID:wUGa4G8N
>>682
なるほどわかりやすい説明サンクス。
2018/03/29(木) 23:19:00.18ID:fG+oYH1y
元々の問いに対する答えは持ってないけど、そもそも
引数に明示するのは返却値の代入と同じで副作用でも何でも無いような。
2018/03/30(金) 00:38:00.59ID:Cv8Wlmrv
そういう、単に複数の値を返したい(outパラメータを使いたい)からというだけで
関数ではなくてサブルーチンになっている物に対して、副作用がないことを明示できるのが
Fortranのpure、という話だろう
今時なら普通にタプル返すだけだけど
2018/03/30(金) 01:00:29.06ID:Z4F/kC6f
>>688
そうそうそれそれ。汲み取ってくれてありがとう
タプルで返すのもいいんだけど、大きなベクトルとか行列とかは返り値として返そうとすると確保やらコピーやらのコストがかかっちゃうから、サブルーチンって結構いいと思うんだよね
2018/03/30(金) 03:17:21.13ID:Wx9gH+Ym
でかい配列を返すとして、オブジェクトを複製せずポインター返しておしまいという言語も多いし
2018/03/30(金) 12:08:24.66ID:27QTfa4q
それのオーバーヘッドがどの程度のものなのかよく分からんで不気味に感じるんだよな。俺が勉強不足なだけかな
2018/03/30(金) 21:17:44.20ID:S5bBhBUr
ベンチマーク取ればいいだけじゃん
2018/03/30(金) 21:25:37.94ID:gL2Crqwy
まあ実際そこそこオーバーヘッドあるんだけどね
2018/03/30(金) 21:34:29.21ID:35t2qqJ0
ベンチマークとれ
テストコードかけ
は若手にいうと凄まじく煙たがれるなw
2018/03/30(金) 21:37:02.92ID:lbiuvb17
毎回毎回 (N)RVO が効くかなと頭使ったりプロファイル計測したりするより
可能なら out パラメータにしたくなるよな

string だけは何故か気軽に戻り値にしてしまうが
2018/03/30(金) 21:53:34.74ID:Lu4RhpIc
なるほど。
値型ローカル変数でスタックを確保する事が意味論的に決まってると、
返却値でコピー回避は難しいですね。
Nimでresultが予約変数になってるのも不思議だったけど、外部で確保した
領域を直接割り当てられる、みたいな理由だったりするのかな。
2018/03/30(金) 22:05:59.64ID:lbiuvb17
c++ の場合 RVO (return value optimization) が最高に効けば

string f() { return string(“123”); }

void f(void * retval) { new (retval) (“123);}
のように戻り値を呼び出し側が渡した領域に直接コンストラクトするから、

void f(string &s) { s = “123”; }
よりも高速になる可能性がかなりあるんだよね
vectorでもなんでも同じだけど

どうでもいいか
2018/03/30(金) 22:50:08.41ID:MliDoeQ0
C++ならplacement newを使う手もありそうだが実際に使いこなせる気がしない
2018/03/30(金) 22:51:45.23ID:35t2qqJ0
どうでもいいな。
そこまで速度欲しいなら他にもっと直接的なやり方がいくらでもあるだろうに。
2018/03/30(金) 22:53:37.54ID:s5wfWcqZ
そんな細かいことで速くなるような状況ならインライン展開されるだろ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。