Do you suggest me using IDE when I'm learning JAVA

A

Arne Vajhøj

A lot depends on exactly what it is that people are writing. If I was
writing a Linux device driver in C I'd be cool with vim. But these days,
where I have to deal with .NET or J2EE web apps with thousands of source
files, I'd be an imbecile to try and do that with emacs.

Emacs is pretty close to an IDE.

But I don't know how good its Java and C# support is though.

Arne
 
T

Tom Anderson

Maybe you don't know companies where the company decide what OS their
employees run and where the choice of OS is Windows.

I do, and indeed my company is contracting for one at the moment. I use a
Windows machine every day, although only as an NX terminal to get access
to a virtual machine running Linux.
But that tells more about your level of experience than the Java world.

I should have phrased it better: i don't know a single good developer who
develops on Windows by choice. Apart from Mike Schilling, although i
couldn't really say i know him.
A recent survey showed the following target platforms for Java EE:

Window 57%
Redhat & Centos 35%
SUSE 12%
Other Linux 16%
Solaris 18%
AIX 14%
HP-UX 5%
Other 7%
No answer 18%

(it adds to a lot more than 100% because many deploy on multiple
platforms)

Interesting. I'm really surprised by that.

tom
 
A

Arved Sandstrom

Arne Vajhøj wrote:
[ SNIP ]
USAF STSC publicized some research results for software costs last
summer.

(quite an interesting paper I can recommend it)

The concluded that the GUI tools from 2000 gave a
productivity increase of approx. 10% compared to
the text tools from 1980.

At average the GUI tools are slightly more efficient.

Arne

Can you provide a link for that paper? Thanks. They've got some good
stuff but I never ran across that one.

Prior to me reading that research, my question is, what do they mean by
productivity? What GUI tools? I'm convinced that that observation does
not hold for what we are talking about.

AHS
 
A

Arne Vajhøj

Can you provide a link for that paper? Thanks. They've got some good
stuff but I never ran across that one.
http://www.stsc.hill.af.mil/consulting/sw_estimation/SoftwareGuidebook.pdf

Prior to me reading that research, my question is, what do they mean by
productivity?

They have some complex formulas. But it is a factor that is used
when going from KLOC/FP to man months.
What GUI tools?

It seems to be the entire development suite.
I'm convinced that that observation does
not hold for what we are talking about.

I would expect a modern IDE to be a good chunk of the development suite.

Arne
 
A

Arved Sandstrom

Arne said:
Oh - the developer may not suffer, but all the people that has
to do the final packaging, QA support and production support that
the developer can not help with because the does not understand
how the output of his development is used will suffer.

Arne

That's true, but that's still not the IDE's fault, because you can do
everything correctly from inside the IDE.

If we're talking about J2EE apps, for example, and where I have the
power to make suggestions that are followed, I suggest (strongly) to the
development teams I advise that developers are 100% responsible for
ensuring that EARs deploy properly, whether in a CI environment in
development, or in testing. There are often unavoidable differences
between dev/test deployments and final production deployments, but we
try to minimize these so that ops support people have as little to do in
server deployment plans as possible. This way the developers are
accountable for everything about the packaged EAR.

To use Sun's terminology I prefer it when the developers are both the
"component providers" and the "application assemblers". And that in
their role as the assemblers they make sure that the "deployers" don't
waste time figuring out why class a.b.c.Whatzit isn't on the classpath.

AHS
 
A

Arne Vajhøj

What? Where does the idea of editing files inside JAR files come into this?

Well:
- I said that files should be converted to local line format for editing
- you suggested that would mean extracting changing and repacking jar files

Assuming there is a correlation between the two then that must be
about editing files inside jar files.
On any platform, you may find yourself confronted by files with any kind
of line ending at any time, which have arrived from via any route.

It is the responsibility of the transferring mechanism
to ensure that text files arrive in a valid text format
at the receiver.

