Jump to content
  • Advertisement
Sign in to follow this  
Glass_Knife

[java] open source code at work...

This topic is 5047 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Ok, so I'm at work, and I'm working on a small GUI that uses a little networking to talk with a server. I need to use a thread in order to keep the GUI from freezing when the networking stuff is slow. I looked around on the net, and found this... http://foxtrot.sourceforge.net/ I went ahead and spent a little while playing with it, and created a test app that uses it. One of my co-workers wandered by, and I showed him what I was doing. Then he said, "You shouldn't use that. You shouldn't use open-source stuff because it could be buggy." Well this bothered me a bit. It seems to me that trying to write everything yourself would take to long to actually get any work done. I have not been a programmer for long, but the way I see it, if the new version of foxtrot has been out for a year now, and there are no bugs listed, then thats good to me. Some of the stuff I've written hasn't been tested by hundreds of people for the last year. But I still use it. Anyway, if you have used this, I would like to know. It seems good to me. If you haven't heard of it, then check it out. And I'd like to know what you think about my co-workers reaction...

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
You appear to be starting a thread about open source.

This is nothing to do with java.

FWIW, statistically speaking the vast majority of open-source software costs more time to use in a production environment than it saves - if you have good, skilled devs it would be cheaper to roll your own for your current project.

What's the requirement to start an open source project? Nothing more than a PC and a net connection. So, the lowest quality threshold is 0 (and it shows).

Further, lots of open-source software splits for no technical reason (they do it for political reasons instead), thereby reducing the progress and correctness of all the competing implementations.

All of which is not to make a point of my own, but just to through out some theoretically valid explanations for your co-workers statement. I know people who deploy open-source software in major commercial environments. I know similar people who would die before even considering it. None of them are ill-informed about open-source - just as many of both groups use open-source software personally, just as many run linux - but the biggest differences are:

- do you have the cash to afford not using open-source? (in that case almost always you don't use open-source, because if you can afford something commercial it's *usually* light years ahead of the best open-source alternative)
- precisely which open-source project are you thinking of using? (When the option is MySQL an awful lot of people deploy it, assuming money was a factor [if not, they would mostly deploy Oracle, without even stopping to think about it]. Ditto OpenOffice, where there *is* no alternative cross-platform software other than StarOffice (which, of course, is the same software) - so the difference between paying and using open source is miniscule. And many other shining examples where a particular open source project shines).

For instance, I bet that if you'd pulled up a major open-source project, like Apache, he wouldn't have had anything bad to say (well, apart from the fact that Apache is very badly designed and hence historically very slow :P - but these are problems of the design, not the fact it is open-source)

Share this post


Link to post
Share on other sites
Your problem is:

"Not invented here."


A common fallacy!

"As with other ailments, the first step in curing NIHS in ourselves is to admit there is a problem. Some organizations and individual developers seem quite content to re-invent the wheel over and over, congratulating themselves on their innovation at the same time."


See, for example: http://www.developer.com/open/article.php/3338791

A common sense (hopefully) explanation I use is the following:
There are libraries/classes/packages out there made by people who
a) have maintained them for quite a while now
b) actually enjoy coding such routines
c) gathered significant experience doing what they do
d) have put a lot of research into their work
e) often offer it for free, submitting it to a community review process helping the product mature

NOT using them will yield:
a) more expenses for additional development time
b) setbacks in developer motivation, since you assign tedious chores to them
c) higher probability of bugs (you were hired for your skills to do project X, not for a library that does Y)
d) sub-optimal solutions, most likely
e) fewer features
f) less compatibility
g) less portability (just think MFC or VCL versus FOX toolkit in C++)

It's true, Open Source software might be 'buggy', especially when you deal with 0.x versions, but you get free updates or you can make them yourself (since the source is open), and while a closed source team are the only ones who can investigate bugs and make patches, in an open source team, everybody can!

Closed source software is often just as buggy, and in those cases, the bugs are usually crippling, because you have no chance to continue your work before the other company decides it's time for a patch. (note that since you already paid for the product, and you won't pay for a patch, they have no economic motivation to do so when it's only regarding you!)

Not Invented Here is BAD!

[Edited by - Thygrrr on November 27, 2004 8:24:02 AM]

Share this post


