TypeScript part3 at TECH
[2ch|▼Menu]
[前50を表示]
450:デフォルトの名無しさん
20/06/25 11:57:37.69 2LahzjFh.net
Ruby on Rails 6 から、Node.js, webpack が標準になったから、
もう、Coffee Script には依存していない

451:デフォルトの名無しさん
20/06/25 14:16:09 3QV8gPE9.net
だからどうしたRubyガイジ
さっさと消えろ

452:デフォルトの名無しさん
20/06/25 14:49:25.12 V5BYtNqQ.net
webpack使えるなら、普通にもうRoRでhtml作る必要ないのでは

453:デフォルトの名無しさん
20/06/25 14:51:02.50 V5BYtNqQ.net
ほんまやな
PHPもRubyも、型無し糞言語は滅びるべきや
json以外を喋る邪悪なWebサーバーは1台残らず破壊しろ

454:デフォルトの名無しさん
20/06/25 14:52:55.59 3edAgV/k.net
この場違いRuby妖怪はアンカ飛ばさんでも一応レス見てる素振りを見せるのがちょっとしたホラー

455:デフォルトの名無しさん
20/06/26 03:43:22.98 4Xp41V6m.net
GUI は、React, Bootstrap で良いけど、
サーバ側が、Node.js じゃ辛い
Rails, Sinatra などの、Ruby の方が分かりやすい
Rubyの欠点は、web アプリだけしか作れないこと!
スマホ用アプリも必要なら、Electron, React Native + Expo
それか、Unity

456:デフォルトの名無しさん
20/06/26 07:42:47 Sd6G194T.net
Rubyの欠点はお前みたいなキチガイがスレチのクソ宣伝で評価を下げてることだよ

457:デフォルトの名無しさん
20/06/26 14:54:51.55 6IXnju0o.net
URLリンク(twitter.com)
多言語disをついやってしまう癖を止めて欲しい。
最後に参加したTokyuRubyKaigiで「Javaやってる人手を挙げてはーい♪今挙げた人はすぐに帰ってくださーい♪」って言ったのは忘れたくても忘れられない。
(deleted an unsolicited ad)

458:デフォルトの名無しさん
20/06/26 16:51:07 Z5HJiD+l.net
型無し糞言語やってる人は帰るだけじゃ済まされない
死んでください

459:デフォルトの名無しさん
20/06/26 18:00:16.15 9etEQyfp.net
俺も東横線代表として参加してくるわ

460:デフォルトの名無しさん
20/06/26 20:32:19.16 aHXqCiQW.net
>型無し糞言語
今どきの言語で何があったっけ?

461:デフォルトの名無しさん
20/06/26 22:12:45.13 TcIyIoqu.net
>>444
10年以上前に同じようなJava disやってたスピーカーがいたが
別のスピーカー/コミッター達にあれはやめたほうがいいって厳しく批判されてたけどな
その時代の話なのかな

462:デフォルトの名無しさん
20/06/27 01:29:27.09 9wE9An+g.net
ありますで喩えると
Java山中さん
*by笹井さん

463:デフォルトの名無しさん
20/07/01 14:29:27.01 OAvcKBIQ.net
Talking TypeScript with the engineer who leads the team
URLリンク(stackoverflow.blog)

464:デフォルトの名無しさん
20/07/15 11:01:56.72 IqfNcqeZ.net
TypeScript で、無名配列のJSON ファイルは、import できない
[
["a", 10],
["b", 20]
]
名前を付ければ、import できる。
import { xyz } from "./a.json";
{"xyz": [
["a", 10],
["b", 20]
]
}

465:デフォルトの名無しさん
20/07/15 12:14:33.71 cL9c5hZ8.net
typescriptに限らず
そういう実装結構ある
全体は{}を仮定してるの

466:デフォルトの名無しさん
20/07/15 13:02:18.34 pL8+4mwq.net
jsonってトップレベルはObject


467:必須だと思ってた そういう仕様あるのかな



468:デフォルトの名無しさん
20/07/15 15:59:04.81 T1dYtDa5.net
Type Script 使ってみて思ったけど
最初から ES がこの仕様だったら本当に助かってた
そして今の課題は既にある ES のライブラリ摂りこむのが面倒
なんとかならんのか??っていう

469:デフォルトの名無しさん
20/07/15 16:48:00.29 cL9c5hZ8.net
C# 使ってみて思ったけど
最初から C がこの仕様だったら本当に助かってた
そして今の課題は既にある C のライブラリ摂りこむのが面倒
なんとかならんのか??っていう

470:デフォルトの名無しさん
20/07/15 16:58:29.54 pL8+4mwq.net
割とマジで攻守共にTypeScriptが最強だわ
TSに欠けてるのは、あとはパターンマッチくらいだろう
TypeScriptがネイティブバイナリ吐くようになればいい

471:デフォルトの名無しさん
20/07/15 19:14:22.28 Iul+D8/c.net
>>451
そもそもimportはjsonを読むためにあるわけじゃないから読めなくても不思議はないが、
ts3.9.6で試してみたら普通に読めるんだが?
>>453
rfc読めばわかるがトップレベルだけ特別扱いする必要ないしね。

472:449
20/07/15 19:20:18.72 IqfNcqeZ.net
./a.json に以下だけを書いて、どういうimport 文を書いたの?
[
["a", 10],
["b", 20]
]

473:デフォルトの名無しさん
20/07/15 20:06:40.11 Iul+D8/c.net
ふつうに
import j from './a.json';
"module"は"commonjs"

474:デフォルトの名無しさん
20/07/15 20:24:52.52 guZu56HE.net
esModuleInterop か allowSyntheticDefaultImports は true になってる?
false や未設定なら、 `import * as j from './a.json';` でインポートする必要がある