Let me guess: you have only worked with file systems with
delimited files and no meta information about line format.
Because when you have meta data about the line format instead
of the "let us guess based on whether we see a lot of LF's or
CRLF's", then the receiver had to get it right.
Declaring that all files must be converted on import is a complete
non-starter.

The FTP protokol, the ZIP format etc. were designed to solve that
problem.

Apparently those people do not consider it a non-starter.

Arne
 
A

Arne Vajhøj

That's true, but that's still not the IDE's fault, because you can do
everything correctly from inside the IDE.

But there are often no IDE available at all on the test and
production systems.
If we're talking about J2EE apps, for example, and where I have the
power to make suggestions that are followed, I suggest (strongly) to the
development teams I advise that developers are 100% responsible for
ensuring that EARs deploy properly, whether in a CI environment in
development, or in testing. There are often unavoidable differences
between dev/test deployments and final production deployments, but we
try to minimize these so that ops support people have as little to do in
server deployment plans as possible. This way the developers are
accountable for everything about the packaged EAR.

To use Sun's terminology I prefer it when the developers are both the
"component providers" and the "application assemblers". And that in
their role as the assemblers they make sure that the "deployers" don't
waste time figuring out why class a.b.c.Whatzit isn't on the classpath.

I agree on that.

Which I think some command line knowledge is a must for developers.

Arne
 
A

Arne Vajhøj

I do, and indeed my company is contracting for one at the moment. I use
a Windows machine every day, although only as an NX terminal to get
access to a virtual machine running Linux.


I should have phrased it better: i don't know a single good developer
who develops on Windows by choice. Apart from Mike Schilling, although i
couldn't really say i know him.

Ah - that is slightly different.

But I would still expect there to be some Windows users.

Of course it is difficult to know who you know and who you consider
good programmers.

But I would expect Jon Skeet to prefer writing his Java code at
Google on Windows.
Interesting. I'm really surprised by that.

Java does not necessarily mean not-Windows.

Arne
 
J

John B. Matthews

Arne Vajhøj said:
This just say:

<quote>
When packages are stored in a file system (§7.2.1), the host system may
choose to enforce the restriction that ...
</quote>

But SUN's implementation (and probably all other common implementations)
of Java compiler does enforce.

Interesting. In contrast, "a system that uses a database to store
packages may not enforce a maximum of one public class or interface per
compilation unit."

<http://java.sun.com/docs/books/jls/third_edition/html/packages.html#37739>
 
L

Lew

Emacs is pretty close to an IDE.

But I don't know how good its Java and C# support is though.

For C and C++, given that emacs integrates source editing, compilation,
linking and debugging (synchronized with source listings), "close" isn't
accurate - emacs is an IDE.

I have not found it as useful for Java.
 
L

Lew

BGB said:
but, I have seen plenty of people get stuck on the whole Word <-> My
Documents <-> Filesystem issue.
notatbly, there are classes at colleges to try to address these sorts of
issues.

theoretically, these people are still otherwise-productive individuals, just
for whatever reason they never really learn what goes on in the OS (and the
way Windows is designed at times doesn't help, it is about like they try to
specially design it so that people don't actually learn what is going on,
them instead apparently imagining the computer as some magic box which
stores Word documents or similar...).

I have also seen people get dismayed when they manage to change directories
(or end up somehow saving their document somewhere else), and end up
thinking that all their documents have just disappeared, ...


then again, maybe these sorts of people are also unlikely to become
programmers?...

Would that that were so!

Well, ontologically it is so, but these sorts of people wind up collecting
paychecks as programmers, and that irks me.
 
T

Tom Anderson

That says more about your own personal professional and social circles
than it does the real world.

Probably. But is was in response to this long-since snipped paragraph of
cr88192's:

I object strongly to this notion of a de facto Windows hegemony amongst
programmers. There is doubtless a majority, but it's not a monoculture.
I also have observed a fair number of religious fanatics who have an
unwarranted anti-Windows bias, as if it's somehow an obviously-inferior
platform as compared to other mainstream ones.

