Live data from Hacker News

Going native

blog.getpostman.com

101–110 of 245 posts

Re: Going native

#101

Earlier quoted context omitted.

Yup. Luckily, there is Paw[0] if you want a native experience on the mac. [0]: https://paw.cloud

Paw looks like a really nice, slick, professional tool. I've been using Postman for years and really like it, and am used to it. I've yet to see a 'use case' where Paw can do something that Postman cannot, so I would appreciate it if anyone familiar with both tools can point out a value proposition for switching apps.

Take a look at Burp. It is a big giant native app that has its home in information security, but it is generally the best testing proxy I have ever seen. My customers end up having postman for various things and it is almost always my first mission to get things into Burp.

You may be turned off that it is not a pretty app (It is a Java GUI app after all). But I have used it for 9 years and found that the UX is generally very good, just not flashy. Compared to some aggravations I have had with Postman and the general lack of depth in the tooling.

Amongst information security practitioners Burp is basically the gold standard and whenever I introduce developers to it they like it.

Finally, there is mitmproxy, which I have been using more and more. Between these two tools Postman feels like a fiddly bastard.

Finally, I took a look through the Paw docs. I watched some videos. Based on how they were demoing things I think it would drive me crazy. The flow in Burp or mitmproxy is so much faster.

Step 1.) Proxy a bunch of traffic.

Step 2.) Go find the requests you liked and send them to repeater and or save them.

Step 3.) Modify the requests into nice test cases.

Step 4.) Replay the requests

Repeat. You end up with a nice test suite. My test suites are often better than what the developers have available with the added bonus of finding security vulnerabilities :)

Other benefits, these tools are designed to do sneaky things, like transparent proxying. I can transparently proxy some or all app traffic, even SSLd apps (e.g. production builds). These tools like Postman and Paw, these basic HTTP clients, are like crude hammers when we need a finely tuned and weighted hammer of an exacting specification to do repeatable assessment work.

Anyway, my perspective isn't /quite/ right for software developers. My tool requirements are based on needing to transparently proxy virtually any sort of HTTP(S) client. Development shops often want a tool that lets them build repeatable client requests that are easy to work with to test their backends without screwing around with the full app (mobile app, SPA, whatever it is). So I trade off some niceness in terms of built in organization (though, honestly, not a lot if you use Burp correctly), for ultimate flexibility and security testing features that you would not need as much.

That said, I can't help but look down my nose a little at all of these new tools like Postman and Paw. (Especially given how much Paw costs). But I know dev shops that get along fine with Postman and it is a nice and easy enough tool.

I didn't see a single feature in Paw I don't use all the time in Burp. The one feature that Burp doesn't have is making client request code. The best part is it being, basically automatic after having exercised the client.

Bah it is late, and I am just throwing a bunch of stuff at ya. Anyway, give the Burp trial a whirl and see what you think.

Re: Going native

#102
post #81
post #42

Earlier quoted context omitted.

Gold 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 c…

> 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=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 compar…

Another extreme electron example: https://github.com/manosim/gitify/releases

48.8MB when packed. All it provides is a status bar notification window.

Re: Going native

#103
post #88

Postman founder here HN folks. Great to see the post get featured on the homepage! Lots of discussion about what is exactly native. I have posted some replies but some other points about the choice of words: 1. Postman has 3 million users and about 1.5 million MAUs. When we tell people we have a native app, they get it. People go to our apps page, download the installer and see everything exactly as they expect thing…

> When we tell people we have a native app, they get it. Are people here not... people? You seem to describe a desktop app. Bring able to install it has nothing to do with being native or not.

I could have used the term "users" to say the same thing. And everyone here might not be a user. And our existing users perceive the existing Chrome app as a "desktop" apps too. Postman existing as in-browser extension, then a Chrome "packaged"/desktop app and finally in it's current form. They are also "installed" in a particular way. I'd still prefer the term native over desktop apps.

Re: Going native

#104
post #29

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.

I'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-da... Things that we build for the app are also available for our web components instantly. React makes this even easier.

I 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.

Re: Going native

#105
post #62

Earlier quoted context omitted.

I am not sure why something would be inherently superior if it is using pre-built OS components. Any software can have memory leaks, buggy behavior, weird input issues etc. I'd rather look at the user experience and qualify something as better/worse after using it. Postman had issues in the beginning when we started porting things over but these were quickly solved and in fact gave us much more power over the experie…

Even if it's not superior, this is still false advertising. But, embedding the app in a browser always adds bloat - there's no way around that. It may not be obvious in case of huge apps, but there are many examples of trivial things shipped with electron - which make a simple single-dialog box app a 300MB monster.

I believe there is some inherent bias here with regards to existing experiences and as technology improves those biases will go away.

I am not talking about simple single-dialog box based apps either or advocating every single piece of software should be written as an Electron based app.

Re: Going native

#106
post #72
post #62

