How to develop without an IDE?

A

Arne Vajhøj

In this case it's not ad hominem.

It certainly is.
If he is basing his complaints on
something he believes he read instead of what has been actually written.
This inability to comprehend what has been read is, by definition,
functional illiteracy, and someone who suffers from this problem is a
functinal illiterate.

On the other hand, if he actually read and was able to understand what he
wrote then his repeated intention to willingly misrepresent what others have
said is both dishonest and provocative; hence, the troll.

So, as this was not about "negating the truth" but just a case of calling a
spade a spade, this was no ad hominem.

It is a personal attack with absolute no substance in.

A textbook example of ad hominem.

Arne
 
A

Arne Vajhøj

Read up on "hyperbole".

Read up on usenet.
I don't understand. Are you saying that it it impossible to add new targets
to a makefile?

No.

He is saying that ant has a plugin architecture that allows
developers to create their own tasks.

Which you would know if you bothered to read about the tools you
are choosing between.
Interestingly GNU make's large built in rule database does not contain
anything related to compiling Java. How do you create your Makefiles in
a way as to invoke javac only for those files which have changed -
especially in light of the fact that one Java source file might create
multiple .class files?

Maybe build-in rules aren't needed, considering Make's [sic] static
pattern rules.

Or considering that Ant is better and more standard for the purpose.

I don't believe it is reasonable to declare that make isn't standard for
managing build processes.

Make is very much a standard for building C/C++ code and some other
languages.

But make is not a standard for building Java code.

And the topic is the second.

Arne
 
A

Arne Vajhøj

I made no such claim. I would appreciate it if you stopped trying to pin on
me these wild claims you are making up as you go along.

Well - you posted it in this thread.

Lew just make the mistake of assuming that you posted it with a purpose.

You can prevent that type of mistakes by not posting
irrelevant comments.
Frankly, that's what every single one of those blokes on the internet says.

As a warning, I should inform you that this was also a hyperbole.

Stop posting irrelevant info.
By your reasoning, you should be using make as it is actually the standard
in the real sense of the word. ISO standard and all. Instead, it appears
you are hell-bent on criticising make.

I don't think he or anybody else criticized make.

It is just not a good tool for building Java.

But since make is not supposed to be used for building Java, then
that is not criticism of make.
Again with your unfounded assumptions and baseless accusations. Can you
point out exactly where anyone stated that they refused to learn how to use
ant or even maven? You can't, because no one, besides you with your wild
imagination, ever said it.

Let me quote:

#But wasting time checking each and every alternative that some
#bloke on the internet said was the winning strategy is also not a
#winning strategy.

Either that was about ant or it was irrelevant for the thread.

Arne
 
A

Arne Vajhøj

Meanwhile, the post you've replied to doesn't mention any of that, and it
does so due to a simple fact that you've missed: this is not, nor it ever
was supposed to be, an editor war. Everyone uses the tools they choose to
use, and if everyone is happy with their choice then all is well.
Criticising others for using a different tool than the one they chose is a
complete waste of time. I didn't made that mistake. So, I wonder why you
chose to make it.

To make things as clear as possible for you, this discussion is never, nor
it will be, about which editor is better than some other editor.

You actually wrote:

#They also tend to be inferior in a considerable number of aspects,
#particularly when compared with the features provided by some text
#editors.

If you did not want to discuss IDE vs editor, then do not bring
up the topic.

Very simple!
It is
about setting up an automatic build process that doesn't rely on a IDE.

It has been explained to you many times that ant and maven are the tools
to use.

And they can be used command line, inside an IDE or from a text editor
with capabilities to run external tools.

Arne
 
A

Arne Vajhøj

I talked about the features provided by some text editors and some IDEs,

No.

You talked about IDE's in general not about some IDE's.
and
to me some text editors provide a set of features which are invaluable and
still up to this day can't be had with any IDE.

Still without any examples.
Surely you understand that
the decision of whether something is better or worse than something else is
subjective and a matter of personal opinion

Don't you understand English??

Let me quote myself.

# And you were talking about features provided not whether
# you liked them or not.

Is that difficult to understand?
Then, I don't know about you, but when I express an opinion I express my own
and no one else's, and I also do not believe I represent anyone but me.

Nobody cares about your opinion.

We do care about whether features are present or not.

