X



次世代言語議論スレ[Go Rust Scala Haskell]第5世代 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0637デフォルトの名無しさん
垢版 |
2017/08/07(月) 22:34:23.14ID:60+6AuiC
構造化BASICの正統進化なんだけど
ついでに8bit機にのってたようなのは当時既にストリートBASICって言われてた
(漏れもwikipediaで知ったんだけどさw)
0640デフォルトの名無しさん
垢版 |
2017/08/07(月) 22:56:31.90ID:BjLAzK5L
一歩の作者が悪いんや…
すべからく…べし、の形すら守ってないと俺はそれ以降の文章はスキップする
読む価値がない
0644デフォルトの名無しさん
垢版 |
2017/08/08(火) 01:43:32.85ID:lBJjevEI
vscode はむしろマイクロソフト内の若手が爺どもにぶちぎれて
まったく別路線のものをつくったという印象
0645
垢版 |
2017/08/08(火) 08:04:36.27ID:y4ztJzgK
>>630
いわゆるMS BASICからQUICKBASIC→Visual Basic→VB.netと辿っていけばわかるけど、普通にMicrosoft系のBASICだと思うけど。
どの辺がBASICっぽくない?
0646デフォルトの名無しさん
垢版 |
2017/08/08(火) 11:58:13.44ID:1MHxdJ+Z
>>643
typescriptもjsに変換されるから無関係
V8エンジンが速いという条件ならatomも同じだぢ
0647デフォルトの名無しさん
垢版 |
2017/08/08(火) 11:58:30.92ID:1MHxdJ+Z
x だぢ
o だし
0648デフォルトの名無しさん
垢版 |
2017/08/08(火) 14:24:25.13ID:Apkyawzp
>>646
それは言われなくても分かる。
素のES2015よりメンテナンス性や安定性が向上しないかな。
例えばnull安全なコードがかけるからnilチェック漏れとかを潰せるし。
プラグインもtypescriptでかくから少しましになる?
0649デフォルトの名無しさん
垢版 |
2017/08/08(火) 16:22:17.89ID:1MHxdJ+Z
>>648
それはそうだけど、>>635から始まったvscodeのパフォーマンスの話してるからtypescriptであるかは関係ない
0653デフォルトの名無しさん
垢版 |
2017/08/09(水) 08:59:18.22ID:FPEvL6ue
簡単そうに見えても結局それぞれの場所でオブジェクト開放を
うまくやらなきゃならんことを考えれば大して楽になるわけでもない。
0654デフォルトの名無しさん
垢版 |
2017/08/09(水) 12:40:14.22ID:aEwDYdDe
VSCodeでインテリセンス技術をオープンソースにしたのは地味に画期的なことだと思う
IDE分野でのMSの強さを支えるコア技術だよね
0655デフォルトの名無しさん
垢版 |
2017/08/09(水) 13:12:03.09ID:ZSp2lruc
Goはパターンマッチないのに例外を戻り値で返すからあんな面倒な事になってるんだろ
0656デフォルトの名無しさん
垢版 |
2017/08/09(水) 19:01:09.05ID:FPEvL6ue
その言い方だと例外投げられればいいのかパターンマッチが導入すればいいのか
わからんが。
どっちかもしくは両方あれば楽になったとでも?

プログラム書く上でまったく本質的な制約だと思わんな。
0658デフォルトの名無しさん
垢版 |
2017/08/09(水) 19:25:58.05ID:ZSp2lruc
>>656
どちらか欲しい
両方ないのはキツイ
0659デフォルトの名無しさん
垢版 |
2017/08/09(水) 19:26:26.92ID:ZSp2lruc
あと複数の戻り値じゃなくてタプル+単一戻り値の方が扱いやすい
0662デフォルトの名無しさん
垢版 |
2017/08/09(水) 20:19:16.67ID:jK6ObLbS
+演算子をorの意味で使ってるのか?
それだとタプルを返した時は単一ということになるか
単一の意味も違うのかもしれない
0663デフォルトの名無しさん
垢版 |
2017/08/09(水) 20:44:15.24ID:h3UNfnj7
形式的にだけど、返り値はタプル一つになっていて、それを分配束縛してることになってなかったっけ?
違ったかも
0665デフォルトの名無しさん
垢版 |
2017/08/09(水) 21:22:14.98ID:SHgM+TeI
タプルとEitherはC言語のstructとunionに戻るようなものだからな
次世代の面子が潰れる
0666デフォルトの名無しさん
垢版 |
2017/08/09(水) 21:38:43.55ID:cB8pPRbn
goの戻り値がタプルのほうが嬉しいという気持ちはわかる。
自作の型に自由にメソッド生やせるのに、メソッドチェーンしようとした場合に、多値を返されると無理。
0667デフォルトの名無しさん
垢版 |
2017/08/09(水) 22:04:04.13ID:ZSp2lruc
>>666
golangは本当メソッドチェーンが出来ないよな
0668デフォルトの名無しさん
垢版 |
2017/08/09(水) 22:51:13.67ID:cB8pPRbn
まぁそういう弱点ありつつもgoは嫌いじゃないんだけどね。
エコシステムの部分とか。

