次世代言語15 Go Rust Swift Kotlin TypeScript

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/11/04(日) 20:30:10.42ID:OF8fjEC1
スレタイ以外の言語もok

前スレ
次世代言語14 Elixir Crystal Julia Rust Swift
https://itest.5ch.net/mevius/test/read.cgi/tech/1536668904
2019/03/25(月) 21:00:38.33ID:/ev0NUx0
関数のオーバロードは正直なくてもいいかなと思うけど(別の名前にすればいいだけ)
その言語はオブジェクトのコンストラクタのオーバロードも多分ないよね
それはどうするか、ちょっと困るな
2019/03/25(月) 21:00:47.68ID:UtVBJg4o
オーバーロードと、実装を上書きするタイプのオーバーライドは絶滅すべき
2019/03/25(月) 21:14:48.42ID:+4I8CbY7
>>604
Go Rustはオーバロードが無く、ただのstaticなファクトリメソッドでやってるよ
2019/03/25(月) 21:21:17.36ID:g4/jn9Nj
fabs()再び
2019/03/25(月) 21:24:14.16ID:g4/jn9Nj
オーバーロードがないとintのabsのほかにfloat用のfabsを用意しないといけない
609デフォルトの名無しさん
垢版 |
2019/03/25(月) 21:27:47.27ID:1GKiPWph
>>602
リーナスも似たようなこと言ってたな
記事探すの面倒だから貼らないが
(誰か探して貼ってくれないかなチラッ)
2019/03/25(月) 21:39:42.65ID:/ev0NUx0
>>608
そっちはジェネリクスで対応するのでは
2019/03/25(月) 22:26:27.11ID:8zmAEr9n
オーバーロードだったらマクロのが少しはマシ。
2019/03/25(月) 22:27:46.86ID:xXsGZ5++
>>603
ts のunion は interface 無しでダックタイピング効くから、参照する時必ず型チェックが必要なわけじゃない
型自体の定義も type alias しておけば一箇所で済むし
静的型付け言語でany使うよりは、遥かに手間はかからないよ
2019/03/25(月) 22:37:18.45ID:g4/jn9Nj
>>612
だったら余計にinterface付けろよと思うわ
614デフォルトの名無しさん
垢版 |
2019/03/25(月) 22:38:35.21ID:9YEdKAJP
Go、Swift、Kotlinの3つは、文法ぐらい一緒にしてくれたら良かったのにな
2019/03/25(月) 22:53:56.04ID:wbp6GG9F
なんかこだわりがあったんだろう
616デフォルトの名無しさん
垢版 |
2019/03/25(月) 22:55:21.22ID:9YEdKAJP
配列にしてもさあ、カッコの形とかにこだわりなんてあるんか?
2019/03/25(月) 22:55:47.18ID:itUJX6EY
どんな言語使おうが、糞バカ中世ジャップランドSIと、土人ベトコンオフショアが合体すれば
全部ゴミにできるんだけどなw
2019/03/25(月) 23:19:26.53ID:4CvSxgZ7
Kotlinはぱっと見Scalaかと思うくらい似てるよなー
2019/03/26(火) 09:15:45.15ID:awRDKjDw
えっ?(笑)
2019/03/26(火) 10:31:07.40ID:F8U/TA3Z
2019/03/06 15:42:58
2019年の愛され言語第1位、嫌われ言語第1位は?
https://news.mynavi.jp/article/20190306-784182/
「愛されプログラミング言語」
Python (51%)
Javascript (49%)
Java (37%)
HTML (34%)
C++ (23%)

嫌われプログラミング言語は以下
PHP (19%)
Objective-C (12%)
Java (11%)

対象となったプログラミング言語を愛している理由としては、その言語を学習するためのリソースや開発するためのリソースが充実していることが挙げられている。
逆に嫌っている理由としては、対象のプログラミング言語を使ったコーディングが楽しくないからという理由が多く挙げられている。
621デフォルトの名無しさん
垢版 |
2019/03/26(火) 11:13:59.02ID:pnvMlsp3
忘れ去られた言語
ruupy
622デフォルトの名無しさん
垢版 |
2019/03/26(火) 14:00:36.03ID:PDyA3k9g
>>621
俺は忘れてない。なぜならその名前を見たのは今が初めてだからだ。
623デフォルトの名無しさん
垢版 |
2019/03/26(火) 14:20:02.74ID:pnvMlsp3
ごめんごめんpoopyだっけ?w
624デフォルトの名無しさん
垢版 |
2019/03/26(火) 16:57:14.07ID:PDyA3k9g
>>623
それについても俺は忘れてない。なぜなら以下同文
625デフォルトの名無しさん
垢版 |
2019/03/26(火) 17:32:40.93ID:pnvMlsp3
rubooだったか?
626デフォルトの名無しさん
垢版 |
2019/03/26(火) 19:16:35.45ID:PDyA3k9g
以下同文
2019/03/26(火) 19:18:56.38ID:NbUyZWCM
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 99934
https://you-can-program.hatenablog.jp
2019/03/27(水) 17:04:40.79ID:ioHKDgtI
>>602
先にジェネリクスがあったらオーバーロードは不採用だったと思う
629デフォルトの名無しさん
垢版 |
2019/03/27(水) 17:15:00.98ID:TdLaeqVz
>>627
あと一回見かけたらはてブロに通報するわ
2019/03/27(水) 17:15:08.52ID:SZ6CWUW7
ジェネリックで必ず同じ操作になるならいいけど
そうでもないときはジェネリックではどうにもできない
2019/03/27(水) 17:18:22.78ID:SZ6CWUW7
オーバーロード否定派は動的型付け言語か形無し言語がメインの人なんだろうか?
2019/03/27(水) 18:22:56.09ID:L8U/qf4n
Cはユーザーが定義できない演算子だけオーバーロードする
ユーザーが定義してない型の情報だけコンパイル後に残る

このユーザー定義型の不当な制限をなくすというC++の理念のおかげで
オーバーロードや実行時型情報ができた
めでたしめでたし
2019/03/27(水) 19:26:19.13ID:0edTBLWO
ほとんどの言語が強制キャストできるのが原因で型安全でなくなっているのが
何とかならない
2019/03/27(水) 19:52:11.21ID:DpIgan7F
>>631
静的型付けメインにも普通に居るよ
RustやGoも関数オーバーロードを導入しなかったし

作為的な例にはなるけどむしろ型システムの阻害要因になることもある
https://ideone.com/uJ1lyb
https://ideone.com/P96nVa
2019/03/27(水) 19:59:52.56ID:DpIgan7F
後者の例で言うと、ライブラリの関数に気を利かせてオーバーロードを追加したところ
別のプロジェクトの既存コードがコンパイル出来なくなったとかもあり得る
636デフォルトの名無しさん
垢版 |
2019/03/27(水) 20:08:46.35ID:kkhErUOi
やはりリーナスは正しかった!
c最高!
c++はうんこ!
2019/03/27(水) 20:12:19.93ID:KDFmmUkx
暗黙の型変換を含めた場合のオーバーロードの地獄感は半端ない。
2019/03/27(水) 21:04:39.85ID:ZMj2RB3N
それにテンプレートとADLが絡んでカオス
2019/03/30(土) 03:45:54.68ID:x88rhneO
クロスキャストはカスだから滅びろ
インターフェースの実装を鞍替えしたいんだったらFactoryとか使えや
2019/03/30(土) 10:52:42.58ID:PY6ZYblo
型名を隠蔽すればキャストできないので
無名クラスとラムダの世界ランクが右肩上がり
2019/03/30(土) 13:35:24.87ID:wGFGqWwF
本当に欲しいのは型ではなく制約
2019/03/30(土) 19:28:46.42ID:grSCIEfK
ガイジみたいなコード書くガイジを殺していい法律を作ることだな
皆殺しにしてやるよ
643デフォルトの名無しさん
垢版 |
2019/03/31(日) 08:00:06.83ID:S4Tb/ZFO
次世代かは知らんけど、Haskell奥が深い。
プログラマーのための圏論っていうのをネットから落として読んでるが、
圏論的には変数や値そのものも関数足り得るとか、読んでて面白い(理解してるかは怪しいが)

int n = 1とint n(){ return 1 }が同じと言うのは言い得て妙だなと。
Haskellで関数にカッコ使わないのはこれを体現する為なんだなと。

n = 1 ― Haskell的には変数でもあり、引数無しの関数。

関数も値でもあるんだから

sum = foldl (+) 0は、sum xs = foldl (+) 0 xsの部分適用で変数を(見かけ上)減らした関数であると同時に、
部分適用した関数に束縛した変数でもある。。。と。

