PDA

View Full Version : Really Disgusted



Robert Kosek
27-02-2008, 03:51 PM
I pulled Lazarus out to give it a second, third or fourth (whichever), chance. I decided to remake an old project of mine that used SynEdit to edit the random map scripts from Age of Empires 2.

The resulting executable with just a SynAnySyn and a SynEdit, with no debug info and full optimization, was a 12.7mb bloated application. There isn't even a menu! This is 50% larger than Lazarus itself. :?

All I have the thing do is load a sample script, load the highlighting settings, and then enable the highlight settings. No really, this is it:
SynAnySyn1.LoadHighLighter('rms.ini');
SynAnySyn1.Enabled := True;
SynEdit1.Lines.LoadFromFile('ForestLand.rms');

Yeah, wow. I don't know whether to be insulted yet, but I can't even find, let alone compile the SynEdit highlighter generator to compile my real highlighter script. The removal of SynAnySyn for the real highlighter object the generator spits out would probably be better and smaller.

To add insult to injury, take a peek at the following screenshot. Two colors, comment and keyword, are utterly bungled. Roughly one third of all the objects and keywords are missing, unhighlighted, despite their presence in the INI-highlighter definition. Things like "random_placement", "ALPINE_MAP" and a number of others. I didn't bother to add the codes to highlight numbers.
http://img101.imageshack.us/img101/8969/uglysyneditdh1.png

Is it too much to ask that the application work correctly, even if it doesn't fit into the size it should? The older versions of Lazarus crammed it into ~4mb or less yet now it is three times larger. Not to mention that it malfunctions now too.

