Web Application VS Windows Application
-
@scottalanmiller said in Web Application VS Windows Application:
@guyinpv said in Web Application VS Windows Application:
Desktop apps crash, but rarely due to stupid UI, UX issues that would have only needed 10 minutes of real QA and testing to discover. Or more robust debugging and compile tools.
What do you feel that they mostly crash from?
That is far beyond my knowledge. I imagine the roots dig deeper into dependencies and OS drivers and so on.
A website-app-in-a-box, well it might crash because Javascript is insufficient as a desktop language and was overwhelmed in some way? I've seen UI elements disappear behind other elements of the boundary of the app's border. I've seen font issues, graphics rendering issues, issues of "flashing" elements and other refresh issues. I've seen the apps freeze up when working too fast and it can't keep up.
I don't tend to see UI issues in a solid desktop app. They are typically built on standard UI libraries from the OS, where all the rendering and sizing and refreshing are pretty locked in.
Again, I use plenty of both types of apps, but here in 2016, I still prefer native, what can I say?
-
@guyinpv said in Web Application VS Windows Application:
That is far beyond my knowledge. I imagine the roots dig deeper into dependencies and OS drivers and so on.
Native apps tend to be much more susceptible to those things. That's one of the specific advantages of more modern methodologies and the same as why virtualization makes for more stable environments.
-
@guyinpv said in Web Application VS Windows Application:
A website-app-in-a-box, well it might crash because Javascript is insufficient as a desktop language and was overwhelmed in some way?
But that's silly. A native app could do the same because C# wasn't up to the task. Both carry the risk, in neither is it serious.
-
@guyinpv said in Web Application VS Windows Application:
Again, I use plenty of both types of apps, but here in 2016, I still prefer native, what can I say?
How many people can even identify native anymore? MS Office has been web for two generations now.
-
@guyinpv said in Web Application VS Windows Application:
I don't tend to see UI issues in a solid desktop app. They are typically built on standard UI libraries from the OS, where all the rendering and sizing and refreshing are pretty locked in.
Canvas is to. If either has issues with that, it's not the language or approach that is the problem. That's an artifact of the developers not making something that looks good. That's a separate issue.
-
@scottalanmiller said in Web Application VS Windows Application:
@guyinpv said in Web Application VS Windows Application:
I don't tend to see UI issues in a solid desktop app. They are typically built on standard UI libraries from the OS, where all the rendering and sizing and refreshing are pretty locked in.
Canvas is to. If either has issues with that, it's not the language or approach that is the problem. That's an artifact of the developers not making something that looks good. That's a separate issue.
I think this conversation is beginning to turn in to "which programming language is better" at this point.
The "native vs. web" idea is lost. What does "web" even mean then? Almost all native apps are connected to the web too. So we're really talking about "web languages" rather than internet-enabled.That means we're talking about JS versus C#, Visual C++, VB etc. Or even further, JIT versus compiled. Or further, higher level versus lower level.
What difference does it make at this point? I appreciate that lower level "native" apps tend to be better tested, require fewer dependencies, are more stable and faster. I also appreciate web-language containerized quazi-desktop cross-compiled apps can be easier to design and distribute and work across platforms. It also offers traditional "web devs" a means to crossover into desktop development.
You said Office has been "web" for two generations. Not sure what you mean here. Yes they have "web versions" that can run in a browser, but they still have their C++ native Windows apps, or Objective C for Mac version. It ain't written in JS in a container!
I've used Word and Excel in the browser, as well as the desktop apps, and FAR prefer the desktop apps still. The web version has crashed on me more times in a year than my desktop Office has ever crashed in my lifetime.
Web is convenient and pretty dang cool, but still has its drawbacks. -
@guyinpv said in Web Application VS Windows Application:
That means we're talking about JS versus C#, Visual C++, VB etc. Or even further, JIT versus compiled. Or further, higher level versus lower level.
No, you are mixing the concept of how the app is delivered versus in what language it is written in. You can write web apps in C# primarily. It's NOT about the language, it's about the ideology and design.
-
@guyinpv said in Web Application VS Windows Application:
You said Office has been "web" for two generations. Not sure what you mean here.
I mean it is a web page. It's shown in a frameless browser. It's a web app like any other. LibreOffice offered this one generation ahead of MS Office, as well.
-
@guyinpv said in Web Application VS Windows Application:
...but they still have their C++ native Windows apps
Not for two generations they haven't. Last one was Office 2010.
-
@guyinpv said in Web Application VS Windows Application:
I think this conversation is beginning to turn in to "which programming language is better" at this point.
The "native vs. web" idea is lost. What does "web" even mean then? Almost all native apps are connected to the web too. So we're really talking about "web languages" rather than internet-enabled.Nope, we are (or at least I am) still very strictly talking about web apps versus native apps (those that call the Windows desktop API.) Web apps are delivered via the browser (whether you see the browser like MangoLassi or you don't see it like MS Office and LibreOffice.) Windows apps (native apps) are written to directly call the Windows API.
Web apps, naturally, are not tied to a platform and can be shared remotely as easily as locally because the infrastructure is always there. Much like how X has always been on UNIX making it so much more flexible than the Windows desktop for networking. Windows desktop native apps are inherently not portable because they are written "to Windows" rather than to "the web."
-
@guyinpv said in Web Application VS Windows Application:
What difference does it make at this point?
The biggest thing is the risk of technical debt. Paying to make code that locks you into the Windows ecosystem when you could be making code that doesn't, regardless of your current use case, is just reckless. Writing native apps when they are unnecessary ties you to more expensive resources, reduces options and is backwards looking. It increases risks without providing benefits (except in those 5% of cases where you need a local resource in a way that you can't get in another way, like for video editing or system maintenance apps.) Even many of those things are finding ways to use the web server to do system tasks and not needing native apps, either.
Think about what companies write as bespoke software. I've never seen a company make bespoke software that would benefit from being native. And effectively I've never seen bespoke software that wouldn't have benefited from being web enabled. Do you have an example of any real world bespoke software development where a native app would have been beneficial or is beneficial compared to what is available on modern web apps?
-
@scottalanmiller said in Web Application VS Windows Application:
@guyinpv said in Web Application VS Windows Application:
...but they still have their C++ native Windows apps
Not for two generations they haven't. Last one was Office 2010.
Wikipedia says that 2013 was made in C++
-
Assuming that Office is written for a web browser, then what keeps it from just working on Linux?
-
@scottalanmiller said in Web Application VS Windows Application:
@guyinpv said in Web Application VS Windows Application:
...but they still have their C++ native Windows apps
Not for two generations they haven't. Last one was Office 2010.
What is your source for this? We are completely talking past each other.
My criticisms are for containerized "web apps" using tools like Electron. They are written in Javascript and Node for the most part and much more limited OS APIs than native apps get.
Every source I can find says Windows desktop MS Office is still a C++ app, it ain't a JS web app in a frame!
If you're saying that their C++ app runs inside some kind of container, that isn't what I'm talking about. I'm talking about web languages (JS, HTML, CSS, Node, Meteor, React, et al) running in a container as a desktop app. Versus apps written in general languages Visual C++, C#, VB, Objective C, etc.
If a C++ app is running inside it's own sandbox/frame/whatever, that isn't what I'm talking about. -
@scottalanmiller said in Web Application VS Windows Application:
Do you have an example of any real world bespoke software development where a native app would have been beneficial or is beneficial compared to what is available on modern web apps?
Up until recent years the only way I can think of to develop cross-platform applications from the getgo were using Java, or Adobe Air. Of course it could be done with C, C++ if the programmers were careful.
The only reason I can come up with is programmer resources, convenience, time, budget.
I developed a C# app that only one employee needed for a specific purpose on their Windows workstation. This is when MS had released C# Express for free. Having come from Visual Basic, the move to C# wasn't as bad as trying to move to C++ so it was fairly easy to get used to.
Given the fact that the app was only needed in Windows, and that my skill was VB and resources C# Express was free, there was no reason to plunge gung-ho into trying to create this master, cross-compiling, super web app universal tool for this situation. It would have cost me time, more learning, more testing, additional environments to develop and test compiled code, etc etc. So it made sense on many fronts to just create the WIndows-only C# Express app.
In any case I can't really answer your question because the only real limitation regarding cross platform is the availability and/or need for the OS-specific API. So no I can't think of an OS-specific API or library that would be absolutely required for a project and thus make it impossible to program for other OSes too.
Perhaps something with graphics subsystems or deep file system abilities. If you have an app that specifically deals with enhanced features of Ext4, then perhaps there might be no way to get all the same functions on a Windows port on NTFS?
For example Ext2Fsd is a Windows app that only has basic Ext4 support and can only have read-only access to a Ext4 drive. OS API limitations?
These deeper APIs are the only thing I can think of that make an app locked to a platform. A "registry editor" app makes sense in Windows, not Mac and Linux. Linux firewall tools or a CRON utility doesn't make sense in Windows. -
@guyinpv said in Web Application VS Windows Application:
@scottalanmiller said in Web Application VS Windows Application:
@guyinpv said in Web Application VS Windows Application:
...but they still have their C++ native Windows apps
Not for two generations they haven't. Last one was Office 2010.
What is your source for this? We are completely talking past each other.
MS announced that they were doing it before the 2013 release. It's very obvious just in looking at and using MS Office 2013 and later. That's why the big leap backwards in functionality, they wrote a whole new code base to be web enabled. But that's why their hosted app is rapidly becoming a mirror of the local one... same code base. If you use the current MS Office, it's really easy to see that it acts like a modern web app with just everything that shows a browser totally hidden.
-
@guyinpv said in Web Application VS Windows Application:
If you're saying that their C++ app runs inside some kind of container, that isn't what I'm talking about. I'm talking about web languages (JS, HTML, CSS, Node, Meteor, React, et al) running in a container as a desktop app. Versus apps written in general languages Visual C++, C#, VB, Objective C, etc.
The INTERFACE would need to be in HTML5, obviously. But the back end can be anything, C# is very popular for web apps.
-
@guyinpv said in Web Application VS Windows Application:
For example Ext2Fsd is a Windows app that only has basic Ext4 support and can only have read-only access to a Ext4 drive. OS API limitations?
Right, but that's a system utility... neither a business tool nor a bespoke application. There is no question that the WIndows defragmenter or an AV product need to be native apps. But bespoke business tools... the stuff that businesses build for internal use... that's what the context is.
-
@guyinpv said in Web Application VS Windows Application:
These deeper APIs are the only thing I can think of that make an app locked to a platform. A "registry editor" app makes sense in Windows, not Mac and Linux. Linux firewall tools or a CRON utility doesn't make sense in Windows.
All the same things, though.... OS tooling for the IT team to use to manage the OS. Take away the OS and there is no need for the tools. The tools are not apps for the end users and no company is making them themselves for internal use.
-
Scott do you hear about companies porting apps like Photoshop or Final Cut over to Web Apps?