- 1 名前:デフォルトの名無しさん [2018/04/26(木) 21:48:23.07 ID:mMDBzDaB.net]
- www.typescriptlang.org/
JavaScript that scales. TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open Source. part1 https://peace.5ch.net/test/read.cgi/tech/1349187527/ part2 https://mevius.5ch.net/test/read.cgi/tech/1430386649/
- 484 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 03:44:15.17 ID:BmlbAE5y.net]
- pacage.jsonのバージョンを取得したくて
src/index.tsで import {version} from '../package.json' を思いついたのですが、これだとコンパイルでdistに排出されるときにpackage.jsonも排出されてしまいます これを解決する(依存関係をdistに持ってくるのではなくが./package.jsonを常に読むようにしたい)方法はあるのでしょうか?
- 485 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 07:24:44.96 ID:WBys/b
]
- [ここ壊れてます]
- 486 名前:G4.net mailto: コンパイルするたび常に最新のpackage.jsonがdistに排出されるんだから
それでええんちゃう? [] - [ここ壊れてます]
- 487 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 19:08:50.40 ID:BmlbAE5y.net]
- >>471
自分的にはdistに排出される先にもう一つpackage.jsonが作られるのが気持ち悪いと感じたのですがそうでもないんですかね?
- 488 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 21:11:01.65 ID:PGLLO5uD.net]
- たしかにキモい
- 489 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 21:32:06.85 ID:WBys/bG4.net]
- 普通にgitignoreしてるだろうしdistにpackage.jsonがあっても特にデメリットないし
distに何が吐かれててもええんちゃう?
- 490 名前:デフォルトの名無しさん [2020/08/03(月) 07:34:16.45 ID:qdvto+rV.net]
- >>470
process.env.npm_package_version じゃダメなの?
- 491 名前:デフォルトの名無しさん mailto:sage [2020/08/03(月) 09:46:39.86 ID:l1ICYS01.net]
- >>475
横からだけどサンキュー こんなことできるんだね、勉強になった package.jsonの各種要素を読み込みたい! - DEV https://dev.to/origamium/package-json-1626
- 492 名前:デフォルトの名無しさん [2020/08/03(月) 10:52:32.11 ID:qdvto+rV.net]
- >>476
公式にもこんなところにしれっと書かれてる https://docs.npmjs.com/misc/scripts#packagejson-vars package.jsonの各フィールドの説明してるページには書いてないんだなぁ…
- 493 名前:デフォルトの名無しさん mailto:sage [2020/08/05(水) 08:07:16.62 ID:uWbem7nq.net]
- Announcing the new TypeScript Website
https://devblogs.microsoft.com/typescript/announcing-the-new-typescript-website/
- 494 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 08:26:54.83 ID:D9+iHL3k.net]
- Announcing TypeScript 4.0
https://devblogs.microsoft.com/typescript/announcing-typescript-4-0/
- 495 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 09:31:14 ID:pu35Qu/1.net]
- もう4.0の時代なのか・・・
それなのにおまいらのプロダクトときたら・・・
- 496 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 11:12:40 ID:7l2hhkMF.net]
- 現場猫『ヨシッ!』
- 497 名前:デフォルトの名無しさん [2020/08/21(金) 11:15:43 ID:6zccVHNz.net]
- 監督猫『ヨシッ!』
- 498 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 13:28:51.80 ID:pu35Qu/1.net]
- 一次請猫『ヨシッ!』
- 499 名前:デフォルトの名無しさん mailto:sage [2020/09/14(月) 09:29:26.60 ID:CfIbX1f0.net]
- ここで聞いて良いのかわからないけどimportの拡張子(.js)を省略して、js変換時に拡張子をつけることってできないかな?
開発中はtsc使って開発者終了時だけwebpack使いたいのだけども
- 500 名前:デフォルトの名無しさん mailto:sage [2020/09/14(月) 09:33:13.37 ID:/HJ+wc6C.net]
- そのようにwebpack設定するだけでは
cssやjpgとかの非プログラムファイルにしかimport文に拡張子書いたことないわ
- 501 名前:デフォルトの名無しさん mailto:sage [2020/09/14(月) 21:55:40.83 ID:CfIbX1f0.net]
- webpackの方でなんとかするしかないか。
ありがと
- 502 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 00:09:40.68 ID:g6ghhz4T.net]
- typescript のポリシーからすると将来的にも対応される可能性は低い
- 503 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 14:36:37.18 ID:NZq3hOP+.net]
- マイクロソフト発のオープンソース言語「TypeScript」、生みの親が語る開発当初や背景
https://japan.zdnet.com/article/35159882/
- 504 名前:デフォルトの名無しさん [2020/09/28(月) 19:49:45.93 ID:kE1qWQhp.net]
- TypeScriptのまえにWebAssemblyが登場していたらみなそっちに飛び付いたのだろうか。
- 505 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 22:54:37.39 ID:t2I6kwxp.net]
- 何だかんだ言ってみんなJavaScriptが大好きだからな
それにブラウザに実装されているAPIはJavaScriptから使うこと前提だからWebAssembly使っても余計な苦労するだけだ ゲームには向いてるだろうけど
- 506 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 22:56:43.96 ID:L69JRisQ.net]
- 既存のJS資産を流用できたのも強みの1つだったと思うから、やっぱTSの戦略勝ちじゃねえの
つかWASMって一時期騒がれてたけど今どうなったんだ?
- 507 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 23:49:19.24 ID:XJOyCoAG.net]
- >>491
Unityが実用?になってるぐらい。 なにしろ、仕様も含めて 今後どうなるかわからん状況では?
- 508 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 09:41:15.62 ID:tKw94fLv.net]
- FlutterがDartじゃなくてTSだったら良かったのに
- 509 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 11:21:16.26 ID:P1Q7o4iq.net]
- ほんとそれな
あんな劣化Javaみたいな言語ありがたがってる連中の頭が理解できない
- 510 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 12:10:42.86 ID:aaxcyAZi.net]
- 大して機能違わないじゃん。
何が足りないと思ってるの?
- 511 名前:デフォルトの名無しさん [2020/09/29(火) 13:15:04.46 ID:pjrsoCYz.net]
- 知能
努力 向上心
- 512 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 13:35:36.65 ID:P5R6/7cr.net]
- そうだな、JavaとJavaScriptも一緒だしな
- 513 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 14:11:13.25 ID:Y54HkFIW.net]
- >>495
NULL安全とか?
- 514 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 15:46:22.91 ID:aaxcyAZi.net]
- >>498
あるよ >>496 ないよ
- 515 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 18:45:22.24 ID:fbgKh1ZX.net]
- マイクロソフト発のオープンソース言語「TypeScript」、生みの親が語る開発当初や背景
https://japan.zdnet.com/article/35159882/
- 516 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 13:09:08.11 ID:pBMNn9J9.net]
- >> Microsoftが2018年に75億ドル(約8000億円)を投じて買収したGitHub
知らんかった オンライン版のvscodeがGitHubにあるのはそういうわけか
- 517 名前:デフォルトの名無しさん [2020/10/02(金) 00:47:34.12 ID:c4z818i5.net]
- ピチャイのマイクロソフトは良いマイクロソフト。
- 518 名前:デフォルトの名無しさん [2020/10/10(土) 13:18:23.70 ID:hWE3VueY.net]
- こんにちは。プログラミング初心者です。
TypeScriptとJavaScriptはどっちが最強なんでしょうか? これから始める場合はどっちがいいのですか? TypeScriptはJavaScriptとくらべ実行速度は変わらないのに 静的型付けのため記述が面倒で学習する価値がないと友達が 言ってたんですがこれは正しいですか?
- 519 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 14:42:01.38 ID:xtGRZD/P.net]
- >>503
普段からめちゃくちゃな 読めないコード書いてる人には 難しいと思いますよ。
- 520 名前:デフォルトの名無しさん [2020/10/10(土) 15:45:53.37 ID:hWE3VueY.net]
- >>504
なるほど。つまりTypeScripはtコードをきれいに見せるためだけの言語ってことなんですね。
- 521 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 15:53:32.39 ID:PAS52Dcu.net]
- 価値がわかるようになるまではJS使うのをおすすめする
今TS触っても嫌いになるだけだと思う
- 522 名前:デフォルトの名無しさん [2020/10/10(土) 16:35:21.67 ID:hWE3VueY.net]
- ん。。。価値が分かる人にしかわからないプロ向けの言語なんですね。。。
- 523 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 16:57:30.55 ID:OrgjdyW8.net]
- 綺麗に見えるということは他人が書いたコードであっても理解しやすいといえる
- 524 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 17:08:45.97 ID:hWE3VueY.net]
- 複数人で開発するとき用ってことですね。
一人でWEBアプリ作って満足してる分には必要なさそうですね。
- 525 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 17:26:29.17 ID:BjY8+1pb.net]
- ソースを公開する時に型は必須だな
複数人開発だと必然的に他人にソースを公開する訳だから型は必須だな 一人で開発してる時も未来の自分にソースを公開すると考えれば型は必須だな
- 526 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 17:30:06.10 ID:BjY8+1pb.net]
- この理屈で行くと型が必要無い状況は使い捨てのコードを書く時になる
実際、実験的なコードを書くときはJavaScriptでサクッと書いてる
- 527 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 17:31:37.81 ID:hWE3VueY.net]
- 型を指定するのは実行速度のためだと思ってましたが違うんですね。
- 528 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 17:41:03.06 ID:myt/k5c7.net]
- 個人で、1ファイル、2, 300行程度のオモチャしか書かない奴にはいらないかもしれんな
複数人で、2ファイル以上のまともなコード書くなら、型は必須 「全てのfunctionが何かを引数にとって何かを返します。その『何か』はコードを読まないとわかりません」 じゃ困るだろ
- 529 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 17:46:03.97 ID:hWE3VueY.net]
- 複数人でも一つ一つ関数定義を確りして
コメントを残せば後から見返してもわかりそうな気がするのは 私がまだ未熟なんですね。
- 530 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 17:46:21.26 ID:j
]
- [ここ壊れてます]
- 531 名前:qYiciHv.net mailto: 3ヶ月前の自分は他人
webのようにリリース後にメンテする可能性があるなら確実に過去の自分を恨むだろう [] - [ここ壊れてます]
- 532 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 17:56:33.59 ID:myt/k5c7.net]
- >>514
でもそのコメント、人によって書き方バラバラだし、その通りに実装・使用されているかわからないよね そのコメントが規格化されていて、その通りに実装・使用されていることを保証してくれるのがTypeScriptとでも思え
- 533 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 18:02:00.15 ID:hWE3VueY.net]
- わかりました。TypeScriptの勉強をしてみます。
バックにはMicrosoftとGoogleがついてるみたいですので 安心して学習してみます。
- 534 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 18:14:27.06 ID:myt/k5c7.net]
- せや
どこの馬の骨ともしれんバカではなく MicrosoftとGoogleの天才たちを信じろ
- 535 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 18:32:27.26 ID:ekvQuOcm.net]
- 型情報による補完などのエディタの支援機能がないと書けない体になってしまった…
- 536 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 18:36:49.23 ID:jkmsbl3z.net]
- >>504
これさ無茶苦茶なコード書いてる人がキレイなコードかけるようになるって点でTSって素晴らしいと思う
- 537 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 18:39:08.90 ID:hWE3VueY.net]
- 今日までエラーがでなければどんなコードでもいいと思ってました。
- 538 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 18:52:40.99 ID:jqYiciHv.net]
- 最終的にはそうだよ
同じ動きをするならユーザーにはどんなコードも同じ 開発側から見てどうか?ってだけ
- 539 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 19:08:51.73 ID:hWE3VueY.net]
- 開発側の立場で考えるとTypeScriptが必要になるんですね。
- 540 名前:デフォルトの名無しさん [2020/10/10(土) 19:15:05.89 ID:SwfxuCYC.net]
- >>503
なんか…Javascriptやってる人達ってこれくらいのレベルなんだよな… 今から始めるあなたはともかくとして、そのアドバイスしてくれたお友達のレベルもたかがしれてそう。
- 541 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 19:19:58.24 ID:PAS52Dcu.net]
- Pythonなんかもっとひどいぞ
ただ色んなレベルの人がいるというのは新しい人が入ってきている証拠でもあるので、歓迎すべきことでもある 誰でも最初は初心者なんだしさ
- 542 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 19:42:13.27 ID:w1paHL08.net]
- 技術ブログ等で公開されているTypeScriptなコードの品質の平均はJavaScriptのそれと比べて高い。そういう意味でも使う価値がある。
もちろん例外はあるけどね
- 543 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 21:06:49.30 ID:tFVag5PE.net]
- >>523
開発環境でリファクタリング機能の 性能に注目出来るぐらいになりましょう!
- 544 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 21:08:17.35 ID:tFVag5PE.net]
- javascriptの言語仕様では
まともな物は作れませんので。
- 545 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 22:14:14.78 ID:fDny8+f1.net]
- >>526
それはTypeScriptの採用によって品質が向上したというより、タイプ量やビルドの複雑さの多少の増大と引き換えに静的型付けを取るという 極めて正しい選択ができるだけの能力があるエンジニアが書いたからだろうね
- 546 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 22:15:54.62 ID:6sdqDrQt.net]
- 俺はC/C++からやってるけど、JavaScriptで型がなくって困るって事はないなあ。
ただ、形無し言語しかやったことないのなら、TypeScriptの方を薦めるけど。 (なお俺は生JSしかやっておらず、TSは触ってもいない) Cみたいにメモリ領域を厳密に規定する為ならともかく、 Java以降の言語の型って、コンパイラで落とす為でしかない。 しかも、入口と出口で都合2回書いて、それが合っているかを確認するだけ。 実際、それでもタイポを落とせるので大変役に立つのは事実だけど、 型を間違ってエラーになるなんて事はほぼ無いし、有ってもスモークテストで確実に落とせる。 だから、言ってしまえば、スモークテストが通るまで捗るだけ。 この
- 547 名前:_、現状のC++やRustは空回りしてて、
コンパイラで落とす為に厳密に書く必要があり、結果的にやたら遠回りしてたりする。 俺が思うにあれは完全に本末転倒。コード構造が制限を受けてどうするんだよ? この点、TSは無駄に気負わず、 型の恩恵を受けつつ、面倒になれば省略出来る、位だから受けているのだと思う。 ただ、型の恩恵なんて上記の通り、スモークテストが通るまででしかない。 その後のメンテナンス性は、特にオブジェクト指向(OOP)を正しく適用出来てるかがキモになる。 ところが、JSではOOPは学べない。これはTSも同じだと思う。 周りの環境が酷すぎて、初心者〜中級者にはOOPするメリットを感じられないから。 (HTMLも酷いが、ネイティブオブジェクトを拡張してもろくに動かないのも酷い) Javaや.NETみたいにびしっと作ってあれば、比較的小さな規模でも恩恵を受けられるが、 JSはそれらよりは断然高レベルプログラミングで、その分行数も少なく済み、 大体においてそんなに大規模にもならないし、OOPガッツリやる意味もほぼ無く全て済んでしまう。 だからその先、具体的にはソースコードが10k行を越えるまでは、 JSやTSは学習用言語としてはいいと思うよ。 その辺になってきて、一つの言語しか使えないってのもほぼ無いから、杞憂かもしれんが。 [] - [ここ壊れてます]
- 548 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 22:22:26.76 ID:A0BwGHo+.net]
- 何言ってんだこいつ
- 549 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 22:29:28.83 ID:xMQUNHWy.net]
- OOPなんて使えて当たり前。OOPを神格化してる奴でOOP以外の技法も使いこなせてるヤツ見たことない。
それにOOPの価値はコードの大小に依らない
- 550 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 22:35:39.32 ID:myt/k5c7.net]
- 俺は困らないからJSでいい論は全てゴミ
想像力の欠けた引きこもりアスペが書いた妄想 これはガチ
- 551 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 22:36:40.03 ID:6sdqDrQt.net]
- TSスレだから、TSマンセー、型マンセーな奴の echo chamber になってるだけだぞって事。
TSは悪い言語でもないが、お前がら思ってるほどJSも酷くない。 だから数あるAltJS、勿論TypeScriptもそれに含まれるが、それでもJSを殺しきれない。 型で恩恵受けるのは、スモークテストまでだろ。 そもそも変数名みれば型なんて自明だし、そうじゃないのが問題。 そして関数を小さく、というのがほぼ最強で、そもそも規模が小さければ変数の型が分からないなんて事はない。 型に囚われてる奴は、型の先、つまり、型が有ろうがなかろうがどうにもならない世界が見えてないのだと思うよ。 この意味でRustもリソースリークを気にしすぎ。そもそもリークなんてしないし、面倒なら最初からGC使えばいいだけ。 TSはこの辺変に気取ってないからいい。
- 552 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 22:43:14.81 ID:A0BwGHo+.net]
- まあ自分のコードだけで完結する世界で閉じこもってる分にはそれでいいんじゃない
- 553 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 22:43:43.59 ID:myt/k5c7.net]
- >>534
> そもそも変数名みれば型なんて自明 ハンガリアン信者の方ですか? こんなこという奴の久々に見たわ > そもそも規模が小さければ変数の型が分からないなんて事はない ほんと自分の都合のいい側面しか見えてないよな 俺は困らないからJSでいい論は全てゴミ 想像力の欠けた引きこもりアスペが書いた妄想 この通りやンけ!
- 554 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 22:48:34.65 ID:6sdqDrQt.net]
- >>532
OOPを神格化している奴がゴミなのは認める。Javaの連中が特にそう。 そして俺はそうじゃない。 ただな、DOMとかその辺が酷くて、OOPの恩恵を小さいコードでは得られないのはOOPを学ぶ上では痛いと思う。 Javaみたいにたった50行のコードにOOP強いて余計に意味不明になるのも問題だが、 自作コードのみでOOPの恩恵が受けられるのは3k行程度以上
- 555 名前:必要で、
そこまでOOPを囓れないでいるのもまた問題。 正直、ここにいるお前らの半分以上はOOPを正しく理解出来てないと思うよ。 ただ、それでも書けるところが良いところなんだが。 OOPは大規模コードの整理術であって、そもそも大規模化しないのならそれが大正義だ。 [] - [ここ壊れてます]
- 556 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 22:57:06.91 ID:6sdqDrQt.net]
- >>536
それはそもそも読み方を間違ってんだよ。 関数なんて大体20行程度だし、問題になるにしてもI/Fだけ。 ただそれ以前に、俺はサイトのmimnify済みのJSでも割と読めてしまうことに気づいてしまった。 「訳の分からないことをやってないこと」が重要で、そうじゃなければ追えるんだよ。 だから、初心者のコードほど読めない。これは事実。
- 557 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 23:00:39.67 ID:myt/k5c7.net]
- >>538
世界中のプログラマーが関数なんて大体20行程度で訳の分からないことをやってないコードを書いてくれる理想郷にお住まいなのであれば、TSはいらないだろうね
- 558 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 23:10:25.88 ID:6sdqDrQt.net]
- >>539
逆だろ。そういう理想郷を作るようにお互い努力するんだろ。 そしてTSはJSよりはそれを目指していると思うが。 関数が20行ってのはGoogleかnpmのコーディングルールに有ったはず。 コードレビューする時に「パワポ1画面に入らないような関数を書くな」だった。 実際、そこまで短くすれば、訳の分からない複雑なことは出来なくなるから、確かに効くんだよ。
- 559 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 23:25:22.20 ID:BjcbKuib.net]
- TS は、もっと後でよい
Ruby 3.0 で型推論が入ることになったけど、作者のMatz が、 型を入れると難しすぎて、初心者が簡単にプログラミングできなくなると言ってた 型はプロ向き。 型があると、初心者のfirst choice にならない
- 560 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 23:26:05.68 ID:OZkIKLkD.net]
- いや型がある方が楽やろ、ガイド付きやで?
- 561 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 23:26:47.91 ID:OZkIKLkD.net]
- コンパイルエラーで検知できずに動かしてみるまでわかんないとか…
- 562 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 23:37:08.35 ID:6sdqDrQt.net]
- ついでに言っておくと、多分TSの「型」ってのはC++やRustの連中の「型」の範疇には入らない。
多分、連中からすると「型道」から外れてる、邪道だ、と見えると思う。 それは認識しておいた方がいい。 ただ、俺はむしろその方がいいと思っている。 C++のテンプレートなんて、 「これって型がなくてダックタイプでよければさらっと書いて終わりでしたよね?」ってのが多すぎる。 MSはそこら辺、極めて現実的でいい。 あと、既に言われているが、JSerなんてこの程度、というのは当たっている。 具体的に言えば、実力を過大評価している勘違い馬鹿が多い。 ただ、それは界隈のオンボロさと、楽勝さによっているのであって、環境を共有しているTSでも同じだよ。 とはいえ俺はこれも良いことだと思っている。 つまり技術レベルが低くても達成出来ることが(見た目)大きいわけだから。 だからCとかの連中は、なんでJSerがあんなに馬鹿でも世界が回るのか、 それはつまり、界隈のシステムが上手く出来てるからなんだけど、その辺学ぶべきだと思うよ。
- 563 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 23:43:46.38 ID:6sdqDrQt.net]
- >>541
難しくはならないが、煩雑にはなるんだよ。 そしてその煩雑さを利益が上回る為には、最低限ある程度の規模が必要で、 それは最初の最初の初心者が書くコードの規模(精々100行)では全然足りない。 だからってスクリプト言語で調子に乗ってガシガシ書いた後に型が欲しくなる時は確かにある。 その辺、従来は対応出来なかったが、TSはそこを上手く掬い取れた。
- 564 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 23:50:21.71 ID:TSALDtkC.net]
- JavaScriptで昔書いた3000行のコードをTypeScriptに直しているんだけど
いやまあ型は便
- 565 名前:と思えるいろんな発見があったわ;; []
- [ここ壊れてます]
- 566 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 23:50:29.75 ID:hWE3VueY.net]
- 現在もっとも人気と将来性があって最強と言われる
Pythonに型がないのはどういう理由なんでしょうか?
- 567 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 23:56:23.03 ID:hWE3VueY.net]
- パイソンはクラスは使えるようですね
- 568 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 00:05:58.83 ID:rXA2CZZq.net]
- >>547
Pythonが受けているのは、馬鹿でも書けるから。これに尽きる。 Cだと、PCの物理的構造をある程度知ってないと理解しにくい面があるから。 ただ、Pythonが将来性があるかは疑問だと思う。 使われ続けるという意味では確実だが、プログラマを目指すのにいいか?と言われると微妙。 俺はPythonやってないが、最近かじろうとして、止めた。 String.replace(regexp)がなくて、RegExp(str)しかなく、ああこりゃ駄目だ、と思った。 なるほどPythonではクソコードしか書けない、というのは納得だ。 しかも3.0になってずいぶん経つのに、え?まだこんな所で揉めてるの?みたいな制限事項多すぎ。 ただまあ、明らかに君はそれ以前なのだから、グダグダ言わずにさっさと始めるべきだよ。 君のレベルなら、TSでもJSでもPythonでもどれでもいいと思うよ。 Pythonのクソさが分かるようになるまでに2年ほどはかかるだろうし。
- 569 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 00:11:31.57 ID:rXA2CZZq.net]
- >>548
クラスが使える=オブジェクト指向が出来る、という意味では、 最近のプログラミング言語でそもそもOOP出来ないものは存在しない。 それほどまでにOOPは認められた存在だと言うこと。 ラムダも同様だが。(なおPythonのラムダには制限あり) だから最近の言語はどれもこれも同じだ!と言われていて、実際そうなのだが、 敢えて違う言語を!とやったのがGo。 ただしGoは別方向にかなり糞なので初心者は止めた方がいい。(と思う) ただ、実際はGoも結構初心者受けしている。特に形無しスクリプト言語上がりには。
- 570 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 00:24:04.47 ID:n4TOsjKe.net]
- Pythonは 機械学習関連のライブラリが充実していて 最強の地位は10年後も20年後もおそらく変わらないだろう とプログラミングに詳しい知り合いが言ってました。 マシンスペックも上がってきているので Python のようなスクリプト言語でも 十分に実行速度が発揮でき益々 需要が伸びる可能性が高いと聞きましたが。
- 571 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 00:25:02.84 ID:vIhtxp0O.net]
- >>547
mypyというものがあってだな
- 572 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 00:34:52.32 ID:y3zg5lZo.net]
- スレチ
- 573 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 00:49:43.03 ID:rXA2CZZq.net]
- >>551
ならその知り合いに聞けよ。ただそいつはヘボだと思うが。 Pythonが強いのはライブラリが揃っているからだが、今のところ実行速度が致命的に遅い。 それはCPUやGPUの性能向上程度では何ともならない。 機械学習なら結局のところは何回回せるかが勝負で、C比80-800倍遅いのだから話にならない。 だからCythonなんて物も出てくる。 ただしアルゴリズムを頻繁に書き換えるとなると違う。 ちゃっちゃと書き換え、夜流して朝結果を回収、夕方までにプログラムを変更してまた夜流す、 という繰り返しなら、「新しいプログラムがいつ出来るか」が勝負となり、当然スクリプト言語の方が有利だ。 ただ、これが出来る学生なんてなかなかいないと思うし、そこまで行くのなら多分Cも普通に使える。 そもそも機械学習ならそんなにアルゴリズムも変えないはずだし。 だから今でもガチの計算機工学科ではCもやってるだろ。 Cだと1時間で結果が出るのにPythonだと3日かかります、では研究の進捗も全然違ってしまう。 だから用途に合わせて使い分けることが必要で、 はっきり言ってCも大して難しくもないからそういう奴等はCを最初から学ぶようになってる。 PythonやRuby界隈が高速化を目指さないのは俺には完全に疑問だ。 何だかんだで今後とも速度は重要であり、正義だ。 Rubyなんて死にかかってるが、JSと同程度の速度が得られれば、復活するとも思っている。 ただ、Matzもその周りもそれをしようとしないんだな。クソ言語なんてもう要らないのに。 TSはその点、JSの実行速度と、スクリプト言語の弱点、 「調子乗って書いてたらグダグダになってきてヤバイっす」を型付加により多少は緩和出来る、という点でかなり立ち位置はいい。 しかもJSも今のところ死ぬ感じはないから、TSも勿論死なない。 一般的にはJSerは次第にTSerになっていくと見られているが、これも概ね正しいだろう。 確かにTSは駄目な点がない。 (界隈の駄目な点をJSからモロに受け継いでいるが)
- 574 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 00:50:50.85 ID:vIhtxp0O.net]
- 型無し糞言語は死あるのみ
型推論でスマートに型サポートを受けるのが今のトレンドだよ
- 575 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 01:01:08.81 ID:sfgrEAk/.net]
- 質問ですが
interface IPoint { x: number; y: number; } があるとして、(例えば)一致判定関数を書く場合、 function isequal(p1: IPoint, p2: IPoint) { return (p1.x == p2.y && p1.y == y2.y); } function isequal<T extends IPoint>(p1: T, p2: T) { return (p1.x == p2.y && p1.y == y2.y); } はどっちが良いの? どっちもプロパティー{ x: number, y: number }を持つ任意のオブジェクトを受け入れるので同等に見えまつ、
- 576 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 01:02:20.20 ID:sfgrEAk/.net]
- 戻り値を忘れたorz
: boolean 型推論って便利ですよね、、、
- 577 名前:539 mailto:sage [2020/10/11(日) 01:27:53.11 ID:B+MSoWxK.net]
- YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる Python, PHP, JavaScript などを絶対に言わない 初心者のfirst choice としては難しすぎる。 挫折確率が高すぎる ただ年末に、Ruby 3.0 で型推論が入るから、 KENTA も、この方針を変えるかも知れない 大事件勃発! Ruby on Rails に頼っている、すべての学校の方針が変わってしまう ただ、first choice がGo と言うのは、絶対に無理
- 578 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 01:46:46.27 ID:+wOaiLh4.net]
- >>556
この場合は多分同等なのでシンプルな前者で良い 後者はTを他の箇所(戻り値やコールバック関数の引数など)でも使う場合に適していることがある 例えば function double<T extends IPoint>(p: T): T { p.x *= 2; p.y *= 2; return p; } とか function check<T extends IPoint>(p: T, validator: (p: T) => boolean): void { if (!validator(p)) { throw new Error('...'); } } とか ただしこれらの場合でも必ずしもextendsが適しているとは限らないので注意(特に上の例はかなり適当なので)
- 579 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 06:43:46.76 ID:vDn4Pmub.net]
- Pythonは型を書いてもインタプリタがそれを無視して実行してくれる
高速に実行したければPyPy使えばネイティブコードに近い速度で実行出来るしmypyで型チェックも出来る JavaScriptで型を書くと単に構文エラーになるだけだが、その内無視して実行してくれる様になるだろう そうなったらTypeScriptは要らなくなる
- 580 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 07:10:15.21 ID:qONvW7Si.net]
- 妄想おつ
- 581 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 07:22:42.40 ID:vDn4Pmub.net]
- Pythonみたいに動的型言語に型アノテーションを追加する事が主流になるだろう
Union型は動的型だから出来る事で、完全に静的型にするとC++みたいになってしまう 動的型+型アノテーションは良いとこ取りで、プロから初心者まで皆が満足出来る
- 582 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 07:34:29.67 ID:6reX+khV.net]
- Pythonは10年前にやったときは凄い言語機能だと思ったけど、それからあんまり進化しなくて今はJSにすら言語機能的には劣ってる。Pythonの良いとこ他の言語も取り込んじゃったからね。
でもそれとライブラリが充実してるってのは別問題で、このライブラリの充実っぷりがJS|TSにもあったら天下取れるのになぁと思う。 機械学習はライブラリの最適化がキモで言語の速度なんてほとんど関係ないし
- 583 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 08:43:37.68 ID:AhI6YFfN.net]
- なんどもコードの書き換えが必要な機械学習において
Pythonのような可読性にすぐれ、少ないコードで実行できる言語はが必要不可欠なのよ。 Cythonを使えば実行速度もC/C++と変わらないしね。 JavaScriptはTypeScriptとして生き残ると思われる。
- 584 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 08:44:44.80 ID:AhI6YFfN.net]
- >>558
そのYouTubeはPythonとJavaScriptで作られているという皮肉
|
|