Why we need a good IDE ! (also about block comments)
- Posted by Peter Willems <peter at integratedmoves.com> Aug 04, 2003
- 430 views
This is going to be a long post..... The discussion about block comments made it clear to me how much a good IDE is needed. It seems that many people here are programming for fun but are not really involved in contract programming or commercial product development. When you are programming just for the fun of it, or to create that little tool for yourself that you can't find anywhere, it's sufficient to have some kind of editor and a language based on some available interpreter or compiler. You code some stuff, run it to see if it doesn't crash and that's about it. In a large software project we talk about deliverables; the stuff that is going to be delivered from the project. And it's not only software. It includes system documentation, QA documentation, test case results, and much more. It is also important in large projects to have standardized procedures to build the deliverables. Most of this stuff is scripted with one or another system to ensure that the process is performed as specified over and over again. This is why I have been talking about a new IDE. It's not only the choice of language but also the availability/possibility to integrate that particular language into a controlled workflow. The term "Software Engineering" is all about this. Having worked for years with a very complete IDE (and still do), I still have wishes for certain functionality. This is why I am going to develop a new universal IDE. I want to be free from the choice of language (although I already adopted Euphoria to build this project) and I want to have the ability to use one intergrated system with several languages. The WinDev IDE that we are currently using is very good and has features galore, but it is also closed and has no options to integrate additional tools. The recent discussion on block comments and stuff missing in Euphoria has helped me with determining part of my requirement specification for this new IDE. Here is the first preliminary list of functionality that it should have for me: ---[ Must have ]--- o The IDE should be able to parse the base project file for include statements and add any called include file to the project tree automatically. It should do this recursively so that include-dependancies are clearly visible. o The IDE should be able to parse all included files in the project for procedure and function statements, and build a reference list of available functions and procedures across the project. It should also build cross reference tables that show where a function is declared and where it is used across the project. o The IDE should have support for extended inline documentation by means of specific statements embedded in comment tags that can be parsed to build full project documentation. This goes much further then block comments and actually makes that the current comment system in Euphoria is sufficient. o The IDE needs to be scriptable itself so you can add external tools that integrate into the IDE. This will be needed to be able to execute build-procedures from the IDE for example. Euphoria example: automatically invoke the translator to translate Eu code to C and automatically have the C code compiled to executable. It should also be possible to run scriptable tools like installer builders from the IDE with automatic maintenance of the build scripts (i.e. the IDE must put the specific information into the tool scripts). o The IDE needs to be able to track tasks that are linked to bookmarks in the project files. This is a must for large projects that are handled by small project teams. ---[ Nice to have ]--- o A repository for graphics that is available across projects. Handy to build a default set of icons that you use in all your projects. o A GUI layout developer that is universal and can generate code for any library or language by means of XML templates. o Fully integrated version management (with DIFF functionality) for all project files. Of course there should be an editor involved in all this but I'm still thinking about if it should be included or to have the option to link in an editor of choice. Probably both. There's more to talk about, but for now I'll leave it with this. Hans Peter Willems