And so you admit that you got confused and in the process managed to both
entirely miss the point and fail to read or, worse, failed to understand
what I wrote. Quite possibly both are related. After all, no one but
yourself said anything about IDEs having more or less features than editors.

That was what you wrote.
No one else made that mistake.

Not true. You have gotten several responses along those lines.
If you doubt this then do point out exactly
where anyone else, particularly me,

#They also tend to be inferior in a considerable number of aspects,
#particularly when compared with the features provided by some text
#editors.
It looks like you don't enjoy making mistakes, and when you do you have a
hard time admitting to them.

That sounds as a perfect description of yourself.
Resorting to name-calling doesn't help
you,either, as it isn't a magic matra that makes all your screwups go
magically away. It only shows how desperate you become.

Let me quote what you wrote in another post:

#So, you either are a functional illiterate or a troll.

You were saying what?

Arne
 
A

Arne Vajhøj

Nonetheless, we should understand that there is no such thing as a "one size
fits all" solution. No IDE is the best tool for every conceivable scenario
ever faced by every programmer that ever lived. One way to prove this is by
pointing out the fact that there is more than a single IDE out there, and
even in this day there are fools who waste their time with IDE flame wars
complaining how their IDE is better than someone else's, and how those who
don't use a specific IDE are somehow idiots and trolls.

????

it was you that starting call people trolls!
Now, just to point out how a "modern IDE" is inadequate in some
circumstances, I can point you to those cases where a programmer, for some
reason, happens to need to work on some project with one of those flimsy
netbook computers, the ones with tiny monitors and limited disk space.
Running an IDE on one of those systems is an experience that only a
masochist can enjoy, and even then he would have trouble doing any work.
Meanwhile, it isn't hard to find a bunch of text editors that work perfectly
well with those limitations.

It is certainly true.

But does not really related to your original claim about features.

And it is not a particular important aspect for a discussion about
development tools as netbooks are not intended for that purpose.

Arne
 
A

Arne Vajhøj

Here you go again, making up accusations as you go along. You can't help
yourself, can you? Far from me to screw up another of your baseless rants
and raves, but where exactly did I said anything about "refusing to learn
the standards"? Nowhere. Once again you felt the need make this stuff up.

Let me quote:

#But wasting time checking each and every alternative that some
#bloke on the internet said was the winning strategy is also not a
#winning strategy.
I've started this thread to try to get some helpful tips from knowledgeable
and experienced people on how to set up an automatic build system that can
be used through a CLI and doesn't depend on an IDE. In the process I've
received quite a few helpful tips, to which I'm grateful. Yet, this
discussion also managed to attract the likes of you, who appear to believe
that it's acceptable to vent your frustrations with your life by repeatedly
assuming a petty and contentious attitude regarding anything at all, and
inthe process wasting your time ranting and raving about accusations you
repeatedly make up from the top of your heads. You, with your anti-social
attitude, your lies and your made-up accusations, are not helping others or
even yourself.

So, if you don't have anything positive or helpful to add to any discussion
then don't. Don't even bother wasting your time writing and posting a
reply. Find another way to vent the frustrations you have with your life.
This newsgroup doesn't need more noise to muffle those who are genuinely
knowledgeable and helpful, and the world doesn't need yet another troll
throwing a tantrum on the internet.

You attack people and tell them not to reply??

Not the smartest move I have seen. More the opposite.

Arne
 
A

Arne Vajhøj

I found that using one good tool for everything is better than
mixing things.

The one language, one IDE/editor, one build tool, one OS etc.
idiom does not work well in the real world.

If you want to develop in Java (at least for a longer time)
one should learn the proper tools.
As long as the idea that drives the tool is: Perform this action
to update these prerequisites that this target depends on, then better
to use one tool that does this better and for many other things, not
just .java files.

In my tree, I have .f, .f90, .c, .c++, .java, .tex, and many
other files that I want to 'update' in my tree.

Using one tool for all, is better, because one becomes better
at using this one tool, and things are integrated better.
gnumake+bash is pretty much all what I need.

I tried ant, and found that I am doing the same thing I
am already doing in my Makefile, just had to use different
syntax. (I also did not like XML syntax). Also looked at Ruby
script, and few other things. They all pretty much try to do
what Make allready does but using different syntax.