Earlier quoted context omitted.

I am not sure why something would be inherently superior if it is using pre-built OS components. Any software can have memory leaks, buggy behavior, weird input issues etc. I'd rather look at the user experience and qualify something as better/worse after using it. Postman had issues in the beginning when we started porting things over but these were quickly solved and in fact gave us much more power over the experie…

The point isn't entirely that "true" native apps are superior, the point is really that WebView wrappers are no more a "native" application than a standard HTML web application, because that's exactly what they are and pretending otherwise is deceptive. As for applications built with OS components being inherently better, there are a few reasons for me: - They are guaranteed to fit in with OS styling - They near-univ…

I would add consistent widget behavior to the list of benefits. More often than not, controls in browser hybrids and web apps fail to take all kinds of little subtleties (some of which are platform specific) into account, dragging down user experience by way of death by a thousand cuts.

This can be compensated for obviously, but I'd argue that the time and energy tied up addressing these finer points (which can be quite significant) would be better spent on what your product actually does and the user experience surrounding that.

Re: Going native

#107
post #105

Earlier quoted context omitted.

Even if it's not superior, this is still false advertising. But, embedding the app in a browser always adds bloat - there's no way around that. It may not be obvious in case of huge apps, but there are many examples of trivial things shipped with electron - which make a simple single-dialog box app a 300MB monster.

I believe there is some inherent bias here with regards to existing experiences and as technology improves those biases will go away. I am not talking about simple single-dialog box based apps either or advocating every single piece of software should be written as an Electron based app.

As I wrote - it may not be obvious in case of huge apps. But the bloat is still there. It may be a good idea if it saves time for the dev team.

But as you said, there's​ still a lot of tech improvement to be done for the experience. And some things you're just not going to get around. Objects are heavier than their equivalents in native code. You still have a whole copy of the browser runtime to ship. These things will not go away. You're going to waste resources compared to an actual native app.

Re: Going native

#108
post #72

Earlier quoted context omitted.

The point isn't entirely that "true" native apps are superior, the point is really that WebView wrappers are no more a "native" application than a standard HTML web application, because that's exactly what they are and pretending otherwise is deceptive. As for applications built with OS components being inherently better, there are a few reasons for me: - They are guaranteed to fit in with OS styling - They near-univ…

> - They are guaranteed to fit in with OS styling They aren't. For example, if you move your cursor to a word in macOS, and force touch, pop up will appear with word's definition from Dictionary.app. This is not a case in "native" applications that render text differently, Sublime Text is my offender, but there must be others. So "guarantee" is too strong of a word.

That was in reference to the use of OS-provided components, which by definition have the same styling as the OS.

Your point that native applications don't always have to use OS-provided components is taken though.

Re: Going native

#109
post #85
post #72

Earlier quoted context omitted.

The point isn't entirely that "true" native apps are superior, the point is really that WebView wrappers are no more a "native" application than a standard HTML web application, because that's exactly what they are and pretending otherwise is deceptive. As for applications built with OS components being inherently better, there are a few reasons for me: - They are guaranteed to fit in with OS styling - They near-univ…

I wouldn't say it is pretending if the end user experience is the same. Users don't use things because they are developed in a particular language. - HTML based components can be made to fit into OS styling quite readily and by keymapping shortcuts you can get the exact functionality as native OS controls. Most HTML components don't have keyboard shortcuts mapped properly as the browser takes over. This is not the ca…

> Users don't use things because they are developed in a particular language.

If the users in question were the standard near tech-illiterate masses, you might have a case but we're talking about a developer tool in this specific instance. I'd also suggest that you go take a look at the reviews on the Android app store for most banking apps, which are typically webviews. They're nearly always terrible and often due to the webview itself. Users don't distinguish between native and webview wrappers because they don't understand the common factor in the terrible experiences they're subjected to.

> HTML based components can be made to fit into OS styling quite readily

Yes, this is technically possible but I'm yet to see someone actually do it.

> and by keymapping shortcuts you can get the exact functionality as native OS controls.

To do this properly requires the developer to implement keymapping properly, which again, is possible but I very very rarely see it done.

> They can perform equally well.

No, they cannot. HTML components are always burdened by the overhead of a browser. At absolute best, you can come somewhat close. Futher, performance includes not just UI latency but the CPU and memory impact on the machine, which again, can never match true native apps due to the overhead of the browser, which is insane.

> Optimizations can be made in JS code as well.

Unless something extreme has happened in JS runtimes recently, you can't optimize your code to use SIMD instructions and parallelize, you have to leave that to the compiler. In native code this is not the case.

> The advantages of having a cross platform application developed in 1/3rd the time especially for new applications are huge (faster time to market, larger number of people for validation)

I'm not entirely sure the premise here is accurate. I suspect that an experienced Qt developer could produce a basic native application in roughly the same time as an Electron developer, but with a fraction of the overhead.

Post reply on HN