I used Windows for years, during the '95 and 2000 eras. From a programming
perspective, it was an improvement on the MacOS 9 which i'd been using
before that. But OS X and Linux are a *huge* improvement on Windows.
That's my experience. Does that count as religious fanaticism?

tom
 
L

Lew

Tom said:
I used Windows for years, during the '95 and 2000 eras. From a
programming perspective, it was an improvement on the MacOS 9 which i'd
been using before that. But OS X and Linux are a *huge* improvement on
Windows. That's my experience. Does that count as religious fanaticism?

Yes, but not fanaticism on behalf of a particular OS, rather, on behalf of
rationality, pragmatism and effectiveness.
 
A

Arved Sandstrom

Arne said:

Much obliged - looks like a good document. I am now reading the whole
thing in detail. :)
They have some complex formulas. But it is a factor that is used
when going from KLOC/FP to man months.


It seems to be the entire development suite.

What it looks like, if we're examining Table 8-5 in that document, is
that "Very High Level of Automation (circa 2000+)" gets a tool rating of
0.83 as compared to 0.91 for "High Level of Automation (circa 1980+)".

So yes, approximately 10 percent better for 2000+.

But look at what they are including for even 1980+:

CASE tools
Basic graphical design aids
Word processor
Implementation standards enforcer
Static source code analyzer
Program flow and test case analyzer
Full program support library with configuration management (CM) aids
Full integrated documentation system
Automated requirement specification and analysis
General purpose system simulators
Extended design tools and graphics support
Automated verification system
Special purpose design support tools

When was the last time you ever saw - let alone worked in - a shop that
did even a substantial fraction of all of that? Particularly back in the
'80s? It would have taken a very good operation indeed to be using most
of those tools back in, say, 1985. Whereas if we examine the 2000+ list:

Integrated application development environment
Integrated project support
Visual programming tools
Automated code structuring
Automated metric tools
GUI development and testing tools
Fourth Generation Languages (4GLs)
Code generators
Screen generators

there is a much better chance, IMHO, that a larger fraction of that list
is in play for even moderately good organizations.

Worst case (and a fairly common one) we're really comparing text editor
(1980+) to IDE (2000+). Good case (and also a reasonably common one)
we're comparing most of the 2000+ list to very little of the 1980+ list.

So I think in reality the productivity gains for most organizations,
based on tools, have been considerably greater.
I would expect a modern IDE to be a good chunk of the development suite.

Arne

AHS
 
A

Arved Sandstrom

Lew said:
I read that as "might not enforce" as opposed to "has no permission to
enforce".
The problem here is the use of modals like "may", which admit either
epistemic (statement of inference/knowledge) or deontic (how things
ought to be) interpretations.

Fortunately "may not" is one of the modal negatives that has a fairly
unambiguous meaning, as in, "not allowed". That doesn't mean that a lot
of people don't use it incorrectly, though.

In any case, assuming that the spec writers were using English
correctly, they meant "has no permission to enforce".

Because of the ambiguity of modals, especially "may" and "might", my
opinion is that technical specifications should never use them. A lot of
W3C specs have a terminology specification which defines "may" as
referring to optional features, which is all well and good, but this
provides no guidance for the meaning of "may not", which incidentally is
not the same thing as "might not". The fact that we could (and do) spend
significant time arguing over meaning when using some of these modals
means, IMHO, that we shouldn't use them in specs.

AHS
 
A

Arved Sandstrom

Lew said:
For C and C++, given that emacs integrates source editing, compilation,
linking and debugging (synchronized with source listings), "close" isn't
accurate - emacs is an IDE.

