Question for Java Gurus

G

George Copeland

I have been a professional programmer for about 14 years on MVS, HP-UX, and
Windows. I have been following Java since about 1997, but I have never done
any app development in it. Here are my questions:

1. Where do the gurus go to get programming information? A newsgroup,
website, what?

2. What is the best freeware IDE, and what is the best professional IDE?

3. If you were a professional programmer like me who wanted to get up to
speed quickly, what resources would you use?

Thank you very much for your time.
 
R

Ryan Stewart

George Copeland said:
I have been a professional programmer for about 14 years on MVS, HP-UX, and
Windows. I have been following Java since about 1997, but I have never done
any app development in it. Here are my questions:

1. Where do the gurus go to get programming information? A newsgroup,
website, what?
http://java.sun.com/
For example: http://java.sun.com/j2se/1.4.2/docs/api/
And Google Groups.
2. What is the best freeware IDE, and what is the best professional IDE?
Much debated questions. Do a Google search. As far as free ones, I use
NetBeans because it's what I learned to use. It has its good points and bad
points. Oracle JDeveloper looks promising, though I've only tinkered with it
so far. Eclipse and IntelliJ Idea are two other free IDEs I've seen in use.
However, just about any experienced Java programmer will tell you to learn
the basic command-line stuff before getting into an IDE or you'll end up in
trouble. The Java Tutorial (below) is good for teaching you that.
3. If you were a professional programmer like me who wanted to get up to
speed quickly, what resources would you use?
http://java.sun.com/docs/books/tutorial/index.html
And Google Groups. (Notice a trend here? :)
Thank you very much for your time.
Not a problem. Good luck.
 
R

Robert Klemme

Ryan Stewart said:

plus:
http://forum.java.sun.com/
http://www.javaworld.com/
http://mindprod.com/jgloss/jgloss.html

I'd recommend these books:

Things that you can easily get wrong in the beginning: Java Pitfalls
http://www.amazon.com/exec/obidos/tg/detail/-/0471361747

There's even a new version which I don't know: More Java Pitfalls
http://www.amazon.com/exec/obidos/tg/detail/-/0471237515

If you want to dig into multithreading: Concurrent Programming in Java
http://www.amazon.com/exec/obidos/tg/detail/-/0201310090

Doug Lea also has a nice website at
http://gee.cs.oswego.edu/dl/

Regards

robert
 
P

perry

Good question and only someone whose been then there can save you time
on it.