475:デフォルトの名無しさん
20/07/15 20:31:01.05 Iul+D8/c.net
ああすまん、"resolveJsonMdule": true してた。
つまりmoduleじゃないjsonをロードしたいならこれが必要ってことね。

476:449
20/07/15 21:20:34.32 IqfNcqeZ.net
あれ? 普通に、これで、import できた!
漏れの勘違いだったみたい
import j from "./a.json";
漏れの設定は、
"module": "es2015",
"esModuleInterop": true,
"resolveJsonModule": true,

477:デフォルトの名無しさん
20/07/16 13:16:30 Bj5j4Y6i.net
こういうのはだめなんだっけ
[
["a", 10],
["b", 20],
]

478:デフォルトの名無しさん
20/07/16 15:09:37.34 J/CG/YnB.net
TypeScript の開発中は、
Webpack のオフライン機能、workbox を使わないから、
package.json の、"workbox-webpack-plugin": "^5.1.3" を、
コメントアウトしようとしたが、形式エラーになって出来ない
削除はできるけど、コメントアウトで残しておきたい

479:デフォルトの名無しさん
20/07/16 15:10:33.56 L+apgnKF.net
gitを使いましょうよ・・・

480:デフォルトの名無しさん
20/07/16 15:13:26 J/CG/YnB.net
>>463
JSON ファイルでは出来ない

よく知らないけど、新しめの、JS/TS ファイルでは出来るかも

481:デフォルトの名無しさん
20/07/16 18:14:40 QwF0ci9g.net
よく知らないなら黙ってろrubyガイジ

482:デフォルトの名無しさん
20/07/16 18:31:21.38 L+apgnKF.net
>>463
ケツカンマをファックできるのはECMAScript 5以上
JSONはファックできない

483:デフォルトの名無しさん
20/07/22 02:36:42.07 2/9nnKBr.net
クライアント向けの開発サーバーが付いている、Parcel を使っている香具師いる?
Postman を使っている香具師いる?
これは、REST クライアントかな?
漏れは、VSCode の拡張機能の、REST Client を使っているけど
他には、TypeScript で、Express サーバーを実行する、ts-node-dev は?

484:デフォルトの名無しさん
20/08/01 03:44:15.17 BmlbAE5y.net
pacage.jsonのバージョンを取得したくて
src/index.tsで
import {version} from '../package.json'
を思いついたのですが、これだとコンパイルでdistに排出されるときにpackage.jsonも排出されてしまいます
これを解決する(依存関係をdistに持ってくるのではなくが./package.jsonを常に読むようにしたい)方法はあるのでしょうか?

485:デフォルトの名無しさん
20/08/01 07:24:44.96 WBys/b


486:G4.net



487:デフォルトの名無しさん
20/08/01 19:08:50.40 BmlbAE5y.net
>>471
自分的にはdistに排出される先にもう一つpackage.jsonが作られるのが気持ち悪いと感じたのですがそうでもないんですかね?

488:デフォルトの名無しさん
20/08/01 21:11:01.65 PGLLO5uD.net
たしかにキモい

489:デフォルトの名無しさん
20/08/01 21:32:06.85 WBys/bG4.net
普通にgitignoreしてるだろうしdistにpackage.jsonがあっても特にデメリットないし
distに何が吐かれててもええんちゃう?

490:デフォルトの名無しさん
20/08/03 07:34:16.45 qdvto+rV.net
>>470
process.env.npm_package_version
じゃダメなの?

491:デフォルトの名無しさん
20/08/03 09:46:39.86 l1ICYS01.net
>>475
横からだけどサンキュー
こんなことできるんだね、勉強になった
package.jsonの各種要素を読み込みたい! - DEV
URLリンク(dev.to)

492:デフォルトの名無しさん
20/08/03 10:52:32.11 qdvto+rV.net
>>476
公式にもこんなところにしれっと書かれてる
URLリンク(docs.npmjs.com)
package.jsonの各フィールドの説明してるページには書いてないんだなぁ…

493:デフォルトの名無しさん
20/08/05 08:07:16.62 uWbem7nq.net
Announcing the new TypeScript Website
URLリンク(devblogs.microsoft.com)

494:デフォルトの名無しさん
20/08/21 08:26:54.83 D9+iHL3k.net
Announcing TypeScript 4.0
URLリンク(devblogs.microsoft.com)

495:デフォルトの名無しさん
20/08/21 09:31:14 pu35Qu/1.net
もう4.0の時代なのか・・・
それなのにおまいらのプロダクトときたら・・・

496:デフォルトの名無しさん
20/08/21 11:12:40 7l2hhkMF.net
現場猫『ヨシッ!』

497:デフォルトの名無しさん
20/08/21 11:15:43 6zccVHNz.net
監督猫『ヨシッ!』

498:デフォルトの名無しさん
20/08/21 13:28:51.80 pu35Qu/1.net
一次請猫『ヨシッ!』

499:デフォルトの名無しさん
20/09/14 09:29:26.60 CfIbX1f0.net
ここで聞いて良いのかわからないけどimportの拡張子(.js)を省略して、js変換時に拡張子をつけることってできないかな?
開発中はtsc使って開発者終了時だけwebpack使いたいのだけども

500:デフォルトの名無しさん
20/09/14 09:33:13.37 /HJ+wc6C.net
そのようにwebpack設定するだけでは
cssやjpgとかの非プログラムファイルにしかimport文に拡張子書いたことないわ

501:デフォルトの名無しさん
20/09/14 21:55:40.83 CfIbX1f0.net
webpackの方でなんとかするしかないか。
ありがと

