As I set out earlier, one of my goals is to grok all of the components. I challenged myself to work with Java, which I feel less proficient than my C/C++/Python/Perl.
What should you think when you go from one language to another? One and only one answer : don't make a judgement too early.
For example, compilation of Sphinx4 takes 4 steps:
- Download and install JDE.
- Download and install ant.
- run ant
If you haven't used JDE, ant or never look at a build.xml, you would feel a bit overwhelmed. But be patient, there are a lot of goodies of Java. Most of them are very well thought in terms of software engineering.
I followed the process. Woa, Sphinx 4 is now at beta 6 and it grows to 366 files. Sounds like groking it will take some time then.
So what would be your strategy if you want to go forward to understand a Java project such as Sphinx4? My suggestion: download a good IDE such as Eclipse or NetBeans.
If you are like me, coming from a emacs background, learning Eclipse would take you sometime as well. But again: don't make a judgement too early. Eclipse is nice in its own way. (At least it's not Visual X.....)
Practically, using Eclipse to understand the code also has its advantage. Unlike C-package organization, Java software usually has deep directory hierarchy. Using emacs would definitely cause you more keystrokes. The only exception I know of is JDEE. That again will take you some setup time.
In any case, I got it started. So, my next goal is to go through all materials of Sphinx 4 again. This time I demand myself to grok. I will start from the Sphinx 4 documentation page. Then expand to source code-level of undersand.