Recent

Author Topic: QT vs Lazarus  (Read 8817 times)

axisdj

  • Jr. Member
  • **
  • Posts: 64
QT vs Lazarus
« on: October 17, 2019, 03:57:35 pm »
Hello Group,

Has anyone here evaluated QT Creator compared to Lazarus, is their a clear advantage either way?


Thanks

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11382
  • FPC developer.
Re: QT vs Lazarus
« Reply #1 on: October 17, 2019, 04:04:44 pm »
Yes. QT Creator sucks at Pascal ?

Seriously, most important for me is that Lazarus generates native Win32/64 apps without dependencies. IOW it doesn't tie your app (or most of your app, in more advanced scenarios) to one widget set.

mercurhyo

  • Full Member
  • ***
  • Posts: 242
Re: QT vs Lazarus
« Reply #2 on: October 17, 2019, 04:48:27 pm »
Qt needs external libraries on each platform you can consider these packs of libs as a virtual machines, like java does, and Qt is for C, C++ amateurs

Lazarus compiles NATIVELY to platforms' using their own widgetsets, DO NOT NEED external libraries, and is 150% pure PASCAL programming stuffs.

SO, its better to catch some nice ideas from Qt and transpose them to Laz!!!
like this one
https://forum.lazarus.freepascal.org/index.php/topic,47105.0.html
DEO MERCHVRIO - Linux, Win10pro - Ryzen9XT 24threads + Geforce Rtx 3080SUPRIM
god of financial gain, commerce, eloquence (and thus poetry), messages, communication (including divination), travelers, boundaries, luck, trickery and thieves; he also serves as the guide of souls to the underworld

Thaddy

  • Hero Member
  • *****
  • Posts: 14197
  • Probably until I exterminate Putin.
Re: QT vs Lazarus
« Reply #3 on: October 17, 2019, 06:05:53 pm »
If you would use the Qt widgetset with Lazarus then there is no real difference in external dependencies.
What is different is that Lazarus is a real two way tool, even with Qt so you have a direct correspondence between design and code.
Specialize a type, not a var.

mercurhyo

  • Full Member
  • ***
  • Posts: 242
Re: QT vs Lazarus
« Reply #4 on: October 17, 2019, 06:30:01 pm »
there is a difference LOL

Lazarus program >> OS Widgetset

Qt program >> Qt Widgetset (libs as virtual machine) >> OS Widgetset

where '>>' means 'rely on'

so on slow machines or when timing is important, forget Qt
DEO MERCHVRIO - Linux, Win10pro - Ryzen9XT 24threads + Geforce Rtx 3080SUPRIM
god of financial gain, commerce, eloquence (and thus poetry), messages, communication (including divination), travelers, boundaries, luck, trickery and thieves; he also serves as the guide of souls to the underworld

del

  • Sr. Member
  • ****
  • Posts: 258
Re: QT vs Lazarus
« Reply #5 on: October 18, 2019, 01:32:58 am »
The Python people like QT - it makes them feel like they're playing with the big kids. QT is head and shoulders above MFC. There's some weirdness that goes on which forces you to use qmake instead of cmake (which somehow gets all fouled up).

But the weirdest thing about QT (IMHO) is that if you want to load an image and display it on a panel, you have to stuff the image into a "label" on the panel. I switched to wxWidgets for hobby work, and at the office it's VS / MFC. I like Lazarus a lot better than QT. It just seems to have a lot more beef. And the Pascal that you have to learn? It will do you some good.  :D
« Last Edit: October 18, 2019, 01:35:56 am by del »

axisdj

  • Jr. Member
  • **
  • Posts: 64
Re: QT vs Lazarus
« Reply #6 on: October 18, 2019, 04:12:13 am »
Thanks everyone,

all points taken, you have brought up a very good point I did not think of, the whole QT-dll dependency thing

On with Lazarus it is.

Thanks!

PascalDragon

  • Hero Member
  • *****
  • Posts: 5446
  • Compiler Developer
