View Full Version : Lazarus: FreePascal IDE (Delphi 7 VCL clone)
Sirber
11th August 2006, 14:02
Lazarus is the class libraries for Free Pascal that emulate Delphi. Free Pascal is a GPL'ed compiler that runs on Linux, Win32, OS/2, 68K and more. Free Pascal is designed to be able to understand and compile Delphi syntax, which is of course OOP. Lazarus is the part of the missing puzzle that will allow you to develop Delphi like programs in all of the above platforms. Unlike Java which strives to be a write once run anywhere, Lazarus and Free Pascal strives for write once compile anywhere. Since the exact same compiler is available on all of the above platforms it means you don't need to do any recoding to produce identical products for different platforms.
Yeah, but what about the GUI? What widget set are you using?
That is the neat part. You decide. Lazarus is being developed to be totally and completely API independent. Once you write your code you just link it against the API widget set of your choice. If you want to use GTK+, great! If you want it to be Gnome compliant, great! As long as the interface code for the widget set you want to use is available you can link to it. If it isn't available, well you can write it.
For example. Let's say you are creating a product on Windows using the standard Windows widgets. Now you want to create a Linux version. First you decide what widget set you want to use. Let's assume you want to use gtk+. So you copy the code over to your Linux development machine, compile, and link against the gtk+ interface unit. That's it. You've now just created a Linux version of the Windows product without any additional coding.
At this point in the development we are using gtk+ as our initial API widget set. Some work is also being done with Qt and the Win32 API. As soon as Lazarus reaches a 1.0 release developers will be able to start to create the interface unit to tie the LCL (Lazarus Component Libraries) to other widget sets.
So is this thing really RAD like Delphi?
It sure is. Is it totally completed? No not yet. The forms design portion is still in need of a great deal of development. The over all IDE is complete and can be used for most programming needs. Several aspects of the project are still in need of help. Hint. Hint.
Can I use my existing Delphi code?
Some of it yes. If the code is standard Delphi pascal and it uses the standard components found in Delphi then the answer is yes. If it uses some specific database, OCX, or DCU then the answer would be no. These items are specific to Windows and would only work on and within Windows. However, if you are only looking to create a Windows product using Free Pascal and Lazarus then the answer would be yes. This hasn't been added to the LCL yet but it should be possible in the future.
Can I create commercial products with this?
Yes. The code for the Free Pascal compiler is licensed under the GPL. This means that it is open source, free, whatever name you want to stick to it. You can modify the code if you wish but you MUST distribute those changes or make them available to others if they wish to use it.
The FCL (Free Pascal Component Libraries) and the LCL (which will eventually become part of the FCL) are licensed under a modified LGPL. In a nut shell this means that you can write your own proprietary software that just links to these libraries. You can sell your application without the need to supply or make available your code. However, as with the compiler if you make modifications to the FCL or LCL you must make those changes available to the general public and the world.
http://www.lazarus.freepascal.org/index.php
dimzon
11th August 2006, 15:57
Hmmm...
Delphi/Lazarus is dead
.NET is future
SharpDevelop and VC#2005 Express both are fine free IDE
Sirber
11th August 2006, 16:49
Pascal ain't dead
.NET is crap, as well as java.
the best exemple of how much .net is crap is ATI CCC. Takes 40MB RAM, works ok once in a while.
LoRd_MuldeR
11th August 2006, 17:55
I use Delphi 7 and that works 100% fine for me.
No reason to use any nasty .NET stuff.
ATC CCC is the only reason why I had to install .NET Framework.
dimzon
11th August 2006, 18:08
Sirber, LoRd_MuldeR
I doesn't want to start flamewar...
But .NET Framework offers incredible advantage, it dramatically reduce development time/cost (especially when talking about enterprise-wide development, n-Tier applications development and extensible application development)
http://www.thg.ru/graphic/20040903/images/catalyst-architecture.gif
I really have huge Delphi development expirience (approx 5 years from 1.0 beta up to 7.0).
Now I'm
http://img86.imageshack.us/img86/3581/mctsrgb507512lt3.png
Sirber
11th August 2006, 18:25
Microsoft Certified now talks for you ;)
Eretria-chan
13th August 2006, 14:12
Sirber, LoRd_MuldeR
I doesn't want to start flamewar...
But .NET Framework offers incredible advantage, it dramatically reduce development time/cost (especially when talking about enterprise-wide development, n-Tier applications development and extensible application development)
Well, I disagree. I'm with Sirber & co here. Having had lots of C++ experience, I would just say .NET just doesn't mingle right with it and what you can do it .NET you can do in Native programming. The Framework is a huge library full of functions, which by the way, does not really like Native code.
Every time I try to use .NET I get burned for it. Shame on Microsoft and their .NET.
LoRd_MuldeR
13th August 2006, 14:35
To me .NET just seems to be too bloated and obscure. And it eats resources like hell.
I still prefer cross-platform apps written in C/C++ *plus* GUI apps written in Delphi as Windows front-end.
Look at MPlayer / MPUI :D
alfixdvd
13th August 2006, 17:42
Pascal ain't dead
.NET is slow and loud, as well as java.
Delphi works 100% fine for me.
No reason to use any nasty .NET stuff.
I still prefer apps written in C/C++ or written in Delphi as Windows front-end.
dimzon
14th August 2006, 08:47
All about .NET performance degradation is mostly bullshit!
Sometimes it can even be faster than native code (thanx to JIT-Complier, it's possible to JIT under concrete CPU architecture)
I believe you must read more about .NET before
As example: VS.NET 2005 is .NET app itself. But it is much faster than VS2003 and VS 6.0 and Delphi (I need only 2 sec to load it)
Inc
14th August 2006, 10:42
Mostly its up to the experienced coder. You can use the fastest env./compiler but a little non-optimal codepart could slow down a routine significantly. So the point "which is the fastest generally" would include the need of an more than intelligent compiler which would also optimize non optimal coded user routines.
I dont care if an appl. starts up taking 0.5, 1 or 2 sec. but the env/compiler should be able to treat the codeparts where speed really counts as well as possible.
What counts for me when deciding for an environment is:
1. Flexibility and portability (an env. which also would support beside Windows Linux and OSx platforms, so once you'll provide an appl. to osx users the circle of environments which do support other than Win gets shrinked.
2. Programming language overview, flexibility, and easyness to understand and handle
3. Support of statical linking to external libs
4. Availability of external Modules or Libraries as extensions coming with useful routines
5. Support and fast updating by the company. "Senseful" user/community-whishes should be recognised when updating the actual env. version.
6. A nice helpful community or even communities.
7. A lot of open source codes available in the www so u can better learn from.
8. A good IDE containing useful helper add'ons and a nice Window/Form designer.
And as all these points do also comprehend the personal "gusto" of the user/coder such threads still will come up in the future ;)
Eretria-chan
14th August 2006, 12:31
All about .NET performance degradation is mostly bullshit!
Sometimes it can even be faster than native code (thanx to JIT-Complier, it's possible to JIT under concrete CPU architecture)
I believe you must read more about .NET before
As example: VS.NET 2005 is .NET app itself. But it is much faster than VS2003 and VS 6.0 and Delphi (I need only 2 sec to load it)
I believe that VS.NET 2005 starts faster because of internal code changes not thanks to .NET. No matter how you look at it, the Framework is always slow at startup.
And from what I know, each time it compiles, the first run though functions may be slow as well.
dimzon
14th August 2006, 12:34
And from what I know, each time it compiles, the first run though functions may be slow as well.
Wrong
http://msdn.microsoft.com/msdnmag/issues/05/04/NGen/
http://msdn2.microsoft.com/en-us/library/6t9t5wcf.aspx
http://visualbasic.about.com/od/usingvbnet/a/FWTools2.htm
Eretria-chan
14th August 2006, 12:43
Nice. Then what about the huge memory usage and the ability to easy reverse engineer?
dragongodz
14th August 2006, 13:06
dimzon - ok we get it, you like .NET. fine then use it to your hearts content. however please do not try and say other languages are dead or that .NET is better.
different people prefer different things and no matter any plusses .NET may have it has minuses aswell. i wont bother to go in to the needing/downloading different runtimes for programs compiled with different versions of .NET and the pain that is alone.
lets all just let people use whatever they want to program and not bash their choices just because it is not ours.
dimzon
14th August 2006, 13:43
do not try and say other languages are dead
Actually Borland complete abandoned Delphi product line, isn't it? So Delphi is really dead...
Nice. Then what about the huge memory usage
Just read how .NET Memory manager works. It will eat memory until there are free memory avaluable. It will run garbage collection only when no free memory avaluable. This is BY DESIGN
and the ability to easy reverse engineer?
http://mindprod.com/jgloss/obfuscator.html
http://www.remotesoft.com/salamander/obfuscator.html
http://www.preemptive.com/obfuscator.html
Manao
14th August 2006, 14:51
As example: VS.NET 2005 is .NET app itself. But it is much faster than VS2003 and VS 6.0 and Delphi (I need only 2 sec to load it)Erm... It's also quite borked, since the only thing that matters in a coding GUI - the autocompletion - is completely and uterly borked and unusable. As to faster, having both ( 2003, 2005 ) on my computer, I disagree ( but there again, the "intellisense" is so borked it freezes my computer for 20 seconds each time I want to switch the project configuration ). It even takes ages to close ( that is, when it does close... ), except, of course, when it vanishes when I didn't ask it to...
For all that, however, I do not blame the .NET framework, but the software itself.
dragongodz
14th August 2006, 14:55
Actually Borland complete abandoned Delphi product line, isn't it? So Delphi is really dead...
actually what you said is
Delphi/Lazarus is dead
but lets start with the delphi part.
from what i read borland are trying to sell the ide devlopment tools section. so its possible these will be released and continued . even without that though there is this rather interesting site(copyright borland you will note)
http://www.turboexplorer.com/
hmm whats that i see ? turbo delphi and turbo delphi for .NET. funny way of killing a product if you ask me.
now lets get to the lazarus part. first of all please understand that it is just libraries that emulate delphi so you can use existing delphi code. the main project/compiler is pascal of course.
http://www.freepascal.org/
which you can see is still being developed. before you say something like "but its not from a company so you wont get the same support" etc well who cares. neither is gcc etc but that doesnt stop people from developing with and using with them.
this thread is not somebody asking for the pros and cons of different languages and shouldnt be blatantly hijacked in to one. Sirber kindly posted about libraries to allow people to use existing delphi code with the free pascal compiler. if someone is not interested in that then fine they are not being forced in to anything. for others it may be of interest and their interest and Sirbers information should not be belittled just because someone thinks .NET is better.
note , i dont even use delphi or pascal but that is my choice. i have absolutly no problem with others using different languages except when it comes time to use the end program. then i look at it as any other user. if it works , it works and i couldnt care less what it was written in. if it requires me to go downloading multiple huge runtimes(as in different programs using different versions of .NET) then i will probably look for an alternative.
as i said though thats then my choice as a user. it still wouldnt or shouldnt detract from the programmer having the choice to use whatever language he or she chooses.
dimzon
14th August 2006, 15:59
http://www.turboexplorer.com/
WOW, this is actually interesting, thanx!
alfixdvd
14th August 2006, 16:18
Sometimes it can even be faster than native code (thanx to JIT-Complier, it's possible to JIT under concrete CPU architecture)
JIT it's not miraculous. In average never it can be faster then native code. The interpret layer always exist.
Amnon82
15th August 2006, 10:12
What is about realBasic? It is a CrossIDE for Win,Linux and Mac. The standard IDE for Linux is free. www.realbasic.com
Since I code in Delphi, I'll be happy that new TurboDelphi will be avaible in a couple of days.
Sirber
15th August 2006, 12:27
realBasic is not free:
REALbasic Standard Edition 85,00 Euros
REALbasic Professional Edition
Donne accès à toutes les fonctionnalités. En savoir plus. 410,00 Euros
Kaiousama
15th August 2006, 14:09
from what i read borland are trying to sell the ide devlopment tools section. so its possible these will be released and continued . even without that though there is this rather interesting site(copyright borland you will note)
http://www.turboexplorer.com/
hmm whats that i see ? turbo delphi and turbo delphi for .NET. funny way of killing a product if you ask me.
Speaking of Borland, or more precisely of the brand-new spinoff DevCo which holds the developement tools' future; it seems to me they're grasping on the wall, trying to regain developers by reproposing the old "turbo" series, love of an entire generation.
Unfortunately it probably is only no more that a wise marketing move, since real IDE improvements are lacking from quite a long time (many people still use Delphi7 IDE wich is quite more stable than Delphi8/2005/2006).
In my humble opinion the suicide of Borland was gambling on the .NET platform at the time of Delphi8.
They spent a lot of resources in rewriting the whole VCL library for .NET, and at the end they've gained nothing since Delphi.NET has no advantages over C# while it has several restrictions (for example you need to deploy asseblies of the VCL.NET library along with your application since Delphi.NET libraries are not integrated on the .NET framework)
Actually the biggest problem that takes developers away from delphi is the lack of portability (you can use Delphi or Delphi.NET and you still can write applications for the windows platform only). If they only considered supporting the mono platform we would probably see a different future.
now lets get to the lazarus part. first of all please understand that it is just libraries that emulate delphi so you can use existing delphi code. the main project/compiler is pascal of course.
http://www.freepascal.org/
which you can see is still being developed. before you say something like "but its not from a company so you wont get the same support" etc well who cares. neither is gcc etc but that doesnt stop people from developing with and using with them.
Regarding the free alternative I think we have to make distinction from FreePascal and the Lazarus ide.
The former is really a good project, their compiler produces very fast code and works on a quite large amount of platforms.
They also esxtended the Pascal languages with interesting features (for example operator overloading, a long-time wanted feature for Delphi developers) and they have with version 2.0 integrated full unicode support.
Lazarus IDE instead is a mess, the developement proceeds very slow (i can't remember major advances since the last year), Unicode support is pretty absent (while higly requested), it does not provide a own widget library and the one who relies on (GTK+) has bindings totally non-updated.
The other big problem with FreePascal and Delphi is that is quite hard to use libraries written in other languages: you can only import C libraries. Using a C++ library is quite everytime impossible, and Inline using of different languages is not contemplated at all (only Assembler inline is allowed).
In summary: Delphi is jumping toward its death and FreePascal is risking seriously to remain an adolescent.
dimzon
15th August 2006, 14:12
@Kaiousama
A really good post!
dragongodz
15th August 2006, 15:17
Delphi is jumping toward its death
whether or not delphi has a long future in its development is totally irrelevant to the point. dimzon claimed it was dead pure and simple. that is clearly not true and who knows what else will happen in the future. and even if delphi was never updated again why should people stop using it if they so wished ? because someone wants to hijack a thread saying .net is the future ? i dont think so.
The other big problem with FreePascal and Delphi is that is quite hard to use libraries written in other languages
the same can be said of just about every other language aswell so really is not a point. ok you may say "but i want to use x c++ library and i cant", well thats fine but it does not stop you from programming for yourself. hey i have seen some interesting looking delphi libraries and guess what, i cant use them with my c++ projects either.
Regarding the free alternative I think we have to make distinction from FreePascal and the Lazarus ide.
i actually already did that in my post before. lazarus is more of an extra that can be used ,for example, to help people migrate from delphi to freepascal by using existing(theirs or others) code.
FreePascal is risking seriously to remain an adolescent.
how so ? first you note all the work thats being done on freepascal and then conclude that ?
even if they stopped development of it tommorow(and this really goes for delphi aswell) why should those who choose to use it stop ? the arguement "its dead" is plainly ridiculous. as i said i dont care what language a program was written in and i really dont care if the ide or compiler has not been updated. its not up to me,or anyone else here for that matter, to tell others they can or cant use a particular language if they so choose.
in the end my point still remains. this thread was started by Sirber as information about how people could use existing delphi code with the freepascal compiler. it does not deserve to be derailed or hijacked in to pros and cons of other languages, such as "use .net its the future" or things about realbasic. from memory there has been other threads where people have asked for pros and cons in the past. if someone seriously wants to say how good their chosen laguage is or how bad another is i suggest they start another thread. it doesnt belong in this one.
Kaiousama
16th August 2006, 00:26
..and even if delphi was never updated again why should people stop using it if they so wished ? because someone wants to hijack a thread saying .net is the future ? i dont think so.
Well, .NET is probably Microsoft's future, this does not mean at all that it must be ours.
It is also true that if a language is not going to be actively developed and improved it necessary comes to an end.
ok you may say "but i want to use x c++ library and i cant", well thats fine but it does not stop you from programming for yourself. hey i have seen some interesting looking delphi libraries and guess what, i cant use them with my c++ projects either.
I don't this so. The big deal today is integrating languages together, if you look for example at Java, Sun is rapidly intregrating scripting support (Javascript, python, ruby, etc...) into their JDK, allowing users to reuse their well-tested code without need of rewriting (translating code == new bugs to squash). Another example is the marvellous Perl::Inline functionality where you can insert pieces of your foreign language code directly inside Perl sources.
btw: using Delphi libraries in C++ applications should be a very simple task since you can export function prototypes as C standard functions.
how so ? first you note all the work thats being done on freepascal and then conclude that ?
In my point of view, a language in order to be handful must be well designed (and that is the case of freepascal) and must have a good rad tool (which Lazarus is far from being so).
If you look carefully at the scene, there are only few languages with good multiplatorm rad tools, they are Java and C/C++ with Eclipse and Netbeans.
All the other ones have big limitations, for example ruby is a wonderful scripting language but it totally lacks a decent rad tool.
A great move would be to integrate FreePascal developement support in Eclipse but unfortunately i haven't seen such a project.
in the end my point still remains. this thread was started by Sirber as information about how people could use existing delphi code with the freepascal compiler.
You're right, another big point is answering the question "Am I able tu use my Delphi code in FreePascal/Lazarus?"
From my experience the answer is >95% of cases NO, YOU CAN'T unless you make big code rewriting and still the success is not guaranteed, for example:
many of the VCL controls are missing in FCL
Unicode support is absent in Lazarus (i'm repetitive about this point but for me is essential) and you cannot use TntUnicodeControls.
Docking support is absent.
DSPack is totally unusable on FreePascal so writing an even simple directx filter is pretty impossible (it is also really difficult with Delphi)
VirtualTreeView (http://www.delphi-gems.com/VirtualTreeview/), the BEST list/tree control i've ever seen (and probably i'll ever see) is horribly mutilated in its FreePascal version.
The other big problem is what Siber listed as an advantage, in FreePascal/Lazarus you have to choose what widget set to use, and then retrieve/write yourself pascal bindings.
Well, if FCL were well designed you'll have only abstract APIs and the library will use the right widget set for drawing forms regarding on what platform is targeted your compilation.
In summary: If you develop for the windows platform only, there is no advantage in moving your Delphi code to FreePascal. If you want to create multiplatform GUI applications, FreePascal actually deserves you only a bunch of headaches.
When I raise my head and look at the Pascal sign on the road, I actually only read "attention, dead end.". And that makes me really sad....
dragongodz
16th August 2006, 07:23
Well, .NET is probably Microsoft's future, this does not mean at all that it must be ours.
i agree. you will see most of that last section isnt really about your post but others before you and their posting the suggestion to use another language(or .net) for whatever reasons. this thread, as i said, shouldnt be hijacked by such posts.
using Delphi libraries in C++ applications should be a very simple task since you can export function prototypes as C standard functions.
and i have seen ffmpeg headers converted to delphi aswell. again i see this really as more minor than major though. you dont have to use other libraries to program.
must have a good rad tool
i disagree. while it is a plus it certainly isnt a must for a language to be useable. since it is still in development as i said who knows what will happen later anyway.
When I raise my head and look at the Pascal sign on the road, I actually only read "attention, dead end.".
and of course you are entitled to your opinion. however lets name another language i am sure many would call dead or a dead end, fortran.
HC happens to be written in fortran(except some minor parts to interact with avisynth). so should i tell hank315 to stop programming HC because he is using a "dead language" or maybe i should tell him to change to a "real" language, which is what some others have been doing in this thread ?
personally i think i should let hank315 use whatever language he likes and just be thankful for the work he is doing. there was a thread about free pie that i think really relates to that.
stax76
9th March 2008, 17:07
IMHO Lazarus is pretty cool, RAD and GUI wise VB .NET don't has any competition but sometimes .NET don't cut. I'll give you a example: A Shell Extension
A shell extension loads into the explorer process, it stays there consuming a lot memory permanently. Some goes for services but for a shell extension it's pretty bad because the CLR will load into any process that uses the shell extension. That is plus 10-20 MB working memory for every process! Most applications have a 'Open File' or 'Save File' dialog. If you use the context menu in such a dialog the context menu shell extensions which are pretty popular and often pretty annoying are all loading into the process. If the CLR loads into a process it will stay in that process until the process terminates! Of course there many other scenarios requiring native code.
Writing native code I've examined lot's of options. I gave up on C++ because of the header/decleration/macro madness. The D programming language fixes the majority of the C++ flaws but really lacks of a common standard library and a decent IDE. It'll take 5 years minimum until it'll be decent, if ever.
The various basic dialects don't cut it as OOP isn't really supported, considering the OOP benefits and major parts of Win32 are COM objects and often COM servers are required these languages aren't a good option.
What's left is Delphi and FreePascal. Delphi is free now but it's bloated to death, the IDE is a 400 MB download, it requires stone age components like .NET 1.1 SDK to be installed. The setup runs forever and requires excessive disc space. BloatDelphi/SlowDelphi (referring to the IDE, not the compiler) would be more suitable for the current situation, Visual Studio is much more responsive and efficient as it's highly modular and the code is highly optimized. The Borland IDE like eclips loads painful slow, ten times slower than Lazarus.
I recommend everybody to give Lazarus a try, it makes enough progress. The latest FreePascal version added missing COM bits for instance!
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.