免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: OwnWaterloo
打印 上一主题 下一主题

[C] 思考题:语言是工具?重要是思想?那如何表达思想?(修改版) [复制链接]

论坛徽章:
0
111 [报告]
发表于 2011-10-28 10:09 |只看该作者
回复 110# pmerofc


    休谟的。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
112 [报告]
发表于 2011-10-28 10:12 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
113 [报告]
发表于 2011-10-28 10:21 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
114 [报告]
发表于 2011-10-28 10:29 |只看该作者
回复 43# OwnWaterloo


      vfs那块我确实没细看过,实在是精力有限。我对国内大牛们总有个很矛盾的印象,讨论问题时啥都懂,啥都会,那知识丰富得我学10年也赶不上,可实际上很少看到他们写出有价值的文章和实际应用了的自由软件,当然完全可能是我孤陋寡闻了,反正我觉得国人写过的最好的linux下的软件就是 scim了。而老外不一样,平时不张扬,一不留神就做出一个实用的软件来。记得以前在外国论坛问一个amd64汇编的问题,一个老外解答之余,还向我推荐他做的调试器,说比gdb好用。所以我觉得,语言和思想哪个都没有真正动手做东西重要,不去做实际的应用,都是空话。

论坛徽章:
0
115 [报告]
发表于 2011-10-28 10:36 |只看该作者
回复 112# pmerofc


    休谟有表达啊,人性论 及其 人类理解研究 等。

    休谟的哲学 一句话 怀疑主义,怀疑一切,你如果谈论什么高深莫测的问题,他就说,你指给我看,比如上帝,时间空间的边界问题等。
    康德被休谟击中,所以开始考虑把非经验把握的东西放入信仰领域存而不论了。休谟20几岁的时候就把整个他以前的哲学捣毁了。直接促使
    康德开启了新哲学时代。
    而且 休谟否认因果律,他说因果律 也不过你的臆想罢了,哪有什么因果,所谓因果律不过日积月累的联想。
   
    我们以前见到太阳照常升起,明天也应该会。仅此而已。这个其实没有什么因果。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
116 [报告]
发表于 2011-10-28 11:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
117 [报告]
发表于 2011-10-28 11:11 |只看该作者
本帖最后由 狗蛋 于 2011-10-28 11:13 编辑

回复 108# 狗蛋


    补充: 上面的例子是new关键字和旧类型初始化之间的耦合;还有new运算符和内存分配方式(如栈分配、内存池等)之间的耦合,这就是所谓的placement new和new运算符重载等概念。

——这类东西,在很多微软式封装或初学者架构中比比皆是。

——它们的共同特点就是:给你一个看似很爽很漂亮的封装;但当你真的去用它时,就会发现自己不得不去窥探这个封装里面的东西;更恶心的情况是:这种封装往往还会近乎“恶意”的阻止你去接触内在的东西……



嗯嗯,封装不是把不希望别人看到的东西藏起来吗?

我并不这么认为。
封装不是简单的把不希望别人看到的东西藏起来。这样的东西是恶心的微软式封装,它教唆、逼迫使用者去寻找“未公开的系统调用”之类东西,因为这种不公开的东西往往反而是能不能实现某个功能的前提。
这种现象的原因,是这些模块本质上是基于非正交的模块划分而设计的;而“非正交”这个属性,就决定了该模块本质上不是独立的,不为它(和其它部分之间)的交互设计特例,就不可能完成期望的功能;而这种特例会破坏封装,于是不得不将其“未公开”,以保持表面上的光鲜,并期望将来某个时候也可以将其纳入管理(或者说,搞另外一个表面光鲜的“封装”)。

相反,图灵机、函数式编程,甚至C内部的绝大部分概念都是正交的。

正交的东西才可以独立分析,才可以在学习/使用一个关键字时,完全忘掉其它关键字。这就叫xx概念对其它部分透明。

我认为,“对其它部分透明”,是可以“隐藏私有实现”的前提。



很可惜,new对于c++的其它部分显然不是完全透明的。这就是之所以衍生出new[]、operator new、placement new的根本原因。
当然,这可以说成是“为了兼容c”和“为了兼容c以及用户自定义内存分配模型”而不得不付出的代价。
但,至少new和其它部分不正交并因此导致了几倍的混乱,是不争的事实。

——嗯,之前考虑不够细致,不能准确说出我的确切想法。现在可以尝试说的更确切一些了:关键字/特性的多少或许并不和复杂度挂钩,但硬生生插进体系的、和其它部分非正交的关键字/特性将导致复杂度指数级增长。

如果可能,就将这种新特性置于考虑范围之外。等到实现时、确认不会引起棘手的side effect前提下,能用就拿来用,不失为好的选择。
但如果在设计之初就考虑这些东西,就必然不得不去窥探它的内部实现,进而导致诘屈聱牙的东西出现。

这,或许就是c++名为c之超集——c有它都有(且完全兼容毫无额外负担还提供了类型安全等等等等免费午餐),c无它也有——但市场占有率上反而玩不过c的原因吧。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
118 [报告]
发表于 2011-10-28 12:02 |只看该作者
回复 114# btdm123

这就是传说中的"你与他谈思想,他给你说动手"吗

论坛徽章:
0
119 [报告]
发表于 2011-10-28 14:49 |只看该作者
回复  btdm123

这就是传说中的"你与他谈思想,他给你说动手"吗
OwnWaterloo 发表于 2011-10-28 12:02


俺水平不够,自惭形秽,没资格和你这样的牛人谈思想

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
120 [报告]
发表于 2011-10-28 15:06 |只看该作者
回复 119# btdm123

看得我起了一身的鸡皮疙瘩,是因为降温了么
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP