D
Dale King
Jumping in a month later, but I can't let these false statements go
unchallenged.
Well I am a past regular (trying to come back after an absence) and his
opinion is definitely favored by me.
And here we have the logical fallacy. I know of no IDE that hides any
part of the language (unless you want to count code folding and
selective display).
This is the mistake made by those who oppose IDE's. The command line
tools from Sun are NOT part of the language. You won't find these tools
specified in the JLS. By your reasoning if someone were to use IBM's
Jikes to compile and used their virtual machine then you would be using
a different language.
The Java language consists of what appears in the the compilation units
that get compiled. Note I say compilation units instead of files,
because the language does not require that you use files (and Visual Age
for Java did not use files).
The command line tools from Sun are just that, tools. They are to put it
another way a development environment, just as an IDE is a development
environment.
Even though I think I a newbie should start with a simplified
development environment (in particular BlueJ is a really good choice for
a newbie) that does not mean that I think they should "remain ignorant"
of Sun's command line development environment. But the problem with
Sun's development envirionment is that you have to know the language to
be able to really understand the environment. For example, how can a
newbie possibly understand how to setup a classpath before they even
know what a class is. If you don't think this is a real issue then just
take a look at the history of posts in this group from people having
trouble compiling or running their first program.
So recommending a newbie start with an IDE like BlueJ is not about
hiding the language, but instead it is to allow them to focus only on
the language. The key thing is that they have to get a foundation in the
language before they can grasp the more complex development environment.
And since Sun's tools are also a DE you are learning how to use the
language through that development environment. And it is important to
learn that, but it is much easier to learn that after you have learned
the language.
And once again they are simply using an unintegrated development
environment so it is not as though they are not using a development
environment.
I certainly agree that there are concepts that are part of learning to
use the command line tools that must be learned to be an effective java
programmer. But those concepts can and should wait until after the
language is learned.
No, the fact that they let the language learner focus on the learning
the language instead of learning the language (and not all IDE's are the
same in this regard which is why I recommend BlueJ for newbies) instead
of learning a development environment which they do not have the
knowledge foundation to even understand.
And there is the issue you have bypassed about what does the newbie do
when his program doesn't work? Using the command line tools you leave
them without a good debugger. a debugger is a valuable tool for learning
the language. Stepping through code is a a good educational tool.
unchallenged.
Of course you are. It just happens to be an opinion little favored by
most of the regulars here who voice an opinion on the subject (including
myself). You are likely to get a better reception if you employ a
little less sarcasm and a little more rhetoric.
Well I am a past regular (trying to come back after an absence) and his
opinion is definitely favored by me.
Moreover, Thomas made an implicit assertion and raised a valid question
that you have in no way responded to. In his opinion and mine, IDEs do
a good job of hiding many of the nuts and bolts of language usage,
And here we have the logical fallacy. I know of no IDE that hides any
part of the language (unless you want to count code folding and
selective display).
This is the mistake made by those who oppose IDE's. The command line
tools from Sun are NOT part of the language. You won't find these tools
specified in the JLS. By your reasoning if someone were to use IBM's
Jikes to compile and used their virtual machine then you would be using
a different language.
The Java language consists of what appears in the the compilation units
that get compiled. Note I say compilation units instead of files,
because the language does not require that you use files (and Visual Age
for Java did not use files).
The command line tools from Sun are just that, tools. They are to put it
another way a development environment, just as an IDE is a development
environment.
and
he asks why you think it is acceptable for students of the language to
remain ignorant of these matters. Inquiring minds want to know.
Even though I think I a newbie should start with a simplified
development environment (in particular BlueJ is a really good choice for
a newbie) that does not mean that I think they should "remain ignorant"
of Sun's command line development environment. But the problem with
Sun's development envirionment is that you have to know the language to
be able to really understand the environment. For example, how can a
newbie possibly understand how to setup a classpath before they even
know what a class is. If you don't think this is a real issue then just
take a look at the history of posts in this group from people having
trouble compiling or running their first program.
So recommending a newbie start with an IDE like BlueJ is not about
hiding the language, but instead it is to allow them to focus only on
the language. The key thing is that they have to get a foundation in the
language before they can grasp the more complex development environment.
The biggest problem I see with learning a language -- any language --
with use of an IDE is that what you really learn is how to use the
language via the chosen IDE.
And since Sun's tools are also a DE you are learning how to use the
language through that development environment. And it is important to
learn that, but it is much easier to learn that after you have learned
the language.
When faced with a different (or no) IDE, a
person who has learned that way is often lost. A person who learns
without reliance on an IDE, on the other hand, tends to afterward learn
_any_ IDE fairly quickly. Such a person also tends to use any chosen
IDE more effectively, because they understand better what the IDE is
doing for them.
And once again they are simply using an unintegrated development
environment so it is not as though they are not using a development
environment.
I certainly agree that there are concepts that are part of learning to
use the command line tools that must be learned to be an effective java
programmer. But those concepts can and should wait until after the
language is learned.
The fact that IDEs are _available_ is no particular support for an
argument that they are appropriate for language learners.
No, the fact that they let the language learner focus on the learning
the language instead of learning the language (and not all IDE's are the
same in this regard which is why I recommend BlueJ for newbies) instead
of learning a development environment which they do not have the
knowledge foundation to even understand.
And there is the issue you have bypassed about what does the newbie do
when his program doesn't work? Using the command line tools you leave
them without a good debugger. a debugger is a valuable tool for learning
the language. Stepping through code is a a good educational tool.