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?
https://github.com/nim-lang/Nim/issues/521
"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..):

http://nim-lang.org/docs/nep1.html
Naming Conventions 
<http://nim-lang.org/docs/nep1.html#introduction-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!)



http://nim-lang.org/


- * 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.

https://en.wikipedia.org/wiki/Nim_(programming_language)

*"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 
D]:


https://en.wikipedia.org/wiki/Uniform_Function_Call_Syntax


"It has been proposed (as of 2016) for addition to C++ by Bjarne Stroustrup 
<https://en.wikipedia.org/wiki/Bjarne_Stroustrup>[3] 
<https://en.wikipedia.org/w/index.php?title=Uniform_Function_Call_Syntax&action=submit#cite_note-3>
 
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