Live data from Hacker News

Lazarus 2.0 RC3 – Delphi-compatible cross-platform IDE

forum.lazarus-ide.org

41–50 of 129 posts

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

#41
post #27

Earlier quoted context omitted.

As I view the problem, what's lacking is a GUI markup standard roughly comparable to HTML. HTML browsers were not originally meant to build full-on GUI's in, but the industry has accepted the habit of forcing them to "do" GUI's using convoluted tricks and giant JavaScript libraries. By the way, the "GUI markup language" doesn't necessarily have to be XML-only. Maybe JSON or CSV versions can be defined also. However,…

So, instead of language bindings for the UI builder, you need an in-language implementation of or binding to a client for the GUI markup language output by the UI builder? While I like the idea of a generic UI markup languages, it sounds like you've replaced the problem you want to avoid with a bigger one.

Generic GUI API's that fit a wide variety of application programming languages has proven a very tricky task. I know of none that do it close to right.

Data structures and object models vary too much between languages. If you "solve" this by extracting out anything potentially programming-language-specific (such as variable types and data structure "types"), you end up with something that looks like a markup language anyhow (or at least a declarative data/attribute language).

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

#42
post #29
post #11

Free Pascal has come a long way. When I first messed with it, it lacked generics even though Delphi supported them. Nowadays I can compile Delphi code with generics just fine. I don't think I personally would want to use Delphi in this day and age, but there's still a lot of useful Delphi/Pascal code out there and it's great to be able to use it on Linux.

>I don't think I personally would want to use Delphi in this day and age I totally understand where you are coming from, however I must say having everything compiled into a static-binary is a powerful thing that we often overlook today. Case-in-point: Around 2007 I was consulting for a manufacturing facility, basically doing accounting system programming. Their warehouse department needed a small app that basic did…

There are lots of similar apps in use in industry and they can be the final step to improve a workflow. There would be more if we could get a Lazurus-in-Python with a build to static binary system.

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

#43
post #29
post #11

Free Pascal has come a long way. When I first messed with it, it lacked generics even though Delphi supported them. Nowadays I can compile Delphi code with generics just fine. I don't think I personally would want to use Delphi in this day and age, but there's still a lot of useful Delphi/Pascal code out there and it's great to be able to use it on Linux.

>I don't think I personally would want to use Delphi in this day and age I totally understand where you are coming from, however I must say having everything compiled into a static-binary is a powerful thing that we often overlook today. Case-in-point: Around 2007 I was consulting for a manufacturing facility, basically doing accounting system programming. Their warehouse department needed a small app that basic did…

Similar case here where I work. There's a Delphi 3 application with an access database that has been in use for an unknown number of years. Last update to it was in 2002 or 2003 and it's been in read-only mode since 2005.

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

#44
post #31
post #7

Earlier quoted context omitted.

We just need a Lazarus target for webassembly and we'll be good.

Hmmm, can Lazarus be used to build a "GUI browser"? For example, can one send a "create button" command or tag to it and have it draw one dynamically? What about new panels and forms? How "meta" can its GUI engine be at run-time.

Yes it can do that. That's how the IDE works and displays the GUI designer.

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

#45
post #9
post #4

Earlier quoted context omitted.

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…

Can I interest you in a very Delphi-like IDE for building web apps with nothing but Python? https://anvil.works has a WYSIWYG visual designer, with Python for in-browser code as well as server-side. (We compile it to JS.) It's even got a built-in DB if you want it (Postgres-backed). Everything in one language, full front-to-back autocompletion...all the things we missed about Delphi!

> all the things we missed about Delphi!

Except the insanely fast compile times, native WYSIWYG editor, etc, etc.

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

#46
post #27

Earlier quoted context omitted.

> There really isn't a reason I can think of that I shouldn't be able to throw together a GUI in a WYSIWYG editor and maybe define some basic behavior, then give it one or more programs it should run in the background and pass messages back and forth. Or even let me just tie events to a command pipeline and dump the result into another widget, basically just letting a GUI be part of the composable toolset following t…