It is very easy to use gnumake to build Java and make jar files and
all. Here is a link showing Makefile for Java from the best book
on gnumake "Managing Projects with GNU make" by Robert Mecklenburg

http://www.makelinux.net/make3/make3-CHP-9#make3-CHP-9

Chapter 9 is all about using make for build Java.

As others said. If you are using an IDE with its own build
system. It is better to have your own makefile to build
your tree, independent of what the IDE has. This way, if
you changed IDE, or move your tree somewhere else where
this IDE is not available, you can still build your tree
any where.

All major Java IDE's support ant from inside the IDE.

And if you have followed the Java world a bit then you would
see that make is not the tool of choice in the Java world.

That honor goes to ant and Maven.

And let me quote something from the link you gave:

<quote>
This is primarily due to the way the import directive works. Similar to
a #include in C, this directive is used to allow access to externally
defined symbols.
</quote>

Java import is not similar to C include.

And neither are used specifically to allow access to symbols.

Arne
 
R

Robert Klemme

Nonetheless, we should understand that there is no such thing as a "one size
fits all" solution. No IDE is the best tool for every conceivable scenario
ever faced by every programmer that ever lived.

You apply a common discussion method here: make the claim of the other
side much bigger than what actually was said to make it easy to show how
absurd it is.

Please stop posting commonplaces like this and discuss concrete claims -
not abstract statements about tool A vs. tool B as you did before.
Now, just to point out how a "modern IDE" is inadequate in some
circumstances, I can point you to those cases where a programmer, for some
reason, happens to need to work on some project with one of those flimsy
netbook computers, the ones with tiny monitors and limited disk space.
Running an IDE on one of those systems is an experience that only a
masochist can enjoy, and even then he would have trouble doing any work.
Meanwhile, it isn't hard to find a bunch of text editors that work perfectly
well with those limitations.

If a program needs to be deployed on such a machine this does not
automatically mean that it needs to be edited or compiled there.

Regards

robert
 
B

BGB

The one language, one IDE/editor, one build tool, one OS etc.
idiom does not work well in the real world.

agreed.


If you want to develop in Java (at least for a longer time)
one should learn the proper tools.


All major Java IDE's support ant from inside the IDE.

And if you have followed the Java world a bit then you would
see that make is not the tool of choice in the Java world.

That honor goes to ant and Maven.

not disagreeing here...

but, it may depend some on the project (like, which languages are
already most dominant in the project, ...). it is a little harder to
make a clear case if the Java code is only actually a small part of the
total codebase.

And let me quote something from the link you gave:

<quote>
This is primarily due to the way the import directive works. Similar to
a #include in C, this directive is used to allow access to externally
defined symbols.
</quote>

Java import is not similar to C include.

And neither are used specifically to allow access to symbols.

I think it may depend some on "how does it look from afar?".

the casual observer may not much think or care much about the
differences between, say, "inlining big globs of text" and "gaining
visibility into packages filled with classes" or similar.

they may instead think "using this directive allows me to use the
library", while paying little attention to the hows or whys.

so, to them, "X looks like Y" may be more important than "X is Y" or "X
is not Y" (even if this can get annoying sometimes, 1).

1: it is sad, but sometimes it is still necessary to try to explain to
people the concept of "call-by-value" and "call-by-reference" and why
they can't just assign an argument in a called method and expect the
caller to see the change "even if the variables have the same name".

nevermind trying to explain to people why things like indentation are
important, ...


this seems to be more the type of people the quoted paragraph was
intended for (vague wording more intended to give the basic idea than to
be strictly accurate).
 
A

Arne Vajhøj

I think it may depend some on "how does it look from afar?".

the casual observer may not much think or care much about the
differences between, say, "inlining big globs of text" and "gaining
visibility into packages filled with classes" or similar.

they may instead think "using this directive allows me to use the
library", while paying little attention to the hows or whys.

so, to them, "X looks like Y" may be more important than "X is Y" or "X
this seems to be more the type of people the quoted paragraph was
intended for (vague wording more intended to give the basic idea than to
be strictly accurate).

It can be fine to come with an approximate correct explanation
if it is simpler to understand.

But it is not good to come with a completely false explanation
just because it is simple.

Java import and C include is not similar at any distance.

