Ethereal was initially developed by Gerald Combs. Ongoing development and maintenance of Ethereal is handled by the Ethereal team, a loose group of individuals who fix bugs and provide new functionality.
There have also been a large number of people who have contributed protocol dissectors to Ethereal, and it is expected that this will continue. You can find a list of the people who have contributed code to Ethereal by checking the about dialog box of Ethereal, or have a look at the http://www.ethereal.com/introduction.html#authors page on the Ethereal web site.
The communication between the developers is usually done trough the developer mailing list, which can be joined by anyone interested in the development process. At the time writing of this document, more than 500 persons are subscribed to this mailing list!
It is strongly recommended to join the developer mailing list, if you are going to do any Ethereal development. See Section 1.6.4, “Mailing Lists” about the different Ethereal mailing lists available.
Almost any part of Ethereal is implemented in plain ANSI C.
The typical task for a new Ethereal developer is to extend an existing, or write a new dissector for a specific network protocol. As (almost) any dissector is written in plain old ANSI C, a good knowledge about ANSI C will be sufficient for Ethereal development in almost any case.
So unless you are going to change the development process of Ethereal itself, you won't come in touch with any other programming language than ANSI C (such as perl or python, which are used only in the Ethereal build process).
Beside the usual tools for developing a program in C (compiler, make, ...), the build process uses some additional helper tools (Perl, Python, Sed, ...), which are needed for the build process and in the case Ethereal should be installed from the released source packages. If Ethereal is installed from a binary package, none of these helper tools are needed on the target system.
Ethereal is an open source software project, and is released under the GNU General Public Licence (GPL). You can freely use Ethereal on any number of computers you like, without worrying about license keys or fees or such. In addition, all source code is freely available under the GPL. Because of that, it is very easy for people to add new protocols to Ethereal, either as plugins, or built into the source, and they often do!
You are welcome to modify Ethereal to suit your own needs, and it would be appreciated if you contribute your improvements back to the Ethereal team.
You gain three benefits by contributing your improvements back to the community:
Other people who find your contributions useful will appreciate them, and you will know that you have helped people in the same way that the developers of Ethereal have helped people.
The developers of Ethereal might improve your changes even more, as there's always room for improvements. Or they may implement some advanced things on top of your code, which can be useful for yourself too.
The maintainers and developers of Ethereal will maintain your code as well, fixing it when API changes or other changes are made, and generally keeping it in tune with what is happening with Ethereal. So if Ethereal is updated (which is done often), you can get a new Ethereal version from the website and your changes will already be included without any effort for you.
The Ethereal source code and binary kits for some platforms are all available on the download page of the Ethereal website: http://www.ethereal.com/download.html.