502:デフォルトの名無しさん
20/09/15 00:09:40.68 g6ghhz4T.net
typescript のポリシーからすると将来的にも対応される可能性は低い

503:デフォルトの名無しさん
20/09/28 14:36:37.18 NZq3hOP+.net
マイクロソフト発のオープンソース言語「TypeScript」、生みの親が語る開発当初や背景
URLリンク(japan.zdnet.com)

504:デフォルトの名無しさん
20/09/28 19:49:45.93 kE1qWQhp.net
TypeScriptのまえにWebAssemblyが登場していたらみなそっちに飛び付いたのだろうか。

505:デフォルトの名無しさん
20/09/28 22:54:37.39 t2I6kwxp.net
何だかんだ言ってみんなJavaScriptが大好きだからな
それにブラウザに実装されているAPIはJavaScriptから使うこと前提だからWebAssembly使っても余計な苦労するだけだ
ゲームには向いてるだろうけど

506:デフォルトの名無しさん
20/09/28 22:56:43.96 L69JRisQ.net
既存のJS資産を流用できたのも強みの1つだったと思うから、やっぱTSの戦略勝ちじゃねえの
つかWASMって一時期騒がれてたけど今どうなったんだ?

507:デフォルトの名無しさん
20/09/28 23:49:19.24 XJOyCoAG.net
>>491
Unityが実用?になってるぐらい。
なにしろ、仕様も含めて
今後どうなるかわからん状況では?

508:デフォルトの名無しさん
20/09/29 09:41:15.62 tKw94fLv.net
FlutterがDartじゃなくてTSだったら良かったのに

509:デフォルトの名無しさん
20/09/29 11:21:16.26 P1Q7o4iq.net
ほんとそれな
あんな劣化Javaみたいな言語ありがたがってる連中の頭が理解できない

510:デフォルトの名無しさん
20/09/29 12:10:42.86 aaxcyAZi.net
大して機能違わないじゃん。
何が足りないと思ってるの?

511:デフォルトの名無しさん
20/09/29 13:15:04.46 pjrsoCYz.net
知能
努力
向上心

512:デフォルトの名無しさん
20/09/29 13:35:36.65 P5R6/7cr.net
そうだな、JavaとJavaScriptも一緒だしな

513:デフォルトの名無しさん
20/09/29 14:11:13.25 Y54HkFIW.net
>>495
NULL安全とか?

514:デフォルトの名無しさん
20/09/29 15:46:22.91 aaxcyAZi.net
>>498
あるよ
>>496
ないよ

515:デフォルトの名無しさん
20/09/29 18:45:22.24 fbgKh1ZX.net
マイクロソフト発のオープンソース言語「TypeScript」、生みの親が語る開発当初や背景
URLリンク(japan.zdnet.com)

516:デフォルトの名無しさん
20/09/30 13:09:08.11 pBMNn9J9.net
>> Microsoftが2018年に75億ドル(約8000億円)を投じて買収したGitHub
知らんかった
オンライン版のvscodeがGitHubにあるのはそういうわけか

517:デフォルトの名無しさん
20/10/02 00:47:34.12 c4z818i5.net
ピチャイのマイクロソフトは良いマイクロソフト。

518:デフォルトの名無しさん
20/10/10 13:18:23.70 hWE3VueY.net
こんにちは。プログラミング初心者です。
TypeScriptとJavaScriptはどっちが最強なんでしょうか?
これから始める場合はどっちがいいのですか?
TypeScriptはJavaScriptとくらべ実行速度は変わらないのに
静的型付けのため記述が面倒で学習する価値がないと友達が
言ってたんですがこれは正しいですか?

519:デフォルトの名無しさん
20/10/10 14:42:01.38 xtGRZD/P.net
>>503
普段からめちゃくちゃな
読めないコード書いてる人には
難しいと思いますよ。

520:デフォルトの名無しさん
20/10/10 15:45:53.37 hWE3VueY.net
>>504
なるほど。つまりTypeScripはtコードをきれいに見せるためだけの言語ってことなんですね。

521:デフォルトの名無しさん
20/10/10 15:53:32.39 PAS52Dcu.net
価値がわかるようになるまではJS使うのをおすすめする
今TS触っても嫌いになるだけだと思う

522:デフォルトの名無しさん
20/10/10 16:35:21.67 hWE3VueY.net
ん。。。価値が分かる人にしかわからないプロ向けの言語なんですね。。。

523:デフォルトの名無しさん
20/10/10 16:57:30.55 OrgjdyW8.net
綺麗に見えるということは他人が書いたコードであっても理解しやすいといえる

524:デフォルトの名無しさん
20/10/10 17:08:45.97 hWE3VueY.net
複数人で開発するとき用ってことですね。
一人でWEBアプリ作って満足してる分には必要なさそうですね。

525:デフォルトの名無しさん
20/10/10 17:26:29.17 BjY8+1pb.net
ソースを公開する時に型は必須だな
複数人開発だと必然的に他人にソースを公開する訳だから型は必須だな
一人で開発してる時も未来の自分にソースを公開すると考えれば型は必須だな

526:デフォルトの名無しさん
20/10/10 17:30:06.10 BjY8+1pb.net
この理屈で行くと型が必要無い状況は使い捨てのコードを書く時になる
実際、実験的なコードを書くときはJavaScriptでサクッと書いてる

527:デフォルトの名無しさん
20/10/10 17:31:37.81 hWE3VueY.net
型を指定するのは実行速度のためだと思ってましたが違うんですね。

