- 论坛徽章:
- 0
|
本帖最后由 aquei_cu 于 2012-07-03 17:58 编辑
毕业到现在的七年时间,一直从事windows平台下软件开发,使用C/C++语言。
不敢自称“过来人”,只是一个“在路上”的码农,就以码农的身份谈一谈自己对C语言,C++语言和争论的想法。
一、C++语言
1.1 classname::
每个类成员函数都要加个"classname::"
有一天,我写了一千行代码,我突然发现其中有几百行的函数定义都在写classname::这让我很很崩溃。
python是这个样子- class A
- {
- def f(self):
- pass
- }
复制代码 跟C++类似的Objective-C是这个样子- @interface A
- {
- //
- }
- -(void)f;
- @end //A
- @implementation
- -(void)f
- {
- //
- }
- @end //A
复制代码 少敲打了很多字母,码农的生活美好了一些,不是吗,不是吗?
类中的成员分为public,private,protected
protected除了练习和考试之外,至今没有在真正的项目里用过。
1.2 public,private一个成员变量真的要private之后再提供get() set()方法吗?
真的需要一个private的成员函数吗?
1.3 namespace
在以前的公司里,有个员工和我重名,当行政部,每次发放节日礼物的时候,
他们很自然的选择XXX1和XXX2的命名方式,
从来没有使用XX部的XXX和OO部的XXX进行区分。
程序语言是一门工具,用来表达思想的工具,
既然是这样的工具为什么不使用更贴近人类思考方式来进行,前缀+函数名不是很好,为什么还要命名空间?
命名空间解决C中的宏冲突,为什么还要命名空间?
为了少敲namespace::class::function,而是用using namespace,又带来了命名空间污染的问题。为什么还要命名空间?
C++的继承分为public private和protected。到已经忘记了,三种继承的区别,因为我根本没有用到也看不到有人用...
1.4 多态- class A
- {
- virtual void f();
- }
- class AA
- {
- virtual void f();
- }
- class AB
- {
- virtual void f();
- }
- A* pa = new AA();
- pa->f();
复制代码 最近一段时间学习了objective-c,发现基础教程里根本没提多态这个事儿,难道他们不够面向对象吗?不是,人家一个id类型加NSObject基类搞定了这一切。
void*的多态,才是真正的多态...
1.5 类竟然不是对象?!
如果类是一个对象,一切的调用就动可以在运行时解决。这个世界是不是美好了一些呢?
1.6 try...catch
如果try...catch有用,我还用if...else干嘛,如果我知道这里会异常,为我什么不前面做好检查,后面做好判断,就地把异常解决掉,非要throw出去,在外部处理呢?
1.7 很多很多
还有很多很多的问题,比如标准库不标准,实现不一致等等。
总之,C++语言是门复杂的语言,正因为他的复杂,造就了很多的缺点,码农们都知道一个道理,代码写的越多,BUG也就越多,一行代码不写,肯定是零BUG。同样,C++是复杂的,所以它可以商榷的问题肯定多。复杂的另一种说法是丰富,你可以随心所欲的从C++里抽象出一个子集来用,你觉得不好的地方可以不用,这就是C++。也是生活,选择才是最重要的。
二、C语言
C语言相对于C++是门简单的程序设计语言,因为简单所以值得吐槽的地方就比较有限,正是因为简单,导致你用起来的时候有大量的工作要做,比如字符串这玩意已经成为大多数语言内置的对象,但在C语言里,惨不忍睹啊,除了标准库里有限的几个函数之外,基本上就没有更深层次的支持,用C语言去做文本分析,做web开发?不管你疯没疯,反正我是疯了。还有这个int,变幻莫测的int到底是多少位?他的含义到底是神马?机器字长?整数?
三、争论
争论是个好现象,如果论坛失去争论,论坛将会怎样?
从争论中,我才能真正的了解到它的缺点。或者说系统的了解他的缺点,有论点有论证。没有争论就没有互动,这也是我喜欢论坛的原因之一。就像你百度搜索“面向对象缺点”一样,各个博客上充斥的满是一家之言,或者是转来转去的东西,根本听不到别的声音,只有在论坛中的争论,才能看到真正新鲜的东西,真正思考过的东西。
如果,一个帖子下面的跟贴,都是“沙发”“板凳”,“同意”,“楼主你太厉害了”,“楼主说的对”...这样的回帖,那论坛和博客和微博还有什么区别?!
对于个人的喜好,我喜欢看以下人的帖子:
@zylthinking 说那么多废话干嘛?!秀代码!
@starwing83 想法达人。
@chinesedragon 辛勤的新闻发布者。
@pmerofc 大家来找茬
@塑料袋 理论爱好者,喜欢把什么东西都归结到哲学上去解决他消灭它。
@群雄逐鹿中原 犀利!
@OwnWaterloo 标准爱好者,坑王
不喜欢以下人的帖子:
@nilgod @walleeee
完。
胡言乱语了这么多,其实我是冲着书来的。祝自己获奖成功。
|
|