Re: [讨论] 请大家聊聊 JavaScript的缺陷

楼主: as30385438 (LCT)   2020-11-16 13:08:05
※ 引述《TonyQ (得理饶人)》之铭言:
: 是说应该要定义什么是好什么是烂,
: 我是觉得啦, 能解决问题叫好, 不能解决问题叫烂.
: 程式只是工具, 人才是决定 code 是不是垃圾的载体.
不太认同, 如果今天的task是计算1加到10000
从纸上开始 1 + 2 + 3...一直算到10000可以解决问题
用等差数列的公式也可以解决问题
写段code直接写个function让function可以支援不同的min, max也同样能解决问题
这些方法都能解决问题?难道他们都是好方法吗?
回到程式语言, 我相信大部分人都觉得战语言优劣很无聊
毕竟工程师都有自己偏好
但前端这块就比较不一样, 大部分人用JS不是因为喜欢或是适合
而是因为没有别的选择
前面在吵的web assembly目前来说生态系还差太远
看起来它也是以补强而非取代JS为目的
为什么近年TS开始红起来
我认为不是像大大说的, 那是能力不足的人在用的
以同是动态语言的Python为例
typing模组不管是语言面和IDE的支援也都越来越完善
我待过的两间公司也都规定新写的code能加type hint就要加
不过Python虽是动态语言但却是强型别, 跟JS还是有差就是了
在5人以上维护的专案中用了TS绝对对开发速度和维护性有显著的帮助
光是在obj后面.一下就会跑出各种method和argument/return type
就不知道能避免多少低级错误和省下查文件翻code的时间了
所以说用TS会拖慢开发速度的人
我真的不知道他是在做什么神奇的专案需要用到诸多JS的神奇特性
相关的webpack config也只要设定一次, 何乐而不为呢
当然你可以说, 只要平常规范足够好, 大家团队意识够强
加上每个人记忆力超凡, 写过的每个function是做什么的都不会忘
每个人都是完美的JS programmer不会踩到一些不该踩的坑
那当然用JS也不会有太大问题
但我们都知道,
人 是一定会犯错的
的确, TS不能解决所有问题, 但要把这锅推给TS就有点诡异了
这个逻辑有点像:“反正用了也只是从30分到60分, TS真粪”
TS本来就是以尽量不破坏JS原有特性下改进JS的可读性
拿any来说, 敝公司的tsconfig中是有设定nonImplicitAny
新写的code中要用上any也必须给reviewer足够好的理由
在prototype偷塞东西这种事情也是没事不会做
除了一些很底层的模组, 例如支援mixin之类的
不要因一时贪图方便造成后续难以维护
我认同大大说的, 的确没有办法控制整个世界照我们想要的规矩走
但这不是我们不能在力所能及的范围内做到最好的借口
作者: alihue (wanda wanda)   2020-11-16 13:47:00
推推,一些地雷在语言就应该设计好防呆掉,不是语言spec写烂了回来呛开发者不够熟语言
作者: testPtt (测试)   2020-11-16 13:53:00
其实很多语言写烂了直接在后面版本叫你不要用旧的写法
作者: CoNsTaR ((const *))   2020-11-16 13:57:00
推,说实话,连自己写的 function 的 type 是什么都搞不清楚的人才是真的能力不足
作者: sharku (明珠求瑕)   2020-11-16 15:21:00
推这篇
作者: LERICAL (统二布丁)   2020-11-16 16:19:00
作者: maik060 (^.< 啾咪 ~)   2020-11-16 20:28:00
作者: viper9709 (阿达)   2020-11-18 00:53:00
推这篇
作者: zxcasdjason1 (nice_Sky)   2020-11-18 01:43:00
推言简意赅
作者: jack529 (Jack)   2020-11-18 08:36:00
团队开发用JS真的是灾难

Links booklink

Contact Us: admin [ a t ] ucptt.com