と言うことはHaskellのmain関数も、関数であり変数なんだなーと。
関数を呼んでプログラムが走り出すとも言えるし、変数を評価しようとして、結果として束縛されたプログラムが走り出すとも言える。

main = putStrLn "hello" ― main関数を呼ばれたとも言えるし、変数mainを評価して値(IO ())を得る過程でプログラムが走り出すとも言える。
2019/03/31(日) 10:38:58.10ID:UUJRkrO5
概念は有用だし言語の進化に多大な影響を与えたけど
道具としてのHaskellは今の位置から上がってくることは無いだろうな
2019/03/31(日) 10:43:21.70ID:KUHIQC/W
>>644 確かにその通り。 実用的な言語は、わかりやすくバグが出にくいことが重要。
他人のコードでも誰が見ても一目でわかるみたいな。
2019/03/31(日) 11:07:42.57ID:s7MuzANU
実用なら副作用認めた方が絶対的に有利なわけでそういうのはOCamlなりF#が担えばいいよ
Haskellが勉強のための言語なのはこの先もかわらない
2019/03/31(日) 13:08:06.82ID:88fzeBO9
xmonadとかあるし、実用的でないとは言い切れないが、いかんせん学習コストが高くてマンパワーに頼れんからな
2019/03/31(日) 18:14:52.08ID:hIxqKKME
Haskellの再発明のようなアイデアを思いつくやつは必ず出てくるよ
これHaskellでやったやつだって教えてあげないと再発明を止められない
高い学習コストをもう一回課金される
2019/03/31(日) 19:22:10.57ID:m+UFTh7s
Haskellは数学的な背景があるから一部だけパクってもうまくいかんでしょ
2019/03/31(日) 20:26:01.36ID:hIxqKKME
一部だけ学ぶのはダメってのは見覚えがある
Perlでやったやつだ
一部だけでいいと作者が言ってるのに全部やろうとして挫折するやつだ
2019/03/31(日) 20:40:52.20ID:1YONhXIR
https://speakerdeck.com/uzulla/gui-tutekita-ping-cheng-zui-hou-falseoreorehuremuwakufalsezuo-rifang

なんでペチパーって自作FW作りたがるん?
もうしばらく関わってないけど、糞SIerいたとき糞案件が軒並み自社製PHP FW(糞)だったの思い出したわ
2019/03/31(日) 21:26:26.85ID:fpw7uUAj
量産型Webは技術が完全に硬直化してるから、ちょっと意識高い奴がマウント取りたくても差別化できるネタが少ないんだよ
で既存の開発プロセスのオーバーエンジニアリングに向かうわけだけど、
ペチパーレベルではインフラや言語を改善したりそもそも開発作業自体を減らすって方向には行きにくい
そこで手頃なのがFWというわけ
2019/03/31(日) 21:52:14.80ID:rPARd9Mh
もともとFWっていうのは汚いコードを寄せ集めてライブラリ化した上で
汚いコードの寄せ集めを使う処理を手順化して綺麗に見せるための仕組みだったんだけどな
2019/03/31(日) 21:59:57.35ID:hQIJpK9h
diコンテナは何のメリットがあるのか不明
2019/03/31(日) 22:31:08.06ID:BrkeBPe8
>>654
は?
2019/03/31(日) 22:37:11.66ID:hQIJpK9h
依存性注入はクラスが増えてカオスになる
何故かjavaではよく使われるのが謎
2019/03/31(日) 22:49:56.27ID:fbfMx+RF
オブジェクト指向だとクラスは大量に作るもんだぞ
2019/03/31(日) 22:58:47.59ID:vireAt4B
それLaravel使えば問題ない話じゃね?
2019/03/31(日) 22:59:24.74ID:vireAt4B
アンカ抜けてた>>651
2019/03/31(日) 23:08:51.93ID:rPARd9Mh
カオスだと感じる脳程度だけしか持ち得てないんだろう
察してやれよ
661デフォルトの名無しさん
垢版 |
2019/03/31(日) 23:49:26.60ID:qnazkb5e
FXの自動売買ツールを無料で配布しています。
http://hbgvf.blog.jp
2019/04/01(月) 00:33:10.08ID:dYyCWZhX
人類最底辺の脳みそしか持ち合わせてない永遠の土方ペチプァの話題なんか出すな
スレが穢れる
2019/04/01(月) 01:55:20.15ID://wZRuJn
>>640
ついでにSAMも滅びろ
あいつ使いにくくてかなわん
2019/04/01(月) 02:44:37.39ID:PICzK0N0
>>646 だれが勉強すんねん
一目見た時から、恋の花が咲いた
のでは無く、こりゃダメだと思った。
2019/04/01(月) 02:48:36.94ID:PICzK0N0
逆に Python はなんとなく幼い頃の悪ガキ仲間と似てるなと思ってたら、立派に成長して懐の深い大人になってた。
ちょっと見の見た目で判断してはいけない。
2019/04/01(月) 07:12:14.06ID:dYyCWZhX
単純に機械学習ライブラリの虎の威借りてるだけだろ
言語としてはPHP並の糞だわ
venv周りも糞糞アンド糞だしな
2019/04/01(月) 20:13:46.91ID:5Qv5OJbI
そのへん、他の軽量級言語は何故うまくやれなかったのかな。
2019/04/01(月) 20:23:06.27ID:no59bRT+
情報系専門でない連中が多い分野だから、言語オナニーには興味ないんだよ
Pythonは昔から数値計算系のライブラリが充実してたし学習コストも低い
2019/04/01(月) 21:00:27.10ID:oZ4uWA1m
venvなぁ。
中にpython.exeがそのまんま入ってたのを見たときはコントかと思ったw
2019/04/01(月) 21:18:09.61ID:dOhRlOJ8
数学の関数やOSのシステムコールを
いちいちオブジェクト指向に翻訳しないといけない文化は仕様が不安定になる

