Advertisement

Release for Linux, or why I don't like GPL zealots

Started by January 04, 2005 10:20 PM
225 comments, last by Yann L 19 years, 11 months ago
Quote:
Original post by 255
Many closed-source linux apps and games distribute statically linked tarballs in addition to packages for the popular distros to avoid compatibility problems. Maybe you should consider that as well.

I try to statically link as much as legally possible, but there are license problems with LGPL libs. They cannot be statically linked into closed source software, so I'm stuck with using dynamic libs.

Quote:
Original post by 255
BTW it'd be interesting to hear what toolkits/libraries you are using?

Not much. GTK+ for the GUI, a modified version of Scintilla for the editor component, a a lot of inhouse support libraries (our own port of the STL, OS call wrappers, OOP pattern frameworks, etc).

Quote:

Then I assume it would been open source if you didn't have to deal with the inhouse libs?
One solution is to open source parts of the project, and if the community is intressted enought, they will for sure replace those.
This would probebly make it far easier to embrace for the open source community

That's a possibility, yes.

Quote:

Can your IDE yet list for example all of an object's member functions when using a . or -> operator

You mean like Intellisense ? Not yet, but we're working on it.

Quote:

- how about those collapsable code sections like some editors have?

It's there, just not activated in the screenshot.

Quote:

- how about a nice way to walk the call function hierarchy or call graphs like vc6 has?

Something similar is included in the class browser.

Quote:

- page bookmarks ie. the blue lines in vc6?

How do they look like in VC.net ?

Quote:

- code window split into two or more views?

You can split it into as many views as you want. You can also use external editors.

Quote:

- macro system for automating things? (I usually use the macro to make button that when pushed it makes a commenting block above the function definition) That's about the only thing I use it for so far.

Not yet, but planned at some later point. Not a priority.

Quote:

- it would be awesome if you could catch all user's settings into a file so that when he/she reinstalls the IDE all the settings can be loaded from that file. God I miss this in vc6 so much.

It's Linux - everything configuration related in stored in the users' home directory. Every user has his own configuration files.

Quote:

- how about integrated help system like for various apis and such, preferably done in html so could be hand edited and added in by endusers or IDE devs.

The help system stubs are there, but if you think I am going to write the docs, then you're dreaming [wink] If someone wants to contribute, you're welcome. An index of available API references would already be great. Currently, the IDE calls an external browser to visualize them. I'm looking into a good HTML browser component as a GTK widget. There are a few possibilities (eg. Nautilus), but they are gnome specific. I really don't want to deal with the Mozilla backend, btw.

The current roadmap looks like this (in order):

1) Finish the core functionality support: C and C++ error parsers, class browser, optimize the build process.

2) Finish the configuration and target management system: custom build tools, custom file types, configuration manager. Link it to the GUI controls.

3) Finish the debugging component, link everything to GDB or to a custom debugger core. Add support for hovering watches to the editor. Make it that the IDE can attach to running processes, and that a crashed external process will call the IDE w/ debugger.

4) Include revision control management, and link to custom revisioning system (CVS, etc). Add a server explorer as in MSVC.

5) Intellisense.

6) GUI cleanup, help system, and stuff with minor importance (macros, etc).

I don't know about the time schedule, basically there is none :) The first two points are very high priority, and will be done in a short term. Point 3 will suck, GDB is a bitch. 4 should be fairly easy. 5, well, the problem is going to be the database. 6 is duh.

We also going to need some new icons. The GTK stock icons are nice and all, but not really appropriate for all features in the IDE. Another nice thing would be an integrated UI design toolbox, such as Glade or Qt designer. The problem is that there is no standard in Linux. If we're going to make one for GTK, the Qt people will bitch, and vice-versa.

Oh, yeah, I was thinking about project types included with the "new project" option. Of course, a pro can go with an empty project, and configure everything himself, but we'd like to provide some predefined project types. Currently, there are:

* Console application (Hello world type)
* Basic X11 application
* GTK+ application
* OpenGL framework
* SDL framework
* Win32 console (Crosscompile)
* Win32 windowed (Crosscompile)
* Win32 OpenGL framework (Crosscompile)
* Win32 SDL framework (Crosscompile)

The user can select the language (currently C, C++ and Python) for each project type. But I'd like to include some more predefined sets, any idea what is missing in the list above ?
It might be obvious, but maybe allowing the user to add his own predefined template project would be cool. For example I would make my own "Create a new Cipher Engine project" after Win32 SDL or something.
I eat heart attacks
Advertisement
Quote:
Original post by Yann L
Screenshot