Please, is this just me? I want to like Lazarus, but every time I touch it something goes wrong, malfunctions, or bloats in crazy or inexplicable ways. Anyone who wants to see for themselves and maybe point out my error(s), you can retrieve the project here (http://files.thewickedflea.com/RMS%20Editor%202.7z).

waran
27-02-2008, 04:33 PM
And you are sure you read any available info on the FPC-FAQ?
Like how to generate an executable without debug-stuff in it.

And much more important: Do you use a released version or the
daily build? If the daily doesn't work you have to live with that - there
is no support for absolutely untested stuff.

grudzio
27-02-2008, 05:05 PM
To reduce the size of a Lasarus application do the following:
- Select Compilation options
- Select linking tab
- in debugging section uncheck all options except the last one: remove all symbols from executable
- check the smart linking option

This will reduce the size of your executable to something like 1.3 Mb

P.S. I have tested this on Lazarus 0.9.24 (fpc 2.2.0)

noeska
27-02-2008, 06:02 PM
Is it already possible to add components dynamicaly. Last time i tried lazarus had to be recompiled.

Robert Kosek
27-02-2008, 08:40 PM
Waran, yes I am informed. It's an easy option right there in project options. I have the released version, what is labeled as stable and not a daily build. I'd rather have stability than cutting edge technology.

Grudzio, IIRC I did that except for smart linking. I'll have to try it again, after I'm done with my reformat (don't ask, long story...).

Noeska, you misunderstand my issue, the latest version of a Lazarus compatible highlighter generator wasn't included; I don't have Delphi installed and refuse to install it, and so cannot actually build the project. So I lack the ability to generate a better highlighter.


This all doesn't explain the malfunctions present in SynAnySyn. Didn't you guys notice the missing keywords and objects right there in that screenshot? It's practically impossible to miss, and is why I am so disgusted. Because even if it is bloated, the least I expect is correct functionality.

LP
28-02-2008, 04:00 AM
I pulled Lazarus out to give it a second, third or fourth (whichever), chance. I decided to remake an old project of mine that used SynEdit to edit the random map scripts from Age of Empires 2.

The resulting executable with just a SynAnySyn and a SynEdit, with no debug info and full optimization, was a 12.7mb bloated application. There isn't even a menu! This is 50% larger than Lazarus itself. :?

Lazarus does seem to generate bigger code especially with GUI kind of stuff. The minimal uncompressed size I could get in a project was 1.7 Mb.

However, I was able to compile some ugly old code in FPC/Lazarus and it miraculously worked. :D The IDE is vastly improved from what I've seen 2-3 years ago, as well as compilation time in FPC. I think FPC/Lazarus guys are doing better than those from CodeGear (guess, Delphi 2007 Trial crashed before, during and after installation). :P My only minor complaint is the overstrict syntax, but for the rest - I found compiled apps to be pretty stable.

Your problems might be related to SynEdit project improperly ported and I honestly didn't see any major improvements in it during last 4 years.

WILL
28-02-2008, 04:25 PM
To my knowledge, SynEdit is an abandoned component. However due to mostly the Laz Team's efforts, it's been ported and modified to work with Lazarus.

I recommend that if you have an error or a noticeable bug, report it through the freepascal.org website. They have a whole system that they are dedicated to working on and knocking off issues one-after-the-other on a near daily basis. But if it's not in there.... you know what good that does the end product, right? :)

Robert Kosek
28-02-2008, 07:57 PM
SynEdit was abandoned for some time, but it's last update was March of last year ... and they've never had much alacrity. What I do know is that it worked well every time in Delphi, and that a port was planned.

In all honesty, it would be nice to have a warning when components aren't fully ported. It's easy to make a dialog that pops up when placed on the form, warning the user when something isn't fully ported. Or at least a slice of the docs mentioning this.

When Lazarus uses the components to get itself working and I try and follow suit only to find it doesn't work, this doesn't give me a "warm fuzzy feeling" about the IDE!

Quite frankly I am shocked that no one seems to have caught this yet.

---

Addendum:

I have now endeavored to fix the hideous code I've found. I have no clue why the following code was written the way it was, save for being cryptic, but I cannot figure out how to recompile the component. Nice of Lazarus to let me do a full recompile automatically like delphi does.

This is the wackiest code I've seen for a for loop:
while First <= Last do
begin
I &#58;= &#40;First + Last&#41; shr 1;
Compare &#58;= CompareStr&#40;fKeywords&#91;i&#93;, Token&#41;;
if Compare = 0 then
begin
Result &#58;= True;
break;
end else
if Compare < 0 then First &#58;= I + 1 else Last &#58;= I - 1;
end;

Okay, I rebuilt Lazarus and this section of code is the culprit. I hate cleaning up after people who code like this...

Robert Kosek
28-02-2008, 09:47 PM
I have come to the conclusion that SynAnySyn works exactly as programmed: wrongly. Perhaps this wasn't the intent, but the silly attempt at optimization, or whatever you'd call it, resulted in both obfuscation and an easily prevented bug. Who wrote this flawed code I don't know, but it is very irritating to have to rebuild Lazarus to fix one component that should have already been tested and repaired.

The negligence in maintenance, translation, and or testing could be so bad as to drive potential newcomers to Lazarus away. This was completely preventable.

The flaw in the logic has to do with binary math. They add the first with the last element indices and then shift right all the way through the loop. Given which string doesn't match in the comparison either the beginning or ending index is manipulated, the start grows and the end shrinks. Don't you think that this could cause a few bugs? Why not do a for-loop?

Using for-loops is approximately the same speed but without the bug, so I have repaired the unit.


The other problem is native to the compiler, and foolish. Lazarus uses BGR notation in hexadecimal colors and doesn't tell you this anywhere. The only way you learn this is by trial and error. So my colors were flawed because they were in RGB notation, like you would expect to have used. RGB is the "standard" in other pascal compilers, so why not Lazarus? This deviation prevents any cross compiler reuse of syntax highlighter configuration for SynAnySyn.

If you want to download a working copy of SynAnySyn you may do so here (http://files.thewickedflea.com/index.php?p=view&f=5).

LP
29-02-2008, 05:42 AM
The flaw in the logic has to do with binary math. They add the first with the last element indices and then shift right all the way through the loop. Given which string doesn't match in the comparison either the beginning or ending index is manipulated, the start grows and the end shrinks. Don't you think that this could cause a few bugs? Why not do a for-loop?
Sounds like a failed attempt at binary search. ;)

Ñuño Martínez
29-02-2008, 07:50 AM
The other problem is native to the compiler, and foolish. Lazarus uses BGR notation in hexadecimal colors and doesn't tell you this anywhere. The only way you learn this is by trial and error. So my colors were flawed because they were in RGB notation, like you would expect to have used. RGB is the "standard" in other pascal compilers, so why not Lazarus? This deviation prevents any cross compiler reuse of syntax highlighter configuration for SynAnySyn. May be it was written for a Motorola/PPC CPU so it does a bad conversion :?


If you want to download a working copy of SynAnySyn you may do so here (http://files.thewickedflea.com/index.php?p=view&f=5). Did you send a bug repport and the patch to the development team?

Robert Kosek
29-02-2008, 01:23 PM
Yuriy, can you give me a working example of a binary search? I can't honestly compare it to one without knowing what it should look like. This is my best guess based off the Wikipedia definition of a binary search algorithm:
First &#58;= 0;
Last &#58;= fKeywords.Count - 1;
Token &#58;= UpperCase&#40;AKeyword&#41;;
while First <= Last do begin
Mid &#58;= &#40;First + Last&#41; shr 1;
Compare &#58;= CompareText&#40;fKeywords&#91;Mid&#93;, Token&#41;;
if Compare <0> 0 then
Last &#58;= Mid - 1
else begin
// Our result is true, force an exit.
Result &#58;= True;
exit;
end;
end;
Result &#58;= False;However the result is the same as the old, and certain keywords are omitted. If you binary search (case-insensitive) the keyword list that follows for END_RANDOM you will not find it, and if you reorder the list that position is always missed. So, I dunno what I'm doing wrong.
CREATE_CONNECT_ALL_LANDS
CREATE_CONNECT_ALL_PLAYERS_LAND
CREATE_CONNECT_TEAMS_LANDS
CREATE_ELEVATION
CREATE_LAND
CREATE_OBJECT
CREATE_PLAYER_LANDS
CREATE_TERRAIN
DEFINE
ELSE
ELSEIF
END_RANDOM
ENDIF
GIGANTIC_MAP
HUGE_MAP
IF
LARGE_MAP
MEDIUM_MAP
PERCENT_CHANCE
REPLACE_TERRAIN
SMALL_MAP
START_RANDOM
TERRAIN_COST
TERRAIN_SIZE
TINY_MAP

?ëu?±o, yes I have reported it this morning. I waited until I had greater patience with the developers, as I did not want to abuse them over this. The urge to do so was great. Issue 0010913. (http://bugs.freepascal.org/view.php?id=10913)

EDIT: TStringList, when sorted, uses a binary search. I have now delegated the searching to this function. I would suggest any who downloaded the prior fix to redownload it and rebuild Lazarus again; now it uses the binary search instead of a linear search.

masonwheeler
29-02-2008, 03:59 PM
Yeah, my experiences with Lazarus have been similar. I want to like it, really do! But they've been promising the new and improved linker just around the corner for... how long, now? And so many parts of the LCL just don't do what they should.

With all the nasty glitches, slowdowns, and memory leaks that Delphi subjects me to, I still use it and prefer it, because IT WORKS. The compiler produces good code, and the debugger traces lines and displays data properly, and that's more than I can say about Lazarus. The rest is just details.

JernejL
29-02-2008, 05:13 PM
Lazarus uses BGR notation in hexadecimal colors and doesn't tell you this anywhere. The only way you learn this is by trial and error. So my colors were flawed because they were in RGB notation, like you would expect to have used. RGB is the "standard" in other pascal compilers, so why not Lazarus?

I bet it has soemthing to do with unix..

Aniway, Lazarus is a waste of a completely good compiler (FPC), too bad that there is no good standalone IDE for just the FPC, the odd default compiler settings of lazarus, and their stubborn effort to support all the various platforms and widgetsets without a single hack has produced a unstable unpolished ide, which has many bugs in the ide, which could be solved simply with a platform-dependant trick.

The lazarus code has also turned into a similar domino-lining effect which plagued delphi vcl and rtl, they just keep adding and using new unneccesary functions in the code, and at the end the linker barely has anything to strip away, you end up with a lot of rtl code that your app will never ever need, and most of this has to do with initializing code of each unit, they are the worst way to build a proper runtime library.

Not to mention the way they handle resources.. they are simply all converted into code files and linked into the app as large DATA CONSTANTS.. for crying out loud, how hard it is to use native os resources support (like win32) or maybe just use external files which are perhaps even manageable in a normal way by the programmer?

And don't get me even started on using GDB in lazarus.. i'd rather have NO debugger than that pile of poo.

Yes i sure am badmouthing lazarus a lot, perhaps i could help them solve these problems? but i don't have the time, i could probably put up a help lazarus bounty? maybe the lazarus team can try qualifying for help on the google summer of code event?

Robert Kosek
29-02-2008, 06:27 PM
Aniway, Lazarus is a waste of a completely good compiler (FPC), too bad that there is no good standalone IDE for just the FPC, the odd default compiler settings of lazarus, and their stubborn effort to support all the various platforms and widgetsets without a single hack has produced a unstable unpolished ide, which has many bugs in the ide, which could be solved simply with a platform-dependant trick. I thought of working on a pseudo-IDE for FPC. A pseudo-IDE because I'm not one to make an IDE. However, I am desirous of a nicer interface and code completion for vanilla FPC.

The main hook is how to catch console output of a launched DOS program and then redirect it into a Memo component. Maybe I'll figure that trick out some day.

Thing is, I couldn't afford to do it for free these days. And most folks don't want to pay for something that's little more than a graphical frontend to an existing compiler. :? Maybe if there were enough people willing to buy a $40 "frontend" I'd consider attempting it.

cronodragon
29-02-2008, 06:56 PM
There is a guy in the FPC mailing list that have just started creating one, maybe you could join him, or "learn" from his work:

https://sourceforge.net/projects/skybuckode/

Robert Kosek
29-02-2008, 07:40 PM
Thus far his work looks both basic and slightly bad. I've made plenty of editors, myself. Back when I worked with the A5 game engine I made an editor with syntax highlighting and built in script/level execution.

I've got the knowledge, but not the wherewithal to do it for free.

masonwheeler
29-02-2008, 07:46 PM
Redirection of standard output is a very simple trick that's been around pretty much forever. The exact mechanism for it varies from platform to platform, but once you know how to do it, it's pretty easy.

Simple solution:
Redirect STDOUT to a file. Run compiler. When compiler is finished, read the text file to the memo component. You get all your output all at once.

More complicated solution:
Redirect STDOUT to a file. Run compiler. Continually check the file to see if it contains text. If it does, place this text into the memo component and clear the file.

There's probably even a way to redirect STDOUT to some sort of memory stream instead of to a file. Not certain, though.

Robert Kosek
29-02-2008, 07:50 PM
I remembered the premise of the redirection, but not the implementation. So it'll take a bit of fiddling to get right. However, it'd be a little ways down the list. Proper highlighting, compilation, and project settings would come first. Then I could worry about the fancier appearance things and the nice redirections like that. ;)

JernejL
29-02-2008, 08:37 PM
Now.. at the end, you need to make a choice.. how to make such a ide? using fpc itself, lazarus, or.. delphi??

i would probably choose delphi, but how would such a project once compile itself? impossible.

Robert Kosek
29-02-2008, 09:08 PM
Delfi, I never said I would make a compiler or full IDE. Perhaps in the future this tool would develop in that direction, but not with any alacrity. So initially it isn't a problem whatsoever.

LP
29-02-2008, 09:08 PM
Yuriy, can you give me a working example of a binary search? I can't honestly compare it to one without knowing what it should look like.
Sure, here's an example code from our GameScripts.pas:



function TScriptObject.GetNode&#40;ID&#58; Cardinal&#41;&#58; TScriptObject;
var
Lo, Hi, Mid&#58; Integer;
begin
if &#40;SearchDirty&#41; then UpdateSearchList&#40;&#41;;

Result&#58;= nil;

Lo&#58;= 0;
Hi&#58;= SearchCount - 1;

while &#40;Lo <= Hi&#41; do
begin
Mid&#58;= &#40;Lo + Hi&#41; div 2;

if &#40;SearchList&#91;Mid&#93;.ID = ID&#41; then
begin
Result&#58;= SearchList&#91;Mid&#93;;
Break;
end;

if &#40;SearchList&#91;Mid&#93;.ID > ID&#41; then Hi&#58;= Mid - 1 else Lo&#58;= Mid + 1;
end;
end;


Remember that the list must be sorted for binary search to work.

LP
29-02-2008, 09:10 PM
Damn, the forum messes up Pascal code. The code in above post has some parts missing. I've tried both Pascal and Code tags and result is the same.

I've uploaded the code here (http://www.afterwarp.net/ykot/code.pas).

Robert Kosek
29-02-2008, 09:13 PM
Okay, thanks Yuriy. I solved the error by using TStringList.IndexOf, because when the list is sorted it uses a binary search. That search works, but mine doesn't--oddly enough.

To paste code like that, disable HTML in your post. That's the culprit. ;)

Setharian
01-03-2008, 06:55 AM
There's probably even a way to redirect STDOUT to some sort of memory stream instead of to a file. Not certain, though.
You can redirect STDOUT, STDIN and STDERROR to any handle capable of reading/writing including pipes. So you create a pipe, redirect output of another process to this pipe and then read the data in it. At least it works like this in Windows. There's even an example of this in the Platform SDK.

Almindor
01-03-2008, 09:09 AM
Hmm I should stop going to these forums. It's a danger to my health, all I see here is a bunch of idiots "demanding" something out of an OSS project and to make things worse, of parts which were taken from a dead (synedit) 3rd party component which nobody currently supports.

You didn't pay for the thing, you cannot expect it to be working 100%. You have no right to demand anything.

As a FPC developer I am disgusted at this pascal community.. if you can call it that.

Why don't you guys do everyone a favor, stop bitching, buy some expensive but working microsoft shit and work with that eh?

Oh btw. if you bothered to read the guide I stickied in the FPC section about lazarus compiler options you'd at least get your oh-so-critical size problem fixed. Now I'm wondering why I wasted the time to even write that thing.

marcov
01-03-2008, 09:50 AM
Hmm I should stop going to these forums. It's a danger to my health, all I see here is a bunch of idiots


Yes, this thread is pretty sad.

Mirage
01-03-2008, 11:07 AM
People, do you know that Lazarus is not the only IDE for FPC?
MSE IDE (http://homepage.bluewin.ch/msegui/)
Dev Pascal (http://www.bloodshed.net/devpascal.html)
FPC Shell (http://badhim.h11.ru/)

Also I've found that Delphi 2007 simply runs DCC32.exe for compilation (Delphi 7 has a built-in compiler). So it should be simple to make own DCC32.exe which will call "real" dcc32.exe or FPC.exe depending on desired compiler.[/url]

JernejL
01-03-2008, 11:35 AM
People, do you know that Lazarus is not the only IDE for FPC?
MSE IDE (http://homepage.bluewin.ch/msegui/)
Dev Pascal (http://www.bloodshed.net/devpascal.html)
FPC Shell (http://badhim.h11.ru/)

Also I've found that Delphi 2007 simply runs DCC32.exe for compilation (Delphi 7 has a built-in compiler). So it should be simple to make own DCC32.exe which will call "real" dcc32.exe or FPC.exe depending on desired compiler.[/url]

1. sure, if you can call this an "useable" ide: http://sourceforge.net/project/screenshots.php?group_id=165409
2. hasn't been updated for like.. 3-5 years?
3. looks interesting, tried compiling a small project, opened a dpr file, managed to set up fpc compiler but compiling failed with "cannot open file xxxx.dpr" error, but it looks promising.

Robert Kosek
01-03-2008, 12:39 PM
Hmm I should stop going to these forums. It's a danger to my health, all I see here is a bunch of idiots Yes, this thread is pretty sad.Then don't read it. I'm not bending your arm you know. I also see no need for you or Almindor to throw stuff out there with the flagrancy you do, since you should be grown men capable of seeing that I am already angry with Lazarus. So you snappishly respond in an attacking way to me in a manner quite provoking.


People, do you know that Lazarus is not the only IDE for FPC? Yes. I looked through SourceForge one slow afternoon. MSEide/MSEgui is the only one that is interesting to me but I haven't had the time to evaluate it. Dev-Pascal I don't like the feel of, just like the other Dev-line. And BadHim's FPC editor is outdated/abandoned.


You didn't pay for the thing, you cannot expect it to be working 100%. You have no right to demand anything.Then let me blow hot air. This is the most obvious answer. If I have no right to demand anything or to expect a decently functioning piece of software, then fine! But don't you complain about my complaints, because you've no right to demand my silence or obedience to the rank and file.

You have no right to demand my contentment with a partial piece of work the quality of Lazarus.

I hate babysitting programmers who are supposed to be competent. There'd be no need for this if there was a list of partial components, danger zones, instable code, and compiler warnings that warn of bad components. I know it's hard to write:
&#123;$WARNING This code is untested and may not work correctly!&#125;


I won't reply to anything else as it just came out as the start of a flamewar. If you don't like the thread either don't read it or don't respond, period. It's not my fault if you're embittered, have a chip on your shoulder, or a bug in your craw. I'm ticked about the problems and quality and there is nothing wrong, or even against the site rules, in voicing my displeasure. All I see are individuals acting trollish and trying to start a flamewar.


---

Delfi, if I remember correctly I did something with the brcc32 to get it to compile RC scripts by right-click and a menu item to compile them. Never thought to fool around with DCC32 itself. Though, I did manage to find a copy of D7.

I just hope Turbo Delphi works well this time, since I don't want to have to reformat again. (I just did three days ago.)

noeska
01-03-2008, 01:09 PM
Another IDE: http://pagesperso-orange.fr/franck.charlet/chrome.html

Robert Kosek
01-03-2008, 01:15 PM
That looks neat, Noeska. Thanks for the link, I'll probably look into it.

masonwheeler
01-03-2008, 01:33 PM
All I see here is a bunch of idiots "demanding" something out of an OSS project...

You didn't pay for the thing, you cannot expect it to be working 100%. You have no right to demand anything.
Funny. I always thought the #1 draw of an open-source project was supposed to be that, because any coder can look at the code, improve it, contribute to it, refine it, etc, that it's supposedly certain to have less bugs than a proprietary software product that does the same thing. When the developers break that implicit contract with the users, you'd better believe the users are gonna be ticked off...

noeska
01-03-2008, 01:59 PM
Another one: http://www.pspad.com/ This is an all in one ide for many languages. Also allows you to set up an compiler per extension.
So you can use .pp for freepascal, .pas for delphi, .cpp for gcc etc...

Forget about the previous one mentioned by me as that one nothing compared by this one. It even has an diff tool and

Oh and if you are on linux and want an all in one ide and form designer and debugging go for Lazarus.

Legolas
01-03-2008, 02:32 PM
I use PSPad for everything: it is the perfect editor, IMHO. Well, at least for my purposes :)

marcov
01-03-2008, 02:44 PM
When the developers break that implicit contract with the users, you'd better believe the users are gonna be ticked off...

There is no implicit contract with the users. I never signed anything.

The OSS way: if it bugs you, fix it.

masonwheeler
01-03-2008, 02:49 PM
There is no implicit contract with the users. I never signed anything.
http://dictionary.reference.com/browse/implicit

marcov
01-03-2008, 03:02 PM
There is no implicit contract with the users. I never signed anything.
http://dictionary.reference.com/browse/implicit

Implicit doesn't stop an agreement from requiring some consent from both sides. Written or not.

LP
01-03-2008, 04:25 PM
Hmm I should stop going to these forums. It's a danger to my health, all I see here is a bunch of idiots "demanding" something out of an OSS project and to make things worse, of parts which were taken from a dead (synedit) 3rd party component which nobody currently supports.
Actually, if you want to get some work done, avoid *all* forums altogether. :) There will be always people trying to criticize your work. Instead of taking it personally, try to see it as an opportunity for improvement. I agree that Robert's anger towards Lazarus is not very well fundamented, but there are also valid and useful suggestions coming out of this thread, which might be actually beneficial.



As a FPC developer I am disgusted at this pascal community.. if you can call it that.
You think this thread was harsh? You haven't seen what happens when someone admits of drunk driving on Gamedev.Net.

cairnswm
03-03-2008, 04:52 AM
Personally I think the developers of FPC and Lazarus are doing a great job.

While I dont use Lazarus for much development I always ensure that I can compile my projects in Lazarus and Delphi.

I truly believe that Lazarus will get there. It may not be there yet and has its problems but it is improving. I used lazarus about 3 years ago for a project and it was "good enough" then. Every version is an improvement and I certainly think that we should give them support rather than critism.

Why write a new IDE instead of starting to help out with the existing Lazarus IDE. The whole idea of starting a new project just seems to show the lack of faith in Open Source. There is NO WAY I would pay for a FPC IDE if I could use Lazarus instead.

PS. ConText is also an IDE in which you set up your own highlighters and external command line executables based on file extension.

Almindor
03-03-2008, 06:50 PM
Actually, if you want to get some work done, avoid *all* forums altogether. :) There will be always people trying to criticize your work. Instead of taking it personally, try to see it as an opportunity for improvement. I agree that Robert's anger towards Lazarus is not very well fundamented, but there are also valid and useful suggestions coming out of this thread, which might be actually beneficial.

Criticism is one thing, and if you ask the Laz devs they'll tell you I can be a PITA on #lazarus sometimes (news ladies and gents, I use Lazarus commercially). But there's a fine line between constructive criticism and "innocent remarks" like done here. If you think it's shit fine, but don't spread the excrement to the walls.

Also, I have nothing against the whole new IDE idea. I think fpGUI has potential and I wish MSEide all the luck, it's an interresting outlook (I can't from the position of lNet dev condemn anyone starting a new "alternative" to something bigger which exists). But the tone and style of this thread is simply put beyond rude, and this guy thinks that he SHOULD get a 100% working product for free. Well here's news for you pal, the people working on Lazarus do it in their free time for free and they do it only as long as they enjoy doing it. You can disagree with that, you can even criticize the functionality, but don't insult by side remarks or continuous whining. Especially if you can't read a damn FAQ.