528:デフォルトの名無しさん
20/10/10 17:41:03.06 myt/k5c7.net
個人で、1ファイル、2, 300行程度のオモチャしか書かない奴にはいらないかもしれんな
複数人で、2ファイル以上のまともなコード書くなら、型は必須
「全てのfunctionが何かを引数にとって何かを返します。その『何か』はコードを読まないとわかりません」
じゃ困るだろ

529:デフォルトの名無しさん
20/10/10 17:46:03.97 hWE3VueY.net
複数人でも一つ一つ関数定義を確りして
コメントを残せば後から見返してもわかりそうな気がするのは
私がまだ未熟なんですね。

530:デフォルトの名無しさん
20/10/10 17:46:21.26 j


531:qYiciHv.net



532:デフォルトの名無しさん
20/10/10 17:56:33.59 myt/k5c7.net
>>514
でもそのコメント、人によって書き方バラバラだし、その通りに実装・使用されているかわからないよね
そのコメントが規格化されていて、その通りに実装・使用されていることを保証してくれるのがTypeScriptとでも思え

533:デフォルトの名無しさん
20/10/10 18:02:00.15 hWE3VueY.net
わかりました。TypeScriptの勉強をしてみます。
バックにはMicrosoftとGoogleがついてるみたいですので
安心して学習してみます。

534:デフォルトの名無しさん
20/10/10 18:14:27.06 myt/k5c7.net
せや
どこの馬の骨ともしれんバカではなく
MicrosoftとGoogleの天才たちを信じろ

535:デフォルトの名無しさん
20/10/10 18:32:27.26 ekvQuOcm.net
型情報による補完などのエディタの支援機能がないと書けない体になってしまった…

536:デフォルトの名無しさん
20/10/10 18:36:49.23 jkmsbl3z.net
>>504
これさ無茶苦茶なコード書いてる人がキレイなコードかけるようになるって点でTSって素晴らしいと思う

537:デフォルトの名無しさん
20/10/10 18:39:08.90 hWE3VueY.net
今日までエラーがでなければどんなコードでもいいと思ってました。

538:デフォルトの名無しさん
20/10/10 18:52:40.99 jqYiciHv.net
最終的にはそうだよ
同じ動きをするならユーザーにはどんなコードも同じ
開発側から見てどうか?ってだけ

539:デフォルトの名無しさん
20/10/10 19:08:51.73 hWE3VueY.net
開発側の立場で考えるとTypeScriptが必要になるんですね。

540:デフォルトの名無しさん
20/10/10 19:15:05.89 SwfxuCYC.net
>>503
なんか…Javascriptやってる人達ってこれくらいのレベルなんだよな…
今から始めるあなたはともかくとして、そのアドバイスしてくれたお友達のレベルもたかがしれてそう。

541:デフォルトの名無しさん
20/10/10 19:19:58.24 PAS52Dcu.net
Pythonなんかもっとひどいぞ
ただ色んなレベルの人がいるというのは新しい人が入ってきている証拠でもあるので、歓迎すべきことでもある
誰でも最初は初心者なんだしさ

542:デフォルトの名無しさん
20/10/10 19:42:13.27 w1paHL08.net
技術ブログ等で公開されているTypeScriptなコードの品質の平均はJavaScriptのそれと比べて高い。そういう意味でも使う価値がある。
もちろん例外はあるけどね

543:デフォルトの名無しさん
20/10/10 21:06:49.30 tFVag5PE.net
>>523
開発環境でリファクタリング機能の
性能に注目出来るぐらいになりましょう!

544:デフォルトの名無しさん
20/10/10 21:08:17.35 tFVag5PE.net
javascriptの言語仕様では
まともな物は作れませんので。

545:デフォルトの名無しさん
20/10/10 22:14:14.78 fDny8+f1.net
>>526
それはTypeScriptの採用によって品質が向上したというより、タイプ量やビルドの複雑さの多少の増大と引き換えに静的型付けを取るという
極めて正しい選択ができるだけの能力があるエンジニアが書いたからだろうね

546:デフォルトの名無しさん
20/10/10 22:15:54.62 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:デフォルトの名無しさん
20/10/10 22:22:26.76 A0BwGHo+.net
何言ってんだこいつ

549:デフォルトの名無しさん
20/10/10 22:29:28.83 xMQUNHWy.net
OOPなんて使えて当たり前。OOPを神格化してる奴でOOP以外の技法も使いこなせてるヤツ見たことない。
それにOOPの価値はコードの大小に依らない

550:デフォルトの名無しさん
20/10/10 22:35:39.32 myt/k5c7.net
俺は困らないからJSでいい論は全てゴミ
想像力の欠けた引きこもりアスペが書いた妄想
これはガチ

551:デフォルトの名無しさん
20/10/10 22:36:40.03 6sdqDrQt.net
TSスレだから、TSマンセー、型マンセーな奴の echo chamber になってるだけだぞって事。
TSは悪い言語でもないが、お前がら思ってるほどJSも酷くない。
だから数あるAltJS、勿論TypeScriptもそれに含まれるが、それでもJSを殺しきれない。
型で恩恵受けるのは、スモークテストまでだろ。
そもそも変数名みれば型なんて自明だし、そうじゃないのが問題。
そして関数を小さく、というのがほぼ最強で、そもそも規模が小さければ変数の型が分からないなんて事はない。
型に囚われてる奴は、型の先、つまり、型が有ろうがなかろうがどうにもならない世界が見えてないのだと思うよ。
この意味でRustもリソースリークを気にしすぎ。そもそもリークなんてしないし、面倒なら最初からGC使えばいいだけ。
TSはこの辺変に気取ってないからいい。

552:デフォルトの名無しさん
20/10/10 22:43:14.81 A0BwGHo+.net
まあ自分のコードだけで完結する世界で閉じこもってる分にはそれでいいんじゃない

