4 ms·
Ask HN: What OpenSource projects are good to learn from?
I'm trying to put together a list of OpenSource projects that would be good for coders to learn from.
These projects should demonstrate best practice in their chosen language and implementation. Ideally they should have some aspect that is truly elegant.
Perhaps they solve a problem in a novel way, and would be useful to coders trying to improve their skills and techniques.
If you have worked on an OpenSource project or have come across code snippets that you have thought "Wow", please post a comment and a link to the repository.
At the moment I am interested in the following languages: Ruby, Python, Java, C#, but am open to any suggestions that improve learning.
Any help would be greatly appreciated and I will publish all my findings on Hacker News when compiled. Many thanks...
- cmelbye 15y agoMediaWiki is a large-scale PHP project that uses good design patterns, heavy usage of OOP, etc. If you're wondering about good development practices for PHP, I think MediaWiki's codebase is a good thing to look over.
- emson 15y agoGreat thanks, are there any aspects that you particularly liked?
- VMG 15y agoI wanted to write a plugin for MW years ago and found it painful. There was no clean way to insert raw html into the page as far as I remember. @Original poster: I think the book "The Architecture Of Open Source Applications" looks interesting, I haven't read it though. http://www.aosabook.org/en/index.html http://www.aosabook.org/en/index.html
- emson 15y agoInteresting I think I'll put it on my wish list, thanks.
- espeed 15y agoThe Flask (http://flask.pocoo.org/docs/ http://flask.pocoo.org/docs/) Python Web framework is designed on best practices. It and the other Pocoo projects (http://www.pocoo.org/ http://www.pocoo.org/) are exceptional.
- emson 15y agoExcellent recommendation, I saw it come up on HackerNews, a while back. I think these micro web frameworks are a great way for developers to explore and experiment with coding concepts. I guess we should also mention the Ruby Sinatra project: https://github.com/sinatra/sinatra https://github.com/sinatra/sinatra
- espeed 15y agoYou should also check out TinkerPop (http://www.tinkerpop.com/ http://www.tinkerpop.com/) -- another exceptional developer group. Graphs are a much more elegant way of storing relational data, and TinkerPop has developed the open-source software stack for the emerging world of graph databases.
- hrasm 15y agosqlite and postgres are often regarded as projects with good, clean style.
- pvarangot 15y agoI'm under the impression that if you are already a sort-of-proficient programmer in a dynamic scripting language such as Python or PHP, you should study the code of the VM where said language runs. I learnt a lot reading CPython's code after learning Python, even not being an expert on VMs nor on C++. I also had to work with PHP's VM for a research project and learnt a lot from tinkering with it. In both cases the code is not a piece of art, but you get practical knowledge about, for example, the misses and pitfalls of the languages you are already proficient with.
- slig 15y agoSQLite and Redis.
- namank 15y agoIt really depends on what your end goal is and what kind of background you are coming from. I started with PHP and then looked at the underlying C++ code. Lost interest in about 2 hours. Right now, my goal is to learn Python, HTML5, and ObjectiveC So I got involved with github.com/namankumar/bloggart for Python and GAE, made a game for HTML5, and am now helping people with their iOS apps (and picking up objC along the way)