Try ask a C++ programmer if he thinks that include and using
are similar!

Arne
 
G

Gene Wirchenko

You should.

You need to distinguish between any tool and tools that are very
widely used.

Very widely used does not mean everywhere. I would be curious as
to why he does not know the tool. For al I know, it might be that the
unusual tools worked better than the usual tools on the projects that
the person had worked on. Or maybe, he just had no choice in the
matter.
It is not a problem not to know anything about some rare obscure tool,
but knowing tools that are used by 50% or 30% of all Java developers
is a problem.

So the 50% to 70% who do not use a tool should still know it?
Rather a waste of time.

I am more interested in the reaction to "We use <tool> here."'

Sincerely,

Gene Wirchenko
 
G

Gene Wirchenko

[snip]
But it is only 1/3 of the problem that is the actual lack
of Ant skills - the 2/3 of the problem is the attitude.

Yes.

I am highly-resistant to flavour of the<time period>.

Ant has been widely used for over a decade!

I was discussing the general case. I have seen too many cases of
"This is the greatest tool since ..." and when I try it, it fails on
very simple cases of mine.
You need to have the skills in demand. If you want to work in
the business - if you are coding as a hobby or part of an entirely
different profession, then it may not matter much.

True, but I am not going to drop everything because something
else comes out.
There may be a lot of noise.
"may"?

But if you actually read some of it you would find out that
ant is used by about 50% of Java projects for builds (Maven
takes the majority of the rest).

Fine. I am not coding in Java anymore, because I found that it
did not match what I needed. I do like the discussions such as this
one.
That is fact.

I am not challenging it. I still decide what I use though.

Sincerely,

Gene Wirchenko
 
B

BGB

It can be fine to come with an approximate correct explanation
if it is simpler to understand.

But it is not good to come with a completely false explanation
just because it is simple.

Java import and C include is not similar at any distance.

well, both are used to make use of a library, even if what they do and
how they work is considerably different.

both also have a word starting with the same letter and appear near the
top of a source file, and are vaguely similar looking, also sort of
making them "similar".


I also did once see a person try to do something like (in C++):
#include <javax.swing>

and then respond in their defense that "C++ and Java were basically the
same thing"... (nevermind if they are not...).

Try ask a C++ programmer if he thinks that include and using
are similar!

well, there is an important difference here:
you can't use 'using' to see a namespace which hasn't already been
included, and also 'using' is typically used differently as well.

so, it is more like comparing C / C++ #include and C# using.
 
A

Arved Sandstrom

Very widely used does not mean everywhere. I would be curious as
to why he does not know the tool. For al I know, it might be that the
unusual tools worked better than the usual tools on the projects that
the person had worked on. Or maybe, he just had no choice in the
matter.


So the 50% to 70% who do not use a tool should still know it?
Rather a waste of time.

I don't think it is, not in this case. There are few Java build tools:
it really comes down to command line, IDE, Ant and Maven. Developers
should understand C.L., so we are really talking about whether they
should know all of Ant, Maven and the build methodology for at least one
IDE.

If they use an IDE at all they'll know how to build in it, that's taken
care of. So what about Ant and/or Maven?

If they have any kind of build automation, and ideally a CI system, then
a build system like Ant or Maven is attractive. And they _should_ have
CI triggered off scheduling and/or commits, so it all ties together.

If they think they'll switch IDEs, or team members use different IDEs,
or they simply don't want to tie builds to an IDE, then Ant or Maven are
also attractive.

Over the course of a few years any decent developer can try at least one
realistic Ant buildfile for a project, and a POM for Maven for the same
or different project. It's maybe a few days' worth of hours, and once
you've learnt the fundamentals of both systems you're better prepared to
assess which one to use in the context of project builds in a larger CI
system.

If you know the basics of all the major Java build systems then you are
seriously better placed to decide which one should be used for a given
situation. If you don't have that knowledge you may as well keep your
mouth shut during build discussions. As senior as you might be, it'll be
*you* that's the waste of time.

You could just ignore almost all of that. In which case, sooner or later
as a senior or intermediate Java developer you'll end up in a new
company or in a new project where Ant or Maven is used. If I am the
technical guy in charge of you in that new environment and I find out
you're clueless about And and Maven *and* you've got 5 or 10 years in
the biz with most of that being Java, you'd best hope you're not on your
probationary period.
I am more interested in the reaction to "We use <tool> here."'

