Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> for privacy, performance and security.

I understand the privacy and security aspects. But I am wondering - how can DNS over HTTPS be more performant in the case of curl commands? A browser could probably persist the connection to the resolver and issue several requests together, but with a single curl command surely there's the overhead of initiating the first DNS resolve, the HTTPS connection, the second DNS resolve. There must be some delay compared to regular DNS.

Side note - I just learned that performant is not a recognized word (https://english.stackexchange.com/questions/38945/what-is-wr...)



> Side note - I just learned that performant is not a recognized word (https://english.stackexchange.com/questions/38945/what-is-wr...)

I don't personally use the word since there are many alternatives, but its use is now definitely widespread and consistently understood. There's really no argument against the fact that it has entered the English lexicon.


I don't use it either, and I agree with the poster on that stackexchange link about it sounding like manager/marketing-speak, but when I see it, it makes me pause for a second to think about what really means (perhaps that's the point) --- I had this exchange with a coworker not long ago:

CW: ...and this way it'll be more performant too.

Me: Performant? As in faster?

CW: Yes.

Me (to self): Then why didn't you just say it'll be faster?

IMHO it obfuscates meaning and should be avoided; the surrounding discussion/vagueness about what it means (I don't think it means efficient, but only faster --- as in, a high-performance car) shows that too.


Performant to me implies performing better against the relevant metrics. So faster, maybe, but perhaps smaller and more energy efficient too. If the context of the metrics is already understood then it seems quite a cromulent word.


I had just explained the etomology of cromulent to my wife a few days ago - awesome to have an example of its usage in the wild. My hat is off to you, sir.


What's cromulent mean? I looked it up at dictionary.com and couldn't find anything. Or are you making up more words to point out the irony? :)


It's from the Simpsons and that is pretty much exactly the context that it first appeared in! Here's an excerpt from the "Made-up words" article on the simpsons.wikia.com:

When schoolteacher Edna Krabappel hears the Springfield town motto "A noble spirit embiggens the smallest man," she comments she'd never heard of the word embiggens before moving to Springfield. Miss Hoover replies, "I don't know why; it's a perfectly cromulent word".




I wonder if you can use "cromulent" to guess the age of a person. Older people would not have watched the Simpsons in the early 90s. Younger people very likely missed this obscure episode. I would guess an age of the user to be 30-35.


I may be an outlier but as a seventeen year old, I'd already heard of 'cromulent' (from the Simpsons, but through Reddit).


The episode was first aired in Feb ‘96, at which point I was 20, and in college. At this point the show was still quite popular with my friend group. I am currently 42. You might need to increase your upper bound on the age range.


You're not far out, but I must have missed that episode originally and only watched it in the last few years. I possibly also learnt it from Reddit first.


My editor, in his mid 60s, uses cromulent quite regularly.


Others have filled in the detail of origin and meaning. Yes, my intent was to use another neologism to add an ironic tone. Language is always changing.


To be fair, "faster" in the context of software development can also frequently refer to the time it takes to implement.


Can anyone give examples of cases where “performant” would be better than “efficient”?

To my mind, the difference is that “performant” delivers results quickly, whereas “efficient” uses little energy. A performant solution might be efficient, but not necessarily, and vice versa. Does anyone else share this understanding or am I living in a linguistic bubble?

Not sure about Swedish (Daniel is Swedish), but in Finnish, we have the word “suorituskykyinen”, meaning “efficient” or “able to perform”. I can see how Finnish writers might want to use “performant” to replace this commonly used word. Perhaps there's a similar history for Swedish speakers? I sure have seen “performant” a lot in academic texts written by Finnish and Swedish speakers in the last 20 years.


    efficiency = performance / resources
Efficient has connotations of economy, of optimal use of resources but with a hint of parsimony - another way to get efficiency is to reduce the denominator.

Performant emphasises the numerator much more.


Yep. A top fuel dragster goes from 0-60 mph (~0-100 kmh) in about 0.2 seconds, but it will use about 20 gallons (~75 liters) of fuel going 1,000 ft (~300 m). Very high performance. Very low efficiency.


*increase the denominator.

nitpick aside, agreed


The denominator is "resources," which here means "resource cost." Increasing resource cost reduces efficiency. You want to either increase the numerator ("performance") or decrease the denominator ("resources").


Reducing the denominator is the other way to increase efficiency. The denominator is the number under the line, the divisor.


"My mining algorithm, which uses a lot more CPU and memory, is more performant." The key being that performant is often associated w/ speed (i.e. higher performing) whereas efficient ambiguously can refer to many things you have improved on.


Yep, that's how I understand the word “performant” as well. A car that accelerates from 0-100 kph in under 3 seconds would be ”performant”. A car is “efficient” if it burns less than 4 liters of gasoline per 100 kilometers.


'performs more [efficiently|accuratley]' would be proper english (not that i speak it well.... :D).

webster says:

"performant"

The word you've entered isn't in the dictionary. Click on a spelling suggestion below or try again using the search bar above.

    preformant performance performing performances performable preformants perforate conformant perform formant performed informant performer perforata performers performs preformat


The algorithm doesn't perform more efficiently or accurately, though - it's less efficient (it uses more resources) and it should be the same accuracy (or we're comparing apples with oranges).


haha yah i know, it would perform terrible. imagine running a big dns server at ISP level, and having to perform 9 million tls handshakes a second. have fun with that lol. this was just an example of how to avoid the 'performant' word.


If we’re getting pedantic about linguistics, wouldn’t that be, “it would perform terribly” instead of “it would perform terrible”?


In my understanding, performance is based on the value of a measure improving in one way or another.

Efficiency is relative to the amount of resources required to achieve a similar result. To use the car example above, a car that can do 100km/h at 4L/100km is more efficient than another can than do 100km/h at 8L/100km.

The point of absolute efficiency is referred to as optimum. Essentially, top performance possible with the minimum of resources possible.


I think the word that was being grasped for is 'faster'.

It suffers in that doesn't sound very technical.


GPU can perform more operations than CPU, but GPU is slower than CPU, not faster.


Yes, throughput vs latency is a very important distinction. An airplane is always faster then a train, but if what you are measuring is throughput, a train can be more performant. It depends on the context, but that's fine. There is no such thing as a made-up word if the word has a meaning, and is regularly used by a group of people.


So is the GPU more or less 'performant?'

That's right - the CPU is faster at completing the job, though the GPU executes instructions more quickly.


Great discussion. I've used the word without thinking twice. Now I'll choose between efficient, faster, or performant depending on context.


It is a recognized word, at least by the Cambridge [0], Oxford [1], and Wiktionary [2] dictionaries.

[0] https://dictionary.cambridge.org/dictionary/english/performa...

[1] https://en.oxforddictionaries.com/definition/performant

[2] https://en.wiktionary.org/wiki/performant


If you recognize it, it's a recognized word.

Dictionaries are descriptive, not prescriptive.


"Performant" is a word in German. It translates to exact what "perfomant" would mean in english if it were an english word. The funny thing is, google translate, translates the german word "performant" to the english word "performant". https://translate.google.com/?hl=de#de/en/per%C2%ADfor%C2%AD...


We have this word "performant" in Romanian, too, it means something that performs well; it's not limited to IT parlance.

I just checked and the French have it too, I can see how it has slowly made its way into English, through immigration and especially the Internet.

A live language is always changing, resistance is futile. :)


It is not actually translating anything since performant is not considered a real word in English, although I commonly see it used in the tech world.


> performant is not considered a real word in English, although I commonly see it used...

This is close to being a contradiction in terms. The purpose of words is to communicate, and if a word is being successfully used to communicate -- which clearly it is -- what exactly does it mean to say that isn't "considered a real word"?

Also, "Considered" by whom? The dictionary? Dictionaries are descriptivist -- they record usage, they don't prescribe it [0]. If it isn't in the dictionary yet, that's only because the usage hasn't been used widely and/or for long enough that it meets the inclusion criteria [1].

(As it happens, "performant" is at the stage where it is starting to pass those thresholds, and is now in the OED [2])

[0] http://englishplus.com/news/news1100.htm

[1] http://public.oed.com/about/frequently-asked-questions/#qual...

[2] https://en.oxforddictionaries.com/definition/performant


> (As it happens, "performant" is at the stage where it is starting to pass those thresholds, and is now in the OED [2])

Strictly speaking, I don't believe your [2] is the OED. It's "Oxford Living Dictionaries", which I assume tries to be more current/dynamic, but might be regarded as less authoritative.

Interestingly, the word "performant" is in the OED itself, with the earliest citation being from 1809 -- but it is listed only as a noun, meaning "A person who performs a duty, ceremony, etc., a performer", not the adjectival usage under discussion here.

http://www.oed.com/view/Entry/262085?redirectedFrom=performa... (requires login)


Would you prefer the dictionary from Cambridge University Press as a source?

https://dictionary.cambridge.org/dictionary/english/performa...


If your ISP is intercepting DNS requests and sending them to a slow or broken server, DNS over HTTPS ensures this won't happen. (Yes, they could block the traffic entirely, or slow it down for fun, but they can no longer intercept and redirect it.)


Ideally the browser and curl only use a local resolver, on your machine or router, which in turn can use a steadily alive or even multiple alive connections to the resolver.


It has zero performance advantages

If you had to go the TLS route and wanted better perf, then it'd make more sense to build a new, dead simple, framing protocol that actually specified working pipelining and eliminated HOL blocking by allowing out-of-order responses.

They're just using HTTP because HTTP(S) defaults to port 443 and it'll go through more firewalls, and I guess their thinking here is to (just add more complexity) and move to HTTP/2


cURL supports it. See https://ec.haxx.se/usingcurl-persist.html

If your question is how to reuse the connection pool for, say, 1000 DNS queries from one machine, curl already uses a connection pool. Next, to use fewer TCP connections and get faster response, my first proposal is HTTP/2 which supports TCP multiplexing such that multiple requests can be issued over a single TCP connection. Every response is return asynchronously, we can achieve nonblocking.

cURL also supports HTTP/2.

Speaking of word: it seems author of curl project prefers “curl” over “cURL”? Worth asking.


> Every response is return asynchronously, we can achieve nonblocking.

same goes for UDP which DNS runs over normally.

Like the original commenter, I fail to see how stacking DNS over HTTP over TLS over TCP over IP is going to be faster than running DNS over UDP over IP.

Also, you still need to resolve the address of your DNS-over-HTTP server, which you'd probably still do over traditional DNS-over-UDP.

This feels like doing nothing but adding complexity for zero gain.


Zero gain except going from easy eavesdropping, blocking, censoring, etc. to effectively unblockable, private and secure? Ok.

Also you would probably need to put in the IP of the DNS server manually, exactly like you have to with DNS now.


I would love to know how widely used UDP over TLS is in the wild.


Not quite the same, but QUIC is close to this description description, so it might be higher than initially expected?

From 2016: https://www.bizety.com/2016/01/26/half-of-chrome-to-google-t...


From what I understand the "cURL" format of the word is popular mostly with users of the PHP bindings. "curl" is what the project uses, but I'm not sure they really care what other people refer to it as :)


I think it depends on whether you are referring to the project or the executable [1]: "cURL is the name of the project."

[1] https://curl.haxx.se/docs/faq.html#What_is_cURL




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: