游客:
注册
|
登录
会员
|
搜索
|
统计
|
帮助
轩辕春秋文化论坛
»
设计与修改
» 编程之路(1)
兴唐传·瓦岗山异闻录(20150519版)发布
(2015-5-19)
论坛营运现状公告
(2014-8-10)
三国志12pk版下载
(2013-4-20)
《精忠报国岳飞传》制作组对外开放
(2013-1-16)
岳飞传解密剧本发布
(2011-4-12)
招募各版斑竹和网站管理技术人员
(2006-4-19)
<< 上一主题
|
下一主题 >>
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
|
开通个人空间
|
加入资讯
标题: 编程之路(1), 编程环境设置
岱瀛
(deving)
长平侯
川峡东路经略使
监管使
组别
经略使
级别
左将军
好贴
1
功绩
2293
帖子
1370
编号
55810
注册
2005-12-22
来自
人间
家族
慕容世家
#1
发表于 2007-3-15 11:57
资料
个人空间
短消息
看全部作者
任何一种语言,它的外在是语言的表现形式,它能够影响人的思维习惯,它传承的着一种文化。英文和中文都是如此,计算机语言也不例外。
学C#的人,他很容易说,微软都给你做好了,什么谁谁谁都给你做好了,直接拿来用就是。不能完全说他们的说法不对,但是作为学C开始的我,确实是很难接受这种.Net思维和文化的。
感觉做.Net的人,他的思维重点在于去找,去找现实中已存在的代码,组件到服务来完成自己的任务。
他的文化习惯是别人已经做好的东西,直接拿来用,肯定比自己拼命写来得合算。
这其实倒是符合现代软件工程想要的软件产业化,工程化的愿望,从软件行业的发展上看,他现在更需要象建筑业里的工地工人,施工工程师这样的人,太需要了,而且需要的量非常多。
所以现在招C#程序员,.NET工程师的都很多,待遇却也都不怎么样,这个其实非常的合理。
学Java的人,很多有着一身的牛气。他们容易鄙视学C#的,也看不起学C++的。学Java的,其实部分文化和C#是一样的。面向对象和面向过程之间,是一种自上而下和自下而上的思维区别。但是,java不象C#那样强调傻瓜化,他更注重了设计层面的东西。(C#不是不注意,只是他更容易去附和微软的提倡)
C#里,微软的MSDN,微软的推荐解决方案都是权威,而Java里可能相对标准会多一点,EJB和spring不就各执一词吗? 比如Web Server的选择,J2EE里面就五花八门,.NET里你就看IIS。当然也有人会说,选择IIS有什么不好
我个人对C#的那种傻瓜文化是非常抵制的,对.NET世界里的思维习惯是无法自如应用的。
虽然我现在也常写C#,这好比我学英文却不能完全用英文去思考问题一样。
但是对于Java,java里面的文化内容,我还是学习了解,适应了一些。
可以说,是Java把我带入面向对象的世界里,是java让我了解设计比具体实现还重要,
是java的设计模式,是java的团队开发精神影响了我的思维,尽管我现在写java不一定比写C#熟。
其实很早我就会写C++了,C++和带来的重大的变化是一个class的出现。但是那个时候,
也就是我读高中那会,根本上是无法理解面向对象的封装,继承,多态。
因为信息学竞赛里面强调的是算法,当时社会上热炒的面向对象概念,我是全然不理的,主要也是理解不了
。面向对象里面给我带来震撼的,就是VB,做界面好爽,随便拖个窗口可以让我写C写上半天都达不到那种效果
然而,等到大学里学java的时候,等到学设计模式的时候,我看到了多态的魔力,看到了封装的意义。
知道了继承里面有对接口实现,有对类继承,在概要设计,在详细设计,在代码实现上有不同的要求。
面向对象里的开闭原则,对接口编程原则,多用聚集少用继承的原则.
java本身确实也有它的合理性,它的一个公共类对应一个.java文件,编译成一个对应的.class文件,把开闭原则诠释得那么清晰。
小学的时候,学的是Logo语言,当时经常一个程序写完,就和同学对比,看我的实现在3行代码,你的写了5行,差劲吧。学C,学pascal,也可能是信息学奥赛的评分标准的诱导吧。我们重点是在看时间复杂度,空间复杂读。
DOS的时代很变态的。64K的栈空间,里面带上数组,外界测试数据故意弄一堆很变态的,一下进来,你程序递归深了,栈就爆了。
而就算用malloc,new这些,DOS下的基本内存也就640K,除掉系统用的,一样遇见故意为难你的变态测试数据,程序一样得见鬼。这样评分就降下来了。
还有那万恶的时间要求,2秒内对那组测试数据出不了结果,一般就扣分了。
基本上到了省赛以上级别的奥赛,那种变态的题目也基本上是难不住我们的,但就是那些苛刻的测试数据和变态的评分标准,硬是把我们的程序评出优劣,自然而然,也影响了我们写代码的习惯。
至今我还忘不了当初在机房里头撞显示器的情景
好象跑题了,说到C和面向过程的时代了。回头再看java,java里当你要修改你的代码,要扩展你的功能,
你就现了所谓的"向修改关闭,向新增打开“的开闭原则的精点所在了。
怎样把原来的.java一个都不改,这样原来的.class就都不用变了,新写一个java,build出一个新class,进入后,新程序就又跑起来了。
扩展性,可测试性的重要性显示出来了。
java为什么如此的强调设计的重要性,因为它处处体现的要求是项目的可扩展性,可变更性,可测试性,可维护性。
这和C的效率至上,代码行数少更好的重点要求是不一样的。
可扩展,灵活的架构,往往会带来更笨重的代码,但是当和松藕合高内聚的要求对比起来,当和测试工程结合起来,当以代码重用,项目可维护,可扩展,等这些联系起来时,这种强调就非常的合理了,而且我个人也接受这种文化,这种看起来和C有相悖的文化,两者相结合而成我自己的编程思维,自己信奉的文化。有点中庸的感觉,或许小时候喜欢读古文吧
不过作为一个中国人,不受点儒家思想影响一样也是不太实际的
所以,java从面向对象那里吸收了营养,以一种自上而下的大者,王者形象掌握着全局,对C里面的讲究,的内容,他是一种君子不拘小节的态度。
前面说了,学java的人自带了一种牛气,原因就在于此。
再说说C,C作为面向过程世界里的王牌语言,至今也有其生命力。面向对象的思想听老师说70年代就有了
,然而一直到90年代才战胜了面向过程,这其实也是软件工程发展的要求,并不是哪种思想比哪种思想好,更不用说哪种语言比哪种语言好了。
个人是很鄙视那些教科书整天吹嘘面向对象的思想更符合人的思想的说法的。
一个完全新人,学习计算机的时候,你看他是学面向对象快还是面向过程快。现在大学计算机系里,又有多少学生他真正明白面向对象的真谛。所谓的符合思维习惯,我怀疑是首先符合西方人的习惯,然后他们这样写书,我们翻译过来然后不加分析就一传十十传百的传开来了。
反正我个人认为面向过程更符合我自己的数学,物理解题的思考习惯。
C除了前面有说到的强调代码简结,运行效率高,开销小外。和C#有一个致命的不同是,写C的人从来不愿意更多的相信别人的代码。C#说别人写好了,肯定比自己匆匆去写来的问题小。写C的可坚决不这样认为,就算不是自己亲自写,要拿来用的东西,一定要见到源码,一定要明白了他到底在做什么,只有明明白白的东西,才会用,不然宁可自己写,不然出了问题怎么办?
C#出了问题,更习惯查帮助,查文档,怀疑自己调用的接口顺序不对。
C的出了问题,那是Debug,Debug再Debug,越不是自己写的,越是怀疑的重点
所以,C的代码,往往不象Java,C#那样强调可读性,C的程序员,感觉上更象独孤求败的世外高人,
很有陶渊明独爱菊的感觉。
过去的程序员性格更加内向,过去的程序员经常有独立出来接项目自己做的。
我想这和C的文化习惯应该很有关系。
不能不提下汇编,这个不被列为高级语言的怪物。
不谈其实现语法,只从个人理解的部分思维习惯上说起。汇编里面,是一种类似机器人的文化。
但是,仅仅说机器人是不够的,应该叫做高智能能的机器人
(突然想起雪芸姑姑对论坛一位高人的评价)
有条不紊,扎扎实实。写汇编的人,本来就需要有异于常人的冷静,而汇编里多条指令才实现一个功能的那种做法,没有类机器人的稳重,不是一般人能够达到的。
而高智能,这点就更是汇编人的特色了。更突出的是那些写16位汇编的。win32汇编,曾经让很多写汇编的人很不爽,原因很简单,win32汇编和C一样,对系统级的操作都是要调用Win32的api。这其实挺难让以前写汇编的人接受的。16位汇编,那是想调用中断就调用中断,为所欲为的。真正的病毒开发者,黑客
应该都喜欢这种语言,有着这种思维文化的底子。汇编里面变量是无类型的,听说B语言也是,汇编里面的jmp,那是远胜goto的东西。一切讲究的是一种全面的自由,一点阻碍都要不得。所以象win 32 api,那是多讨厌的东西啊。C里面也同样有自由至上的文化,那就是指针的应用。但是比之汇编,那全是小巫见大巫了。
最后说说C++,C++是一种有容乃大的姿态,出现在这个世界里的。从我个人来讲,很难说我从C++里面领悟到具体的什么,但是C++又感觉给我带来了很多的东西。前面说了,我个人是同时接受着C和java两种思维文化,以一种中庸之道凌驾着这两者,那么不从中文儒家的角度说,其实C++是不是在我的潜意识里也发挥着这种作用呢?这个我也不敢十分的肯定吧。也许应该有吧。
因为我确实没见过一个纯粹的C++程序员,会C++的,基本上都会有C的思维习惯,然后还往往又夹杂其他。至于我自己,那更是杂就一个字。
简简单单的说哪种语言好,哪种不好,那是肤浅的。
语言并不代表着什么,编程思维,编程习惯,乃至背后的文化才更加重要。
但是,也不能说孰优孰劣,只能说是社会需求的多寡和个人更加适合哪一个。
[广告]
真诚支持说岳,携手共创辉煌
投票
交易
悬赏
活动
正在浏览此帖的会员 - 共
2
人在线
轩辕春秋文化论坛
轩辕史话
> 炎黄春秋
> 我思我在
> 法律探讨
> 三国史话
春秋文艺
> 古典小说
> 诗词歌赋
> 现代文艺
> 韦编三绝
> 对联雅座
> 滴翠亭
> 藏经阁
> 双七钟社
> 笑书神侠
> 辕门射虎
> 虎帐点兵
游戏人生
> 同人战棋手游
> 三国戏英杰传
> 三国鼎立
> 轩辕公会
> 三国志12
> 英雄史诗
> 运筹帷幄
> 人间五十年
> 步步为营
> 游行天下
> 游戏贴图
轩辕工作室
> 兴唐传·瓦岗山异闻录
> 豪华曹操传
> 精忠报国岳飞传
> 《精忠报国岳飞传》制作组
> 大一统演义
> 曹操传MOD作品交流
> 东吴霸王传
> 封神英杰传
> 杨家将
> 吕布传
> 三国无双战略版
> 北宋志·赵匡胤传
> 战旗春秋
> 曹操传MOD制作交流
> 金庸群侠传MOD交流
> 风华录
> 设计与修改
怡情岁月
> 影音经典
> 动漫先锋
> 绘画摄影
> 情感轩辕
> 衣食住行
> 体坛动力
> 谈股论金
> 水泊轩辕
参政议政
> 迎宾阁
> 鸿胪寺
> 登闻鼓
> 监造府
当前时区 GMT+8, 现在时间是 2025-3-3 03:02
京ICP备2023018092号
轩辕春秋
2003-2023 www.xycq.org.cn
Powered by
Discuz!
5.0.0
2001-2006
Comsenz Inc.
Processed in 0.009927 second(s), 9 queries , Gzip enabled
TOP
清除 Cookies
-
联系我们
-
轩辕春秋
-
Archiver
-
WAP
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
基本概况
论坛排行
主题排行
发帖排行
积分排行
管理团队
管理统计