Live data from Hacker News

Lazarus 2.0 RC3 – Delphi-compatible cross-platform IDE

forum.lazarus-ide.org

81–90 of 129 posts

Re: Lazarus 2.0 RC3 – Delphi-compatible cross-platform IDE

#82
post #4
post #2

Wikipedia provided this simple description, which would be nice to see on the RC post (but perhaps they assumed the only folks interested in an RC post would be folks familiar with the tool already): Lazarus is a free cross-platform visual integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal compiler.

I miss WYSIWYG IDE's like Delphi, VB-classic, and Lazarus. Dealing with HTML "autoflow" and Bootstrap is a royal pain. You sketch a draft GUI that seems a good fit for the application and users, and then realize you have to jump through hoops backward on a unicycle while chewing gum blindfolded to get it right on web browsers. Jetsons WYSIWYG technology yanked from my happy fingers by an LSD "standard". (I'm assuming…

Indeed. GUIs should be laid out visually, by hand. Because that's not tedious, and everybody has a display with the exact same size, resolution, and aspect ratio, right?

...Right?

Re: Lazarus 2.0 RC3 – Delphi-compatible cross-platform IDE

#83
post #79

Earlier quoted context omitted.

Indeed, Object Pascal in Delphi 6 had blazing fast compilation (for various reasons not least it's unit system), like click and it runs a half second later on a 250,000 line codebase.

A tradition all the way back to its MS-DOS early life. Turbo Pascal 5.5 had an advertised compilation speed of 34 000 lines/minute, on 1989's hardware. http://edn.embarcadero.com/article/20803 So something like PC 386 running MS-DOS 4.x, real mode with 640KB, eventually 1MB, if making use of highmem. So excuse me for not being that amazed with Go's compilation speed achievements. :)

What's the reference speed for golang or generally a quick compiler on contemporary hardware? My own experimental non-optimizing compiler compiles >1M lines per second, and it's not even optimized or multithreaded. Currently quite happy about that :-)

Re: Lazarus 2.0 RC3 – Delphi-compatible cross-platform IDE

#84
post #57

Earlier quoted context omitted.

From the early days I thought it was a mistake for Java and .NET not to follow on what was common back then, and offer AOT compilation out of the box. Java AOT solutions were all commercial (gcj doesn't really count) and .NET had NGEN, but it was only meant for fast startups. .NET was specially disappointing in this regard, given that it had quite some influences from Delphi. We had to wait around 20 years for AOT to…

Indeed, Object Pascal in Delphi 6 had blazing fast compilation (for various reasons not least it's unit system), like click and it runs a half second later on a 250,000 line codebase.

The original Turbo/Borland Pascal compiler was a single-pass compiler written in assembly. Not sure if they ever rewrote it in a high-level language. The small, simple grammar helped, as did the unit system. With Delphi, linking became the most expensive stage of compilation.

Part of being single-pass was it hardly did any optimizations, and of course declaration order was completely rigid. Back in the 1990s there were competing commercial compilers like Stony Brook Pascal that did optimization, and at the time there were optimizers that you could run on the .exe files, but for the most part people stuck to Borland's tools.

I spend a good part of the 90s writing fast 2D and 3D graphics stuff, including a commercial game, and performance was never an issue, especially as Object Pascal supported embedding assembly blocks seamlessly into your code.

Re: Lazarus 2.0 RC3 – Delphi-compatible cross-platform IDE

#85
post #24

Earlier quoted context omitted.

Re: I think that UI toolkit should use native widgets and near zero cost FFI. If the target audience is cross-platform, that's hard to pull off. Each OS's native GUI engine is too different. Emulating a common target behavior is usually better (until a good general GUI standard comes along). Maybe your particular need is not cross-platform, but Lazarus's goal is.

FWIW LCL (Lazarus' framework) emulates the Windows behavior (there are even some reimplementations of Windows functions in non-Windows platforms to assist with that) since the API "descends" from Delphi's VCL which is Windows-only (and IMO it makes perfect sense that if you need to emulate some OS's behavior to focus on the most popular one). The end result is obviously that under Windows things work great, under X11…

Does it emulate Windows behavior, or does it simply wrap it? My understanding is that LCL wraps Win32 API directly on Windows, same as VCL did.

Re: Lazarus 2.0 RC3 – Delphi-compatible cross-platform IDE

#86
Something I always wondered about - what's the current state of affairs wrt Gtk and Qt support? Both are available (different versions, even!), but which one is preferred, so to speak?

I've noticed that e.g. Debian installs the Gtk version of Lazarus by default, if you use the virtual package. But it's not clear whether this is a conscious choice, or it just dates back to when they only had Gtk.

Re: Lazarus 2.0 RC3 – Delphi-compatible cross-platform IDE

#87

Earlier quoted context omitted.

Indeed, Object Pascal in Delphi 6 had blazing fast compilation (for various reasons not least it's unit system), like click and it runs a half second later on a 250,000 line codebase.

The original Turbo/Borland Pascal compiler was a single-pass compiler written in assembly. Not sure if they ever rewrote it in a high-level language. The small, simple grammar helped, as did the unit system. With Delphi, linking became the most expensive stage of compilation. Part of being single-pass was it hardly did any optimizations, and of course declaration order was completely rigid. Back in the 1990s there we…

If I am not mistaken, later versions of Delphi removed the restrictions on declaration order.

I am with you on performance for graphics stuff, hence why I never bought into stuff like disabling bounds checking on the whole application is a must for performance.

Re: Lazarus 2.0 RC3 – Delphi-compatible cross-platform IDE

#88
post #87

Earlier quoted context omitted.

The original Turbo/Borland Pascal compiler was a single-pass compiler written in assembly. Not sure if they ever rewrote it in a high-level language. The small, simple grammar helped, as did the unit system. With Delphi, linking became the most expensive stage of compilation. Part of being single-pass was it hardly did any optimizations, and of course declaration order was completely rigid. Back in the 1990s there we…

If I am not mistaken, later versions of Delphi removed the restrictions on declaration order. I am with you on performance for graphics stuff, hence why I never bought into stuff like disabling bounds checking on the whole application is a must for performance.

I stopped using Delphi after version 4, but I was curious, so I did some googling. Looks to me like forward declarations were still needed in Delphi 2010, at least for class declarations: https://stackoverflow.com/questions/2137030/cant-get-a-forwa....

Borland's Pascal compilers did have a way to disable bounds checking locally, with a special compiler directive comment: {$R-}. It took effect from where you used it, so you could do:

  {$R-}
  for i := 1 to 10 do
    writeln(myArray[i]);
  end;
  {$R+}

Re: Lazarus 2.0 RC3 – Delphi-compatible cross-platform IDE

#89
post #67

Earlier quoted context omitted.

It is viable just fine as it is, i'm not sure what you have in mind. In any case C++ support for Lazarus is almost impossible due to the work needed and the projects that will need to cooperate - i go into details here: https://news.ycombinator.com/item?id=15893362

I meant, unless you have some very specific reasons, Pascal is not the first language to pick for a new project nowadays.

I think most people, certainly me, who would be looking for a Pascal compiler are trying to avoid C++ like the plague.

It’s funny when you read about languages like Rust and Go basically trying to undo decades of C-induced damage, reinventing (albeit also exceeding) thangs that Pascal/Modula/Eiffel already had.

Re: Lazarus 2.0 RC3 – Delphi-compatible cross-platform IDE

#90
post #71

Has anyone used a recent Lazarus version to create apps that can connect easily to an HTTP API? Some months ago I had a need to create a "quick and dirty" API utility for internal use and I remembered about Lazarus. However I couldn't find an HTTP client component that I could use. I just wanted to do the equivalent of a curl GET/POST call. I'm not sure if maybe I'm not familiar enough with the wiki structure so I mi…

I created a small app to read the Epicor ERP api from freepascal. Fast and simple. Did it as much to refresh my pascal knowledge as to show others that it should not be ignored as a language. As a language is very rich and more cross platform than most others. Lazarus is a cinch to create a GUI that you can then cross compile for other platforms.
Post reply on HN