Re: QT vs Lazarus
« Reply #7 on: October 18, 2019, 09:24:55 am »
there is a difference LOL

Lazarus program >> OS Widgetset

Qt program >> Qt Widgetset (libs as virtual machine) >> OS Widgetset

where '>>' means 'rely on'

so on slow machines or when timing is important, forget Qt
Qt is not a virtual machine. It's just a widget set library like the LCL itself is with abstractions for the underlying operating system UI.
Also the LCL can use Qt as backend without problems (mainly used on Linux as an alternative to GTK, but it can be used on Windows and macOS as well).

mercurhyo

  • Full Member
  • ***
  • Posts: 242
Re: QT vs Lazarus
« Reply #8 on: October 18, 2019, 12:00:40 pm »
there is a difference LOL

Lazarus program >> OS Widgetset

Qt program >> Qt Widgetset (libs as virtual machine) >> OS Widgetset

where '>>' means 'rely on'

so on slow machines or when timing is important, forget Qt
Qt is not a virtual machine. It's just a widget set library like the LCL itself is with abstractions for the underlying operating system UI.
Also the LCL can use Qt as backend without problems (mainly used on Linux as an alternative to GTK, but it can be used on Windows and macOS as well).

unfortunatelly I had to work with Qt while I wasn't retired, SO I KNOW exactly what I am talking about  :P when I say "CONSIDER" Qt NEEEEEEDED libs as a virtual machine alike Crap eating resources, consuming machines' time

Okay, if you want a nice look and impress your users, AND you do not care resources nor time consuming, use Qt widgets. In other cases, DO NOT
« Last Edit: October 18, 2019, 12:07:04 pm by mercurhyo »
DEO MERCHVRIO - Linux, Win10pro - Ryzen9XT 24threads + Geforce Rtx 3080SUPRIM
god of financial gain, commerce, eloquence (and thus poetry), messages, communication (including divination), travelers, boundaries, luck, trickery and thieves; he also serves as the guide of souls to the underworld

PascalDragon

  • Hero Member
  • *****
  • Posts: 5446
  • Compiler Developer
Re: QT vs Lazarus
« Reply #9 on: October 19, 2019, 01:27:48 pm »
there is a difference LOL

Lazarus program >> OS Widgetset

Qt program >> Qt Widgetset (libs as virtual machine) >> OS Widgetset

where '>>' means 'rely on'

so on slow machines or when timing is important, forget Qt
Qt is not a virtual machine. It's just a widget set library like the LCL itself is with abstractions for the underlying operating system UI.
Also the LCL can use Qt as backend without problems (mainly used on Linux as an alternative to GTK, but it can be used on Windows and macOS as well).

unfortunatelly I had to work with Qt while I wasn't retired, SO I KNOW exactly what I am talking about  :P when I say "CONSIDER" Qt NEEEEEEDED libs as a virtual machine alike Crap eating resources, consuming machines' time

Okay, if you want a nice look and impress your users, AND you do not care resources nor time consuming, use Qt widgets. In other cases, DO NOT
I don't agree with you. I have worked with Qt as well. In fact I ported it to my company's operating system, so I know how Qt works internally. As my company's OS also has a user mode virtual machine for Windows and Linux I can definitely tell the difference between a virtual machine and a library abstraction that Qt (and the LCL) is.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11382
  • FPC developer.
Re: QT vs Lazarus
« Reply #10 on: October 19, 2019, 01:36:28 pm »
Maybe he means QTquick or what it is called nowadays. That had a js engine somewhere iirc.

lucamar

  • Hero Member
  • *****
  • Posts: 4219
Re: QT vs Lazarus
« Reply #11 on: October 19, 2019, 02:24:32 pm »
What one has to realize is that *all* the "standard" widgetsets depend on external libraries: GTK, Qt, Windows, Mac, ... and they are all rather "heavy"; it can't be otherwise since they have to be generic enough to catter to all kind of applications.

The perceived "heaviness" of, say, Qt or GTK arises only if you need or want to install/use them in environments in which they are not the "native GUI". In those cases they have to include lots of functionality which in their native Unix are implemented in the OS or the low-level graphic layers. Hence a GTK or Qt application will always appear slower and will display more "quirks" in, say, Windows than a "native" application.

Whether that matters or not is a question best left to the planning stage of each project and depends on lots of considerations: portability, responsiviness needed, etc. There's no one-size that fits all.
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus/FPC 2.0.8/3.0.4 & 2.0.12/3.2.0 - 32/64 bits on:
(K|L|X)Ubuntu 12..18, Windows XP, 7, 10 and various DOSes.

mercurhyo

  • Full Member
  • ***
  • Posts: 242
Re: QT vs Lazarus
« Reply #12 on: October 20, 2019, 09:01:32 pm »
lets clarify. my definition of what is 'virtual machine' to me

a virtual machine is an executable, a library, or a set of libraries NEEDED to emulate when not available, functions, api, look and feel, over underlaying OSes ones. In other terms, a precompiled "interface' between interfaces of your program and the NATIVE OS

so, Lazarus in not a Vmachine at all, while java is one of the majors, and Qt is an hybrid alike if you want, but is one  :P
DEO MERCHVRIO - Linux, Win10pro - Ryzen9XT 24threads + Geforce Rtx 3080SUPRIM
god of financial gain, commerce, eloquence (and thus poetry), messages, communication (including divination), travelers, boundaries, luck, trickery and thieves; he also serves as the guide of souls to the underworld

MarkMLl

  • Hero Member
  • *****
  • Posts: 6676
Re: QT vs Lazarus
« Reply #13 on: October 20, 2019, 09:20:19 pm »
lets clarify. my definition of what is 'virtual machine' to me

a virtual machine is an executable, a library, or a set of libraries NEEDED to emulate when not available, functions, api, look and feel, over underlaying OSes ones. In other terms, a precompiled "interface' between interfaces of your program and the NATIVE OS

Don't define it like that, it will confuse people even more clue^H^H^H^H^H.

VMs are confusing enough as it is, with full-system virtualisation (VM/370, Qemu) which sometimes has hardware assistance (SIE on mainframes, KVM on Linux), interpretive virtualisation (B1700, UCSD p-code, Smalltalk), virtualisation with just-in-time compilation (Java etc.) and these days containerisation using Docker etc.

The term you're looking for is /prerequisites/, i.e. the libraries etc. that together implement a particular widget set, the underlying X11 server (or equivalent), the required kernel support and so on. Now I certainly concede that those things can be bundled into something like a Docker image and that sometimes there are good reasons to do so, but there are also good technical reasons why people refer to those as containers rather than VMs and trying to promote your own personal terminology is not going to make life easier for those of us who spend a substantial amount of our lives acting as a guide for the perpelexed.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

mercurhyo

  • Full Member
  • ***
  • Posts: 242
Re: QT vs Lazarus
« Reply #14 on: October 20, 2019, 11:21:22 pm »
trying to promote your own personal terminology is not going to make life easier

my definition is SIMPLE, as general as possible just like Pascal was designed to be SIMPLE, people unable to keep it SIMPLE are the ones spreading confusions in many ways, not me. I mean, NEVER count on me to build an alembic with a bucket! or explain a bucket with an alembic thx

now If you think programming with any language needs 2 layers (VMs  :P ?! ) of frameworks and 29 libraries to act more nice with the underlaying OS, pardon me, you'll never see me use that optimal (LoL) way. I can't wait year 2030 were a "hello world" is going to trap 2GB ram on a 8core 12Ghz CPU but no confusion :D :D :D :D :D :D :D
« Last Edit: October 20, 2019, 11:33:34 pm by mercurhyo »
DEO MERCHVRIO - Linux, Win10pro - Ryzen9XT 24threads + Geforce Rtx 3080SUPRIM
god of financial gain, commerce, eloquence (and thus poetry), messages, communication (including divination), travelers, boundaries, luck, trickery and thieves; he also serves as the guide of souls to the underworld

 

TinyPortal © 2005-2018