POV-Ray : Newsgroups : povray.off-topic : What's in an IDE? Server Time
4 Sep 2024 07:14:43 EDT (-0400)
  What's in an IDE? (Message 1 to 10 of 66)  
Goto Latest 10 Messages Next 10 Messages >>>
From: Orchid XP v8
Subject: What's in an IDE?
Date: 27 Feb 2010 05:20:25
Message: <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.")

Can anybody throw some light on this?

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: Warp
Subject: Re: What's in an IDE?
Date: 27 Feb 2010 07:06:59
Message: <4b890ae3@news.povray.org>
Orchid XP v8 <voi### [at] devnull> 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

From: Orchid XP v8
Subject: Re: What's in an IDE?
Date: 27 Feb 2010 07:48:58
Message: <4b8914ba$1@news.povray.org>
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

From: Warp
Subject: Re: What's in an IDE?
Date: 27 Feb 2010 08:35:31
Message: <4b891fa3@news.povray.org>
Orchid XP v8 <voi### [at] devnull> 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

From: Orchid XP v8
Subject: Re: What's in an IDE?
Date: 27 Feb 2010 08:39:09
Message: <4b89207d$1@news.povray.org>
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

From: somebody
Subject: Re: What's in an IDE?
Date: 27 Feb 2010 09:20:44
Message: <4b892a3c@news.povray.org>
"Orchid XP v8" <voi### [at] devnull> 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

From: Orchid XP v8
Subject: Re: What's in an IDE?
Date: 27 Feb 2010 09:25:04
Message: <4b892b40$1@news.povray.org>
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

From: Neeum Zawan
Subject: Re: What's in an IDE?
Date: 27 Feb 2010 12:09:08
Message: <4b8951b4$1@news.povray.org>
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

From: Darren New
Subject: Re: What's in an IDE?
Date: 27 Feb 2010 13:11:20
Message: <4b896048$1@news.povray.org>
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

From: Orchid XP v8
Subject: Re: What's in an IDE?
Date: 27 Feb 2010 14:51:06
Message: <4b8977aa$1@news.povray.org>
>> 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

Goto Latest 10 Messages Next 10 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.