On Friday, October 7, 2016 at 3:35:46 PM UTC, Gabriel Gellner wrote: 

> `atol/rtol` versus


> `abstol/reltol` versus `abs_tol/rel_tol`

For the latter "versus" at least (and other examples), this would be solved 
by style-insensitivity, as in Nimrod (or Nim) language, the only one I've 
heard that does this; not sure of status of it, maybe they dropped it with 
the name-change).

I hesitated to propose this for Julia, when I first discovered this, 
I'm/was conflicted; I thought this would break code, as it's a breaking 
change, but would in fact help(?)

This could in theory be done with a macro(?)

Style Insensitive?
"Nimrod is a style-insensitive language. This means that it is not 
case-sensitive and even underscores are ignored: type is a reserved word, 
and so is TYPE or T_Y_P_E. The idea behind this is that this allows 
programmers to use their own preferred spelling style and libraries written 
by different programmers cannot use incompatible conventions.

Please *rethink* about that or at least give us an option to disable both: case 
insensitive and also underscore ignored

[another user]:

Also a consistent style for code bases is VASTLY overrated, in fact I 
almost never had the luxury of it and yet it was never a problem."

Trivia on Nim[rod], D and upcoming(?) C++ below, I was just looking up hard 
to find above info..):

Naming Conventions 
* Type identifiers should be in PascalCase. All other identifiers should be 
in camelCase with the exception of constants which *may* use PascalCase but 
are not required to.


For constants coming from a C/C++ wrapper, ALL_UPPERCASE are allowed, but 
ugly. (Why shout CONSTANT? Constants do no harm, variables do!)


- * A fast *non-tracing* garbage collector that supports soft real-time 
systems (like games). 
- * System programming features: Ability to manage your own memory and 
access the hardware directly. Pointers to garbage collected memory are 
distinguished from pointers to manually managed memory.

* Macros can modify the abstract syntax tree at compile time.
- * Macros cannot change Nim's syntax because there is no need for it. 
Nim's syntax is flexible enough. 
- * Statements are grouped by indentation but can span multiple lines. 
Indentation must not contain tabulators so the compiler always sees the 
code the same way as you do.


*"Nim* (formerly named *Nimrod*)
Language designInfluenced by[..]
Lisp <javascript:void(0)>: Macro system, embrace the AST, homoiconicity

UFCS <https://en.wikipedia.org/wiki/UFCS>, a feature supported by Nim" [and 


"It has been proposed (as of 2016) for addition to C++ by Bjarne Stroustrup 
and Herb Sutter <https://en.wikipedia.org/wiki/Herb_Sutter>, to reduce the 
ambiguous decision between


    // All the followings are correct and equivalent
    int b = first(a);
    int c = a.first();
    int d = a.first;

Reply via email to