How to develop without an IDE?

A

Arne Vajhøj

On Tue, 24 Apr 2012 11:24:14 -0300, Arved Sandstrom

[snip]
I'll tell you what no Java developer's career depends on: being able to
write a makefile to build a Java project.

Does someone's career depend on being able to use Ant? If it
does, then why can he not simply pick it up when he needs it?

I prefer to learn to use tools that will be of use to me in
preference to those that only might. There is so much software out
there that I have to budget my learning time to items which will give
me a return.

It is almost 100% sure that a developer will need to work with
Ant within a reasonable time frame (like 5 years).

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.

Arne
 
A

Arne Vajhøj

It was a hyperbole.

And surely you are aware that a considerable number of people who spend a
portion of their time writing Java code don't exactly make that their
profession.

That is true.

But best practices for Java programming is what works for professionals
not what hobby programmers consider fun.
It isn't. 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.

Not particular relevant.

We are discussing whether to use one of the tools that 95-99% of
all Java developers use.

We are not discussing every alternative under the some.

Learning from others is a winning strategy.
Nevertheless, after a quick google, I stumbled on a tutorial on how to
"write and use makefiles to build java applications". It doesn't rely on
static pattern rules, and instead uses suffix rules. I don't know how well
this works, but you are free to give it a try and see if it doesn't work.

On a side note, I don't believe that the point is to prove that the make
tool can be made to work better than alternatives such as ant, but only that
it actually works.

All experience shows that make and Java is not a good mix.

Use the tools designed for the task.

Arne
 
R

Rui Maciel

wrote:
That's a good find, and I appreciate you pointing it out to this list.
It's actually been several years since I've dealt with make's build
rules in any way, and a small refresher wouldn't be bad for me.

Thanks. I'm glad I could help. I was only aware of this because a while ago
I happened to stumble on it while reading up on suffix rules. It appears
that nowadays there isn't a lot of people who write their own makefiles,
instead relying on tools to generate scripts for tools that generate scripts
for tools that... So, this sort of stuff tends to be left in obscurity.

