记得曾经有人问过我,学什么语言好,或者说更有“前”途?而在网上也经常看到关于语言优劣的争论,记得曾经还有.Net和Java两大阵营的激烈“骂战”。我向来不喜欢参与任何一种这种我认为没有任何意义的讨论,因为在我看来程序语言没有好坏优劣之分,只有应用的领域的不同。
我自己从学C开始,但是由于工作中不常用到而基本荒废,如今正在恶补中。Java是我工作的主流语言,既然是Web开发,JavaScript、HTML、CSS这些都是不可缺少的。而有时也会用到C++、C、Perl、Python和Ruby。
在这里我只想申明一个观点:在不同的应用领域的选择最合适的语言。
关于不同的语言适合不同领域的例子比比皆是:C可能无论如何也做不了网页,而HTML估计也不能做驱动程序。
也许最关键的问题不是在这个上面,而是集中在同一领域的不同选择上,比如Java和.Net,这个时候就需要多方面综合考虑。但是相互的“攻击和谩骂”是没有必要的。就比如,一个人喜欢吃包子,而你喜欢吃馒头,你难道就非要说包子不好,馒头如何如何好,甚至想把做包子、卖包子和吃包子,都要大打一顿,然后让他们都改吃馒头,才解气。估计没有人会这么做,因为大家都知道你喜欢吃什么那是个人喜好口味的问题,但是最终的目的是一样的,都是为了填饱肚子。当然程序语言的选择上,可能不仅仅是口味上的问题,还要考虑很多其他的因素。
1、目标领域。我想这是首要的条件,当然估计也没有人会在这个上面出乱子,因为一般不会有人选择HTML做嵌入式开发。
2、公司或者部门的一贯技术路线。之所以提到这一点,主要是考虑到经验积累的原因,并不是不鼓励创新。一个软件公司(指国内大部分的中小型公司)一般都会有比较固定的技术路线,比如J2EE、.Net、LAMP等等,在长期的项目开发和实施过程中,都会有大量的问题出现,同样也就有了对这些问题的解决方法。这就宝贵的经验!作为开发人员,很可能都比较讨厌写文档(我也不例外)。可是如果把自己平时开发过程中遇到的问题和解决方法都能记录下来,若干年后,不失为一笔宝贵的财富。你也是否也有过同一个问题Google很多次的经历呢?
3、未来的发展。这个可能考虑的较少,但是也许要考虑到。当我们面对是用Qt还是用C++开发Symbian程序的问题时,我们可能就不得不考虑这个问题了。
4、客户的要求。选择什么样的开发语言,好像一般没有客户什么事情。可是也许有些比较“谨慎”的客户,在投标之前已经找了“咨询公司”评估了各种平台,从而选择了他们认为“最先进”的一个。那么在这个时候,在以尽量满足客户需求为导向的理念的指导下,我们除了尊重客户的意见,其他还有什么办法?(当然也许有个性的仁兄说,我不做了,换家公司。老板可能并不在意这些吧!)
5、应用的规模和开发周期。应用规模对语言的选择也有着很大的影响,比如我想开发一个企业级的应用,我可能会选择J2EE和.Net,可是如果我只想做一个公司甚至部门内部应用,那么ROR就好了。开发周期也是同样的道理,在很紧张的开发周期要求下,我们就没有办法选择重量级的平台。
6、兼容并包,打开思路。这个不算条件,算一个思路吧。如果我们考察Facebook、MySpace、Youtube这些知名网站的架构,就会发现,它们都是包含了几种不同的语言,而每种语言都在自己的强项上发挥作用。好钢用在刀刃上。批判不是一件坏事情,但是在我们批判的时候,更应该看到它的长处,因为也许有一天我们就要用到了它。
知己知彼,百战不殆。所以即使我们不想用这个平台,是不是也要先了解它,在确定技术方案的会议上,至少我们可以说出让别人信服的放弃它的理由!
作为一个技术人员,学习能力是至关重要的软实力,大家应该没有异议。因为,在争论的同时,也许我们更应该考虑在合适的时候,是不是应该在批判的同时更深入了解下我们批判的对象呢?
分享到:
相关推荐
GOAT(山羊)是中英文大语言模型,基于LlaMa进行SFT ...模型在推理时能够适时地结束文本生成而不是无休止的生成; - [3] 公开GOAT_7B LoRA模型参数,此模型是基于LlaMa在10k中英文多轮对话数据上有监督微调获得;
受 1990 年代某个屏幕保护程序的启发,该函数使用久经考验的深度优先搜索方法生成一个迷宫,以 3D 形式呈现(包括“生长的墙壁”动画),并使用左侧 -手墙跟随导航策略。
PB中怎样解决收据无休止打印? PB中怎样解决收据无休止打印?
Laravel开发-endless-cosby 无尽的科斯比。Laravel、无休止滚动和PlaceCosby API的一个例子。
追梦人(无歌词,带和弦).piano2 雪中情.piano2 她非常小巧,只有一个可执行文件,不需要安装,功能非常强大,界面简洁、美观大方,完全免费,开放源代码。 『主要功能』 1、用电脑的声卡、键盘、鼠标来模拟...
追梦人(无歌词,带和弦).piano2 雪中情.piano2 她非常小巧,只有一个可执行文件,不需要安装,功能非常强大,界面简洁、美观大方,完全免费,开放源代码。 『主要功能』 1、用电脑的声卡、键盘、鼠标来模拟...
英雄无休止-Solarus Engine的游戏设计测试任务 英雄无休止是对Solarus引擎( )的追求,即使它基于Solarus脚本的《塞尔达传说》,也不是真正的游戏( )。 该任务作为多个试验的枢纽,您可以选择在完成每个试验后将...
接下来锅涛老师就给大家全方位讲解一下,在我们程序开发过程中,怎么去规避。除了学会如何规避,还将引发你去思考,思考这个漏洞它是怎么让黑客发现的,就是大家经常会说的一句话,如果你不知道漏洞是怎么来的,那你...
无论您是在图书馆的网站上进行研究还是无休止地浏览猫咪,使用浏览器按钮快速搜索课程英雄并找到所需的所有学习帮助。 更聪明地学习,随时随地提供具有课程特定资源的GPA。随着课程英雄,你可以... 学习更聪明 ...
无休止地聆听JS中的Keygen Chiptune。 这是的源代码。 用法 要使其正常工作,您需要一些芯片调整。 您可以通过运行以下命令从下载(并处理)存档: ./scripts/download-music-pack 安装要求: yarn 用以下内容...
智能队列决策目前基于: * 歌曲评级 * 基于上下文的选择,例如更可能的相关歌曲 该播放器的其他功能: * 开源,简化的 BSD 许可 * 简单 * 支持最重要的声音格式。 仅使用 FFmpeg * 音乐数据库(可选) * 音量标准化...
holidata是用于通过算法生成假日数据的实用程序。 其目的主要用于 。 可以使用受支持的语言环境和输出格式来生成给定年份的假日数据。 用法 呼叫holidata提供必要的数据,例如 $ holidata --year=2020 --locale=de...
我们考虑一个最小耦合的膨胀理论,其一般标量为V(f(φ))= V(ξ∑k =1nλkφk),其中包含最大阶数为m的固定点。 我们证明了渐近平坦的势能可以与无限级的平稳点相关联,并讨论了我们的方法与α吸引子理论的关系...
您可以从数千种仪器中进行选择,请参阅。执照参见 。 如果您需要其他许可证,请与我联系。程式码范例简单示例--虚拟鼓--虚拟钢琴--无休止的长笛--两种声音--声音效果--打开实时音乐-代码-打开动态加载-打开混音器,...
适用于iOS游戏8 Ball Pool的Hack,可无休止地扩展游戏的视觉辅助功能。 这种黑客形式是用徽标(预处理器)指令编写的调整形式,由Theos进行编译。 所提供的标头(CDStructures.h)已从游戏可执行文件中转储,并...
前端项目-multi-level-push-menu,兼容跨浏览器的jquery插件允许无休止地嵌套导航元素。
语言:English 此扩展程序启动了Google直播视频群聊...主要功能如下:-立即发起视频群聊,不再等待无休止的菜单中的所有内容-视频群聊启动后,视频群聊网址就会复制到剪贴板中-增加了选择在v1.1.0中使用哪个帐户的功能!
01响应式入门:02Java9中的响应式编程:03Rxjava开篇:304Rxjava中create方法的设计思想:405Observables和Observable.cache():506无休止数据流与定时控制:607Demo的设计初衷:708Observable.cache()源码解读:809...
无休止的日历 一项针对无休止滚动交互式日历的 UX 设计研究。 最初用于小团队的假期计划。 预习 请访问此网址预览日历: : 执照 本作品根据知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议获得许可。 要...
安全-通过AES-256位加密密封您的数据基本功能一目了然●按类别组织密码●无休止的子类别-文件夹/子文件夹1 /子文件夹2 /子文件夹3…..●用于创建安全密码的密码生成器●从各种密码中导入管理员●导出所有密码●密码...