不安定な自作オブジェクトを集めたものが自作FWになる
2019/04/01(月) 21:52:46.65ID:I/9Vex97
pyenvとかあの辺弄るくらいならdockerで閉じ込めた方がマシ。
672デフォルトの名無しさん
垢版 |
2019/04/02(火) 09:42:15.53ID:exqjvsIl
>>670
翻訳しないで済むOS作れば良いのでは?
2019/04/02(火) 20:30:27.35ID:JAcM/MrS
WinRTがそれかな
2019/04/03(水) 11:55:08.65ID:eJ7jSanC
>>671
venvに比べたら、docker重いよ。
2019/04/03(水) 12:10:05.50ID:nFtQHhqP
>>668
その言語オナシストたちが挙ってPython推してるからお前も鼻が高いだろう
良かったな
676デフォルトの名無しさん
垢版 |
2019/04/03(水) 13:11:27.32ID:GUjlsyjt
dockerがどっかー行っちゃったー


すまん。一度言ってみたかったんだ。ゆるせ。
2019/04/03(水) 13:47:18.98ID:ZdmGYXWn
実際には一人で気持ち良くなるのではなく
staticおじさんを責める自分に酔ってるみたいなパターンが多い
一人じゃないから正常なんて思ったら大間違い
678デフォルトの名無しさん
垢版 |
2019/04/03(水) 13:50:02.32ID:/cw++oNj
パンツじゃないから恥ずかしくないなんて思ったら大間違い
679デフォルトの名無しさん
垢版 |
2019/04/03(水) 21:33:59.24ID:x59pa14S
staticおじさんてなに?
680デフォルトの名無しさん
垢版 |
2019/04/04(木) 02:32:05.58ID:dJc2ae+t
>>679
高卒や専門卒のプログラマーのことだよ
そういうのにはstaticが好きが多いからそう呼ばれてる
2019/04/04(木) 05:09:05.51ID:fR1MFQa7
>>679
https://el.jibun.atmarkit.co.jp/minagawa/2010/04/post-ebc4.html
2019/04/04(木) 05:48:32.02ID:Bp6OcKFp
特殊用途以外でstatic変数を使うのはアホだけど
staticメソッドもまとめてstaticおじさんとか書いてる記事は
関数型にもついてけないただの周回遅れ
683デフォルトの名無しさん
垢版 |
2019/04/04(木) 07:07:10.33ID:vFGtgSry
うちのおじさんはdbのクライアントをstaticにするんだよね
2019/04/04(木) 08:14:30.23ID:O0tv1R/2
シングルトンおじさんの呼び方のが正しい問題意識な感じがする。
2019/04/04(木) 08:44:10.37ID:t2REljhQ
ここのstaticおじさんの話題で関数型を持ち出してる人間たまに居る(多分同一人物)けどimmutableに一切言及してないのはなんなんだ
関数型は言語機能で束縛をimmutableにして、それでもなお必要な時にmutableを扱うのであって、staticおじさんのpublic staticなんて言語も踏まえてmutableの可能性の方が高いでしょ
686デフォルトの名無しさん
垢版 |
2019/04/04(木) 09:23:20.89ID:NLHdu954
Kotlin もよろしく
687デフォルトの名無しさん
垢版 |
2019/04/04(木) 09:29:42.90ID:vFGtgSry
コトリンなんてシングルトンおじさん量産言語じゃん
2019/04/04(木) 09:30:46.16ID:MhhM4cG2
static禁止の次の世代はimmutableではなく依存性注入だからね
class名をハードコードするだけでアウト
interfaceはセーフ
もちろんSingletonはアウト
689デフォルトの名無しさん
垢版 |
2019/04/04(木) 09:33:41.65ID:l5IgkZnr
Love≒依存性
690デフォルトの名無しさん
垢版 |
2019/04/04(木) 10:37:11.62ID:NLHdu954
>>687
え?そうなるか?
2019/04/04(木) 10:59:33.23ID:no/JRFUK
class名.static変数
class名.static関数
超便利じゃん
2019/04/04(木) 11:25:51.28ID:MhhM4cG2
class名がそのままファイル名になるじゃん
定義を変えてみたくなったらファイルを上書きするしかないじゃん
そういうとこだよ
2019/04/04(木) 11:31:19.04ID:Bp6OcKFp
>>685
この話題何度も出てるのか
staticおじさん云々に言及したのは初だわ
というか>>682はググって読んだ記事に対する感想な