Looks decent, when can we expect a demo? I'm looking for a good IDE that works like Visual Studio and doesn't rely upon autotools...

I've been using Linux exclusively for a couple of months now; prehaps it's because I'm an ex-windows convert, but I don't have any problem at all with people releasing software on Linux without the source. As long as the binary works fine on my machine and is supported by the developers (ie: you) I don't really care about not having the source. Afterall, I probably wouldn't even use the source for anything so I'd see no reason to have it aside from a machine specific compile. My kernel is precompiled as are most of the binaries I'm running, so having the extra 'benefits' I'd get from a custom build doesn't really make one iota of difference to me. Hell, if I used the IDE regularly I wouldn't have a problem with paying for it or making a donation to the authors.

Keep up the good work, and please don't let a few zealots dissuade you from releasing something that by and large would be useful to other developers.
That screenshot honestly looks awesome. Indeed, don't be put off by zealots. At least for me, I think it rocks. I think a switch back to Linux just because of that IDE is something I'd like to do - I switched back from Linux to Windows because of the lack of a nice QT or GTK IDE.
Quote:
Original post by evolutional
Looks decent, when can we expect a demo?

As soon as I get GTK 2.6 installed on my system without trashing gnome, and as soon as we get the stupid GtkCellRendererCombo widget running as it should. Hopefully this weekend.
I'm interested too. [smile]

Its looking good so far.
Advertisement
Yann, your screenshots look really impressive and it looks like a feature packed project you're working on. I wasn't going to say anything because everyone else is saying they'd use it, but in terms of adopting a closed-source tool (not specifically your one) that I would use daily in Linux at home/work, I'd have to say I'd rather not unless I really had to. By this, I mean I would probably only use it if there was no other free open-source tool available to me that provided the same essential functionality.

It looks like you're trying to replicate MSVC and that was written by a huge team of well paid developers. KDevelop can be configured to act in a similar way to MSVC, but various posters here said they didn't like it. Anyway, KDevelop is a combination of tens of thousands of man-hours. Eclipse will have taken even more than that. My issue with closed-source projects like this, is that you'll eventually lose interest, stop fixing bugs and stop adding features and the project will die because nobody can pick up where you left off (this is what happens to the vast majority of projects).

Even if you did manage to develop it for 5/10 odd years until it was the best IDE around, I'd say you'd be likely (rightfully) to start charging money for it instead. With projects like KDevelop/Kate, I know they're always going to be free, so I'm happy to use them and help it's developers by sending off the occasional bug report because in the long run it'll make my life and other programmer's lifes better. Since I use all free tools already which have all the advantages of free software, I don't have any desire to start adopting closed tools that might only be a bit better than what I have at the moment.

Also, you might think that "exotic" Unix variants is a funny topic, but I've had to work on Sun boxes, BSD boxes etc. There's no way I can rely on using a closed-source tool for everyday use unless I know it's going to work anywhere I go (I don't want to have to switch tools all the time). There's nothing to say that you'll become a lazy maintainer and not create binaries for most platforms. If it's open, contributers can help you do this.

I've used MSVC for several years, switched to Linux for several years and have just started using text editors (like Kate which has syntax highlighting for most languages and auto-completion) with Makefiles to handle complex build systems. I work with multiple languages so I don't have any desire to learn a different IDE for each one. This way I can use one approach for all projects. MSVC is nice, but I really don't miss it. Yes, it's a nice IDE, but I really can't think of anything that it provided that was essential to me.

I'm honestly not trying to pan your project. My above views would hold for any closed-source programming tool. Good luck though, it looks like a nice project.
Quote:
Original post by seanw
It looks like you're trying to replicate MSVC

Well, no we don't intend to replicate MSVC. MSVC is a very complex and feature packed product, but many of those features don't make a lot of sense if you take them out of the Windows framework. We are trying to replicate a subset of MSVC: the one that lets you easily and visually develop software without having to care about makefiles, autotools, and such things.

Quote:
Original post by seanw
and that was written by a huge team of well paid developers. KDevelop can be configured to act in a similar way to MSVC, but various posters here said they didn't like it. Anyway, KDevelop is a combination of tens of thousands of man-hours. Eclipse will have taken even more than that.

