免费注册 查看新帖 |

Chinaunix

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

[C++] 确认一下c++中不能使用interface(如java)那样的功能把 [复制链接]

论坛徽章:
0
161 [报告]
发表于 2009-03-25 23:40 |只看该作者
原帖由 yovn 于 2009-3-25 14:55 发表

抱歉,感叹号敲成问号,但是不妨碍我表达的意思吧。

你们公司那个内存泄露的项目拿来说明什么问题呢?充其量也就是说明那个程序员水平不如你?

也许每个人的观点不一样,我现在还是在混用C++跟Java,你说 ...

JNode学习了………… 原来这个世界上还有这东西……

论坛徽章:
0
162 [报告]
发表于 2009-03-26 00:05 |只看该作者
原帖由 OwnWaterloo 于 2009-3-25 18:38 发表



1.  为什么我们国家要培养这么多代码工人???  痛心 ……
前段时间看到博客园上有一篇 《三个热点》, 不过好像已经被和谐了 ……
金融我不懂, 好像说的意思是, 大量的剩余价值都被外国, 如米国给 ...


呵呵,有向往当然好的,不想当将军的厨子不是好司机。不过在产业化的今天,这个行业确实需要大量的代码工人。这些活总得有人来干,就好像流水线里总得有工人操作一样。这样说有些失礼,不过总的说来,就是这样:有少量的精英型技术骨干,也得有大量的抡大锤卖体力的。就好像盖楼要有设计师先绘图,还要有大量的农民工去把设计师设计好的鸟巢水立方一砖一瓦的给砌出来。何况在工作不好找的时刻提供了大量的就业岗位呢?
说白了,我们都清楚是这样,我们也都不会去鄙视农民工干体力活。但是我们很难接受农民工也有个程序员的名份、也能叫技术人员!
但是行业不同,搞程序的统统叫程序员。过程式编程时候讲算法拼脑子拼逻辑,我们的程序员都是聪明的精英!现在面向对象了,编码工人也叫程序员了。我们很不爽。。哎,这是职业歧视,尤其以C/C++最需要程序员技术能力的语言上特别常见。
记得我上学的时候轻狂幼稚,曾经放言“在我看来那些写web程序的根本不叫程序员!”现在回来看很可笑。

话说回来,我们要精英型技术人才,但不可能人人都是精英型技术人才,而且这也不是能大批量培训出来的,能培训的只有代码工人。
不知道叫你老兄还是老弟,现在的软件越做越大了,你再个性也要吃饭,而且无法自己一个人去编写这样大的软件,所以还是劝你从善如流。
贫穷不是社会主义啊。人在江湖漂,哪儿能不挨刀呢?自己磨练自己的技术、但工作上还是得尽量配合啊。

关于找工作这块,你说的也不错,C++搞的好确实非常稳定,因为可替代人才少啊。不过我那句话强调的是更“容易找到”稳定的工作,这点想来你也无法辩驳。毕竟JAVA比C++好学多了。作java的想要稳定高薪,恐怕只有做架构师一图吧?我也不是java开发这个圈子里的,具体不是很清楚。但架构师确实是技术活


第三那点,其实一样,真正的高手、精英不是被培训出来的,需要该人自身的素质和潜质乃至精神。人的理解力和应用能力是各有不同的,在智力密集的软件行业尤其明显。培训也只能做到师傅领进门而已。


第4点没啥好说的了。

你指的多核,这个我不太了解,不过我想总有一天JVM、CLR也是可以实现的,到时候语法上加个关键字应该就可以解决吧。

JVM我记得是C写的,不过我一直以为C++也是可以用C++写出来的。

JAVA不是为了计算而设计的语言,恩。C++其实也不是,cobol才是吧?实际上面向对象语言是对现实世界的简单模拟,是用来解决应用问题而非科学计算的,现在更多的软件是做这方面的。虽然现在高级语言都有相关的包或者库



说了一堆,其实我没扯到什么技术,在这里说技术只能让各位见笑。OwnWaterLoo兄所贬低的JAVA是在技术方面,作为程序员来讲在这里起码很多条我都无法辩驳。我所褒扬的JAVA是在软件或者编程这个圈子里说的,自认为也算有理有据。

