Skip to main content

A Never Traditional Welcome

15 replies [Last post]
bmclaugh
Offline
Joined: 2003-10-09
Points: 0

Welcome all-

So if you've wandered over this way, you must be interested in the newest version of Java, "Tiger". I'd call it by its version number, but that seems to actually be one of its most confusing features -- I guess it shoook out to be 5.0, but even the product URLs still have 1.5.0 in them still :-)
So Dan, the editor-in-chief of java.net, suggested I post a welcome. He even thought it might be good to put some positive reviews up, maybe talk about the new and innovative format. But that's hard for me -- I'm just sort of a geeky author who happens to be in love with his work, and even his life (yes, it's hard to believe).
So maybe I'll do what I usually do -- which is not do what I've been asked :-) That said, here is what I would like to do. I'd like you to basically light me up with questions, comments, complaints, and anything else you can think of. In other words, I'm not one who wants a bunch of, "Hey, this book is the greatest thing in the world!" type posts. I'd rather get into some interesting issues; or maybe some things that I could have done better; or even some errors I made that I can fix for future readers. There are enough people in the world to offer up kinds words -- I'd rather talk programming :-)

So bring it on, folks. As always, I'm looking forward to it!

Thanks
Brett McLaughlin
Author, this book :-)

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
scottellsworth
Offline
Joined: 2003-08-27
Points: 0

I cannot disagree more with "In fact, one should NOT use an IDE to learn the language."

Java has a lot of cruft, based partially on its command line history. Classpath issues are not something a new developer really needs to know, nor is the relationship between packages and directory structures. Heck, even the command line options are arcane. A good IDE will insulate the new developer from this arcana until such time as they are ready to understand them.

Eventually, these things become important. After a few weeks, or a month, that developer may want to compile some source built via ANT, or perhaps will want to try a different platform. That is certainly early enough to learn how the plumbing is put together. I would far rather a new developer concentrate on the Java language, rather than the details of their OS and its quirky filesystem layout.

Tools like CodeGuide or BlueJ are designed for teaching, and focus on getting the new developer cutting code. I find IDEA great, but I probably would not throw a new developer at it. Then again, the support for refactoring, code completion, and inspections might make it quite worthwhile.

These tools do not replace a human. You still need to learn this stuff eventually, but I figure it is best to wait until you have some idea how Java works before undertaking the arcana. Frankly, I would want someone to know why they should care before they start fiddling.

Remember, if the same new dev started using Perl or Ruby, they can get code working immediately. They would pay later, but they get code right out of the gate. An IDE like BlueJ gives them that same cheap startup cost, without forcing them to use Perl.

Scott

jwenting
Offline
Joined: 2003-12-02
Points: 0

> Java has a lot of cruft, based partially on its
> command line history. Classpath issues are not
> something a new developer really needs to know, nor

Tell that to the people who are constantly bombarded with questions "why my program not run outside IDE Netbeans" and similar...
It's all about things like classpath, which the kids who post those questions don't know about because of attitudes like yours that they don't need to know.

> is the relationship between packages and directory
> structures. Heck, even the command line options are
> arcane. A good IDE will insulate the new developer
> from this arcana until such time as they are ready to
> understand them.
>

yes, and that time is from the first line of code they write.
IDEs prevent learning, they don't facilitate it. You end up learning the tool rather than the language as is blatantly obvious if you've ever had to teach a new programmer how to do something without an IDE at his disposal. Many of them just give up and watch you do it with glassy eyes, then next time it happens you can do it again.

> Eventually, these things become important. After a
> few weeks, or a month, that developer may want to

think hours.

> compile some source built via ANT, or perhaps will
> want to try a different platform. That is certainly
> early enough to learn how the plumbing is put
> together. I would far rather a new developer

no, the plumbing is the core of the platform. Don't know the plumbing and you don't know the platform.

> concentrate on the Java language, rather than the
> details of their OS and its quirky filesystem
> layout.
>

