下沙论坛

标题: 对VC的批判,我要打击大家学VC的积极性了…… [打印本页]

作者: ASEE    时间: 2003-9-4 11:33
标题: 对VC的批判,我要打击大家学VC的积极性了……
一家之言,VC高手不妨过来指点指点,没有人骂我,我不高兴- g' S; b' U+ V6 a4 l6 \* H' r8 j
作  者:bitfan () 5 V& W9 h. {* S) J/ L
, j5 ~& i) J" W% y5 K+ x
注:以下的观点主要指VC6。)
* _; @$ j4 Y$ m: x2 F* H' Y; ^+ d0 Q% b" u
1.       背景我这人喜欢偷懒,VC我断断续续学过很长的时间,最终没有能成为我想成为的那种高手,在“程序人生”中的一个贴子《怎样克服学习过程中的浮躁,来者有分》/ Q4 G) n$ u; N# M( m( Q6 i

% K/ B  r1 M% t- }3 }$ \(http://www.csdn.net/expert/topic/635/635462.xml?temp=.8159601)中我看到有很多人都说VC难学,信然!拿我来说,最终真正派上用场的还是VB和C++Bulder之类RAD开发工具。 我在想,为什么大家都在说VC难学,却又想学,许多人是不是都象我刚学VC一样,人云VC如何如何,就去学VC了,但水平与能力有限,只能成为半罐子水,花钱不少,花时间不少,花精力不少,代价更不少,却没得到什么…… 为什么大家都要“明知山有虎,偏向虎山行”?特别是许多准备进入软件开发这一行业的,用过自已的大脑仔细想过为什么要学VC吗? 我的观点要打击大家学VC的积极性了……
% R+ I' x1 b1 l  ?$ u& |! |5 ?
) ]1 f, r+ [$ j) h& ?" M1 w$ l2.为什么用VC干活的人工资高?我认为学VC可以对一个程序员的基本功做出最痛苦的锻炼,所以经过VC苦练的人大都是金刚不坏之身,再学其它的东西就感到游刃有余了。通过VC成为高手者自然人少,以VC之难能成为高手者自然能力超群, 牛人自然工资高,这有什么奇怪的?他们付出了更多罢了。 6 v- ^9 ]) s0 ?
- U2 \: Q( h* ]  z6 A
3.不学VC的最主要理由:技术进步!不知诸位正在学VC的想没想过技术进步这个因素?如果你学VC是为了有个收入高的好工作,那么我认为你还是别学好。现在.net已经推出,编程平台的转移是必然的,这个周期大约就在两三年之内。 VC6的核心就是两大类库:MFC和ATL,前者是基于win32 API的一种FrameWork,后者是开发COM组件的类库,两者开发的是传统的Windows应用程序,学VC不学MFC,不学ATL几乎可以说没学VC!但遗憾的是学VC的人没有几个不为MFC中那些复杂的类之间的关系,那些奇怪的代码而头痛,ATL也好不到哪去,如果你事先没系统地学习COM理论,用ATL来发基于COM的组件几乎是不可能的。事实上,MFC框架就是一种设计模式,只不过微软的开发人员将其设计得非常完善罢了。那本著名的《设计模式》经典书中就介绍了23种设计模式,其中介绍的MVC模型几乎就是MFC的精髓!用MFC开发软件,你就必须遵循它的思路,你所做的工作就是在这个框架上修修补补,(当然,这个框架做Windows界面还是非常完善的,几乎考虑到了程序对界面的所有需求),但我觉得强迫别人按照一个框架去解决问题这是对人的一种束缚!可悲的是还有那么多人沾沾自喜于此!我常用C++ Builder,我知道VC的高手对这类RAD心存蔑视,但我也知道我在C++Builder中可以非常方便地从头开始应用一种设计模式,而不用费心地考虑如何将我这种设计模式嵌入到某个框架之中(当然我也可以设计出很复杂的应用多种设计模式的程序框架,C++Builder把这个工作留给了程序员自已);同样的工作,对于一个对VC不熟的人,自建若干个新类,再将其引入到MFC中不是一件简单的事,其主要原因就是MFC的复杂性。C++Builder中只需新建若干个Unit,然后写你的类,再在窗体上加一个接钮,包含上新类的头文件,new一个对象就可以用了,对于初学者而言,你说哪种解决问题的方法更直观,从程序设计的角度,哪一个效率更高? ' C: J" g* z1 O% K  |7 {4 s

; @/ l5 E3 u5 F% A$ P4.从微软的策略看VC的前途!微软的策略是先用.net提供一个新的环境,然后逐步修改其OS,最终完全抛弃NT内核,其最终目的是抢占被UNIX和LINUX占据的高端市场份额(这是Borland李维说的,我觉得有道理)。现在推出的.net框架还支持原来的技术(如COM+),VC.net中也还有MFC7,但这只是一个过渡时期的产品,就象Windows 3.1被Windows 95取代一样,最终是要被抛弃的。很明显,软件发展的趋势就是不断提高软件开发的效率,在.net中开发程序绝不会有现在VC6中用MFC这样复杂和繁琐,事实上,新的平台已不再有win32 API这种平面型的开发接口,已全面立体化(类似于在C++的类库,使用方式也与C++中类的使用方式类似),而且应用程序又回到了DOS时代的简洁,只需复制整个文件夹,就可以移动一个应用程序,程序是自说明的,注册表也没有了,意味着基于注册表的COM组件技术也将被取代。这一切的变化周期估计就在两三年之内。
( @6 M8 {# y3 `, a0 C9 o% b: o! F7 f7 h' x0 G7 [
5.现实的考虑:诸位想想:如果你花一到两年的时间去学VC6,尤其是MFC,就算你到时是VC的绝顶高手,你却空有屠龙之技而无龙可屠,岂不悲哉!想想如果有一个DOS时代的高手跨越时空来到现在,他的技术早已被时代所淹没,如果不更新知识,他会发现要找到一个饭碗都不容易。对于所有想学VC的人,我提出一个忠告:VC的巅峰期已过。 那现在为什么还有那么多公司想要招VC的程序员?有很大的原因是对过去资源的继承。过去的投资不能白费,这还用说吗? 2 u3 _% H" T$ M& B, i6 L' P

5 h6 J( {. o; g) L5 V6.如果你打算学VC,请端正你的目的!现在学VC的目的不是为了好找工作,好拿高薪,而是因为它的复杂是锻炼一个优秀程序员的最佳方法,就象奥运长跑选手为了提高身体素质而到高原上训练一样。对于想进入软件开发大门的人我的建议是直接学习最新的技术,而且最好是现在学习今后一到两年内会成为主流的技术,而那些有志于成为windows软件高手的人,VC是必修课,不经百炼哪能成钢?而且VC肯定还会生存很长一段时间,就象现在还有用Foxpro开发的系统一样.
: F5 A1 W3 s  R' n! ?( D& }) S0 ?7 e. w' {4 y% H7 l/ [
7.我学软件喜新厌旧:对于象我这样的平庸之辈,我脚踏N只船:最早以VB入门,从3.0用到6.0,它给我带来的收获也最多;VC我是半桶水,学了一两年就没一点成就感;C++Builder是我的爱将,是我学习C++和各种软件理论最常用的开发工具,用它也做了不少东东;真的不错,准备娶过门来了;我还对Java心存向往,很想马上去学,不过个人能力有限,还是放一放罢…… 掌握多种开发工具有一个好处,那就是可以取长补短。比如有一个图象处理程序用VC开发,而其中的报表部分我则用C++Builder做出来,再以COM组件的方式给VC调;要操作Office我喜欢用VB,要写多层系统访问数据库我喜欢用C++Builder(现在还加上Delphi),所有这些都可以在COM的基础上统一起来…… 不过COM也快完蛋了,我也要学新的东东了,可惜了我买了那么多COM的书……对了,还要加一句,对COM了解即可,别钻进牛角尖里去了,COM又是一个无底洞,也许日后再发个贴子,就叫"对COM的批判"& F( {# E" o9 T5 \2 U

) G5 k$ |# q. i$ U5 H, k 4 V# c( w# l+ s1 B2 u

: v; `" U3 @0 F  |9 M3 M$ D谢谢horris(僧推月下门)的高论。 我想就horris贴子中涉及到的几个方面谈谈看法。
3 o$ e) m: a7 I+ Z; o( [* U! R
: T1 G/ O/ z5 x' a# [3 T# ?% k  S1)程序框架和设计模式: 程序框架的设计体现出设计模式理论,可以看成是一个未完成的系统,程序员在这个框架之上加入实际工作的代码而形成真实的系统。而这两者的出现与广泛应用是软件开发走向成熟的必然。 为什么要提出设计模式理论和应用程序框架?很简单,就是要提高软件产品的质量和生产率。 现在主流的开发工具中都有程序框架的应用,最典型的是MFC和VCL。那么,衡量一个框架好坏的标准是什么?我可以列出几条,但我可以肯定地指出,框架的可复用性是第一位的,而易用性是第二位的,运行效率则是第三位的。就可复用性而言,MFC和VCL难分高下,而易用性则差别巨大,我就不详细说了。   
4 d1 {# r( G. D. R8 c% P4 n6 P8 ]  V% @2 e) a$ f- X
2)“运行效率”vs“开发效率”; 运行效率和开发效率这两者谁更重要? 除非是开发实时系统和某些系统核心模块(这种模块在整个项目只占很小比例),大多数软件项目考虑的是开发效率和一些其它因素,对运行效率则要求不高。 所以,象开发效率、稳定性、易用性、易维护、可扩展等就成为首要考虑的因素,而运行效率则是在保证达到前面要求的前提下再去考虑的。 另外,是否VC做出来的东西就一定好和快呢?这取决于系统设计和程序员对语言和工具的把握程度。 举个例子: 在程序设计过程中,都要对系统功能进行封装。假设系统中要将ADO RecordSet封装成一个适合特定用途的数据存取类,用VC封装工作量是C++BUILDER的好几倍(因为C++BUILDER中有一个现成的类TADODataSet封装了ADO RecordSet,基于TADODataSet自然要少很多工作),除了少数VC高手,绝大多数人用VC实现的封装都无法与用TADODataSet的封装相比拟,为什么?很简单,你对原生的ADO RecordSet的封装达不到TADODataSet的水平!开发VCL的程序员是一批牛人,这批牛人的水平是绝大多数程序员所无法达到的,牛人们既熟悉语言和开发工具,也熟悉ADO的底层原理。你用VC做出的东西,与另一个用C++BUILDER或Delphi做出来的东西相比,可能你的稳定性更差,运行速度更慢! 既然费尽心机地用VC做出来的东西还不如另一个学了Delphi3个月作出来的东西,我为什么一定要哪壶不开提哪壶? 所以,从现实的角度,我不赞成大量的程序员为了“自己造轮子”而将大量精力花费在VC上,应尽可能地复用优秀的软件组件。 开发效率是程序员吃饭和公司生存的关键因素。
( I5 c3 j  L7 h6 N2 p1 [/ j! l+ _5 s4 i+ C8 {* k4 f
3)关于.net平台下的Unmanaged和managed应用: 毫无疑问,Unmanaged程序肯定快,但我可以肯定的说,managed今后将会大行其道,特别是在企业级信息网络中。 什么叫Unmanaged应用?直接调用OS的API,直接编译生成机器码的程序。而managed应用,就是运行在一个软件虚拟机上的程序,Java就是一个典型的例子,.net也是走的这条路!Java为什么这样火,M$为什么要跟进这个步伐?很简单,这种架构更适合于现代信息网络的要求。VC6只能开发managed应用,你说说它在现代的网络化软件中会居于一个什么地位? 另外,在企业级的软件中,最重要的是什么?一个是安全,另一个是集成多种信息源!运行效率的考虑是放在最后的。Java慢,但为什么还被广泛用来开发企业级应用程序?XML和Web Service为什么被称为下一代网络技术的核心?最关键的一点是它可以使不同平台的软件相互合作!
- _+ K  U' z$ c% c! K1 f. B% j# ~- x
   4)现在可以做出一个小结: 对于需要高效率、与硬件打交道、运行于传统Windows平台下的程序而言,VC是重点选择的开发工具,有志于此的程序员必须花大力气去学VC; 对于开发企业级软件和电子商务等互联网应用领域的专业程序员,根本不要去学VC,而应将精力放在标准C++,Java,C#等语言的学习上,同时重点学习.net、J2EE等平台; 对于一般的软件开发爱好者来说,VC不是必经的一条道路,可以根据实际情况选一种开发工具和语言学习; 对于还在学校学习的计算机专业学生,C++和Java是必学的,至于VC,需不需要学还要看你将来想从事的领域。 我之所以发这个贴子,是看到有很多贴子总在夸耀VC的强大(这是实情),无形之中很多人被误导了,不管什么情况,好象一学软件开发必学C++,一学C++必学VC,然后浪费大量的时间和金钱于此,费事不少,收效则低!(我周围就有很多这样的情况,包括我,都成为VC的半瓶水)先不说成为不了专业程序员的人,就是以软件开发作为职业的人,从事的领域不一样,也不一定非学VC不可。有这时间,干些别的岂不更好? 至于VC的前景,我在本贴中提出了自己不乐观的看法。诸位兄弟姐妹想必会有更多的观点,我希望大家能多多讨论一下,这不是孰优孰劣的问题,而是如何把握技术发展趋势,然后根据发展趋势来选择自己的突破口的问题。如果有多方面的观点,对大家想必都是一种启发。 期待更多的发言
; X* G. [8 u& w. w% _  B) P9 V6 S  R6 L

, |# {' A. V& a  [/ ]8 j3 M: p4 R' @! K7 p

作者: ASEE    时间: 2003-9-4 11:37
标题: HOHO,付上评论。
ylc001(2003-9-4 10:41:40)  
7 c3 J& W: `( |
  ~8 ?) I8 z9 D. g某软件公司老总豪言壮语:“我们的软件,使用JAVA ,.NET技术构建。速度超快,可与C++相媲美”。我们准备继续向下开发,使之成为独立于操作系统、抛弃古老的编程语言的典范。# J4 `) K/ y$ i9 o# Y! F
怎么样,快投资吧。6 f# f: b8 t: R8 P2 v1 Q( j% g

3 t' I$ w; Q& S% r; y/ }1 `$ K      kz3333(2003-9-4 10:25:52)  
, w. e( Z' r3 A+ N! U) m( ~& m" T5 d1 F' Y
虽然有点偏激,当说得痛快,支持作者# P( |- A! y0 I; h% L" Z( D: h

7 B5 S0 b; U3 z1 i      city_tiger(2003-9-4 10:03:48)  4 e3 \1 G4 r5 N( `

" K2 ~) n- c: i' D) a' }  J傻逼!一个工具而已,还争论啦?
9 J" C; |, w2 [7 P0 K , ^7 n9 }. Y% R! E1 n8 ^3 C7 W, L8 P
      hotel9545(2003-9-4 10:01:38)  
! y: L4 a& D9 n/ a) _& M. @% w
同意楼主所说
+ \3 ]# i4 U, V7 N6 a2 ~5 E6 V7 |
" l2 U3 i/ N7 ?7 _1 [8 z" Q6 E      boredom_vc(2003-9-4 9:49:23)  # S' z/ z) h& q
. F( [7 X8 L1 ^2 D8 F2 W2 W
编程思想最总要!!!!, v" ^' ], v9 I' }

7 C# J# f# w) r5 s- x; Y2 q6 |9 }% r      wuqiang51(2003-9-4 9:27:36)  ' a' o  d+ h$ ~: Z9 y! o: |
* H5 ?, V- U2 |- N9 J2 I8 A
我就看不上VB,连移位都没有。我就喜欢VC。不过.net就有了。微软还是知道自己的不足的。
6 W1 o9 C5 q2 A- Y3 W. \2 K+ X( S- K, R+ E6 j7 t
同意楼主,跟着微软跑的人也得看看路。
8 C8 I# `0 z2 F- l. c+ X# T0 Y
6 j) K  @$ [; W( d* i+ Z
) k  w9 m8 T; ^0 S1 M4 t      quarksoft(2003-9-4 9:15:43)  ! H/ }( `& o% {- G# I1 _2 w6 H$ f

/ M. g! ~6 B: V+ S. V3 ?0 k' [重来没有见过fat888那样的SB,真是CSDN的悲哀!
6 Y8 T" K# ?- b' O
0 \* o$ {) p' I1 g8 S      tarzan1997(2003-9-4 7:31:57)  8 j( l* ?8 P  E0 R! h7 b

* p# ]; v! B+ ^7 L  I' ]- p1 p2 L什么呀,楼主是说给在校学生和初学者的,是对于作为程序员入门而言。你作程序员一开始就做图形设计,低层调用,游戏开发?现在开始入门程序员开始接触的多是企业级开发软件,自然工具各有长短处,能看到这些限制能工灵活运用工具自然是高手。作者写这个文章是有针对性的,请不要你是高手就鄙视人!这你发表言论的基础。
4 H6 i, Y: r3 I. S请大家针对入门、提高及做各方面程序设计所用到的工具优缺点及程序员自身发展发表言论。0 C; t% |7 y3 b' l4 c* l" ~! b
/ G/ w$ ^% Z; f
      Geoffrey1975(2003-9-3 23:55:50)  $ j) \& N! O! _) p
( k  x: B- s5 R8 f
同意作者的观点。某些方面体会比较深。
- i4 }+ ?& m: {5 V4 J8 R能够熟练的掌握C/C++,特别是VC之后,基本上可以直接使用VB,java,C#之类的开发语言和工具,而无需再学习。
& v- V7 Q% F3 W3 R! |6 ?6 E * u. l) r, i2 X3 i4 p" ?& ~9 z6 ^
      black_fox(2003-9-3 23:51:40)  7 }' i. M. z3 l" w  f6 T5 Y2 J1 \
  u) r( a3 v+ J/ b# t
VC对于我来说,只是一个文本编辑器。。。
4 \2 _* t$ @: S3 ~4 M/ w% h : w  c% c$ Y3 U+ D! K
      bipeng(2003-9-3 23:23:33)  
4 y& ~0 W9 W8 U% O3 q: J1 G/ E0 L1 Z1 o- C) \3 Y
工具就是工具,实在不想用了自己做都行。
* I# [' w: A  }) U) h* ~我现在用MATlab只学2天,虽然大都功能不会用,但我用它是为了学习技术阿 。
% o4 f3 C7 k! e+ n' C, Y; m% L9 c要是学上一两个月还值得嘛!!' u) @7 n1 r, Y- C, g
不要在这种事上纠缠不清!!8 c/ G( x+ r1 C% ?7 A( ~" H) r, P
这叫舍本逐末!!
0 Q$ h! P: Z7 |
( ]" h% j$ C7 }" e* y      lyboy99(2003-9-3 23:10:33)  1 `3 l: a. i$ l+ A* p. O7 j% Y

! I2 M5 c( {: \5 R9 M' y" c* b# w要什么样的程序,不管什么开发工具,达到目的就可以了。! A8 u1 p* D# G- g* l5 h- C
开发工具各有长处,vc开发MIS,数据库管理系统等,是不如,CBC,Delphi,VB,PB等RAD开发工具来的快,直接。但是如果写硬件接口,图象处理,系统内部一些设备的数据交换和过滤,等底层部分,那只有VC了,CBC虽然也是C++开发工具,但是在硬件低层支持这块先天不足。软件开发人员学习到一定程度,就不会被开发语言和工具所限制了,如果还为开发工具和开发语言而每天苦恼,真是悲哀呀!# p% k2 u$ ]1 e. N% B# ?4 L

# m0 o5 _2 B7 M/ l1 q2 t) H1 a      rampig(2003-9-3 23:10:17)  & c& e5 ?: [9 d  g- j! _/ q

8 l4 @* e2 O' m% S  n! k& h  z就作者的观点看作者实在太低下。其它略。
1 x7 b5 S3 w! z' F+ s
8 Z9 p  F4 D, q6 R      onestab(2003-9-3 22:54:26)  # X8 i* @4 b# K0 p4 y1 V; G% o
/ j; h3 P7 Y& l5 u  R& V+ n* d! x
据预测,到2008年,会写毛笔字的人才缺口达到2000万!
' I8 n1 P0 J+ A; C2 v1 h8 o
/ p& {& N: z% j$ a' q
4 Z- w7 M2 P6 x: X      caiyi0903(2003-9-3 22:44:08)  6 ]$ ^" ^2 H# @& B) r
. ^8 q' G" W1 R' Z" |: E) E
楼主学得有几分道理,学习ing!
/ n" c% v8 T$ J
# z) K; i$ r* f5 w7 M" G& b7 A% b8 f      renhuailin(2003-9-3 22:29:34)  
9 z; {1 X# ^; r$ J7 {4 o# _5 i5 E3 n4 |0 t( q' w
支持作者!! z0 s* E0 C8 A& A# {, _' r
其实不学VC要看你自己的定位,以后是不是要搞系统软件,如果搞系统软件(windows下的),VC是首先,这是没疑问的。如果不是,那就学学.net和java吧,作者对在校学生的提醒可谓语重心长。记得我在学校时就很迷惘,不知道学什么,乱学,没目标。各位在校的朋友们,一定要选好方向,别学我,:)
: {& u: z+ L/ l" t! ~4 P% ~% H7 m4 X+ x
, K3 E/ @9 P- r1 b2 M
      fat888(2003-9-3 22:23:16)  ; U' X3 f$ e+ q; B( [9 L1 |

2 T, V0 D6 E8 p( D7 c9 y! ?1、VC程序员工资不一定比VB的高。我们公司就是做vb的比做vc的高。
, r) [6 B9 D) F; K2 H  v/ i( r! d* G1 {
2、dos并没有被淘汰,我们公司就有很多人在用borland c++31做dos的程序。当然,是嵌入式设备。8 A' B4 g! j2 I# V1 d& t7 u  g- p( K

" P2 d+ B2 d3 I/ h! ]& l3、java是炒作出来的,真正使用的很少。并不是象作者说的那样,有很多企业使用。java被淘汰是必然的。" q0 j" m/ Q2 C" Q7 X) S
- ]/ D$ G( E3 g& {) W8 X& D8 ~

8 d0 E2 w$ B* J4 v% H3 O- H1 x: k2 E, B
! e% ^. F5 _' p. z

3 |! W  I; l0 [6 W3 V      wowuyinglingluan(2003-9-3 21:24:34)  - S2 N6 p' B0 r& C4 }. p' W

! d& v4 m% V$ e2 k- s7 Q没人对VC执着,
+ `% F# |! D# O$ J+ r( f+ y使用VC只因为是C++程序员又在WINDOWS平台上开发而已。  r1 I& \+ S3 h$ Y, U% E
作者显然不了解这一基本点,4 h( _8 Q) E8 T' ]  q; D$ y0 n
! _) [4 w6 S. u. R+ r
/ q9 a: v7 j/ S/ c5 ~9 {7 h, O
      cywater2000(2003-9-3 19:47:15)  
  O* u. g+ G$ l9 y2 p  C3 o
1 C5 V5 x. Q1 p5 v8 t- y* r% u! _7 b另外,我就是用VC不用MFC的(我不喜欢)
8 N0 b8 B+ g: j% b5 V; a1 M/ u因为我是用来做游戏的
2 ^1 V9 R$ X1 T1 ~4 f( ?+ E) c 6 }/ I5 f6 r1 H& |/ K
      cywater2000(2003-9-3 19:41:34)  5 K( L8 t5 r+ f) H% x' ^1 y) z0 P) z1 @

, E6 U" \4 h. Z% C2 a" R9 b# g9 a, d为了用而学1 t6 I: G0 ?+ ]
不是为了学而用
9 L  V. \+ A% P% `# M' b8 R6 I7 n: q3 j! Y( t1 H0 \7 s

9 s# u) N2 p* }* R      mahatma_cn(2003-9-3 19:09:38)  
; W; f" N" Q' F# ~
7 a  C) y& P* V1 h& O4 n其实作者把开发领域想象得过于简单!好像一夜间全是.net平台和企业应用开发。现在汇编还在用呢,也还有人在学呢! 去银行看看吧。' u/ C: T9 ^# g/ |
3 w& s) |" s2 P" k
      MarcoChan(2003-9-3 18:52:23)  - m; c: ^" u9 M2 V$ p

$ r7 I- M* Q$ b) m嘿嘿, 作者喜欢穿马甲阿, 一穿就是几件
6 N+ H8 B8 B  n  \4 F4 j0 T1 j; m
7 b, R! W; R" P, ~      sclzmbie(2003-9-3 18:50:32)  
3 b+ W& g$ Z* Q; a  ~
% W3 p0 e* T. I. n3 g作者说的不错,MFC确实给人一种束缚。不过从SDK写一个140万行的系统也不太现实。现在感觉WTL是一个比较精简的库,考虑将核心层从MFC转移到WTL中。呵呵,不过可行性调查还没有开始。* F% X& ~& \  F* i: W

! B+ C$ ?( W9 Y1 U/ W9 NJava简单的学了一些,觉得Java 1.4.1版本的类库设计的真是优美。VB 6我就不想说了,实在学不来。
3 o, L1 C* K0 z4 T! G3 I( e( K   [: _4 t6 c" j
      ilian(2003-9-3 18:26:12)  
1 ~! G1 W0 n( ^7 u& O  a* _
: a. V0 x# [: f6 Z# `2 EVC之所以难学我想是SDK、MFC、ATL、DDK等自成一体没有直接关联,好像有4个不同的框架一样。不像VC#你会写窗口程序了那么就很容易写ASP.NET程序和应用WEB服务了。
/ B7 H) Y: q& Y, k: ?并且MFC开发比起BCB,VB可视化不高,做企业MIS项目可就不好。
- I/ X" \) t3 O2 H% a* i$ T$ ?  P
: {2 T9 s, o/ v) e' A      ilian(2003-9-3 18:08:52)  ' G6 ^% M9 a! ?0 y6 Q8 N
, n) f& Z# R: l/ {4 ^+ a. |
企业和政府信息化:如,管理软件(MIS,OA,ERP),B2B,电子政务,普通网站,.NET和J2EE的作用在这一块,软件公司的方向在这里!
7 G; p( D$ ]6 n0 F, BVC目前应用在游戏,驱动和效率高和低层方面,还有基础通用和一些共享软件方面,一般程序员可能应用不到。* F; F" [# ]$ m9 O7 g

+ l/ H* [% m( W) V      LuoXu(2003-9-3 17:31:38)  
- C' h: c0 L! q+ w( W; w
" n9 C& p2 O# L' R0 W( z* W同意作者,虽然我一直用VC。工具就是工具,达到目的才是最重要的。! {+ P9 c9 N, P( q1 E
+ \' l1 a1 }" }: {# l" R; I
      Kylix_XP(2003-9-3 17:29:54)  & j7 [) h9 |' G

# t8 C4 k3 h) y$ @7 U3 y7 l说得是实话
- Q3 G; @7 D# r, c3 u5 V% j1 I!!!' D" J, p; v9 h! f1 t* I
( C/ f/ x5 C$ j, b) W& s6 z/ G) B
      henryfan1(2003-9-3 17:09:23)  
" f5 A8 T, B# _4 [# Z* c4 w- z6 }% n; U$ n2 a8 \# D
话也说回来,现实中并不是负出了就有回报的。
: W/ Y* s/ r, h) Z* M说什么花多少年时间把C++精通,这样是不客观的。
" E4 b6 G, o: T6 `- I( A) j
: l6 I6 i% r* t3 z% n
9 J3 h% L! C6 N      bx2000(2003-9-3 17:03:16)  
# b. G. v8 F& R5 w4 q- F, M4 A' P9 `, D$ c/ f
我靠,菜到家了
4 [5 S* p0 l7 r1 z& q3 i笔者要是工作1年就不会有这个想法了
" n5 M! I+ |+ B3 O# X 3 h* x) T3 p$ z$ \& ]
      tide2355(2003-9-3 16:57:44)  0 I8 j# K% f$ J( X
- o  n/ G1 ?7 V# ^/ O- W. r
同意楼上的' M" u3 P- ^: S
我现在都不来这里问问题了
/ w7 C; N4 a: j: n菜鸟一堆堆的
8 Y1 q+ \$ u" v# o4 F& A * W; l' |+ r% ^% H0 |
      microzhe(2003-9-3 16:55:21)  
3 z0 v$ ?/ P3 ^( u/ z3 z/ l, j
$ r& \6 h9 I( E, S) d" h, q1 t. \看看你的计算机里的exe文件,看有几个不是用vc写的。
. v5 ?  f9 M2 A* ^1 I3 m; V & B/ K. F) P6 @6 N
      henryfan1(2003-9-3 16:48:34)  
$ Z7 D7 o6 o7 ]* g' D" A# ?
) g1 k3 i2 X$ b+ }" j7 }身为程序员,那样工具能带来更好的效益,就应该用那用种。, X9 j7 S* r' m. ?6 M
这是很现实的,就算你VC很利害也没什么用,关键有没有机会让你去用。
. y( Z9 \6 [! g& t1 g
+ u  U; M8 C6 }" `/ c$ p      matlab7(2003-9-3 16:12:14)  0 m5 }' h4 h/ g' D6 W

  T5 o; H" B% p$ v& M$ R4 y& p- w; v" D' A" a/ _: ]* k3 K
学了VC三个月,还不知道怎样用SDK。" j: ]+ E) G! f! ?
是不是选择WIN32 APPLICATION 这个选项就是使用SDK编程?; r# n7 f# r% L0 Z( L
7 ~( |3 a& i* R1 M8 ?
      robin97(2003-9-3 15:45:04)  : i" s: s+ V* c5 h* w( {
0 T. C7 m8 L  Z2 @% Q( H
不过你说vc就是mfc和atl,你把sdk这个本行放哪里去了?3 z" R+ e- ]; k2 m, Y( G

! q5 l0 X/ e+ A9 F1 C2 [' y      robin97(2003-9-3 15:42:59)  " y! |, c$ `7 ]  H

" t$ r6 G* d/ k0 C' s很早我就跟别人说过,学c/c++就可以了,然后随便转个bcb,vb什么的就可以了  h8 n2 U# P& d! C4 Y
7 g6 a1 c. V% g% n- m' @; e% O
      AthlonxpX86(2003-9-3 14:48:10)  
! N( R- B5 I7 o% M" t9 X! j
1 S3 z- l$ z: P1 K/ B* f4 K0 \  _5 ?我不认同VC就是MFC ATL,真正学会VC后,他将是深入复杂程序开发的万能工具,因为它本身是一种C/C++语言,所以说用他作深入的计算机程序可以说是万能的,比如做一般windows程序用API,作游戏用DirectX(VB好像也可以.不过速度上?),作设备驱动可以用DDK(除了微软自带的编译器,就只能用VC开发了),做算法也是最高效的,用CPU指令集优化算法微软好像也只提供了VC的优化方案(可以和汇编程序混用),做图形?大多数算法库都是C/C++的.听说NV的游戏图形开发工具使用VC,这些深入的程序开发,我想识别的开发工具无法替代的,不过做界面数据库网络之类的应用型程序,有别的更好的工具,VC可能不是计算机专业人员最好的工具,在中国确实是这样,因为在多数人眼里,计算机专业就是搞数据库网络等,但他肯定是科学工作者(在微软平台上的科学计算,图形算法,以及在计算机系统编程上)最好的工具6 O& l3 D# d' ]. ?1 R$ D2 G- O* c
) m+ J" A" h+ r9 {9 T% s
      putongren(2003-9-3 14:19:05)  $ F& d9 c' p) N, y1 D( `1 H8 w
1 }! z, w, u6 E3 p- K: J
支持一下!, Q  v# q4 m9 }8 v

# G& a+ M- n# O是不是还可以有一个讨论依据:实践是检验理论的标准。# _! R; v: P( V4 H5 ]* G! g
$ N7 G9 H! i) e0 }9 o& x! @
国内的软件公司用 VC 做的项目或产品多吗?如果多,那不用说,大家都学都用;如果只是学得多,真正用的少,那就个人根据自己的爱好去决定吧。& E" M& y$ R! U" N5 p7 T+ p
9 @0 Q) y8 K  e# e4 s1 ^5 l0 \
我有一个理想:有朝一日,中国的大部分程序员对 Windows、Linux、Java/.Net虚拟机等的 API 都深入了解,熟悉 OOP 的语法,熟悉三、四个 RAD 开发工具,平常的主要精力用来研究新应用、确保高质量,然后引导客户或市场前进。; G/ Q- U* K7 G9 @! j/ C4 I

( u# U7 {( m& h& w6 \" C别说我傻,高手们,到 45 岁、50 岁的时候我们还不行吗?" z7 f2 `( m, r  i

6 o) m2 K+ ~0 _0 u. x+ J      liuty2006(2003-9-3 14:16:26)  ' A2 T' v6 c/ r' s
4 ~5 v! ], v! w- c5 {
还是那句话:你用VC干什么?% V* g3 R* T+ G, B0 ~
) J9 I# \- g. ?! y- _
另外学习一门语言或工具除了用于写代码之外,还有一个很重要的作用就是“读”代码。
- x+ ~0 n+ r5 `9 }3 b8 n2 W5 u% P" c! x
而VC下的代码可谓丰富,。。。。。。4 i* l: z" {( g6 m9 |9 }7 k

: L& S$ O: d) r9 U" e1 H* Z) |: g  ]3 j  O0 y6 i! M, Q3 J( ~1 c

& j% n; G" c# @- {      alexy(2003-9-3 14:08:56)  
/ I; {  U, N$ e) L; N2 P  I  a- W0 ^
to  Jetsnail5 P' ?$ h. O- R& k
可笑,一看你说的话就知道你没做过电信,银行什么的系统。和作者的水平比起来还有不小的差距呢。
4 q! ?3 _0 J( V奇怪,CSDN上怎么这么多自以为是的人啊。
# k$ I- a% s% A9 D
  u! Q! P1 N5 V- c5 z( v6 K      wuhuiwingwww(2003-9-3 13:29:31)  # {3 X7 O* _! G0 W/ G5 _( x; |

2 _4 H( y( A& h. @呵呵,听了各位牛人的高论,甚感佩服,但我只是菜鸟,不敢发表高论,呵呵。
/ q0 x; C3 x/ E* t 0 h! ?1 Y: w  V$ S6 i3 k: t
      redhatcn(2003-9-3 12:42:26)  9 E7 {* R; i, a: ]! {6 s
, L' k/ n2 w/ M: s) W
DELPHI也不错.
% t7 z/ R" d% j" x% T. u8 w; o7 s
* J4 F% s& Y0 L8 z% k0 w% X! F      alornwolf(2003-9-3 12:41:36)  + u/ T7 [! o: m/ d; k

$ _2 d4 M1 I0 Z6 R! H. m6 _其实说VC难学的,大多都是C++没学好,说COM难学的,也是C++没学好,不过C++确实太强大,太灵活,所以要说精通C++淡何容量?& y; E- R! m, q! u9 c, F0 y
0 z( h" e: i: k$ H
本人也认同学了C++(或叫VC)确实对思想是一个升华,有此基础,你会发现其它的东东八,九不离十的。不过现在的.net(VC++.net)却不是如此,其中奥秘另有他处。
' T( a; d6 J# W) L- ~. D
7 V7 l% Q- P2 U& y8 e至于对注册表和COM确实早晚会被淘汰!
" i- W; W: f9 Y4 d% W+ G - p, K& `/ `4 n' g
      chinap2p(2003-9-3 12:25:33)  
& O+ R# G5 n9 Q# Y& E
8 @  U5 {0 E5 I8 R, y6 e8 t& K在国外的C++工程师,VC是绝对的统治地位。VC是进入WINDOW的SDK开发的唯一钥匙。% {6 N; N( E) z9 T
' i* ]$ i- y2 Y: Y# T6 j8 M: Y
      hankwaite(2003-9-3 12:24:16)  
4 B4 j. q- h5 Q7 Y
9 i) G' s" v* p& j9 y8 t这些都只是开发工具,不用太在意,更深层次的是“算法与设计模式”。真正的高手是不在意使用任何的开发工具的。
8 L2 L$ l8 h) _
; ?( M  {0 M5 R1 W1 D2 N  e% `      rlei(2003-9-3 12:14:29)  
: A* G$ [7 f9 S5 I8 z* g
1 l" F1 T. |  l" N4 H2 A. L我感决作者的文章还是不错的。他也说清楚了对象主要是对开发工具和语言比较茫然的那种人。所以上边的各位高手看了发出如此的评论,好像是针对已经成为高手的程序员,悲哀啊,感觉高级程序员理解力太差劲了。连作者的意图都没弄明白。支持作者!4 H- ]$ {4 s3 ~  Q' E# y

5 V# G+ n' ~6 H2 j4 F  A1 g: ]      jhwh(2003-9-3 12:09:49)  0 s# |2 K6 g* D+ x" N4 p4 u7 V
: ^# u5 ~% N  f% y% ?. `
C++Builder, Delphi 决不是拖控件而已,你可以把控件当作接口来用。写速达和PhotoShop有多大的实质区别?各个处理的业务不同,没有可比性。别说PhotoShop的技术含量高,你让他们来研究一下企业的逻辑看看,一样的复杂。/ d9 I+ W. @) V# B$ V1 l1 y
0 r: B  ?# M  D, [
      B828(2003-9-3 11:54:42)  
7 Z' I! o% n* B  g; V
3 ~& O' L. H; V' {9 f3 u; E; [工具终究是工具,讨论其优势没有意义
: e6 L6 S  u( [ ( O7 ]- S+ y7 {
      softeye(2003-9-3 11:34:47)  
) b$ Y; J' i; `, }* `0 F* p* u
& U- G6 _; p4 E% F! l作者混淆视听,把VC等同与VC6,那VC7呢?
9 z2 ^6 _+ F+ z9 w" W1 y " d) H, n/ n3 P7 U0 A: t0 B$ R# v
      foxnt(2003-9-3 11:32:02)  : K- Q5 y' }! k  A$ C0 C0 N

7 @4 A+ h6 e! a只看VC内行人谈论VC。
, k4 x, n/ Z5 X8 z- l" ^) `( a半瓶水或者外行人来谈论VC,恕不奉陪。7 Y6 c+ Q% c# t6 u3 l6 }
6 v5 i8 F) Y5 t0 c, L6 z. b/ X
      xhzhf(2003-9-3 11:30:26)  7 `2 L' O$ _' {5 R9 _) S! i
' _% K7 a0 G7 C, [* V+ r
我觉的对各种语言的语言特性了解清楚很必要的; O& U3 l9 n: U
用不同的语言实现同一个设计方案难易程度很不一样
8 h; h' S" p, i做设计时肯定会要考虑语言对设计的支持: W1 D2 m0 z  {* R6 d
对于VC,我觉得熟练以后很方便,而且MFC提供的功能也比较强大7 u% G) [/ z! {1 E0 z- w+ C! a
学习VC,其实如果先学好C,C++,在学VC也不是太难8 Q6 e$ r* K5 y1 W$ u" M( v
  y+ ^8 B6 g" p  y. Z
      Ailong(2003-9-3 11:23:46)  
  p) L/ m5 C4 r% V3 ~. h' r
0 m  F4 U4 ^" m4 o4 f% `.Net只是对付Java的利器,等到Java像Netscape那样趴了,.Net也就和IE一样对于微软又不痛不痒了,毕竟.Net功能有限,只能完成商务应用。
* B2 B2 W) _! j学VC不只是学开发,其中的MFC给你看了许多东西,如果能用好,用懂(侯sir的"深入浅出MFC"的水平),对于win32开发也就了然于胸。不像别的语言那样控件来,控件去的,这也许就是高手说的VC比其他开发环境好的原因。8 D# s7 Z6 q8 ]
$ h0 f: C+ k+ [/ r/ }! l2 s+ |
      cppbug(2003-9-3 11:04:05)  9 }/ N5 k" F9 b
+ @2 e. j3 i# e% F6 R7 \5 y
其实作者并没有贬低vc,而且也并没有在某些具体工具上纠缠。/ U6 R- o2 P% T. x2 x
许多意见比较客观,不过题目是不是有点......
5 b$ g. J4 m* x) a
2 s0 i7 V1 x4 d  L& z      IID(2003-9-3 11:01:28)  - {$ e- k/ B8 g( {! ?" s

/ a9 ~" {8 y" Q# s4 o确实没什么意思,VC说到底还是个开发工具
# G3 _/ K2 s5 y9 H5 _: B' L+ y8 T: ]/ B; ~
谈谈Windows内核 + SDK + C++ + COM+不是更好吗
/ Z( S! U  c- q, O: x
2 _7 t9 v' J, ~9 s, w9 D      yjh1982(2003-9-3 10:34:55)  4 W6 w! W; Q- G- R- C
) y, c; x4 O9 y0 [& h
我就是VC程序员,1500的工资~55555555抗议楼主胡说
# i& D& _( `" G6 H. f
0 X5 y! I7 }9 O      asdmonster(2003-9-3 10:25:58)  # o/ C' A7 c6 w( |. k3 k3 a

2 M( u7 [$ c* p( }0 K) \看了这个帖子狂晕倒。( V" {* r6 ?9 [; }7 H+ @* S4 @5 q
; Z% w9 x; U3 @! T% e
      binxun(2003-9-3 10:23:35)  2 @: {: \8 Z2 n5 x1 o

% x) a3 x* G. s+ u: J0 l) YVC 只是一个开发工具,一个集成了C++编译器,连接器,调试器等的开发环境。
  g3 w7 u8 H* m6 u3 _高手从来不会局限在某个特定的开发工具上,所以讨论这个问题没有什么意义。
3 H0 x) U/ W$ h( j9 F( d6 |' h 5 U- b+ y( ^1 [% _- p( A( p
      forestassure(2003-9-3 10:15:05)  " N# |, b! `! S0 e6 n, p7 }/ B+ t
& j" a8 }/ u5 V, V
人类的进步都是一步一步的,何况中国的软件事业!?
1 z# l& }: m8 z2 U除非你的工作性质决定了选择vc,否则,对于这些工具性的东西,不要痴迷太深!4 V# O: j4 }  ^0 g/ w% m  u% A! P
是谁制造c, c++ ,java 等等 ? 为什么他们能够 ?  s- ]' Y1 q3 `6 X$ E0 j. Y7 l
code又是为了解决什么? 图像处理难道仅仅是vc能够做的 ?: d$ v2 ^- _; C/ a. G- i
背后的原理 ?; ^- T# u, N" C0 F
这些,恐怕也要好好想想!
# v' e9 Y0 q$ n; P$ F- `
0 @5 E$ e1 F8 P( C) k, i) W3 P      withpointer(2003-9-3 10:13:05)  
! U& c/ n! v7 F8 S: q/ l% x, a" }2 K2 S$ m  ~
那Office,PS,Windows,Linux和那些个游戏都用什么开发呢?也是JAVA or .NET?
3 f& _$ O  b/ w- Y+ F0 o只是你的着眼点在企业级的应用上了,我用VC从来都是SDK方式,不是我讨厌MFC.....
$ K: R8 u1 N4 Z3 P不用MFC,你会说我更傻了吧,但是我确实比你更了解WINDOWS,不说了,说多了又要口水战了,4 L; g; D* h# n/ q% F
请不要随便说这个工具怎样怎样,那个工具怎样怎样,事实已经证明大量的通用软件都是c/c++写出来的,一部分也是VC写出来的,你敢说你的机器里没有50%以上用c/c++写的软件在运行?只是有行业软件和通用软件的区分罢了.别动不动就这个工具好,那个工具差.你能用C++ BUILDER能写出速达的东西,并且卖的那么火我佩服你,你能用VB写出让客户只点头的数据处理程序我佩服你,你能用VC写出PhotoShop,哪怕只是部分模块,我更佩服你。。。。。请问您属于我上述所说的这几种”佩服“么???????$ e0 |, }7 p0 l) |5 E
7 I# h7 Z- l+ J8 }
      caimouse(2003-9-3 9:59:48)  6 L* L: K/ c. u8 N9 x! y
( f3 n+ O, T) d) f% H7 |
管它用什么,挣钱就最主要的.
* s4 |/ M) b* E( A) G8 R有需求就是最主要的,不管学习什么,最关系要看需求.
) ^8 Z" q$ E; u. v别人用VB写的收款机照样买20万.) T$ G9 Y# [. }9 u& ?! S& L- H

' i. m: J( t) d; X7 p2 }3 _% ^ " @1 p4 P4 Z9 H0 `8 o) R  s% f: A
      nuaacims(2003-9-3 9:46:26)  & w6 z9 E" `7 k$ L+ p; i. }: _
9 Y9 K; v  [5 Q/ \' ^" [/ t
作者没有迷恋于工具的追求,“掌握多种开发工具有一个好处,那就是可以取长补短。比如有一个图象处理程序用VC开发,而其中的报表部分我则用C++Builder做出来,再以COM组件的方式给VC调;要操作Office我喜欢用VB,要写多层系统访问数据库我喜欢用C++Builder(现在还加上Delphi),所有这些都可以在COM的基础上统一起来…… ”( O# @& ?7 {4 K  U6 r2 ^0 F+ |
很多东西说的很中肯...
) B9 ?2 S! U5 ^8 Y 7 J( f0 e9 y+ g8 U' [! J1 ^6 u" o
      Jetsnail(2003-9-3 9:36:08)  
/ t8 J/ i6 a  M" ]9 [" s: _3 c1 G1 T5 h+ A, W/ s: L9 a  C
事实上是:你说的基本上是以企业级开发为标准。那里不是C++的舞台,那里也不需要programmer。一个sa+数个coder就可以了。如果你作过大的项目,比如电信,银行什么的系统,你就会明白你所推荐的东西是多么局限了,有些仅仅是一些开发人员的玩具而已,谁会用玩具做项目呢?
& n9 M; h& x8 Q* N/ A9 sgouer(2003-9-3 9:30:30)  
1 k- O$ Z% N3 Y# y9 p2 M$ J) ^7 X! E' h( I5 k. l& a4 F- x6 B+ }
如果作了很多年的开发还停留在对工具的追求,只能说是一种悲哀!+ e0 e1 n0 e2 U
看来csdn的真的成为菜鸟的乐园了
9 l' O: Y, @) ~3 n 3 j# D5 J/ s" S* k8 p

作者: ASEE    时间: 2003-9-4 11:40
I WAS STUDYING MAKING PROGRAM ON UNIX AND  THE TCP/IP STACKS.
作者: yzhlinux    时间: 2003-9-4 18:09
其实说在多都是无聊,学习到了真的觉得懂了的时候就发现,他真的太有用了,其实是不是vc没有一定的标准,学习vc,你学习到的并不仅仅是vc本身,连带了更多其他的东西,我现在十分庆幸自己很快的过了那段迷茫的时期,到了现在的思想境界我说的很简单:觉得难,你没有必要和资格学习,不怕难,那么来吧,这里你可以尽情的享受,你学习的越多,了解的越多,你就越享受。很明显的,对vb十分精通的人,有很多都自卑自己不会c++,很多都自卑自己不会VC,包括会C++build 的人,也很多都自卑自己不会VC,但是我好象没有见过一个VC高手在自卑说:“我应该去努力学习一下VB” 或者 “JAVA 没有用过真丢人”等。相反,使用vc的人可以在window的领域藐视一切。嘿嘿,大家自己去仔细想想吧。在任何一个VC高手面前说VC坏话,恐怕你不敢看他的眼睛,因为怕自己被对方藐视。不信可以去试试看!& u- G$ Z$ ]9 `8 ~& R9 P% I
说的.net如何如何的就更是没有什么好被人看得起的了,那些人一般都是些没有多少动手经验,有没有毅力和勇气,只会看看微软的广告然后记下来在菜鸟面前吹嘘的人(只能在才鸟面前,在vc高手面前,他说不出话来)。
& Q# H0 H0 C4 t! @- d9 J. ]. l而vc是最高尚的吗?不是,我不自卑我不使用c++buid或者vb,但是如果对方是一个用ddk的命令截面写window驱动,或者是一个只在unix世界中驾驶gcc ,cc 的家伙,我想我一定自卑,同时也激励自己早日丢弃手中的studio,早日拿起 build ,或者 gcc 这样的命令来生活。* E, \# h  m/ f+ f- n% H
与那些浮躁的人比较,感觉完全两样的,即使对手的水平比我高,但是如果得到这样的言论从他嘴里说出,那么,好的,被我超越的日子不遥远了,因为水平的局限性是来源与思想的局限性的。
& V' [. G  z9 }$ l( E8 A就这样说了& b; h& `% U# t) c# ~* X0 v1 v+ [4 I

. P6 C1 G4 \2 E6 B- V6 a: K
. k/ P) o+ L( v
[此贴子已经被作者于2003-9-4 18:11:33编辑过]

, y) t- e% N  H7 ?" C9 I
作者: Inuyasha    时间: 2003-9-8 21:00

作者: linger    时间: 2004-5-4 12:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: geforce20    时间: 2004-8-30 17:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: daikeshi    时间: 2004-11-24 18:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: 游侠无极限    时间: 2004-11-25 10:31
不见得有人编写C++程序用到各个方面吧
作者: Eagle    时间: 2004-11-25 13:07
这么老的帖子又浮上来了?




欢迎光临 下沙论坛 (http://bbs.xiasha.cn/) Powered by Discuz! X3.3