![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
OK, so apart from syntax hilighting, what does an IDE actually do?
Obviously I haven't used many IDEs, but watching a discussion about the
topic, there seem to be two camps of opinion:
1. Expert programmers using powerful programming languages don't need an
IDE. (Alternatively, "if you need an IDE, you're a bad programmer or
you're using an inferior language".)
2. Large systems require an IDE. (Alternatively, "if you don't need an
IDE, you're only writing toy programs. Or you're just too stupid to
realise that you need an IDE.")
Can anybody throw some light on this?
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Orchid XP v8 <voi### [at] dev null> wrote:
> OK, so apart from syntax hilighting, what does an IDE actually do?
Do you know what a makefile is?
Make a system which automatically builds a "makefile" behind the scenes
and keeps it up-to-date as the source code changes (ie. by updating all the
dependencies between files), and you have gone a long way towards an IDE.
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp wrote:
> Do you know what a makefile is?
Sure do!
> Make a system which automatically builds a "makefile" behind the scenes
> and keeps it up-to-date as the source code changes (ie. by updating all the
> dependencies between files), and you have gone a long way towards an IDE.
What, you mean like
ghc -M RootModule
or similar?
(This generates a file named "makefile", containing instructions for how
to compile and link RootModule and everything it [recursively] depends on.)
Of course, most people will just do
ghc --make RootModule
This (re)compiles everything that RootModule [indirectly] depends on,
and links the result into a single executable. Unlike a makefile,
1. The "make" program is not required. (Useful on Windows.)
2. You don't have to restart the GHC binary for each source file.
3. GHC can determine what needs to be recompiled based on information
more sophisticated than file modification time.
Then again, GHC only knows about dependencies between *Haskell* source
files. If you had, say, a Haskell program which writes a Haskell
program, GHC wouldn't know about that.
Fortunately, the -M switch is configurable. In particular, it can append
the autogenerated stuff to a hand-written makefile. (And it uses magic
comments so that successive runs of -M can delete the previously added
dependencies before adding the current ones.) In this way, it should be
possible to track all dependencies in a project.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Orchid XP v8 <voi### [at] dev null> wrote:
> What, you mean like
> ghc -M RootModule
> or similar?
That goes a long way, but makefiles support more than purely compiling
the program.
For example, a source code file might depend on a file which contains
data (eg. autogenerated code), which in itself may depend on a different
program, which itself is compiled separately, and/or on some other files
(which are used to autogenerate the data).
There's no way for a program to automatically know that a data file
depends on program X and on input files Y and Z, so the programmer must
be able to specify those dependencies manually in addition to the automatic
dependencies.
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp wrote:
> There's no way for a program to automatically know that a data file
> depends on program X and on input files Y and Z, so the programmer must
> be able to specify those dependencies manually in addition to the automatic
> dependencies.
Which is why, as I said, GHC allows you to easily combine the
autogenerated dependencies with hand-written stuff.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Orchid XP v8" <voi### [at] dev null> wrote in message
news:4b88f1e9$1@news.povray.org...
> OK, so apart from syntax hilighting, what does an IDE actually do?
>
> Obviously I haven't used many IDEs, but watching a discussion about the
> topic, there seem to be two camps of opinion:
>
> 1. Expert programmers using powerful programming languages don't need an
> IDE. (Alternatively, "if you need an IDE, you're a bad programmer or
> you're using an inferior language".)
>
> 2. Large systems require an IDE. (Alternatively, "if you don't need an
> IDE, you're only writing toy programs. Or you're just too stupid to
> realise that you need an IDE.")
It's not really the size but the nature of the development. (Visual) IDE's
save a lot of time and effort with the tedious, design related (be it DB or
GUI), "non-coding" type tasks. And it's hard to draw the line nowadays
between IDE's and programmers' editors. Syntax highlighting used to be an
IDE job, now every notepad replacement does it. Same for code folding, maybe
to a lesser degree. Refectoring is probably next. As both IDEs and editors
get more complex, today's IDE becomes tomorrow's editor. Use what's right
for the job, instead of following the hype.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
somebody wrote:
> It's not really the size but the nature of the development. (Visual) IDE's
> save a lot of time and effort with the tedious, design related (be it DB or
> GUI), "non-coding" type tasks.
I use a text editor to edit my source, a CLI tool for version control,
the compiler itself tracks source dependencies, I use Glade for GUI
design, and so on. It's a "development environment", but it isn't
"integrated".
> And it's hard to draw the line nowadays
> between IDE's and programmers' editors. Syntax highlighting used to be an
> IDE job, now every notepad replacement does it. Same for code folding, maybe
> to a lesser degree. Refectoring is probably next. As both IDEs and editors
> get more complex, today's IDE becomes tomorrow's editor.
Yeah, I got that feeling also.
> Use what's right for the job, instead of following the hype.
That's surely good advice for anything! :-)
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 02/27/10 02:20, Orchid XP v8 wrote:
> 1. Expert programmers using powerful programming languages don't need an
> IDE. (Alternatively, "if you need an IDE, you're a bad programmer or
> you're using an inferior language".)
I think all expert programmers use IDE's. They just don't call them that.
--
Depend on the rabbit's foot if you will, but remember, it didn't help
the rabbit.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Orchid XP v8 wrote:
> OK, so apart from syntax hilighting, what does an IDE actually do?
http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Features
> 1. Expert programmers using powerful programming languages don't need an
> IDE. (Alternatively, "if you need an IDE, you're a bad programmer or
> you're using an inferior language".)
They may not need an IDE to code, or perhaps to debug. But an IDE does more
than just the code. Hence the "integrated" part. It draws forms, generates
code, lets you edit database schemas, lets you generate code to easily
access your database schema from code, runs tests, checks code in and out of
the repository, generates documentation, packages for distribution, etc.
> 2. Large systems require an IDE.
The IDE in big projects does the parts that aren't code, like drawing
pictures of the over-all flow of data through the 15 different programs that
may or may not touch it between source and destination.
--
Darren New, San Diego CA, USA (PST)
The question in today's corporate environment is not
so much "what color is your parachute?" as it is
"what color is your nose?"
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> OK, so apart from syntax hilighting, what does an IDE actually do?
>
> http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Features
...so an IDE is a text editor, debugger, profiler, UI painter, VC
interface and doc-gen tool, except that it's one program instead of several?
> They may not need an IDE to code, or perhaps to debug. But an IDE does
> more than just the code. Hence the "integrated" part.
Mmm, right.
> It draws forms,
> generates code, lets you edit database schemas, lets you generate code
> to easily access your database schema from code, runs tests, checks code
> in and out of the repository, generates documentation, packages for
> distribution, etc.
I've seen IDEs do some of this, but other items sound surprising to me.
For example, I've seen IDEs that can generate pages of useless
boilerplate that you don't want at the touch of a button, but I've never
seen an IDE that can write *useful* code for you. Certainly I've never
seen an IDE write GUI code, and I've never seen an IDE that has any
functionallity of any kind even slightly related to database access.
I also haven't personally seen an IDE that can handle version control -
although it seems like an obvious and easy feature to add, so I can
believe that one.
>> 2. Large systems require an IDE.
>
> The IDE in big projects does the parts that aren't code, like drawing
> pictures of the over-all flow of data through the 15 different programs
> that may or may not touch it between source and destination.
That sounds more like a CASE tool. (Does anybody still use those?)
I think the main contention is that certain languages (e.g. Java) are so
verbose and require so much boilerplate code that you need an IDE to
autogenerate some of it for you just to stay sane. The argument then
goes that if your language doesn't suck so much that you need to write
so much cruft in the first place, you don't need an IDE. I am not
entirely convinced by this argument.
Every IDE I've ever used has made my job harder, not easier. Then again,
maybe they just means that an IDE is overkill for small projects.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |