views:

1601

answers:

15

I am a vc++ developer (but like Qt) interested in learning from open source project by contributing and reading the code. I use windows as primary development platform. Which project will be right for me to start?

Is chromium a good choice?

+13  A: 

Get involved in the Qt Creator project.

Rob
+1 Good recommendation
yesraaj
Can you tell us something about Qt Creator and why it's a good one to try to start with?
David Nehme
Qt Creator is a great IDE but with more contributors it could be superb. It's only v1.x so there is plenty of scope for new functionality and the OP mentioned Qt.
Rob
+4  A: 

Well I think there is a lot of interesting opensource projects using c++. Boost is the first project one can think about. It is a library, but very well written, so you will learn a lot. If you want something more fun you can try something like a game engine like Ogre3D. If you want to participate in a project with Qt bindings, I suggest projects related to KDE as they mainly use Qt, AFAIK.

Boost

Ogre3D

neuro
The link should be ogre3d.org not .com: .com is spam.
atas
I fixed the link.
Zifre
@atas, zfire : thank you. The only time I have not used cut)
neuro
+4  A: 

Google has a lot of open-source C++ projects. Specifically, perftools (replacement malloc, heap/CPU profiler) is in need of considerable Windows and x64 expertise.

http://code.google.com/hosting/projects.html

Tim Sylvester
+2  A: 

how about webkit about Web browser engine open source project?
I hope it helps.

Tiger
+19  A: 

Is chromium a good choice?

I believe so, yes!

The source code is IMO very well written, it's a really active project with a lot of work to do and is also interesting in many different ways. Obviously a browser is in itself just a combination of specific libraries, and thus Chromium gives you a nice entry to learn more about them and hopefully contribute evidently. But most importantly it has a big community, is sponsored by a big corporation and has many talented software engineers on its core team.

There are so many things to do, so you could even contribute things you know while learning stuff you don't.


I'd like to add; The choice of an open source project to join should be based on:

  1. Your level of expertize
  2. What you'd like to learn
  3. Quality of the code
  4. Maturity of the project
  5. Code complexity (not to be confused with readability)

I only speak for myself here, but as much as I love learning more from too complex projects (file systems, RDBM etc) I find those projects to be less rewarding because of the overwhelming complexity. Try not to learn everything at once, take smaller steps and finish what you start rather than taking larger steps and give up.

Just my 2c - YMMV


In case you'd want to try Chromium out, here are links for the design documents:

The links above are all taken from the Chromium developer documentation, where even more details can be found.

Anyway, good luck finding a project that fits your needs!

Hannson
+1 - In light of Google's recent announcement on the upcoming Chrome OS, which is said to heavily rely on the Chrome browser. Being familiar with Chromium might give you a nice head start. I only wish I had the time to get involved in something like that...
eran
+7  A: 

KDE has plenty of code in C++/Qt. It is a huge example of open source community... their SVN repository will soon have 7-digit commit numbers (http://websvn.kde.org/).

liori
KDE is great, but he did say he primarily uses Windows. (And yes, I know, it runs on Windows, but very few people do that.)
Zifre
That's actually why I proposed that. I'd love to see more interest in running KDE on Windows :-)
liori
+1  A: 

Launchy

from the project page introduction

Launchy is a free windows and linux utility designed to help you forget about your start menu, the icons on your desktop, and even your file manager.

Launchy indexes the programs in your start menu and can launch your documents, project files, folders, and bookmarks with just a few keystrokes!

They also have a plugin interface so you could start with writing a plugin before getting into working on the actual code.

Jesse
+1  A: 

I enjoyed working on Code::Blocks. It's not a trivial project, but you should still be able to wrap your head around it to contribute. :)

The most important thing is work on something you want to work on.

280Z28
+1  A: 

wxWidgets is better for c++ developers who has knowledge about MFC and Windows. Qt uses MOC compilers to generate c++ code. In wxWidgets you have full control of your code.

harik
+2  A: 

Participate in a Qt competition such as: Pimp My Widgets and QtCentre programming contests

Lawand
A: 

I am looking for someone to help me with my Open Source project. Here is the project wiki. It is a Scheme language implementation in C++. I want someone to get it working properly on Windows, especially the networking part. If you are interested, please get back to me.

Vijay Mathew
A: 

You could try and help with the KDE port to Windows. KDE is a desktop environment which was traditionally at home on Linux/Unix systems, but now has (native) ports to Windows and MacOS X.

You could help make those applications perform and integrate better with Windows. Working on certain apps would be highly appreciated (e.g. Amarok - an advanced music player, digiKam - an advanced digital photo management application) as they would be good open source options to Windows users.

You can get a good overview on how to participate on the KDE for Windows TechBase article.

Anyway, good luck choosing ;-)

riyad
A: 

Before reading the actual question, Chromium was my first thought. I definitely think it's worth it.

Tamás Szelei
+1  A: 

I don't think anyone here can really answer the question "Which project will be right for me to start?" as no one here really knows who you are. Programming is an absolutely HUGE area, you can do low level systems code (i.e. drivers & OSs), databasing, web browsers, games, word processing, and the list goes on.

What you should do, is find something you would like to work on, and start playing around with the code. Try out several different projects in that area and see what you can understand, contribute to and learn from (its also a good way of seeing a variety of some of the programming paradigms out there). Also, if you are trying to learn from this as well, you should check out how much help and communication between the members of the project there are and how much they seem to be willing to help one another (and if there is almost no communication, i'd worry about the project surviving much longer anyway).

Grant Peters
A: 

If you are into gaming, try the Half Life 2.2 Full SDK. Its free and you can make your own mods.

WarDoGG