- 主题:Java农转写cpp发现,写Java比写cpp省心太多了
处理器相关的科学计算模块现在一般都是硬件厂当成驱动去研究的,不知道细节和路线图是打不过人家中央军的
【 在 Bernstein 的大作中提到: 】
: 我用汇编还至少可以在现在的处理器上优化下,设计数字电路还得先买个fab厂,买不起
:
--
FROM 27.91.71.*
不喜欢异常可以换个不支持异常的语言
【 在 Bernstein 的大作中提到: 】
: 大多数人根本搞不清楚什么是正确和错误...
: 异常不仅仅丑陋,而且根本的问题是被滥用
: optional之类的代数类型就可以解决的问题
: ...................
--
FROM 27.91.71.*
你接近问题的核心了
实际上很多软件由于写的本身有问题,甚至无法找出瓶颈
cpython有个好处是,不调C代码的东西必然死慢,所以一下子就能找出1%的瓶颈加以优化,最后反而胜过了速度更快但不好找瓶颈的语言
【 在 Bernstein 的大作中提到: 】
: 瓶颈不好说在哪,不评测个具体问题,谁知道哪里有瓶颈
: java里那些比较快的库程序,似乎很多是native的,不过应该不是jni的
:
--
FROM 27.91.71.*
可以不代表该这么用
我见了太多的纯C风格java,python和javascript代码,都是印度培训班杰作
一般来说用什么语言就应该按照什么语言的标准库的规矩写,stl和boost为什么要抛异常啊
【 在 Bernstein 的大作中提到: 】
: 现在cpp和rust都可以用代数类型返回错误
:
--
FROM 27.91.71.*
你说的是error code?
项目做大了这个东西很麻烦,不同team之间怎么分配,用哪个标志表示问题严重性。而且还得写个把code转化成text的表格。
好不容易全搞定了,然后发现自己想嵌入更多信息。。。如网络错误的host名,status code放哪里都是难题。
【 在 Bernstein 的大作中提到: 】
: 应该用代数类型处理错误,一致有效
:
--
FROM 27.91.71.*
异常是有类型的,你这么做本质上等价于restful那种返回result或者返回error对象的做法
项目小的话是没问题的,但是如果做大了很多代码模块复用,搞清到底是返回了什么异常就不容易了,集中处理某大类异常也比较困难
如果认真把这类问题全解决了,基本也就是重新发明了异常
【 在 Bernstein 的大作中提到: 】
: 并不是难题,都放到variant/optional里头就行
: 异常信息难道不是得同样管理吗?
: 用代数类型之后,用管理异常同样的方法就可以管理错误信息
: ...................
--
FROM 27.91.71.*
异常本质就是对象,外部模块的class你就不能用了吗?
【 在 Bernstein 的大作中提到: 】
: 代数类型里内嵌的错误信息也可以有类型啊
: 问题是异常你不了解也处理不了啊,一个外部模块抛的异常完全是扯淡
:
--
FROM 27.91.71.*
还有一点,异常是现代CPU从设计阶段就开始考虑的错误传递方式,是最高效的
【 在 javafish 的大作中提到: 】
: 异常的优势是可以穿透调用栈
: 还可以按异常类型各层分类捕获
: 最关键的,有明确的异常流程代码段
--
FROM 27.91.71.*
你可以不管module到底出了什么事情,只catch基类异常。一个正常写的module不会定义一大堆新异常。
【 在 Bernstein 的大作中提到: 】
: 如果有很多异常的话,那肯定是不会使用的;我不关注它内部出了什么非预期情况,也没兴趣捕获来打破正常流程
:
--
FROM 27.91.71.*
前面有人说过SEH也是非常快的
【 在 javafish 的大作中提到: 】
: 硬件那个异常跳转和业务层八杆子打不着吧
: :
--
FROM 27.91.71.*