As I view the problem, what's lacking is a GUI markup standard roughly comparable to HTML. HTML browsers were not originally meant to build full-on GUI's in, but the industry has accepted the habit of forcing them to "do" GUI's using convoluted tricks and giant JavaScript libraries. By the way, the "GUI markup language" doesn't necessarily have to be XML-only. Maybe JSON or CSV versions can be defined also. However,…

Weren't XAML and XUL supposed to be user interface markup languages ? Wikipedia thinks so:

https://en.wikipedia.org/wiki/XUL

https://en.wikipedia.org/wiki/Extensible_Application_Markup_...

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

#47
post #41

Earlier quoted context omitted.

So, instead of language bindings for the UI builder, you need an in-language implementation of or binding to a client for the GUI markup language output by the UI builder? While I like the idea of a generic UI markup languages, it sounds like you've replaced the problem you want to avoid with a bigger one.

Generic GUI API's that fit a wide variety of application programming languages has proven a very tricky task. I know of none that do it close to right. Data structures and object models vary too much between languages. If you "solve" this by extracting out anything potentially programming-language-specific (such as variable types and data structure "types"), you end up with something that looks like a markup language…

Eclipse is a generic IDE for multiple programming languages. And so is IntelliJ IDEA...

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

#48
post #9

Earlier quoted context omitted.

Can I interest you in a very Delphi-like IDE for building web apps with nothing but Python? https://anvil.works has a WYSIWYG visual designer, with Python for in-browser code as well as server-side. (We compile it to JS.) It's even got a built-in DB if you want it (Postgres-backed). Everything in one language, full front-to-back autocompletion...all the things we missed about Delphi!

Nice product but it may have been better to release this as a opensource product because there will always be a fear that if your company goes bottoms-up, those companies who used your platform will be left high and dry.

The thing is, making Anvil open source now would virtually guarantee that outcome.

The market has spent the last few years demonstrating that the sustainable number of large companies whose main product is open source is...One. (Red Hat, if you were wondering.) Even trying to become that kind of company requires a highly speculative VC-fuelled trajectory, which is famous for turning sustainable 100m-scale companies into 1% unicorns and 99% rubble.

Even Docker, which utterly transformed its target market, is barely making any revenue ($25m/year on a $1.3bn valuation). All its value is busily being subsumed into Kubernetes, itself a loss-leader from a company (Google) that makes all its money from something else.

Anvil-the-company is sustainable, profitable, and growing, and Anvil-the-product is getting better all the time, because we charge for what we produce. We would love to be able to give it away and keep doing that - but basically, we can't.

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

#49
post #40
post #29

Earlier quoted context omitted.

>I don't think I personally would want to use Delphi in this day and age I totally understand where you are coming from, however I must say having everything compiled into a static-binary is a powerful thing that we often overlook today. Case-in-point: Around 2007 I was consulting for a manufacturing facility, basically doing accounting system programming. Their warehouse department needed a small app that basic did…

Oh yeah, single static binaries are awesome. I think it's one of those things that helped make Go super successful as well. If Go had a RAD, well, it'd be very enticing to me. Sadly they have only touched on UI a little. If you want to write something with Win32 API it's not too hard and there's plenty of good libraries, but sadly there's no VCL equivalent. I'd like that. I guess in that sense Lazarus is still useful…

I feel like Go sits in a very similar space to FPC. Go has a bigger runtime but does a good job of polishing the overall language semantics to be GC-favorable without being GC-centric. FPC is more mature, though, when you consider the large number of Delphi libraries, generics support, etc. Both of them have a much less complex build story than a C++ project since they have actual module support.

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

#50
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…

Making it fit every OS well is indeed a tricky task. Perhaps the option of using native widgets can be given. Actually, ideally there'd be 3 choices for developers: 1) A default single uniform style for a given widget(s), 2) Emulation of OS-specific styles, 3) Native widgets. But providing all 3 without making a mess or bloatware is easier said than done.
Post reply on HN