And especially on the later one, I'd say that easily 50% of those manhours (if not substancially more) are wasted in pure bloat. I have many years of large scale software development experience, yet I fail to understand how so many manhours can produce such crappy products. Not to bash them, if KDevelop or Eclipse suit your needs, then that is good. But with correct organisation and the right tools, they could've made something far more advanced given the same amount of resources.

Quote:
Original post by seanw
My issue with closed-source projects like this, is that you'll eventually lose interest, stop fixing bugs and stop adding features and the project will die because nobody can pick up where you left off (this is what happens to the vast majority of projects).

Well, MingW Studio died quite some time ago, yet people continue using it. This IDE isn't going to be a long term project. We have a very well defined feature list, and we aren't implementing anything beyond those features. We're trying to bring the IDE to it's final state within a couple of months. After that, it's fixing bugs only. Maybe there will be a version 2, maybe not. But there will definitely not be a version 1.01, 1.2, 1.31b, 1.4.1c, etc, as with so many open source projects around. We will treat this product as we do treat our commercial releases - only that it will be free.

Quote:
Original post by seanw
Even if you did manage to develop it for 5/10 odd years until it was the best IDE around, I'd say you'd be likely (rightfully) to start charging money for it instead.

I'm not interested in money, and neither is Alex (the other guy on the project). We have enough of it. And we won't put more than two months into this project. The joys of rapid application development with an existing framework :)

Quote:

Also, you might think that "exotic" Unix variants is a funny topic, but I've had to work on Sun boxes, BSD boxes etc.

I've done a lot of work on Irix and OS X. Each platform is different, and each should have its own set of well adapted tools. That's how I see it - our IDE targets the x86 Linux market only. OS X, Irix and BSD would be trivial to add, since our framework libs are already available for all those systems. And since they are an integral part of our commercial applications, they are very well maintained anyway. But there won't be a Solaris, HPUX, Amiga, or whatever other exotic OS version.

Quote:

There's nothing to say that you'll become a lazy maintainer and not create binaries for most platforms. If it's open, contributers can help you do this.

That's not the way we manage our development. See, I come from commercial software engineering, so I see the whole development process with different eyes. I think this whole "contributers can help you do this" as the main reason of bad open source software quality, since it dilutes and disorganises the project. The project will not be maintained, except for bug fixes. Each time a service patch will be given out (and I don't expect too many of them, after all it's just an IDE, not an OS), it will be automatically compiled to all platforms through the same project management system we use for our commercial software. There won't be any nightly builds, or such things.

Quote:

I'm honestly not trying to pan your project. My above views would hold for any closed-source programming tool. Good luck though, it looks like a nice project.

Thanks :) No problem, you're obviously entitled to your opinion.
Quote:
Original post by Yann L
I try to statically link as much as legally possible, but there are license problems with LGPL libs. They cannot be statically linked into closed source software, so I'm stuck with using dynamic libs.


Maybe you should package some dynamic libraries with the app then. This way people that want to can replace them with other versions if necessary but by default they have a version tested by you. For example ut2003 did this with SDL and OpenAL.
seanw,

those are good points. Personally, I would fork out couple of bucks for IDE.

yann,

in vc6(sorry, I don't have .net) I click on a text line and hit a bookmark button and a blue line will appear across the page. I can put more of these bookmarks onto each page then hit fore/back bookmark navigation buttons to go from one bookmark to next. The only bad thing in vc6 is that these bookmarks go away when you close down the application. I would like them to remain showing for all opened windows at the time the app closes. Most recently used workspace list under File menu is also handy. I think vc6 limits it to 10 entries which I set for 6 usually.

Anyways, I don't want to fork over couple thousands for Qt. So I would rather you embrace GTK+ and related tools. How is bakery compared to the wxWidgets? It might be a better idea to just go with glade/gtk+/bakery/etc. combo to keep sanity since I might skip wxWidgets anyway for game engine work. It would then be confusing for me to work in both wxWidgets and Gtk+. I rather learn only one api set. Speaking of gui frameworks there is also Fox toolkit out there. It reminds me of wxWidgets.

Ok, so that's what I'm like. Probably not too different from other game devs. Coming back to what sheanw said, it might be a good idea to setup some kind of a plug in system or open the IDE in some way to allow others add things to it if you're not going to devote too much time to it. Maybe you mentioned it already, so sorry.

This topic is closed to new replies.

Advertisement