What Tools Do FLOSS Developers Need?
An anonymous reader writes "I am a free software developer; I maintain one relatively simple project written in C, targeted at end users, but I feel that I could contribute something more to the FLOSS community than my project. Instead of focusing on another project targeted at end users, I thought that I could spend my time working on something FLOSS developers need ('Developers, developers, developers, developers!'). The question is: what more do FLOSS developers need from existing development tools? What would attract new developers to existing FLOSS development tools? Which existing development tools need more attention? I can contribute code in C, Python and bash, but I can also write documentation, do testing and translate to my native language. Any hints?"
You should code whatever you need. If you code something others need, you will either do it wrong, or get bored. Do what you know best.
GDB is a nice debugger for C programs and sometimes it is even tolerable as a C++ debugger. Nonetheless, it is only tolerable to the extent you avoid using the STL and you don't happen to rely on any external library. So I have to say that a C++ debugger is almost desperately needed in the FLOSS world.
I'll take Qt Creator over Visual Studio for C++ development any day.
Between Redhat's Insight tool and DDD, it's already well hidden behind UIs. Sure they aren't shiny and glossy with anti-aliased type, but they do the exact same job that the VS debugger does with allowing you to step through the code.
In fact, there's nothing special I've seen in Visual Studio's debugging that couldn't be done with DDD.
API references aren't enough. Need rational, best practices, meaningful examples and references. Tutorials aren't terribly useful because they are inherently limited to cases that are easily teachable. OpenSSL is a fine specimen; crucial parts of the API are omitted from the current, maintained documentation. These can only be found in the archived SSLeay documentation, and that amounts to a spotty collection of notes.
(yes, I've paid for the books, too)
Lurking at the bottom of the gravity well, getting old
My biggest problem with much of OSS is that the documentation is terrible. Try figuring out what the *right* way to do a "poll" type call on Linux is, or how to configure clustering with Geronimo and you will quickly realize that outside of reading the code there is almost NO good documentation on how to do more advanced things with open source software.
Anyone that claims they aren't hasn't bothered to use the tools available to them. It's entirely possible to get equivalent context-awareness going in VIM/Emacs, but since they aren't packaged as a whole people write them off as being "obsolete" or somesuch nonsense.
Last I looked KGDB worked quite well, and it behaves in a very similar fashion to Windows when being debugged.
You mean GDB? What "new things" could be added?
Git, mercurial, monotone, etc. are all ready nice, and do pretty much the same thing, but it's annoying to have to use the one that the project leader decides on. It would be nice (if it's possible) to be able to pick which one you want to use as a client, and have it work with whatever the project manager wants to use for the upstream repository. I'm not sure what all this would encompass, probably some common distribution (push/pull) protocol would need to be implemented by all the different SCMs..
I agree. Visual Studio is by far the best out there, and it is painful not to have something comparable available in other platforms (I currently use OSX/Linux). I've been steadily moving away from proprietary tools and frameworks for the last 3 or 4 years, and it is a painful process. Eclipse is mostly good (excellent for Java), but when developing in C++, its debugger is not great. Same goes for Netbeans. They are 90% there, but the remaining 10% is so frustrating that makes large projects a pain. I am considered moving to Codelite instead, which feels to me a bit more like Visual Studio 6, and has much better debugger support for C++. On the down side, Codelite tends to be quirky on OSX.
People who whine and bitch, saying things like "FOSS will never take off if it doesn't conform to me and only me" is why developers say fork it or fuck off. You're not contributing anything, you're just being a nuisance.
Developers get all sorts of random demands from petulant users. If we patiently explained to each and every one of them why their suggestion either isn't a priority (or even would be detrimental to the project) we wouldn't be developers because that would take up all our time.
You won't get anything different from closed source developers, except that you wouldn't manage to talk to them at all. They have a bureaucracy to intercept you, and tell you, politely, to fuck off.
Foss never takes off? How about:
Your TV
Your DVB reciever?
The internet that you are on, with your supscription to you ISP servers that probably run FOSS?
How about the global economy? The servers that are keeping trading alive, may they not be run by FOSS for the majority of them?
How about you webapps?
Game servers that you play your games on?
The computer in your car?
You phone maybe?
Your radio?
Webkit, GNU tools and whatever Apple uses in Mac OS X, "The most friendly computers"
Etc, etc, etc...
In other words: You don't have a clue...
Here be signatures
I've yet to find a decent tool for data modelling. Something akin to CA's ERWin. The best I've fond thus far is pgDesigner, but even that is a kludgy GTK interface and only works with PostgreSQL. I find using DIA for pretty much anything is an exercise in self inflicted torture. To be able to build a database design visually, see the relationships at a glance, automate the generation of the create/alter scripts, etc. This would make business coding SOOO much easier and faster. And it even helps to communicate the application design to new coders to the project who do not understand where data is and why. (Good documentation is one thing, but a picture speaks a thousand words....)
I suspect it's more that both hold because of the different mindset that each platform engenders. The Windows command line is mostly crap because the attitude in the Windows world is mostly that it's unimportant, because GUIs can accomplish the same thing. And that attitude leads people to make advanced GUIs.
In other words, it's the same thinking of "we should do this in a GUI" that leads to both situations, not someone sitting down and thinking "I want to write this as a command line tool, but that'll make it a pain to use, so I'll write a GUI instead."
I've seen it written in many places that that the Microsoft-centric DirectX/Direct3D have "better" tools for development of professional-level games than OpenGL. Or perhaps not necessarily "better", but things where MS has released some auxiliary tool that has no open-source / OpenGL equivalent. Or are much easier for a budding developer to just get in and play with. I wish I could recall details off the top of my head, but http://tech.slashdot.org/story/10/01/08/1830222/Why-You-Should-Use-OpenGL-and-Not-DirectX and the related reading may provide a little more insight.
Most developers of FLOSS applications code in C or C++. The Visual Studio tools are not as appealing for those languages as for, say, C#. Try reading what Microsoft uses for their internal Windows C/C++ system level programming. It is not Visual Studio, nor is it Team Foundation Server.