553:デフォルトの名無しさん
20/10/10 22:43:43.59 myt/k5c7.net
>>534
> そもそも変数名みれば型なんて自明
ハンガリアン信者の方ですか?
こんなこという奴の久々に見たわ
> そもそも規模が小さければ変数の型が分からないなんて事はない
ほんと自分の都合のいい側面しか見えてないよな
俺は困らないからJSでいい論は全てゴミ
想像力の欠けた引きこもりアスペが書いた妄想
この通りやンけ!

554:デフォルトの名無しさん
20/10/10 22:48:34.65 6sdqDrQt.net
>>532
OOPを神格化している奴がゴミなのは認める。Javaの連中が特にそう。
そして俺はそうじゃない。
ただな、DOMとかその辺が酷くて、OOPの恩恵を小さいコードでは得られないのはOOPを学ぶ上では痛いと思う。
Javaみたいにたった50行のコードにOOP強いて余計に意味不明になるのも問題だが、
自作コードのみでOOPの恩恵が受けられるのは3k行程度以上


555:必要で、 そこまでOOPを囓れないでいるのもまた問題。 正直、ここにいるお前らの半分以上はOOPを正しく理解出来てないと思うよ。 ただ、それでも書けるところが良いところなんだが。 OOPは大規模コードの整理術であって、そもそも大規模化しないのならそれが大正義だ。



556:デフォルトの名無しさん
20/10/10 22:57:06.91 6sdqDrQt.net
>>536
それはそもそも読み方を間違ってんだよ。
関数なんて大体20行程度だし、問題になるにしてもI/Fだけ。
ただそれ以前に、俺はサイトのmimnify済みのJSでも割と読めてしまうことに気づいてしまった。
「訳の分からないことをやってないこと」が重要で、そうじゃなければ追えるんだよ。
だから、初心者のコードほど読めない。これは事実。

557:デフォルトの名無しさん
20/10/10 23:00:39.67 myt/k5c7.net
>>538
世界中のプログラマーが関数なんて大体20行程度で訳の分からないことをやってないコードを書いてくれる理想郷にお住まいなのであれば、TSはいらないだろうね

558:デフォルトの名無しさん
20/10/10 23:10:25.88 6sdqDrQt.net
>>539
逆だろ。そういう理想郷を作るようにお互い努力するんだろ。
そしてTSはJSよりはそれを目指していると思うが。
関数が20行ってのはGoogleかnpmのコーディングルールに有ったはず。
コードレビューする時に「パワポ1画面に入らないような関数を書くな」だった。
実際、そこまで短くすれば、訳の分からない複雑なことは出来なくなるから、確かに効くんだよ。

559:デフォルトの名無しさん
20/10/10 23:25:22.20 BjcbKuib.net
TS は、もっと後でよい
Ruby 3.0 で型推論が入ることになったけど、作者のMatz が、
型を入れると難しすぎて、初心者が簡単にプログラミングできなくなると言ってた
型はプロ向き。
型があると、初心者のfirst choice にならない

560:デフォルトの名無しさん
20/10/10 23:26:05.68 OZkIKLkD.net
いや型がある方が楽やろ、ガイド付きやで?

561:デフォルトの名無しさん
20/10/10 23:26:47.91 OZkIKLkD.net
コンパイルエラーで検知できずに動かしてみるまでわかんないとか…

562:デフォルトの名無しさん
20/10/10 23:37:08.35 6sdqDrQt.net
ついでに言っておくと、多分TSの「型」ってのはC++やRustの連中の「型」の範疇には入らない。
多分、連中からすると「型道」から外れてる、邪道だ、と見えると思う。
それは認識しておいた方がいい。
ただ、俺はむしろその方がいいと思っている。
C++のテンプレートなんて、
「これって型がなくてダックタイプでよければさらっと書いて終わりでしたよね?」ってのが多すぎる。
MSはそこら辺、極めて現実的でいい。

あと、既に言われているが、JSerなんてこの程度、というのは当たっている。
具体的に言えば、実力を過大評価している勘違い馬鹿が多い。
ただ、それは界隈のオンボロさと、楽勝さによっているのであって、環境を共有しているTSでも同じだよ。
とはいえ俺はこれも良いことだと思っている。
つまり技術レベルが低くても達成出来ることが(見た目)大きいわけだから。
だからCとかの連中は、なんでJSerがあんなに馬鹿でも世界が回るのか、
それはつまり、界隈のシステムが上手く出来てるからなんだけど、その辺学ぶべきだと思うよ。

563:デフォルトの名無しさん
20/10/10 23:43:46.38 6sdqDrQt.net
>>541
難しくはならないが、煩雑にはなるんだよ。
そしてその煩雑さを利益が上回る為には、最低限ある程度の規模が必要で、
それは最初の最初の初心者が書くコードの規模(精々100行)では全然足りない。
だからってスクリプト言語で調子に乗ってガシガシ書いた後に型が欲しくなる時は確かにある。
その辺、従来は対応出来なかったが、TSはそこを上手く掬い取れた。

564:デフォルトの名無しさん
20/10/10 23:50:21.71 TSALDtkC.net
JavaScriptで昔書いた3000行のコードをTypeScriptに直しているんだけど
いやまあ型は便


565:と思えるいろんな発見があったわ;;



566:デフォルトの名無しさん
20/10/10 23:50:29.75 hWE3VueY.net
現在もっとも人気と将来性があって最強と言われる
Pythonに型がないのはどういう理由なんでしょうか?

567:デフォルトの名無しさん
20/10/10 23:56:23.03 hWE3VueY.net
パイソンはクラスは使えるようですね