However, in the Java world, ant is the standard build program. (Or
maven; however I haven't got into maven yet.) There's no way you can
avoid ant. Any project that exists in Java, any deliverable you get
from an outside contractor or firm, will invariably use ant. It is
simply "the standard."

So I'd recommend you learn to use it. First, it avoids fumbling around
making your own static rules, and second you will have to learn it
eventually, regardless. So it might as well be on your own terms, and
on your own schedule.

I see what you mean.

I found ant's use of XML off-putting at first as well, but it becomes
easier to deal with, and more natural to write, after you've hand
written a couple of basic project definitions. Just go for it, and
don't sweat the new stuff you'll learn.

The XML bit was really off-putting, mainly because XML is off-putting in
general.

One aspect where apache ant appears to be more helpful than make is the
explicit support for setting up a project to handle compilation on a
dedicated directory somewhere in the project tree. This is also possible
with make, but it requires a tiny bit of added work than simply pointing out
a path.


Thanks for the help,
Rui Maciel
 
R

Rui Maciel

Martin said:
Simple. Do just as you would for, say, a C project but use Ant instead of
make.

Its the norm to use a single build.xml (ant's equivalent of Makefile) to
do everything that make will, i.e. build, clean the source structure,
install the jarfiles. The only significant differences are that its
working with a package hierarchy rather than a set of modules in separate
directories and that it will usually run javadocs too.

This is how I usually work with Java projects, often over an ssh session.

Thanks for the help, Martin. I had read your post a while ago, but waited
until after I read up on your suggestion before posting a reply.

It appears you are right on the money. As an added bonus, as some IDEs rely
on apache ant to manage builds, it appears it makes it possible to develop
with IDEs and text editors (and also switch between both), not only to write
code but also update the build script, without experiencing any hickup in
the process. That's nice.


Once again, thanks for the help, Martin. Kudos!
Rui Maciel
 
M

markspace

The XML bit was really off-putting, mainly because XML is off-putting in
general.


You can copy the basic build file from the tutorial, and save it as a
"template" for future build files. You only have to change two strings
normally to get it to work on a new project.

One aspect where apache ant appears to be more helpful than make is the
explicit support for setting up a project to handle compilation on a
dedicated directory somewhere in the project tree. This is also possible
with make, but it requires a tiny bit of added work than simply pointing out
a path.


Another thing that ant does is makes portability easier. I develop on
Windows. Ant converts all paths with a '/' to the proper file separator
for the local OS. That's a nice feature if you've got a team switching
between Unix and Windows.

There's other portability issues too, like using FileSets or PatternSets
instead of relying on tools like ls, find and grep that might not be
available on non-Unix systems.
 
R

Robert Klemme

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

Ad hominem isn't really helpful either...
Either way, you are
not helpful. So, if you don't have anything helpful to add then go waste
your time and your wild imagination elsewhere.

Lew is usually pretty good at exhibiting the weak points of an argument.
People tend to not like to hear that, but it is totally possible that
they waste good advice that way...

Kind regards

robert
 
L

Lew

You are assuming that everyone's career depends on how well they are able to

No, I'm not.
manually set up an ant build script to build a Java project. That's a bad
assumption. I would bet that a significant number of people who write Java
code for a living never bothered to manually tweak an ant build script, let
alone took the time to learn that tool.

My point went right over your head, apparently.

I was referring to your unwillingness to learn tools and skills needed for new
environments. Your resistance to learning is what is the death knell. That's a
universal requirement for success as a programmer, not just in Java, and
without the commitment to learn and grow, you'll wither and die, or worse, end
up a manager because your programming skills, such as they are, will utterly
cease to be relevant and you won't be able to adapt for lack of practice.
Bongggg. Bongggg.

I'll take your bet. How much? Every single Java shop where I've worked since
2000 or 2001 has used Ant, or later, Maven, or both to build Java
applications. Every single Java programmer with whom I've worked in that time,
and every one with whom I've associated in Java Users Groups, has been at
least minimally conversant with Ant.

And what do you deem "significant"? The worst 5% of Java programmers? The
worst 10%? How much to be significant?

In every profession there are the virtuosi and the, let's call them barely
competent. Those in the Java world who refuse to learn the standards of that
world doom themselves to the latter category, just as in any profession. Those
who refuse to learn, or take the universal advice (has any of our experts
advised you to ignore Ant and focus on make for Java?) are hurting themselves
and all their clients. Do you really want to be that guy?
 
L

Lew

Rui said:
So, you either are a functional illiterate or a troll. Either way, you are
not helpful. So, if you don't have anything helpful to add then go waste
your time and your wild imagination elsewhere.

Plonk.

Too bad for you.
 
R

Rui Maciel

Arne said:
????

There is certainly a strong element in personal preferences for
specific tools.

But that has absolutely no relevance.

You were not talking about specific tools but about IDE's and
text editors.

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

I talked about the features provided by some text editors and some IDEs, 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. 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?

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.
Don't you, or do you actually believe that when you state your opinion you
are actually speaking for a group of people?

Well - you brought up the discussion about features provide by IDE's
and editors.

And we pointed out that you were wrong because editor+tools does
not have less features than editor.

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.
No one else made that mistake. If you doubt this then do point out exactly
where anyone else, particularly me, made that idiotic claim. Don't be
surprised if you find yourself on a wild goose chase or facing the fact that
you failed to read something.

So, if you have a problem with silly claims then, well, just stop making
them, and stop using your imagination as a basis for silly arguments.

And the rest is just your hopeless pathetic attempts to avoid
admitting your fault.

It looks like you don't enjoy making mistakes, and when you do you have a
hard time admitting to them. 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.

So, come back after you searched where exactly anyone else made that idiotic
claim you invented, and then let's see who is is engaged in "hopeless
pathetic attempts to avoid admitting" their fault.


Rui Maciel
 
R

Rui Maciel

Robert said:
Ad hominem isn't really helpful either...

In this case it's not ad hominem. 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.

But I agree this is a a waste of time, and completely unhelpful.


Rui Maciel
 
R

Rui Maciel

Lew said:
No, I'm not.

Of course you don't. Nevermind what you actually wrote, or how you
proceeded to rant about how anyone's career is affected by it.

My point went right over your head, apparently.

I was referring to your unwillingness to learn tools and skills needed for
new environments.

As I've pointed out before, you repeatedly show that you have a bit of a
problem in basing your arguments and criticism on unfounded assumptions.
In this case, how exactly do you go from "I would prefer" to
"unwillingness"?

Your resistance to learning is what is the death knell.
That's a universal requirement for success as a programmer, not just in
Java, and without the commitment to learn and grow, you'll wither and die,
or worse, end up a manager because your programming skills, such as they
are, will utterly cease to be relevant and you won't be able to adapt for
lack of practice.

here you are again with your wild assumptions and making up accusations as
you go along. I'm still not sure if you engage in this sort of behaviour
because you honestly have difficulty reading other people's comments, or
because you choose to intentionally misrepresent what they actually say to
the point where you actually make stuff up to base your criticism.

In this particular case, you are trying to accuse someone who started a
thread to help him learn how to manually set up a build process of...
"unwillingness to learn" and "resistance to learning". This is how much far
off the deep-end you insist in putting yourself.

Bongggg. Bongggg.

I'll take your bet. How much? Every single Java shop where I've worked
since 2000 or 2001 has used Ant, or later, Maven, or both to build Java
applications. Every single Java programmer with whom I've worked in that
time, and every one with whom I've associated in Java Users Groups, has
been at least minimally conversant with Ant.

And what do you deem "significant"? The worst 5% of Java programmers? The
worst 10%? How much to be significant?

I see you felt the need to leave the "no true scotsman" door opened for your
silly argument. You know quite well why you felt the need to set up that
subterfuge.

In every profession there are the virtuosi and the, let's call them barely
competent. Those in the Java world who refuse to learn the standards of
that world doom themselves to the latter category, just as in any
profession. Those who refuse to learn, or take the universal advice (has
any of our experts advised you to ignore Ant and focus on make for Java?)
are hurting themselves and all their clients. Do you really want to be
that guy?

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.
It's like you have a hard time dealing with reality and so you feel
compelled to take refuge in your imaginary world, where everything is a
figment of your imagination and the only connections to reality are only
there for your personal convenience, and only when they are convenient.
Once it isn't convenient, you just contradict yourself and proceed as
before.

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.


Rui Maciel
 
G

Gene Wirchenko

On Tue, 24 Apr 2012 14:07:48 -0300, Arved Sandstrom

[snip]
Does someone's career - let's say current job - *depend* on knowing Ant?
I doubt it, not in and of itself. But if I had someone working for me as
a Java developer, unless they were an absolute newbie I'd look askance
at them not knowing certain things by a certain point in their
professional development.

Given that there are so many tools out there, I would not take
such an attitude. I *would* want to see that the person had done
something adequate.
I have worked with intermediate Java developers - people who have used
basically nothing but Java in their entire career - who don't know Ant,
don't know Maven, don't know Ivy, don't know Hudson/Jenkins or any other
CI system, only know JUnit - sort of - out of all the available test
frameworks, aren't up to speed on any Java API except for the ones that
they've had to use for work. You then come to find out that they barely
know XML: no knowledge (or very deficient knowledge) of XSLT or XPath,
for example. You come to find out that they don't know Powershell on
Windows, bash or sh or ksh on UNIX, or even DOS-type batch files. They
have only superficial knowledge of regular expressions.

That is not the situation I was referring to. I mean someone who
does know the language well, can produce, but just has not worked with
the particular tool in question.

[snip]
I have a great deal of tolerance for someone who has to learn something
unexpected. We all have to do that on occasion. I have considerably less
tolerance for an intermediate or senior developer who is _routinely_
having to "pick up" skills just when they need it. They're doing it on
company time and client time.

But we are almost always doing that. Determining what is needed
is learning just in time. That might entail having to dig into the
libraries some more, for example.

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>. If I have
something that is working well for me, I am unlikely to change short
of a compelling reason. If there is good reason, I will try new
things. There is so much noise though of so many tools that I
generally need a reason before proceeding, and I am very likely to
drop something cold if it turns into a time-waster.

Sincerely,

Gene Wirchenko
 
G

Gene Wirchenko

Sure, but there scenarios where not knowing it is very definitely your
problem. Here's a fairly common one: you join a project team where the
project standards are enforced and they say Ant is the project build
tool, but you don't know it. You may be cut some slack while you get up
to speed on Ant but you may well find yourself out on your ear if you
insist on using something else, e.g. make. As AJS says, if the project is
about to hit a deadline your need to learn on the job will not make you
popular with the PM or other team members if your reduced productivity
while learning the tool causes a milestone to be missed.

OTOH, knowing something else might help deal with the problem.

Sincerely,

Gene Wirchenko
 
A

Arved Sandstrom

On Tue, 24 Apr 2012 14:07:48 -0300, Arved Sandstrom

[snip]
Does someone's career - let's say current job - *depend* on knowing Ant?
I doubt it, not in and of itself. But if I had someone working for me as
a Java developer, unless they were an absolute newbie I'd look askance
at them not knowing certain things by a certain point in their
professional development.

Given that there are so many tools out there, I would not take
such an attitude. I *would* want to see that the person had done
something adequate.

From my standpoint that includes self-motivated professional
development. If I see a guy who only ever picked up skills that his
employers demanded of him, and only when they required those skills and
not before, I am not impressed by his motivation.
That is not the situation I was referring to. I mean someone who
does know the language well, can produce, but just has not worked with
the particular tool in question.

Here's the thing, though, Gene. Once a language (or languages) have been
picked, there are almost always only a very small number of common
choices for building. With Java the triad of IDE build system, Ant and
Maven covers a large majority of non-trivial builds. This is simply fact.

I don't expect that a Java programmer has necessarily been required to
use Ant or Maven professionally. I _do_ expect that before they are ever
called upon to use a *common* Java build tool that they use their own
time to learn it well enough that they don't waste an employer's or
customer's time on picking up a basic skill.

We're not talking about a niche tool here.
[snip]
I have a great deal of tolerance for someone who has to learn something
unexpected. We all have to do that on occasion. I have considerably less
tolerance for an intermediate or senior developer who is _routinely_
having to "pick up" skills just when they need it. They're doing it on
company time and client time.

But we are almost always doing that. Determining what is needed
is learning just in time. That might entail having to dig into the
libraries some more, for example.

Sincerely,

Gene Wirchenko

Of course we do, and sometimes there is a grey area as to what you can
reasonably expect a developer to anticipate. But often there's not.

Let me give you an example. Java 7 has been the current release for some
time now. I doubt that the majority of Java developers use it
professionally yet. But do you think there could be any excuse for a
professional Java programmer to know nothing about what's new in Java 7,
as of right now? Do you think it would be OK for them to say that
they'll learn Java 7 on customer time when the need arises?

I don't think that's OK.

AHS
 
A

Arne Vajhøj


http://www.adobe.com/products/dreamweaver.html

<quote>
What is Dreamweaver?

Adobe® Dreamweaver® CS6 web design software provides an intuitive visual
interface for making and editing HTML websites and mobile apps. Use
fluid grid layout designed for cross-platform compatibility to create
adaptive layouts. Review designs with Multiscreen Preview before publishing.
</quote>

:)

Arne
 
A

Arne Vajhøj

Given that there are so many tools out there, I would not take
such an attitude.

You should.

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

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.

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!
If I have
something that is working well for me, I am unlikely to change short
of a compelling reason.

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.
If there is good reason, I will try new
things. There is so much noise though of so many tools that I
generally need a reason before proceeding, and I am very likely to
drop something cold if it turns into a time-waster.

There may be a lot of noise.

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).

That is fact.

Arne
 

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,731
Messages
2,569,432
Members
44,835
Latest member
KetoRushACVBuy

Latest Threads

Top