Programming with Lazarus, a Brief Introduction
getlazarus.org
getlazarus.org
I've also discovered that I'm not really a fan of Free Pascal as a language. Particularly maddening is not being able to assign an intermediate value to a variable in order to make code more clear without first declaring it at the top of the procedure.
Overall though, I really like it.
https://www.getlazarus.org/setup/?download
That is the purpose of the get lazarus website, to make installing and customization easier.
Regarding variable declaration, part of the Free Pascal design is that you must declare things first before you can use them. Declaration must be separated from implementation code. This means you must all declare variables, with their types, before you use them in a statement.
var
S: string;
begin
WriteLn('Please enter you name:');
S := ReadLn();
WriteLn('Hello ' + S);
end;Ugh. So my choices are: use the installer, or build from source. How Linux of them.
You apparently don't get this, but I don't actually want an installer to make it "easy". I'd rather it be simple. Give me a damned zip file containing the program and its dependencies, and make the tools support relative paths (or environment variables). Is that too much to ask? Yes, apparently.
> Regarding variable declaration, part of the Free Pascal design is that you must declare things first before you can use them. Declaration must be separated from implementation code.
Yes, I know. That's precisely what I don't like about it. It disincentivizes using variables to hold intermediate values for clarity purposes.
Do you find that a lot of software on Windows conforms with the way you think software installation should work?
I see "portable" versions of software in zip files sometimes, but always pretty small apps. This kind of packaging probably peaked in popularity prior to the introduction of Windows Vista. In the UWP era things are only more likely to trend away from this.
And popular does not mean good. In fact, it is often the opposite.
I don't believe I've ever used a Microsoft product that offered installation via zip files in addition to installer. What are some examples?
I doubt if that attitude earns you a lot of help and respect.
If you have enough units that are all related and you want to separate the code even further, put them into their own packages and import them into other projects.
You can be disorganized in any programming environment. It's your job as the programmer to name things correctly and break apart common code or task into their own reusable compartments.
When Hejlsberg was hired away from Borland to work at Microsoft his first placement was to work on Visual J++. Microsoft was sued and lost because they were incompatible extensions to Java. These extensions were designed in part to support their own VCL like framework for Java, and resulted in a fragmentation the Java community, or so the Java suit claimed.
After the Visual J++ debacle, Microsoft decided to create their own Java like ecosystem, which is what .net was or is. The first few iterations were made quickly and featured Winforms as you mentioned. Winforms was very much influenced or based on the design of the VCL, with the help of Hejlsberg.
The Lazarus library (LCL) has the mostly the same class structure and same class methods as the VCL. So in summation, Winforms was inspired largely by the VCL, and the LCL is a close copy of the VCL.