10 ms·
Lazarus Release 4.0
- colechristensen 1y agoIt would be great if release announcements like this always included a description of what the product actually is. >Lazarus is a Delphi compatible cross-platform IDE for Rapid Application Development. It has variety of components ready for use and a graphical form designer to easily create complex graphical user interfaces.
- cess11 1y agoI think you'd have a larger impact if you convinced other communities, like the Linux kernel or Xfce, that their "products" ought to have a note like that in their release announcements.
- TiredOfLife 1y agoHN submissions don't have a field for description. And you are supposed to use original title. And there is a length limit on title. And some angry internet user will make a comment - sometimes even the submitter.
- notpushkin 1y agoYeah, technically you could add text with the link submission, but it will demote the link somewhat and I guess is just frowned upon here.
- colechristensen 1y agoOh it seems my point was ambiguous, I really meant the website should include it
- nurettin 1y agoDelphi and Lazarus have been around for decades. It's like asking what lisp is.
- troupo 1y ago10000 thousand people a day hear about any given topic for the first time in their life https://xkcd.com/1053/ https://xkcd.com/1053/
- evidencetamper 1y agoWhich is an excellent point for conversations, but in the context of the release notes in the website of the project, I understand that this xkcd principle does not apply. If one goes to the release notes for Lazarus, they either sought those release notes out, and hence already know what it is. Or they were linked to it in a specific context, such as Hacker News, which the expectation of curiously clicking around to understand the project is natural.
- troupo 1y agoSometimes I click on HN submissions out of idle curiosity, not because I seek those out, or because I know what the link refers to. It doesn't mean that I will actively try and navigate out of a forum completely separated [1] from the actual product site just to see what it is. [1] It's the bane of nearly all projects, both commercial and open-source: blogs, release notes, discussions, forums and often even documentation don't have a single link back to the product page
- integricho 1y agoSince I read about the guy who was surprised that anything other than SPAs exist (the full page reload magic incident), I realized there are way younger people in the field with no context or knowledge of CS history whatsoever, so some of them not knowing about Lazarus or Delphi sounds totally plausible.
- lionkor 1y agoI think it's not elitist at all to say that people with no CS education (whether academic, self taught, or acquired over time) should probably not be considered when writing documentation or release notes. If you generate AI slop web dev code (and the chances are incredibly high if you haven't heard of Lisp or Delphi) you probably won't need Lazarus or care that native apps even exist. I'm all for teaching and explaining, and I know a small percentage of new CS people are curious and interested, but... release notes aren't the place for helping them. That said, an explanation of what Lazarus is is genuinely needed, because people who have written Delphi for years might not have heard it (thanks, Embarcadero). So your have a point beyond your main point there.
- szszrk 1y agoIt's a link to a whole forum purely focused on that IDE, with it's name in domain name. Why would they explain that to their audience? They know.
- colechristensen 1y agoBecause these things get shared elsewhere and end up getting looked at by someone who has no idea what the product is, like me, this time, with Lazarus.
- szszrk 1y agoYou are overreacting. It takes one click - the logo on top left - to go back to main site which covers "what is lazarus?" clearly. Is that logic, that a main logo of the site goes back to home page, already lost? They made an internal forum announcement. It's trivial to find out what that is. If you lack context, blame the place that cited this resource without it. So HN and OP.
- _Algernon_ 1y ago[dead]
- kristianp 1y agoAlso what's new in V4. Edit: it is linked in the post: https://wiki.lazarus.freepascal.org/Lazarus_4.0_release_notes https://wiki.lazarus.freepascal.org/Lazarus_4.0_release_note...
- TiredOfLife 1y agoObligatory https://castle-engine.io/modern_pascal https://castle-engine.io/modern_pascal
- mdaniel 1y ago> To return a value from a function, assign something to the magic Result variable. You can read and set the Result freely, just like a local variable. I'm torn about which is clearer, that magic variable style or assigning to the function name as one does in VBScript. I guess the magic variable makes refactoring dirty fewer lines I also have mixed feelings about golang's `func Doit() (result int, err error)` syntax. To quote another platform, "there should be one, and preferably only one, obvious way to do it"
- kgeist 1y ago>I also have mixed feelings about golang's `func Doit() (result int, err error)` syntax. To quote another platform, "there should be one, and preferably only one, obvious way to do it" Isn't it basically equivalent to an anonymous tuple which is automatically deconstructed on assignment?
- throw-the-towel 1y agoNot exactly because you cannot store the entire tuple in a variable.
- mdaniel 1y agoTo the novice reader in golang, it was an unexpected "wait, where did these symbols come from?" because I wasn't used to being able to look after the function signature for variable names, and that's doubly true for symbol names that didn't come from caller data I'm sure this solved some Google-y problem but for my tastes it is just needlessly confusing since I have never met a programmer who needed help creating local variables and that's got to be infinitely true now that AI gonna take all our jobs > Isn't it basically equivalent to an anonymous tuple which is automatically deconstructed on assignment? Your comment brought up an interesting point: a certain audience may also think those names appear in the caller's scope because they're part of the function's published signature but are an implementation detail func Doit() (result int, err error) { return 123, nil } func main() { // a, b := Doit() // fmt.Printf("In reality %d %+v\n", a, b) Doit() fmt.Printf("Uh-huh %d %+v\n", result, err) } ./fred.go:13:32: undefined: result ./fred.go:13:40: undefined: err I also just realized they're one of the places where golang doesn't emit a compile error for unused variables (as in the example above). Now I extra hate it func Doit() (result int, err error) { result = 123 return 456, nil }
- zerr 1y ago> Windows: 2k, 32 or 64bit, Qt, Qt5, Qt6 (64bit only) Besides Qt, does it have a pure Win API back-end as well?
- Peter5 1y agoYes. Try the IDE itself; on Windows it is built with Win API. PeaZip is a sample of it https://github.com/peazip/PeaZip https://github.com/peazip/PeaZip
- zerr 1y agoOk, using WinAPI means it is not easily theme-able, unless they provide custom set of controls. I assume it is possible to use Qt back-end for Windows as well. I wish Lazarus also supported C++ akin to C++Builder. Pascal is a deal-breaker many.
- Peter5 1y agoCustom control set is supported too, and there are multiple alternatives.
- ethan_smith 1y agoYes, Lazarus has a native Win32/64 widgetset (LCL-Win32) that directly uses the Windows API without Qt dependencies.
- user3939382 1y agoThis was the name of a sadly gone Firefox extension that saved all your form field values automatically
- rcarmo 1y agoNice to see this, and I jumped on it immediately since I really wanted to do a minimal form-based UI to a tool I'm building, but on macOS I keep getting linking errors when compiling (on a fresh install, on a machine that never had Lazarus before). I guess I'll wait for the next minor.
- vram22 1y agoRun Windows or Linux in a VM on macOS, and Lazarus in that VM? Also, is there no binary installer for macOS on the Lazarus site? Just asking. Don't know if there is one.
- rcarmo 1y agoYes, this is what I get when using those installers.
- renewedrebecca 1y agofpcupdeluxe is a lot more reliable than installing the releases. When arm64 came out, I couldn't even get an arm64 build for my Mac, but fpcupdeluxe just handled it.
- rcarmo 1y agoThanks for the pointer, but it seems to not know about the new releases yet.
- int_19h 1y agoBest part: a hello, world GUI app (a dialog with a textbox and a button that pops up a message box) is ~2.5 Mb on Win32. This was something like 500 Kb back in 2000, but it's still a far cry from your ~200 Mb Electron hello world.
- mrweasel 1y agoCan't you still do much the same with WinForm, or maybe GTK?
- int_19h 1y agoWith WinForms you can do much better, in large part because .NET itself ships with Windows and thus the app can just rely on it being there, but also because C# compiles to bytecode rather than native code (so it's not exactly a fair comparison). Anyway, the identical hello world GUI app in C#/WinForms is ~11 Kb. With Gtk, no, because it implements all widgets by itself rather than wrapping Win32, so it'll necessarily be larger. Also, statically linking it can be a pain (and AFAIK isn't even supported in Gtk 4 anymore).
- pjmlp 1y agoEven if C# compiles to bytecode, NGEN has been part of the framework since version 1.0, although using strong named assemblies might be bit of a pain. Then there is .NET Native and Native AOT.
- int_19h 1y agoYou couldn't redistribute NGen'd binaries tho, it was basically a local AOT'd cache. As far as Native AOT, last I checked it requires trimming which breaks WinForms (and WPF) according to the official docs. I don't think this matters much, though. There's simply no practical reason to AOT-compile a WinForms app. Not when the framework is guaranteed to be there, and JIT compiler is plenty fast.
- spapas82 1y ago
- speakspokespok 1y agoLazarus and Open Pascal is fun! And so it drives me crazy to see the state of their documentation. The wiki needs to be archived and replaced with a coherent documentation platform. It’s such a turn off. The whole website is a SWAG site frankly. ‘ SWAG sites SWAG is an archive of tips and example programs for Turbo Pascal/Borland Pascal and early Delphi. Much of it is still applicable to today's Object Pascal - and much is obsolete...’ How can a language compete when a new user sees this?
- CaptainOfCoit 1y ago> It’s such a turn off. Is this the wiki you somehow want to have removed? https://wiki.freepascal.org/ https://wiki.freepascal.org/ It seems perfectly fine, information-dense even which is even better. Seems a lot better than the typical one-long-landing-page-docs many languages have today. What exactly is the problem with the wiki that cannot be fixed and must be re-made from scratch?
- chungy 1y agoThe wiki is full of incomplete, obsolete, or otherwise not-so-useful articles. It suffers from typical "wiki as documentation" efforts, where instead of concentrated efforts from domain experts, you get a thousand half-baked opinions. It has good stuff, but I'd wager the "bad stuff" outweighs it by a large margin.
- speakspokespok 1y agoThank you for your response and your example. The problem is optics. Pretend I'm a brand new user and I want to build GUI applications. I've heard of a language called Freepascal and of an IDE called Lazarus. I think they're connected but I don't know how. And what's Delphi? Where do I start? ? Welcome to the Free Pascal and Lazarus Wiki [2] https://wiki.lazarus.freepascal.org/ https://wiki.lazarus.freepascal.org/ ? Lazarus Documentation https://wiki.freepascal.org/Lazarus_Documentation https://wiki.freepascal.org/Lazarus_Documentation ? Welcome to the Free Pascal and Lazarus Wiki [1] https://wiki.freepascal.org/ https://wiki.freepascal.org/ ? https://www.lazarus-ide.org/ https://www.lazarus-ide.org/ Most IDEs and languages have a Documentation link. Which link do I use to start with? FreePascal has lazarus docs and Lazarus has FreePascal docs? As a new user I can slog through 4 different links of schtuff, I guess. (Disappointment and frustration lie ahead; broken old buggy software that doesn't match the documentation. New User doesn't know that yet.) Maybe I'll just look for Youtube videos, but my enthusiasm is draining. I'm used to this: https://go.dev/doc/ https://go.dev/doc/ Everything linked from go.dev/doc works today and it's coherent. Everything. As other responses mention, the docs as a rule are out of date and confusing. [1] btw redirects to [2] from search engines.
- ramon156 1y agoIt took way too long to figure out what Lazarus is based on their own website. Only found out because somewhere some random post said "Lazarus IDE".
- deleted 1y ago[deleted]
- nopcode 1y agoI believe you are referring to their community forum. The link to "their own website" is in the left sidebar.
- xvilka 1y agoAt the same time it was deprecated[1] in Homebrew. Hope the mainstream will address the issue. [1] https://github.com/Homebrew/homebrew-cask/pull/199559 https://github.com/Homebrew/homebrew-cask/pull/199559
- rantingdemon 1y agoIt is a pity that Lazarus and FPC seems to be so hard to deploy. It is of course an open source project, so its understandable. Lazarus and FPC is a great project. Building GUI apps like with Lazarus does not have an easy alternative, from which I'm aware. I have tried it now on my Mac, and I have to jump through some hoops to get it going. Again a pity, its a great option.
- mikewarot 1y agoThat's one problem I haven't had. I've even run Lazarus on a Raspberry Pi Zero W, it was slow but it actually worked. I don't know what kind of hoops the Mac has, but on Windows or Linux it's easy peasy.
- lproven 1y agoI tried it and I can tell you that it's a lot easier with Lazarus 4 than it was with Lazarus 2.
- bigpeopleareold 1y agoI only toyed with Lazarus/Free Pascal. There was some things I couldn't get used to. Maybe time to toy around again :) I feel like mentioning a few things that helped in the past: fpcdeluxe for installing a build of fpc and lazarus and a plugin called anchordockingdsgn to get all the floating windows in one window. It would be nice if 4.0 defaulted to that. The Castle Engine Pascal tutorial was actually pretty good also (which is mentioned in another thread here.) (edit: for the plugin, I see an option in fpcdeluxe to dock all windows - so it's possible to build that plugin in initially.)
- Peter5 1y agofpcupdeluxe is great if you want to get a particular revision or build cross-compiling. If you need a stable version, just download the setup from. The docked IDE is the default option for this version.
- curtisszmania 1y ago[dead]
- ogogmad 1y agoHave people tried combining it with better-supported languages like Python or Go or Rust, leaving only the GUI to Pascal? Any guides out there?
- lelanthran 1y ago> Have people tried combining it with better-supported languages like Python or Go or Rust, leaving only the GUI to Pascal? Any guides out there? I do it with C, using opaque pointers for C objects. Painless because everything is statically compiled in. If you want a more dynamic solution (i.e. Python), you'll need to find a way to link every component in (or at least the ones your Python would use).
- chadcmulligan 1y agoDelphi does - eg https://blogs.embarcadero.com/getting-started-wit-python4delphi/ https://blogs.embarcadero.com/getting-started-wit-python4del... I use Lua from Delphi and vice versa regularly
- mappu 1y agohttps://github.com/ying32/govcl https://github.com/ying32/govcl is a binding of the Lazarus LCL GUI library to Go. It works pretty well, although I really got the impression that GTK2 and Win32 were the best supported targets, anything more modern was pretty buggy, so don't rely on it for hidpi support.
- fithisux 1y agoCan you suggest free resources for FreePascal and Lazarus?
- foldl2022 1y agoLazarus is still my favorite when developing desktop apps. Language is not a problem. Pascal is just C/C++ in another favor. LCL/VCL is a wonderful library, everything just works like what I am expecting.
- nicoloren 1y agoMe too! I have a software in production for a client made with Lazarus 3 (in Pascal of course) and everybody loves the "Windows feel" of the Gui. On Linux there is Gambas [1] wich is like Lazarus but for Basic. [1] https://gambaswiki.org/website/en/main.html https://gambaswiki.org/website/en/main.html
- fuzztester 1y agoLazarus is available on Linux too, and on some other platforms as well, is what I've read on its site.
- croes 1y agoPascal is more ALGOL than C
- lproven 1y agoALGOL-60 was huge, in around 1960. Niklaus Wirth had a detailed proposal for the next version of ALGOL, to be called ALGOL-X. The ALGOL committee rejected it, choosing a competing and much more complex language headed by Adriaan van Wijngaarden. This became ALGOL-68 -- and killed ALGOL. Wirth took what was known as ALGOL-W and turned it into Pascal. FWIW I wrote about this: https://www.theregister.com/2024/01/04/niklaus_wirth_obituary/ https://www.theregister.com/2024/01/04/niklaus_wirth_obituar... https://www.theregister.com/2025/01/07/algol_68_comes_to_gcc/ https://www.theregister.com/2025/01/07/algol_68_comes_to_gcc... Another offshoot of Algol-60 was CPL, intended to be more general-purpose and capable. But it was big and hard work to get it working. So Martin Richards designed, a simpler intermediate version, BCPL. (He also built an OS in it, TRIPOS. This formed part of AmigaOS 1.x.) BCPL was further stripped down to B, and then evolved into C.