568:デフォルトの名無しさん
20/10/11 00:05:58.83 rXA2CZZq.net
>>547
Pythonが受けているのは、馬鹿でも書けるから。これに尽きる。
Cだと、PCの物理的構造をある程度知ってないと理解しにくい面があるから。
ただ、Pythonが将来性があるかは疑問だと思う。
使われ続けるという意味では確実だが、プログラマを目指すのにいいか?と言われると微妙。
俺はPythonやってないが、最近かじろうとして、止めた。
String.replace(regexp)がなくて、RegExp(str)しかなく、ああこりゃ駄目だ、と思った。
なるほどPythonではクソコードしか書けない、というのは納得だ。
しかも3.0になってずいぶん経つのに、え?まだこんな所で揉めてるの?みたいな制限事項多すぎ。

ただまあ、明らかに君はそれ以前なのだから、グダグダ言わずにさっさと始めるべきだよ。
君のレベルなら、TSでもJSでもPythonでもどれでもいいと思うよ。
Pythonのクソさが分かるようになるまでに2年ほどはかかるだろうし。

569:デフォルトの名無しさん
20/10/11 00:11:31.57 rXA2CZZq.net
>>548
クラスが使える=オブジェクト指向が出来る、という意味では、
最近のプログラミング言語でそもそもOOP出来ないものは存在しない。
それほどまでにOOPは認められた存在だと言うこと。
ラムダも同様だが。(なおPythonのラムダには制限あり)
だから最近の言語はどれもこれも同じだ!と言われていて、実際そうなのだが、
敢えて違う言語を!とやったのがGo。
ただしGoは別方向にかなり糞なので初心者は止めた方がいい。(と思う)
ただ、実際はGoも結構初心者受けしている。特に形無しスクリプト言語上がりには。

570:デフォルトの名無しさん
20/10/11 00:24:04.47 n4TOsjKe.net
Pythonは 機械学習関連のライブラリが充実していて 最強の地位は10年後も20年後もおそらく変わらないだろう とプログラミングに詳しい知り合いが言ってました。 マシンスペックも上がってきているので Python のようなスクリプト言語でも 十分に実行速度が発揮でき益々 需要が伸びる可能性が高いと聞きましたが。

571:デフォルトの名無しさん
20/10/11 00:25:02.84 vIhtxp0O.net
>>547
mypyというものがあってだな

572:デフォルトの名無しさん
20/10/11 00:34:52.32 y3zg5lZo.net
スレチ

573:デフォルトの名無しさん
20/10/11 00:49:43.03 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:デフォルトの名無しさん
20/10/11 00:50:50.85 vIhtxp0O.net
型無し糞言語は死あるのみ
型推論でスマートに型サポートを受けるのが今のトレンドだよ

575:デフォルトの名無しさん
20/10/11 01:01:08.81 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:デフォルトの名無しさん
20/10/11 01:02:20.20 sfgrEAk/.net
戻り値を忘れたorz
: boolean
型推論って便利ですよね、、、

577:539
20/10/11 01:27:53.11 B+MSoWxK.net
YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
Python, PHP, JavaScript などを絶対に言わない
初心者のfirst choice としては難しすぎる。
挫折確率が高すぎる
ただ年末に、Ruby 3.0 で型推論が入るから、
KENTA も、この方針を変えるかも知れない
大事件勃発!
Ruby on Rails に頼っている、すべての学校の方針が変わってしまう
ただ、first choice がGo と言うのは、絶対に無理

578:デフォルトの名無しさん
20/10/11 01:46:46.27 +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:デフォルトの名無しさん
20/10/11 06:43:46.76 vDn4Pmub.net
Pythonは型を書いてもインタプリタがそれを無視して実行してくれる
高速に実行したければPyPy使えばネイティブコードに近い速度で実行出来るしmypyで型チェックも出来る
JavaScriptで型を書くと単に構文エラーになるだけだが、その内無視して実行してくれる様になるだろう
そうなったらTypeScriptは要らなくなる

580:デフォルトの名無しさん
20/10/11 07:10:15.21 qONvW7Si.net
妄想おつ

581:デフォルトの名無しさん
20/10/11 07:22:42.40 vDn4Pmub.net
Pythonみたいに動的型言語に型アノテーションを追加する事が主流になるだろう
Union型は動的型だから出来る事で、完全に静的型にするとC++みたいになってしまう
動的型+型アノテーションは良いとこ取りで、プロから初心者まで皆が満足出来る

582:デフォルトの名無しさん
20/10/11 07:34:29.67 6reX+khV.net
Pythonは10年前にやったときは凄い言語機能だと思ったけど、それからあんまり進化しなくて今はJSにすら言語機能的には劣ってる。Pythonの良いとこ他の言語も取り込んじゃったからね。
でもそれとライブラリが充実してるってのは別問題で、このライブラリの充実っぷりがJS|TSにもあったら天下取れるのになぁと思う。
機械学習はライブラリの最適化がキモで言語の速度なんてほとんど関係ないし

583:デフォルトの名無しさん
20/10/11 08:43:37.68 AhI6YFfN.net
なんどもコードの書き換えが必要な機械学習において
Pythonのような可読性にすぐれ、少ないコードで実行できる言語はが必要不可欠なのよ。
Cythonを使えば実行速度もC/C++と変わらないしね。
JavaScriptはTypeScriptとして生き残ると思われる。

584:デフォルトの名無しさん
20/10/11 08:44:44.80 AhI6YFfN.net
>>558
そのYouTubeはPythonとJavaScriptで作られているという皮肉

