windows还是linux上工作,已经选择未来开发方向和技术,语言的的朋友
2009-10-19 00:19
争论windows和linux谁更好是没有意义的,只有相互借鉴才能促进不断的完善。
撇开个人的喜好,从客观的开发角度来看,windows和linux都是成功的系统。
曾经在开源社区最大的比较就是linux的内核比windows好。这个争论到后来突然偃旗息鼓了,因为我们既然看不到windows的内核,就无法做出客观的比较。
在就业市场上,从需求的角度来说,可分为专业和非专业需求。有的客户是专业公司,需要开发专业系统,他们也有专业人员维护,有的客户是面向非专业市场的,比如开发游戏,给普通用户使用。这2者的市场总体来说差别不大。对于正在选择未来发展方向的IT人员,选择什么公司和什么市场,并非首要因素。
因为工资的决定,是遵循市场需求和物以稀为贵2个原理同时运作的。
比如说,市场需求量大的技术,则比较容易找到工作,市场份额也大,总蛋糕最大。由此来看,windows管理员是需求最多的。可是因为现在计算机的普及,可以胜任windows管理员的人相当的多,于是蛋糕虽大,可是分的人太多了,便变得没有很大的价值。从另一个面来看,AIX服务器的总体需求量是不大的。一般大企业才使用,但是因为对技术要求高,内容复杂,掌握的人少,所以工资一直都居高不下。
在目前的市场上,windows在桌面市场占有绝对优势,在服务器市场占有三分之一强的席位(中小型为主),而中大型服务器都在UNIX家族控制下(包括linux,linux也占有很多小型服务器市场)。在很长的未来里,它们都不会被轻易淘汰。因为选择哪个方向则可依照个人兴趣爱好。
第二:选择编程语言和开发方向。
首先,可以粗略的把编程语言归为几大类
1:c/c++ asm
2: java/c#/f#/VB
3: perl/python/php/ruby/bash/powershell
撇开第一类不说(后面解释),第二类是解释语言,也是微软和开源社区都推荐的未来技术.是JAVA EE和.NET的核心。第三类是描述类语言,在设计上,语法和使用比前两类要简单(除了PERL <-特例)。
那么再看方向:
1:桌面开发:范围很广,但主要在windows平台上为主。
2:企业开发:目前以JAVA EE和.NET为主流。其中当前的形势是JAVA EE更为广泛。
3:游戏开发: 很流行,不只局限在windows,也包括游戏平台。
4:特定开发: 专业用途的开发,需要特定技术掌握。
在此,我们仅仅讨论第一二类方向,因为游戏开发和特定开发于前两类有很多相似之处。
从桌面开发的角度来看,选择一门语言是相当重要的。这里的桌面开发主要指windows平台。
在windows平台上开发的工具软件,最主要的是visual studio和borland 系列。现在已经可以细化为四大块:
visual c++;visual basic;delphi;visual c#;(c++ builder的份额越来越少了)
这四门工具掌握好了,都能有相当的发展,vb也不是想象中那么弱,vb是.net的主要语言之一,虽然默认的首席语言是c#.
但是从工资的角度来说:visual c++是最高的。
因为c++的难度是所有语言中最大的。不止是掌握这门语言,而且要懂stl/boost等库的开发。还要同时兼容c,要懂c,懂汇编,了解编译器是怎么产生代码的,才能算精通c++. 在vc上,还要懂几个库,MFC和ATL等。现在有的人才学了点皮毛就自称精通,招聘广告上也要求精通vc++,java等一套工具。其实那个精通的标准,是被潜规则了的。
学习visual c++,如果不精通,还不如学delph,java,c#,在开发用户程序二者差别不大,而且速度快,易于维护。c++没有相当的功力的人,无法维护。用c++不同的人可以写出数种模式的代码,没有经验的人要整合在一起十分艰难。
但是最程序有底层要求,或者性能要求,则必须使用vc,因为vc功能强大,也是目前唯一能编写二进制代码的工具了。java,c#必须转换成中间码,eclipse也能把java换成exe.但是和vc相比,差距是不容忽视的。
从企业开发的角度来看:JAVA EE拥有更大的范围,因为其跨平台特性。从IBM到SUN到LINUX都全力支持JAVA技术,而企业服务器应用上来看,UNIX/LINUX占有更大的份额。但是.NET也不容忽视,从工资上来看,二者居然能基本持平。J2EE的工资较高于普通.NET应用。因为普通asp.net等开发在visual studio/msdn支持下相对容易,但是高级开发则没有大的区别。
这篇文章是从朋友博客上转载的,供参考。
我的看法是,选择平台都不算太重要。因为都有其发展范围。
重要的是自己掌握了多少。精通了多少。
但是对于有些犹豫的朋友来说,选择方向仍然是关键,所以我的一点愚见是
掌握和精通比如delphi,vb,c#,java是明智的,这些东西入门容易,一旦努力精通,是很有用处的。
对于vc++,要精通则是很难的。掌握不难,可是普通的掌握实在不如精通以上RAD快速开发工具。
c/c++是一个大工程,什么叫精通呢?按照linus开发内核小组的要求,相当理解c,就能开发内核了。通c++就能开发stlport和boost这种库了。 精通c不是说很懂c的语法。这叫懂语法。精通是懂其结构,为什么如此,如何编译。是一套系统专业的过程。仅懂其语法,则和掌握vb没啥太大区别,所以有人感觉stl,mfc很难。
论坛讨论建议:
一:咱们都是文明人,不做人身攻击,不因人废言,也不因言废人。比如(一看就知道你不懂windows)(一看就知道你没开发过mathlab)这样的话。有意见,批评直接切入。比如(你那个东西说错了,visual studio 2002不能编译最新的stlport).
二:做理智发言。不要意气用事。比如(linux就是垃圾!)(windows就是狗屎一坨),最好指出问题所在,比如(linux的稳定性确实好,内核和GUI分离),(windows vista的兼容有问题,最好改进)。
三:不因别人提不同意见便攻击对方。比如(我开发c#时你还在高考呢),(我学算法时你还不知道电脑是什么呢),没有意义。人各有所长,也有所短,出现错误不可避免,有则改之无则加勉。
分享到:
相关推荐
2. 重视服务,增强市场竞争力: Linux 和 Windows 的技术是在同一水平上,因此, Linux 需要重视服务,增强市场竞争力,以增强用户的忠诚度和满意度。 Linux 的发展前景广阔, Linux 的应用领域逐步扩展, Linux ...
不同的操作系统平台(如Linux、Mac、Windows、Android、iOS)拥有各自独特的开发环境和工具链,这对开发者提出了多样化的技术挑战。本报告将通过具体的案例与项目,详细探讨在这些操作系统平台上进行软件开发与调试...
在IT技术的未来探讨中,我们可以看到,无论是Windows还是Linux,都有其独特的价值和应用场景。Windows以其易用性和广泛的用户基础在桌面市场占据主导地位,而在服务器领域,Windows与Linux并存,各自在不同规模的...
ArcGIS Server还支持多种平台,包括Windows、Sun Solaris和Red Hat Linux,从而满足不同企业的IT架构需求。 #### 六、ArcGIS 9的变化 ArcGIS 9版本引入了多项重要的改进和新增功能,旨在提高系统的可伸缩性、性能...
总之,KIO技术在Linux资源管理器的开发中起到了关键作用,通过深入理解和利用KIO,可以构建出更强大、更易用的桌面环境,从而吸引更多的Windows用户转向Linux平台。在未来的Linux桌面发展过程中,KIO的持续优化和...
无论是在Windows、Linux还是Mac OS等平台上,Java都能够保证其应用程序的正常运行,而不需要为不同的操作系统编写不同的代码。 Java编程语言的另一个重要应用是在图形和图像处理方面。Java提供了丰富的API库支持...
- **未来趋势**:考虑编程语言的发展趋势和技术演进方向。 总之,在计算机应用软件开发中,合理选择编程语言对于项目的成功至关重要。通过对不同编程语言的特点和适用场景的深入了解,可以帮助开发团队做出更加明智...
### Linux新手管理员指南知识点概述 #### 一、为什么选择Linux? - **为什么选择Linux?**:探讨了Linux作为操作系统的...- **未来发展趋势**:探讨了Linux未来的发展方向和技术趋势,为读者提供了思考和学习的方向。
4. **技术趋势介绍**:介绍.NET平台的发展历程以及未来的技术趋势,让读者了解.NET技术在软件开发领域的地位和发展方向。 #### .NET开发相关知识点 1. **.NET简介** - .NET是由微软公司开发的一套应用程序开发...
综上所述,创业公司在选择WEB开发语言时,应综合考虑团队的技术背景、项目需求、未来发展等因素。Ruby和Python虽然流行且优雅,但在人才储备上可能不如ASP.NET和PHP广泛。对于初创业者,PHP因其易学、资源丰富、成本...
1. **跨平台能力**:虽然早期版本主要针对Windows平台,但随着.NET Core的发布,ASP.NET Core已经实现了跨平台支持,可以在Windows、Linux和MacOS上运行。 2. **高性能**:通过编译执行而非解释执行,提高了程序运行...
微软在.NET Core上投入大量精力,这是一个跨平台、高性能的应用程序框架,旨在打破原有的.NET Framework的Windows束缚,实现跨Linux、macOS等操作系统的无缝开发。.NET Core 3.1的稳定性和广泛的库支持使其成为企业...
综上所述,Linux及其相关技术在未来嵌入式系统领域将发挥更加重要的作用。无论是从应用前景还是研究方向来看,都有广阔的发展空间。然而,为了更好地推动这一领域的发展,还需要解决诸如版本兼容性、安全性以及人才...
【嵌入式技术的简介】 嵌入式技术是一种以应用为中心、计算机技术为...同时,C语言和嵌入式Linux平台成为了开发的主流工具,工程师们对行业的未来充满信心,工作满意度高,表明嵌入式领域是一个充满活力和挑战的行业。
它可以运行在多种操作系统之上,包括但不限于 Windows、Linux 和 macOS。这种高度的兼容性让开发者能够在不同的环境中开发和测试应用,极大地提高了开发效率。 **3. 强大的 Web 支持** 作为专门为 Web 开发设计的...
选择哪一个作为发展方向,很大程度上取决于具体的项目需求、团队的技术栈、公司的技术偏好以及个人的技术背景和兴趣。对于初学者来说,可以考虑从学习曲线、社区支持和未来职业规划等多个角度来做出选择。对于企业来...