Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming

What Tools Do FLOSS Developers Need? 310

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?"
This discussion has been archived. No new comments can be posted.

What Tools Do FLOSS Developers Need?

Comments Filter:
  • by sopssa ( 1498795 ) * <sopssa@email.com> on Wednesday January 20, 2010 @02:09PM (#30834906) Journal

    Visual Studio is the favorite IDE for lots of programmers and without a doubt still the one thats considered best there is.

    However I've started doing some Linux programming along with other languages that could be developed on Linux (PHP, Delphi/Kylix). However the IDE's I've tested dont seem to compare with Visual Studio or even Delphi's IDE. In most cases they're mostly somewhat advanced text editors and building and debugging is more inconvenient. They just dont feel like complete IDE's where you can do your work. Is there such professional suites available on Linux and if not, what could be done to improve the existing IDE's and tools to that level?

    • by Akido37 ( 1473009 ) on Wednesday January 20, 2010 @02:12PM (#30834946)

      Eclipse doesn't work for you?

      • by Mongoose Disciple ( 722373 ) on Wednesday January 20, 2010 @04:08PM (#30836702)

        IMHO, Eclipse is a great example of what's wrong with Open Source software from a usability perspective -- to be reasonably productive with Eclipse, you probably need a bunch of plug-ins, a bunch of time tweaking the preferences, someone who's spent years using it, and probably all of the above. Possibly you also need twice the memory (or more) of just about any other option to run at a reasonable speed for no apparent reason.

        I'm interested in coding; I'm not interested in spending a bunch of time fighting my IDE to do it, and when I think about the years I spent using Eclipse, that's basically what I remember. Other people have a different experience with it and I won't say they're wrong, but that's what it was like for me.

    • Re: (Score:3, Interesting)

      Eclipse is a fairly good ide, it could use help with C/C++ development tooling.
      gdb could stand some love, especially so that it can better be hidden behind a UI.

      • Re: (Score:2, Insightful)

        by Microlith ( 54737 )

        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.

        • by sbeckstead ( 555647 ) on Wednesday January 20, 2010 @02:42PM (#30835456) Homepage Journal
          There's nothing special I've seen in Visual Studio's debugging that couldn't be done with DDD
          This must be some new meaning for the word "done" that I have previously been unfamiliar with.
          Can you edit and continue when working with C++ or C#?
          Making changes on the fly is one of the premium features of Visual Studio and I have never seen it in any other IDE. True I haven't used all of them yet but I've been thru netbeans, eclipse and a few others. The integration of the IDE with the debugger is far more important than the utility of the debugger. I have seen this with python, lua and several interpreted basics but not with C++ or C#.
          • Re: (Score:3, Informative)

            by Microlith ( 54737 )

            Can you edit and continue when working with C++ or C#?

            While it is an interesting feature, changing code at runtime always seemed suspect to me. I don't know if it's possible at all in Linux, and I know it's not possible in Windows if you're targeting a 64-bit platform.

            • Re: (Score:3, Interesting)

              by gbjbaanb ( 229885 )

              Its not so suspect, its just convenient. When you're running your app through the debugger, and find a piece of code that doesn't work, quite like you expected, you can change your current statement position, change the offending code and run through it. Its no more suspect than altering a variable value whilst debugging.

              Of course, once you're done you recompile and run through again to make sure.

              I think it works by re-compiling and linking your changes at the end of the image, and then adding a jump to the

      • gdb could stand some love, especially so that it can better be hidden behind a UI.

        THIS.

        Except for the second part of that.

        I want debugging tools. My personal favorite would be a heap explorer - something that maps a core dump to pointers, so I can map out the entire content of memory in my core dump visually and walk through it sanely. For example - I could look through a core dump and say hey, the buffer overrun that appears to have caused this belongs to this piece of memory - which follows this peice of memory over here which makes me think that my block allocator chewed up stuff it

        • by jgrahn ( 181062 )

          Also - BETTER THREAD SUPPORT IN GDB. Debugging a threaded application is pure and absolute hell in gdb.

          s/ in gdb//

        • by http ( 589131 )

          Whenever I see this construct:

          something something yada yoda yeda

          THIS.

          I have to ask myself, did the poster think that after quoting and highlighting a particular thing from the original post, we still wouldn't understannd that they thought it was an important part?

          Seriously, the "THIS" meme has to die, and I don't care how ugly it gets or how loud it wails, as long as I get to say "I am thankful for its end." Next time, I'm using mod points.

          • by Splab ( 574204 ) on Wednesday January 20, 2010 @05:35PM (#30838012)

            I have to ask myself, did the poster think that after quoting and highlighting a particular thing from the original post, we still wouldn't understannd that they thought it was an important part?

            Seriously, the "THIS" meme has to die, and I don't care how ugly it gets or how loud it wails, as long as I get to say "I am thankful for its end." Next time, I'm using mod points.

            This!

    • by SSpade ( 549608 ) on Wednesday January 20, 2010 @02:17PM (#30835018) Homepage

      I'll take Qt Creator [nokia.com] over Visual Studio for C++ development any day.

      • Re: (Score:2, Informative)

        by teeks99 ( 849132 ) *

        I tried this out for the first time a couple weeks ago (after several years of Visual Studio usage) and was very hopeful...however I left feeling that it wasn't quite finished all the way. I got the impression that it was just a bunch of tools glued together with a rapid-development type GUI framework.

        That said, I was quite pleased with it overall. I definitely will strongly consider using it next time I start a project. For my two cents, I think this is a great example of what the author is looking for,

      • Re: (Score:3, Interesting)

        Qt Creator has very good visual design tools, but the editor is lacking in things like code completion compared to VS. Even more so if you compare latest development versions of both rather than stable releases - VC++2010 can do code completion correctly on the template metaprogramming mess that is Boost.Lambda, for example; the only C++ IDE that can match this, from what I've been told, is KDevelop 4.

    • Re: (Score:3, Interesting)

      by WillAdams ( 45638 )

      Try an Interface / Project Builder replacement instead:

      http://www.gnustep.org/ [gnustep.org]

      InterfaceBuilder.app clone:

      http://www.gnustep.org/experience/Gorm.html [gnustep.org]

      ProjectBuilder.app clone:

      http://www.gnustep.org/experience/ProjectCenter.html [gnustep.org]

      NeXT used to charge $4,995 / developer seat for such tools --- now one can get them for free (even w/ a Mac, one can get a free on-line membership in the Developer's Connection and download the latest version)

      William

      • Speaking of which, are there any of the original videos floating around demonstrating building an app using InterfaceBuilder? I seem to recall one where Jobs developed a contact management app from scratch using point and click... but it may not have been Jobs.

        • by Rysc ( 136391 ) *

          It was Jobs and (IIRC) he was doing a NeXT 4.0 promotional video.

          Something more recent which uses the actual GNUStep IB would be nice.

    • by cjcela ( 1539859 ) on Wednesday January 20, 2010 @02:32PM (#30835292)
      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.
      • Code::Blocks is what you are looking for ;). http://www.codeblocks.org/ [codeblocks.org]

      • I'm actually an xcode fan. I hated it at first, but now I love it.

    • by Kjella ( 173770 )

      At least if you're doing C++/Qt, then nothing beats Qt Creator... I had hope for KDevelop 4 for a while, but it seems to take forever and meanwhile Qt Creator has fixed most of the things I missed. I haven't done any really big scale development but at least for cranking out smaller tools it's fast and easy with graphic drag & drop ui designer, autocompletion and such that I expect and Qt is near a complete platform with IO, network, databases, xml, whatever. I generally don't have any other deps except

    • I'd agree with this statement. I think the closest thing I've found to a slick IDE in Linux is QT Creator, which has their fantastic designer, a great editor, etc. all in one package. Obviously this is only good for certain things. NetBeans is also quite good, and considerably more flexible. At a distant third is eclipse, which is most flexible of all, but terribly clunky.

    • Re: (Score:2, Informative)

      by HeadSoft ( 147914 )

      Code::Blocks is a good one for Linux, it's not quite Visual Studio but it has most of the same features, the ones you actually use on a regular basis. I haven't tried the Windows version, but I know one exists as well.

    • by Dadoo ( 899435 )

      I hear this about VS a lot. As someone who has never used it, let me ask, what is it, specifically, about VS that's so great?

    • Re: (Score:3, Interesting)

      KDevelop 4 is shaping up to be a very good IDE. Probably worth to try out a beta if you're into FLOSS. Does PHP (I hear) and C++ (I know) quite well. A few stupid corner that are not quite there yet, but most of the hard stuff seems to be working.

    • I agree with regard to putting GUIs together. Typing the code for placement and properties of your standard widgets by hand is so much more tedious than just dropping them on the form by Drag&Drop. Also, itegrated debuggers are nice.
      But Visual Studio is by no means the only IDE to offer that functionality. Borland Delphi, which was released roughly at the same time, provides the same benefits. So you could as well ask for a Delphi replacement ;-)

      Fast forward to today:
      Visual Studio is admittedly quite go

    • Wow, I must be getting old. I still use emacs for all my coding and memory dumps for my debugging. When I started using emacs, the vi guys in the group would mock me for being a wimp.

    • Re: (Score:3, Informative)

      by V!NCENT ( 1105021 )

      Code::Blocks is what you are looking for. http://www.codeblocks.org/ [codeblocks.org]

  • hmmm (Score:4, Funny)

    by Anonymous Coward on Wednesday January 20, 2010 @02:10PM (#30834914)

    A dentists chair and some teeth?

    (bad joke i know)

  • by bramp ( 830799 ) on Wednesday January 20, 2010 @02:13PM (#30834952) Homepage
    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.
    • I agree. If you're going to volunteer code, then program what you need or enjoy.

      Documentation [docforge.com] is another area where you can contribute whatever you know best.

    • by richlv ( 778496 )

      this is the best first advice. but maybe the submitter needs some hints on possible areas :)

      one thing that i find missing is a decent manpage editor. several standalone projects have died, so maybe creating one as a plugin for an existing software would be best (maybe export plugin for oo.org or so).

      as submitter mentioned documentation and translating, helping out with projects that are meant for documentation writing and localisation is a decent choice - for example, i've heard that pootle web translation

  • Several sets of dentures and a floss waxing machine, for starters. And can we please have some flavors besides "minty fresh?"
  • by sznupi ( 719324 ) on Wednesday January 20, 2010 @02:18PM (#30835050) Homepage

    Because we need someone to finally give us proper editor on top of the OS we use.

  • Seems to work in the real world when you want to attract talent.
  • Documentation (Score:4, Insightful)

    by TopSpin ( 753 ) * on Wednesday January 20, 2010 @02:20PM (#30835072) Journal

    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)

  • Documentation (Score:5, Insightful)

    by Anonymous Coward on Wednesday January 20, 2010 @02:20PM (#30835076)

    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.

    • by jgrahn ( 181062 )

      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

      You mean poll(2)? It's not Linux's job to provide free tutorials for programming against the POSIX APIs. That's what you buy "Advanced programming in the Unix environment" for.

      If you're referring to the poll(2) man page, don't expect it to be a tutorial. (There is a select_tut(2) man page, but that's a rare exception.)

      • I think he means whether to use poll, epoll, select or umm... the other one.

        oh yes - kqueue. so which one's the right one to use? Now I've remembered them, I can can google for examples/tutorials/commentary and so forth. Sure, its the user's responsibility to educate himself enough as to which example code he'll find is good and which is poor.... but that's time that could be better spent on the next problem. If the documentation provided such an example itself everyone would be more productive and there'd

    • It's not just documentation, it's specifically the "how to do X" kind of documentation, as opposed to reference-style "what function F does". For many FOSS libraries and frameworks out there, the only thing they have is Doxygen-generated class/function reference. Occasionally, you also get a very brief introductory tutorial. The result is that one often has to sift through the list of classes and functions, trying to guess which one is relevant to the task at hand from its name - not a very productive way t

  • FLOSS (Score:3, Informative)

    by Anonymous Coward on Wednesday January 20, 2010 @02:21PM (#30835090)
    FLOSS stands for "Free/Libre Open Source Software". I have not seen it with the "Libre" added in there before, so I'm sure others have not as well. Great job spelling it out the first time you use it, Slashdot.
    • This is the first time you have seen FLOSS instead of FOSS? How long have you been here, a week?

    • Half the time my mind decodes it as "Free/Lossless Open So--" before screeching to a halt and restarting the acronym reading...

  • by andy753421 ( 850820 ) on Wednesday January 20, 2010 @02:26PM (#30835172) Homepage
    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..
    • > would need to be implemented by all the different SCMs

      You could implement a proxy which would translate the commands and answers from one system to the other. You use what ever client you like and connect to the proxy and proxy would connect to the real server.

      [client you want to use] --- [proxy] --- [server your project manager wants]

      But be prepared to find problems I couldn't think of.

    • You can actually use a lot of them against the others repository. E.g, hg works fine against a git repository. So just use git on the server (seems to be the one with most features there) and let people use whatever client they like.

      Not that there is any good reason to prefer git except for one thing, which brings me back on subject: We really need a libgit(2). Development has essentially halted on this.

      • I've noticed this as well, at least using git against other repos (git-svn, git-cvsimport), but it's always seemed like a kludge to me. I haven't looked into it, but I've always assumed that git-svn/git-cvsimport/git-* were specific to git, which means they would need to be reimplemented in hg, mtn, etc. A common format for pulling changes would mean you'd only have to implement one other protocol besides the native protocol.
    • 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..

      You can't have a common network protocol because of some fairly fundamental differences (rename tracking, use of crypto, concept of what a "branch" is, etc). What you can do, is have a common minimal-info dump format (for example, there's work to make monotone read/write git-fast-import data) that allows for one-shot, one-way data migration...you could probably extend this to allow for repeated pulls or maybe even bi-directional use, but you'd need code specific to each pair of systems and the people on bot

    • by jgrahn ( 181062 )

      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.

      I can't help reading that as "Git, mercurial, monotone, etc. are all ready nice, and do pretty much the same thing, but I want to use a different one which I think is much better and which noone actually *working* in the project wants to use". If you think they all do the same thing, why not use the one other's are using?

      • Actually, you're pretty close there. Most of the projects I've checked out I only look though, or only make very small changes or bug fixes. In the past I've used cvs, svn, git, hg, and mtn. There's a bit of learning curve with each of these. Conceptually it's not too hard, but I have a hard time keeping track of whether it's `foo checkout --head' or `foo revert', `foo log --max-count' or `foo log --limit', etc. If you can keep track of all of these, then good for you, but I can't and would rather not try.
    • Re: (Score:3, Interesting)

      by greg1104 ( 461138 )

      The fundamental unit of all SCMs is the changeset. It's possible to convert between the various changeset formats using a tool like Tailor [arstecnica.it]. So you could build a useful prototype of something like this by running incoming and outgoing changesets through that sort of tool to convert to the native format of the server SCM. You can convert them to the native format on the server, so no need to invent a new distribution protocol. People end up building one-offs for this sort of thing out of simple shell scri

  • Documentation (Score:3, Interesting)

    by Anonymous Coward on Wednesday January 20, 2010 @02:28PM (#30835202)

    If there is one thing FLOSS regularly needs help with, it's documentation.

    I give you OpenSSL: One of the most well known libraries, and the documentation is very lacking. How about some better examples? How do I use PSK? How about a quick start guide?

    So many projects have this problem: They have "API documentation" which is nothing but a list of what the individual functions do with no indication how they get used together. Or they document functions but not data structures, etc. So if you really want to help, write documentation.

  • I'd like a RAD tool as easy and secure (comparatively) as ORACLE's Designer product to build web app front ends to databases. This functionality should allow for nested queries, PL/SQL, triggers, printing, lookups, commits, rollbacks etc. etc. without all the hassles of having to get deep into the programming to make it happen. It should also allow database roles to be easily implemented with a full suite of tabbed forms and reports. Think MS ACCESS for the RAD part with the power and quality of PostgreSQL
  • I think we're pretty well covered as far as development tools go. The problem is that a lot of them aren't terribly well polished and the documentation -- if it exists at all -- is often terrible.

    Find a project you like but that needs work and help bring it to maturity. Or go looking through the plethora of abandoned projects out there for something that looks promising and bring it back to life.

  • I can ... translate to my native language.

    Bootstrap... translate docs and error messages for developer tools, so your fellow native developers can work in a native language.

    And when you find stuff thats too icky to translate, rewrite and feed it back upstream.

  • I think all you really need is a good wax applicator and some really good string. Maybe a way to apply flavor would be nice too.
  • QtCreator (Score:4, Interesting)

    by scorp1us ( 235526 ) on Wednesday January 20, 2010 @03:25PM (#30836120) Journal

    Yes, I'm a Qt Fanboi, but hear me out:
    Qt is free (LGPL), multiplatform (support all users), fill-featured and clean.
    QtCreator (new) is the Qt IDE, with tons of support and integrated help, including an integrated gdb (or other) debugger.
    If you're on Python, then wait a bit for PySide or get PyQt now.

    I feel I can move mountains with just one download the sdk [nokia.com]

  • "FLOSS" sounds like what I use to clean my teeth.
  • I love that tool for my windows editing, if something that replicated its functionality that was as easy to use and learn existed for *nix world...I'd be in heaven.

    Yes there are lots of editor tools, but I have yet to find one that works as easily (and intuitively at least for me) as UltraEdit. I have never had to access the help for this tool its that easy, but at the same time hugely powerful!

    Clone that! Make it work native in KDE! Yeah that would help immensely.

  • A working static analyzer. Clang [llvm.org] is almost there but generates way too much cruft to wade through.

    More mature fuzzing tools would be handy too.

  • Linux development seems to still be stuck to shell+Vim/Emacs+gdb for many. It's actually kinda interesting, given that decent IDEs have been available for a long time - Eclipse CDT, NetBeans, KDevelop, and recently Qt Creator. Of those, Qt Creator seems to be the easiest to just start using (even more so for people with past Visual Studio experience, as it uses many familiar shortcuts and layout), and also best-integrated - UI designer, debugger, documentation etc. This part is good.

    FOSS IDEs also tend to h

  • Come help work on SCons! [scons.org]

    SCons is an Open Source software construction tool—that is, a next-generation build tool. Think of SCons as an improved, cross-platform substitute for the classic Make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache. In short, SCons is an easier, more reliable and faster way to build software.

    It's under active development, and it's the best way to build C, C++, LaTeX, and lots of other types of projects. Build scripts are 1

  • I'd love to see a static code analysis tool for C/C++ that was as good as FindBugs.

  • I doubt there's a person alive who can substantially change FLOSS development - the tools have been there for nigh on 40 years. If there's a problem I can almost guarantee that someone would've fixed it already.

    I suspect documentation and translation would be the biggest help - if you're looking for "bang for your buck^Wtime", go with this.

    If it's code you're looking to contribute, I don't think you (or any one person) can really do anything more than incremental improvements. Don't get me wrong, incrementa

  • Being able to step backwards through code while debugging would be nice...
    Here are some google tech talks / presentations...
    http://www.youtube.com/watch?v=LpfmKIxusZY [youtube.com]
    http://video.google.com/videoplay?docid=3897010229726822034# [google.com]
    And there's a debugger here (which I should try out sometime...):
    http://www.lambdacs.com/debugger/debugger.html [lambdacs.com]

    Still, I haven't seen this being available with many different platforms.

  • by sgrover ( 1167171 )
    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 co
  • Pick a large, active open-source project and try to help with the problems its developers have. You will be loved.

    Here are some of the problems I'm aware of within the Mozilla project.

    Speed of development

    'make' doesn't scale. An incremental build, even with no changes, takes at least a minute. (In contrast, just checking whether any files have changed takes 'hg' less than 10 seconds.) Maybe help us move to 'scons', or help improve 'pymake', or just help us get our dependency generation right.

    'ld' is slo

Get hold of portable property. -- Charles Dickens, "Great Expectations"

Working...