5 ms·
If the widgets had to be reimplemented, they are not native by definition.
by imaginenore 11y ago
If the widgets had to be reimplemented, they are not native by definition.
- laumars 11y agoThe widgets are running natively on the client. There's no interpretation / JIT layer between the two like with a web stack. All you're doing with OpenGL rather than Win32 is drawing your widgets to the graphics buffer directly rather than using Win32 libraries to draw the widgets. So, to go back to the original comment, it is a "native GUI" it's just not calling Microsoft or Apple's toolkit libraries. This might sound like nitpicking, but you also have to bare in mind that it's not always as simple as saying "You want to write a native app, use Win32 or Cocoa". Half the time developers are running wrappers around the toolkits such MVC, .NET and wrappers to allow non-C et al languages to call C libraries. And even if you do want to directly call the "native" OS libraries, often there's more than one to choose from, eg on Linux things gets pretty complicated as there's several toolkits available (GTK, Qt, Motif, etc) and then a multitude of version of many of those libraries. Granted this doesn't solve the "many standards" problem, but at least it's a single dependency that runs natively on the client and draws directly to the graphics buffer - which has got to be better than the plethora of other cross platform implementations out there.
- jfb 11y agoI'm sorry, but that reading is in clear contravention of the well understood meaning of "native" in the context of a UI.
- deleted 11y ago[deleted]
- Glide 11y agoOne can easily extend that logic by saying something that is running Cordova is giving a native GUI to a iOS or android application, because all of it is natively rendering on the device. Usually it means people are running the widgets that are coming from the vendor's toolkits. Windows: Win32/WPF, OS X: Cocoa, iOS: CocoaTouch, Android: etc. and so on. That distinction is somewhat important because it also means the easiest way to get stuff like that running is typically with the language those libraries are written in: C++, Objective-C (or now Swift), Java, etc. It's like the holy grail of write once, run everywhere. Write it in one language and somehow have it run on the native (vendor) toolkit on every platform out there.
- laumars 11y agoI've not had any exposure to Cordova so I'm not going to comment on that specific comparison. But semantics aside, I do think all these arguments are very much against the spirit of this submission. And that's a large part of the reason I was defending their usage of "native" and "GUI". I just didn't realise the can of worms I was opening...
- jfb 11y agoBut that's not the sense that "native GUI" has ever had. Widgets are only part of the picture, regardless -- a GUI is defined by the layout, behavior, interaction model, and widgets.
- deleted 11y ago[deleted]
- jfb 11y agoNo, nothing at all is native. That it's rendered in GL doesn't make it native. It uses a cross-platform events layer, which is by definition non-native.
- laumars 11y ago> cross-platform != native Best not tell that to the Qt devs ;) Anyway, this argument is ridiculous because all my point was, is that this project only means "native GUI" in the sense that it's a GUI that runs without an intermediate rendering engine (ie web browser). I was just trying to defend an interesting project against the hoards of negative semantic-Nazi's. I get rather sick of the poisonous attitude some have towards other peoples hard work so felt it was only fair to offer a counter argument defending it. But I did so forgetting just how vehemently opinionated many are and now really wish I hadn't bothered because this argument has spiralled well beyond the original point. Sure, in an ideal world this project would be using vendor APIs rather than OpenGL - but this does actually work and is pretty damn cool, even if it is a bit of hack. And if we're honest, isn't hacking meant to be the point of this forums? Or is this community now just a place for intelligent people to belittle other intelligent people? Honestly, sometimes I just sigh at the number of pot-shots people make on here and how it's now become the acceptable norm. I'm sure it wasn't like this when I first joined.
- jfb 11y agoI'm sorry you felt that the responses were hostile, that certainly wasn't my intent. Mood is awfully tough to get right on a bulletin board. Speaking only for myself, I feel that words are very powerful, and that it's important for us to be precise in usage. I certainly didn't mean to denigrate this project, or the talented folks behind it.
- imaginenore 11y agoYou still don't get it. Native widgets are not just a few state pictures that you draw. They have all kinds of behaviors that are tied to the OS settings.
- deleted 11y ago[deleted]
- imaginenore 11y agoWhat can be done and what's actually done are two very different things. Fully replicating something as simple as a button can be very hard. Its look depends on the OS, OS version, OS theme, OS scaling setting, OS font settings, the language (left-to-right, right-to-left). It has to support all kinds of OS accessibility hooks. It has to support all kinds of input devices. It has to follow the tab-focus rules. These are just the things I'm aware without looking them up, I'm sure there's a lot more.
- deleted 11y ago[deleted]
- laumars 11y agoWhich is exactly the point I made as well (several times in fact). So thank you for finally agreeing with me on something.