staticメソッド:
 副作用無し → OK
 引数への副作用有り → 許容内
 標準出力などプロセスに1つのリソースへの副作用 → 許容内
 内部でstatic変数への副作用有り→ デバッグ等の特殊用途を除いてはゴミ

privateでないstaic変数
 → 論外のゴミ

これらをただstaticというだけで
その先にある局所性や副作用への悪影響を区分せず
ひとまとめに扱う雑な記事は、何かをdisるレベルに無いという考え
2019/04/04(木) 12:40:50.62ID:no/JRFUK
>>691
なんかIDEに怒られてstatic関数にできないときは
シングルトンのgetInstance作って
class名.getInstance.メンバ関数
で回避
2019/04/04(木) 14:01:55.30ID:t2REljhQ
>>693
私が勢いでレスしてしまったようだすまない
確かにstaticメソッドのみでみれば関数型的な副作用の切り分けとして見れるね

ただ
>>681 リンク先
> 共有変数も、pubulic static宣言していまう。したがってプロパティなんて作らない。
というアレがあるので『staticおじさん』とした時に関数型を持ち出すのは不適であると勢いづいてしまった
2019/04/04(木) 21:07:18.41ID:zCERpG8r
staticメソッド:
 副作用無し

↑これにめちゃくちゃ違和感がある
特定の言語は宋なのかもしれないけど…
2019/04/04(木) 21:24:47.26ID:g//GkyZ8
同じ機能を持った別個体のオブジェクト変数を持ちたい時にフィールドをstaticにしてたら何も出来ないけどね
2019/04/04(木) 22:06:34.27ID:Bp6OcKFp
>>696
どういう違和感か分からないが一応補足しておくと
staticメソッドのうち、副作用無しの場合 という意味な

副作用が無いメソッドというのは
引数以外に影響されず、戻り値以外に影響を与えないもの
具体例としては java.lang.Math.max
2019/04/04(木) 22:39:36.52ID:bWgxb2Xi
>>698
引数以外に影響されないことは副作用のないことの必要条件ではない
参照透過とごっちゃになってるぞ
2019/04/04(木) 23:09:47.59ID:ELt56IMR
副作用の定義によっては
参照透過と同義になってしまうかも?
2019/04/04(木) 23:20:58.18ID:qij6PJCK
定義によってはって、「副作用」の意味を変えちゃうってこと?
2019/04/04(木) 23:34:18.16ID:Bp6OcKFp
>>699
すまんその通り
オブジェクト指向に絡む話なのもあって
関数型に寄りすぎる単語を微妙に避けようとして変なこと言った
2019/04/05(金) 20:17:32.71ID:p2nz2EB6
副作用とは関数使ったら値を返すだけじゃなくて他のとこに影響出てしまうやつ

わかりやすい例で言えばファイル操作(write,read)関数とか画面に文字を出す関数(print)が
副作用があるとされている
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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