Link to post
Share on other sites
People who dismiss open source out of hand are too lazy to investigate the particular product you are trying to use. As Thygrrr said, you have just as much good open source software as bad, the same as commercial products. The big thing to look for is to see if it is actively maintained and how long it has been around. Any open source software goes through rigorous testing by the community that uses it and is usually more up to date than commercial products. You just need to investigate each choice separately before deciding.

On another note, look at the new java.NIO package for better network APIs. Checkout The Java Games Factory articles section. There is an article on how to use it for networking, without threads.

Share this post


Link to post
Share on other sites
Quote:
Original post by Thygrrr
Your problem is:

"Not invented here."


stuff


Best worded argument for open source I've ever heard.

Share this post


Link to post
Share on other sites
Just a thought here.

I've used several open source packages and find the whole thing interesting from personal experience. Just for Java I have used the following Eclipse, NetBeans (though I'm not sure if that's open source) Xerces, Xalan, log4j, JUnit, etc. The set of tasks which these technologies provide appear disjoint, but the potential for combination, strictly in my opinion is only limitted by ones imagination. This however is not the virtue saought after during developement or under time and budget pressures. However, interesting nontheless.

What I would suggest is perhaps development of an open source tool that assists the developement team to understand the open source technology they wish to employ, and even build. Something like Posiedon, or Enterprise Architect, but with better round trip from UML to code, and back again. Most critically refactoring that also warns, or updates tests. The idea is to combine these seemingly disparate technologies, that are individually tested and deveoloped in the hopes of combining them into an environment for high levels of productivity.

Though the whole world of code generation is somwhat myth-like. And I would be the first to say that I don't particularly like the route most code generators take with the esoteric code they sometimes generate.

However it would be cool to take something big like Eclipse, or Xerces, or even Nebula2 and run a program that decomposes the entire thing into UML. Sounds fictitious, but it has been possible for years.

Its something I have been working on actually -- on the side, of course.

L-

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Lucidquiet

However it would be cool to take something big like Eclipse, or Xerces, or even Nebula2 and run a program that decomposes the entire thing into UML. Sounds fictitious, but it has been possible for years.

Its something I have been working on actually -- on the side, of course.

L-


It's been available for free for some years? There's lots of Eclipse plugins that do round-trip UML programming...and, since it's going into eclipse, you get the benefits of the almost-good-enough eclipse formatting system (which is very good compared to most).

Or am I missing something?

Share this post


Link to post
Share on other sites
I've use Open Source products all the time (at home and at work), and don't generally have problems with them. In fact, the people I work for are usually pretty happy when I find a free solution to a problem (remember, an in-house solution is not free, they have to pay programmers). Just like in the commerical world, don't use something without checking its version number, and features. Just make sure that your Open Source solution is

1) The version number is >= 1 (at home you can try v0.x, but at work I'd say stick with stuff that is offically out of beta)

2) There is a good looking web-site with information about the project, and possibly a release schedual.

3) There is some type of community forum that is active.

If you're really worried, just ask your boss. Most likey, the money saved by downloading a ready built solution will outway in possible shortcommings of the software.

Share this post


Link to post
Share on other sites
Quote:


It's been available for free for some years? There's lots of Eclipse plugins that do round-trip UML programming...and, since it's going into eclipse, you get the benefits of the almost-good-enough eclipse formatting system (which is very good compared to most).

Or am I missing something?


What I meant was that there are several UML round-trip plug-ins for eclipse, but there is ussually little cross integration between something like JUnit for UML round-trip, or for that matter simply programming from a UML editor with full plotter, or CAD output, or for rendering a program in a more generic version like XML, which I only vaguely suggested, I think.

Though programs like Posiedon, etc, have gotten better at programming at that level, the issue of creating test cases is still open, sequence diagrams are still not fully generated (which is really what I'm interested in, but algorithm visualization is a deep topic.) And full blown interface modelling, this is where people who believe UML is short-hand for describing a program and folks, like me, who want a full schematic of the program, see UML in different ways.

But I believe the things that I have talked about here are all possible from an open-source integration perspective. Which is interesting because it would imply that the perifery of technologies is fleshed out, or at least heavily used and tested. Meaning that only integrating these tools is the real chore.

It kind of reminds me of BTrees (Multiway Trees) where once a node becomes too full it splits and passes a key upward toward the root. In this way the process of open source actually, though slow compared to engineering a specific tool, allows the community the opportunity to integrate, research, and experiment with both the code and the technology to acheive incredible flexibility and integration.

That was my point.
L-

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!