Public reply to the author of Pidgin-Last.fm

http://www.last.fm/user/linleno/journal/2009/03/09/2js7ao_yu_last.fm_pidgin_tune_status_plugin%253A_now_playing_updating_%2526_track_info_sharing

[[ The following paragraphs are the original comment of my Last.fm journal which was posted by the author, Natureshadow, of Pidgin-Last.fm ]]

linleno, this is an open world, so it is your right to publish this software.

However, the main aspect of open source is contribution, not concurrence. It would have been better for everyone, you, me, and our users, if you'd just contributed to my code.

I am implementing all the stuff your plugin does, this is on my todo list. But I'm not so sure whether this is still necessary if other peple publish arbitrary code that renders my work useless.

[[ The following is my public reply to that comment ]]

Hi, Natureshadow:

Got your message. I think it's neccesary for me to express how I think about my project and yours.

Please allow me to explain why I fork a brand new project but not contribute patches on pidgin-lastfm. First, the design logic between our programs are quite different. You create a placeholder in nickname, and periodcally replace it with the now-playing information fetched from Last.fm, but I would rather place the now playing information in Tune-Status which is neater and keeps my nickname clean, IMHO. You consume many lines of your code on dealing with the placeholder-replacing issue. Since I simply adopt Tune-Status to place now-playing info, I don't even need to deal with that. Furthermore, both of our projects are short enough to just rewrite a new one. According to these two reasons, I create YuLastfm.

I think the spirit of open source is that you can freely edit and adjust the code you got and then share with others if you think this code may also be helpful to them. I agree with your idea about the contribution part but just partially agree with the "not concurrence" part. If there already a program exists, it's really not wise to create another brand new one that provides the same function. However, there are some exceptions. One of them is that the scale or maturity of a program is small or under-developing. Another one is that the new design logic which may cause the different behavior of a program. If a project is large and mature enough, I would rather patch it than create a new one, more than like. In current situation, both of our codes are tiny enough to be totally rewritten, and indeed it will be more efficient to re-design a new one than editing the existing. In addition, since the design logics mentioned above are quite different between yous and mine, the designing efficiency effect will take place even severely.

I don't think my project conflicts with yours, and I really don't think my project "renders your work useless" at all. If someone who wants to show their now-playing info among nickname, they obviously will choose yours, but not mine. YuLastfm is just another choice for user to choose, nothing more. It's just like the FOSS world, which we are already in. Take all different distros of Linux as an example. Why don't we just focus on a single distro? In my opinion, it's because it's against the spirit of FOSS. Btw, I'm wondering why you are trying to implement "all the stuff my plugin does" for now? I don't mean to compete with your project for God's sake. Again, it's just another choice for all Pidgin users. Of course we can share the experiment results and programming experience with each other, and I do want to share. In your private message to me, you mentioned that "either one will survive or we work together on one." Honestly, I don't think either one of us will "not survive" if we don't work together on one. For now, I'm looking forward to the experiences and infos sharing if you still want to do that after all.

Well, hope this reply will help you understand my thought more clearly. Thanks for your time.

Best Regards

linleno 2009/04/08

Posted by Leno Lin 2009-04-07