7 ms·
These 'native' wrapped apps on desktop and mobile are always less in some way than a real native app. I know there is a cost benefit argument, but I personally
by johnflan 10y ago
These 'native' wrapped apps on desktop and mobile are always less in some way than a real native app. I know there is a cost benefit argument, but I personally avoid them.
- CountSessine 10y agoI don't think that that's always true. I think the gold-standard for this is Slack (at least on OSX). Spotify is nice too. Both seem to combine the very best of web dev (nice presentation and service integration) while cancelling out its worst problems (like accidental browser navigation).
- josephg 10y agoGold standard? Slack is 380 megs in size, and when its open it somehow seems to constantly use about 5% CPU usage (which probably knocks out a few hours of battery life, since the CPU can't properly sleep). Every so often I catch it sitting on 100% cpu usage (this is all while in the background). Restarting slack fixes it. I know that programmer time is more important than CPU time, but its my CPU and my battery. I can only imagine explaining to someone from 15 years ago what software looks like now. "Oh yeah in the future we all use IRC, except its a proprietary IRC implementation and supports animated gifs. The client is 380 megs" "Calm down - I know thats bigger than your hard drive. No its not 3d or anything - it just has nice colors." I don't understand why people hate on apple for not making laptops with 32 gigs of ram, but they have no problem using apps like slack which waste resources like it was water. Thankfully slack seems to be much more lean when run inside a safari browser tab.
- kuschku 10y ago> Slack is 380 MB For comparison: The entire Java 8 (Windows, 64-bit, offline) JVM plus all libraries (which, thanks Java 9, will no longer be necessary) is 62MB: http://javadl.oracle.com/webapps/download/AutoDL?BundleId=218833_e9e7ea248e2c4826b92b3f075a80e441 http://javadl.oracle.com/webapps/download/AutoDL?BundleId=21... Why do people complain that Java is sooo wasteful again? You can literally bundle the entire JVM multiple times with every single Java program, and still use 6 times less space! SIX. For comparison, the new Minecraft Launcher uses Electron. The entire JVM + every Minecraft version ever, plus assets, plus all mobile editions uses less space than it. In a usual minecraft installation, the actual game uses on average between 7 and 15% of the required space, the remaining 85 to 93% being used by the launcher (specifically, the bundled Chrome runtime) Where did our society go wrong?
- viraptor 10y agoAnother extreme electron example: https://github.com/manosim/gitify/releases https://github.com/manosim/gitify/releases 48.8MB when packed. All it provides is a status bar notification window.
- kartickv 10y agoGreat point, but unless a significant fraction of people refuse to install the app because it's too bloated, it doesn't matter at the end of the day — I would still choose Electron over Cocoa.
- deleted 10y ago[deleted]
- ashark 10y agoJava was and is wasteful. Some of us remember something very similar to this Electron mess happening in the Distant Past when Java fans tried to convince everyone that UI slowness and general system-wide performance issues when Java programs were running were just in our heads, and to just get over it because Java was the Way of the Future™. Of course now computers are so fast that no-one much minds Java anymore. So we had to invent web apps and Electron to make sure desktop computing doesn't actually become pleasant. That'd simply be unacceptable.
- kuschku 10y agoI’m just wondering why the fuck we don’t simply just use Java, and get exactly the same advantages as electron provides, while still getting better performance. An argument can be made that devs might want to not care about memory allocation or anything, but Java does that just as well as JS, with a better build system, better community tools, better speeds, easier UI tools, and better dependency management.
- ashark 10y ago
- eridius 10y agoSlack is actually a perfect bad example. When they switched to Electron, the app got much shittier (at least on OS X). Many native features, like force-push on words/links, vanished, and there's a bunch of random bugs (including a really annoying one with input and smart replacements where the caret jumps around making you mistype things).
- johnflan 10y agoI would have to disagree, it may be the best of breed but thats not saying much.
- dkersten 10y agoSlack is a severe resource hog and sometimes hangs or just runs slow. When 90% of the time, all I want from slack is basic IRC-like rooms/messages, this is ridiculous (I don't mind it using those resources the other 10% of the time). You might think its not a problem because our machines are so powerful now, but it eats battery and occasionally I need to run a ton of stuff (eg a ton of docker containers) and having a chat application get in the way is rather annoying.
- a85 10y agoI'd argue that the HTML/CSS/JS layer is more powerful and more extensible than any native rendering layer. We are building some awesome UI components using this: http://blog.getpostman.com/2017/02/28/introducing-the-new-data-editor/ http://blog.getpostman.com/2017/02/28/introducing-the-new-da... Things that we build for the app are also available for our web components instantly. React makes this even easier.
- ttd 10y agoAny thoughts on WPF in comparison?
- johnflan 10y agoThat might be true, all UI development over the last few years has gone into the JS environment. But the responsiveness of native always wins out for me. Nice UI is not good UX
- wlib 10y agoI see you have to respond to everyone in the comments when they call out that this isn't actually native. It is true, and normally, Electron would imply _significant_ performance issues. But, considering this whole thing is a network I/O visualizer, making a truly native app would not help at all in the long run. Also, you get the benefit of a common cross-OS experience. You made the right decision.
- simion314 10y agoNot sure if you know but in native APIs like Qt you are not limited to the built in components, if you need a custom widget you usually use OOP inheritance and override some methods like paint, maybe hook into some events and you get a custom widget. If you want a fancy button(that you can't get by tweaking existing properties or using styling) you inherit the Button class and add your stuff. What I hare in Web is that there is not a reusable gridView/listView that is optimized, you always have to create your own or find one specific for the framework/library/thing you use in this project.
- Sanddancer 10y agoThings like WPF/XAML can also use an XML-style tree, and the manipulation tools that entails, for UI. However, there are a number of other things they bring to the table that quickly outstrip anything that web-based objects can provide. For example, one can define custom elements, so instead of having a bunch of <Div>s defining things and needing to define things based on ids, you can create a custom tag, like <StatusBar> that gives everything you need plus makes your app layout that much cleaner. It gets better when you start adding in the things that javascript makes hard, like concurrency and parallelism. For example, with C#, I can do something like var results = URLs.Select((t) => { Task.Run(SomeLongRunningFunction(t)); } ); to start a series of background tasks handling HTML requests. The equivalent for JavaScript involves the much more restrictive WebWorker API, and requires me to put those small worker functions in their own page/file, or use much uglier data uris which aren't universally supported. HTML/CSS/JS just fall apart once you start getting into more interesting applications.
- pducks32 10y agoI guess there is a region where it's ok. I love Postman and think it performs great. I'd make the same argument for Slack; however because I have to open 24/7 there is a big pain on the battery which Slack needs to worry more about than Postman. VSCode on the other hand I expect to be performing and run under some crazy circumstances and the non native aspect of it prevents me from using it.
- statictype 10y agoOn the other hand, there's Paw, a delightful native app in the same category that has morphed into an unusable tool that hangs every few minutes. Native experiences aren't always better.
- eridius 10y agoSomething's either wrong with your computer or you have some pathological case with your .paw file. Paw in general is pretty damn stable and fast.
- mittsh 10y agoPaw founder here. I'm very sorry to hear this. If you don't mind, I'd love to know more details on what's happening. The logs available in Paw menu > "Get Debug Info…" are very helpful. If you don't mind sending these details to support@paw.cloud, we'd be very grateful! Thx!
- loftyal 10y agoDo you have any plans for Windows or Linux? I love Paw, but would like the option of knowing I won't be left out if I decide to move away from Mac
- hishnash 10y agoSince true native (UI/UX) is core to our focus to do an window/linux we would need to do that same, currently most of our code is still in obj-c (new code is in swift) but it would be a massive task to produce a native window and a native linux app. however we do have extensive support for exporters to many formats through our open source lib (API-Flow) https://github.com/luckymarmot/API-Flow https://github.com/luckymarmot/API-Flow this converts between (paw, swagger, api-blueprint, postman etc) we realy dont want you to feel locked in with your data.
- statictype 10y agoHi- thanks for reaching out. Will send it across. Paw's a great tool but I've had problems with version 3 that have made me want to open it less often. I understand that not everyone seems to be having that issue. Will email the logs and hope you can find something.
- whostolemyhat 10y agoCould you give an example about how wrapped apps are somehow lesser than native?