当前位置:  技术问答>linux和unix

请给我个让我使用Linux编程的理由

    来源: 互联网  发布时间:2016-10-30

    本文导语:  学习C语言的时候一直在用VC++6.0,开始接触了Linux,看了很多网上关于Linux的信息,有的说在Linux下编程可以学到很多编程技巧,可是我不知道到底学习Linux的什么,学习Linux下开源软件的源代码还是学习什么?尝试在Vim...

学习C语言的时候一直在用VC++6.0,开始接触了Linux,看了很多网上关于Linux的信息,有的说在Linux下编程可以学到很多编程技巧,可是我不知道到底学习Linux的什么,学习Linux下开源软件的源代码还是学习什么?尝试在Vim下写程序,毕竟一个完整的程序的诞生不只是一些源代码,还要有图形等文件,难道在Vim下写好程序还需要在开发环境中建个项目,把源代码在copy过去进行编译?不知道在Linux下写的C++程序能不能移植性很好,毕竟现在个人计算机普遍安装的windows,在短时间内让Linux深入到个人计算机还不是那么容易,windows下提供的VC++6.0集成开发环境对于编写C++程序很是方便,但是作为一个计算机专业的学生,一直在使用微软的傻瓜式图形界面,很丢人,微软把什么东西都做好了,感觉这样对编程能力得不到提高,所以最近很纠结,我到底是继续使用windows编程,还是应该转向Linux,在Linux下学习到底学习Linux的什么?主要是想专注于一个开发环境,对专一的开发环境学精学透彻,对以后工作后能很快上手有好处,不至于什么都学,什么都用,但是到头来什么都不精通,只知其一不知其二,所以请高手有经验的人士谈一谈我到底该继续使用windows开发程序还是转向Linux,要是学习Linux应该学习什么?从哪开始学习?它的(软件)源代码吗?要说明的是我现在还是学生想提高自己的编程水平,请结合您自身的经验谈谈,不要从网上copy,谢谢 

|
亲自编写makefile,让你理解程序被编译的每一个步骤,而不是永远只会用微软提供的编译按钮

使用相对微软更加符合c/c++标准的gcc,而不是微软提供的对标准无限蹂躏的c/c++
vc6 的c++根本不符合STL标准,也允许不符合标准c/c++ 的代码通过编译。比如main函数申明为void


只有在Linux上,才能认识到c语言也能干大事。写个http服务器、p2p服务器。

更重要的是,使用Linux,你将获得更宽广的眼界,将会意识到世界上有很多种的OS,很多种的CPU,还有很多的牛人

|
既然是计算机专业的。那么就不要纠缠在编辑器、编程语言甚至操作系统上。
好好把《数据结构》、《编译原理》、《微机原理》、《体系结构》、《数据库原理》、《计算机网络》等等方面的知识学扎实(不是背,最好是在实际的机器上实践)。
把这些基础知识学扎实了,就算在Windows下,你也可以自己实现一个MFC或者.net这样的框架。也可以实现一个自己定义的语言。

|
Linux除了图形用户界面的应用程序如游戏、多媒体播放、网络浏览器之外还可以:
1、服务器程序,如web应用服务器、database服务器、游戏服务器等等等等等。它们都专注于业务逻辑的处理,使用命令行和配置文件与用户交互。即Linux具有简单性。编程者和用户只专注于业务逻辑的实现,不需要关心“文档-视图”不需要关心“消息队列”。
2、上述这些领域使用Linux/Unix的另外一个好处就是系统高度可定制,可以将对业务应用没有帮助的组件、模块卸载或不编译进内核。如图形驱动、无用的文件系统驱动、一些用户空间的服务程序等等等等,编译出的内核可能只有3~5MB大小,但功能完备的操作系统。即Linux具有可裁减性,可以被轻易地烧进一片价格只有几十块钱,Flash容量只有几MB的单片机上。
3、基于第二点,Linux特别适合嵌入式、片上系统、专用机(PC机即为通用机)等领域。当下流行的计算机并不是Intel X86体系结构通用计算机一家垄断的,在一些应用领域还存在ARM、Power、MIPS等体系结构的计算机。显然Windows是不支持后几种体系结构的,这就是传说中的“Wintel”。Linux对这些体系结构都有很好的支持。即Linux具有可移植性,几乎所有的主流体系结构都被Linux支持,得到支持也只是时间问题。
4、如果要在Linux上编写图形界面,有很多很成熟的解决方案可供选用,如GTK、MiniGUI、QT等等等等等。但图形用户界面(GUI)在桌面Linux上不是主流,但在基于Linux内核的移动终端平台如Android上会有很好的发展,如果LZ想做出非常炫的应用,去学习Android或IPhone编程吧,Windows桌面开发的份额只会越来越小。
以上是我做Linux嵌入式开发的总结,给LZ一个参考

    
 
 