import文にgithubのurl?を書けたり。

標準ライブラリのコードが自然に見にいけるから書いている最中も勉強になるし、標準ライブラリが教科書的な役割をはたしてくれたり。

コードフォーマットが標準装備で言語仕様的に制約が強いから構文規約は一つしかないところとか。

と言いつつも他の言語を見て羨ましくもあり。もっと関数型チックになってほしいけど無理かな。
0669デフォルトの名無しさん
垢版 |
2017/08/09(水) 23:57:18.80ID:ECmmt/Ev
メソッドチェーンが遺物だと気づけw
Goは意図的にメソッドチェーン出来ないようにしてるんだ
0670デフォルトの名無しさん
垢版 |
2017/08/10(木) 00:20:35.92ID:eLvHxdUn
パイプライン演算子の便利さを考えるとメソッドチェーンもそこまで悪くない気もするが、使い方次第かねえ
0672デフォルトの名無しさん
垢版 |
2017/08/10(木) 01:40:12.18ID:+tFBM5sG
パイプラインの方が柔軟性高くていいよね
do_something foo |> lambda x => x + other_fun bar |> ...
みたいな前の戻り値のメソッドに限定しない書き方ができる

これをもっと楽にするような記法、例えばパイプラインの式中のアンダースコアは前の値とする、みたいなのがあると嬉しい
上のやつと等価だったらdo_something foo |> _ + other_fun bar |> ... みたいな
0673デフォルトの名無しさん
垢版 |
2017/08/10(木) 01:51:16.15ID:eLvHxdUn
Juliaでそのアンダースコア議論されてて、結局実装されなかったんだよなたしか
0675デフォルトの名無しさん
垢版 |
2017/08/10(木) 01:55:26.39ID:eLvHxdUn
2番目の引数を先に埋めてアンダースコアは一番目にしたいパターンがあるので、どちらかと言うとカリー化は好きじゃないなあ。設計が悪いと言われたらそれまでだけど

Juliaの場合は多重ディスパッチを採用している関係でカリー化は諦めたっていうのもあったな
0676デフォルトの名無しさん
垢版 |
2017/08/10(木) 03:00:14.84ID:J41+5nHx
>>665
いやだからEitherモナドはMaybeみたいに正常系だけ書いていけるし単値だしで全然違うって
なんで皆使ったことも無いのにそんな事言うの…
0677デフォルトの名無しさん
垢版 |
2017/08/10(木) 07:31:11.02ID:EsQl4Iyt
単純にノイズが増えるだろう
現実にはほとんどの関数がエラーを返す可能性を持ってるんだから、言語に織り込んでデフォルトを Error | Result とするのは悪いアイデアではない
0679デフォルトの名無しさん
垢版 |
2017/08/10(木) 23:01:38.31ID:g9gtECZC
(Elixirは?動的型付け言語に人権はありますか)
0680デフォルトの名無しさん
垢版 |
2017/08/11(金) 07:15:28.72ID:VinUUXdS
ほとんどの動的型言語ってそれが動的型であるメリットは特に無くて
単なる処理系実装者の怠慢でしかない
動的型言語を推すならまずはそれが動的型でなければならない理由を示すこと
0681デフォルトの名無しさん
垢版 |
2017/08/11(金) 08:32:31.97ID:wS48fUKa
lisp とか仕様をシンプルにできることかな。
あほみたいに仕様が膨らんで意味の分からんキャストをがばがばおこなわなきゃならん
みたいな不自然なことで生じるバグは減る。
0682デフォルトの名無しさん
垢版 |
2017/08/11(金) 08:51:11.85ID:Pc9UeBFi
>>680
怠慢に寛容になると嘘をつく人間が減るから
自分はなにもしないくせに他人の嘘をデバッグするのだけはうまい奴がいる
そういう奴がいても許されるから嘘が減る

