|By Dana Nourie, August 2004|
- John Bobowicz
Java.net is popular for its open source projects, such as the JOGL API Project, NetBeans, JXTA, and Project Looking Glass. These projects attract developers who are experienced in working on the Java platform. From this, it's easy to get the impression that java.net is not for developers new to the Java platform, but it is. In fact, the big development projects are only a portion of java.net. Above all else, java.net is a community, and much of the site is devoted to educating many types of people about the Java platform, from new programmers to educators to hard core developers.
java.net provides a central site for articles, conversations, news, and innovative development projects related to Java technology. The community can grow with industry associations, software vendors, universities, and individual developers and hobbyists as they meet, share ideas, and use the site's collaboration tools. Within the overall main community, sub-communities emerge, as people from diverse areas and backgrounds uncover synergies and create solutions that render Java technology even more valuable.
No matter what your experience is with the Java platform, you are welcome to be a part of any of those communities or help and encourage a community more suitable to your needs and interests. In addition, educators are encouraged to bring their classes online and work on projects collaboratively.
So how do developers and programmers new to the Java platform get involved in java.net?
"Spending time reading the daily blogs, original articles, and participating in forums is a great way to digest a ton of useful information," says John Bobowicz (jbob), Sun's Community Manager and Chief Technologist on java.net. "The best way to fit in is to get directly involved with java.net."
You'll likely be familiar with some types of collaborative tools at java.net, and there may be a few that are new to you. Read through the details about these tools below, and then join the rich community of programmers, developers, instructors, and students.
A great way to find out what community participants are doing and thinking concerning the Java platform is by reading weblogs, forums, messages from interests lists, and Java User Groups(JUGS). In addition, you can respond to this information with your experience and knowledge.
Weblog and blog are used interchangeably. A weblog is a type of online diary or journal run by special software that is updated often. It points to articles elsewhere on the web (often with comments) and to on-site articles. Weblogs enable people to create, format, and post diary-like entries with ease. In a community, bloggers often refer and link to other bloggers, with interesting and often unanticipated outcomes.
Web log entries are associated with communities. Look up a community of interest to you, and then see what weblogs have been associated with it. Additionally, you can view listings by the Most Recent, Topics, Communities, Webloggers, or Top Weblogs, as well as these specific entries: Java Specification Requests, Mac Java Community, Java Enterprise, Java Education and Learning Community, linux.java.net, Java User Groups, Java Tools, and Education and Research.
Forums are online two-way discussions that allow users to exchange experience, information, and details even though thousands of physical miles may separate them. java.net Forums is a place to meet people from other communities and share ideas and discuss issues. In these forums, you may meet others with similar programming problems, as well as people who can provide ready solutions. You can get diverse opinions on topics, and discover other projects that may be of interest to you.
In addition to the Recently Archived forums on the java.net main forum's page, you can visit many other forums listed on the right-hand side of the page in menus under the topics: java.net Social Forums, java.net Forums, Community Forums.
The last category on that page is Community Mailing Lists, otherwise known as mail lists or discussion lists.
Mail lists are similar to forums. The main difference between lists and forums is that to read messages posted to a forum, you have to go to the web site to read the posts or post a message of your own. With an interest list, you subscribe, and you receive and post messages through your email.
To join a mailing list, simply go to the community or project you're interested in receiving information on, and subscribe to that mailing list through the email address provided on that page.
Java User Groups (JUGs) are local communities of Java users who get together to share information, resources, solutions, and to network together. The java.net JUGs community contains web pages for physical and virtual JUGs. Many of the user groups have subprojects that are used for topics they are studying or applications they are developing. Look for upcoming events for your local JUG in the java.net event listings.
News is not only a common way to keep up-to-date, but on java.net, registered users can also submit their own news, though it does go through an editorial process. Java News Headlines on java.net news is a good way to stay informed on new books out, upcoming conferences related to Java technologies, support announcements for projects or APIs, and the latest project releases.
- Daniel Steinberg
To discover what events are coming that you may want to attend, check the Events section of java.net. Events are organized by Date, Type, or java.net Events Only.
For the developer and programmer new to Java, a section that holds a lot of education value is the Articles section of java.net. You'll discover a wide variety of topics covered, such as details to specific Java APIs, an essay on the future of EJB3, how-to's on creating a Swing GUI, and a thorough look at the commercial offerings in the HTML rendering space. The articles are diverse and detailed.
"One of the things that distinguishes us is that even our editors have programming experience," says Daniel Steinberg, Editor-in-Chief of java.net. "We refresh the entire middle of the page with new content every weekday." Editors compile the code and check what is in the articles. In addition, the editors have had discussions with some authors about different ways to implement various aspects of an article. "Our authors are often recognized experts in their field," says Steinberg. "For instance, we launched a column written by Robert C Martin." Many of the bloggers and authors should be familiar names, such as James Gosling, Jack Herrington, who wrote a series on code generation, and Bill Grosso, who contributes regularly.
java.net is full of experts, great people to learn from. Two unique features of java.net are that it has communities, and each community has a community leader. java.net community leaders are experts in the subject of their communities, and are all approachable and helpful. Find a community that pertains to an area that you are interested in concerning the Java platform, visit the community's page, read about it, and then contact the community leader and ask for advice. The community leaders know how best to get involved in their communities.
Some communities are more open to new developers than others. Some places to investigate are the Java Education and Learning Community (JELC) community, and Java Desktop Community. JELC is filled with and run by educators interested in the Java platform. Many of them teach the Java programming language, so there is much to be learned from them. The Java Desktop Community has a lot of J2SE projects you can study.
The JELC is a gathering place for Java-related researchers and educators: teachers, academics, researchers, programmers, authors, corporate trainers, administrators, public officials, students and others. In this community you will find, develop and share open source educational tools, open learning standards implementations, and open course learning materials.
A subsection of JELC, edu-learningresources, is a particularly good place for new developers to learn. This section is for projects that create collections of resources for learning about Java technologies, whether intended for academic or individual learners. These resources can include documents, instructions, tests, code, presentations, notes, and so forth. They include books and code samples, e-learning modules, tutorials and discussions.
Additionally, Javapedia is a project to create an online encyclopedia of all the things that Java developers might need to know. The Javapedia is created and maintained by the community. Everyone is invited to help. It's also great information to read for anyone learning Java programming.
- John Bobowicz
One of the best ways of learning how Java APIs fit together in an application, how certain methods are called, and objects are developed and used, is to see works in progress. Open Source projects are a great place for new Java programmers to learn and observe. "One suggestion is to download some of the source code and try to understand it," says Bobowicz. "See if you can modify it (even if you don't contribute your changes). In that respect, to a new programmer, java.net is a candy store of sample code."
To see the code for a given project without having to download its entirety:
Another way of viewing the code is to download it using CVS. "Using CVS to download the code allows you to tinker and compile," says Bobowicz. "The nice thing about CVS is that it easily allows you to download an entire project. This is important since many projects and applications are made up of multiple source files."
Also, source code is not always available for online viewing. Frequently, you have to use CVS to download the code. To get more information about CVS and how to use it, find a project of interest. On the left hand side, the Project Tools menu has a link called Version control. This gets you to more information on CVS.
A wiki is a web page with some additional features. Specifically, it can be edited by many people simultaneously in real time. To understand this, think about a normal web page. A web page sits on a web server and gets published (read only) to the world. The only person that can edit it is the person with access to the web server (such as a webmaster). If you want to allow others to contribute, you have to allow them access to the server and even then they can only edit it one person at a time. This is because you have to bring a copy of the HTML page to your machine, edit it, then upload the new version to the web server.
A wiki allows people to edit it's web pages online and in real time, so everyone make changes and no one needs a copy of the HTML page locally to do it. A wiki allows a web page to get updated in the same way that a Database Management System (DBMS) allow a table to get updated. It's a great experience and a great collaboration tool. A lot of people are using wikis for documentation. That way, the users can add to the documentation with their real experiences with the product. A wiki is a living document.
To contribute to a wiki, first learn more about it from the Welcome, TWikiGuest! page, where you can learn more about the TWiki tool and project.
The good news is that open source is a meritocracy. You typically have to request and be granted a role in a project in order to contribute to the code base. Most project owners will not grant roles to people unless they are comfortable with their skills. It's unlikely that you will be able to ruin a project because of a mistake or lack of experience. There are processes that project owners follow to check code before it gets updated.
edu-student-projects is a great place to for new developers, students, and teachers to host a project. This area is for hosting class projects, or open source software as part of a thesis, dissertation, or degree project, and is used by teachers to facilitate student software projects. Instructors request an area and manage students as subprojects to this project. Teachers can take advantage of all the resources of java.net to aid instruction and manage code produced by groups of students.
Students can request project space to work on an assignment, but must receive approval from the instructor prior to the project's approval by the community manager. The reason for this is that java.net is primarily used for open source development. A class project that is repeated each term is a special kind of project.
For special projects like this, that are approved/requested by a teacher or advisor (perhaps as extra credit or work study), the status is similar to a regular project. However, since such projects are usually to solve a problem rather than be generic, the project is treated as a normal public project and never removed. The teacher or advisor must be a project owner to manage the project over the long term.
As your development skills grow and you become more experienced, you can branch out with other projects in other Java technology areas on java.net. If you want to work on an existing project, post to their forum to see if there is any objection first.
As you get comfortable on the Java platform and get a feeling for how the java.net community works, you may want to host a project. Starting a project is a simple process that begins by becoming a java.net member and requesting to start a project, and ends with an email notification once the project is set up. Approval of all new projects is conditional upon meeting requirements for valid projects as outlined in the java.net Guiding Principles, as determined by the Community Manager.
Typically, projects begin with only a few active people. Some projects grow into larger, more popular projects with many participants and several sub-projects associated with them, all in accordance with the java.net Guiding Principles. Each project has a project owner who monitors the project and allows users to join the project by granting them roles and permissions. This makes the project a true community project, bringing in and encouraging many minds and skill sets.
To start a project, you need to be a registered java.net member. If you have been reading and responding to weblogs, forums, mail lists, and JUGS you likely already are a member. Otherwise, you'll need to register. Once a member, you need to make a request to begin a project by reading the Project Approval Requirements. This page simply explains what a project typically consists of, what type of license you may need for the project, and any project requirements you may have or need to consider. Be sure to read this page before moving onto the next step.
Once you have a good idea of what the requirements are for the project you want to start, you can fill out two online forms to Request a Project.
When the project is set up on java.net, you'll be notified. Then begin the process of publicizing the project. There are several means of getting the project into the hands of other members: getting it featured in Java Today, write a feature article about it and submit it to the editor, list any event that may be happening for the project, or submit an RSS feed for the project. All of these methods are explained on the publicizing the project page.
Use etiquette when contributing to java.net like you would other online communities. Be open and honest. Listen twice as much as you speak. Read twice as much as you write. If you are up front about what you can and cannot do, you will get a lot of support and respect from the more experienced folks.
"The only time an issue arises is when someone pretends to know more than they do," says Bobowicz. "It's purely an ego thing and you can wind up offending someone more senior to you. Communities are a meritocracy and "respecting your elders" is always good form."
It doesn't matter what your level of Java knowledge is to join in at java.net. There is something for everyone from heavy-duty developers, to beginning programmers, to experienced programmers learning the Java programming language, to university professors setting up projects for students. Try out the various areas of the site, find out where you can benefit the most, then participate in the java.net community.