Java and Perl Notes

Karl Martino, Updated: 01/03/2003

What is Java?

If you strip away the hype, the bottom line is that Java is a powerful programming language and platform for software and web development. Initially it’s more difficult to use then many programming languages since it strongly encourages you to develop using object-oriented design. Once you understand object-oriented concepts however, Java can help you build software that is easier to maintain and reuse in a wide variety of circumstances. I am a Sun Certified Java Developer and use it every day at work. I picked it up while developing the Cofax web content management system and believe it has much to do with the success of the project.

What is Perl?

Programmer-friendly, Perl is a general purpose scripting language that lives up to it’s billing – making simple things easy and difficult things possible. While it’s possible to use Perl in almost any context, it’s become the language of choice for sysadmins and for CGI developers. Perl was designed by Larry Wall to embody the philosphy of TMTOWTDI. This is both a blessing and a curse. A blessing because you can be productive with it right away, programming in the style that suits you. A curse because sooner or later you will be scratching your head while looking at someone else’s code. Larry Wall calls it the first postmodern computer language. I picked it up when needing to write a script that would remote control a mainframe terminal to download and process text files and import them into Sybase SQL Server in nightly batches.

Downloading Java

There are just too many acronyms! Here goes a quick summary for you to navigate the maze:

You want to run Java programs and don’t care about developing your own: Download the JVM – the Java Virtual Machine. The JVM is the interpreter that Java programs require to run.

You want to develop Java applications: Download J2SE – the Java 2 Standard Edition. By downloading the latest release, you will get the basic tools necessary to develop Java applications – the JVM and the SDK – the Software Development Kit.

You want to develop server or distributed applications: Download J2EE – the Java 2 Enterprise Edition. Requires downloading a previous release of the J2SE first. J2EE provides additional SDK tools and libraries (in Java they are called “packages”) to extend the J2SE. If you are developing on a particular application server (in Java they are called “J2EE containers”), like Tomcat, it may provide the packages and tools you need, allowing you to skip downloading J2EE.

Learning Java

If you are new to programming, this Introduction to Computer Science using Java is something you will want to check out. A series of quizzes and outlines that give you the basics.

Don’t Fear the OOP is “A java tutorial that shows
you why Coding Java (or any other object-oriented programming) is just like writing a trashy Western novel.”. A great,
great intro to object oriented programming, written by the inspirational, and missed, Jos Claerbout.

Bruce Eckel’s Thinking In Java is regarded as the book to understand and use the language. It’s available for free as a download at the site. One of the first books on Java I bought.

The Java Tutorial is provided by Sun to help you learn the language. It serves as a good reference tool. My path to learn Java started here since I already had experience with software development.

The Programmer’s Stone is a fun free book that can give you insight into how Programmers think and solve problems. This DaveNet posting on Programmers is along the same lines and a good read.

The JavaRanch offers plenty of additional tools and message boards in a friendly atmosphere to help you not only learn the language, but also to get ready for certification.

For learning web development, after mastering the basics, Core Servlets and JSP was an excellent read. Available for free download at the site.

If you’re looking for a Java related FAQ, JGuru is the place to go.

Joshua Bloch’s Effective Java is a must read for those doing Java based software development. It will take your work to the next level.

For learning how to build advanced server based applications, Dive Into J2EE has been recommended by others.

If you are planning on getting certified (or just memorizing large parts of the language), visit
Marcus Green’s Certification Resources.
Bill Brogden’s Mock Exam can give you some practice.
So can Jxam.
Java Quick Reference looks to be a great resource as well.

Downloading and Learning Perl

If you are planning to use Perl on a Windows machine, I can think of no better site then Robert’s Perl Tutorial. See how simple that was?

If you’re going to learn web development with CGI, then you need to get yourself a web host that supports CGI with Perl and access with telnet and FTP. Download and install CGI scripts written by others. Since Perl a scripting language – you’ll have the source code. Read it. Study it. Copy it. Learn.

Portals, News, and More

java.blogs: Addictive daily read for
Java developers.

Java Today: Sun’s news hub for it’s Java community site.

Artima: Daily weblog on software engineering and Java related matters.

OnJava: O’Reilly’s portal for Java news, tutorials, and more.

JavaLobby: Java evangelism message board.

java.sun.com: The Java home page. Source of news, tutorials, downloads and support.

developerWorks: IBM’s site provides great tutorials and
articles to help you along.

JavaPro Magazine: Monthly magazine, it’s archives are a great resource.

The Server Side.com: Weblog devoted to Java on the server news.

The Perl Monks: A weblog and resource on tips and tricks.

use Perl: A weblog that focuses on news and advocacy.

Resources

The Java Almanac

JGuru FAQs

Robert’s Perl Tutorial

Perl.com

The Perl Journal

Must Read Essays/Books

Salon: The joy of Perl

Larry Wall: Perl, the first postmodern computer language

Philip and Alex’s Guide to Web Publishing

Vannevar Bush: As We May Think

The Art of Unix Programming

The Poetry of Programming

Richard P. Gabriel: Worse Is Better

MIT: Structures and Interpretation of Computer Programs

…in Textinfo format)

Paul Graham’s essays

Open Sources: Voices from the Open Source Revolution

For some Java and Perl related weblogs, see my links page.