怠慢を許さない環境では忙しくて嘘を見抜く暇もないから嘘が蔓延する
0683デフォルトの名無しさん
垢版 |
2017/08/11(金) 08:56:57.66ID:wWK8j68x
そもそも型が必要な理由が分からん。
数学なら「整数型のxが・・・」なんて言わないしな。
「ここでxは整数とする」はあるけど、条件に過ぎないし。
リストやタプルも分ける必要ある?
0684デフォルトの名無しさん
垢版 |
2017/08/11(金) 10:46:48.12ID:4bbWTV9L
372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているサイトだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子が求人をだしてる。名刺も渡せる。ユー子に名刺を渡せるんだぞ。夢のようだ

それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト
0685デフォルトの名無しさん
垢版 |
2017/08/11(金) 11:00:48.00ID:HT0ZPb79
>>683
型はその条件をいろいろ細かく定義したものだろ。
値域や定義域だって型。
0686デフォルトの名無しさん
垢版 |
2017/08/11(金) 11:17:57.35ID:Dik+7mIk
動的型の問題って関数のインターフェースがガバガバなところでしょ?
elixirはパターンマッチで結構制約できるから動的だからって卑下する必要ないのよ
0688デフォルトの名無しさん
垢版 |
2017/08/11(金) 11:59:08.49ID:wWK8j68x
>>685
少なくともunsigned は要らなくない?
1bit ケチれるだけだし。
中途半端な単精度浮動小数点とかも。
0690デフォルトの名無しさん
垢版 |
2017/08/11(金) 15:03:12.85ID:Pc9UeBFi
>>686
まだコードを書いてないのに問題でしょとか言われても
言う時期が早すぎるし言う内容に具体性がないよ
まるで数学も英語もまだ知らない小学生にプログラミングを教えているようだ
0691デフォルトの名無しさん
垢版 |
2017/08/11(金) 15:39:55.52ID:Dik+7mIk
TypeScript触ってるとjsに型がある方が幸せだってわかる。
jsonにスキーマ設定無しで
reduxでstate管理するのとか絶望する。
あと、学習面でも明らかに型があったほうが幸せ。書いてる端から指摘してくれるからすごく幸せ。
TypeScriptはvscodeとセットで幸せー
0692デフォルトの名無しさん
垢版 |
2017/08/11(金) 15:58:37.67ID:uuzmQ1J4
>>688
今言ってる片野必要性は容量のためじゃないだろ
全ての引数をテストするとすると1bit減ることでテストの数が半数になる実装もその1bitに対して考える必要がなくなる
例えばルートを計算する関数を実装するのに引数が正の整数と限定されてれば簡単だが、負だったり小数した場合は複雑になる。文字列や画像だった場合は例外が発生したりアボートしたり誤作動するかも知れない。
型はビジネスロジックに集中するためのルール、制約だ
静的は言語レベルで強制、チェックしてて、動的ではユーザ、実行時に任せてる
0693デフォルトの名無しさん
垢版 |
2017/08/11(金) 18:06:45.60ID:wS48fUKa
関数の引数なんかはやっぱ型があった方が読みやすいなと思う。
でも内部のテンポラリ変数なんかは別にいらんかもね。
というかテンポラリ変数の型情報がないと読めないようなコードは
そもそもコードが長すぎるとか、他の根本的な部分に問題がある気がする。
0694デフォルトの名無しさん
垢版 |
2017/08/11(金) 19:32:48.58ID:L+PB1ux2
>>682
>>690
内容がフワフワしてて何言ってるのか理解できない
もっと具体的かつ簡潔に言え
Twitterによくいるプログラミングできないのにプログラム語ってるクソ野郎みたいだぞ
0695デフォルトの名無しさん
垢版 |
2017/08/11(金) 19:36:48.30ID:L+PB1ux2
>>688
unsignedはオーバーフローしても下から戻るから楽
つか実装型まで否定するって、じゃあ任意精度にしろってか?
計算量制御できなくなるぞ?
0697デフォルトの名無しさん
垢版 |
2017/08/11(金) 22:53:04.88ID:HT0ZPb79
西京漬けいいよね
0699デフォルトの名無しさん
垢版 |
2017/08/12(土) 08:33:13.28ID:Uq7dQQ/j
>>694
プログラミングできるできないではなくタイミングの問題
目の前のことを言えば具体的かつ簡潔になる
遠い将来のことを語るとフワフワする
0700デフォルトの名無しさん
垢版 |
2017/08/12(土) 09:39:33.11ID:DS1jvWO1
次世代言語を語りたければ、今流行ってる言語の分析をしないと
Java、C#、C/C++が人気だけど
0702デフォルトの名無しさん
垢版 |
2017/08/12(土) 11:28:39.85ID:lZqlh0rm
Java系は一貫した技術の枠内で一通り完結するのがメリット
アプリケーションロジックの開発に集中できる
0705デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:15:33.93ID:bnRf3zzW
>>700
Java…型推論ない、論外
C/C++…メモリ安全じゃないので面倒
C#…まあ使える。ただT aだったりT b()だったりで書き方がちょっと古い
0706デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:17:29.71ID:bnRf3zzW
C#は良い言語だと思うよ
パターンマッチが追加されたりifが式になったりで便利になってきてるし
0711デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:31:48.99ID:Z/LzjBMS
.net coreはまだプロダクションで使うのは怖いだろ
仮にそこ乗り越えたとしても、C#だと結局開発はVS最強なんだから窓開発になる
0712デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:32:59.46ID:bnRf3zzW
.NET CoreだけじゃなくてMonoもあるぞ
0713デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:38:41.45ID:ahseiZ+6
>>711
もう1年以上経つし、そろそろ.NET Standard2.0も出るこの時期に何言ってんだか
素直に知りませんでしたでいいよ
0715デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:46:02.46ID:bnRf3zzW
.NET Standardってなんや
0716デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:47:02.12ID:zLZ79VVH
見事にオープンソースとクラウドの時代を代表するリーダーの一人として転身を果たしたMS
存在感を失い続けるIBMとオラクル
そう考えるとJavaは疫病神なのではないか
0719デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:54:08.03ID:ahseiZ+6
>>716
こないだのPaketの件といい、.NET CoreからFullの.NET Frameworkの一方的な切り捨てと言い、コミュニティをないがしろにしてちょいちょい炎上してるけどな
0722デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:00:15.90ID:2/FX67Cg
.NETはまだまだ環境の問題もあるからともかく、
MSだからという理由でMSのプロダクトが開発者に嫌われることは少なくなったね
マカーがMS製のエディタでMS製の言語でプログラミングしてそれをMSのクラウドプラットフォーム上でホストされてるLinuxへデプロイするとか 一昔前ならあり得ない未来だった
0723デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:03:25.03ID:DE4QKP9/
Monoで動いているものは結構色々あるはず
例えば3DGameEngineのUnityはC#で開発できるけど裏でMonoが動いてる
マルチプラットフォームな開発環境であるXamarinもMonoを使ってる。
知らないうちに.Netは大半のプラットフォームで動くように。
0725デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:19:13.69ID:953va2dM
.NETはLLVMつかってネイティブ化する計画なかったのか
0726デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:24:30.75ID:DE4QKP9/
実際のところ.Netを選ぶメリットって何かあるのかな?
マルチプラットフォームならtypescriptとelectron、もしくはreact nativeで良い気がするけど。
0727デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:25:59.19ID:953va2dM
現行、LLVMの使用はLinux、Macのみらしいが原理としてLLVMが動くすべてのOSでネイティブコンパイルできるのでは?
実際動かしてないし間違えてるかも。


