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 ]

ajt (2546)

  (email not shown publicly)

UK based. Perl, XML/HTTP, SAP, Debian hacker.

  • PerlMonks: ajt []
  • Local LUG: AdamTrickett []
  • Debian Administration: ajt []
  • LinkedIn: drajt []

Journal of ajt (2546)

Monday February 20, 2006
03:25 PM

The Dark Side

[ #28748 ]

The is a possibility an oppertunity to learn Java. I once tried to learn some Java, and found it very annoying and slow to get into. I suppose it's a useful skill to have and good on a CV, and they may have fixed the annoyances I suffered last time I tried to learn it.

Now I need a good Java for Perl users book...

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.
  • You MUST go and get a copy of JetBrains IntelliJ IDEA, at least for the trial period.

    If you can't pay after that, then you move down to Eclipse.

    That is all.
    • In lieu of paying IntelliJ (which I'd do myself, but my employer did it for me), you can hook up with an open source project and actively contribute. Jetbrains offers a free license for open source authors which quite a few of the Jakarta and OpenSymphony folks (among others) seem to have taken advantage of.

  • Java is actually a pretty simple language. If you haven't done it before threading can be a little tricky, but 1.5 offers a number of useful abstractions to make it easier. It's learning the libraries that's the hard part -- not because they're difficult, just because it takes a while.

    I learned from "Thinking in Java", which is verbose but not bad. If you've got OO stuff and Java's type system down, the introduction in Flannagan's "Java in a Nutshell" is terse but IMO excellent. Once you've got a bit unde

    • To my mind, part of the problem with learning Java's libraries is the fact that they're so massively over-engineered. And they seem to rewrite, trying to throw out the old versions quite frequently. Except that they can't, as they need to keep the old bits for backwards compatibility (e.g. Vector vs ArrayList?).

      Ok, I'll admit. I've been toying with Java since it first came out. I still don't understand I/O in the standard library, above System.out.println(). It's a complete mess. But I can usually

      • The IO approach is very un-Perlish, but it does eventually make sense and it enables some fairly nifty behavior. For instance, with the URLConnection you can assign a String, you just need to wrap it in a StringReader/InputStreamReader first. Klunky? Yes. But it also allows you to wrap it in a ZipInputStream to do automatic compression, or an EncryptedInputStream (sp?) to encrypt it.

        That points out my major beef with the Java libraries: they don't make easy things easy. With the URLConnection, they shoul

    • Thanks for the suggestions.

      Depending upon how things go I'll be doing SAP Java/ABAP work as part of SAP AG's NetWeaver technology. It's all horribly bespoke and notoriously slow and buggy, but it's where the money is...

      -- "It's not magic, it's work..."
  • I have also been learning Java, and the biggest problem I have is saying... "In perl I'd use a dispatch table to solve this problem, i wonder how you do that in java". Also a guide to the galaxy of Struts, Hibernate, Spring, Forms, Avalon, Pico... all these frameworks which are as far as I can tell the sorts of modules I'd look for on CPAN. but I can't tell what they do by the name they are called and so knowing each is for would help a lot with selecting the right tool for the job.
    • That's part of thinking in a language. It took me a while to stop using Maps everywhere :-)

      Regarding the dispatch table: one standard practice is to use a Map and make the values implement a particular interface, like 'Executable'. Then you can do something like this:

          String dispatchKey = getDispatchKey(...);
          if ( dispatchTable.containsKey( dispatchKey ) ) {
              Executable dispatched =