I have not found it as useful for Java.
I agree, for some languages like C or C++ emacs _is_ an IDE. A prof of
mine wrote a fairly large C++ tool
(http://gri.sourceforge.net/index.php) using emacs, and he would have
been doing everything from within emacs. Depending on how much a
person's emacs has been tooled up it's a mistake to call it a text editor.

This is a fairly representative discussion regarding emacs vs Eclipse
for Java:
http://stackoverflow.com/questions/689544/is-emacs-useful-compared-to-eclipse-programming-java.


I don't doubt that there are some very good Java developers out there
who use nothing but emacs. If I used nothing but emacs, had it
thoroughly tooled up, knew all my shell mantras and had shell scripts
available to duplicate what a lot of Eclipse commands do, and had an
encyclopedic knowledge of the Java APIs for the areas that I'm working
in, I'd be just as fast as if I were using Eclipse.

AHS
 
E

Eric Sosman

[...]
On any platform, you may find yourself confronted by files with any kind
of line ending at any time, which have arrived from via any route.
Declaring that all files must be converted on import is a complete
non-starter.

Declaring that all programs must recognize (and perhaps
generate) all the line-demarcation conventions of all systems
everywhere is a Hell of a lot less practical.

I have, personally, actually used systems that marked
line boundaries

- With a trailing LF
- With a trailing CR
- With a trailing CR LF pair
- With a leading CR and a trailing LF
- With a leading count and possibly a trailing pad
- With a leading count plus other metadata and a possible pad
- With no per-line data whatsoever

I'm willing to wager a modest sum that you, personally, have
*never* written a program that can deal with all of even this
limited repertoire. Care to name an amount?
 
A

Arved Sandstrom

Peter said:
Tom said:
[...]
I should have phrased it better: i don't know a single good developer
who develops on Windows by choice.

That says more about your own personal professional and social circles
than it does the real world.

I happen to know a large number of good developers who develop on
Windows by choice.

I also have observed a fair number of religious fanatics who have an
unwarranted anti-Windows bias, as if it's somehow an obviously-inferior
platform as compared to other mainstream ones.

Pete

Let me preface my comments with the statement that I think I am fairly
OS-agnostic: I currently have 2 Dell desktops (my old dual-boot Windows
XP Pro SP3 + Ubuntu 10.04 job, and my new Windows 7 box), and a MacBook
Pro with OS X 10.6.3. Historically I've had other Windows computers, as
well as Power Macs. At work I started out on UNIX and VAX/PDP. My first
exposure to Linux was on work PCs, but much of the rest of the time we
used Windows 3.1 (sometimes just to run Exceed :)). Sometime later I'd
have been using - at home - Windows 95/98, System 7.x, and PowerPC
MkLinux pretty much on an equal basis.

Currently on my MacBook I also run VirtualBox and Parallels for
occasional forays into Solaris 10 and Windows XP at work.

So personally I am not religious. I _have_ observed, however, that I
either need one OS for certain kinds of work, or I'm more productive on
a certain OS for certain kinds of work. So at any given time I'll have
projects on either Mac OS X, or on Windows, or on Linux. And Java
projects can be found on all 3.

Having said that, I don't believe that _anyone_ is on any of Windows or
Linux or Mac OS X (or other OS's for that matter) *by choice* unless
they have extensively used all of them. Restricting the discussion to
Java (which I hope we are all doing) I know a lot of developers, many of
them good developers, who develop exclusively on Windows. The majority
of developers I know use Windows. But almost all of them have never
really used anything else but. So are they using Windows "by choice", or
just because it's what they know best? My money's on the latter.

I don't think any developer will be shortchanged by using Windows,
though, even if they didn't really "choose" it. You may end up throwing
cygwin on there (I've noticed a fair few Windows-only folks do that),
but that's not a bad thing. The servers and IDEs run just as well on
Windows as they do on Mac OS X or Linux. And you can do a hell of a lot
more on a Windows command line than even many Windows developers are
aware of...don't even get me started on PowerShell which I've never
actually seen anyone else except me use.

AHS
 

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

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top