性能を強化した「.NET Core 1.1」が公開 2016年11月21日
米Microsoftは11月16日、「.NET Core 1.1」を公開した。性能が強化されたほか、対応するLinuxディストリビューションも拡大した。
最新版では対応するディストリビューションを拡大し、Linux Mint 18、OpenSUSE 42.1、macOS 10.12、Windows Server 2016で利用できるようになった。
macOS 10.12とWindows Server 2016については、.NET Core 1.0も利用できる。
Linux向け、Mac向けでは、CoreCLRをClang/LLVMでコンパイルするため、次のリリースでClang版のPGOをサポートする予定としている。
https://mag.osdn.jp/16/11/21/154500
0728デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:33:46.06ID:D9kn9WR2
まあ実際使ってみると右往左往することになるわけだが。
「互換性」あるってセールストークに馬鹿みたいに引っかかりすぎなんだよ。
0730デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:42:05.60ID:953va2dM
こういう流れらしい。


.NET Coreとは? 2017年6月6日

.NET Coreがリリースされて約1年経ち、ようやくビルドツールも正式版としてリリースされるに至った。
本連載記事では、「Linuxを中心にクロスプラットフォームで開発できる.NET Core」という視点で、開発の方法を説明していきたい。

.NET Coreの歴史
Windows上でのみ動作する.NET Frameworkは、2002年に最初に登場して以来、バージョンアップを重ねてきた。
それに対し、Windows・Linux・macOSで動作するクロスプラットフォームな.NET Coreが発表されたのが、2014年11月12日のことである。
このとき、今までWindowsのみをサポート対象としてきた.NETが、LinuxやmacOSもサポート対象としたことに加えて、最初からGitHubでオープンソースとして公開されたことにも驚きがあった。