While you'll inevitably end up using Borland's tools in one form or
another, there are other promising platforms out there (fortunately).
But Borlands freebie is not a whole lot different from their full blown
version. (And ofcourse there is always the wonderful Together product
which you'll find indepensible)

But before you get to enjoy any of that, you really need to start at
ground zero. It is quite simply, the quickest way to understand
everything Java is about. To fully appreciate Java, one must try to
imagine that perfect language they may have always ever thought of
writing if ever they wanted to write one themselves or had the time to
do so.

Well, enough plugging on Java and more about what you, the seasoned
programmer, must do, in order to quickly ramp up how to properly use the
language.

The first thing you must do is plan to spend the next 15 days going thru
it's certification study guide. There are a few on the market claiming
to be the #1 book for this purpose but pick only the one written by the
same people that wrote the certification exam.

http://www.amazon.com/exec/obidos/ASIN/0782140777/ref=pd_sxp_elt_l1/103-8442938-6823845

that is if passing the Java Certification exam is of any interest to
you. the reason why i recommend this is due to the fact that i studied
this one after i used another and i can say that due to subtle
differences in the texts, certain aspects of the Java language are not
highlighted. i believe these subtle differences to be of the upmost
importance for you, the seasoned professional, to be able to literally
port over your experiences with other developement languages and
understand how things are done in Java.

now, i know, you'll probably be thinking "but i can do this in a day".
why rush? what's the rush? why don't you plan instead to go get this
book and find a nice coffee shop somewhere and go thru each chapter, one
by one over the course of a week or two absorbing each concept as they
come to you (and try not to cheat, because you'll only be cheating on
yourself - the answers at the end of each chapter will be an excellent
way for you to figure out what you don't fully understand).

beyond that, your in for bit of a surprise. you are probably also
thinking, well, it looks nice enough (Java), but i'm not sure if it's a
real heavy duty language like C++. well if that's you line of thinking,
i'll bet the stockmarket your in for a rather delightful surprise....

but just like the matrix, i can only offer you the red pill, you have to
see it for yourself...

as for the seemingly more advanced tools like J2EE, get an understanding
of RMI, JDBC and perhaps JNI first. right now, there seems to be a Java
framework for every major concept out there and many to choose from to
suit your purposes. what i like about it the most though i think is that
everything just seems to want to work together, no struggle. everything
just seems to fit so nicely. i don't know why C++ people are so
intimidated by it, they shouldn't be. use C++ for developing operating
systems and areas where tight memory management is absolutely required,
use Java where garabage collection is not top priority or wherever you
want the best of both worlds and need to get something out the door
without reinventing the wheel (for the record, JIT native Java code runs
99.99% as fast as C++, sometimes faster depending on the app). there are
other languages too, do not discount those. just don't fall into the
trap of Java for everything but appreciate it for what it is....

but being a "professional programmer" i don't think i have to tell you
that...

cheers

- perry
 
C

Chris Uppal

George said:
1. Where do the gurus go to get programming information? A newsgroup,
website, what?

The documentation (the javadoc that comes with the JDK).
The source (comes in a zip file with the JDK)
These newsgroups.

Worth whisking through the Java tutorial on Sun's java site.

Other than that it depends on your tastes and on how you learn. Some people
love books with lots of examples, others (like me) prefer to work as much as
possible from the raw specs and standards.

One thing you should decide early is whether you are attempting to learn the
Java language (and the associated standard library), or whether you are
focussing on learning some application domain like J2EE.

Personally I'd advise against trying to learn domain specific stuff (even you
have considerable experience already of that domain) until you've got the
foundations solid.

Another thing to ponder: are you already an experienced OO programmer ? That's
a very difficult question to answer, even for yourself, since there are a lot
more programmers who /think/ they understand and use OO properly, than there
are who actually do.

2. What is the best freeware IDE, and what is the best professional IDE?

I think most people will tell you the same thing. Don't use an IDE until
*after* you've got well underway with Java. One reason is that IDEs by there
very nature attempt to hide some of the complexity of "what's really going on",
and you don't need that when you are trying to /learn/ what's really going on.
Another reason, paradoxically, is that all the IDEs I've tried are massively
complicated and so you end up putting more effort into learning the IDE than
into anything constructive (and, too, you have to understand Java concepts
pretty well before you can understand what the IDEs are trying to do).

The only reservation I have about that advice is that if you are new to OO,
then using an environment that is designed to emphasise OBJECTS may be an
enormous help. If that's the case then the /best/ thing you can do is go learn
Smalltalk before Java, but assuming that's not an option for you ;-) then maybe
using the BlueJ environment would be a good idea. I haven't tried it myself,
but I have read some of their discussion of what they are trying to do and it
looks good.

(None of the major IDEs emphasise objects in this way. They are wretched from
that point of view -- all you ever see is the source code for classes, you
never get a feel for working with real objects at all.)

3. If you were a professional programmer like me who wanted to get up to
speed quickly, what resources would you use?

Read as much as you can stand of the Java tutorial. Find a book which
approaches the subject in a way you are happy with (many people find Bruce
Eckel's "Thinking in Java" to their taste). Then *practise*...

Good luck

-- chris
 
P

perry

And as for where to get programming information on Java, true,
java.sun.com is the authority but they are not always the best tutors.
however, i have another surprise for you, depending on your budget, plan
on picking up a new Java book per week. the addiction hit me so bad, i
lined my office wall off with primarily Java books. as a matter of fact
for badness, i'll go find what i did with my old picture and post it for
you.

they are expensive but you can save money in two ways. one, to write all
this off as a business expense in one form or another. the 2nd method is
to go to 2nd hand book stores, because the beauty of Java is that it
really hasn't changed all that much since it's inception, hence books
written from the start are actually very useful. just another reflection
of how everything works well and builds on top of itself with Java. i
can say, it's been the best attempt at the principles of OO i've ever
seen successfully used in today's programming environment.

as for websites there's a new one everyday....

other than that you'll have to contact a consultant from one of the more
reputable companies, that is, with a focus on doing quality work versus
wasting your time... the best one i worked for is based in Dallas, TX.

www.osgcorp.com

and get whoever your working for to hire some consultants to come in and
give you a first hand view on Java and Object design principles and how
it can best help your company.

cheers

- perry
 
D

David Segall

George Copeland said:
2. What is the best freeware IDE, and what is the best professional IDE?
I'm no Guru but I have spent some time looking at IDE's. I was coming
from Visual Basic and my requirements were minimum cost and a "What
You See Is What You Get" editor for graphical user interfaces. Here
are my findings.

Netbeans (www.netbeans.org) is free and Open Source. I think you will
find it the best choice. Borland's JBuilder Foundation
(http://www.borland.com/jbuilder/foundation/) is also a free download.
I found JBuilder felt the closest to the VB IDE. Oracle's JDeveloper
(http://otn.oracle.com/products/jdev/content.html) is a free download
but the license severely restricts what you can do with programs you
write if you do not pay for it. If you are into large database
applications it is well worth your attention because it comes with the
equivalent of VB's data bound controls and is the cheapest of the
commercial "Enterprise" IDEs. It's also a great WYSIWIG HTML editor.

Sun One Studio 4 Community Edition, which is derived from Netbeans, is
still available, without charge, from
http://jsecom16d.sun.com/ECom/EComA...I9-401-TL9M&TransactionId=try&LMLoadBalanced=
but has been superseded by Studio 5. Sun suggest you use Netbeans if
you want a free version. Sun have some free on-line courses in using
Sun One and the transition from Sun One to NetBeans is trivial.

Websphere Studio Application Developer
(http://www-3.ibm.com/software/awdtools/studioappdev/) is based on
Eclipse but has many enhancements including a WYSIWYG editor for
GUI's. It is not free but a 60 day trial is available. I mention
Eclipse in this summary only because there will be an irate follow up
if I don't. :) Eclipse (www.eclipse.org) is a popular Open Source IDE
and there are free or cheap plug-ins like
http://www.cloudgarden.com/jigloo/index.html,
http://www.assisiplugins.com/index_start.html and
http://www.eclipse.org/vep/ that provide WYSIWYG GUI development.

To complete this list I should also mention the popular IntelliJ IDEA
(http://www.jetbrains.com/idea/index.html) which has recently added a
GUI builder. It is not free but you can download a 30 day trial. I
have not tried it.
 
E

Enrique

George Copeland said:
I have been a professional programmer for about 14 years on MVS, HP-UX, and
Windows. I have been following Java since about 1997, but I have never done
any app development in it. Here are my questions:

1. Where do the gurus go to get programming information? A newsgroup,
website, what?

Multiple resources, really. I read textbooks, visit ngs. Some people
like mags, but I feel they re-hash a lot of information that is free
elsewhere.
2. What is the best freeware IDE, and what is the best professional IDE?

I, personally, use a plain text editor. The IDEs will generate lots
of code for you, but that doesn't help you learn what the code does.
3. If you were a professional programmer like me who wanted to get up to
speed quickly, what resources would you use?

The platform is huge. Read java.sun.com to get a sense of the breadth
of technologies out there. White papers or other "executive
summaries" will provide similar perspective.

But to know the language you have to write the code. If you know what
specific applications you are targeting, focus on related
technologies. As you write the code, you will find yourself reading
the API documentation. That's where the learning really happens, IMO.

Apache.org is one big resource for learning about how the technology
is advancing. Folks keeping building more software on top of existing
software.

Finally, learn the command-line tools before you get wrapped up on
what IDE(s) to pick. All of those IDEs are using the command-line
tools.

You can probably get as many different opinions on how to go about
this as there are respondents.
 
T

Tim Tyler

In comp.lang.java.advocacy David Segall said:
Netbeans (www.netbeans.org) is free and Open Source. I think you will
find it the best choice. [...]
I mention Eclipse in this summary only because there will be an irate
follow up if I don't. :)

Giving it that sort of billing is likely to prove ineffective at
preventing such responses.
 
A

asj

George Copeland said:
I have been a professional programmer for about 14 years on MVS, HP-UX, and
Windows. I have been following Java since about 1997, but I have never done
any app development in it. Here are my questions:

1. Where do the gurus go to get programming information? A newsgroup,
website, what?


Over the years, I've noticed I get the most programming knowledge out
of books I've borrowed or bought (mostly bought), followed closely by
the internet docs. The reason is probably because books provide a much
more structured approach to learning, whereas most internet docs are
either too short and hasty, or scattered.

Some sites that might be useful for what books to buy:
Amazon.com actually has a Java section all to itself:
http://www.amazon.com/exec/obidos/tg/browse/-/3608/ref=br_bx_c_2_0/002-5868930-0098408

Also, I just found this
http://www.javashelf.com/


2. What is the best freeware IDE, and what is the best professional IDE?


Someone already gave a good list for general IDEs (eclipse, netbeans,
etc).

But if you're thinking of doing any J2ME work, and using stuff beyond
the J2ME Wireless Toolkit, then here are some more:
http://www.microjava.com/articles/techtalk/ide

IBM's Websphere Studio Device Developer is awesome because it allows
development beyond just Midlets into CDC profiles for handhelds and
more powerful smartphones:

http://www-306.ibm.com/software/wireless/wsdd/

3. If you were a professional programmer like me who wanted to get up to
speed quickly, what resources would you use?


depends on what niche of java you're going to get into, eh.
server-side? mobiles and other pervasive devices? smartcards? desktop
and gui (gasp!)?

probably for general purposes, i quick stop at javasoft.com would be
warranted, then head over to javaranch.com for newcomers...

Thank you very much for your time.

no problem.
 
M

Michael K?lling

I, personally, use a plain text editor. The IDEs will generate lots
of code for you, but that doesn't help you learn what the code does.

I think this is very bad advice.

I know, it is repeatedly said that IDEs are bad for learning Java,
because they

- generate too much code for you, or
- are too complicated, or
- hide too much stuff from you
- or all of the above.

While this is true for many IDEs, it is not true for all of them.

I am involved with the development of an educational IDE (so I am
heavily biased!), and I am convinced that you can learn to understand
OO _much_ better given the right environment tools.

The solution is not avoiding IDEs, it is choosing the right IDE.

This question comes up every couple of weeks, so a while ago I wrote a
summary of arguments why I think the "Don't Use An IDE"- advice is
wrong.

If you're interested, you can find it here:

http://homepage.mac.com/mkolling/mrt/C54415237/E848832883/index.html

Regards,

Michael
 
R

Ryan Stewart

Michael K?lling said:
I think this is very bad advice.

I know, it is repeatedly said that IDEs are bad for learning Java,
because they

- generate too much code for you, or
- are too complicated, or
- hide too much stuff from you
- or all of the above.

While this is true for many IDEs, it is not true for all of them.

I am involved with the development of an educational IDE (so I am
heavily biased!), and I am convinced that you can learn to understand
OO _much_ better given the right environment tools.

The solution is not avoiding IDEs, it is choosing the right IDE.

This question comes up every couple of weeks, so a while ago I wrote a
summary of arguments why I think the "Don't Use An IDE"- advice is
wrong.

If you're interested, you can find it here:

http://homepage.mac.com/mkolling/mrt/C54415237/E848832883/index.html

Regards,

Michael

I can agree with you on all but your third point. I would like to say a
majority, but I'll limit it to "a whole lot" of the newbs that come through
the groups (not mailing lists, btw) are having problems related to either
classpath or directory structure. If everyone took the time to at least
write their "Hello World" program in a text editor and compile and run it at
the command line, I suspect we'd all be better off.
 
C

Chris Uppal

Michael said:
I think this is very bad advice.

No. It's very *good* advice. Maybe not the *best possible* advice, but still
very good.

People tend to think that all IDEs are roughly the same except for different
ticks in their feature lists. Indeed for the vast bulk of Java IDEs that has
been true (VAJ was something of an exception). And -- since they are also
unsuitable for learning -- the general advice is to avoid them. If there was
much difference between them (on this issue) then the advice would be more
specific.

I quite agree that it's not /necessarily/ the case that an IDE is bad for
learning. In fact its demonstrably possible to make an IDE that is excellent
for learning -- although Java is not the language of choice for this.

I mentioned BlueJ in my own reply to the OP, as a possible exception to the
general rule. But, since I haven't actually /used/ it myself (or tried to
teach anyone with it), I can't honestly recommend it -- I /can/ (and do) say
that it's looks promising but I can't claim from personal knowledge that it
delivers on that promise.

In the absence of a wide user-base for BlueJ, questions about what IDE a
beginner should use will usually elicit a clamour of votes for peoples' own
personal favourites -- and that list is unlikely to include BlueJ. So those of
us that think that Eclipse, NetBeans, IntelliJ, et al, are bad learning tools
will continue to try to balance the clamour with a blanket "no IDE"
recommendation.

One comment on that: Obviously I don't agree that the standard advice is
"rubbish", but leaving that aside ;-) you've missed a reason for not using
IDEs, or -- if you prefer -- you've missed a reason for using BlueJ in
preference to a mainstream one. All the Java IDEs I've used or played with
have the same problem -- they are focussed on the mechanics of producing code.
They all emphasise syntax-colouring, code-completion, folding, and all the
other claptrap. Stuff which has a lot to do with the mechanics of editing text,
but nothing whatever to do with objects. And (IMO, anyway) the objects should
be the programmer's primary focus -- /behaviour/ not code. If you add the
code-centric attitude of the IDE to the already code-centric attitude that the
Java language tends to promote (through the intricacy of its syntax and surface
semantics) then it is hard for a programmer ever to get a feel for objects.
And, IMO, that's a very serious problem indeed.

When I looked at BlueJ some time ago, what I liked most about it was that its
designers seemed to feel the same way, and were trying to bring the objects
right into the foreground. That's why I suggested it might be a good place to
start if the OP wasn't already happy working with objects.

I hope that's still true, but just dropping in at <http://www.bluej.org/> to
see what's new, I find
Syntax colouring (14 May 2004)
New extension: Checkstyle (14 May 2004)
at the top of the News and Developments list -- not at all what I'd hoped for
:-( Although, to be fair, the article behind the Syntax colouring headline
does make a very good point.

-- chris
 
A

Anon Amous

Chris,
you have obviously put a lot of thought & experience into your post. Well
done.
 
C

Chris Smith

Ryan said:
I can agree with you on all but your third point. I would like to say a
majority, but I'll limit it to "a whole lot" of the newbs that come through
the groups (not mailing lists, btw) are having problems related to either
classpath or directory structure. If everyone took the time to at least
write their "Hello World" program in a text editor and compile and run it at
the command line, I suspect we'd all be better off.

I must be missing something here. It seems to me that, if students are
constantly running into problems with the details of command-line Java
tools (such as classpath and the like), then it would be best if they
didn't use those command-line Java tools. You seem to conclude the
opposite; that they should face them head-on and overcome their
difficulties.

I suspect that the difference lies in how fundamental we think those
concepts are. I think that the classpath environment variable is a
rather peculiar aspect of the JDK command-line tools. I much prefer,
say, Eclipse 3.0, where I can choose project properties and just check
all of the user-defined libraries that my project uses and expect
everything to work, without dealing with questions of whether I can set
an environment variable in one place or another, or oops I only set it
in this shell so it doesn't appear in other shells, etc. I think it's
clearly possible to develop Java software without worrying one bit about
environment variables. So I question why understanding the CLASSPATH
environment variable (or command-line option, etc) would be a necessary
prerequisite to learning programming in Java.

So, I guess I'm with Michael on this one.

--
www.designacourse.com
The Easiest Way to Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
G

Galen Boyer

I suspect that the difference lies in how fundamental we think
those concepts are. I think that the classpath environment
variable is a rather peculiar aspect of the JDK command-line
tools. I much prefer, say, Eclipse 3.0, where I can choose
project properties and just check all of the user-defined
libraries that my project uses and expect everything to work,
without dealing with questions of whether I can set an
environment variable in one place or another, or oops I only
set it in this shell so it doesn't appear in other shells, etc.
I think it's clearly possible to develop Java software without
worrying one bit about environment variables. So I question
why understanding the CLASSPATH environment variable (or
command-line option, etc) would be a necessary prerequisite to
learning programming in Java.

This is analogous to java programmers thinking they can code
database applications without understanding the underlying
database. Oh, I'm sorry, the JVM is the only world one needs to
know.
 
C

Chris Smith

Galen said:
I suspect that the difference lies in how fundamental we think
those concepts are. [...]
This is analogous to java programmers thinking they can code
database applications without understanding the underlying
database. Oh, I'm sorry, the JVM is the only world one needs to
know.

Well, I'm sure you won't be surprised to find that I disagree.

What we're talking about in this case are two different ways to provide
the same information to the JVM. One is rather more convenient because
it makes use of both persistent knowledge about the subject matter
(which JAR files and classes correspond to which libraries) and GUI
interfaces (adding things to a list rather than redefining an
environment variable). The other works, but is rather arcane.

And we're talking about an educational environment: which things should
be taught. The motivations for teaching a concept are (a) how relevant
it is to the teaching goal, and (b) how necessary it is for the student
to make progress. Clearly, setting the CLASSPATH environment variable
is neither the point of teaching programming, nor necessary to succeed
in Java programming, assuming you have the right tools. The choice of
setting PATH and CLASSPATH versus using an integrated environment is
relevant to neither functionality nor any other characteristic of the
result of programming.

That's clearly different from a database, where the information model of
the database, its performance characteristics, and its features have a
direct impact on the software development process.

--
www.designacourse.com
The Easiest Way to Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
M

Michael K?lling

Chris Uppal said:
Michael K?lling wrote: ....

No. It's very *good* advice. Maybe not the *best possible* advice, but still
very good.

People tend to think that all IDEs are roughly the same except for different
ticks in their feature lists.

I still have to disagree. The fact that people have misconceptions or
are not fully informed about available IDEs does not make ignoring the
most appropriate solutions good advice.

....
I mentioned BlueJ in my own reply to the OP, as a possible exception to the
general rule. But, since I haven't actually /used/ it myself (or tried to
teach anyone with it), I can't honestly recommend it -- I /can/ (and do) say
that it's looks promising but I can't claim from personal knowledge that it
delivers on that promise.

Yes, you did mention BlueJ - and I am very happy about that. I have
used it in my own teaching for seven years now (and I'm still using
it) and I can only agree with your reasoning here.

But then again - I am the designer of BlueJ, and I would, wouldn't I?
In the absence of a wide user-base for BlueJ, questions about what IDE a
beginner should use will usually elicit a clamour of votes for peoples' own
personal favourites -- and that list is unlikely to include BlueJ.

BlueJ has downloads of about 40,000 a months and is used for teaching
at least at 500 universities and training institutions around the
world - that is a large enough user base to make some reasonably
confident statements about it.

And our experience generally is: teachers who have actually used BlueJ
and another environment (and thus can make a first hand comparison)
are usually the most devoted users of BlueJ.
[...] you've missed a reason for not using
IDEs, or -- if you prefer -- you've missed a reason for using BlueJ in
preference to a mainstream one. All the Java IDEs I've used or played with
have the same problem -- they are focussed on the mechanics of producing code.
They all emphasise syntax-colouring, code-completion, folding, and all the
other claptrap. Stuff which has a lot to do with the mechanics of editing text,
but nothing whatever to do with objects. And (IMO, anyway) the objects should
be the programmer's primary focus -- /behaviour/ not code. If you add the
code-centric attitude of the IDE to the already code-centric attitude that the
Java language tends to promote (through the intricacy of its syntax and surface
semantics) then it is hard for a programmer ever to get a feel for objects.
And, IMO, that's a very serious problem indeed.

I couldn't agree more!!!! (Can't even decide how many exclamation
marks I should shoot behind this...)

I am aware that this is missing from that web page, while actually
being the main argument. This was, in fact, the main goal at the
beginning of the design of BlueJ.

I think, essentially, we are on the same wavelength here.

Regards,

Michael
 
S

Scott Ellsworth

Chris Uppal said:
No. It's very *good* advice. Maybe not the *best possible* advice, but
still
very good.

People tend to think that all IDEs are roughly the same except for different
ticks in their feature lists. Indeed for the vast bulk of Java IDEs that has
been true (VAJ was something of an exception). And -- since they are also
unsuitable for learning -- the general advice is to avoid them. If there was
much difference between them (on this issue) then the advice would be more
specific.

I disagree - I think that general advice is incorrect in many cases. A
good ide like IDE or Eclipse can help a student stay focussed on
objects, rather than syntax.

If you are trying to teach a language, or use it in a teaching
situation, you have a lot of choices about presentation. In the main,
though, you have a very limited number of facts that you can slip in to
the lesson, without overwhelming your students. Thus, you have to pick
and choose.

Learning javac, directories, jar files and command syntax, and the like
can be useful, and will be important to a student eventually. Given a
choice, though, between a student thinking about the proper methods for
their class, and thinking about the proper directory layout to make
javac happy, I want them thinking about the object and its behavior, not
the mechanics of the command line tool.

[...]
They all emphasise syntax-colouring, code-completion, folding, and all the
other claptrap. Stuff which has a lot to do with the mechanics of editing
text, but nothing whatever to do with objects. And (IMO, anyway) the objects
should be the programmer's primary focus -- /behaviour/ not code. If you add the
code-centric attitude of the IDE to the already code-centric attitude that
the Java language tends to promote (through the intricacy of its syntax and
surface semantics) then it is hard for a programmer ever to get a feel for objects.
And, IMO, that's a very serious problem indeed.

To me, you learn best by doing. Thus, the best way to learn how to
write decent classes is to write some, and then go through a critique.
I would rather they spend much of their early time thinking about the
result, rather than the process of getting there.

I want students to bang out a lot of code, with enough feedback so they
can see what good classes look like. If they can see the ideas I am
trying to get across in many contexts, they are more likely to see the
meaning behind the syntax.

If syntax coloring makes them familiar with what Java code should look
like syntacticly before we delve into the details, I am happy. They
will need the details, no way around it, but having the editor get them
started is a big help.

Put another way - in the early stages of learning a language or library,
there are a lot of facts to pick up. A good ide hides some of that
complexity. You will need to learn it eventually, which is why I also
get them using ANT fairly quickly, but I want their first Java efforts
to be pointed at the classes and what that means, rather than at the
mechanics. Let an IDE make those mechanics easier during the early
stages, so that they stay focussed not on code, but on solving their
problems with it.

Scott
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top