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.
‘ 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...’
int_19h · 8m ago
Best 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.
rcarmo · 10m ago
Nice 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.
user3939382 · 35m ago
This was the name of a sadly gone Firefox extension that saved all your form field values automatically
Ok, 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 · 31m ago
Custom control set is supported too, and there are multiple alternatives.
colechristensen · 3h ago
It 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.
szszrk · 47m ago
It'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.
nurettin · 2h ago
Delphi and Lazarus have been around for decades. It's like asking what lisp is.
integricho · 2h ago
Since 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 · 2h ago
I 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.
mseepgood · 2h ago
You forget that every day, someone wakes up who is new to this planet.
anon7725 · 12m ago
And on that day their first priority is securing a good open source object Pascal compiler.
Timon3 · 1h ago
I know Delphi, yet I didn't know Lazarus until now. I'm sure there are others like me.
I can understand not wanting to explain Delphi, but come on, not everyone knows the name of every IDE for every language. It doesn't hurt to add one sentence explaining that. If I hadn't seen the comment above, I wouldn't be able to consider Lazarus in the future if I ever use Delphi again.
troupo · 2h ago
10000 thousand people a day hear about any given topic for the first time in their life https://xkcd.com/1053/
evidencetamper · 1h ago
Which 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 · 1h ago
Sometimes 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
TiredOfLife · 3h ago
HN 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 · 2h ago
Yeah, 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 · 2h ago
Oh it seems my point was ambiguous, I really meant the website should include it
cess11 · 2h ago
I 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.
This is one of the best introductions to what programming a computer is about that I know. I highly recommend checking it out, even if Pascal-like languages are not your cup of tea.
mdaniel · 2h 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"
int_19h · 18m ago
`Result` is clearer given that in Pascal, a function name by itself in any other context is a function invocation (with no arguments). That is, you then have this kind of stuff:
type PInteger = ^Integer;
var X: Integer;
function Foo: PInteger;
begin
Foo := @X;
Foo^ := 123;
end;
The first assignment here is assigning to the magic result variable, while the second one recursively invokes the function and dereferences the returned pointer to assign through it. This is technically not ambiguous (since you can never have a naked function call on the left side of the assignment, unlike say C++), but it's a subtle enough distinction for human readers. No such problem with `Result`, obviously, which is presumably why it was one of the things that Delphi added since day 1.
chungy · 2h ago
> I'm torn about which is clearer, that magic variable style or assigning to the function name as one does in VBScript.
That's also "old style" Pascal, and still supported by Free Pascal (even though the compiler gives you a warning for doing it!).
kgeist · 2h 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 · 1h ago
Not exactly because you cannot store the entire tuple in a variable.
ysleepy · 2h ago
For glance reading code, a predictable variable name or return keyword is a lot easier imo.
int_19h · 10m ago
Note that both are possible in Delphi and FreePascal - the intrinsic procedure `Exit(X)` is the equivalent of C `return`.
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.
‘ 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...’
This was something like 500 Kb back in 2000, but it's still a far cry from your ~200 Mb Electron hello world.
I guess I'll wait for the next minor.
Besides Qt, does it have a pure Win API back-end as well?
>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.
Why would they explain that to their audience? They know.
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.
I can understand not wanting to explain Delphi, but come on, not everyone knows the name of every IDE for every language. It doesn't hurt to add one sentence explaining that. If I hadn't seen the comment above, I wouldn't be able to consider Lazarus in the future if I ever use Delphi again.
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.
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
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"
That's also "old style" Pascal, and still supported by Free Pascal (even though the compiler gives you a warning for doing it!).
Isn't it basically equivalent to an anonymous tuple which is automatically deconstructed on assignment?