After a few hours of writing code in Lazarus I feel the heavy desire to go to their community and flame them how horribly broken it is... but I resist.

After a few hours of writing code in Lazarus I feel the heavy desire to go to their community and flame them how horribly broken it is... but I resist.

Just saying...

Update with some details:

The default of the IDE is still that ugly undocked layout. No, I don't want to move like half a dozen windows from one screen to the other. So you have to install some extra packages to make it work in docked mode which kinda works but is still a bit unstable at times. Granted, personal preference but this affects my overall experience.

Then I started porting some Delphi code and quickly noticed that the codetools are not up to date to what the compiler obviously supports because any code completion feature stopped working after I added a generic method to my type so I had to comment it out while I was working on that unit.
Type inference was working even worse than it does in Delphi and threw some weird compiler errors.

Adding a new method to my record and hitting ctrl+shift+c and it added some methods to the implementation part of the unit again plus complained that something was wrong (go figure!). So I was constantly removing wrong code (I remembered why people are referring to this as "IDE vomit"...)

The debugger... can I say anything nice about that thing? I would quit my job if I ever had to use that *** for my daily work. The Delphi debugger can be a bitch but at least I can inspect most of my stuff most of the time and it understands what I want when I hover the mouse over some identifier and shows me some nice popup that I can expand for classes or records (although that can get messy sometimes). Let alone putting some expressions into the inspect window and evaluating them when on a breakpoint.