And then they use absolute pathnames and filenames in their program and come complaining that they can't load their image when the applet is on a webserver.

> Tools like CodeGuide or BlueJ are designed for
> teaching, and focus on getting the new developer
> cutting code. I find IDEA great, but I probably

No, they focus on getting the new developer drawing nice pictures without ever knowing what the code underneath it is.

> These tools do not replace a human. You still need
> to learn this stuff eventually, but I figure it is
> best to wait until you have some idea how Java works
> before undertaking the arcana. Frankly, I would want

the arcana being writing code... The IDEs you mention as ideal for teaching don't teach writing code, they teach glueing things together in a visual environment which causes the tool to write code for them.

It's attitudes like yours that cause a flood of people who don't know the first thing about Java to become listed as "programmers", hired by HR staff who don't know the difference, and then become liabilities on the teams they're employed on.
Those teams use different tools from the ones the kids learned at school, and they're completely lost.
They can't find the "run me" button, there's no nice buttonbar to glue together their components (which they can't find either because the icons are different from what they learned at school), etc. etc.

emerzoom
Offline
Joined: 2004-12-28
Points: 0

Hi,my name's Emerson and i'm interesting in learn java.How i can start?

applebanana8
Offline
Joined: 2004-06-16
Points: 0

Emerson,

I'd recommend you download the bluej IDE and go through the pdf tutorials. bluej is a learning IDE used by many universities worldwide for teaching Computer Science 101.

http://www.bluej.org

jwenting
Offline
Joined: 2003-12-02
Points: 0

In fact, one should NOT use an IDE to learn the language.

In my experience people using an IDE to learn a programming language tend to end up learning mainly to use the tool, not the language.
When later tasked to use another tool (or no tool) they don't know what to do.

Just check the main forums for the number of questions on how to run a program outside XXX (fill in any IDE), and similar questions from people who are stumped when an IDE doesn't have a button that does a lot of work for them which they had in another IDE.

Instead, one should use a text editor (syntax highlighting can help) and the commandline compiler.
Also install the API docs and have them at the ready and you need no more than a good tutorial.
Headfirst Java (Sierra/Bates, O'Reilly) and the Sun Java tutorial are good for learning.

ryan
Offline
Joined: 2003-07-10
Points: 0

My standard reply when I see a post like the parent:

As someone new to Java this person should not be using an IDE until they can install the JDK, setup classpaths, run 'java' and 'javac' from the commandline, navigate the JavaDocs and manage packages manually, i.e. through a command line. Yes, this will result in a higher initial learning curve, but will pay off greatly in the future. If they want to use a simple text editor like JEdit or TextPad for syntax highlighting that's fine, but by using anything more like JBuilder, Eclipse, IntelliJ, NetBeans, etc. they'll be doing themselves a huge disservice.

uhf
Offline
Joined: 2003-08-06
Points: 0

I would highly reccomend CodeGuide (http://www.omnicore.com) as an IDE to learn Java with. It doesn't have pointless features like GUI builders that waste time or boxes to type variable names into that automatically create getters/setters etc. It does have on-the-fly code compilation that highlights errors in the same manner as a spell checker and tells you the problem. It's easier to set up projects and I've learned a lot about the Java language just by using it to write. Worth every penny to a beginner.

jwenting
Offline
Joined: 2003-12-02
Points: 0

and all those features will prevent users from learning about commandline compilers, classpath settings, etc. etc. which will come back to haunt them (and lead to the inevitable weekly complaints that their compiler is no good because it doesn't find com.somecompany.anobscurepackage.AnEvenWeirderClass which their IDE had no problems with.

umdenken
Offline
Joined: 2004-11-16
Points: 0

> ...and all those features will prevent users from
> learning about commandline compilers, classpath
> settings, etc. etc. which will come back to haunt
> them...

And all [i]those[/i] features will prevent users from learning about register modes, dynamically linked libraries, i386 object code, etc. etc. which will come back to haunt them...

Or... maybe it won't.

yawmark
Offline
Joined: 2003-06-11
Points: 0

> And all [i]those[/i] features...

As for me, I don't consider the command-line compiler or classpath settings to be "features", nor do I see learning how the basics work first is harmful to the learning of more advanced topics. I have witnessed the converse, however, and have seen how relying on a particular IDE has retarded the user's understanding of the Java platform.

pwc
Offline
Joined: 2003-06-14
Points: 0

Yes Brett a delightful book. It helped an experienced programmer to pick up on the new features, and I did like the graph paper too.

In a way, there is a similarity with the ide/cl issue,
it helps a new programmer get started. None of us can
take everything in at once. We learn by chunks.

Your a great chunker,

Regards

uhf
Offline
Joined: 2003-08-06
Points: 0

It's a really nice introduction into the new features of Tiger and probably as much as most people will need. I had never realised you could put methods into enums or the subtle features in autoboxing/unboxing. The documentation Sun gives doesn't go far enough into the features.

adamjaph
Offline
Joined: 2004-07-08
Points: 0

Thank you, Brett. This is an excellent book which provides just enough detail to give me the confidence I need with the new Tiger features. It is always nice to have a book which gets yoo up to speed without having to drudge through chapter after chapter of beginner level OO and other introductory material. When Java 1.4 came out I bought the "JDK 1.4 Tutorial" from Manning. I found that book to be pretty good, however even it was a little long winded at times. The Developer's Notebook is just terse enough to keep me interested but not feel like I'm missing anything important. Great job!

coxcu
Offline
Joined: 2003-06-11
Points: 0

Brett,

The timing of this book is definitely what makes it valuable. A better book at a later date would have actually been less useful.

The graph paper and coffee stains design is an instant classic.

I like the format lab book format. How could it be better? I suggest a heavy on-line component for all lab books.

1. Look at the table of contents. How about a forum or topic corresponding to each entry. That way, there would be a true community of readers.

2. Every example could be linked to an extremely simple web-startable IDE that would launch pre-filled with the code for that example. The key word here is simple--I'm not talking about Eclipse. Click the link to start, click the big run button, then change a few characters to see if it still compiles and runs. I just want an an online scratch-pad for testing out the code in the book.

O'Reilly might be afraid that this would cut into sales. My gut instinct is that the opposite is true. Think of all the best-sellers that you can already get in PDF. Even if it did cut into sales, it could be offered as a Safari-only feature, where subscription costs could be set to compensate for lost sales. Electrons are cheaper than trees, right?

Then there is development cost. There is plenty of free forum software, but no free web-startable IDE software. With a community of millions, I bet Java developers would conspire to produce this for free, if O'Reilly would use it. Of course, people seldom object to being paid.

Looking forward to the Mustang notebook,
- Curt

Message was edited by: coxcu

dusty
Offline
Joined: 2004-03-29
Points: 0

Its nice to have a chance to thank you personally. The Tiger Developer's Notebook got me used to most of the Tiger constructs in about a day and a half. One thing that had been confusing me is what the big deal about annotations was; the @Todo and @InProgress ones were perfect examples that brought dozens of other potential uses to my mind within minutes.

There are a few typos and errors (but honestly, the add to the charm of a 'developers notebook'; were they intentional?), I was a little too interested in the content to mark them down as I came across them though. The biggest one was in the last chapter, on page 155. The last paragraph in the "Separating Thread Logic From Execution Logic" and next two sections ("How Do I Do That" and "What About... ...good old Runnable") are not supposed to be there at all. In fact, they are included again in entirity starting on page 160 under "Executing Tasks without an ExecutorService", where they make a lot more sense!

All in all, the skip the theory approach was exactly what I needed. I suspect I'll be purchasing more books from the Developer's Notebook series in the future.

Once again, thanks very much!

Dusty