So would I be. And you know something, if we say "we use Ant here", and
someone gets pissy because they don't know Ant and prefer Maven, I'm
shutting them out - they are getting told in no uncertain terms that
they are already making themselves look bad, and that they'd best be
busy on their own time learning Ant.

If on the other hand the new guy says, when learning that "we use Ant
here", that he knows both Ant and Maven well, and makes a reasoned
argument that he should continue to use Maven (Ant->Maven and Maven->Ant
conversions aren't that grotesque), and even that maybe *all of us*
should switch to Maven, I'll listen. I'll listen because he's bothered
to learn his tools.
Sincerely,

Gene Wirchenko

AHS
 
A

Arne Vajhøj

well, both are used to make use of a library,

Neither of them are used to make use of a library.

Java import allows you to reference classes without package name.

C include includes some source code from another file in the
compilation of current file.
both also have a word starting with the same letter and appear near the
top of a source file, and are vaguely similar looking, also sort of
making them "similar".

C include can be anywhere in the file.

They do both start with "i", but so does ice cream.
well, there is an important difference here:
you can't use 'using' to see a namespace which hasn't already been
included, and also 'using' is typically used differently as well.

Namespaces are not necessarily included and you can be using
using without any include at all.

Arne
 
A

Arne Vajhøj

[snip]

But it is only 1/3 of the problem that is the actual lack
of Ant skills - the 2/3 of the problem is the attitude.

Yes.

I am highly-resistant to flavour of the<time period>.

Ant has been widely used for over a decade!

I was discussing the general case. I have seen too many cases of
"This is the greatest tool since ..." and when I try it, it fails on
very simple cases of mine.

Well the thread was about build tools.

And the argument were to use ant.

I don't think anyone has claimed a need to learn any tool under
the SUN.
True, but I am not going to drop everything because something
else comes out.

As explained then Java build tools is a relative stable market.
Fine. I am not coding in Java anymore, because I found that it
did not match what I needed. I do like the discussions such as this
one.


I am not challenging it. I still decide what I use though.

Obviously.

The point people were trying to make is that you will not look
good at the Java job market if you don't know ant - especially
not with arguments like some of those posted here.

Arne
 
A

Arne Vajhøj

Very widely used does not mean everywhere. I would be curious as
to why he does not know the tool. For al I know, it might be that the
unusual tools worked better than the usual tools on the projects that
the person had worked on. Or maybe, he just had no choice in the
matter.

Who would hire somebody that only know about a very specific and highly
unusual environment?
So the 50% to 70% who do not use a tool should still know it?
Rather a waste of time.

Where do you get "50% to 70% who do not use a tool" from?

With 30%-50% usage for both ant and Maven that sounds impossible.

Arne
 
B

BGB

Neither of them are used to make use of a library.

Java import allows you to reference classes without package name.

C include includes some source code from another file in the
compilation of current file.

this is what they do (or, how they work), but the issue is not what they
do, but what purpose they are used for.

C include can be anywhere in the file.

but is most often at the top (except maybe when writing headers or
similar, where near the bottom is also common).

They do both start with "i", but so does ice cream.

yes, but ice-cream is not a keyword in either language.

Namespaces are not necessarily included and you can be using
using without any include at all.

except in most cases this will not accomplish nearly as much.

"using namespace std;"

by itself, will not give access say, to iostream, hence why people
generally still need to use #include.
 
G

Gene Wirchenko

Who would hire somebody that only know about a very specific and highly
unusual environment?

You keep putting twists in your responses. I did not say "only";
you have just added it.
Where do you get "50% to 70% who do not use a tool" from?

Simple negation. If 30% to 50% of all Java developers use
certain tools, then 100%-30% to 100%-50% (= 70% to 50% which
normalises to 50% to 70%) do not.
With 30%-50% usage for both ant and Maven that sounds impossible.

1) Overlap. Some use both.

2) It was your figure. Perhaps, you got it wrong. This is not
normally a big deal, but when you keep hammering on a point, it would
be nice if you had your facts straight.

Sincerely,

Gene Wirchenko
 

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,733
Messages
2,569,439
Members
44,829
Latest member
PIXThurman

Latest Threads

Top