次世代言語18 Go Rust Elixir Kotlin TypeScript
レス数が950を超えています。1000を超えると書き込みができなくなります。
スレタイ以外の言語もok
前スレ
次世代言語17 Go Rust Kotlin TypeScript Julia
https://mevius.5ch.net/test/read.cgi/tech/1567602619/ そらそうやろ
何個言語あってプログラマ何人おると思ってるねん TypeScriptで質問なんだけど、全く新しい型を導入する方法ってあるのかな?
構文がわからないから疑似コードで書くけど、
typedef X; // Xという新しい型を定義
function makeX<T> (t T): X { /* ... */ }
// makeXで作られた値以外を渡したらいつもコンパイルエラー
function soSomethingWithX( x: X ) :void { /* ... */ }
こういうことがしたいんだけど… TypeScript は構造的部分型だから無理
type Nekko = {
name: string
age: number
}
type Inu = {
name: string
age: number
}
これらは同じ扱いになる
っていう話?
それとも makeX 以外で X を作れなくしたいという話?
別に X を満たせば、 makeX 以外が X 作ってもよくない?
makeX が作った X と、makeX 以外が作った X が別物なのであれば、
それらは別の型だろう 型の表現力が低くて嫌だねそれ。0以上の数を表す型とか作れないじゃん >>847
erlang かな
むしろ全て機能を並列処理で書くしか無い割り切りというか >>847
スクリプト言語ではないが、GPGPU 用のC言語に似た言語は、そもそも
最初から並列処理を前提にしている。 >>860
プロパティが一致しなければ別の型になるので、
piotrwitek/utility-types の nominal type 使うなどして、自分で識別子を与えればできる
JavaScriptというカオスな言語・膨大な資産を利用するには、仕方ない面もある 並列処理などお前らが書く必要はない。
ライブラリを使え。 erlangtって、堅牢かもしれんが縛りがきつくて決して簡単だとは思えないが。 Objective-C → Swift や Java → Kotlin
と同じ感じで Erlang → Elixir がある >>864
やっぱりPureScriptでAffがナンバーワン! いや文法がどうとかじゃなくて、データを一切共有しないアクターモデル自体がね。 並列処理は、データベース管理システムで結合したマルチプロセスでほとんどの場合十分だろ、って思ってしまう
局所的な高速化だったらライブラリ使えになっちゃうし >>867
JSは自前でWorker使った並列処理書かないと
並列化はされてないんじゃないの? zig/zen/c2にはCの壁は崩せんかなぁ
いい感じではあるけどいい感じから更に上回って採用するほどではないという cの壁崩す前にcの前に散っていった言語の特徴でもまとめておいた方がよっぽど前向きだよ。 UNIXにしろWindowsにしろOSのAPIがCの関数だから
アプリもCで書くのが一番自然になる 正論も何もnativeでABI準拠できればいいのであって
cである必然性はない システムコールだけが言語選択の基準
って思考から脱却しろ
あほらし アセンブリでマウント取る爺様方がだいたい鬼籍に入って次はCでマウント取る爺様方の時代になった感じやね C#からCのAPI呼ぶとき
構造体とか配列のポインタとか面倒だな・・・ Cベースはむしろマシなんだよほとんどの言語でFFIあるし
問題は処理系依存マシマシのC++ベースAPI/ABI >>888
C#のFFIはかなり良い方だろ
C側でラッパーを一切書くことなくC#から呼び出せる
何より、トラブルの元になりがちな変なコードジェネレータの類がなくて、宣言した通りに正しく素直に動くってのが素晴らしい
そのストレスフリーさに比べたら、C#側で関数や構造体の宣言を書き直さなきゃいけないのは余裕で受け入れられる冗長性だと思う 別にcで書けって話でなくて、cのそういう側面くらい常識として知っとけって
だけなのに、なんかコンプレックス刺激されちゃう奴がいるのな。 >>891
C がわかる、てだけでドヤるのも大概だけれども
それよりももっと性質が悪いのは C がわからないコンプをこじらせているやつ 次スレは「次世代言語を夢見るレガシー言語労働者達のマウンティング合戦スレ」に改題で 標準ライブラリが豊富な言語ってC++, Javaとかになるの? Cの非標準ライブラリまとめ言語
と言われたくない人達 .NETも標準ライブラリ豊富だろ
つか、今時スレが言語スレだが言語だけで語る滑稽さ
次世代言語というより、標準ライブラリも含めた次世代環境がほしい 最近の言語はどれも環境そろってるだろ。
適当なインストーラーとライブラリ管理はあるし。
ビルド通らねー糞が!とかもだいぶ減った。 rustはpythonがらみでエラー出てビルド通らなかった。
本気だして調べる気力もなく、関連ファイル削除して男友達と焼肉食いに行った。
わざわざ男友達と書いたのは、女友達なんかいないからだ。 >>905
わざわざどうでもいいつまらないことを書き込むところが女友達のいない原因だろう >>907
rust自身のビルドが、Pythonに依存しているって話じゃない? Pythonはいいぞ
Makefileより読みやすく
Python自身のビルドはLLVMのビルドより10倍か100倍速い 型が無いんじゃなくて型を差別してないのさ
どんな型が来ても受け入れるおおらかさがある 動的な型なだけだな。
ネストした構造をループ処理するときなんかは確かに楽なことも多い。 強い動的型付けだし型アノテーションだいぶ充実してきたしでだいぶマシだと思うけどなぁ
弱い動的型付けと同一視するのは誤りの元だし、漸進的型付けの存在を無視するのもまた評価を誤りかねないですよ Pythonの型アノテーションは実際には全くと言っても差し支えないほど使われていないから無視して問題ない
そろそろ後付け静的型の代表的成功例であるTypeScriptと何が違ったのかを真剣に議論すべき時期にきてる TypeScriptの方が使いやすい型システムしてるのわかる >>902
C#は多いけど標準かって言われるとな・・・
C/C++も「標準」に拘ると何もできないω 型なし言語でも宣言時に初期化と代入を済ませれば問題がない 動的だと、神関数が、作れるからオススメ。
func add_god(a,b){
return a + b
}
add_god(1,2)
add_god("a","b")
add_god(1,"a")
神関数、があれば、コードの削減が可能!!!!!!!!!
ノーコード時代には動的型付け言語一択!!!!!!!! 型無しのデバッグ作業に駆り出された事有るけど、マジで地獄やぞ。絶滅はよ ガチのマジで型無し糞言語の良さがわからん
死ねとまでは言わないが生まれてこなければよかったのに 何回言われても直す気がないからもう悪意だと認識してるけど、動的型付けと型なしは全く別のものとしてそもそも存在してるので、動的型付けを型なしと呼びまた強い型付けと弱い型付けの区別を無視する限りこの議論が有意義に進むことはないよ 型があれば静的解析に有効というのは間違い無いのだが
静的解析すれば全てのバグを取り除けるというのは間違い > 静的解析すれば全てのバグを取り除けるというのは間違い
そもそもそんな主張誰もしていない スクリプト界隈もlintから始まってflowだTypeScriptだ型定義は素晴らしい!静的型付けバンザイ!
とかあれだけ動的型付け素晴らしいからの静的型付け面倒臭いとかディスッといてこの状況は大草原ですわ
まぁ何事もトレードオフだからケースバイケースで使い分ければいいんだが
今頃ブレイクスルーだなんだと大騒ぎなのは滑稽ですな
js界隈も結局サーバサイドレンダリングに回帰してるしファッションや音楽と同じで10〜20年スパンでサイクルすんのかね JSを本業にしてる層って最近の若者で学生時代にちょっと触り始めた生意気なガキが多いから気にしない方が健全 CのunionとかC++のオブジェクトスライシングの話を見てたら型が無いからクソみたいな言説は発生しないはずなんだがな……
型があっても言語としての使い方がクソならクソだし、静的解析のないLLだからってランタイムにきちんと型エラー吐いてくれるものが比較的マシという評価になるのは間違いないでしょ
デジタルな分野扱ってるからって判断までI/Oにするもんじゃない 静的解析マンセーな輩はただテストコード書く技量がないだけ。 >>932
君は >>921 の関数に、整数、小数、文字列、オブジェクト、真偽値、日付型・・・
たくさんの引数を与えて
一生懸命テストを書くのだろうな
それは素晴らしいことだと思うよ
感動で涙がで、でますよ またそう言う極論をほざくところが静的解析マンセー厨らしいよ。 >>934
おやおや・・・君もテストコード書く技量がないだけ?? それともコメントに、
この引数は整数でございます。小数、文字列、オブジェクト、真偽値、日付型・・・は教育によろしくないので与えないでいただけますと幸い至極でございます。
とでも一生懸命書くのかな??
それでIDEの静的解析に警告を受けたら
「やっぱり型無し糞言語でも安全!!型はいらない!!!」
とか言うのかな
あれっw Pythonは現実的
言語名が不明な「静的型」は現実みが浅い Pythonは有名ライブラリにことごとく型がついてないので
やっぱりクソ >>937
現実みが浅い、って日本語として気持ち悪い 逆に静的型付けの何がいいのか知りたい
JavaScriptやpyなんか連想配列や辞書
定義するのもコンソール出力もめっちゃ便利やぞ
コンパイルエラーの手間もないしめっちゃデバッグが楽 >>932
それな
全員がそうだとは言わないけどテスト設計できないやつが大半 // この関数を使えばなんでもできます
func god(args...){}
これだけで基幹システム作ったわ
1年掛かる工数を3日に短縮できる動的言語ってやっぱ神だわ >>942
うーんこの神
みずほ案件も型無し糞言語を使っていれば3人日で完成していた public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello, world");
}
}
やっぱJavaだわ
記述量が多いから努力した気になれるし成長した気にもなれる
静的型付けだから動的野郎にもマウント取れるし
昔ながらの大企業でよく使われてるから日本の伝統も感じられるし
今後50年は食いっぱぐれないし
Oracleに転職できるかもしれない またそう言う極論をほざくところが型無し糞言語マンセー厨らしいよ。 30年後50年後にコードを書く文化って残ってるのかな 英語圏の文化で面白いのがプログラムしかない
これが無くなったら英語自体がオワコン >>941
動的派の書くテストは正常系を一発通すだけのものが多くて、あれでテストちゃんと書いてますと言われても首を傾げてしまう
動的型のコードがデグレで動かなくなるのは日常茶飯事であるし、そもそも最初から全く動かないウンコであることも珍しくない
だから最低でも変更の度に自動テストで一度動しておけば品質は大幅に上がるのだが、とはいえ血便が下痢便になる程度
一方、静的型はプログラマの品質に対する意識の高さや静的型検査の恩恵のため、動かすだけのテストにはあまり意味がない
起こりうる様々なケースを試したり挙動の変更を厳密に監視したりと、静的型においては自動テストに求められる基準は遥かに高くなる >>933のいうとおりだな。人間どうミスするかわからんから、
整数、少数..本来は全部やるべきだな
エラーの原因の大半は人間のちょっとしたミスだからな
>>934は勝手に都合のいい解釈でそういうテスト省こうとしてるだけやんw 過激派静的言語マンってミスが一切許されない職場で働いてそう
動的だと一週間で終わるものを三ヶ月ぐらい掛けて実装してそう レス数が950を超えています。1000を超えると書き込みができなくなります。