Long sentences
yarchive.net
yarchive.net
1. Don't do that
1. Since apparently we’re overthinking things, have you considered that your oversensitivity to minor perceived offenses is because you’ve never been punched?
Most of those semicolons could be replaced with a full stop or comma without losing any meaning.
"If a clod be washed away by the sea, Europe is the less, as well as if a promontory were, as well as if a manor of thy friend's or of thine own were: any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee."
Not sure how I feel about the point of the article, but this sheds no light on it - Donne's work is pretty different from modern prose. Different best practices apply.
"So if you find yourself breaking sentences apart to follow a rule that sentences should be short, you’re doing it wrong; if they can be broken apart without much trouble, they also weren’t any trouble for the reader to understand in the first place."
Sure, he could make them two separate sentences—but why waste the opportunity to signal their relatedness? Separating the two with a period represents them as equally related to other surrounding sentences. We can decode their connection still, but signaling it explicitly just makes it smoother.
I found his writing to be extremely clear, easy to follow, and enjoyable to read.
I'm not suggesting there is no use for a semicolon - for example, I like to use it as a separator for a list of clauses if one or more of the clauses contain commas - and of course this is one of those grey areas of English grammar in which the author's use is not objectively wrong. However, it overloads the sentence and makes reading more difficult without any real benefit over the simpler alternative of connecting related sentences in paragraphs.
Likewise, I'm not opposed to writing long sentences. After all, the first sentence in the previous paragraph runs 56 words. However, I am opposed to writing long sentences merely for the sake of claiming that long sentences are okay.
Brevity promotes simplicity and simple things are much easier to understand than are those that are prolix.
So writing in a style consisting primarily of short, easy-to-understand sentences is in itself a good rule of thumb when aiming to write well.
But it is only a rule of thumb, as I see it, and when it is enshrined as something more, it can do more harm than good.
The English language is a marvel of complexity and has so many rich, diverse, and colorful elements that you cheat only yourself as a writer if you fail to give full scope to such elements in choosing how to express yourself in the written word. You want to make a driving argument? By all means, use active verbs to punch along short, compact thoughts with an aggressive rhythm. Want to weave fascinating characterization? Well, then maybe relax the feel a bit and, with Dickens, unwind a string of long, flowing sentences that carry your reader along into a wonderfully imaginative series of pictures, running page after page, that hardly turn on being short, compact, and punchy - indeed, that are the very opposite. The point is not that you want to go to one extreme or the other. The point is that, as one who seeks to write well, you should avail yourself of the rich set of tools available to you without feeling bound to adhere to any form of absolute rules about how best to use them.
So, write away! Go for feel. Go for rhythm. Go for clarity. Go for what best suits your purpose.
And, oh, yes, do keep it short and simple, except when you find it doesn't suit your purpose. A rule of thumb is just that. In the end, do what gets your point across for the long-suffering reader who deserves to have it done well.
Sorry but IMO the author has failed to prove his case. The text is not easy to read, and it's hard to follow the author's thought.
So long sentences and long paragraphs definitely don't help. It's either that or I should get tested for ADHD.
Short sentences are not about simplicity, they are about accessibility. While it was not hard for me to read his text. It did not flow, and was not easy to follow. Long sentences distract the reader with their additional complexity. Instead of being able to focus on the content, the reader must decipher the meaning. Then they can engage the idea.
Making it harder to understand content is a terrible way to communicate.
When possible I write with a text editor and LaTeX, with one sentence per line. This makes it really easy to identify sentences that might possibly be too long.
Functions communicate with the outside world only via arguments and returned values. The explicit split reassures the reader that this is indeed the case, and thus every reader doesn't have to establish this fact via careful reasoning again and again.
A long function might indeed be simple, but you never know until you check carefully.
(This only applies to pure functions. Natural language sentences and side effecting procedures are messier.)
Yes, for some compilers and interpreters performance considerations will force you to write less than readable code.
In GCC at least, you can only give suggestions. The following options control the inliner:
--
max-inline-insns-single: Several parameters control the tree inliner used in gcc. This number sets the maximum number of instructions (counted in gcc's internal representation) in a single function that the tree inliner will consider for inlining. This only affects functions declared inline and methods implemented in a class declaration (C++). The default value is 300.
max-inline-insns-auto: When you use -finline-functions (included in -O3), a lot of functions that would otherwise not be considered for inlining by the compiler will be investigated. To those functions, a different (more restrictive) limit compared to functions declared inline can be applied. The default value is 300.
max-inline-insns: The tree inliner does decrease the allowable size for single functions to be inlined after we already inlined the number of instructions given here by repeated inlining. This number should be a factor of two or more larger than the single function limit. Higher numbers result in better runtime performance, but incur higher compile-time resource (CPU time, memory) requirements and result in larger binaries. Very high values are not advisable, as too large binaries may adversely affect runtime performance. The default value is 600.
max-inline-slope: After exceeding the maximum number of inlined instructions by repeated inlining, a linear function is used to decrease the allowable size for single functions. The slope of that function is the negative reciprocal of the number specified here. The default value is 32.
min-inline-insns: The repeated inlining is throttled more and more by the linear function after exceeding the limit. To avoid too much throttling, a minimum for this function is specified here to allow repeated inlining for very small functions even when a lot of repeated inlining already has been done. The default value is 130.
max-inline-insns-rtl: For languages that use the RTL inliner (this happens at a later stage than tree inlining), you can set the maximum allowable size (counted in RTL instructions) for the RTL inliner with this parameter. The default value is 600.
--
So, while the inliner is great, if performance really matters for a hot loop, and you definitely want that code to be inlined, you might end up having to do it by hand. Because otherwise, if you change something somewhere else in your program, the inliner might suddenly decide not to inline your function anymore. You could say the same thing about virtual functions: devirtualization is great but it's not guaranteed. Or loop unrolling. Or codegen. Or whatever.
I think that that article describes a reaction against a too-hasty move towards microservices, and (as someone who's not a businessperson myself!) as such it seems well advised; but I suspect that there is, among programmers at large, no too-hasty move towards 'microfunctions', and so no corresponding need to urge people to make the kind of monolithic monstrosities that novice (and even sometimes experienced) programmers are all too willing to make anyway.
This is actually compatible with DRY, because overpartitioned functionality will require more state to be pulled from function to function, resulting in repeating, long argument lists.
this style really makes you wish C/C++ had if expressions. you end up using a lot of ternary operators to compensate.
it makes the code a bit more verbose, but its worlds better than poring through a function to make sure nothing is mutated in an unexpected way.
I don't know my way around compiler internals, but this sounds a little suspect to me. It seems to me—just a tyro's opinion—that (1) work spent doing what the compiler will do anyway is probably work wasted, and (2) it is possible to get in the compiler's way even if you are trying just to do what it would do anyway, thus causing unexpected degradation.
It is a bit dated now, but Code Complete cites actual attempts to study the connections between function length and maintenance cost in real world code bases. The conclusion was that functions with a high internal complexity were maintenance hazards. Basically add up all of the if's, loops, and so on, and if that is a big number, then break it up. However long functions without internal complexity were not a maintenance hazard. This was true up to about 200 lines.
OK, a lot has changed since IBM studied maintenance costs in the 1980s. But the received wisdom today about short functions was already the received wisdom then. And the wisdom today is just as much based on opinion as it was then.
Is there any more reason why we should accept the received wisdom today than there was then?
My argument was actually mostly from a Haskell point of view, and a study there would be somewhat harder to define: you are defining functions all the time: especially in imperative code (do-block / monads) each line is actually a callback.
You could go by purely syntactical criteria, though. Culturally, even a single screenful of code is considered rather long for one definition in Haskell.
Outside anything else, it's a more pleasant way to approach the topic, and there's a ton of freedom in it. Yes, it's similar to prescribing a word count or a page count because it puts a more-easily measured test on the writing. But it's also an indicating function to help stop a writer from introducing confusion through their grammar.
Some industries have done quite a bit of research into the subject. Take, for example, the aerospace industry's Simplified Technical English[1][2]. Here, research into the readability of flight and maintenance manuals identified that shorter sentences were easier to understand for English-as-a-Second-Language speakers. A grammar was developed to reduce some of English's flexibility and make construction more predictable. This, paired with shorter sentences, dramatically increased the usability of print media for aerospace and defense applications.
Shorter or simpler sentence construction can ultimately free the writer to be more expressive and to more clearly express his or her ideas.
1: http://www.plainlanguagenetwork.org/conferences/2002/aecma/a...
I'm terribly sorry, but after scanning that several times, my parser grew weary and I found that I did not have the courage to go on.
Seventy words shorter. I would have done the rest but I expired.
"A sentence that is long can still be quite simple, if it doesn’t require the reader to remember previous parts of the sentence in order to parse the rest."
It's almost as if he's using unnecessary commas to make up for the long sentence.
https://nathanbrixius.wordpress.com/2013/10/30/the-five-long...
In general, I'd recommend to read some Proust as his style is completely against the current trend of short, direct sentences à la Hemingway, and that can be refreshing!
By the way, I started reading Proust because of Nabokov's Lectures on Literature:
http://www.amazon.com/Lectures-Literature-Vladimir-Nabokov/d...
Which I recommend wholeheartedly.
I would certainly hope that in most business or communication contexts, people aren't going to think a Proustian stream-of-consciousness rat nest is an acceptable piece of writing.
Short sentences have additional benefits for persuasive writing (particularly legal writing). It's hard to hide anything in a short, simple sentence. Using them is a way of signaling your confidence in what you're saying.
But there is another reason someone might use long sentences. They might be trying to express a complicated idea. Sometimes an idea cannot expressed in a short sentence. Usually you can break up a complex idea into a few short sentences, but that might make the reading choppy and hard to follow. A long sentence leads its reader through the connections between ideas. In contrast, separate sentences express the ideas and leave it up to the reader to figure out what the connections are between the ideas.
This leaves us with an apparent cognitive bias: if we are distrustful of long sentences, we become distrustful of complex ideas.
Given this, I wonder if modern anti-intellectualism stems from this sensible defensive mechanism.
However, it's hard to write that way, so most don't bother. If we rewrote your essay with a mixture of short and long sentences it would be stronger.
Shorter sentences can also seem less thoughtful—even childlike. That doesn't mean they are.
If you are writing for a broad audience I try not to get too complicated. These days, I usually take the final post, and just throw it up onto http://www.hemingwayapp.com/ to get a feel for how well it reads.
As an experiment I tried to get a "Very Good". Each sentence was clean, had one idea in it, but the flow of the post was stilted. It removed all passion.
However I can be too clever for my own good. Communicating ideas in the simplest terms is exceptionally important. I get too involved in story telling. The Hemmingway App enables a good compromise.
One of my favorite classes in uni was rhetoric, and one of my favorite books to this day is Farnsworth's Classical English Rhetoric. I highly suggest it as a tote around, open to a random page and read as much as you like and never be disappointed reading.
http://www.amazon.com/Farnsworths-Classical-English-Rhetoric...
> This structure which is present in every artistic genre, and has been for a long time, today tends to work as a mental structure, organizing the production and perception of products: the opposition between art and money (the "commercial") is the generating principle of most of the judgments which, in matters of theatre, cinema, painting, literature, claim to establish the frontier between what is art and what is not, between "bourgeois" art and "intellectual" art, between "traditional" art and "avant-garde" art.
(from Pierre Bourdieu, Les règles de l'art, free translation)
This is called "Bulldozer Code"
I think the meta observation is there are rules imposed on students to prevent them from developing bad habits. But these aren't hard rules in practice. Same applies to code slopping.
The point was (which the author made) that simply shortening sentences doesn't necessarily fix a problem with complexity, just like breaking up code without solving the complexity issues also doesn't necessarily fix the problem.
Congratulations for being a supercilious jerk.
Pedro comacho
The former informer of the secret police
Is still standing outside the club
Pretending to be blind
He watches the last plane to miami
Disappearing in a flaming purple sky
Now he knows
He has been left behind
For those that missed the last plane to Miami (meaning all of you), the author was bitching that the rule in programming 'functions should be short, one page, etc' is as wrong as the rule that in writing sentences should be short.It's dangerous to publicly give a lesson as we sometimes stumble during our lecture (as I probably have done in my comments on the author's essay :) ).
:)