其实在JAVA和C++各有利弊。JAVA更容易学习、岗位更多、更容易出徒。与C++相比效率要低但开发效率要高(.NETs站出来说“我们开发比JAVA快多了!”),这些都是JAVA的优点,但优点往往也是缺点,滑铁卢兄说了很多我就不赘述了。
而C++功能强大工作效率高,但太过灵活的语法和特性往往会误导新手程序员,让他们走上歧途,这对行业和工作来说很不利。所以尽管滑铁卢兄说C++好的地方我很多都认同,但我仍然认为C++确实没什么前途(有人说C已死,这点我不认同。毕竟太多地方还是要用C去写,比如OS。C++可以写出QT写KDE,但C也能搞出gnome)。没什么前途不代表语言不行,而是行业内巨头们都不去重视他了,不只是公司。

关于我们的滑铁卢兄所说别被商业公司当枪使这事儿,其实不只是java,绝大多数讲语言的书都会把该语言吹的天花乱坠。比如早期讲VC的讲DEPHI的讲BC的都会把编译器说的几近完美无所不能。只不过刚好JAVA 是TM注册商标,编译器、虚拟机又好像被SUN垄断了没有竞争,导致成了OWL兄的炮轰对象。其实IBM也是有java编译器jikes,GNU也有,好像GNU还有java虚拟机?貌似刚装好的FC就是gnu的jvm。另外说一句如果我没理解错sun把所有的软件都开源了。虽然它快挂掉了。恩,我承认由于java的关系,我确实很喜欢太阳这家公司哈哈

刚查到个错误,FORTRAN才是计算语言cobol不是

[ 本帖最后由 艾斯尼勒 于 2009-3-26 00:11 编辑 ]

论坛徽章:
8
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:58技术图书徽章
日期:2013-12-04 10:48:50酉鸡
日期:2014-01-03 10:32:30辰龙
日期:2014-03-06 15:04:07
163 [报告]
发表于 2009-03-26 00:15 |只看该作者

回复 #162 art_codes 的帖子

C/C++做网站,一般会和apache配合。

只要按照apache的标准编译一个动态库,任何语言都可以和apache配合。