クロスプラットフォームを動作環境とすることに関しては、Monoプロジェクトという先人がいた。
Monoプロジェクトは.NET Frameworkの互換環境をLinuxやmacOSを含めたスマートフォンOSにすることを目標としており、その中にはGUIフレームワークも含まれている。
Monoプロジェクトは現在、Xamarin社が開発・サポートをしており、スマートフォン向けのクロスプラットフォーム開発環境であるXamarinブランドの製品を提供している。
そのXamarin社が、2016年にMicrosoft社に買収されて今に至っている。

Monoが.NET Frameworkそのものと互換性のある環境を目指していることに対し、.NET Coreは.NET Frameworkのサブセットとなる機能をクロスプラットフォームで提供することを目標としたわけである。
そして、.NET Coreの発表から約1年後の2015年11月5日にRed Hat社がMicrosoft社と協力し、Red Hat Enterprise Linux上での.NETのサポートを発表した。

.NET Coreの特徴はいくつか挙げられるが、ここでは特に「クロスプラットフォーム」「オープンソース」「軽量」「フレキシブル」の4点について強調したい。
http://www.buildinsider.net/language/dotnetcore/01
0733デフォルトの名無しさん
垢版 |
2017/08/13(日) 00:09:25.46ID:5ZVaRTG/
>>728
Javaも同じだけどね。
お陰で一度書けばどこでも動くって宣伝文句も、一度書けばどこでもテストが必要って揶揄されて久しい。
HTMLも然り。
実はHTML5+JavaScriptのが動的言語な分タチが悪いっていう。


>>726
TypeScriptもMS製ですよ。
VS Code出したし、.net Standerd出たしってなると、VC#のマルチプラットフォーム化が始まりそうな予感はするが。
(MonoでC#のマルチプラットフォーム化はしてるけど、C#の良さはやはりIDEであるVSあってこそ)
0735デフォルトの名無しさん
垢版 |
2017/08/13(日) 00:21:36.37ID:LJmg41iW
typescriptがMs製なのは知ってるよ。
そして素晴らしいのはtsserverを同梱してること。
言語自体にリファクタリングや定義箇所への参照機能等ideに必要な機能を同梱させたんだよね。

この仕様をlanguage server protocolとして標準化しようとしてるのも素晴しい。
ide側で言語仕様を把握する必要がなくなり、上記のプロトコルを解釈する機構を用意しておけばいい。
0736デフォルトの名無しさん
垢版 |
2017/08/13(日) 00:25:12.33ID:LJmg41iW
ぜひともlanguage server protocolを言語側で用意するのを必須にしてほしい。
新興言語ほど補完機能が弱いことが多いから。goの補完が効くようになったのもここ二年くらいからだったし。
■ このスレッドは過去ログ倉庫に格納されています

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