[HN Gopher] Ask HN: Is there still a place for native desktop apps? ___________________________________________________________________ Ask HN: Is there still a place for native desktop apps? Modern browsers these days are powerful things - almost an operating system in their own right. So I'm asking the community, should everything now be developed as 'web first', or is there still a place for native desktop applications? Author : Jaruzel Score : 189 points Date : 2020-05-17 13:31 UTC (9 hours ago) | nakodari wrote: | I am running a native desktop app Jumpshare | (https://jumpshare.com), a remote working communication tool that | helps you share your work and ideas through instantly shareable | links. Basically, it combines video recording, screenshot | capture, and file sharing - all in one app. This is not something | you can build using a modern browser or Electron because it does | not have tight integration with the operating systems. | paulmooreparks wrote: | I'm mixing a song in Pro Tools right now, and earlier I edited a | video in VideoPad. I can't fathom doing either on a web app. | mellosouls wrote: | Whatever contemporary technical arguments for and against are, | it's worth bearing in mind that people were asking the exact same | question, with similar arguments at least 10 years ago (and | probably more), so I would say: | | Yes. | Ingon wrote: | In some (most) cases, desktop apps could be better - performance, | latency, offgrid capabilities, and even privacy. In most cases, I | prefer offline desktop apps, then their online counterparts. | | One area which is really tough to nail is cross-platform support | though. Getting a good app on one system is hard enough, getting | it in all three - rarely done. This is one of the things where | web shines. | | From business standpoint, I think web-first with an eye on native | works for majority of cases. That is, as long as the majority of | users don't care about the above. In some future, if we start | valuing efficiency and especially privacy more, this could turn | around. But it feels like, even then, web will probably find a | way to make more sense for most people. | funcDropShadow wrote: | But building a good app on all three major operating systems is | not solved by an abstraction layer, neither by a cross platform | gui toolkit nor by a web layer. Different operating systems | have different conventions, metaphors and standards. A portable | application will usually feel foreign on all, but the | developer's primary platform. Unless, the developers invest in | adapting to the differences of the platforms. | roel_v wrote: | Lots of software would be better (from the user's POV) as a | desktop app. However as a developer and as a software business | owner/investor, it's (much) better to write web apps. So it | depends on what you're asking here. Should you invest in desktop | dev skills to further your career? No. Should you write your | software idea as a desktop app if you want to make a business of | it? Not if you can avoid it. If you're asking something else, | well I guess the answer is 'maybe'. | cpach wrote: | OTOH, creating desktop apps is a skill in itself that one might | want to master. At least in the Mac ecosystem this is a | regarded skill and amongst the users there is a willingness to | pay for apps. SaaS might still be more lucrative though. | chadcmulligan wrote: | > However as a developer and as a software business | owner/investor, it's (much) better to write web apps. | | Why do you say that? | dtly wrote: | Scaling out cross-platform, lower cost of investment to | support multiple OS/Devices. | | User does not need to worry about dependencies and libraries | - they just need to make sure they're running a somewhat up- | to-date version of a modern browser. | | Users are not tied to a single device either. | Dotnaught wrote: | As a business, it's not to your advantage to have to ask | permission from app store owners. The web does not require | permission from a third-party that may decide to compete with | you. | benibela wrote: | But with the app stores you get more users | | I basically had no users for one of my desktop apps for | seven years, till I ported it to mobile and put it in the | normal app store | amelius wrote: | Because of the main advantages of SaaS: recurring payments | and data lock-in. | tonyedgecombe wrote: | Adobe achieves that with desktop apps, if you can call it | an achievement. | TomMarius wrote: | Sadly I am not Adobe | WilliamEdward wrote: | Achievement is a big word here. They had to shove it down | people's throats with a bloated, buggy, and expensive app | suite. | tonyedgecombe wrote: | Yes although people still put their hand in their pocket | every month so they must be getting some value from it. | rohan1024 wrote: | I think he is saying that because with webapps you have | | - control over your software and updates | | - no one can pirate your software/service | ken wrote: | How do you have more "control over your software" with a | web app? With a native app, I can do virtually anything. | With a web app, I can really only do what (Google [?] Apple | [?] Microsoft)'s web browser teams decided to prioritize, | and allow, and optimize. | | As for 'pirating', is that a serious concern these days? | I've only ever heard about it being an issue at big | companies selling software to other big companies, where | it's solved with "license servers". | ZoomZoomZoom wrote: | >> How do you have more "control over your software" with | a web app? | | It means they can break a program I'm using at any moment | they wish, even after I paid for it. | hellisothers wrote: | I think they mean rapid, continuous deployment. If it's a | web app you can push out changes every day to near | universal adoption. With a native app you have to cajole | users to update | ken wrote: | There are auto-updaters for desktop software, too. | rohan1024 wrote: | This is exactly what I meant. | alexgmcm wrote: | Also on mobile you are constrained by the app store | requirements as well. | Memosyne wrote: | > no one can pirate your software/service | | Huh? Given how most web applications these days are using | client-side rendering there's nothing stopping someone from | just downloading all of the frontend assets. You can also | connect to a server from your desktop application so I | don't understand how desktop makes it easier to pirate | anything. | ssimono wrote: | Web applications have lots of essential parts on the | server-side even if they do client-side rendering. And | each paying user is logged in when using it, so the | company can accept/deny requests depending on the user. | | Proprietary desktop applications are usually downloaded | after a payment, and then the full software is available | locally. By hacking the security parts of it one can then | have a totally free version and distribute it. That's why | it is easier to pirate. | jfkebwjsbx wrote: | Not anymore! | | Games and even productivity apps are known to be moving | small pieces to their servers so that you cannot run the | entire application on your own... | tfehring wrote: | Here's PG's response from 2001: | http://www.paulgraham.com/road.html | thrower123 wrote: | Fuck no, everything should not be a webapp. Most things that are | webapps should not be, it's just that nobody knows how to do | anything else. | | It's really about time for the pendulum to start swinging back, | as processors aren't getting much faster anymore. | emddudley wrote: | Yes, there is still a place for native apps. | | Anything that communicates with devices using serial, UDP, or | custom layer 2 protocols. | | Also anything which needs to be used in a lab environments with | networks that can't access the web or corporate network. | | Also anything that needs to run in a manufacturing environment, | where precise configuration management, predictability, and | reliability are crucial. | kgin wrote: | What a crazy world where for desktop/laptops, we're not sure we | even need native apps even for complex use cases. | | But for mobile, there is an almost religious insistence that even | text-based CRUD apps need to be compiled binaries. | hermitcrab wrote: | Yes, I hope so. I have just released a new data | transformation/ETL tool for the desktop (Qt/C++ app for Mac and | Windows). The advantages of desktop are: -performance/low latency | -richer UI (e.g. shortcuts) -privacy | | But there are trade-offs: -the user has to install/upgrade it | -less insight into what the user is doing -harder to sell as a | subscription | | I wrote this in 2013 and I think it is still mostly true: 'Is | desktop software dead?' | https://successfulsoftware.net/2013/10/28/is-desktop-softwar... | oblib wrote: | I've been working on a sort of hybrid of the two by configuring a | web app to use CouchDB installed on the user's desktop pc to | store the user's data. | | The app code is delivered by a web server and runs entirely in | the user's browser and with service workers configured it runs | offline too. | | Personally, I think it would be cool to have a sort of secure | "runtime engine" on the client side that could manage permissions | to system functions for client side web apps. | freepor wrote: | You need a desktop app when 1) you're spending a ton of time in | the app or 2) you need every ounce of performance and feature set | that you can obtain and 3) you're willing to pay for it. | | If you're not building something like this, don't build for | desktop. | pier25 wrote: | It's true that many apps could be replaced today with a website, | specially those that are basically capturing and showing data. | | But there are still many areas where native is king. | | - Games | | - Audio / Video work | | - Adobe type of work (photo editing, motion graphics, vectors, | etc) | | - 3d | | - Office. For me Google docs is enough, but not for heavy users. | | - Desktop utilities (eg: Alfred, iStatMenus, etc). You could | certainly use a web UI for those, and it would probably be fine , | but you'd still need some native integration. | egypturnash wrote: | I like to take my laptop out to a park and work with all the | radios off to get the best use out of my battery. I also like to | do complicated things with a lot of files that need to be | organized in a real filesystem, the directory structure of a | graphic novel can easily match the complexity of a program's | source tree. | | Your web app, which requires several extra levels of indirection | between the code and the bare metal, an online connection, quite | possibly is built on a framework that tends to suck down a | significant percentage of my CPU even when it's idle in the | background with all windows closed, and its own weird file | management that's probably a giant hassle when I need to get my | work into another program, has no place in my world. | teddyc wrote: | I like a desktop app for uploading / syncing large files or | directories to the cloud. | | I'm sure there's a good web implementation out there for the | Dropbox-style sync thing, I just haven't seen it yet. | [deleted] | Optimal_Persona wrote: | O God, please no! I can't see anything requiring true low-latency | real time performance (like audio production DSP) ever being fast | enough on the web compared to native. Also, when everything went | 64 bit in recent years, developers got really lazy about memory | management. | kokizzu wrote: | this just like asking: do you prefer to use native/high | performance applications? yes do you like developing native | application? no if the performance and memory usage of web app | already equal to native desktop app, which do you prefer to use? | web | | XD | theredbox wrote: | If computers get significantly faster then no...but at this point | I always reach for a native application if I have the choice. | | The only non-native app I dont detest that much is VS Code but it | still feels painfully slow compared to something like Sublime | Text. | | Lets look at the chat apps that provide a similar functionality. | | * Teams | | Takes between 600-800MB on my PC. It's sluggish as hell and will | often choke to re-render if I click on something. | | * A native chat app Takes 15MB...Is just as eye candy as Teams | and yet i dont care if it's running or not. | perilunar wrote: | What a crazy mixed-up world: on desktop we ask if there's a | future for native apps, while on mobile we ask if there's a | future for web apps. | Youden wrote: | Yes, there's definitely still a place for them. | | I'd say that that when you're writing an application which is | fundamentally just a pretty wrapper (e.g. it exists to take user | input and pipe it over HTTP to some web service or use it to | generate a command for some other binary) and your users don't | care about performance, resource usage or reliability, it makes | sense to use a browser. Your application is very UI-focused and | if you're already familiar with HTML, CSS and JS, use what you | know. | | However if you're working on an application that has strict | resource usage, reliability and/or performance requirements like | say a control system for industrial equipment, a 3D game, a video | encoder, photo editing software, or software that's going to be | run on an embedded system, you're going to find it difficult to | do what needs to be done with a browser/wrapper. It can be done | for sure but it'll be something you work around rather than with. | hellisothers wrote: | 100% this, it depends on the context, and as one other person | mention it depends on your goal. | AnonC wrote: | It depends on what you're developing, who the target users are | and how much you need to charge to sustain yourself. It also | depends on your skills and how much time you're willing to invest | in creating a desktop application (doing one that's cross | platform, that performs well and works like a native app on each | platform would take a significant amount of effort). | | Native desktop apps targeted at the average user are better done | on macOS, since that platform has a higher percentage of users | who will pay (compared to the percentage of users who'd just | pirate it). | | Applications targeted at professional users, corporate users and | developers can get an audience that's willing to pay on any | platform. | | If your application is better done as a service, and you'd like | better control on managing versions, a web based SaaS might make | sense. | hermitcrab wrote: | >Native desktop apps targeted at the average user are better | done on macOS, since that platform has a higher percentage of | users who will pay (compared to the percentage of users who'd | just pirate it). | | That was always the standard wisdom. However I have released | the same software on Windows and Mac and seen significantly | worse piracy for the Mac version. | webscalist wrote: | Sure, if you want to drain battery | gdulli wrote: | Not having a real native desktop player is why I won't subscribe | to Spotify. When I'm going to use something more than lightly, I | hate using applications that feel like web tech. But I realize | I'm in the minority. | zacharycohn wrote: | _Reads comment. Cocks head, curiously. Closes eyes, listens to | the music coming from his computer. Opens eyes, alt-tabs to the | Spotify app. Closes all web browsers. Music continues, | uninterrupted except by ads. Shrugs, goes on with his day._ | CORBLIMEY-19 wrote: | Spotify on the desktop is just a big Chromium Embedded | Framework frame, thats what makes it not-native for the | purposes of this discussion | begriffs wrote: | Anybody here ever create graphical apps with Motif? Care to share | your experience? | | Motif appears to have an old and stable API. Its visual style | looks grey and blocky, but has a rich widget toolkit. | | https://www.oreilly.com/openbook/motif/ | sys_64738 wrote: | I want native apps not webpages that run in their own 'app'. If I | want a web app then I'll run it in a web browser. Things like | Electron apps are something I simply refuse to run. | goatherders wrote: | I use a number of native desktop apps. For email. For music. For | projects. For saving files. For instant messaging. | thewebcount wrote: | I go out of my way to avoid web apps. They're uniformly awful. | They also have a tendency to require an internet connection, even | when they don't need to. Some can use local storage, but the | other problems with web apps don't make up for it. I don't want | an OS running on my OS. I want to just use my apps. | derision wrote: | The web versions of Office software still feels way less polished | than the desktop version. It just doesn't feel quite right | lern_too_spel wrote: | Barely ever. If I have to install an app, even (especially) an | Electron app, you've already lost me unless you provide something | I can't get anywhere else. | gherkinnn wrote: | OS extensions like command line tools, Alfred or Little Snitch | will remain native by necessity. | | As will applications like Final Cut Pro and Logic Pro. As I see | it, the web platform is neither adequately performant, nor are | its timing mechanisms accurate enough. | | So no, native is sliding. I argue that >95% of users are happy | with browsers and/or electron apps. | | Either that, or those peeps move over to iPads. Which by design | forces native or psuedo-native apps. | WaltPurvis wrote: | If you develop an application that runs in the web browser, I | won't use it. That's not some dogmatic principle of mine, it's | just an empirical fact. | | I use only one browser-based application: Gmail. | | I've never used another browser-based application and I can't | imagine that I ever will unless there's truly no alternative and | it's forced on me by an employer. | | I've happily paid for dozens of desktop applications, and I'm | even semi-happily paying for around ten of them that have | switched to a subscription model, but I never have and likely | never will use browser-based applications even if they're free. | twicetwice wrote: | I'd be surprised if that is the case--or perhaps we have | different definitions of what constitutes a "browser-based | application." For example, I do all my online banking in my | browser; it's the most fully-featured way to do so. It might | not obviously be a PWA or an SPA, but I certainly think it | deserves to be called a "browser-based application." What else | could it be? It's certainly not a "web page." In fact I'd argue | that any site that has content that's scoped to a user and can | be manipulated by the user is a "web application." | kleiba wrote: | I don't get the downvotes: the original question asked about | opinions on web-based vs. native apps, and this guys is giving | exactly that. And what else could you do, you can either cite | some usage statistics or give personal assessments. | kleiba wrote: | What, and now even my own comment gets downvoted?! If there | was at least a reason given... coward. | shams93 wrote: | Well the browser is still not good at things that say Blender or | Protocols can do. Media pros still need desktop software for | example audio latency in chrome is far too high to use it for any | serious pro audio applications. | dzonga wrote: | as a Linux desktop user. I believe, having web applications is | preferable to desktop ones. however, the problem is talent is | lacking around the industry to make performant web apps. Not | every company can produce a high quality products such as Figma. | things on web are not tied to walled gardens or any other stupid | shit. easily accessible. | feifan wrote: | IMO desktop apps aren't quite equivalent to native apps. Native | apps look and behave in a consistent way. They have | | * Familiar UI primitives: - Controls and chrome are in the same | place - Font sizes are the same across apps - Consistent icons | and button shapes | | * Support standard keyboard shortcuts (including obscure ones | that developers re-implementing these UIs might not know about) - | All the Emacs-style keybindings that work in native macOS text | fields but are hit-or-miss in custom web text fields - Full | keyboard access (letting me tab and use the space bar and arrow | keys to interact with controls) | | * And consistent, predictable responsiveness cadences - Somewhat | contrived example: In Slack (browser or Electron app), switching | between channels/DMs (via [?]K) has a lag of about 0.5-1 second. | If I start typing my message for that recipient during this lag, | it actually gets saved as a draft in the channel that I just left | and my content in the new channel gets truncated. I don't think | that kind of behavior would happen in a native macOS app, which | renders UIs completely synchronously by default/in-order (so it | might block the UI, but at least interactions will be in a | consistent state) | pbhjpbhj wrote: | Consistency is maybe overrated? | | I purposefully make my FF unlike the other apps on my system. I | use a couple of workarounds to prevent OS level keybinds from | working in some apps. Sometimes a completely purpose made UI is | better, sometimes. | | In general, consistency [in desktop UI] is good, but there are | good reasons to break it. | pmlnr wrote: | It is certainly not overrated. See Windows 10. | | https://www.techrepublic.com/article/control-panel-and- | setti... | | https://www.windowscentral.com/sites/wpcentral.com/files/sty. | .. | dredmorbius wrote: | Depends heavily on the user community, use case, time-in- | environment (short- and long-term), inter-user communication | _about_ application, and rate of change. There 's almost | certainly a set of interrelationships between these. | | For a highly technical userbase, a highly bespoke UI may be | defensible,even preferable, especially: | | - User community is expert, highly skilled, and highly | computer-literate. | | - If daily-weekly time-in-environment is high. User "lives | in" application. | | - If lifetime time-in-environment is high. Users base career | in application. | | - If there's relatively little communication _between_ users | about application state, interactions, or activities. Put | another way: users interact _with_ the app, but not _about_ | the app with others (users, clients, management, techs). | | - The UI avoids drastic change over time. | | By contrast, reverse virtually any of these conditions and | you'll want a UI that conforms closely to _current_ | standards: | | - Users are inexpert, poorly computer-literate (the vast | majority, see OECD computer skills study), or simply | nontechnical with app. | | - Time-in-environment is low. At the extreme, all users are | one-time novices. | | - If users must communicate with others regarding app state | or tasks -- close management, team interaction, client / | management interactions. All parties need a ready and clear | mental model of the UI and state. | | - If the UI changes drastically over time, it should do so | consistently with all other major elements. (Both should | change as little as possible.) | | Somewhat more concretely, the _absolute worst_ feature a UI | can have is change. Users get confused, lose trust, and are | burdened by obsolete knowledge. This afflicts both expert and | nonexpert users, profoundly, though in somewhat different | ways. | | For very technical tools used principally creatively --- | virtually all editors, development environments, and many | reader/browser/search/analysis tools fit this description --- | a highly distinctive (and customisable) interface may be | appropriate _for advanced users_. This is a small, but | generatively critical, user community. There 's a requisite | complexity to such tools, simplified UI comes at the cost of | vastly less efficient performance. | | Virtually all "weird" tools in heavy use today evolved from | what were _at the time of their creation_ , common motifs, at | least within the environment of origin. Think of Unix, vi, | emacs, Photoshop, Excel, and Eclipse, say. | | For standard workflow, control, and transactional tools, | highly standard UIs are preferred. Here, users are | interacting closely with others _regarding state or | interactions with the interface_ , and clarity, consistency, | and common knowledge of the UI and state changes matter. | Point-of-sale systems, equipment controls, general monitors, | enterprise applications, end-user/customer support tools, and | the like. | | Occasional-use, public use, and similar tools must be | generally usable without training. Adherence to standard | motifs is critically important. UIs and capabilities are | generally simple. | | The trade-offs: | | - More expert users and more heavily-used tools can support | more novel UIs. | | - Less literate users, more unfamiliar tools, and greater | communications about UI state and interactions, demand more | standard UIs. | | - Change is generally bad, but evolutionary change (within | the tool) or conformant change (with the overall environment) | are generally less disruptive than either sudden drastic or | idiosyncratic changes. | falafel wrote: | I don't agree with the first two points. Native applications | aren't consistent in this way. There are dozens of cross- | platform GUI kits and they all behave slightly different, just | like Electron apps. If you want consistency, you need to build | multiple apps, one for each OS with their respective toolkits. | Ain't nobody got time for that when you can easily build on | Electron and target browsers, macOS, Windows, and Linux in _one | single app_. No wonder Electron is winning the battle so far, | regardless of your last point. | madhadron wrote: | Native implies that you are building for each OS and their | native toolkit. On macOS, you write Cocoa. On Linux you write | GNOME or KDE or CDE. On Windows you write...I dunno. Win32 | probably. | cpach wrote: | IMO: To some extent, yes. | | Here are some desktop applications I enjoy and have gladly paid | for: | | Acorn (image editor) / 1Password / Evernote+Skitch / Pingplotter | / djay | [deleted] | blackrock wrote: | Adobe seems to have achieved the combination of SaaS and Native. | | They got data lock in with Photoshop and Lightroom. Admittedly, | the free alternative just doesn't work as well as Photoshop or | Lightroom. | | The SaaS is on a monthly or annual subscription. So spending | $20/month, if you only use it for 1 month, is far cheaper than | spending $800 outright for a Photoshop license. And now, Adobe | has the potential to reach a global audience of 7 billion people. | | Of course, there is some risk that your code will be pirated, | decompiled, and reassembled, to remove the ET-phone-home feature, | but this is only a minor annoyance. It's better to get your | product pirated, than another competitors product. That way, the | people using the pirated copies, who are likely poorer, or kids, | will learn your program, and eventually pay for a full commercial | license eventually, when they get a job professionally using the | product. | rptr-web wrote: | Webassembly is slowly taking over and i believe native apps days | are numbered. | | If legacy apps like AutoCAD ported to WASM can give similar | performances and experience as web app this is just inevitable | now. | cecja wrote: | Make a New Text file save your comment in it. Wait 5 years and | laugh at your past self. Look at what problems wasm has right | now the overhead will stay. If you look at vscode the limit is | reached you just can optimize so much with aweb based apps, | discord, vscode game launchers like the lol client every | engineer working on it is aching. They are good for your jkob | security but that's it. | mike50 wrote: | Speed of light is still fixed. | thr0waw4y5555 wrote: | I always go for a native app over a web app/electronjs app. | Native will most likely have the familiar idioms of the OS, lower | overhead, and take advantage of platform specific features. I | happily pay money for native apps. I generally don't pay for | blobs of JS in app form. | alkonaut wrote: | Take any app that uses all cores nearly 100%, maybe maxes out the | GPU eats 3-5GB of ram, and is a 2-100GB install. | | Those will always be native. | | These are your Cad programs, your video editors, your AAA games. | | You can make a cad program in a browser too. But you trade a | chunk of perf for convenience, and thats only rarely acceptable. | | Anything that could ever be done in a mobile app (chat, media | consumption, ..) those might be possible to do in a browser. But | you didn't even really need a computer for them to begin with. | ComputerGuru wrote: | Tell that to Autodesk. Fusion is like 70% web, slow, and | bloated. They don't even have a good excuse since the whole UI | is just a shell around a canvas and could easily be made | native, it's not as if they're actually benefiting from the DOM | or CSS. | alkonaut wrote: | That's the one I was referring to. That is, Fusion is a | tradeoff that isn't always a acceptable (and still it's not | completely web based). | ZoomZoomZoom wrote: | I'm going to be slammed for using these two words, but for any | _real work_ you need to have as few layers of indirection between | the user and the machine as possible, and this includes the UX, | in the sense that it is tailored to the fastest and most | comfortable data entry and process monitoring. | | I don't see any `web first` or Electron solution replacing Reaper | or Blender in a foreseeable future. One exception I'm intrigued | with is VS Code, which seems to be widely popular. May be I need | to try it to form my own opinion. | ur-whale wrote: | Blender in the browser. Ugh. <shudders> | brachi wrote: | I don't find it that crazy, if properly compiled with web | assembly. The thing is that Blender's UI is all synchronous | python, so, yeah, that and the addons system would be to need | rewritten. Python in the browser is a no-go performance-wise, | of course. | CharlesW wrote: | > _Python in the browser is a no-go performance-wise, of | course._ | | "Running the Python interpreter inside a JavaScript virtual | machine adds a performance penalty, but that penalty turns | out to be surprisingly small -- in our benchmarks, around | 1x-12x slower than native on Firefox and 1x-16x slower on | Chrome. Experience shows that this is very usable for | interactive exploration."[1][2] | | [1] https://hacks.mozilla.org/2019/04/pyodide-bringing-the- | scien... [2] https://alpha.iodide.io/notebooks/300/ | p_l wrote: | So, an already slow language made slower? | | No thanks. | digi59404 wrote: | Both VS Code and Atom use significant amounts of WebAssembly | and low level libraries to achieve that performance. In | addition to that they've written their own view layer for an | IDE in modern JS which makes it more performant and stable. | | I despise electron and html-wrapper apps. But I gotta give | credit where it's due. VS Code is pretty good. | | With the advent of the new WinUI, React+Native on Windows, and | Blazer. I'm betting the future of windows is more web based | technologies mingled with low-level native libraries. | psds2 wrote: | VSCode, because of electron, doesn't allow you to have multiple | windows that share state while working on a project. This makes | it terrible with multiple screens. | camccar wrote: | It's not because of electron. They could have multiple | windows but it would be a massive over haul of the | architecture . So they say just use another instance | sime2009 wrote: | OnShape (https://www.onshape.com/) offers professional level | CAD which runs in a browser. Works great. | namdnay wrote: | "Professional level" covers a lot of different uses... | Juicero and Airbus both use CAD, I seriously doubt the latter | are going to replace CATIA with OnShape | pupdogg wrote: | I'm in agreement with @namdnay...I don't think it will | replace enterprise packages like Siemens NX or CATIA anytime | soon. I do all of my CAD design in Solidworks and I do like | the out-of-the-box thinking/features of OnShape...but...their | pricing model ends up being more expensive in the long run | ($2100/year for Pro Version). I paid $4k for Solidworks in | 2016 and it's paid itself off more than 10x times since | then...all without the need for a forced upgrade! When a | newer version substantiates its value for my workflow, I will | upgrade. Not to mention, most of my work can easily be done | in Solidworks 2008-2010 because that is the innate nature of | CAD packages, regardless of the version, they will get the | job done. | alkonaut wrote: | So is Autodesk Fusion. But you won't see Autocad stop selling | their desktop software. People don't buy extreme rigs to use | for production, and then trade even 5% of the perf for | convenience. | KaoruAoiShiho wrote: | VS Code is slow at basic things like having characters show up | on screen after hitting the key. It's good at everything else | though so that lag doesn't matter as much. | boardwaalk wrote: | It probably depends on your hardware. I have an "older" | (several years at least) Windows work laptop with iGPU that | is quite sluggish with VS Code when hooked up to an external | 4K display. However, it's snappy compared to Microsoft Teams | in the same situation. | | Meanwhile, my similar era MacBook with dGPU hooked up to the | same screen is very snappy and I honestly would probably not | be able to tell the difference in a blind test between VS | Code and typing in a native text box (like the one here in | Safari). | | I'd consider myself pretty anal about latency -- I was never | able to deal with Atom's, for example (disclaimer: I haven't | tried it in years). I even dumped Wayland for X11 when I had | a Linux desktop because of latency (triple buffering or | something?) I couldn't get rid of. | | But VS Code is not bad. | robin_reala wrote: | Figma is pretty much replacing all web design applications | precisely because it's leveraging web tech for collaboration on | a single document at the same time. | ashtonkem wrote: | I think Figma's success is less about being web first and | more to do with filling in gaps in what Sketch offered, | especially in collaboration. Today you need to buy at least 2 | apps, Sketch and Abstract, to match the feature set of Figma. | | Design is one of the areas where one could arguably create a | native app, largely because the user base is much more | homogenous in OS than most other user bases. | pupdogg wrote: | Figma is a great tool and all but it will still take it | years, if not decades, to replace immersive content creation | technologies like Ventuz, one of the best in the game! | https://www.youtube.com/watch?v=nu2FnEVk9_U | polishdude20 wrote: | Is this an ad or are you serious? | ZoomZoomZoom wrote: | I think we can safely exclude 'collaborative web design' | applications from the set of hardcore tools not gaining much | from being implemented as web apps for understandable | reasons. | blehn wrote: | Huh? Why? Designers had previously been using native apps | for ages -- Photoshop, Illustrator, Sketch... Figma has | been successful not just because it's collaborative but | also because it's performant, powerful, and reliable. Not | sure why you think that can't be achieved with other kinds | of software | CharlesW wrote: | And yet it is a hardcore tool, and does gain a lot from | being implemented as a web app. Another example might serve | your point better. | ZoomZoomZoom wrote: | Ok, I see my point being not so understandable, after | all. I didn't mean Figma isn't a hardcore tool, I meant | that we exclude it because it specifically concerns with | web technology (being a tool for web design) _and_ | leverages web to implement collaborative usage. So it 's | probably logical for it to be a web app. | blehn wrote: | You're still way off. It's not a "web" design tool; it's | a visual design and prototyping tool. Folks are designing | a lot more than websites and web apps with Figma. | CharlesW wrote: | > _So it 's probably logical for it to be a web app._ | | Ah, gotcha. Although I'd have assumed that Figma is used | more to design native apps that web apps, this helps me | understand where you're coming from. | burke wrote: | As an Electron hater, I'm constantly surprised at just how much | VS Code doesn't suck. | api wrote: | It doesn't suck, but try Jetbrains IDEs. C++ and other "not | JS" language support is vastly superior including refactoring | that actually works. | nwatson wrote: | Jetbrains IDEs (and others for that matter) provide so much | more than the glorified text-editors, including extensive | debugging support (both in my own code, library code, | platform code), code-autocompletion, code navigation, code- | formatting, refactoring, linting, static-analysis (works | well for Python as well), great syntax highlighting, spell- | check, a good plugin ecosystem. I'd never go back to | editing code without that support. | | The Jetbrains ecosystem is real cheap too, I pay | US$160/year for the personal-license all-product suite I | can install and use anywhere ... and I use PyCharm | (Python), IntelliJ IDEA (Java et al), and Datagrip (DB) | extensively, dipping into CLion (C++/Rust) as well ... but | they have IDEs for many other languages and ecosystems as | well. It's definitely a good deal. | | Jetbrains suite, along with Docker, Atlassian SourceTree, | and Homebrew (and connection to AWS/Kubernetes) are my main | tools these days. | Groxx wrote: | I keep periodically re-trying VSCode, but holy cow. It's a | _massive_ step down from a Jetbrains IDE, in every single | language I 've dev'd in. | | Jetbrains stuff _works_ , VSCode _mostly handles the basics | if it 's possible to configure it correctly_. Which is | quite the achievement, and it's a very reasonable option | and far better than much that came before it. But it's not | where I want to spend my time if I can avoid it. | ninjakeyboard wrote: | You're working with statically typed compiled languages | tho. Once you try using a dynamic language you realize | another editor is enough IMO. I use emacs for anything | dynamically typed (including compiled languages like | elixir) and intellij for scala/java. | thrower123 wrote: | Webstorm or PyCharm isn't as good as IntelliJ or | ReSharper, but holy hell is it better than just a text | editor, even emacs. | | I really don't understand why so many programmers proudly | proclaim that they do things the hard way and wear that | as a badge of honor. | Groxx wrote: | It's miles better on Python and _most_ javascript that I | 've touched (VSCode's ecosystem does tend to have more | breadth, and if you're working on something that VSCode | has plugins for but Intellij does not, yea - VSCode can | be noticeably better for most purposes). Most commonly | around stuff that requires better understanding of the | structure of the language / project, like refactoring and | accurately finding usages. | | But yes, for many dynamic languages a fat IDE is less | beneficial, especially for small-ish projects (anything | where you can really "know" the whole system). | FpUser wrote: | Same here. I am all native guy, including back end C++ | servers but VS code is very decent. But then again I think | the level of developers who did the main task is way above | the average. And MS itself wrote that they worked super hard | to optimize it for memory and performance. Something that | regular developer usually ignores / does not really know how | to do due to their lack of understanding how lower level tech | works. | 2muchcoffeeman wrote: | VSCode is Electron? I had no idea. That's the only electron | app I use willingly then! Good job MS! | ZoomZoomZoom wrote: | The reason for this, I think, is developers of VS Code really | understand the problem field in this case, as they are making | the tool for themselves. | | Also, there's probably a ton of resources involved. | mmmeff wrote: | Interesting past thread on Atom's performance struggles and | how they got outplayed by the VSCode team: | https://news.ycombinator.com/item?id=14140421 | heywire wrote: | I love vs code, and its plugin system, but if I'm on my | laptop without a charger, I use something else. When I'm | running vs code, my battery life is cut nearly in half. | noahtallen wrote: | What do you use instead? In my experience, normal IDEs | (Android Studio, Xcode, Visual Studio) all perform worse | than VS Code in terms of memory use and battery. :/ | PopeDotNinja wrote: | My personal evolution has gone from Sublime Text 3 to Atom to | VS Code to Sublime Text 3. I've never been a heavy plugin | user, mainly sticking to code highlighting. The thing I | really like is speed. Sublime Text rarely chokes on me. I | love being able to type `cat some_one_gigabyte_file | subl` | and getting it to open up with little difficulty. VS Code | chokes on files of non-trivial size, and that was the thing I | liked about it the least. | | For anyone wondering why I'd open up a 1 GB file in a text | editor, I guess the answer is largely because it's | convenient. Big log file? No problem. Huge CSV? No problem. | Complete list of AWS pricing for every product in every | region stored as JSON? No problem. | fartcannon wrote: | Vim handles large csv files pretty good, as well. | | Not saying you should use it, just something that I found | out years ago. | PopeDotNinja wrote: | I've tried pure text editors, but they haven't really | grabbed me, and my fingers are quite clumsy. | whowhatwhy wrote: | i just use less for big files, convenience is a matter of | taste | xwdv wrote: | I don't open big files at all. There's no point. Files | exist as data made to be transformed from one form to | another. It is only worth looking at a file in its final | form unless you are making some kind of edit. | | And even then, I make edits on large files through a | series of commands, never opening the file. | | By thinking of files in this way, it becomes easy to | create programmable tool chains for manipulation. | whowhatwhy wrote: | not everybody uses a computer for the same exact thing | you use a computer for | xwdv wrote: | Of course, if they did there would be no point in making | my comment, it would be redundant. | abbadadda wrote: | I think the issue with your original comment is with | "there's no point," which is in effect invalidating the | opinion of others. | tomxor wrote: | I'm an atom user, and it chokes for the very same reason. | | However I also use vim for tweaking server side stuff, and | use less by default whenever I want to read something (logs | is an obvious one)... | | This is both for speed but also UX, i believe vim style | navigation (which less basically gives you), is great for | reading and searching - what I cannot stand though is doing | more than small edits in vim, for development (and i mean | code is flying around like crazy stage of development, not | read for 1 hour and make tweaks), then I am fastest with | the kind of flexibility atom provides. | | I know it can be tempting to have one tool for everything | when it seems like the tools are supposed to be doing the | same thing, but in my mind lean text editors tend not to | compete with the big fat slow electron style editors - so | just use them both, for their respective strengths. | PopeDotNinja wrote: | I hear you on the value a text editor on the server side. | I have picked up the basics of vi for this use case, but | I ain't fast with it :) | madhadron wrote: | VSCode uses a C++ backend to get that performance. | zingplex wrote: | I think you're confusing Atom and VS Code. | robinduckett wrote: | VSCode uses the same c++ based regex parser for syntax | highlighting as TextMate, Sublime, Atom, etc | karlding wrote: | For anyone interested, this is the Oniguruma [0] regex | library written by K. Kosako. It's also used in Ruby and | PHP. | | [0] https://github.com/kkos/oniguruma | fermentation wrote: | Yes, Chromium. | user_50123890 wrote: | Don't care, i'll take a good web app over a shitty native app any | day. | | Since native apps take much longer to develop and the UI toolkits | are stuck in the 90s, it's pretty much given nowadays that new | ones are shitty compared to the equivalent web one. | smabie wrote: | But like, do they. Personally, I've found using a high level | native UI API (like Racket's) to be _much_ easier than a | webapp. More flexible and performant too. | | Personally, I hope that web browsers die off and we go back to | gopher for displaying information. I hate the web. | kleiba wrote: | Please take a look at actual screenshots from the 90's to | quickly disprove your assessment. | | The only other argument you mention is that native apps take | much longer to develop, and that from that somehow follow that | they are "shitty". I'm not even convinced the premise is | correct, but I certainly don't see why longer development times | would imply worse outcomes... | | Intuitively, I would assume the opposite: something that is put | together all too quickly should have a higher potential for | being half-baked. | | I'm not criticizing your preference, I just don't buy the | arguments. | iphone_elegance wrote: | Personally I feel like webapps are really holding us back but | to each their own | implicit wrote: | If you are going to expect me to run your software in an always- | on manner, I would greatly appreciate a native application. | | I frequently do light computing on a Surface Go. It's a | delightful little device and I love it, but it is not powerful | enough that I can leave gmail, Slack, and Discord open all the | time. | | I don't have enough RAM to run another web application but I | could very easily afford a native app or two. | pmlnr wrote: | There's a pidgin plugin for discord. While pidgin is dated and | has issues, the existence of it shows that even modern chat | systems could be made fast. | | https://github.com/EionRobb/purple-discord | znpy wrote: | I have an old ThinkPad X200s that I turn on from time to time. | I keep a fedora installed and updated just in case, and since | I'm there, i also sync my nextcloud stuff. | | E-mails using claws-mail are not a problem. It generally runs | fast enough until I open firefox and web stuff in general. | squarefoot wrote: | Claws Mail on an old Atom is a lot faster than webmail on | pretty much anything else. This probably illustrates best the | difference between the two approaches. | pmlnr wrote: | I remember times when webmail basically meant squirrel | mail. It was fast over an 56k modem, but desktop was always | better. | | http://www.squirrelmail.org/ | analog31 wrote: | Indeed, I asked on another HN thread, why do you developers | need so much RAM, and I got lots of good answers. But it occurs | to me that a few lightweight, quick-starting apps will help me | stave off the day when I have to get a new PC because my old | one ran out of juice. | | I'm not sure that's enough of a reason to develop a commercial | app, because tightwads like me also like our stuff to be free. | johnchristopher wrote: | There's still a place. But not for reinventing wheels and half | bake a new take on a "solved" problem (mail reader, music player, | personal task manager, etc.). | mrkramer wrote: | Wasn't Steve Jobs' idea to have Web Apps for Iphone but Iphone | team talked him into native apps for various reasons such as | performance and security and he finally gave in. | | I would assume the same for desktop versus web apps but as time | goes on I think web apps will prevail. | prepend wrote: | Apple always had native apps. Jobs said web only for third | party apps in the first release. | | Jailbreak App Store came out and lots of third party apps, then | Apple opened up. | zadjii wrote: | I mean, we built the Windows Terminal as a native application | because we didn't want users to have to be saddled with 40MB of a | webview/Electron just to boot up a terminal. It might take us | longer to make the terminal as feature rich than it would have | with JS, but no amount of engineering resources could have | optimized out that web footprint. When we think about what the | terminal looks like in 5 years, that's what we were thinking | about. | jfkebwjsbx wrote: | I don't use Windows, but thank you for having gone for it. | bhauer wrote: | Thank you. As you say, in the long haul, Windows Terminal is | considerably better than it would have been thanks to that | decision. It _feels_ responsive and lightweight; unlike any | Electron app, and that is greatly appreciated by many users, | myself included. I look forward to each new version. | sebazzz wrote: | Didn't they eventually did some crazy optimizations to keep | the terminal in VS Code performant? | Cthulhu_ wrote: | They still do; for years now I read the patch notes and | every time there's a segment dedicated to the terminal with | things like font support or sane selection, things that IMO | are both basic features and which should be in native | terminal emulators already. | | also I've never used the VS Code terminal, iterm works | better for me. Also because it's its own dedicated app, so | I can actually alt-tab to it instead of having to learn | whatever shortcut it would be in the editor. | dmitrybrant wrote: | I specialize in data recovery / digital forensics tools, which | require very low-level disk access to be able to read physical | media at the block level. I doubt there will ever be an HTML5 | standard for low-level disk access. | | But aside from my particular specialty, I also prefer any other | software I use to be fully native. I'm surprised that's such a | controversial thing to ask for these days. All I ask is so | precious little: | | * I want the software I use to be designed to run on the CPU that | I own! | | * I want software that doesn't require me to upgrade my laptop | every two years because of how inefficient it gets with every | iteration. | | * I want software that isn't laughably bloated. I think we have a | real problem when we don't bat an eye upon seeing the most | rudimentary apps requiring 200+ MB of space. | marclave wrote: | Have you looked into webassembly and how browsers give access | to filesystems[1], there could be hope for a future of high | performant filesystem access. | | [1] https://developer.mozilla.org/en-US/docs/Web/API/FileSystem | floo wrote: | From the linked article: | | _This interface will not grant you access to the users | filesystem. Instead you will have a "virtual drive" within | the browser sandbox. If you want to gain access to the users | filesystem you need to invoke the user by eg. installing a | Chrome extension. The relevant Chrome API can be found here._ | kokizzu wrote: | that's not low level disk access | whb07 wrote: | Can you explain how it isn't? | jfkebwjsbx wrote: | If you are accessing the file system, you are accessing | an abstraction, not the actual disk data (which is | another abstraction on top of the actual hardware). | kccqzy wrote: | Does it give you access to /dev/disk0 (or /dev/nvme0, or | /dev/sda0, or /dev/rdisk0 etc)? If not, no. | umvi wrote: | I remember hanging out in /r/Unity3d and some newbie posted a | download for their completed game. It was super basic - just a | game where you move a cube around a grid, but the size of the | game was insane, like half a gig. | | The dev who posted it seemed perplexed when people told him the | game was 100x bigger than it should be. | peteforde wrote: | I hope that you did the kind thing and showed them how to | adjust what gets compiled into their package, depending on | whether they are targeting a development or production build. | | Nothing worse than people who mock beginners showing their | first work. We were all there, once. | DangitBobby wrote: | He was probably expecting useful feedback or even praise. | room505 wrote: | CAD and BIM | samstave wrote: | Exactly what I came to say. | | As someone who has used Autocad since Ver 9 (1993) this is | important. | | Also - heavy 3D design. Blender/Alias/whatever these days. | | Solidworks as well. | preommr wrote: | webgl and wasm? | | Edit: I presumed that the context of the discussion was apps in | a general sense. Obviously not every application is going to be | on the web and there are a lot of niche software that will | never make the switch. I was thinking more qucad or sketch 3d | for woodworkers to plan their desks, not solidworks and all its | plugins to handle complex fluid simulation in mission critical | areas. | kroltan wrote: | Still wishful thinking at this point. | TomMarius wrote: | Do you know OnShape? | etimberg wrote: | I worked in the EDA space for a while and even built an | online circuit simulation tool [0] while there. I'm aware of | couple of startups such as [1] that tried to move these tools | to the browser. There are a number of challenges that make | web apps difficult in this space such as" | | 1. Pricing model: For the simulation side of EDA, you need a | lot of computing power. With desktop apps, the user already | has a powerful machine available that you don't have to pay | to use. With the cloud, you need to pay for all the machines | so finding a pricing model that works is a challenge. | | 2. User expectations: The users who are willing to pay > | $100k/seat/year expect very advanced features that would | probably take 10s or 100s of engineering years to get | working. These users also don't care as much about the UI/UX | problems that a modern app would solve. | | References | | 0. https://www.multisim.com/ | | 1. https://upverter.com/ | throwaway9087 wrote: | We've had some success with 2D AutoCAD on WASM, but it's not | as easy as just recompiling when you are dealing with a | nearly 40 year old codebase and care about pixel level | accuracy. Also, it will never be as responsive as native, | mouse events lag on the browser even if you are doing nothing | else. AutoCAD users care a lot about such lag. | | The BIM stuff (i.e. Revit) is very Windows-specific so a | straight port with WASM is a no-starter. | | The actual 3D rendering with WebGL is the least problem, we | have that nearly solved (in terms of performance relative to | desktop -- we never really needed 60fps anyway). The problem | there comes in when you have a huge design that does not fit | in the allocated/allowed heap space. | | (throwaway for obvious reasons) | moeamaya wrote: | The new Autocad web app is pretty impressive. Feels native even | with large CAD files: | https://www.autodesk.com/products/autocad-web-app/overview | flarg wrote: | IMHO native applications represent a valuable class of niche | software tools that deliver very highly specialised functionality | in concert with desktop software. Add ons for MSProject and Excel | abound and there really isn't an equivalent for online tools or | indeed a viable or stable market. | gwbas1c wrote: | The big advantage of web applications is that they don't have an | installer, and they don't need to deal with pushing updates. | | Many comments here explain the advantages of full desktop | applications. (And there are many.) | | The thing to always keep in mind is, does your application | justify an installer? There's so many tiny utilities that run in | a browser that I can find with Google. These are utilities that I | probably use once a year and don't care to install. | | But if I use the application heavily, I want a desktop | application even if it's just an application specific browser. | jacobcritch wrote: | Native apps are totally necessary. Why abstract everything to the | browser? | htk wrote: | I would say it depends on complexity. Either algorithmic or UI | complexity. Web apps just aren't as efficient as Desktop apps, | and at this moment this is still relevant in various cases, | probably in many less in the future. | hootbootscoot wrote: | Of course! | | I would rather reverse the question: In which situations is it | acceptable to use Electron, for example? Something like Balena | Etcher makes sense, but Logic Audio not so much. | | Don't let hype and popularity on HN (not to mention market share | of JS as pertains to the amount of web front-end work vs desktop | work) serve as a surrogate for noting actual performance given a | specific application. | | Wrap-a-browser approaches and bloaty non-native frameworks are | good for configuration ware, and things that don't need to engage | in high amounts of real time processing saturating the CPU and | RAM. | | Many applications continue to squeeze required performance out of | each platform. Cross platform approaches can serve just fine if | there are zero-cost abstractions. | | Audio/Video/3D/Image production software, for example. CAD, not | to mention developers tools and compilers, just for the tip of | the iceberg. | gfxgirl wrote: | It really depends on the app. | | A 3d modeling package? Although Clara.io exists most of the time | I'm dealing with 100s of megs of data so native wins. Creating a | game? Mostly same though I can imagine some limited online game | creation tool even the small sample 3D platformer for unity is | 3gigs of assets so a game editor native seems to win. Photo | editing, when I get home from vacation there's 100gig of photos | so native wins for me. Video editing same thing. | | On the other hand there are apps I have zero interesting in being | native. WhatsApp, Line, Slack, Facebook, Office, Email, Discord, | etc. I'm 100% happy with them in a browser tab. Native apps can | spy on way more than browser apps (maybe less on Mac). They can | install keyloggers, root kits, scan my network, read all or most | of my files, use my camera, mic, etc. | | I also use 7 machines regularly. Being able to go to any one and | access my stuff is way more convenient than whatever minor | features a native app would provide. | znpy wrote: | Native desktop apps already are one of those fields that very few | people can master. Such niche will probably become super | lucrative in the upcoming years. | madhadron wrote: | They're not that hard. They're just unfamiliar to Unix command | line users. A lot of people managed to write desktop apps in | Delphi, Cocoa, and Win32 for many years. | lucis wrote: | You might wanna check Oni2 [1] | | [1] https://github.com/onivim/oni2 | blargmaster33 wrote: | Every time I work on our WPF app at work I get reminded what a | fucking joke HTML/CSS/JS is. It's worse in every conceivable way. | intrepidhero wrote: | The lines between the two have been slowly blurring for some time | now. My crystal ball says that will continue as the need for | cross platform support, especially desktop versus mobile, gets | bigger. I think we'll see more and more emphasis on 3rd party VM | type frameworks, like JVM, unity, and electron. However with | Moore's law reaching an asymptote I believe that writing for | performance will also become more and more important. I think | these forces will result in a high demand for the skills needed | to improve performance on all types of apps. | | What I'm hoping for is a pendulum reaction to the recent trends | of UX design, where we see a renaissance in really solid | interfaces that focus on discovery and speed. But I'm not seeing | signs of that yet. | peignoir wrote: | Anything relying on DLTs has to be on desktop | fbelzile wrote: | I make a living developing software only available on Windows and | macOS. That said, if I didn't need to interact so much with the | operating system, I'd be making a web app. It all depends on what | you want to make though. Video editing software? Native app. CRUD | app? Web app. | | You may also want to consider pricing implications of both. | Desktop software can usually be sold for a higher up front cost, | but it's tough sell to make it subscription based. SaaS would | make your life a lot easier if you have a webapp. People are | starting to get used to paying monthly for a service anyway. | | Pro tip: If you decide to make a native app, don't use Electron. | Instead, use the built-in WebBrowser/WKWebView components | included in .NET and macOS. Create the UI once using whatever web | framework you want, and code the main app logic in C#/Swift. | Although the WebBrowser control kind of sucks right now, | Microsoft is planning on releasing WebBrowser2 which will use | Blink. I think they might also have it where the libraries are | shared between all apps using it, to further reduce bloat. The | old WebBrowser component can be configured to use the latest Edge | rendering though by adding in some registry keys or adding this | meta tag: | | <meta http-equiv="x-ua-compatible" content="ie=edge"> | OkGoDoIt wrote: | I understand the concept of making a native app to include | using the native UI platforms. What you described is hardly | more native than electron, which is basically a web app at | heart. | | Or maybe there needs to be a consensus on terms. Do people | consider electron apps to be native? I would put them in some | weird middle ground, but definitely closer to web technologies | than native development. | neurostimulant wrote: | The main complain about electron app is due to their bundling | of complete web browser runtime, which is over a hundred of | MB, not to mention the big memory requirements. By using | platform's built-in webview component, your app size will | hardly any bigger than the total size of the zipped | html+js+css of your app. If you're going to use web stack to | develop your desktop app anyway, might as well try using | native ui webview first if you don't need any electron- | specific feature. | arithma wrote: | From a capabilities point of view, they're native. You can | access the OS api just like any other native app. | | From a developer side, it looks like developing a webapp | without the usual limitations of API access, albeit at an | extra cost of marshaling or build-complexity. | | There really is no reason to think of HTML/CSS/JS as Web only | though. | enos_feedler wrote: | With Electron, it feels more like starting from web and | making it behave like a native app, from the standpoint of | operating system app handling (task bar, notification). It | can also fill a gap left by web for exposing a filesystem and | other things that are native to some abstract computer. | | Using WKWebView for UI is different in that you are starting | from a native app and using web technologies to leverage code | sharing and programming model of the user interface (js, css, | html). | | I think for this view to make sense you have to see web apps | and native apps as fundamentally different things, which I | believe they are. | antaviana wrote: | We sell our B2B desktop software as a subscription since 2012 | (previously it was freeware). | | The key is to make it only available as a subscription (no | permanent licenses) and it does not have any cloud component. | | We managed not to fall in the trap of making two types of | licenses (suscription or permanent) to maximize early revenue | (we could affort to wait). | | We seek a marriage relationship with our users not a hook up. | | This increases the value our users extract knowing it will not | go away in the long term and the lifetime value of customers is | a lot higher. | | We know that some customers will not accept a subscription-only | desktop application but in B2B world they are fewer than it | might seem. | doteka wrote: | For a personal project I am currently using this approach and | can confirm it works great. | | I wrote just enough PyObjC to get myself a trayicon in the Mac | menu bar, which shows a popover containing a wkwebview to | localhost. Then I have all the app logic in Python, exposed to | the webview through a bottle server, and Svelte for the UI. | Highly recommended. | CameronNemo wrote: | Do you distribute Python with your application too then? How | well does that work? | dvdhnt wrote: | > Pro tip: If you decide to make a native app, don't use | Electron. Instead, use the built-in WebBrowser/WKWebView | components included in .NET and macOS. Create the UI once using | whatever web framework you want, and code the main app logic in | C#/Swift. Although the WebBrowser control kind of sucks right | now, Microsoft is planning on releasing WebBrowser2 which will | use Blink. I think they might also have it where the libraries | are shared between all apps using it, to further reduce bloat. | The old WebBrowser component can be configured to use the | latest Edge rendering though by adding in some registry keys or | adding this meta tag: > > > <meta http-equiv="x-ua-compatible" | content="ie=edge"> | | Great to know, thank you. | spenvo wrote: | Native apps can take advantage of OS APIs that are much richer | than those via the browser (or Electron) pass-through APIs. | | For example, I've made a Mac app that lets you customize your | Spaces (virtual desktops), assign names to them, jump to specific | ones, track your time spent across them, and trigger custom | events when you move to specific ones. None of this would be | possible via a web app or electron app. Project homepage | https://www.currentkey.com, app link: | https://apps.apple.com/app/apple-store/id1456226992?pt=11998... | | And as long as there is differentiated hardware between | platforms, there will be opportunities for innovative native | apps. For example, though I personally don't love the Touch Bar, | there are interesting native app projects around that like Pock: | https://github.com/pigigaldi/Pock | ahmedbaracat wrote: | Checking your app, sounds very useful :) Thanks for building it | spenvo wrote: | Enjoy! And thanks for the kind words | ahmedbaracat wrote: | I am constantly annoyed by the web apps, not only because they | consume so much resources, but because of the noticeable UI lag | that drives me crazy. For example, I have been entertaining the | idea recently of building a native Todo app for macOS because of | how slow Todoist has become in the past few years. | nikivi wrote: | I'd check https://www.2doapp.com | | It's super fast and featureful | dirtylowprofile wrote: | I mean look at Telegram. I wonder why big companies can't follow | with all them dollars. | [deleted] | JKCalhoun wrote: | No internet? No web-app. | | I suppose I am increasingly frustrated with the inability to use | my computer if it has no internet.... | alasdair_ wrote: | >No internet? No web-app. | | I've seen lots of tools that spin up a local webserver and then | use that to serve the webapp even offline. But then the | question becomes is this really a webapp if I have to install a | native server? | ZoomZoomZoom wrote: | Truly, that old quote about "computer engineering concerning | with solving problems that didn't exist before computers" | gets less funny every year. | chrismorgan wrote: | This needn't be true. You can use a service worker to make the | code load when offline, and IndexedDB to store data. | | As a trivial example, https://jakearchibald.github.io/svgomg/ | (which has no data storage requirements) works just fine | offline. | | Offline support is a banner feature of the PWA (progressive web | apps) movement. | inetknght wrote: | Service workers are an antipattern. I don't want to visit a | website and have it install something that runs in the | background. | | If you, as a website owner, want me to run an application | then you should ask for permissions. No ifs, no buts, no ors. | ken wrote: | I was excited to see how this worked, so I visited the page, | clicked around to see what it did, disconnected from my | network, and tried opening the page again in a new window. I | got the usual browser error page: "You Are Not Connected to | the Internet". So I connected to the network, loaded the | page, _then_ disconnected from my network, clicked the Demo | button, and got: "Couldn't fetch demo SVG". | | So by trial and error, I found that I need to load the page | before disconnecting, and only use the 1st of the 5 buttons | on the side (even "About" requires network connectivity). | Then it works offline. Which is pretty cool! | | But _every_ native application I have works perfectly | offline, and I don 't need to do anything special ahead of | time, or worry about which parts might not be available. | There's a big difference between "some parts may work offline | sometimes" and "entire app will definitely work offline | always". | | From decades of experience, when a "trivial" app struggles | with demoing a feature, there's little chance it'll be widely | supported among real apps. PWAs have been "any day now!" for | 10 years now. | chrismorgan wrote: | Sounds like the service worker didn't register for you. | | The logic that decides whether the browser accepts service | workers is a little bit iffy. My vague recollection is that | browsers default to something like "when you access the | site for the second time, keep the service worker". (Don't | quote me on that, and if anyone knows better, please | correct me.) "Add this to your home screen" functionality | will definitely make the service worker go. (That's mostly | for mobile browsers only at this time, though desktop | browsers will _eventually_ get it consistently available, | as we've been promised for... hmm, about 8+-2 years, I | think.) | | Privacy and blocking extensions may block service workers | from being registered, too. | | If the service worker is loaded, then it loads just fine | with no internet connection, and the demo works too. The | contribute and about links, being to GitHub, still don't | work. | | I first actually discovered this completely by accident: I | was offline, and thought "I need to shrink this SVG file, | so I'll open a tab to the SVGOMG URL and that error page | will remind me to do it when I reconnect; huh, it _loaded_ | , must have a service worker. This is _really great_." On | later reflection, I realised that it being by Jake | Archibald (a big mover in the service worker space) pretty | much guaranteed it was going to work offline. | feifan wrote: | Finda's architecture[0] is great for this discussion. | | On the one hand, you can say "look, an Electron app that's | actually fast!" | | On the other hand, you can say "wow web apps are slow; it takes | ~50x longer to render a basic list than to regex search across | tens of thousands of strings". | | From a performance perspective, the JS part of the stack | certainly isn't helping. | | 0: https://keminglabs.com/blog/building-a-fast-electron-app- | wit... | prepend wrote: | I run a native desktop app called Moneydance. Syncs files, | encrypted, to dropbox, and everything runs locally on whatever | machine runs Moneydance. | | I use this because I don't like the idea of financial account | info being stored by a third party has has no liability for | breach. And also because I have over 10 years of transactions in | the ledger and running this remote can take a long time. I'm not | even sure if there are any services that store for 10 years and | let you do text searches. | [deleted] | jrockway wrote: | Native desktop apps are great. | | The reason that people don't write them is because users aren't | on "the desktop". "The desktop" is split between OS X and | Windows, and your Windows-app-compiled-for-Mac is going to annoy | Mac users and your Mac-app-compiled-for-Windows is going to annoy | Windows users. Then you realize that most users of computing | devices actually just use their phone for everything, and your | desktop app can't run on those. Then you realize that phones are | split between Android and iOS, and there is the same problem | there -- Android users won't like your iOS UI, and iOS users | won't like your Android UI. Then there are tablets. | | Meanwhile, your web app may not be as good as native apps, but at | least you don't have to write it 6 times. | fartcannon wrote: | And therefore, beware any OS attempts to break cross platform | browser compatibility. | | Also I think you can deploy to all those things with Qt. | camccar wrote: | And pay QT like 5,000 $ a year to keep it closed source. No | thank you. Would rather write it 6 times. Or just use | electron. | Narishma wrote: | AFAIK you only have to pay if you modify Qt itself and | don't want to release those changes. | roblabla wrote: | Qt is LGPL licensed is it not? LGPL license means you can | distribute your app closed source, so long as the user can | swap out the Qt implementation. This usually just means | dynamic linking against Qt so the user can swap the DLL. | The rest of your app can be kept closed source. | | On iOS and Android the situation might be a bit more | complicated, but this discussion[0] seems to say that | dynamically linking would also work there. | | [0]: https://wiki.qt.io/Licensing-talk-about-mobile- | platforms | detaro wrote: | Qt is mostly LGPL. It's really not that hard to comply with | that on desktop, and doesn't require you opening your | source code. | api wrote: | Qt doesn't require that but even if it did writing it 6 | times is vastly more expensive. People would just rather | spend 500k on writing it 6 times than 5k on a license | because they are somehow offended at the notion of paying | for dev software or tooling. | | It's a major reason UI coding sucks. There is no incentive | for anyone to make it not suck, and the work required to | build a modern UI library and tooling is far beyond what | hobbyist or spare time coders could ever attempt. | modzu wrote: | u forgot linux. :( | jrockway wrote: | I started using Linux in the late 90s and have since lost all | expectation of someone writing an app for it. | CamperBob2 wrote: | _Windows-app-compiled-for-Mac is going to annoy Mac users_ | | And they'll let you know it, too. Unfortunately this has been | an issue since the first Macs left the assembly line in 1984. | If you point out that based on their share of the software | market they're lucky they get anything at all, the conversation | usually goes south from there. | jcelerier wrote: | > Meanwhile, your web app may not be as good as native apps, | but at least you don't have to write it 6 times. | | I must be living in a parallel world because I use a ton of | desktop apps that aren't "written 6 times" - and write a few, | including a music & other things sequencer (https://ossia.io). | | Just amongst the ones running on my desktop right now, | Strawberry (Qt), Firefox (their own toolkit), QtCreator (Qt), | Telegram Desktop (Qt), Bitwig Studio (Java), Kate (Qt), Ripcord | (Qt), all work on all desktop platforms with a single codebase. | I also often use Zim (GTK), which is also available on all | platforms, occasionnally Krita (Qt) and GIMP (GTK), and | somewhat rarely Blender. Not an HTML DOM in sight (except FF | :-)). | guggle wrote: | Bitwig has been ported to Android ? Or IOS ? | jcelerier wrote: | I don't think it makes sense to use it on even small | laptops screen to be honest so I don't really see the | point. You'd have to redo the UI and whole paradigm | entirely anyways for it to be meaningful on small devices. | But there is certainly not any obstacle to porting - from | my own experience with ossia & Qt, it is fairly easy to | make iOS and Android builds, the difficulty is in finding a | proper iOS and Android UX. | | In particular C++ code works on every machine that can | drive a screen without too much trouble - if the app is | built in C++ you can at least make the code run on the | device... just have to make something pretty out of it | afterwards. | guggle wrote: | The point is that the parent poster mentioned tablets and | phones which you don't address in your point. Of course | your examples aren't written 6 times, but they support | fewer platforms too (only desktop). | | Off-topic, but regarding Bitwig: of course it makes | perfect sense to use it on smaller devices. Not phones, | but tablets. It's even officially supported with a | specific display profile in your user interface settings | (obvious target amongst others: windows surface). This is | particularly useful for musicians on stage. | nitrogen wrote: | Ossia looks pretty sweet! I'll be checking that out for sure. | avmich wrote: | Do you count Qt apps as native, but not count web apps as | native? Why? | AsyncAwait wrote: | Qt may not 'look' native, but it has native performance, | whereas Electron really doesn't. | thawaway1837 wrote: | Isn't that more of an Electron issue? | | I mean, is anyone clamouring for VS Code, for example, to | be rewritten in native toolkits? | jcelerier wrote: | a few reasons : | | - Qt is actually the native toolkit of multiple operating | systems (Jolla for instance and KDE Plasma) - you just need | to have a Linux kernel running and it handles the rest. It | also does the effort of going to look for the user theme | for widgets to mix in with the rest of the platform, while | web apps completely disregard that. | | - Windows has at least 4 different UI toolkits now which | all render kinda differently (win32, winforms, wpf, the | upcoming winui, whatever is using Office) - only Win32 is | the native one in the original sense of the term (that is, | rendering of some stuff was originally done in-kernel for | more performance). So it does not really matter on that | platform I believe. Mac sure is more consistent, but even | then ... most of the apps I use on a mac aren't cocoa apps. | | - The useful distinction for me (more than native and non- | native) is, if you handle a mouse event, how many layers of | deciphering and translation has it to go through, and are | these layers in native code (eg. compiled to asm). As it | reliably means that user interaction will have much less | latency than if you have to go through interpreted code, | GC, ... | | Of course you can make Qt look deliberately non-native if | you want, but by default it tries its best - see https://co | de.woboq.org/qt5/qtbase/src/plugins/platforms/coco... and | code such as https://code.woboq.org/qt5/qtbase/src/plugins/ | platforms/wind... | ninjakeyboard wrote: | I still can't believe bitwig is java. I'm a bitwig user. It | even runs on linux. | hawaiianbrah wrote: | Wasn't that Java's original selling point, it runs anywhere | (there's a JVM)? | ubercow13 wrote: | Only part of it will be Java, probably the UI logic layer | IvanK_net wrote: | I think he did not mean "written 6 times", but more like | Compiled 6 times, with 6 different sets of parameters, and | having to be tested on 6 different devices. | PaulDavisThe1st wrote: | Because you _NEVER_ have to do that with browsers, right? | theshetty wrote: | Many desktop apps these days seems to be built on Electron, a | JS framework for building desktop-class apps. | | https://www.electronjs.org/ | ebj73 wrote: | I think this has changed. People used to be very particular | about how their apps looked on different native platforms, like | you say. But I don't think it's like that anymore. People are | more agnostic now, when it comes to how user interfaces look, | because they've seen it all. Especially on the web, where | there's really no rules, and where each new site and web app | looks different. I believe this also carries over to native | apps, and I think there's much more leeway now, for a user | interface to look different from the native style, as long as | it adheres to any of the general well established abstract | principles for how user interface elements ought to behave. | thrower123 wrote: | Targeting Windows alone gets you 90% of the desktop market. 95% | if you make it run reasonably in Wine. This argument is often | used, but it's an excuse. | | Anything that you need to run on a desktop can't be used | effectively on a touch screen anyway, so phones and tablets | don't really count for serious software. (Writing this comment | is stretching the bounds of what I can reasonably do on an | IPhone). | tpush wrote: | Concerning the desktop, I honestly don't see Windows users | caring much about non-native UIs. Windows apps to this day are | a hodgepodge of custom UIs. From driver utilities to everyday | programs, there's little an average Windows user would identify | as a "Windows UI". And even if, deviations are commonplace and | accepted. | | Linux of course doesn't have any standard toolkit, just two | dominant ones. There's no real expectation of "looking native" | here, either. | | Which leaves macOS. And even there, the amount of users really | caring about native UIs are a (loud and very present online) | minority. | | So really, on the Desktop, the only ones holding up true cross- | platform UIs are a subset of Mac users. | ahmedfromtunis wrote: | During my days of Windows-exclusive computing, I wondered | what people meant by native UIs, and why do they care about | them. My wondering stopped when I discovered Mac OS and, to a | lesser extent, Ubuntu (especially in the Unity days). | Windows, with its lack of visual consistency, looked like a | hot mess compared to the aforementioned platforms. | | And now that I think about it, would this made it easier, | even by an infinitesimal amount, for malware to fool users, | as small deviations in UI would fail to stand out? | pessimizer wrote: | > And now that I think about it, would this made it easier, | even by an infinitesimal amount, for malware to fool users, | as small deviations in UI would fail to stand out? | | I don't think that's how fraud works in actuality; | malicious actors will pay _more_ attention to UI | consistency than non-malicious actors (who are just trying | to write a useful program and not trying to sucker anyone), | inverting that signal. | nitrogen wrote: | I don't know, I've read that e.g. spam will not focus on | grammatical accuracy because they want to exclude anyone | who pays attention to details. Also most fake Windows UIs | from malicious websites I used to see weren't exact | matches of the native UI. | atombender wrote: | I don't know exactly what time period you're referring to, | but back when Java was attempting to take over the desktop | UI world with Swing, it was painfully obvious when an app | wasn't native on Windows. Eclipse was the first Java app I | used that actually felt native, thanks to its use of native | widgets (through a library called SWT) instead of Swing. | crazygringo wrote: | After using Photopea (web) as a virtually full replacement for | Photoshop (desktop), I'm starting to think that these days, all | _interfaces and business logic_ should be web-first. JavaScript | is fast, other languages can compile to it or WebAssembly, and | HTML+CSS is a lingua franca. Obviously PWA 's are required, | designed to run offline. | | Where brute-force performance is a #1 concern I think it | diverges. For things like Photoshop filters or rendering, | WebAssembly _may_ still be fine (it depends). But for real-time | processing that needs timing guarantees or more direct access to | hardware (games, DSP, etc.) the code has to be native running in | dedicated threads. Still, it would be nice if those operated | essentially as native browser plug-ins that still interfaced with | a browser environment, rather than a totally separate executable. | | I'm seriously ready to let my web browser just be the GUI to my | operating system. I want my file manager and terminal and system | preferences just to be tabs next to my Gmail and Docs. | heyoni wrote: | Speed in relative terms means that JavaScript in the browser is | not fast. The language runs on top of just about as many | abstraction layers as possible and I do not envy this world you | describe. I wish we'd move away from it. | crazygringo wrote: | But it's fast _enough_. JIT compilation means algorithms run | decently fast, and when it deals with the DOM it 's fast | _enough_ for everyday interface tasks. | | Nobody's saying it's elegant. But it's cross-platform and | it's a standard that lots of people know. Wishing we move | away from it seems like a lost battle at this point -- at | least unless we somehow invent a brand-new computing paradigm | that replaces browsers, the way browsers have replaced apps | in many cases. But I can't even imagine what that might ever | be. | heyoni wrote: | It's not though. Not even close. And I know this partially | a matter of taste but I have one of the fastest computers | you can buy and I can't even participate in text chats | without input lag and delays in interaction. It's not a | good user experience for me at least but that's ok, we'll | keep stacking more cpu power until it's all in the cloud | anyways. | crazygringo wrote: | That just sounds like server latency to me or some kind | of bad programming like relying on polling. | | Obviously if you build a chat client in the browser and | communicate between windows then it's instantaneous. | Faster than human perception. | | Certainly doesn't seem to be a CPU issue to me. I mean, | we run _videochat_ in the browser which works fine. | Obviously text chat can be instant. | heyoni wrote: | I'm talking about the native slack app. I used to use the | irc gateway and now go back and forth between desktop and | unofficial gateways. I use keyboard shortcuts to navigate | between chat windows and nothing about it is | instantaneous...even when there's nothing but text. Same | thing applies to discord, and less so with WhatsApp and | signal. Messages on the other hand is silky smooth, and | terminal irc couldn't get any faster. | jfkebwjsbx wrote: | You run _hardware accelerated_ video, or in some cases | SIMD hand-tuned native codecs. | | That is in the opposite side of where the abstraction | that the web provides is. | 40four wrote: | I've always been on the fence about this. I can see both sides, | and don't have a strong opinion either way. But answering is | there still a _place_ for native? I think yes for sure! I guess | it comes down to if it is really important to your philosophy as | a developer, or your type of app could really benefit from native | capabilities. | | A good example of a recent app that chose to leverage native | platforms is Table Plus. They are developing native apps on Mac, | Windows, and Linux. I respect the effort/skill and dedication | required to pull this off! https://tableplus.com/ | signaru wrote: | Modern browsers these days are powerful things... just a | curiousity, are there non native browsers? | alasdair_ wrote: | >Modern browsers these days are powerful things... just a | curiousity, are there non native browsers? | | Sort of. There are browsers written in things like Java | (HotJava was an old one that was basically a demo app) and so I | guess anything written in a VM-language could technically be | considered non-native. | nodelessness wrote: | What's a non-native browser? | mrkramer wrote: | Any browser that is not running on a host machine then for | example on Virtual Machine. | [deleted] | mongol wrote: | Perhaps Lynx? | ilrwbwrkhv wrote: | Every single app that I use, I try and make sure it is native. I | shun electron apps at all cost. It's because people who put in | effort to use the native APIs put in a lot more effort in the app | in general based on my anecdotal evidence. It is also more | performant and smaller in size, things that I cherish. It also | pays homage to limits and striving to come up with new ways of | overcoming them, which hackers would have to do in the past. I | don't think not worrying about memory, CPU, etc are not healthy | in the long run. Slack desktop app is almost 1 gig in size. That | is crazy to me, no matter the "memory is cheap" mantra. | airstrike wrote: | Bonus points if it includes offline documentation. As nice as | it is to have "updated" online docs, the reality to me seems to | be defined more by broken links than by actual up-to-date | documentation. | egypturnash wrote: | _Slack desktop app is almost 1 gig in size._ | | On a whim I just checked how big the copy of Adium still | lingering in my Mac is: 60 megs. | | And Ripcord (a native discord/slack client) is a mere 40. | DaiPlusPlus wrote: | And Winamp is 4MB (after removing the stock plugins that I | don't need, like modern skins and the long-broken media | library internet lookup stuff). | | How big is Spotify now? | jleahy wrote: | Spotify is 273MB (on Linux at least), 70MB for the binary | and 137MB for Chrome, plus some other bits and bobs. | $ pacman -Qi spotify Name : spotify | Version : 1:1.1.10.546-4 Description : A | proprietary music streaming service Architecture : | x86_64 ... Installed Size : 272.79 MiB | | So at least it's smaller than Slack. | Harrrr wrote: | I have a noob question, but how do proprietary apps (IE: | Slack) make it onto the AUR without having an official | binary? | detaro wrote: | Both Slack and Spotify do provide Linux versions, even if | not/less supported officially. | Harrrr wrote: | Thanks! I hadn't tried Arch yet, but I just saw the | pkgbuild script on the site (didn't know it was there) | and it makes since now :) | kmarc wrote: | There are many PKGBUILDs on AUR that cactually download | rpm / deb packages and unpack the binaries and deps from | it. | dialamac wrote: | There's nothing to really block much on the aur. There | are some guidelines in naming and no duplicates, no | maliciousness etc that are enforced, but that's it. But | anyone can upload a build script (PKGBUILD) for anything. | | If you want to see how it's done search the package name | and AUR and you can see the build script right on the | website. | Harrrr wrote: | TIL! Thank you :) | [deleted] | hootbootscoot wrote: | OTOH, if you are using Slack, you probably deserve it :P | | "The emperor wears no clothes" and all... paying for threaded | messaging, hmmm that's up there with To-Do MVC and Hello | World in complexity... well, ok it's a bit higher. Not to | mention their billing system lol... | lytedev wrote: | ooh I'll have to check out ripcord! | thewebcount wrote: | I use it daily. It's OK. It's better than having a full | electron app/browser running, but it's fairly incomplete. | (For example, in Slack I can't find a way to set my | status.) I also have to reauthenticate every Monday morning | which means launching Slack in a web browser to grab my | credentials. It's a pain. | ryukafalz wrote: | I agree, in part because of performance, but also in part | because I value being able to bootstrap from source as much as | possible. There are only a few projects seriously working on | this, one being GNU Guix: https://guix.gnu.org/ | | The trouble with Electron apps though (and most Node apps) is | the sheer number of dependencies. It's just infeasible to | package them for a distro if you care about their dependencies | being packaged as well - at least, not without the entire | process being automated. | ttoinou wrote: | 1 gig for Slack ? I count < 300 MB on my Windows C:\Users\\[MY | USERNAME]\AppData\Local\slack counting app-4.5.0 and packages | folder | | And currently taking < 300 MB RAM | developerdylan wrote: | 185MB on mac. | BubRoss wrote: | It is true that there is a a correlation between lower level | programming and better programming in general. You probably | won't see someone writing asm but creating crazy O^2 algorithms | that run on every frame with memory allocations that run in the | inner loop. | | At the same time a native win32 program can pack significant | functionality into a 20KB exe. Put these together and you have | a program where everything is instant, all the time on any | computer. The original uTorrent was just over 100KB and | installed then ran in an instant. | | These two refinements together are such a massive difference | from any electron program that it melts my brain when people | say that it isn't a problem to have a chat program feel like | using windows 95 on a 386. | | People say talk about needing cross platform programs, but | something like fltk has everything most people will need and | also runs instantly, while adding only a few hundred kilobytes | to an executable. | ghettoimp wrote: | I strongly disagree with the idea that lower level is better. | | Yes, lower-level languages allow for programs with good | performance, small executables, and so forth. There are many | domains where they are clearly the way to go. | | But higher-level languages allow for better safety, | tremendous productivity, portability, exploration, and | flexibility. | | If you keep your data in an SQL database and you can easily | query and update it in any number of ways that you didn't | initially realize you wanted. If you instead keep it in hand- | crafted C structs, you can probably provide awesome | performance. for whatever you originally thought you needed. | Once your needs go outside of that box, you'll have to spend | significant development effort. | | The correct choice depends almost entirely on the domain. | hootbootscoot wrote: | How about "being aware of what your abstraction layers | cost, and being palpably aware of every needless contortion | you create" | | know what everything does. call if from up on high? fine, | but only if you literally can trace that high level call | down to the machine code it emits :D C compiler suites can | do that no problem "gcc -S mycode.c" | | For an appropriate dose of humility, so that you know that | I'm not elevating myself here, but pointing out reality, | check out GCC or LLVM source code. | | Something like Lua or Berkeley DB can be defined inside | your program in a matter of a few hundred lines of included | library code, but what does it DO? | | Bringing SQL and a database on board is rather odd for a | desktop app, wouldn't you say? Configuration should be flat | files, ideally, or managed via the apps gui, in which case | an embedded database like Berkeley DB is usually more | relevant. Your mention of SQL smacks of "all things are | nails, always use hammers", to me at least. | | Have you worked with the actual computer itself in any | capacity? I mean ASM, C, C++, etc, but essentially being | aware of what an ABI is, what types actually are (memory | shape patterns so we can define physical memory in terms of | our data structures) Javascript is not computer | programming, but rather programming the browser, or it's | disembodied transplanted javascript engine. the animal is | completely different from physical memory and actual | instructions. | | Computers essentially manipulate memory structures. The | further away from this you get, the more likely that your | abstractions will be leaky, not fit what computers are | actually DOING with your data, and this results in | beautiful script driving janky machine code. | | Seriously, while we all like to pretend that everyone is | equally special, let's recall that someone is a VBscript | for Word expert, and that this is basically a virtual | machine that itself is just defined inside someone elses | program. Technological stacks are defined in terms of semi- | arbitrary made-up things other people made-up and that you | just need to know how to use. | com2kid wrote: | Sqlite is inanely well tested, incredibly lightweight, | and will be more reliable than the vast vast majority of | flat file configuration systems. | BubRoss wrote: | You are arguing against a point I didn't make. I'm not | trying to rehash nonsense language arguments. I'm saying | that many times the easy electron route is also correlated | with programming that gives poor performance even outside | of electron functions. | usrusr wrote: | Not sure that I entirely agree there: I could easily imagine | someone writing too close to the metal to stick to list | iteration where a hash would be better and so on, unless it's | prohibitively slower, whereas someone slightly higher would | freely choose whatever they feel appropriate for the | situation. They might often guess wrong and take a structure | that is overkill for the typical dataset but the penalty for | that will be negligible compared to the one paid for using a | badly scaling structure on way too much data. | dkarl wrote: | > You probably won't see someone writing asm but creating | crazy O^2 algorithms | | I watched a lecture by Bjarne Stroustrup that he gave to | undergraduate CS majors at Texas A&M where he coded a | solution to a problem using linear scans and then a "better" | solution using better algorithms with better big O | performance. | | Then he did something interesting. He did a test on a tiny | data set to demonstrate that the solution with linear scans | was faster, and he asked the audience to guess at what data | size the more efficient algorithms would start to beat the | linear scan. After the audience members threw out a wide | range of guesses he confessed that he didn't know. He had | tried to test it that afternoon, but the linear scans | outperformed the "better" algorithms on any data set that he | could allocate memory for on his laptop. | | IIRC he finished by telling them that professionals often do | performance optimization the opposite of how the books | present it. Using an algorithm with optimal big-O scaling | isn't the optimized solution. It's the safe answer that you | start with if you aren't bothering to optimize. When you need | better performance, you evaluate your algorithms using real | data and real machines and qualify your evaluations based on | the characteristics (size, etc.) of the data. | SllX wrote: | Agreed. If you have a CPU from 2012 onwards, 16GB of RAM and an | SSD, that's a respectable hardware setup. It might not be the | fastest piece of kit on the planet, but I don't see any reason | why it couldn't last another 3 to 5 years without feeling slow. | | Electron apps invariably make such kit feel slower than it | actually is. You can get good performance out of even older | hardware if you treat it well and load it with good software | that respects the hardware. | dx87 wrote: | Yep, the new Steam library being a bloated web app is what | forced me to install more RAM. I normally don't close out of | applications when I'm not using them, so I was always | hovering around ~6-7 of my 8 gigs of RAM in use. Then they | update the library to the new bloated version, and my | computer starts freezing because the library memory footprint | is so much larger that my computer was having to use over a | gig of swap space. | karatestomp wrote: | I have a rig powerful enough to run a lot of last-gen games | at 4K with high quality settings, and a lot of current-gen | ones at mid to high settings and 1080p. The fucking | redesigned Steam library lags, _none_ of the animations | (why does it need animations?!) are even close to smooth, | and there 's massive delay on every input. I've never once | encountered a move toward webtech, or toward heavier and | "appier" JS use in something that's already webtech, and | gone "oh good, this works much better now, I'm so glad they | did that." | Groxx wrote: | And somehow it's still _dramatically_ better than the | Epic Games launcher. | | I don't know what these companies are doing. Clearly | they're not paying attention though. This is not merely | _low-hanging_ fruit that 's going ignored, it's | _watermelons_. | toomuchtodo wrote: | I type this from a 2014 MacBook Air with 8GB of ram, still | going strong, no upgrades except a battery replacement. | Everything is still as snappy as the first day I got it. | | No electron apps! | seventh-chord wrote: | The "<resource> is cheap" mantra also really only makes sense | if you are writing server code, where you yourself pay for all | the memory your code will ever use. If you deploy code to a | large number of users it makes little sense. If a million users | start your app daily, and your app has a 5 second load time and | uses 300mb of ram, you are wasting over 50 days of user time, | and hogging close to 300 terabytes of ram. | hobofan wrote: | So you are telling me that I can easily exchange development | time which I would have to pay for end-user resources, which | I would not have to pay? Sounds like a great deal. | dialamac wrote: | In a fair society it should be taxed as an externality. | There is a real environmental cost associated with software | bloat. | pkalinowski wrote: | People pay with electricity, uncomfortable temperature | and fan noise, wasting time working on slow apps. | | Apparently, they trade off still worth it, as many | electron apps are popular despite these issues. Many | times there is electron app or nothing. | p_l wrote: | Your last sentence hits the nail - many users don't have | a choice in selecting the application, and due to | industry fads can't expect to have a better option. | | I can make a great chat system that uses fast native | client, but it won't change the fact that Corporation A | paid for a slack license and won't switch to mine. | hobofan wrote: | Then I hope we would also tax the bad UX of the competing | 20-year old Frankenstein applications, which lead to | slower business processes (= more resources used as | well). | CJefferson wrote: | But, I am traiding my time for my user's CPU and RAM, and | evidence suggests many users are willing to pay the CPU and | RAM to get more apps with more features. | bobblywobbles wrote: | I admire your words here. | | I am on the other side, building electron apps, I appreciate | the flexibility and ease because I would rather iterate on | ideas then learn three different OS-hooks. | | I do agree that memory usage is too high on these types of apps | and we as developers can be lax about performance. | smabie wrote: | When why not just use gtk or qt and call it a day? Electron | is unnecessary. | joshbaptiste wrote: | Mainly due to them being both more tightly integrated to | C++/Python than JS/TS for building desktop apps. | smabie wrote: | Yeah, but, honest question, why would you want to use JS | if you didn't have to? It's like, the worst language | possible. | mingabunga wrote: | I agree too, and your average user is not going to care about | the fact you've used Electron, or even know. It's a big win | for development. | thewebcount wrote: | I disagree. I mean they may literally not know that your | app uses Electron, but they'll certainly have the feeling | of, "Oh, that janky app that doesn't quite work correctly | and makes my system slow." | throw7 wrote: | Well, I don't have a epic games account. Does that count? | davinci26 wrote: | Controversial opinion: Yes, native desktop apps are the future. | | Msft is pushing on react-native-windows and macOS has project | catalyst. React-native is making cross-platforms native apps | viable. | | Apps are way more immersive than the browser and it allows the | developer to give a gamification experience. | Hackbraten wrote: | What do you mean by "gamification experience?" | bhauer wrote: | I prefer well-designed desktop applications to web applications | for most things that don't naturally involve the web: | | * Email clients (I use Thunderbird) | | * Office suites | | * Music and media players | | * Maps | | * Information managers (e.g., password managers) | | * Development tools | | * Personal productivity tools (e.g., to-do lists) | | * Games | | As Windows starts on-boarding their unified Electron model (I | can't recall what they have named this), I suspect we'll see more | lightweight Electron desktop apps. But for the record, I like | purpose built, old-fashioned desktop applications. I prefer | traditional desktop applications because: | | * Traditional applications economize on display real-estate in | ways that modern web apps rarely do. The traditional desktop | application uses compact controls, very modest spacing, and high | information density. While I have multiple monitors, I don't like | the idea of wasting an entire monitor for one application at a | time. | | * Standard user interface elements. Although sadly falling out of | favor, many desktop applications retain traditional proven high- | productivity user interface elements such as drop-down menus, | context menus, hotkeys, and other shortcuts. | | * Depth of configuration. Traditional desktop apps tended to | avoid the whittling of functionality and customization found in | mobile and web apps. Many can be customized extensively to adapt | to the tastes and needs of the user. | | Bottom-line: Yes, for some users and use-cases, it still makes | sense to make desktop apps. It may be a "long-tail" target at | this point, but there's still a market. | kick wrote: | Thunderbird isn't a native app, for the record. It's a web | application similar to an Electron application, but with extra | steps. | monocasa wrote: | Eh. XUL isn't really a web technology the same way as | Electron. | kick wrote: | It's not XUL anymore, actually, as far as I know. That's | why it ripped out support for XUL addons. | monocasa wrote: | Firefox has been ripping out xul, but Thunderbird still | appears to support it. | kick wrote: | Only if you're using a ridiculously outdated copy: | | changed | | Add-on support: Add-ons are only supported if add-on | authors have adapted them | | changed | | Dictionary support: Only WebExtension dictionaries are | supported now. Both addons.mozilla.org and | addons.thunderbird.net now provide WebExtension | dictionaries. | | changed | | Theme support: Only WebExtension themes are supported | now. Both addons.mozilla.org and addons.thunderbird.net | now provide WebExtension themes. | | https://www.thunderbird.net/en- | US/thunderbird/68.0/releaseno... | monocasa wrote: | Literally here's a doc explaining how XUL has changed as | of Thunderbird 68, the most recent version, released | about a month and a half ago. Yes, some elements have | been removed, but others have been modified and still | exist. | | https://developer.thunderbird.net/add- | ons/updating/tb68/chan... | | And that's in the add-on documentation, not even just | internal development docs. | | Also, describing information changed in the most recent | stable release, a month and a half ago, hardly qualifies | any older as "ridiculously outdated ". | WilliamEdward wrote: | Email doesn't naturally involve the web? What? | rpeden wrote: | Email over ARPANET and the internet predates the web by a | couple of decades. | | The way we use email hasn't really changed that much since | the 70s. | yliu wrote: | Ray Tomlinson's design for email came in the 70s. RFC 788 | (SMTP) was published in 1981. | | Email predates the Web, and, imo, has been made much worse by | all the Web-adjacent features shoved into it. | PNWChris wrote: | I believe they're referring to the web as port 80/443 http(s) | traffic. It's the old World Wide Web vs internet distinction, | if you will. | | Email really is just a protocol for message sending, and it | lives on it's own port with its own server. If you have an | email client and access to an email server | (POP/SMTP/however), you can use email over the internet but | without the "web". | | Basically, the web email client ought not be the only email | client. | WilliamEdward wrote: | It was the ambiguity of the word 'web' that tripped me up. | You still need a network of computers for email to be | useful. | PNWChris wrote: | Totally fair! Frankly, I only know the distinction from a | high school computers teacher who was adamant about the | distinction. | | I guess the easiest way to get the name is to see the | "Web" as a "web" of hyper text documents, where | hyperlinks act as the strands in the web (graph edges, if | you will). | | Honestly, like you say, it's all built on top of a | computer network (yet another web/graph). As a | consequence, the distinction never really made a ton of | sense to me, either. | | Alas, this is the common parlance, so it is what it is. | macintux wrote: | I don't think you'll find many people here who agree that | "web" is ambiguous. | Jtsummers wrote: | `Web`[0] is shorthand for `World Wide Web` which is | specifically about HTTP/HTTPS and/or the applications | built on that protocol. It is an entirely unambiguous | word in this context. | | `Internet`[1] is distinct, and that's the general purpose | network of networks that you refer to which the Web is | built on top of. | | [0] https://en.wikipedia.org/wiki/World_Wide_Web | | [1] https://en.wikipedia.org/wiki/Internet | goatlover wrote: | Nope, different protocols. You don't need web browsers for | email, and the email clients that run in web browsers are | using mail servers to send and receive. | | If the web didn't exist, which it didn't prior to 1991, email | would still work fine. There just wouldn't be any web-based | email clients. | pretendscholar wrote: | What is your maps desktop application? | [deleted] | bhauer wrote: | I just use Maps that ships with Windows. | Droobfest wrote: | This is a big part of why I still use MacOS. The mail, notes | and reminder apps are simple, easy, fast and can be used with | third party providers like Fastmail. The Windows apps are | fairly sluggish by comparison. I prefer most native MacOS apps | in general, Finder/Explorer is a big exception though. | Slartie wrote: | We're building POS applications for major retailers, and for this | kind of software, native is king and will stay for the | foreseeable future (with a few exceptions confirming the rule, of | course). These applications need tight integration with exotic | hardware, must satisfy weird fiscal requirements often written | with native applications in mind, must run rock-solid 24/7 with | daily usage and predictable response times for weeks without a | restart, must be able to provide core functionality without | interruption in offline situations while syncing up transparently | with everyone else when back online and usually run in an | appliance-like way on dedicated hardware (start with the system, | always in foreground, only major application on the system, user | should not be able to close or restart it, updates and restarts | triggered by remote support/management). | | All of this is much easier to do with native applications, | running them in a browser just adds the need for crazy kludges | and workarounds to simulate or enforce something you get for free | if running native. Also you end up with managing hardware boxes | with periphery attached and software running on them anyway, so | whether managing a native application that is a browser which | then runs the POS application or whether directly managing the | POS application does not save you any work; if anything it even | gives you an additional thing to manage, which increases | maintenance effort and potential for failure (which quickly is | catastrophic in this business, POS down today effectively means | the store can close its doors). | | Back-office applications in the same space are actually pretty | well-suited for a web application, and frequently implemented as | such today. | jitendrac wrote: | just being curious, What is the stack and does server works on | xml/json apis? Any other setup info of system will be | appreciated. | joshbaptiste wrote: | Yea but as a Point of Sale application for retailers.. you have | the luxury of running on a consistent hardware platform. | neya wrote: | I have a slightly different take - I wrote my own CMS based on | Elixir. It's a static site solution, which means it generates, | static HTML files that are then uploaded to a CDN (Eg. Netlify). | My UI is done in VueJS and my database is actually inside of my | application. I wrote a simple electron wrapper combined with | docker in the background to deliver my CMS solution to my clients | and it has worked really well for me. The reason being, I don't | first of all need to collect my clients' data and store them on a | central server, at the same time, my clients don't need to bother | finding a hosting provider to maintain the site. They can just | run this thing off their desktop and publish and be done with it. | What's nice is, if they need updates and new features, they got | to pay, which supports me and my work as well. | | In fact, the whole project started out as writing a replacement | for Wordpress from scratch. At least 6 of my clients' websites | got hacked and one of them had a million visits a month. Simply | because of stale plugins (it's easier to accumulate them than you | think). So, long story short, I absolutely believe there is a | place for desktop apps even in 2020. | | BTW, I plan to open source my CMS soon :) | | (and I do write about my journey here - https://medium.com/build- | ideas) | ComputerGuru wrote: | See, everyone likes to complain about electron but when I did a | market study asking "would you pay for a full-featured native | Slack app that was lightweight and designed with functionality in | mind" the answer I got was mainly "yeah but no." As best as I can | figure, it was mainly feeling they were entitled to it for free | as it's what Slack _should_ have developed, so they were not | about to pay to correct a mistake they're "not responsible for" | never mind that they're the ones paying the price for it. | | (I wrote a fully native iMessage client for Windows 10 [0] and | enjoyed it enough to consider building a product around the code, | minus the iMessage component.) | | [0]: https://neosmart.net/blog/2018/imessage-for-windows/ | mintplant wrote: | I paid for Ripcord. | | https://cancel.fm/ripcord/ | osrec wrote: | There is a need for native apps, however that need is shrinking | and, in my opinion, will continue to do so. I also happen to | think that's a good thing. | | The issue is that developing for a particular OS is, generally, | more difficult than developing for the web. The app delivery | mechanism is also more convoluted (for native apps) than simply | entering a web address in the browser. The web also seems to have | more ubiquitous standards that abstract away the differences | between OSs - you can, with a high degree of certainty, ensure | that your app is usable by 99% of computer users, given the | _current_ software they have on their device - with native apps, | there is no such guarantee, especially if you 're relying on | shared libraries. | | Browsers are also becoming more feature rich. This has had a | negative impact on their memory consumption, but given it's 2020, | some may retort "memory is cheap". And while some browsers | (Chrome, looking especially at you) do a very poor job of memory | management, I believe the competitive nature of the browser | market will force a reawakening soon, where a lot of the | inefficiencies in memory management will have to be eradicated | (or vendors risk losing market share). Think back to 2014/15 when | Node.js was really becoming established - the PHP team suddenly | felt a need to re-optimise their engine for PHP7 (and with | dramatic results)... Point is, only after ~20 years at the top | did something spur PHP's team on enough to do something about | their inefficiencies. | | Finally, I can see a future where the line between web and native | apps is even more blurred. WebAssembly is the first step, however | things could get even more elaborate. Perhaps we could end up | with the ability to start docker-like containers from within web | apps (given the right permissions, of course) to spin up servers | for audio/video/image processing on the client itself, and | interact with them via a web page. If we get to this point, | native apps would feel even more obsolete. | | I know your question was only about the current state, but I felt | the need to talk about the future to highlight the marked | difference in the rate of innovation in the web ecosystem (fast) | vs the native ecosystem (slower). It would not surprise me if the | web ecosystem ends up winning in the end. If I was building an | app today, and it only requires features I can deliver via the | browser, I would almost certainly go the web app route. | | Now, if I was building a _video processing_ app today, I 'd | almost certainly go native, but in a couple of years, my answer | may be very different. | Schnitz wrote: | I will use a native desktop app over the other alternatives every | time given the chance. | oscar_franco13 wrote: | Yes! at some point I got tired of web stuff, I try to use small | native apps for the day to day stuff, cramming everything into | the browser completely kills the benefits of the desktop | environment. | | I created a small macOS native app, it is a menu bar app for | monitoring CI pipelines https://tempomat.dev, something like this | is not possible on the web because everything is running on the | same browser but native features are so much better | me551ah wrote: | The whole idea of web first has actually made things worse. Let's | compare web apps to native desktop apps, shall we? | | Memory Usage | | A few years ago while trying to figure out why I was running out | of RAM, I stumbled upon chrome's task manager. Gmail was using up | 700MB of RAM and all I had open was the Inbox. No fancy search | box or Compose, the Inbox was taking up 700MB of RAM to display | lines of text in a Tabular format. I've been a heavy user of | Email clients and if you pick any of the native clients | (Thunderbird, Outlook, Apple Mail) and open a bunch of searches | and compose windows the memory usage will still stay below 100MB. | | I used mIRC a few decades ago to connect to multiple chat | servers, run my own bots, serve files over DCC and run scripts | all while staying under 20MB of Ram. These days to send a text | message over Slack I need over 1GB of RAM. Even basic apps with | all of their trackers, external javascript scripts and doms take | up 100s of MBs in memory. And the most common solution to running | out of memory is to close chrome windows. | | Battery/CPU Usage | | DOM is slow. Updating layout and repainting is even slow. | Javascript being a dynamic language is slow. Web apps are | anything but simple these days and since they have to work under | the limitations of all the slow components, the CPU ends up | making up for it. Chrome is almost always present in my Macbook's | 'Using significant energy' tab. On the other hand, I rarely if | ever see native apps in the battery bar unless I'm doing | something which should actually consume a lot of CPU cycles like | running multiple synths in Ableton or Compiling. When apps are | built for mobile, battery usage is a major area to optimize on. | But nobody even gives it a thought for web apps | | 60 FPS | | Mobile apps run on 60fps, Native desktop apps run at 60fps, Games | run ( or at least are designed to) run at 60fps. Instagram on | chrome starts at 2-3 fps and usually hovers around 30fps. My | laptop which is supposed to be more powerful than my mobile phone | is only able to churn out half the frame rate even though they | are both running at the same resolution! Web apps are not buttery | smooth and can be jerky at times. Sure somebody can work really | hard and optimize a website to run at 60fps at all times, but it | needs a lot of effort. Mobile apps run at 60fps out of the box | without much effort. Mobile and native apps use the GPU a lot | more efficiently. Since they have a lot more information about | which controls are being used, they can recycle items a lot | better and do a much better job at hardware acceleration via the | GPU. Not to mention that you have access to raw graphics APIs in | case you want to push UI performance even further. | | Development Environment You can build desktop apps in a plethora | of languages and even for mobile apps you have many cross- | platform frameworks. But building for the web(and electron) | forces you to HTML/Javascript(and derivates). Javascript is a | dynamic prototypical language that was not designed for the scale | of apps that are being built in it today. It has no type safety, | memory leaks are common and it's slow due to its dynamic nature. | While there have been many efforts to improve performance like | V8s JIT, it still lags behind a lot of major languages. WASM | seems promising, but it's still has a long way to go. And it's | laughable how weak the browser platform itself is. SQLite is | available on raspberry pi, embeddable systems, mobile platforms | and just about every other platform on the planet. You can store | data, run complex relational queries and do more with so less. | But it is not available on the most widely used platform on the | planet, the browser. | | With the rise of electron apps, big and bulky web apps have | started making their way onto the Desktop. There are some who are | even trying to get the same apps on mobile via PWAs. While the | web has the advantage of easy accessibility, IMO we have | sacrificed too much in terms of user experience for that one | convenience. If you built an app with the same UI and | functionality in a native language and as a web app, the native | app will run circles around it. | squarefoot wrote: | Web last, badly, and only when needed. Having tons of resources | at disposal shouldn't be an excuse to add layers of unnecessary | stuff where native code always perform better. | alasdair_ wrote: | There are still a lot of fields where performance matters. This | is especially true with apps that need low latency, like most | games. Something like Stadia may be fine for a casual gamer but | it still feels laggy to many, especially those used to gaming at | 144Hz+ with almost zero input lag and gsync. | | VR is another area where native desktop is still superior. | | Then there is anything that is dealing with a lot of local data | and device drivers. Video editing for example. | | Development tools that work in a browser are getting better but | native (or even just Java-based like IntelliJ stuff) still seems | superior for now. | | Stuff that doesn't use TCP, like network analysis tools, either | need to be done as a desktop app or need to run a local server to | point the webapp used to control them to. | | I guess what I'm getting at is that if you need low-level access | to the local device or if you care a lot about things like | rendering performance then native is still the way to go. | SubiculumCode wrote: | Also from a security standpoint, it seems to me that having all | apps work in the browser is creating single points of failure. | gundmc wrote: | Can you elaborate on the security considerations of this? It | seems like you could just as easily say it's more secure | because it reduces the attack surface to a well-tested | program with mature sandboxing. | paulgb wrote: | It goes both ways, the sandboxing means that the app has | less access to the OS, but the flip side is that the open | web has more access to the app (CSRF, XSS, evil extensions, | etc.) | | Coincidentally, I just published a blog post that touches | on this from both sides: https://paulbutler.org/2020/the- | webassembly-app-gap/ | desc wrote: | You mean like the OS is supposed to be? | jfkebwjsbx wrote: | Stadia's games do not run in a browser. | | The client you use to interact with the stream is a web page, | yes, but the actual game running in their servers is a native | Linux application. | mantas wrote: | Place? Absolutely. Developers will to provide quality apps and | customers will to pay for them? Not so much... | nikivi wrote: | Browsers have one huge problem and that is they override | important hotkey space (like cmd+w, cmd+f for searching etc). So | native apps will always provide a better experience. | rbinv wrote: | Google Docs actually hijacks CMD+F. | kroltan wrote: | And nowadays even websites that don't hijack the shortcut | itself are non-"find in page"-able, due to the trick of | disposing unused/out-of-view components (which is actually I | suspect what Docs is doing, too, but they made their own find | so people wouldn't get stuck) | zabil wrote: | Not yet for music production. DAW's, software synthesisers, drum | machines, latency matters here. | slyzmud wrote: | Funny that the other day I discovered bandlab. It's not | professional but for my hobby usage it's the best I've found | dantheta wrote: | Same here - I was a Cakewalk user back in the 90s, and | decided on a whim to find out if it was still around. | alkonaut wrote: | I imagine DAWs like many others could be a very small native | audio processing binary with a gui on top that can be whatever | it wants. Some are already Java UIs over C++ backend (e.g | Bitwig). Should be possible to do an electron or web frontend | over the C++ backend too. Replacing the processing bits will be | hard though. Driver interfaces aren't exactly the strong point | of web dev. | m4r35n357 wrote: | Web last, please! | mdrachuk wrote: | It does feel better to use a native app. Marketing as a "premium" | product could work. | elorant wrote: | For me the simplest example is e-mail. I need an e-mail client on | my PC where I can browse all my e-mails even when offline. | Nothing that runs inside the browser could match the speed and | efficiency of a native app. | nikofeyn wrote: | it's crazy that we've reached the time where this is a question. | it just feels like web browsers are just worse operating systems | but that's somehow where everyone thinks things should be. | | i generally hate using web-apps. the usability and performance | just isn't there, and the web was not built for this use case. | even now, it's a terrible experience. | | for industrial engineering, scientific, creative jobs and more, | almost everything you use aside from confluence is a desktop | application. visual studio, visual studio code (line is blurred, | but it's still a desktop app), solidworks, opera, other modeling | software, xilinx vivado, matlab, visio, simulink, houdini, | touchdesigner, unreal engine, logic, pro tools, studio one, VSTs, | office suite, control applications, perforce visual tools, git | gui clients, custom internal tools, etc. | | all the real work gets done in desktop apps and yet people keep | saying desktop apps are a thing of the past. | | i truly don't understand what people's end game with web browsers | and applications are. | red_admiral wrote: | On Office 365 (desktop version), sometimes when you click a | dropdown like the "different kinds of bullet lists" the whole | application freezes for a couple of seconds while it builds the | menu content or something. This didn't happen with earlier | versions, if memory serves me right. I'm not sure if this is web | tech or some other kind of new framework under the hood, but it | makes me sad that with the speeds and cores we have on modern | processors old-fashioned things like word processing have got | slower than they used to be. | | Native Applications in the platform's toolkit (not some cross- | platform abstraction on top) will always squeeze a little bit | more performance and usability out of the corners. ___________________________________________________________________ (page generated 2020-05-17 23:00 UTC)