西西河

主题:Adobe停止开发移动平台上的Flash版本 -- holycow

共:💬72 🌺116
全看树展主题 · 分页首页 上页
/ 5
下页 末页
家园 开发效率要看标准库的情况

.NET和Java的开发效率不是语言本身也不是OO,而是本身自带的一个大类库。没有文件头部的using和import。C#/VB.NET/Java也就能写个Hello World。

C/C++的麻烦在于和平台无关的库不好搞,虽然有大量第三方的库,不过花在非标准库上的学习时间性价比不高。

家园 没错,对一门语言库很重要

一种语言的流行程度和开发效率跟ready-to-use的库关系很大。但C#和JAVA设计成OO而不是别的样子应该与OO是时代主流有关,或者说相互促进。

平台差异不仅是软件接口问题,跟硬件架构也有关,指望一种语言甚至纯粹软件来解决问题,既不公平也不现实。硬件工程师像小孩子不停的搞乱世界,软件工程师像保姆负责收拾残局。C/C++已经是最尽职能干的保姆了。当然你有选择不做保姆,请保姆的自由,不过少了带孩子的乐趣和成就感,也失去了以后可能需要也可能不需要的对他影响力。

因为平台的差异,太通用的库就不可能在每个平台达到最佳效率。仔细想想只有两条路大家正在走:

- C++写成编译好的运行库(GC),然后设计一种针对这种GC的高效DSL.比如.NET/C#,JVM/JAVA。当初微软对.NET的宏愿是针对每种CPU产生最优代码,不过很快就放弃了。

- 天书般C++源代码库实现,比如Boost.

前者牺牲性能迁就通用,后者反过来。

不管哪样,都需要学习。

家园 你真客气。

回你朵花吧,大过年的。

家园 Boost不是天书

至少对于好的C++程序员不是。就像数学家不会认为充满积分符号的论文时天书那样。

家园 或许我对天书一词没什么负面印象

没有Boost我不会写任何C++代码。读Boost代码是一种乐趣对我,而且很有营养。但确实像天书一样轰脑袋。

家园 .net退出不是虚拟机的退出,c++能否担负native

的领导者角色也未必

家园 愿闻其详
家园 随便说说而已

计算机语言出现大约70多年了吧,有什么理论上的重大突破吗?看Tiobe的趋势图,命令式语言函数式语言,静态语言动态语言,强类型语言弱类型语言,总的趋势是逐渐靠近,各自吸收利用彼此的优点。

现在在项目中混用各种开发语言的现象很多,比如底层驱动用c开发,中间件选java,表现使用css/html/javascript,管理使用脚本语言。甚至在同一层混用各类语言,python+c, java+c++, java + 脚本语言等等。

.net代表的虚拟机上的强类型语言,相比解释型语言依然有性能上的优势,而且JIT技术至少给了虚拟机与native语言比较的机会。而其他脚本语言在解释器上,还有很多向java/.net虚拟器学习的地方。未来可能有通用虚拟机的出现。

C++语言有点复杂,C/GP/Template...各种风格塞进一个语言里,词法形式上就不简洁。看那Template,和LISP里的宏有什么区别,不好用。只是现在在这个层面上,没有其他语言能替代它。C不行,D不行,Go似乎也不行。另外,C++也想加GC,这和java有什么太大区别呢,内置GC库的静态语言?

而且,随着并行技术的成熟,虚拟机技术反而更有机会扩张范围,毕竟把并行计算放到虚拟机中比每个应用自己内置更经济些。

说来说去,(工程类)程序员最好还是从底层到系统层到应用层都有所了解,掌握几种各自代表性语言。

家园 其实是想知道你为什么说c++不能担负native的重担

因为到目前为止一直是C/C++在干这些活,而且还在更努力干得更好, 刚通过的C++1X标准里的右值引用就是为了更好的榨取Native潜力。可以遇见的将来也没有其它语言能揽这活,D或者Go或许有此意愿,要成长到能证明自己前面的路很长很长...,无论从语言本身的成熟度,库的丰富度,业界的接纳度还应用的检验度都可以被 safely ignored。

另外C++,至少标准委员会的那帮人,一直很拒绝GC, 而不是想加入,想加的是一些外围的人。因为GC,以目前已知的各种实现方法而言(哪怕Sun或是MS以强大的公司资源来推动),与C++追求极致性能的设计目标(Do not pay for what you do not need)是不一致的。

另外,我们说的虚拟机不是同一个。我指的是经典意义上GC为核心的应用程序运行库(GC based runtime),而不是云时代的虚拟平台。后者只是一个操作系统,一组应用程序集,属于计算机技术的应用范畴,即对别的工业领域的影响,与计算机技术内部构建具体应用程序的计算机语言已经没啥关系了。

家园 手持设备为啥都用GC语言做开发

ios是objective-c, 带自动回收机制的C

android是java

wp7是.net

为什么?

家园 微软在哪里开始转向C++

在VS 2010上的确加入了一些C++ 1X的支持,不过和.NET相比还很难说有什么特别大的进展。IDE对C++的支持已经好几个版本都没变化了。我觉得微软最大的麻烦就在于大量C++程序员离开了Visual Studio平台,我还看不出Visual Studio为此做了哪些改变。

家园 因为它们不能脱离它们所处的年代

而它们的经历显现它们问题,比如电池的续航,从而促进了它们时代的消亡。IOS的续航性能最好恰恰在于它最接近native。

另外,上面只是与GC相关部分的纯技术角度的分析。任何一个现实生活中的结果都由多种原因促成,实际上是很难归结到某一个原因的。乔布斯也不一定掌握国粉遍天下的真正原因。虽然事情也许是他干的,虽然他也许自以为知道,虽然很多人也认为他最知道,虽然还有人以为自己知道...所以才没有人能repo。

往大了看,人类社会生活中的的大多失败和成功都是没有人能完全解释的,所以才没有完全一样的成功和失败。用控制系统的观点这些是MIMO系统,太复杂,既难建模,更难求解,惶论重现。

家园 开发语言没有好坏, 不同的需求就用不同的语言.

c++,java一统江湖这些东西实在是争论烂了.

这年头的开发世界太复杂了, 每种开发语言都有其适用的地方. 开发语言只是工具, 就像扳手,锤子. 敲钉子就改用锤子, 拧螺帽就用扳手.

作为通用的Windows编程平台和语言.net/C#基本是下坡路了,不值得长期投资

在我看来, 对于语言来说, 没有"长期投资"这个概念的.

对于一个有经验的开发人员来说, 最有价值的是解决问题的能力, 对程序架构的把握, 对于开发流程的理解, 知道如何写出bug少的代码, 知道如何写出便于维护的程序. 这些都和开发语言无关.

现在我常用的语言有5,6种

搭网站用php/ruby

写android用java.

写服务器管理脚本用bash.

写复杂脚本和分析工具用perl.

网页上需要效果就写写js,调调css.

家园 没错,我不用VS很久

目前的VS对与C++的意义仅在于debugger。如你所说C++ coder大量离开VS。MS在2010年底做了一次调查,发现C++的产业链价值US$15B, 20-40岁的程序员中40+%用C++开发(我凭记忆,数据可能有出如)。于是幡然醒悟,加上其它大小气候的促成,才有了号称 C++ Renaissance 的战略掉头。

至于VS本身做了哪些改变,看看外链出处和这个Blog上的相关文章。我不太喜欢VS,也不太习惯Eclipse,所以对不知到VS变得像Eclipse算不算好消息。只要C++ compiler本身做的好就满意了,这几年微软在这方面做得很不错。

至于微软哪里转向C++了,回溯一下去年BUILD大会的相关内容和讨论,Win8/VS11的动向以及Mary Jo Foley的观察就明了了。

家园 ios的续航性好因为他不是真正多线程

android续航性是渣是因为每个app都可以在后台吃掉电池.

人类社会这种复杂系统的失败和成功当然不好解释, 但是有很多事情还是可以找出规律.

现实社会的多种原因恰恰导致了GC语言不会消亡, 并且保持是主流. C++的辉煌只是过去式, 用C++/脚本语言/标记语言描叙这个复杂的世界?

语言越来越多,但他们都将共存.

全看树展主题 · 分页首页 上页
/ 5
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河