Linked by Thom Holwerda on Sun 31st Oct 2010 19:18 UTC, submitted by kvdman
BeOS & Derivatives Gutenprint has been ported to Haiku. "Michael Pfeiffer (wait, what?) intends on ironing out the configuration options and fixing any bugs that users experience. Please test out Gutenprint on Haiku with your supported printer and report back here, or file a bug report if you encounter problems. Anyone with a colour cartridge?"
Thread beginning with comment 448176
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[7]: Comment by konrad
by Neolander on Tue 2nd Nov 2010 08:26 UTC in reply to "RE[6]: Comment by konrad"
Member since:

Who said you could not use a "form builder" tool, too? Such things are extremely helpful for UI development and design. There's no need to integrate them in to the code editor (especially since I've yet to see a system that makes this actually seamless).

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

Reply Parent Score: 2

RE[8]: Comment by konrad
by Neolander on Tue 2nd Nov 2010 08:49 in reply to "RE[7]: Comment by konrad"
Neolander Member since:

Oh, and Delphi is also the perfect tool for someone learning programming (I did learn with it, in fact, so I'm maybe a bit biased ;) ) : it uses a clean language (Pascal Object) and enforces good coding practices, it makes coding more fun by eliminating boring tasks and allowing you to quickly create something stunning instead of first learning the 10 ways to sort a list, and it makes learning easier thanks to its visual metaphors and the high consistency in how library widgets work.

No, really, Delphi as a IDE+Library+PascalObject ecosystem is really something special, in my opinion. And I think that in particular, it got the IDE part right.

Edited 2010-11-02 09:08 UTC

Reply Parent Score: 2