具体来说,apache会把http请求分解开(我记得好像是 http://网址/模块名?参数 的格式),然后把分解开的东西填充进一个数据结构并传给你所写的接口函数;至于如何响应,则由你自己决定,只要最后把响应内容填到规定数据结构的相关区域就是。apache会自动把这个响应包填充成标准http格式返回给用户。

事实上,这个东西的开发效率相当高;只是基础库欠缺了点(比如字符串、正则表达式之类),而且相比于脚本语言,这种方式对程序员的技能要求也确实太高了点——搞asp开发一月2~3k就不少、雇c/c++程序员一月1w不算多。


根本上说,apache支持的asp之类东西,其实都是先用c/c++按apache的规矩写扩展模块、然后这个扩展模块读入并解释执行了asp或其他脚本代码。

所以,如果真想用C开发大型网站,正确做法是先抽象一个类似asp的脚本语言,用C写它的解释器(供apache调用),然后再用解释器解释执行脚本——这个脚本,甚至可以是sql。

我之前做过的一个项目,其中的一小部分就是类似方案。
由于要显示的网页内容仅仅是一个表格,搞个asp之类模块挂上去实在浪费,就搞了个C函数从数据库读信息,然后按一定格式组织成html返回;具体格式可通过ini文件控制——这个ini就相当于脚本。


当然,扔掉apache也很容易。搞个服务进程在80端口蹲着,然后自己实现http协议即可——这层实现可参考apache。

——————————————————————————————————
大致画一下http服务程序架构——没有查资料,不保证完全符合实际情况。

asp jscript html txt SQL...
数据源,可以是脚本、数据库或者应用程序等等。它们被用于通过合适的apache模块生成给最终用户看的网页。
——————————————
apache模块(动态链接库)
apache模块根据apache解析出的参数,决定如何响应用户请求
——————————————
apache
apache实现了http协议解析和服务进程池之类基础设施
——————————————
网络

典型用例:
1、用户通过网络传来一个http请求
2、apache将这个请求分配给空闲的服务进程
3、服务进程解析此请求,填充数据结构
4、服务进程加载动态链接库,把已填充的数据结构传递给apache模块
5、apache模块通过合适逻辑处理请求,生成响应包
6、apache服务进程将响应包打包成标准http格式,返回给用户

其中,5中所谓的“合适逻辑”,可以是解释执行LUA或asp脚本然后返回脚本执行结果;也可以是执行do_sth.exe,返回此程序生成的文本文件内容;还可以是简单返回一个“hello world”。

论坛徽章:
0
164 [报告]
发表于 2009-03-26 00:26 |只看该作者
原帖由 shan_ghost 于 2009-3-26 00:15 发表
C/C++做网站,一般会和apache配合。

只要按照apache的标准编译一个动态库,任何语言都可以和apache配合。

具体来说,apache会把http请求分解开(我记得好像是 http://网址/模块名?参数 的格式),然后把分 ...


其实,甚至直接用C/C++写个apache的扩展site.so,所有网站逻辑都封在site.so里面,挂在apache上都可以。当然如果网站不算大的话,不用搞那么多层次。

ASP不清楚,PHP和JSP的apache扩展应该只管调用相应的解释器、翻译器、编译器和运行吧

哦,asp解释器貌似是IIS内建的

[ 本帖最后由 艾斯尼勒 于 2009-3-26 00:28 编辑 ]

论坛徽章:
0
165 [报告]
发表于 2009-03-26 00:35 |只看该作者
忍不住回复一下

我很直白,也没有令人信服论据

我很讨厌java
因为上大学时电脑太烂,java给了我非常恶心的第一印像

论坛徽章:
0
166 [报告]
发表于 2009-03-26 00:38 |只看该作者
原帖由 shan_ghost 于 2009-3-26 00:15 发表
C/C++做网站,一般会和apache配合。

只要按照apache的标准编译一个动态库,任何语言都可以和apache配合。

具体来说,apache会把http请求分解开(我记得好像是 http://网址/模块名?参数 的格式),然后把分 ...

学习了
大家都好强…………佩服的很……

论坛徽章:
0
167 [报告]
发表于 2009-03-26 00:47 |只看该作者
原帖由 nully 于 2009-3-26 00:35 发表
忍不住回复一下

我很直白,也没有令人信服论据

我很讨厌java
因为上大学时电脑太烂,java给了我非常恶心的第一印像


我上大学时候也很讨厌java,因为它慢。我当时(99年)再用mmx166,不算慢的机器。而且我大学时候没有讲JAVA。
05年之前我也很讨厌网站上的各种FLASH,因为一直到05年我还在用mmx166-_-!

能说明一些问题吧?事物是在进步的,别老用一成不变的眼光去看待10年前的东西
另外很奇怪,你上大学时候学编程肯定从1+1开始,好吧,就算你算个乘法口诀表,486也不太能体现出来java比C跑慢多少吧?

论坛徽章:
0
168 [报告]
发表于 2009-03-26 00:49 |只看该作者
原帖由 shan_ghost 于 2009-3-26 00:15 发表
C/C++做网站,一般会和apache配合。

只要按照apache的标准编译一个动态库,任何语言都可以和apache配合。

具体来说,apache会把http请求分解开(我记得好像是 http://网址/模块名?参数 的格式),然后把分 ...


使用C/C++开发web应用,一般使用FastCGI这样的协议和框架,对于HTTP请求的包装有cgicc之类的库,总的来说,开发效率还是不低的。
当然这样的开发环境适合用来开发使用HTTP作传输协议的网络应用(比如所谓的web service),如果拿来开发网站就是自讨苦吃。

论坛徽章:
0
169 [报告]
发表于 2009-03-26 01:02 |只看该作者
原帖由 sorrento 于 2009-3-26 00:49 发表


使用C/C++开发web应用,一般使用FastCGI这样的协议和框架,对于HTTP请求的包装有cgicc之类的库,总的来说,开发效率还是不低的。
当然这样的开发环境适合用来开发使用HTTP作传输协议的网络应用(比如所谓的 ...

谢谢 ^_^
我也没打算朝c++写网站那方面努力…… 估计还是用java,语言总是有应用场合的 ^_^ 做网站这种东西或者企业级开发起来就要抽象起来,慢点也忍了吧。毕竟代码易懂了,开发变快了,这个很实际,而且有了集群后速度也不会慢那么多把?
nutcracker 该用户已被删除
170 [报告]
发表于 2009-03-26 07:20 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP