1

Synchronous is defined as: "existing or occurring at the same time." Why then is synchronous code blocking? Shouldn't it be the other way around?

Google Definition: https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#sourceid=chrome-psyapi2&ie=UTF-8&q=define%3A%20synchronous

Matt Johnson-Pint
  • 230,703
  • 74
  • 448
  • 575
Crowbar
  • 671
  • 5
  • 7
  • Can you share the source? Looks like the reference is out of context. – thefourtheye Nov 05 '14 at 02:38
  • A better term might be "sequential", but "a–sequential"?. – RobG Nov 05 '14 at 02:40
  • More likely, it's just not a definition that applies to code. "Synchronous events around the world" is obviously a different usage than "the code ran synchronously". The code usage means that successive lines of code run one after another. The first usage means things run at the same time. – jfriend00 Nov 05 '14 at 02:40
  • 3
    This question would fit better on [english.stackexchange.com](http://english.stackexchange.com/) – Matt Johnson-Pint Nov 05 '14 at 02:50
  • @MattJohnson, I would agree with you but this is geared specifically for the programming definition of synchronous and its origin. – Crowbar Nov 05 '14 at 02:56
  • Actually, it would appear that this was asked on StackOverflow before, and then [migrated to english.se](http://english.stackexchange.com/q/102150) by a moderator. – Matt Johnson-Pint Nov 05 '14 at 03:04
  • And [here's another dup](http://stackoverflow.com/q/1596589/634824). (This one wasn't migrated.) – Matt Johnson-Pint Nov 05 '14 at 03:07

1 Answers1

2

From Worknik: https://www.wordnik.com/words/synchronous

Although the original definition of the word “synchronous” means:

from The American Heritage® Dictionary of the English Language, 4th Edition

adj. Occurring or existing at the same time. See Synonyms at contemporary.

In Computer Science it has a totally different definition:

from Wiktionary, Creative Commons Attribution/Share-Alike License

adj. Single-threaded; blocking; occurring in the same thread as other computations, thereby preventing those computations from resuming until the communication is complete.

The reason for this is also explained:

Lots of times words get perverted, too -- computer scientists who talk of “synchronous processes” have no idea what the actual definition in English of “synchronous” is -- they think it means “synchronized” -- and when they call putting millions of transistors on a tiny chip and call it Very Large Scale Integration, they're turned the phrase “large scale” on its very head.

Essentially, programmers suck at naming things. Hence we have conventions; and overgeneralizations.

Community
  • 1
  • 1
Aadit M Shah
  • 72,912
  • 30
  • 168
  • 299
  • 2
    "*Essentially, programmers suck at naming things*" yep. Or at least, they subvert the common meaning of things to give them quite different meanings. – RobG Nov 05 '14 at 02:44