您可能感兴趣的文章:

  • 请给我十个使用sun服务器的理由,我要用它说服领导
  • 不使用MySQL数据库的五个给力理由解析
  • Linux下使用openssl api编程socket编程,为什么要编译啊?
  • 哪位编程高手知道如何编程实现获取进程的内存使用量信息(linux)
  • kliyx是使用C++语言编程的,还是用C语言编程的?
  • 在linux下使用C语言一般是使用什么编程工具呢???
  • 菜鸟问题,小弟刚刚使用LINUX不久,不知道如何使用编程工具进行编译和运行!
  • linux系统编程基础应该使用哪些书籍?
  • 针对使用java进行硬件编程
  • Linux 短信猫编程怎么使用,急!!!!
  • 强烈呼吁使用QT编程的同志交流交流!!!!!
  • 那有WEBLOGIC的使用手册或编程资料?
  • 在COMPAQ TRUE64 UNIX用C++编程,使用Gcc,支不支持stl?
  • 使用JB编程时,光标的定位和实际输入的总是有偏差,请问如何解决?谢谢!!!
  • linux C编程中使用make时对 内部规则的疑问
  • 在AIX和UNIX上可以使用什么编程语言?
  • 诚邀版主,欢迎使用QT编程的同志!!!!!!!
  • 各位大侠,请推荐几本在UNIX环境下使用标准C语言编程的好书.谢谢啊!!!
  • linux无线网络传输也可以直接使用socket接口编程吗?
  • socket编程,使用recvfrom()函数监听问题。
  • 关于Linux使用和编程的几问。
  • shell编程中awk的使用?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Docker官方镜像将会使用Alpine Linux替换Ubuntu
  • linux支持ti-rpc么?ti-rpc在linux中是不是只使用udp协议,不能使用tcp协议
  • linux下free命令显示的内存使用情况分析
  • 求redhat linux 9.0下可以使用的oracle 10g或9i,还有redhat linux 9.0下可以使用的eclipse下载地址
  • linux下不使用sudo命令执行docker的操作步骤
  • 在XP下使用VMWare安装了Linux AS 5.6之后,使用FTP工具可以远程连接Linux,而在cmd命令行中却连接不上,什么原因 ?
  • 如何使用linux下gdb来调试python程序
  • 原来装了linux和win2k,使用LiLO启动,现在重新win2k,如何恢复使用LILO来引导使得Linux可用
  • linux/Centos/ubuntu下如何使用umask命令修改新建文件时的默认权限
  • 在shell中使用数组需要什么特殊的条件马? 怎么在有的linux下能够用,在有的linux下就不能能使用?
  • linux下c/c++使用hash_map方法介绍
  • asp程序使用的access在Linux下如何使用!
  • linux下objdump命令用法介绍及如何使用objdump命令进行反汇编
  • [请置顶]关于Linux的安装使用问题 请放到 软件使用/操作系统 里提问
  • linux下top命令详解包括top命令参数使用及结果(virt,res,shr)排序举例说明
  • 新装的Linux使用root用户不能使用FTP?
  • linux top命令详解以及top命令的各项使用技巧详细说明
  • LINUX下使用Eclipse,如何使用交叉编译器?
  • linux系统下使用使用性能监视工具的前提?
  • 使用VWMARE安装linux的内存使用问题
  • 嵌入式Linux使用外挂Vsftpd不能正常使用, 请高手解答,谢谢。
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3