Open source project for c++ developer?
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?
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.
- Want to learn about rendering/drawing on screen via Skia?
- Want to learn how to integrate Webkit?
- Want to learn more about the HTTP protocol / network stack?
- Want to learn how to sandbox applications?
- Want to learn about multi-process architecture and IPC?
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:
- Your level of expertize
- What you'd like to learn
- Quality of the code
- Maturity of the project
- 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:
- Getting around the source code explains in great detail how the projects tree structure is built.
- The Engineering design docs explain the architecture, most under the hood and future work
- The user experience design docs provide insight to everything that touches the user, that is behavior and look.
- Tech Talk Videos that are very helpful for understanding some key engineering issues and decisions, even if you don't intend to join the chromium project.
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!
Get involved in the Qt Creator project.
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/).
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.
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.
how about webkit about Web browser engine open source project? I hope it helps.
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.
Participate in a Qt competition such as: Pimp My Widgets and QtCentre programming contests
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.
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.
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 ;-)
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).
Before reading the actual question, Chromium was my first thought. I definitely think it's worth it.
If you are into gaming, try the Half Life 2.2 Full SDK. Its free and you can make your own mods.