There are a few IDE's but are any of them really great? Not really. This is one thing that is holding freepascal back. The reality is an IDE takes a lot of work and most programmers realize that spending their time developing an IDE is like a full time job. Someone who has a full time job maintaining an IDE should be getting paid, because otherwise he will become poor. Literally, developing an IDE is not something you do in your spare time.
FP-IDE: FreePascal Text Mode IDE
To be used in emergencies such as when you need to connect via SSH/Telnet to a server or computer in your office and test on a new operating system. I don't recommend the IDE for general hacking because for example when you try and open a file using the open dialog it has extremely poor navigation - this is the limit with a text-mode IDE - you can only do so much. Keep FP-IDE like Midnight Commander - use it for emergencies.
One can open files other ways such as not using the /File/Open/ dialog in FP-IDE and just opening files using a proper program like Total Commander in Windows or an equivilant file manager in Linux such as Konqueror file manager - however if you are using SSH/Telnet you can't really do this as you are working with files on the server and not in your file manager local to the hard drive.
The argument for the advantages of using FP-IDE are that you can TELNET/SSH into FP-IDE. However there is a future consideration which will kill this argument: a remote compiler client. I've already built a remote compiler client for LazarusRB using the Plugger plug-in system. This way I can use a remote compiler from my desktop to compile programs remotely on a PC elsewhere. This remote compiler IDE is not specific to Lazarus - it can work with any editor that allows plug-ins to be installed. For example the Delphi IDE could even be tweaked to host a remote compiler client plug-in that allowed you to develop Linux CGI programs on a Windows machine, while compiling the code on a linux box elsewhere.
In fact using Telnet/SSH to call the entire FP IDE GUI is a waste of bandwidth - with a proper desktop IDE and a remote compiler plug-in you are only sending commands to the compiler, and not wasting all the GUI bandwidth that FP-IDE sends to your screen to display the fonts.
While looking into the FP-IDE source code I noticed that it is really old code and Objects are used rather than Classes - no problem there - Classes don't have that many advantages over old Objects. However some of the code looks really old and bizarre - and no one seems to want to maintain text mode IDE source code since Text Mode IDE's died a long time ago. Text-mode IDE's died when turbopascal died. People have moved on.
Lazarus - Delphi Emulator
The code is a monster. Main.pas is about 10,000 lines long. I think Lazarus source code is too monolithic and it comes to haunt you when you make a minor change to the Lazarus source and everything breaks. It needs to be more modular and more plug-in oriented so that if I go ahead and install a Code Tool and it breaks, only that module will break and not the entire IDE.
Although there are plans in the future to allow Lazarus to host a Package system like Delphi has (BPL) I still think that main.pp and other units that make up the Lazarus IDE are way too large. Main.pas and other large units that make up the Lazarus source code will need to be modularized and split up into more units. It's just too much of a monolithic monster to be enjoyable to hack. I have tried hacking Lazarus and although successful at implementing what I wanted, it wasn't fun because it's such a monolithic beast.
Even if a BPL style package system was in place for Lazarus, and main.pp is separated out into more BPL plugins to run the IDE - the package system will have to be at least simpler than the Open Tools API that delphi offered. People hated the Open Tools API because it was not straight forward. If Lazarus continues to emulate and copy Delphi word - for - word then nothing will be innovated. Mozilla did not Copy Word-For-Word Microsoft Internet Explorer. Mozilla innovated and this is the reason why people use Mozilla. True Lazarus has the ability to compile applications on Linux, but Kylix is dead right now (although maybe it will come back) and Lazarus needs to be more oriented to designing something that Delphi does not - such as web applications on linux - not desktop apps on linux.
One thing I don't like about Lazarus is that it is emulating or copying the Delphi IDE almost word for word. Why be such a copy cat? I remember kids in school would be copy cats in grade one. The quality of Lazarus is literally the same as that kid in grade one school class that copies everything you do. Lazarus should innovate. Lazarus programmers should somehow be getting paid (the only reason Mozilla is successful).
So here I am complaining about FP-IDE and Lazarus - what choices are left? I personally am developing an IDE for PSP/PWU development and hopefully this will satisfy my needs. It is heavily based on plug-ins. The reason I have time to work on something like this is because I get paid to develop websites and I get money from developing pascal programs through consulting or for my own business needs. But even so, I find it hard to make time.. I'm considering hacking up MSEIDE some day too. Pipe dreams and false hope. Yes.
|