Post a Comment
Strongly disagree. I can and do develop things in a text editor, yes, but limiting myself to this sole way of developing software would be just stupid.
As an example, for Windows GUI application development, I think Delphi is (or was ? Stopped using it at version 7) truly excellent. The whole process of creating forms, putting controls of them and adjusting their properties, managing events, writing code, debugging, changing the application's icon, and all those everyday tasks, is made incredibly smooth thanks to a nice set of well-chosen and well-implemented features. Even looking for help is great thanks to the integrated VCL and Win32 reference manuals. The sole issues I ever had with Delphi were not related to what it brings on the table, but rather to what it does not do and leaves to a Win32 API which is very poorly integrated in a Pascal environment.
Edited 2010-11-01 17:28 UTC
Well, try to follow some good book or tutorial about Delphi on Lazarus, and see how well it goes. Compared to Delphi, Lazarus lacks :
-Some serious improvements on binary size (putting debugging symbols in a separate file would be a good start, but it makes the thing crash currently, and binaries are still 2.3MB large for a "hello world" application)
-Documentation. It lacks badly and is nowhere near the VCL/Win32 API reference that used to be bundled with Delphi.
The rest works pretty much like the original Delphi, so it should give you a picture of the thing.
What makes the thing "actually seamless" in my opinion is a lot of attentions from the Delphi designers, especially the way events are managed, which removes most of the boring side of GUI application creation.
Double-clicking on a button (or another clickable widget) in the form builder automatically generates a OnClick() function handling the click event in the code editor and redirects you there, only having to type said code instead of repeatedly creating that function yourself hundreds of times.
All events all work pretty much in the same way, all you have to do is to go in the "event" tab of the same window where you set up control properties, choose the event you want to manage (they have comprehensive names), and set up a function to manage it by either double-clicking on the combobox next to it (or using "..." in lazarus) to create it or using that combobox to select an existing handler.
The form builder itself provides you not only with UI widgets (menus, buttons, etc...) which are managed quite easily, but also with some other objects from the VCL that are more easily managed graphically even though they are not UI widgets. In fact, it happens to be most of the objects of the standard library of Delphi (VCL), and that is not necessarily a bad thing.
Simple example of workflow with non-widget objects : the Timer. You want to get some clock calling a function at regular intervals in your application ? Just put a Timer (system tab) on your form, and in the same way that you manage other UI widgets you can set up its firing interval and a handler (in the same way as before) for every time it ticks. The TrayIcon object of Lazarus ("Additional" tab) is another good example of things which are not a UI widget but benefit from being managed this way.
Integration is all about a lot of small details that make the program feel like a unified package, and not like a set of unrelated tools forcefully packed together (which is the feeling I get when using KDevelop or QtCreator). In my opinion, the goal of a good IDE is to make coding a more fun task by eliminating some of its boring sides in a simple way. I think that Delphi got it right.
Some more minor examples of Delphi goodness :
-Suppose you need a new form. All you have to do is to click the "new form" button, and a new form is created together with an associated unit of code and added to the project.
-The code completion system is not broken (it happens to often be in open-source tools, as strange as it seems for something as trivial as header parsing).
-The "Project option" dialog (Project menu) that allows you to get app packaging done easily on Windows (and OSX in Lazarus).
-The form and the associated unit are managed together. When you save one you same the other, and switching back and forth between code editor and form builder is only a keypress (F12) away.
Edited 2010-11-02 08:43 UTC
In a way I think you're correct. I rarely use the rapid part of drag n drop controls on a window or something like that. But a good integrated debugger, code sense/intellisense refactoring tools etc helps you speed up your development.
I used Pe for several years, with a makefile system, but back then BeOS lacked of a good debugger. The one that was released had potential but was way too unstable for real work.
I don't know if should take that comment serious, THQ.
"Why have a debugger part of IDE's when the OS knows a lot more about what's going on..."
Well your OS isnt writing your code, its feedback to the developer. In my world I want the feedback to be understandable, transparent (read:integrated so it doesnt interupt my work flow).
XCode does a good job here with debugging/editing.
When I say IDE I mean Codeblocks, Eclipse, Netbeans and QtCreator. But Haiku has big momentum, and now it can print out of the box unlike the OS you say has Visual Studio. I prefer printing out of the box + vim than non-printing + Visual Studio
Don't know, never tried, but the "Basic" in the name spontaneously makes me skeptical.
However, I don't think this is the place for a holy war, I just wanted to show the OP that IDEs can bring something more than text editors like Emacs and are not only about overkill and bloat.
Edited 2010-11-02 11:24 UTC





