欢迎参与轻量级C/C++ IDE工具的开发

软件和网站开发以及相关技术探讨
头像
天浩
帖子: 146
注册时间: 2007-04-14 0:41
来自: 武汉
联系:

欢迎参与轻量级C/C++ IDE工具的开发

#1

帖子 天浩 » 2009-05-13 12:18

开发动机:
  • 纯字符形式难度高:
    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上创建该软件的项目,有助于代码的改进、维护和推广。
轻量级IDE的初步构想(特点):
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
上次由 天浩 在 2009-05-14 5:59,总共编辑 3 次。
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#2

帖子 bones7456 » 2009-05-13 12:21

要做好这个,不容易的.
加油 :em11
关注我的blog: ε==3
头像
muzuiget
帖子: 1097
注册时间: 2007-12-31 14:57

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#3

帖子 muzuiget » 2009-05-13 12:24

楼主可参考一下geany。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#4

帖子 eexpress » 2009-05-13 12:32

参考geany干嘛。
参考以前论坛的hypersrc。改进就是。
● 鸣学
头像
天浩
帖子: 146
注册时间: 2007-04-14 0:41
来自: 武汉
联系:

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#5

帖子 天浩 » 2009-05-13 12:48

刚看了一下geany,很好,有很多值得学习的地方,如布局、有些简单但很有用的功能,正在看hypersrc
谢谢推荐
头像
colave
帖子: 10
注册时间: 2008-04-02 19:55

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#6

帖子 colave » 2009-05-17 17:32

用Qt写比较快点吧
头像
neilhhw
帖子: 62
注册时间: 2008-10-26 12:05

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#7

帖子 neilhhw » 2009-05-17 17:38

做不来,支持下 :em38
gong
帖子: 438
注册时间: 2008-03-30 10:35

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#8

帖子 gong » 2009-05-17 17:47

楼主应该先自己做一下,代码放到仓库去。
wkt
帖子: 849
注册时间: 2006-09-07 22:51
联系:

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#9

帖子 wkt » 2009-05-17 17:58

天浩 写了:刚看了一下geany,很好,有很多值得学习的地方,如布局、有些简单但很有用的功能,正在看hypersrc
谢谢推荐
geany 除了自动补全,函数类型提示比较好之外
其他的都不如gedit--自动探测文件编码的能力超强!
geany对中文输入法的支持也不好
不过由于gtk的函数很长,我老是记不住
所以最后我还是改用geany来写代码!
头像
天浩
帖子: 146
注册时间: 2007-04-14 0:41
来自: 武汉
联系:

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#10

帖子 天浩 » 2009-05-18 1:24

gong 写了:楼主应该先自己做一下,代码放到仓库去。
恩,这两天忙着考试,再过一个星期可以作手作这个项目了,到时将附上详细的软件开发的计划以及我初步写的代码, 不知大家用GTK还是QT作视窗那个好?我最近为这个烦恼:
1、我比较GTK熟悉,也做出了一个这个软件的基本视窗,且GTK是铁杆LINUX视窗开发组件,但是,正如很多人所说的,GTK采用C写代码, 不是面向对象,相比C++的面向对象,开发的代码没有那么直观,GTK代码比较难阅读,当然,也可以用GTKMM(采用标准C++), 本人也是GTK刚入门,不是很熟练构建复杂的视窗。
2、本人没有学QT,但是我们图书馆有QT的新书,学习这个应该不难,它采用C++开发,所以开发的软件结构比较直观,开发速度也快些,但目前比较流行的是GNOME窗口的风格,不知大家是否喜欢QT窗口的风格
所以非常希望有视窗开发经验的同志加入!

目前主要要实现的模块:
1、视窗模块,视窗分为单独的一个模块,所以要定义视窗模块与其它模块通信的接口,定义好接口后可以很好的团队分工
2、C/C++语言模块,由视窗程序把任务分配给这个模块,这个模块完成任务后把结果返回给视窗

初步实施计划如下:
1、初步定义接口 (2009.5.26日前)
2、实现基本视窗 (2009.5.30日 前)
3、实现基本C/C++模块 (2009.6.15前)
4、顽固视窗模块和C/C++模块 (2009.7.15前)
....
头像
hecha
帖子: 364
注册时间: 2007-09-23 13:36

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#11

帖子 hecha » 2009-05-18 2:20

支持下, 能做出来就好了
头像
peachcolor
帖子: 898
注册时间: 2006-05-20 14:03

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#12

帖子 peachcolor » 2009-05-18 2:50

厄,这个可不容易,先多看看别人的吧。
铭记unix的箴言“不要重复发明车轮”
头像
天浩
帖子: 146
注册时间: 2007-04-14 0:41
来自: 武汉
联系:

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#13

帖子 天浩 » 2009-05-18 17:45

peachcolor 写了:厄,这个可不容易,先多看看别人的吧。
铭记unix的箴言“不要重复发明车轮”
谢谢提醒
头像
darasion
帖子: 1153
注册时间: 2007-12-05 12:25

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#14

帖子 darasion » 2009-05-18 17:52

贵在坚持
pasuka
帖子: 33
注册时间: 2006-12-15 18:17

Re: 欢迎参与轻量级C/C++ IDE工具的开发

#15

帖子 pasuka » 2009-05-18 19:42

可以参考SciTE,感觉也蛮小巧的
回复