Oh and at least Delphi records are getting properly initialized when they contain managed fields (see http://bugs.freepascal.org/view.php?id=30357).

Some nice things?
Sure. I am sooo jealous right now that I can initialize local variables in FPC just as I can with global variables. Now that is an awesome thing (although it also has some bugs) which I would really love to see in Delphi.

Comments

  1. Please, some details. I have had a more positive experience, but have not been trying to exercise the more exotic elements.

    ReplyDelete
  2. Say it isn't so :). So, are you saying that RAD Studio really isn't that bad after all? Sure it has its faults (plenty of them)... Lazarus certainly fills a niche and does have some positive qualities, but to say it's this Utopian panacea is quite the hyperbole.

    ReplyDelete
  3. Well... that's what I hope the Foundation will be able to help with... ;-)

    ReplyDelete
  4. Allen Bauer
    The relative quality of Delphi is utterly independent of that of any other tool. Most of my numerous Delphi issues are with the IDE, not the compiler. And the Lazarus IDE is a much different experience, as it offers fewer live interactive tools. That said, it is free of the defects that seem to remain and fester in those areas.

    ReplyDelete
  5. My point wasn't to make claims of superiority (unlike those that vehemently support Lazarus/FPC)... my point was akin to the old adage that the "grass is not always greener on the other side of the fence" (http://www.urbandictionary.com/define.php?term=The%20grass%20is%20always%20greener%20on%20the%20other%20side%20of%20the%20fence)

    ReplyDelete
  6. Bill Meyer Well... this is true for the 32 bit compiler, but the rest... ohh.. the rest... with all the Internal compiler errors... They are in really bad shape, and to top it off 10.1 Berlin completely broke the OSX compiler :-( . Have submitted all the test cases and everything, but well... it has been confirmed as broken by the QA team, but no fix in sight so far :-(

    ReplyDelete
  7. Boian Mitov By "completely broken" do you mean it doesn't compile anything or just that it doesn't compile some specific construct from a piece of your code? I suspect the latter, since if the former, I don't see how that could have even happened. Hyperbolic statements only muddle the discussion.

    ReplyDelete
  8. Allen Bauer
    And yet, that is how it reads. Allen, I made claim regarding quality in Lazarus. I said, in fact, that I had only explored a little. But I work every day, all day, with two versions of Delphi (D2007, XE7), and am endlessly disappointed by unresolved defects. And I am not speaking of cosmetic issues, but of substantial ones.

    I have explored Lazarus, and will continue to do so, not because I expect it to replace Delphi, but because I think it is worth exploring, and my days of buying Delphi licenses for myself are over. The price to value relationship is way off. Had I a large business with extensive commitment to Delphi, as does my employer, my outlook would be different. Still unhappy, but different.

    ReplyDelete
  9. Allen Bauer Some of the attributes support is broken, and this being essential part of our code, almost nothing can compile on our side :-( . I could not build even one of our packages :-(

    ReplyDelete
  10. Allen Bauer My concern is the persistent low quality of the non Wn32 compilers. They bomb with internal compiler errors on regular basis. There was a period when there was gradual, albeit slow improvement in their quality, where in 10 Seattle, they become reasonably stable, but 10.1 Berlin is a unfortunately step back so far.

    ReplyDelete
  11. A concern I have is the plethora of long standing problems, not only those which make my own work difficult, but those I continue to see reported here. From my perspective, and I have had this experience with other vendors, not just EMBT, better the devil I know.

    ReplyDelete
  12. Allen Bauer I think I never said that. Anyway I was just posting this statement above because some people constantly claim that Lazarus is so much better. Well if you compare that one is for free and the other one costs several hundred bucks I guess you can skim the requirements on quality and user experience but if you just compare them I can not see it anywhere near RAD Studio despite its defects.

    Bill Meyer I will update my original post with some details.

    Boian Mitov I have seen that issue and I know it will be fixed with Update 1. Anyway there is a easy solution how to compile that code. I leave it to you to find that out - I did within less than 5 minutes (granted for the demo code you posted, real code I guess is more complex)

    ReplyDelete
  13. Javier Hernández Because the demand from customers for such a thing probably doesn't warrant the investment.

    ReplyDelete
  14. Bill Meyer Let's break down my statements.

    My initial statement was: "So, are you saying that RAD Studio really isn't that bad after all? Sure it has its faults (plenty of them)"

    Here, I conceded that RAD Studio has it's faults, and more that it should.

    Next, I juxtaposed that statement about RAD Studio with Lazarus: "Lazarus certainly fills a niche and does have some positive qualities"

    Here, I acknowledged the existence and appeal of Lazarus. I even conceded that there are some positive (read desirable) features/qualities about it.

    How, exactly did I make any claim of superiority or otherwise trash Lazarus? If anything, I find that my statements were quite balanced... even dispassionate. I was only pointing out exactly what I said above.

    ReplyDelete
  15. Anxious to see the progress on Lazarus since the last time I looked. Back then the state of it wasn't too good.

    ReplyDelete
  16. Javier Hernández Your response makes no sense at all to me. Sorry.

    ReplyDelete
  17. Javier Hernández​​ that's is a totally unrealistic and idiotic feature request. Never going to happen and completely infeasible. Link your static library into a DLL as nature intended. Ridiculous that anyone could imagine static linking to a library dependent on a different compiler's runtime. 

    I think you should just use FPC and give up on Delphi. Can't you just do that and make us all happy here.

    ReplyDelete
  18. Stefan Glienke "Anyway I was just posting this statement above because some people constantly claim that Lazarus is so much better. "

    That is the classic definition of thinking "that the grass is always greener on the other side of the fence".

    That was my only point. I wasn't trying to make any claims on costs, funding, features, etc...

    ReplyDelete
  19. I have just started to look at Lazarus again after many years. I was pleased that the IDE is much better behaved. But it still feels like stepping back into the olden days.

    ReplyDelete
  20. Boian Mitov One thing I wish I'd have gotten to was adding attribute constraints. IOW, being able to define an attribute such that it can only be used on certain language elements. The scaffolding was already present in the compiler, but disabled (it was only enabled for the .NET compiler where it was enforced). It did require defining more meta-attributes (aka, attributes to be placed onto attributes to define the constraints).

    Of course that doesn't directly speak to the issues you are having... but let's just say that I did leave a lot of unfinished business and an overall vision still in mid-flight.

    ReplyDelete
  21. Javier Hernández Don't discuss specific unrelated QP issues here - I don't want to get notification bombed by bullshit discussions, thank you :)

    ReplyDelete
  22. Stefan Glienke Sorry about that... it happens every time I weigh in on a discussion... "Ooooo!!! there's a name I know... I'll ask about my pet feature/bug"

    ReplyDelete
  23. Stefan Glienke Actually I submitted multiple issues. However since they were not easy to isolate in small test cases, I worked with Jason from the Embarcadero QA, to isolate them. He is a great guy, and did fantastic job, even prepared nice good test cases for the Dev. team, and registered the reports in the internal system, but after that it was out of his hands, and kind of went dead. I checked a month later to see if there is something fixed that I can test, internal build or anything, but it appeared that no progress had been done. We will see how it goes...

    ReplyDelete
  24. Allen Bauer Yes, your point is perfectly correct. Both products have their strengths, and weaknesses. Both are part of the same ecosystem, and hopefully both will get better, and we will have more choices, and options :-)

    ReplyDelete
  25. Randy Tapson The good news is that it has improved considerably lately. You should have seen it, when I looked at it couple of years ago :-D . Hopefully with a little push, it will get good enough for us to enjoy it ;-)

    ReplyDelete
  26. Allen Bauer I'm curious to understand the value of that one, given to actually do anything with an attribute, you need to get involved in runtime querying anyway. What sort of scenarios do you have in mind?

    ReplyDelete
  27. Jeroen Wiert Pluimers I think you will find some nice improvements :-) . I looked at the latest version, and it was much nicer than what I remember from about a year ago :-)

    ReplyDelete
  28. Chris Rolliston Allowing an attribute only on like methods or the class itself (you would specify that on the attribute class itself). Currently you can put attributes everywhere even if they don't make any sense and the compiler does not tell you anything about it.
    Like currently you can put the [Weak] attribute on everything, classes, methods, parameters but it only makes sense on a very limited set of elements.

    ReplyDelete
  29. Allen Bauer "One thing I wish I'd have gotten to was adding attribute constraints"
    That is something I have been dreaming about :-) So bad, that you did not have chance to implement it. This would have been a game changer feature.
    Honestly, with the risk of offending some people, when I was at Emb. couple of years ago, my impression was that you are the "real brain" there, and when you left, the "product vision" also left through the door.
    Again I am sure this will offend people, but that was my impression...

    ReplyDelete
  30. Stefan Glienke Yes, attributes constraints is something I wish I have literally every day... When Allen left, a huge void has appeared in the Delphi development, and vision :-( . It will be really hard to fill...

    ReplyDelete
  31. Stefan Glienke Sure, I know you can apply any given custom attribute to anything, I'm just now seeing what real benefit compiler-enforced restrictions would add. Any use of attributes involves (a) defining one or more TCustomAttribute descendants (b) applying these definitions to things [LikeSo] or [LikeThat(1)] and (c) runtime querying the extended RTTI API to actually do something with them. Steps (a) and (b) are trivial, step (c) the relatively 'hard' (and 'ugly') part, and I'm struggling to see how static constraints would much change it. Misapplying an attribute isn't like (say) misdeclaring a C API import where there's a real danger of erratic, hard-to-debug runtime crashes.

    ReplyDelete
  32. Boian Mitov Well... I'm not offended ;-)... Oh, sorry, was that out loud?

    ReplyDelete
  33. Chris Rolliston If you start using huge number of attributes, you will also start seeing the benefit of compiler enforced restrictions ;-) . I know I desperately need this feature, so much so, that I am considering writing a preprocessor just to be able to implement it myself, and have it check for the constraints. It would be a killer feature if the compiler supports it IMHO.

    ReplyDelete
  34. Chris Rolliston The point of having attribute constraints is not only for compile-time checking. With attribute constraints you can write your runtime code knowing that you'll never see an attribute intended for a method appear on a field. Without the constraints enforcement, you can also inadvertently bloat (yeah, RTTI is already bloated, yada, yada ;-) the RTTI even more than necessary.

    ReplyDelete
  35. Delphi's debugger and IDE are LIGHT YEARS ahead of Lazarus and FPC's.  FPC has some nice compiler/linker things (ability to link to a .lib file), and you have to admit FPC has a long head start on Linux for server side service coding.  The desktop app story for Lazarus... Well, LCL is unfortunately not that great. 

    I think that I will write an HONEST head to head review on my blog and try to OFFEND EVERYBODY EQUALLY.

    ReplyDelete
  36. Warren Postma Boy do they both deserve some OFFENDING :-D My hope is that they both will keep improving, and we will enjoy them both...

    ReplyDelete
  37. I haven't used Lazarus to the extent that I can post any insightful comments, actually I have only tried it compiling several libs/components I'm interested in, and what it makes me exciting is that I can write web services with mORMot for Linux :)

    ReplyDelete
  38. BTW, are you trying Lazarus with the expectation that it should be fully on par with Delphi? Maybe it's not that right if so...

    ReplyDelete
  39. Warren Postma Last I checked, Lazarus didn't even have a debugger; it relied on GDB.  Has that changed?

    ReplyDelete
  40. Mason Wheeler GDB? Sigh... GDB is built on the premise of making debugging so incredibly painful and horrendous, that you would rather spend weeks/months hand-debugging your code on 15" green-bar paper... Or incur thousands of tiny paper cuts and then jump into a vat of alcohol.

    ReplyDelete
  41. Allen Bauer Precisely.

    And last time I used Lazarus (it's admittedly been several years) that was what passed for a debugger.  Has that changed?

    ReplyDelete
  42. Stefan Glienke I'm slightly surprised that the only thing you like is local variable initialization...

    my experience throughout the years with Lazarus was always optimistic, every year major improvements, sure, it might be far from what Delphi's IDE has to offer, but then again, how many issues have you encountered there too?

    you can modify the source of Lazarus, rebuild and bug fixed in stead of commenting things out(kinda' takes the same amount of time if you sum it up...), you can't do the same in Delphi, I remember waiting for Andreas Hausladen to fix Delphi for us...

    for me, Lazarus takes < 3 seconds to start and load the last project, Delphi on the other hand was never able to achieve same timings, whenever an internal exception was thrown, I threw the towel, restarted it and went for a coffee

    ReplyDelete
  43. Dorin Duminica  Speaking of modifying the source of Lazarus, does it still need to rebuild the entire IDE to install a design-time package?  Or did they finally get around to implementing a proper package system?

    ReplyDelete
  44. Mason Wheeler The proper packaging system has been implemented in one of the trunks, and one the goals of the Lazarus foundation is to make it available in the main distribution, and across all platforms :-)

    ReplyDelete
  45. Javier Hernández seems that your new feature request on quality.embarcadero has ZERO (yes!), zero votes. Does that mean that even you, the requester, hasn't voted for it? Seems that it will get low priority! LOL

    ReplyDelete
  46. Dorin Duminica I am surprised it took more than 50 comments until someone played the "well you can fix things yourself because its open source" card. Like its easy to find out what exactly is wrong and then come up with a fix.

    ReplyDelete
  47. Mason Wheeler I'm not 100% sure, haven't done much desktop development lately.

    Stefan Glienke not playing any card, your post seems to me more like a venting post than anything else;
    I get it, we all go through something similar sooner or later, it will take no more than a year and you will start and complete your first app in Lazarus, simply because you'd have passed this phase (;

    welcome to the dark side, you're now one of us, happy coding!

    P.S. don't forget to submit bug reports and patches, lots of patches!!

    ReplyDelete
  48. Stefan Glienke Well... one thing for sure. It is probably easier for me to do this than to spend 2-3 days (as I did on number of occasions last year), to keep cutting parts of ~1mln lines of code until I discover what part is causing "internal compiler error" without a specific line number or even file at the linking stage :-( . I mean both are bad, but at least when you have the code, you have some chance of spotting the problem instead of just tweaking somewhat blindly your code until you get the compiler somehow to chew it... which is my experience with non Win32 compilers on the Delphi side... :-(

    ReplyDelete
  49. Dorin Duminica I am not doing anything like that. I tried to port some code that would be a small piece required of a much larger part that is missing to bring any of my open source code to FPC. I am doing that attempt every year or so and quickly give up because I have way more promising things to do.
    But yes, it was a venting post. I felt I could write one for a change. ;)

    Boian Mitov It does not take me that long but by now I have a very good sense for what is causing an ICE and what exactly I changed. It only gets worse when I do many changes without compiling it for each platform and then have to backtrack when something broke. That is why I love continuous integration.

    ReplyDelete
  50. Stefan Glienke Dorin Duminica Why should Lazarus/FPC be exempt from one of Stefan's rants? RAD Studio has been the target (and rightly so in many cases) of his ire many times. Let's spread the "love" around ;-)

    ReplyDelete
  51. Allen Bauer because we are right and they are wrong !! (;

    ReplyDelete
  52. Allen Bauer I just felt I could point out some negative points and how it actually falls short really bad compared to Delphi while certain suspects always push it just because it generates a few asm instructions less or something similarly irrelevant. ;)

    ReplyDelete
  53. Dorin Duminica Not that you're biased or anything, right? :)

    ReplyDelete
  54. Stefan Glienke That's heresy to claim fewer asm instructions are irrelevant... How dare you? ;)

    ReplyDelete
  55. Allen Bauer We really seem to be in the season of development tools "Love"... :-D

    ReplyDelete
  56. Performance does matter though. Personally I want it all. Great tools and efficient code.

    ReplyDelete
  57. I wish the best to FPC/Lazarus I am aware the combo is far from perfect but I personally have no plans to upgrade Delphi let alone a support subscription,
    so I wish I could compile some XE or XE3 projects on FPC/Lazarus with minimal changes ( not GUI ). I know that it's not possible right now but next week I will make my first donation to the foundation and I hope i can keep it doing that for at least a few months in order to help them, but if my goals are not reached I'm equally be glad to give them a hand

    ReplyDelete
  58. Mocte Sandoval Thank you for your support for the Foundation! :-)

    ReplyDelete
  59. Mocte Sandoval​ donations are good, helping hand is better

    ReplyDelete
  60. Allen Bauer​ ME, biased? Never. (;

    ReplyDelete
  61. The most important feature of FPC/Lazarus is that it exists, as a fallback/lifesaver in case something should go really wrong with Delphi. I don't think it ever will, but it is nice to have alternatives when you invest a lot of time and money in your source code that relies on just one company.

    ReplyDelete
  62. Right now we should all start cheering for Delphi failure, because when all those Delphi developers start fixing FPC and Lazarus we'll have tool of our dreams... Yeah, right...

    ReplyDelete
  63. Pros, cons and objectivity for a Delphi vs. Lazarus/FPC comparison is nothing I have time for right now. Would Delphi be OS I would patch that or completely rewrite things. Right now I do not spend much time with coding apart from the job, but when I do I do not do anything with Lazarus - I do work on Delphi and look at things like omnipascal. Has anyone yet integrated it in Delphi?

    ReplyDelete
  64. Hatters gonna hate. Stefan Glienke example in bug report #30357 works fine with trunk (PASS). To get latest tuned trunk version for Delphi users please try http://newpascal.org . Generics.Collections, preview of new syntax + mORMot will be ported here.

    ReplyDelete
  65. Maciej Izak I did take the one from newpascal.org (yesterday) which produced this exact error. Then I took the official 1.6 and also the one from getlazarus.org and they all produced the wrong code.

    And tbh as someone that is not constantly following the community I am not even sure which one is the correct one. Is your newpascal repo on github your personal flavor of FPC/Lazarus? Can I report issues I find there on the official tracker or can it happen that the bug is not in the official trunk (which is still svn as I understand) but got introduced in your repo... bottom line: this is very confusing

    ReplyDelete
  66. Until FPC adds attributes and generic constraints, I can't use it at all.

    ReplyDelete
  67. Stefan Glienke  strange :\ I can't reproduce. GetLazarus is not official release. NewPascal is also not official but main idea is to merge all NewPascal modifications into official FPC trunk (sooner or later...). NewPascal repo is special edition for mORMot, powered by A. Bouchez  and mORMot users. The official FPC trunk modifications are merged into the NewPascal repository several times a day, via an automated process. Check https://github.com/dathox/newpascal/commits/master which is in fact merged from https://github.com/dathox/newpascal/tree/freepascal . The best place for bugs is official bugtracker.

    ReplyDelete
  68. Lars Fosdal I have few fixes for FPC generic constraints (I have plan to merge them into NewPascal soon). Maybe I can help. What you need?

    ReplyDelete
  69. Maciej Izak As a start, I need them to be Delphi compatible. I am also dependent on attributes as I use them a lot together with RTTI to do in-code configuration.

    ReplyDelete
  70. Maciej Izak Shouldn't those fixes be merged with official FPC trunk then? (and not NewPascal)

    ReplyDelete
  71. Lars Fosdal Some code example for generic constraints?

    ReplyDelete
  72. Lars Fosdal Maciej Izak Can you continue that in a separate conversation please?

    ReplyDelete
  73. Rik van Kekem It will be ofc. presented for FPC core team but you need remember that not every Delphi compatible patch is welcome, FPC has strict rules. They like keeping even improper solutions for backward FPC compatibility (for example non managed fields for records are listed as managed fields in RTTI). That is one of reasons why NewPascal exist.

    ReplyDelete
  74. Maciej Izak A small example of how I use attributes.

    I have a TQuerySet - which basically is a virtual, non visual grid. It has a couple of descendant classes - a TQuerySetSQL which know how to fill the queryset from an SQL query, and a TQuerySetList which knows how to fill the grid from a List of T.
    Then there is a TQueryGrid which knows how to configure, populate, sort, select, check, copy itself to the clipboard, i.e. operate on the data provided by a TQuerySet class.

    Code excerpts
    http://pastebin.com/q2Gkq5Pn

    Screenshot (largest grid is configued by the code excerpts)
    https://drive.google.com/open?id=0B1MyXorVzay9UGVRQWpwdWRvOEk

    All the QuerySet fields are initialized through the use of RTTI and attributes (excerpt only show some of the attributes). That's in the inherited part of the Create.

    For TQuerySetSQL, I actually don't need to define the columns at all, but can use the metadata from the DB to create the right type of column.

    The grid is dropped on the design frame, and in this case, it also has a specific ImageList attached. TQueryGrid will assign a common ImageList if none is found.

    Why do I do this non-visual/visual split? - because that way I can write testable non-visual code for unit testing / integration testing.

    I can also write another TQueryGrid descendant which allows me to exchange the TMS grid component with something else, without more hassle than changing a type and dropping in the right grid in design time.

    ReplyDelete
  75. Ah, sorry, Stefan Glienke. Didn't see your comment until I posted this. My bad.

    ReplyDelete
  76. If you feel a desire to go flame then do not suppress your desire; go ahead and go flame :) http://www.lazarus-ide.org/ I am sure they will be happy to hear your complaints and flame you in response))

    ReplyDelete
  77. I am not interested in a flame war. I made my point and move on and come back next year or so and try again. Waiting what happens in the mean while.
    I think FPC and more so Lazarus lacks a clear direction and leadership (in fact something that many open source projects where many people contribute suffer from). Some people with strong opinions are kind of guarding FPC and discussing how things should not be done (I read fpc-devel from time to time) but are still only working on this in their spare time so of course they only work on some things that are fun (like making stuff run on the umteenth platform or something similar).
    I wonder if that will change with the foundation but I guess just spending money is not buying you the right to tell the direction things are heading to because in the end people will still only work on things they like and not things that have to be done.

    ReplyDelete
  78. Lars Fosdal Generic constraint should works fine in current FPC trunk/NewPascal. To fix any bug related to "generic constraints" we need bug report with minimal case example. Attributes are another story... Ready to use branch with working attributes implementation is waiting almost 3 years for merge. Merge with RTTI attributes branch is also NewPascal target. :)

    ReplyDelete
  79. Dalija Prasnikar Well... nobody is cheering the failure of Delphi, and at least my hope is that Delphi will not fail, and will whether the stormy time, but it surely is a time to be concerned, and make sure there are viable alternatives for all of us ;-)

    ReplyDelete
  80. Rather than re-writing Delphi it might be better to re-write our programs. Pascal is not the only language. There are choices.

    ReplyDelete
  81. David Heffernan For the Windows platform, there are not many languages that offer a time saver with the ease of use that VCL does. It is not only about the language, but also it's libraries.

    ReplyDelete
  82. /i feel i sub read all of this sub not today though sub

    ReplyDelete
  83. Lars Fosdal David Heffernan Yes, it is not all about the language. But, the point is, if Delphi fails which libraries you will have available in FPC?

    While I have always thought of FPC/Lazarus as some sort of safety net and possible exit strategy in case something happens to Delphi, the more time passes the more I can see that FPC/Lazarus is viable option more in theory than in practice. At least in my case.

    ReplyDelete
  84. Dalija Prasnikar If/when I move from Delphi it will not be to another Pascal language.

    ReplyDelete
  85. David Heffernan
    Can't you solve this by putting your time-critical calculation code in a dll that's written in gcc or some suitably optimized?

    ReplyDelete
  86. Johan Bontes​ Not easily. There isn't one single kernel to migrate to a different language. Probably will port to C++ in the next few years. Don't particularly like C++ but there you go.

    ReplyDelete
  87. David Heffernan Just be aware that while C++ has some great features such as templates etc. and the C++14 comes with fairly good anonymous methods support, and even allows you to specify capturing rules for variables in the anonymous methods, it practically does not have any RTTI, and most certainly no custom attributes, so whole classes of problems, are extremely difficult, and time consuming to implement. While Delphi has its own shortcomings, it still offers one of the best combinations of modern features.

    ReplyDelete
  88. Boian Mitov Yeah, I know what C++ is. I've no need for RTTI and attributes. I'm interested in numerical code that executes efficiently.

    ReplyDelete
  89. David Heffernan Than you probably will find C++ an excellent choice :-) . I use it a lot, and if you don't need RTTI, it offers a lot of advantages.

    ReplyDelete
  90. One of Stephan's comments made me believe that, both get-lazarus.com and newpascal.org ** needs an About page ** clearly stating that they are not official, and their difference. Maciej Izak what do you think :)

    ReplyDelete
  91. Stefan Glienke​​ Pay the thousands of dollars you spend for the Delphi IDE to the Lazarus Foundation and the progress will be awesome!

    I think you forgot that you spoke about an open source project, whose developers don't get a penny for developing this but do this by pure enthusiasm and to create a free alternative to Delphi!

    ReplyDelete
  92. Edwin Yip page content on newpascal.org is incomplete yet. I agree that we need to create more precise description. NewPascal means NewPascal. Did you ever seen on Ubuntu page : "WARNING! KEEP OUT! Ubuntu is not official source of Debian"? ... NewPascal is new IP to identity FPC compiler tuned for mORMot + selected libraries (including mORMot and Generics.Collections) + new compiler features (more like early access with FPC_HAS_* defines and with discussion on mailing list to correct syntax).

    ReplyDelete
  93. Stefan Glienke bug #30357 is fixed by Sven. New version with fixed bug available at newpascal.org

    ReplyDelete
  94. Marc Hanisch​ is there evidence of that working?

    ReplyDelete
  95. David Heffernan​ there is no evidence! If you want an evidence, go and participate on the project! I think you Windows guys sometimes don't get the point of open source software! You can't have any claims about open source software, you did not pay anything for it. If you want reliability, go and help to develop the project!

    ReplyDelete
  96. David Heffernan have a look at rust too.

    ReplyDelete
  97. Why doesn't FPC/Lazarus sell their product for a price? Then they would have the money to maintain it. Is there something about that method that wont work?

    ReplyDelete
  98. Marc Hanisch​ so why are you proposing we divert our license fees to FPC devs? What difference will it make. What will the money be spent on. And yes, I do understand how open source software works.

    ReplyDelete
  99. Marc Hanisch I only participate in crowd funding when there is a clear strategy and plan what will be done - here I just see a rough list of possible things. I am not throwing money at something for nothing. And FWIW I spend a big amount of time with open source projects already. So don't tell me. And I think you can have claims about open source pretty well.
    P.S. Fun fact: the first open source project I was part of was ZEOS and I did the port for Lazarus - I think that was in 2004 or so. :)

    ReplyDelete
  100. Agreed, crowd funding would be the *effective* way to go. The Delphi/Pascal community is a small one without big guys. I don't doubt the foundation might work, but I believe that the *more effective* way would be crowd funding - with specific list on what will be implemented.

    ReplyDelete
  101. Stefan Glienke it was not my aim to attack you! And I really honour the work you have done to these projects. But I think that you can't compare a product which is commercially developed with a lot of money behind with an open source project.

    Maybe it's true that some features doesn't progress as fast as some users want to (I'm really looking forward for a stable GTK3 support), but the only way to move the project forward is in participation. Open Source software is like direct democracy: participate or take what you get offered.

    I think that Delphi customers should have a a much higher interest these days in an open alternative to their IDE / compiler...

    ReplyDelete
  102. Another possibily is to use any foundation funds to pay for specific fixes, that way someone might be willing to contribute funds knowing their bug will be fixed.

    I regularly check on FPC/Lazarus but like others have said its not quite there. I think the requirement to install software to allow docked windows is an unnecessary hurdle and should be removed, its the first thing I have to do everytime. Also support for drawing modern graphics requires some hoops to jump through (TBGRACanvas instead of TCanvas), I'm thinking antialias lines, gradients etc. Its these little things that put me off.

    Having said that I have FPC running on the Odroid XU4 and Raspberry Pi and hopefully soon on the Pine64. I use it for checking performance per dollar of the single board computers against my desktop computer. Thinking of building a small cluster but only its cost effective.

    ReplyDelete
  103. About docking and Generics CodeTools support: if you pay me, I fix that within 1, maximum 2 months.

    So there is only the complaint about the debugger left ;)

    ReplyDelete
  104. Ondrej Pokorny
    Did you think about crowedfundig, where you can specify how much euros you need, and everybody can donate for that specific project/work? So when the money is reached, you can start.

    ReplyDelete
  105. Markus Ja Yes, I did. I gave a notice to the authors of foundation.freepascal.org
    I have to prepare a proper project for it and estimate the effort more precisely first - it will be about 1-2 month salaries, though. So not really a bargain :( But my current situation doesn't allow me to do this work just thanks to enthusiasm (too much paid work to do...).

    So yes, I will try to get the CodeTools+Generics and Docking listed in foundation.freepascal.org . Let's see if the Lazarus community will be willing to pay for these long-demanded features. I unfortunately think that nobody else will fix these bugs, so funding is the only way.

    ReplyDelete
  106. "Adding a new method to my record"

    Records don't have methods, surely?

    ReplyDelete
  107. David Heffernan Well I never. I suppose the only response is WHY?

    ReplyDelete
  108. Jeff Dyer  For the exact same reason as you have methods of classes

    ReplyDelete
  109. David Heffernan if I want methods I can use a class. Oh well.

    ReplyDelete
  110. Jeff Dyer  If you want a value type, then you cannot use a class.

    ReplyDelete

Post a Comment