Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

jdavidb (1361)

  (email not shown publicly)

J. David Blackstone has a Bachelor of Science in Computer Science and Engineering and nine years of experience at a wireless telecommunications company, where he learned Perl and never looked back. J. David has an advantage in that he works really hard, he has a passion for writing good software, and he knows many of the world's best Perl programmers.

Journal of jdavidb (1361)

Thursday February 21, 2008
03:17 PM

You're kidding: Java compilation time

[ #35717 ]

While XP works with any language, we believe it works well with Java for a few reasons. Most important is the speed with which Java compiles. XP relies on test-first development in which programmers write tests for code before they write the code. For each new feature, you should write a test and then watch the test run and fail. You should then add the feature, compile, and watch the test run successfully. This implies that you must write a little code, compile, and run the tests frequently, perhaps dozens of times each day. Because Java compiles quickly, it is well suited to the test-first approach.

-- Java Extreme Programming Cookbook (emphasis added)

This is a joke, right?

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Java loses when you compare it to Smalltalk, Lisp, or anything else even remotely decent. Java wins when you compare it to C++, at least until you try to mix Java generics with Java closures, in which case you have to use trigraphs in your STL templates to match the level of ugliness.

    • But Java loses when you compare it to C++ when you consider that any decent C++ compiler has dozens of optimization parameters you can set to try to improve the speed and/or size of your executable. Does javac have any?
    • Actually, with compile-as-you-code tools like Eclipse, I've found that the compile+run portion of the edit-test-fix-test loop in Java represents a similar amount of time as the compile+run portion of a similar loop in Perl.

      That said, the actual coding time usually compares disfavorably to higher-level languages like Perl in my personal experience.
      • It probably seems faster because actual editing in Eclipse is so slow.

        • Really? It's slow to start up, but after that it doesn't seem slow at all to me. All of the slow parts (indexing, compiling, SCM synchronization) happens in a background thread and does not interfere with editing. It's the most productive programming environment I've ever encountered. Honestly, the Perl 6 feature I'm most looking forward to is its improved parsability so maybe a really great Eclipse plugin will be possible (no offense intended toward the EPIC plugin, which tries to provide Perl 5 suppor
          • Eclipse usage is subtly mandated for me at $WORK. I do like it, but it is slow. Not always slow, but often slow. There's probably some reorganization we could do to our project to speed some things up, but I'm not an Eclipse wizard, yet (hoping to achieve that later this year).

            I'm not going to trash the tool, but I'm not going to say it isn't slow, either. It's slow for me. May not be for everybody. Memory will probably help, if they ever get me some. :)

            Oh, and not all of that stuff happens in bac

            J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
            • Ahh, well, yes. With Java, RAM equals performance. I develop on a machine with 2GB and a dual 3.4 GhZ P4D and I set -Xmx=768M for Eclipse. I typically just leave Eclipse running for a week or so at a time, so it's always up to date.

              Our codebase is large and well-documented, so I rely heavily on Eclipse's tools for text searching, API searching, autocompletion, Javadoc tooltips, and global refactoring. The quantity of keyboard shortcuts is astonishing and generally mnemonic if idiosyncratic. Once you gr
          • It's complaining about all the wrong things and ignoring the overwhelming value of the tool.

            I'm sure there's tremendous amount of value in the tool. I'm only starting to use it for serious things, and I can't seem to get anything done quickly. It feels like the programming equivalent of Mac OS X, where people who know what they're doing have to wear oven mitts to slow them down and let them enjoy the aesthetics, except without the aesthetics.

  • I thought Java unit testing was mostly class based.

    So if you write a test, for some method that doesn't exist, the test code doesn't even compile at all, so you can't run it?