4 ms·
I've not used Lazarus or Delphi, so I can't really compare properly. Perhaps I'm missing something. But: > if anyone knows of any similar environments (besides
by dkersten 9y ago
I've not used Lazarus or Delphi, so I can't really compare properly. Perhaps I'm missing something. But:
> if anyone knows of any similar environments (besides QtCreator, etc.)
Why "besides QtCreator, etc"? It sounds to me almost like "do you know any X besides all of the popular X". Is there any particular reason you discount QtCreator? Does it not work for your purposes? Or is it just a case of you already know about it and want to hear about more obscure tools?
> It's somewhat amusing to realize that in 2017 this is pretty much the easiest way to do a desktop app
I've found Qt with QtCreator to be an incredibly productive way to develop desktop applications. Both old-school QWidgets-based Qt with QtDesigner (the RAD portion of QtCreator for pre-QtQuick) and QtQuick/QML with and without its RAD interface.
> I wish we had RAD environments like this for more languages (Racket, Python, etc. - even JS).
I've used the Python version of Qt with QWidgets in the past and it was a pretty nice workflow. I've never done it personally, but I know of people who use Python + QtQuick/QML and seem pretty happy with it. There's also various "app builder" tools for JS, but I don't know how good they are.
- chx 9y agoThere is https://blind.guru/qta11y.html https://blind.guru/qta11y.html as a problem with QT, I think it made to HN like three days ago.
- dkersten 9y agoWhether or not that is a negative point for Qt depends on your perspective. I mean, Qt never claimed to have JAWS support and the guy is free to submit a patch. Its unfortunate, for sure, that Qt doesn't support popular accessibility tools, but that's hardly a problem unique to Qt or open source tools. This "If you want to support users with disabilities, you probably should not rely on hippie coders right now" is unfortunately true for most open source tools, but also for many commercial offerings. Does Lazarus/Delphi fare better with accessibility and JAWS support specifically? Also from your link: "For now, you will need to write a native UI for every platform you want to support." -- is the Lazarus/Delphi story any better in this respect? The discussion you mentioned is here, btw, and it seems to have mixed views: https://news.ycombinator.com/item?id=14946358 https://news.ycombinator.com/item?id=14946358
- badsectoracula 9y ago> Does Lazarus/Delphi fare better with accessibility and JAWS support specifically? For this particular issue, yes, because Lazarus uses Win32 for Windows applications. For Linux it uses GTK2 (can also use Qt instead) which AFAIK has good accessibility support. For Mac OS X it uses Carbon (there is a Cocoa backend but it is still in prealpha) so... it depends on how accessible Carbon apps are i suppose. I don't think there is any special support for accessibility however, it is all about what the underlying widgets provide out of the box.
- jcelerier 9y agoApparently GTK2 doesn't fare better with JAWS: https://stackoverflow.com/a/4136662/1495627 https://stackoverflow.com/a/4136662/1495627
- badsectoracula 9y agoThat isn't relevant to Lazarus though since - from what i can tell from its site - JAWS is a Windows-only program and Lazarus uses the native Win32 controls under Windows. So it should work fine.
- MageSlayer 9y agoAs a Delphi/FPC/Lazarus veteran (10+ years), comparing one of the quickest compilers with Qt/Boost C++ development cycle looks like a joke. Much faster edit-compile cycle which scales without issues up 1e6+ LOC (yes, modules/incremental compilation done right right from the start)
- milcron 9y agoThe Python bindings to Qt don't require compilation. QML is an interpreted gui declaration, and Qt Quick allows programming behavior in Javascript.
- MageSlayer 9y agoYou are not comparing apples to apples. Try finding any native code static typing compiler with RAD on board featuring quick compilation within 2x C++ resulting binary speed.
- dkersten 9y agoNot apples to apples, but its a pretty good tradeoff for C++ IMO: you get super high turnaround times because the bulk of the UI tweaking cycle is in QML or the RAD tools and you only need slow-compiling-C++ where native performance is required. For me, while I like fast compile times as much as the next person, its not a deal breaker -- the workflow/environment and library features are. Ie can they easily deliver the required value to my customers. QML gives me a good middle ground between productivity & quick turnaround time, native integration and native performance. If you're unwilling to make that tradeoff, well... then you're limiting yourself to the tools that don't make that tradeoff (which may be perfectly fine, of course).
- bigtunacan 9y agoIt's not a good trade off for the end user. As it's not native you end up with a much slower running application with more memory overhead and bloat. Lazarus is compiled to small native applications that are easily installable for the user, fast, with both small memory and disk space usage. I say this next piece as both a developer and an end user; developers of desktop applications are getting out of hand with how they treat these things. We are now to the point where a large segment of the developer population has so little regard for the end user that they believe bloatware Electron solutions are a good choice for "native" text based chat application.
- pjmlp 9y agoBecause QtCreator isn't up to the job compared even with Delphi 1 for Windows 3.x, but sadly the younger generations never got to use it professionally. Delphi and Visual Basic, were like the Smalltalk/Lisp Machine (I am exaggerating a bit) of the RAD programming generation. Try to create a database frontend or image manipulation program in QtCreator just with the GUI designer.
- dkersten 9y agoThe UI part of a database frontend is trivial and the code is very minimal in Qt (but there still code involved, for sure). An image manipulation program, what does Delphi provide out of the box for this? I would assume that if you have anything non-trivial, you'd have some custom code to write? I mean, they can hardly have built-in components for every possible use case so I don't have to write any code. What am I missing here?
- pjmlp 9y ago> I mean, they can hardly have built-in components for every possible use case so I don't have to write any code. What am I missing here? The eco-system of companies selling components for every possible use case. Most VB/Delphi shops would get early licenses from such companies. DevExpress is a surviving company from those days. https://www.devexpress.com/Products/VCL/ https://www.devexpress.com/Products/VCL/ (over 210 controls) So you had a huge toolbox full with components for the majority of enterprise most common use cases. As far as I am aware, there aren't any company selling components for Qt.
- dkersten 9y agoThere are, but they're few and far between and certainly not as diverse as what you've described.
- badsectoracula 9y ago> Why "besides QtCreator, etc"? It sounds to me almost like "do you know any X besides all of the popular X". Is there any particular reason you discount QtCreator? I know Lazarus (almost) inside out and i've tried several times to use QtCreator, mainly because C++ would allow me to reuse some of my C code. However i could never get used to how QtCreator expects from me to do more stuff, how unweildy the laying out widgets is (this is natural since Qt's layout management was made expecting programmers to do layouts via code but compared to Lazarus' alignment and anchor based layouts they feel like taking a step back - although the same can be told with Lazarus' layout if you try to do it via code) and other not necessarily big issues but still annoying enough for me to always drop it.
- dkersten 9y agoHave you tried QtQuick/QML? It sounds like its anchor/grid/constraints-based layouts work very similarly to Lazarus.
- vertex-four 9y agoQtQuick, on the other hand, uses non-native widgets - the whole thing is rendered as an OpenGL scene.
- dkersten 9y agoTrue. Some people may find that as a deal-breaker. Personally, with the age of web-UI's (that look very different from each other and certainly don't look like the native widgets), I don't see QtQuick's native-styled-but-non-native widgets a problem (and the OpenGL-based system has proven to be really great for performant animation). But I can see that if you require platform-native widgets, QtQuick is probably not an option. I just think that most people don't need this ;-)
- vertex-four 9y agoI'd argue that at this point, if you're building a desktop application, one of your goals is probably going to be the use of native widgets, which could be for e.g. accessibility concerns. Else you might as well build a web application.
- rcarmo 9y agoI want more tools. Qt is popular and I've tried it before, but it keeps cropping up as "the new RAD" in these discussions and I was (unsuccessfully) trying to steer the discussion away from it.
- lyrachord 9y agoX rough, python no not-bad native widgets, Qt not well designed(@see blog don't use Qt, G)
- dkersten 9y agoYou're saying that Qt is not well designed because it's accessibility support does not include certain apis needed for the JAWS screen reader? That's a very narrow definition of "not well designed". I personally find Qt 5+ with QtQuick (not the older QWidgets) very well designed and I've looked into a large number of GUI frameworks over the years in a variety of languages.