- 纯字符形式难度高:
LINUX环境下有很多很强大的开发和分析C/C++程序的工具,如GCC、GDB、MAKE、VIM等,这些工具大多数采用字符形式进行操作,操作过程很复杂和繁琐,对于对Linux非常感兴趣或者已经非常熟悉的人来说,也许是一种乐趣,但是对初学者和习惯在视窗下编程的人形成比较高的门槛,有很多习惯windows下写程序的人在Linux下很吃力,尤其是使用GDB调试程序的过程,本人初学GDB时,对于大量用print感到麻烦。
大型开发环境之弊:
目前LINUX环境下已有的集成IDE环境有Eclipse、Sunstudio、Anjuta等等,这些开发环境集成了大部分开发软件需要的组件及功能,人机交互性增强了,但是存在以下几大缺陷:
1)体积过于庞大,消耗系统资源过多,在硬件配置较低的情况下执行会导致系统性能大幅度下降。
2)降低资源消耗需要进行大量的系统配置工作,其配置过程异常复杂,同样不容易操控和掌握。
3)为了方便跨平台移植,大多数开发环境视窗采用Java编写,依赖JDK,系统必须为开发C/C++程序安装和开启JDK。
4)过于强调专业化和工程化,不适应松散的编程,其实是强行要求开发者适应开发工具,举个例子:我在终端下写了一个"读者写者"的程序,有5个main()函数,主进程有个main(), 读者进程有个main(),读者的窗口GTK进程有个main(), 写者进程有个main(), 写者窗口GTK进程有个main(), 另外还有一个Makefile文件,在终端下用make编译正常,运行良好,但是在Eclipse和Anjuta下不能通过,它们不允许有多个main()函数,因为点击运行时是从包含main()函数的那个程序开始的,多个main()使它们不知道从那个main()开始,其实我的Makefile非常简单,运行时只执行主程序的main(), 由主进程调用其他的main()开启新进程。这种松散而简单的程序在专业的IDE下不能通过,除非创建多个project,然后把它们联系到一起。这种例子在我们学习LINUX编程时经常出现。
5)没有执行shell脚本的功能,在Linux开发程序除了使用IDE自身的功能以外,开发者可能喜欢执行一些shell程序来查看和分析程序,在上一个问题中,如果IDE允许编写和执行shell,那么就很容易运行了。
构建轻量级IDE工具的意义:
1、对于普通用户尤其是对于LINUX的初学者来说,无论用纯字符形式的开发工具还是用大型的集成IDE开发环境, 都有很大的困难。对于在LINUX环境下开发程序的初学者来说,简单易用才是最好的学习环境。
2、很多熟悉LINUX开发的开发者不需要庞大的IDE,他们/她们掌握了各种开发技能并且很清楚自己在做什么,一个小型而灵活的IDE是一个很好的选择(这个特点在下面会讲到)。
3、因此构建一个灵活方便、轻量级的集成开发环境有助于开发者在LINUX下开发程序,尤其是初学者
4、该IDE软件项目开放源代码,用户可以修改和拓展该软件的功能,是一个很好的实践项目,开发门槛不高。(本人也用这个项目来实践的,它会涉及很多的知识点,但是难度不是很高)
5、在google group上创建一个该软件的论坛和在google code上创建该软件的项目,有助于代码的改进、维护和推广。
1)视窗环境下编写程序(vim或普通文本编辑器)、编译程序(gcc/cc)、调试程序(gdb)、控制版本(subversion)等等。
2)采用构建LINUX系统桌面的GTK库编写视窗,与LINUX系统紧密结合,与Java相比,消耗资源较低。
3)编辑器集成LINUX的VIM,当然,也可以用普通编辑器。
4)编译连接过程调用make和gcc,IDE可随意配置makefile文件和gcc参数,初学者可以简单配置或者使用默认的配置,但决不妨碍高手进行复杂的配置。
5)把系统的终端窗口集成到IDE中,在IDE中也可以像平常一样使用终端。
6)调试过程可以只用按钮操作,也可以用IDE中的终端操作。
7)用版本控制软件帮助用户管理代码,主要使用Subversion。
8)编写创建LINUX软件包插件,在视窗下填写创建deb包和rpm包必要的信息,用视窗程序引导用户完成。
9)编写google code插件,可在google code网站上托管自己的代码(以上几步完成后再是现这一步,因为上面几步是关键,否则没人喜欢用这个软件)
10)可编写并执行shell程序
初步涉及的知识: LINUX系统编程(C语言)、GTK编程、POSIX多线程编程、glade3工具、各种集成到IDE的工具(如gcc/g++、gdb、make、subversion、vim等)
欢迎你的参与,我们一起学习和开发,也欢迎你提意见和建议
参与方式:编写代码,测试程序、报告bug、编写文档、参与讨论
另外,这个软件还没有名字,取什么名字好呢? oxcode怎么样? ——今年是牛年(ox)
QQ: 625618188
email: tianhaolsk@gmail.com
google group: http://groups.google.com/group/oxcode?hl=zh-CN&pli=1
google code :http://code.google.com/p/oxcode/
如果加入google code 需发邮件给我,或者加入google group