Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Open source project for c++ developer?

Tags:

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?

like image 860
yesraaj Avatar asked Jul 09 '09 19:07

yesraaj


1 Answers

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 how to integrate the V8 javascript engine?
  • 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:

  1. 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!

like image 51
hannson Avatar answered Oct 20 '22 18:10

hannson