Adifferent example would be generics: before C# got generics, you couldn't express the idea of "an ArrayList containing only strings" in code. (You could document it, of course, or write your own StringList type, but that's not quite the same.)
For me, it has to do with the ease at which you can express your intent. This is different in different languages, and also depends a lot on what you want to do, so this is an area where generalizations are common. It's also subjective and personal, of course.
If you wanted to print the floating-point number that has the binary pattern 0xdeadbeef, that is far easier to do in C than in Bash, for instance. Yet Bash is, compared to C, an ultra-high-level language. On the other hand, if you want to run a program and collect its output into a text file, that is so simple it's almost invisible in Bash, yet would require at least a page of code in C (assuming a POSIX environment).
In short he says: In my mind, a language construct is expressive if it enables you to write (and use) an API that can't be written (and used) without the construct. In the context of the Closures for Java proposed language extension, control abstraction APIs are the kind of thing that don't seem to be supported by the competing proposals.
Expressiveness - ability to express complex things in a compact way without having to spell out details - the opposite of wordiness (this goes down to "easier to write or understand" or compactness of expression(s) ) This definition is used by that controversial article already mentioned.
The qualifier (with reasonable effort) serves to avoid the sharp edge (and contrived stretches) of "at all" (people "proving" that "everything" can be written in language X even though it's clearly not meant for "that" - example mad "proofs" that "imperative/iterative algo can be written in XSLT")
With these definitions we can reason how expressiveness and expressivity can be antagonists. So called "higher"/declarative languages usually have high expressiveness (compact expressions denote functionality of hundreds, thousands lines of code) but substantially decreased expressivity. They achieve compactness of expression by restricting the domain (things they can work with, ideas one can express in them).
Strictly functional languages have to do huge acrobatics to express very simple things (like counting) if they can at all. When they can't they are incomplete and relegated to a rather narrow, specialized, application.
One thing we didn't touch on is performance. Language that can't give fast result gets relegated to academic, sketching, experimental use. Would you call a language "more expressive" if the same algo runs 100 times slower in it? You'd call it a waste of time :-)
Python is good example since it mixes constructs with high expressivity and expressiveness (it's not by chance that it's so bellowed) - as long as they are not mixed that is :-) You'll see articles (including here on StackOverflow) comparing how using very different constructs for the same problem can result in huge perf differences. But it's the fact that you do have a choice (high expressivity) that gives you reasonable trust that you will find (measure) the fastest way - eventually :-)
Quite recent debate: Gremlin vs Cypher (on its way to be enshrined as GQL standard). Cypher is praised for being simple, easier to learn, declarative. But it can't express algos/tactics (in graph crawling) that Gremlin can even in theory and is 100-200 times slower - by admission of the team/company that's writing it and popularizing.
High expressivity of Gremlin lets you use declarative and imperative "way" as needed and write whole crawler as "engine" (shall we say FSA :-) When I was writing a system with very complex graph crawling, crawlers were in strict C++ (modern - lambdas, higher order templates, packs) based on the style/concepts of Gremlin (you have to think in terms of a crawler being active, 'live' and how far (in the future :-) he can look if you want any chance of being fast).
Gremlin vs Cypher situation is very interesting exactly because they are almost diametric opposites - Cypher all expressiveness (all the way down to simple,easy,declarative), Gremlin all expressivity. If you are writing missile navigation (or algorithmic trading) which one would you chose? How would you know where to look if you call both "expressive" ? :-)
As members of a residential living and learning community, Cornellians engaging in expressive activity are expected to conduct themselves responsibly and in accordance with this Policy. All Cornellians, individually and collectively, are responsible for respecting the rights of other community members and their sponsored guests under this Policy. Infringement upon the rights of others to speak and to be heard, or interference with the peaceful and lawful use and enjoyment of university premises, facilities, and programs, is never acceptable.
When engaging in expressive activity, Cornellians should remember that they speak for themselves only and are responsible for their own speech. Cornellians may not attribute their speech to the university, unless they are university spokespersons acting within the scope of their duties. Nor may the speech of sponsored guests be attributed to the university. Accordingly, the occurrence of an event or activity at the university should not be interpreted to mean that the university endorses, supports, refutes or disagrees with its subject matter or content.
As a non-profit institution, Cornell is prohibited by federal tax law from engaging in political campaign activity. Accordingly, Cornellians may not use Cornell resources to engage in expressive activities that qualify as political campaign activity. For more information, see Policy 4.18, Political Campaign Activity.
This Policy will be administered in a content-neutral manner and without regard to the message or viewpoint being expressed. Cornellians, however, who engage in activity that violates this Policy will be referred to the appropriate office for disciplinary action. Sponsored guests who engage in activity that violates this Policy may be subject to criminal or civil penalties.
The use of university resources for expressive activities is restricted to Cornellians and to sponsored university guests. No other individuals or groups may use university resources for expressive activity of any kind. Units that are responsible for administering university resources retain discretion over the responsible use of those resources, including their use for expressive activity by Cornellians or by sponsored university guests, consistent with this Policy and other university policies.
To become sponsored university guests for purposes of this Policy, external groups or individuals must be formally sponsored by one of the following: (a) a college or school, academic department, or administrative unit of the university; (b) a registered university-sponsored student organization and its affiliated office/department/unit; (c) a registered independent student organization; or (d) a Cornell shared governance body (e.g., Faculty Senate, the assemblies). No other Cornell individuals or groups may sponsor university guests for expressive activities.
University sponsors are responsible for overseeing their sponsored guests and activities while on university owned or controlled property and must have a representative present during the actual event or activity. As such, the university sponsor is responsible for ensuring compliance with this Policy and other university policies. University sponsors are also responsible for obtaining appropriate approvals for use of university resources for expressive activities from the unit that administers the resource.
This Policy, however, is not intended to supersede or interfere with existing space registration procedures for the management of non-public curricular programing (e.g., classrooms, labs, research activity) overseen by academic units such as scheduling courses or course-related activities; nor does this Policy proscribe guidelines for faculty management of non-public curricular programming.
This Policy outlines expectations for hosting events consistent with public health, public safety, and business operational considerations for the following types of campus expressive activities: speakers, artistic performances, and programs; outdoor events; indoor events; postering, signs, and chalking; installations; and outdoor camping. Event organizers are responsible for ensuring their events comply with this Policy and other university policies.
In rare cases, Cornell, in its sole discretion, may disallow or prohibit activities based on the foregoing factors. These factors will be applied in a content-neutral manner. Advance registration enables the university to appropriately address health and safety concerns and to help organizers plan for a successful event. Failure to register may impact the successful implementation of the event. For more information on scheduling events, see the campus specific links below.
Members of the university community may work with an appropriate university body (see Section II above) to seek formal sponsorship of external speakers, artists and performers, and to organize events using university resources, pursuant to the requirements of this Policy and the approval of the unit that administers the resource.
Organizers should plan the time, place, and conduct of demonstrations wisely to avoid disrupting classrooms, libraries, auditoriums, laboratories, living units, administrative offices, and special event venues. Organizers are also responsible for complying with all public health and safety requirements.
On the Ithaca Campus, public address systems or amplified sound may be used only on Ho Plaza and in front of Day Hall between 12:00 p.m. and 1:00 p.m. without prior approval. The use of a public address system or amplified sound, at any other time or location, is not permitted without prior written approval. See Section IV of this Policy to register the event and seek approval.
3a8082e126