585:デフォルトの名無しさん
20/10/11 08:59:02.53 rXA2CZZq.net
>>562
最近の初心者がすぐ「俺がやってる言語スゲー、俺スゲー」なポジショントークに走る理由が分からん。
Pythonが良かろうが悪かろうが、お前の実績でもなかろうに。
結局のところ、「○○言語スゲー」をやってる奴は、「他言語なんて絶対学びたくないマン」であって、
それを正当化する為に言い訳をしているようにしか見えん。
それは549の「知り合い」も同じ。
ただ>>556が典型的な「型の問題点」で、
規模的に「見りゃ分かるだろ」な場合でも、型あり言語は型を書くことを強制され、
結果的に煩雑なコードになってしまっていた。
それ、JSで
function isEqualPoint(p1,p2) { return (p1.x === p2.x && p1.y === p2.y); }
だったら、悩む必要もなく、その先にさっさと進めてただろ、という話。(※)
普通の頭してたらこれで十分だ。
ちなみに(メソッドではない関数で)isEqualは短すぎ。
isEqualPointはお前らが大嫌いなハンガリアンだが、どう見てもPointを受け取る前提で、そうじゃなきゃエラーだと分かる。
それを型を書いてコンパイラにやらせるのがTSで、目で見て落とすのがハンガリアン。
ただ、コードの精度を上げたいなら併用すべきで、
形無しのisEqualというのは.NETみたいにisEqualインタフェースを全部の型に対して供給し、
isEqualを持っている型はこれ使えます、てな事をやるために使う。
ただこれは.NETは世界の全てがOOP前提だから出来るのであって、JS界隈ではかなり無理。
そしてそれ以前に、isEqualはPointのメソッドとして実装すべき。
メソッドであればそもそもPoint以外を与えようがなくなるし、見た目もハンガリアン同様にエラーを検出出来る。
そしてインタフェースへの拡張も見えてくる。
どうしても野良関数にしたければ、ハンガリアンにしておく方が無難だと思うが。
なおOOPの問題点は根本的にここら辺で、
この程度のどうでもいい規模しか書けない初心者にも無駄にいちいち考えることを強いて手を止めてしまう。
このレベルならグダグダ言わずに何とでも書いてどんどん先に進んだ方がいい。
どうせ今書いてるコードなんてゴミで、後から使える事はない。

586:デフォルトの名無しさん
20/10/11 08:59:27.04 rXA2CZZq.net
少し遠回りしたが話を※の時点に戻すと、
だから「全部について型を書け」というのは少々煩雑で、型あり言語は型推論で


587:型を書かなくて良い方向に動いてる。 逆に、形無し言語は型をアノテートすることで、コンパイル時に落とせる方向に動いてる。 結果的に、どっちも同じような状況になりつつある。 落としどころは多分、C#の「ローカルは型推論、それ以外は型を書け」がまあ妥当なラインなのだろう。 だから初心者でこの辺の塩梅が分からないのなら、C#から入るのもありだと思うけど。 現実的にバランスが取れた仕様にはなってる。 >>563 JSが取り込んだPythonの良い所って何? そんなの初耳だが。 そもそもPythonが褒められてる点なんてマジで何一つないと思うが。 (ただし俺は10年も使ってないので歴史的経緯はほぼ知らんが) JS|TSが天下を取る為に必要なのは「同期」だよ。 asyncとかじゃなくて、普通の「同期」の方が分かりやすいし、実際スクリプト言語が担当する分野ではほぼそれでいい。 c10k問題等には非同期が有利なのは事実だが、見た目の分かり易さは「同期」の方が断然いい。 「それ、同期だったらそもそも理解する必要すらなくて、上から順に実行される、で済みますよね?」が多すぎる。 ただ、「非同期」は最早宗教だから、「同期」を入れることはないのだろうけどね。 「同期」が入れば、CPUリソースが厳しいサーバ側のPHP/Ruby/(ほぼいないが)Pythonの半分ほどはNodeに移行するだろう。 (実際、Goがその界隈で流行ってるのも、大した手間をかけずに快速が得られるからであって) また、普通のスクリプト業務、つまりPythonが蔓延っている分野でも、 Python同様に簡単に書け、速度は16倍なのだから、当然普段使いする奴が出てくる。(というか俺がそれ欲しい) そうすれば、ライブラリも充実していく。 「同期」がないから普段使いしにくいのがとにかく問題。 逆にPythonは実行速度が問題で、現実的な文句はほぼこれに尽きる。 だから彼等が何故高速化を目指さないのかは俺には本当に謎。



588:デフォルトの名無しさん
20/10/11 09:13:49.37 /RVlCgv+.net
このおっさん長文書く割に知識浅いな

589:デフォルトの名無しさん
20/10/11 09:15:26.14 xz6PduLx.net
>>565
あれPythonで作られてるから進化が遅いんだぞ
外向きにはPythonで問題ないって強弁してるが完全に負債化しちゃってる
Pythonで作ったWebサービスあるある

590:デフォルトの名無しさん
20/10/11 09:29:24.51 AhI6YFfN.net
時代についていけない老害エンジニアがC/C++を必死に推してるように思うのだが

591:デフォルトの名無しさん
20/10/11 09:29:47.66 vIhtxp0O.net
>>568
浅いというか個人 or 小規模開発しかしたことなさそう

592:デフォルトの名無しさん
20/10/11 09:36:16.20 AhI6YFfN.net
Pythonの速度が遅いと言ってるのは情弱
Cで書いたライブラリに受け渡せばC言語の速度で実行できるし
Cython使えばPythonのコードほぼそのままC言語の速度がでる
Pythonで困るのはGUIくらいだろ?

593:デフォルトの名無しさん
20/10/11 09:40:52.87 sfgrEAk/.net
継承とジェネリクスが役割が被る領域において
TypeScriptではどっちの書き方がメジャー(もしくは効率的)とされているのかわからなかったのです><!
>>559
レスdクス、
わかりた、

594:デフォルトの名無しさん
20/10/11 09:45:09.23 sfgrEAk/.net
次の質問なのですが、
タイプガードとか書くときにクラス(やハッシュ)にプロパティーが有るのか無いのか調べると思うのですが
つぎのどっちの書き方が良さげ?
 (1) 'someProperty' in foo
 (2) foo.someProperty != undefined

595:デフォルトの名無しさん
20/10/11 09:45:54.29 sfgrEAk/.net
なんとなく(2)の方が早いのではないか、という気がするのですが気のせい??

596:デフォルトの名無しさん
20/10/11 09:57:22.72 rXA2CZZq.net
>>572
俺もCのDLLをスクリプト言語から呼ぶ、というのが現実的な解だとは思う。
ただ、Pythonの問題はそこじゃない。
演算を変えたい場合は結局Cを書く羽目になるから、結局Cも出来ないと駄目。
そしてCは仕様が小さいので、本気で正しく学べば簡単な部類だ。
GUIは今は現実的にHTMLがダントツで良く、何から何までWebアプリ化してる。
なら今ならElectronの方が相性がいい。当然JS/TS。
サーバ用途でPython使ったら大体は速度の問題にブチ当たるが、
これは「お気楽に書ける分遅い」というスクリプト言語の特有の問題であり、Rubyも同様で、回避手段がない。
(Nodeはgoogleの努力で例外的に異常に速いだけ)
だからPythonは「何一ついいところはないが、何も悪くもない」という、ある意味「絶対的な2番手」だ。
だからこそ「絶対他言語を学びたくないマン」はこれに拘り、ポジショントークを繰り返す。
ただ、今時の言語なんてどれも似たようなもので、実際そこに拘る理由もなく、普通の奴は易々と言語の壁なんて飛び越えていく。
普通はこちらを目指すべきだと思うけど。
PHPもクソと言われて久しいが、いまだに蔓延っているのは、あの用途では絶対的に便利だから。
それはjQueryも同じ。

597:デフォルトの名無しさん
20/10/11 09:59:21.79 vIhtxp0O.net
>>574
無料相談所じゃねえんだぞ調子に乗るな
(2)にしろ
(1)は型の保証までしてないから最後の手段
あとinterfaceはライブラリなど汎用的なコードに使うもの、普段はtypeを使え

598:572
20/10/11 10:02:33.58 sfgrEAk/.net
ていうか自己解決しますた、
e: Event を e: MouseEvent として扱ってよいか(ダウンキャスト可能か)どうかを
確認するとき、(1)の書き方でないと
MouseEventにあってEventに無いプロパティー
(e.offsetXやe.offsetY())の有無の判定が書けませんぬ、

599:デフォルトの名無しさん
20/10/11 10:15:47.58 AhI6YFfN.net
>>576
機械学習の勉強してみ。演算やアルゴリズムなんて二の次 三の次だから。
とにかく何度もコードを書き換えてひたすらパラメーターと変数の調整作業になる。
言語の実行速度よりコードの記述速度の方が大事になる。
この時はじめて「Pythonさん。なめててごめんなさい」って言いたくなる。

600:デフォルトの名無しさん
20/10/11 10:30:46.60 rXA2CZZq.net
>>579
パラメータの変更しかしないのならそうだろうとしか。
俺は別にPythonを使うことが悪いとは言ってないぞ。
俺はJSを大変気に入っているが、それは「手抜きで書けるわりに速い」からだ。
だから俺はJSからCのDLLを呼びたいんだよ。
それがお前の場合はPythonなだけだろ。別に不思議でもないよ。

601:デフォルトの名無しさん
20/10/11 10:37:24.45 AhI6YFfN.net
>>580
PythonはCythonを使えば
ほぼPythonコードのままCのライブラリが作れるんだよ
速度はCで記述したものとほとんど変わらん

602:デフォルトの名無しさん
20/10/11 10:42:41.64 rXA2CZZq.net
>>574
それはJSでは議論し尽くされた質問。多分ググッた方がいい。
会社で書く場合は多分コーディングルールでどっちにするか決まってる。
プロパティのありなしのチェックだけなら(1)の方が原理的に速い。
ただしJSの場合はundefinedという値を設定出来るので、その場合は(1)も(2)もアウトだが。
これはJSの仕様バグだが、この辺含めてJSは厳密な型管理には向いてない。
そもそも型無しなので当然だが。

>>578
そもそもダウンキャストが必要となってる時点でOOP的には邪道。
多分それは無駄にアップキャストしてるから。
OOP初心者あるあるの、張り切って無駄にOOPして余計に複雑になってるケースだと思うよ。
それも含めて頑張れでしかないが。

603:デフォルトの名無しさん
20/10/11 10:52:20.91 rXA2CZZq.net
>>581
ならお前はPython/Cythonで一生暮らすでいいだろ。
俺はC使えるからCythonを使うことはないし、
Pythonも色々糞だからJSで


604:マむところはJSで行く。 だからCscriptはそこそこ良かったのだが、MSはこれを捨ててPowerShellという別糞言語押しなのは残念。



605:デフォルトの名無しさん
20/10/11 10:59:25.49 kZXFoyze.net
>>549
>俺はPythonやってないが、最近かじろうとして、止めた。
>String.replace(regexp)がなくて、RegExp(str)しかなく、ああこりゃ駄目だ、と思った。
>なるほどPythonではクソコードしか書けない、というのは納得だ。
馬鹿ですね判ります


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

278日前に更新/267 KB
担当:undef