Closed shelby3 closed 7 years ago
I would like if possible to capture the notion of decentralization, because type-classes are delayed binding of implementation, interface, and data. The degrees-of-freedom are increased. This also enables greater modularity as well as solving Wadler's famous Expression Problem.
Pivot Unbounded Slack Unchained Float Orthogonal Multitype Furcate Pliant Antifragile Resilient Flexuous Shapeless Amorphous Morph Subvert Warp Oust Sunder Cleave Bits Iota Scintilla Mingle Diffuse Dispersed Entropy Disjoint Shard
My favorites of those above are:
Flexuous Float Mingle Multitype Pivot Shapeless Subvert Warp
And I still like Halo.
A good test is to Google each term. If you get a lot of hits for the same thing (like I am sure Halo will pick up a lot about the game), then its probably not a good name.
@shelby3 wrote:
My favorites of those above are:
Flexuous Float Mingle Multitype Pivot Shapeless Subvert Warp
@keean wrote:
A good test is to Google each term. If you get a lot of hits for the same thing (like I am sure Halo will pick up a lot about the game), then its probably not a good name.
Then ‘Float’ is eliminated because it returns a lot of hits for the CSS property and “Float language” returns the data type in other languages such as C. And ‘Mingle’ is eliminated because returns many variants of dating sites, so it is the wrong connotation. In Pokémon and unrelated in JBOSS there are features named ‘Multitype’, but this appears to be incidental to those projects and thus not a strong disqualification. So the remaining choices from that list are:
Flexuous Multitype Pivot Shapeless Subvert Warp
If we were using the following criteria, then ‘Warp’ would be best:
Edit: also Traitscript can be mispronounced “traits crypt”. One syllable names are best.
First impression is that ‘Flexuous’ is likely to connote limberness in 2D or 3D space, not type system adaptability. Perhaps ‘Adaptacious’ is better, but isn't a word, it is too long (difficult) to spell, and ‘-cious’ causes the mind to think of luscious, ludicrous, etc. Although perhaps one can make the same argument about Apple’s Swift or Google’s Go languages, except that faster development has often been a theme in programming tools, e.g. Borland Turbo C from the 1980s. I've seen “Flex Canvas” used to describe a CSS3 proposal and also I believe it may be a widget name in the Android GUI, both being 2D space flexibility concepts. In short, flexibility is not the same meaning as adaptability.
‘Multitype’ is very descriptive and that may also be its weakness. If want to name a car, I don't name it ‘Car’. Also it sounds more like a feature than an entire programming language, i.e. a one-hit-wonder aka language with only one feature. Also many typing paradigms have multiple types, so it might not be quite clear what is the advance.
I like ‘Pivot’ for being so darn unique and for the concept and vernacular “to pivot” away from a current situation or strategy into a superior one. For me that is a powerful connotation. However, ‘pivot’ also has other meanings which imply a centralized hub from which rotation is constrained.
I got the idea for the name ‘Shapeless’ from Miles Sabin’s Scala project. It is a really geek-cool abstract name, as is Miles and his project. It really fits since with type-classes, the data types don’t have any hardcoded interface (behavior) shape and this is adding delay at the function application use-site.
Well ‘Subvert’ pumps antifreeze through my humor-seeking rebellious aorta and superior vena cava. And it is very roughly a spoonerism on ‘subversion’ thus in my mind also on ‘subclassing’. So we subvert the subversioning of subclassing. I like the names (including ‘Pivot’, ‘Shapeless’, and ‘Warp’) that imply we are creating a revolution in s/w development.
Finally ‘Warp’ is subversive twist on Apple’s Swift. And I suspect our type-classes will be better than modeling it as design pattern with their protocols.
Which if any do you like @keean?
(I love open source, because I get to do a brain dump to the public)
I tend to like obscure literary references. I like the concept of shapeless, but the word itself seems to lack something. Warp reminds me of star trek, subvert seems too subversive :-) Pivot seems a bit too much like 'turning'.
I tend to like obscure literary references.
Such as amorphous? Or do you mean some term minted in literature, such Kafkaesque?
I like the concept of shapeless, but the word itself seems to lack something.
Yeah I think I was also favoring Shapeless. It is the choice which has the least negative or incorrect associations.
That it lacks something is part of the shock value IMO. Shock value can be very valuable in marketing.
But if the lack of something is not shocking but rather underwhelming, then that is probably not good.
IMO, Shapeless is shocking, not underwhelming. I think it would intrigue the curiosity of geeks.
Do you get a different feeling from it? Maybe the "less" is having a negative impression, such as language isn't complete?
subvert seems too subversive :-)
It is riskier, but if we really think we are pulling off a revolutionary step forward...
From H. P. Lovecraft you have the nameless, shapeless watcher, and other abhorrent things :-)
I quite like 'vert' ... I need some sleep now...
I quite like 'vert'
(con)Vert or Vert(ical)?
New ideas:
Emend JIType Plug or Pluggable Retrofit Sculpt
And Retrofit or Pluggable seems nearly ideal. Instead of trait
, I may prefer pluggable
or retroface
.
RetroScript sounds quite good, fits the pattern of other JS like language.
Some inspiration: http://c2.com/cgi/wiki?ProgrammingLanguageNamingPatterns
Well I think I may have decided to use ZenScript or just Zen for short. I will probably create my own repository soon and start working on the LL(k) table driven parser. You are of course free to use any name you wish in your repository. And I suggest let's observe which repository gains traction and then focus there.
Retro as slang in the USA connotes "old school" or throw back to something old.
I like Zen/ZenScript :-) Can I change the repo name?
Retro in the UK tends to mean out-of-date (so old-school in a way, but not necessarily a positive way), it also means going backwards (retrograde motion).
I am using this parser: https://github.com/jneen/parsimmon/blob/master/API.md
Having spent a long time writing a parser combinator library for C++, I really want to focus on the actual language implementation.
I am doing test-driven-development, so the main command to run all the tests is "npm test" so far I have a reasonable code-generator from the AST, and I am working on the parser, but of course that requires having decided the syntax :-) I am using a nano-pass compiler approach.
I like Zen/ZenScript :-) Can I change the repo name?
Of course :heart_eyes:
I am using this parser: https://github.com/jneen/parsimmon/blob/master/API.md
I'll analyze and compare what is best for implementing the parser. We may discuss else where.
I am doing test-driven-development, so the main command to run all the tests is "npm test" so far I have a reasonable code-generator from the AST, and I am working on the parser, but of course that requires having decided the syntax :-) I am using a nano-pass compiler approach.
Open source is best. If I can't see what you are doing, then I can't compare to the way I am thinking of doing it. We'll hopefully converge on one Git repository of source code that we mutually develop.
Open source is best. If I can't see what you are doing, then I can't compare to the way I am thinking of doing it. We'll hopefully converge on one Git repository of source code that we mutually develop.
Can you not check the repo out? There is already code checked in here. I don't know how to create a repo that is jointly owned, but I can give you checkin permission here if you want it.
git clone git@github.com:keean/zenscript.git
cd zenscript
make init
make
@keean can you please edit the close to add a Label that indicates a favorable resolution?
I created an accepted
label? Have I done it right?
Looks good from my end. Thanks.
I have started to cringe when I say ZenScript, so that is bad sign. It speaks to mental focus but also to spiritual or philosophical. I was trying to capture the harmony (increased degrees-of-freedom) of typeclasses and resultant "zen" of productivity. But for most people, it is just going to be weird. "Why a programming language is zen? What is the connection?"
Also I think ZenScript is too long of a name, and it is lost in the sea of *Script variants.
So I brainstormed:
Name | Commentary |
---|---|
AgileScript | too cliche, boring |
SnapScript | taken |
EzScript | short & catchy. Ezscript.org available. yeah everything is easy, until it is difficult, and easyscript is a misspelling |
NinjaScript NinjaLang | Ninja seems to better capture traits of agility and deftness, and it is a trendy word these days. But not yet cliche in programming, so might garnish some attention and retention given the unique name. But it also means warrior and doesn't have any direct relationship to programming, so I think the connection wouldn't register for most people. |
Type-fu | The extension -fu is a trendy idiom in recent culture. This name is very unique and speaks exactly to the advantage of the programming language we are designing. It is so self-explanatory, that IMO we don't need to suffix with 'Script' nor 'Lang'. |
I registered type-fu.org.
P.S. Thanks for telling me you were headed to a kung-fu class the prior day. I think this is where the idea came from. But it was circuitous brainstorming thought process that brought me to the final idea...I'm gifted with this Mandelbrot torment...
Also I think I first saw Eric Raymond use the term "google-fu" and it struck me as a very creative way of expressing an otherwise longer phrase and such a powerful concept as being masterful and skillful at the preposition prefix, so it struck with me.
I am not presuming you will like a name change. It is just an idea to consider.
I think I've already made all my major points in the prior comment. But one test I use to determine if I've found the right name, is if I still like it more after a week or so. And Type-fu is really becoming something I am proud to speak; whereas, ZenScript is making me feel like I am a telemarketer or a user car salesman, trying to add some shiny nonsense veneer. ZenScript reminds me of Steve Jobs' "reality distortion field". It isn't the worst possible name, but it is becoming less favorable to me over time.
For me, Type-fu is much more brandable, stands out from the crowd, is shorter, is niftier and more creative and it is more explicit as to what is unique about the language.
And I don't think we should make yet another *Script name. There are far too many.
The downside of Type-fu is it doesn't say it is a programming language per se (i.e. doesn't include *Script), but neither does Dart, Swift, Python, etc.. and at least 'Type' hints at it. A one syllable name would be best, but seems there are so many already. We need some way to stand out from the crowd. I am trying to select a name that will be different enough that it readily registers in the recall of many programmers.
I am going with the name Type-fu unless someone convinces me otherwise or gives a better suggestion.
It seems @keean is thinking of Zen without the Script. That is more appealing than ZenScript.
@keean can we make a decision to change the official name to either Zen or Type-fu?
The ZenScript is giving me heebie-jeebies.
It is important not to allow a bad name fester, because participants and community get used to a name then don't want to change it any more.
The *Script name is already flooded with variants:
https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js
ActionScript
BuckleScript
ClojureScript
CobolScript
CoffeeScript
CokeScript
ColaScript
CirruScript
DogeScript
EcmaScript
ElixirScript
EmScripten
EmberScript
FunScript
FutureScript
GorillaScript
GrooScript
Java2Script
JavaScript
JavaScript++
LispyScript
LiteScript
Little SmallScript
LuvvieScript
MochiScript
MoeScript
MoonScript
ParenScript
PearScript
PogoScript
PythonScript
PyvaScript
PureScript
RapydScript
RedScript
Script#
Scripture
SoundScript
ToffeeScript
Transcrypt
TypeScript
UberScript
UiScript
ZenScript
We need to stand out. And we need a name that is suitable for becoming multi-target, not just compiling to JavaScript.
Comparison of Zen to Type-fu.
Zen advantages:
Zen disadvantages:
Type-fu advantages:
Type-fu disadvantages
There is also Google's SoundScript. That both Google and Microsoft have gone with script names shows they thing there is a market there. (Side note, i quite like StarScript, written script as its a bit of a programmers pun).
Type-fu has a problem for me (and in the UK) because it sounds too much like the popular tea brand Typhoo). This spoils it a bit for me.
I am up for changing the name, but would probably have to be something else. It needs to sound professional and serious, something that sounds too hacker-ish is not going to go mainstream in my opinion.
@keean wrote:
That both Google and Microsoft have gone with *script names shows they thing there is a market there.
We are not Google nor Microsoft in terms of creating brand awareness. They can choose any name they want and it doesn't matter. Also Typescript speaks exactly to what it adds "typing" and SoundScript speaks exactly to their goal "sound typing". And Zenscript speaks exactly to some nebulous concept that isn't even clearly connected with programming.
@keean wrote:
Type-fu has a problem for me (and in the UK) because it sounds too much like the popular tea brand Typhoo). This spoils it a bit for me.
Let the Other 95% of Great Programmers In
Btw 'Swift' is the name of a Suzuki car all over the world, yet that doesn't seem to be a problem for Apple.
I guess you are saying Typhoo is really so popular in the UK, that everyone thinks of that. Whereas, for Swift, they probably don't care much about a small Japanese car name. Brits love their afternoon tea. It is a deep cultural tradition.
@keean wrote:
I am up for changing the name, but would probably have to be something else. It needs to sound professional and serious, something that sounds too hacker-ish is not going to go mainstream in my opinion.
Yeah I really think we need to change the name.
We need a name which captures that we delay closing (binding) the two axes of the Expression Problem.
(Side note, i quite like StarScript, written *script as its a bit of a programmers pun).
Except there are too many __script names.
Ideas from a thesaurus:
A time delay is often indicted by a delta
time. So some possibilities are:
You could write with a greek letter: ΔBind, δbind, ΔType, or δtype
ΔType is cool, but problem is no one can type it that way easily. And Deltatype is too long to type and say.
Simply the best name is Boost by far! I don't care if it is already the name of a popular C++ library, unless they have trademark on it. A programming language is not a library. We name ours Boost Lang.
I thought about Axes, but unfortunately is also the plural of ax, and it is too abstract. Nobody will get what we intend to mean which is really multiaxial.
Another pun:
Pronounced 'late' for late binding.
I registered boostlang.org
Boost.org is "Boost C++ libraries". It is not a programming language. There is no trademark claim.
Boost connotes augmenting after the fact. We are injecting (extending) interfaces after the fact of data type instantiation.
Yeah, but it's going to be hard to get any Google ranking when the other name user is much more widely known.
Boosting is also stealing cars :-)
Google ranking isn’t the first priority for me. I’m primarily focused on finding a cool name that programmers love, because that is what really matters. Boost is really powerful in that way.
Google ranking will follow with adoption.
The only other name that is any where close is Agile, but it correlates to Agile programming, which is not really the same. And Agile is a less powerful word than Boost.
Boosting is also stealing cars :-)
Nobody who is a programmer is going to mistake that slang gerund.
Also I think maybe that is more UK-specific w.r.t. to frequency of use, even though we know of it in the USA. But I haven't been back to the USA since 2006, so perhaps I am mistaken.
Hmm, it going to make marketing hard if nobody can find the website :-)
I am not going to change the repo name until we are certain. I think we need to say the name for a few days before deciding.
Every time we change name, we will lose whatever name awareness we have managed to build up, so we don't want to do it too many times.
Hmm, it going to make marketing hard if nobody can find the website :-)
Nope. They can type Boost Language. It will be the # 1 ranking soon enough.
Search for Rust or Dart. Google knows your search habits, so it will make it # 1 for you, but not for a non-programmer.
I am thinking the most important factor for marketing a programming language is not search ranking. It is the passion that programmers feel about your name and language, and the name retention so they can easily remember it when they want to mention it to someone.
Everybody could remember CoffeeScript because it was first and clever switcheroo on Java as coffee.
If anyone can think of a good passionate, serious, and accurately descriptive name that isn't taken, then great. But I doubt it.
I am not going to change the repo name until we are certain. I think we need to say the name for a few days before deciding.
Every time we change name, we will lose whatever name awareness we have managed to build up, so we don't want to do it too many times.
Very much agreed. I just want to push towards choosing a name which is more apt.
Zen was kind of cool when we first grabbed it, but we weren't really thinking clearly about what is the meaning. We grabbed anything less boring than traitscript.
We need now to choose a name that doesn't make us cringe. We'll perhaps feel slightly bad for reusing the name Boost, but C'est la vie. I can't think of a more apt name.
No one has used it yet for a programming language and it is very apt for what we are trying to do differently. It was also very apt for those C++ libraries as I've read they are excellent.
Some ideas based on synonyms of "union"
NFG.
We need now to choose a name that doesn't make us cringe. We'll perhaps feel slightly bad for reusing the name Boost, but C'est la vie. I can't think of a more apt name.
I Agree. So lets start calling it Boost for now. If it is not making anyone cringe after a week or so, then should change.
Personally I still quite like Zen, then you could call the package manager "Koan" :-)
Personally I still quite like Zen
You can keep it if you want. It is short. It might build a following.
But again, I have difficulty defending its meaning. And it makes me cringe, because I like a name which is descriptive and not some Steve Jobs "reality distortion field" hippie concept from the 1960s.
I did love the Beatles as a middle schooler though.
Lets try out Boost. I do like it, but it took a few days for you to realise you didn't like Zen as much as you thought (it was you're suggestion initially) - so we ought to wait and see if the same thing happens again before changing the repo name and posting it about again.
I agree of course. We'll let it settle first. I just threw the first salvo for boost.
@shelby3 wrote:
Extension is the buzzword programmers want. Extension methods are the hot new trend. Interfaces are like so 1990s.
@shelby3 wrote:
Boosting is also stealing cars :-)
Nobody who is a programmer is going to mistake that slang gerund.
Also I think maybe that is more UK-specific w.r.t. to frequency of use, even though we know of it in the USA. But I haven't been back to the USA since 2006, so perhaps I am mistaken.
The word boost has a relatively low frequency of use and none of the more common synonyms have to do with stealing.
The etymology of the term is from perhaps Scottish and "1805-15, Americanism; perhaps Scots dialect boose (variant of pouss push ) + (hoi)st". It sounds very Scottish. So the stealing meaning of "hoist" aspect of it seemed to stay more in the UK. Whereas, world seems to adopt the positive "lift" aspect of hoist of it, such as booster (supporter), etc.. I think petty theft was a bigger problem in Europe during its impoverished centuries and very crowded squalor-ed cities. America was historically the land of individual golden opportunity (at least until recently). That is not say there wasn't theft in the USA even during the formative centuries, but it was significantly a Puritan culture to start and the squalor urban (think many shops) conditions of old Europe weren't pervasive for centuries. Americans were spread out rural and working the land to provide for themselves. So I speculate petty theft and needing a word for it was less in demand culturally.
When I hear "boosting" meaning stealing, I think of the UK accent (okay I know we have the unrefined accent, :) and the way they (especially Scotts) would say "hoyst" instead of "hoiist" as we do. And I think of British English terms such as "boot" (trunk of the car) and "buggered", which we don't use in the USA.
I registered both boostlang.org
and boost-lang.org
.
I am liking the name more and more, thus far. I like it together with the keyword extension
for typeclasses. All in line with recent trends from my perspective (e.g. extension methods in new languages Kotlin1, Swift, proposed for EmcaScript, and now even after some feature envy Ceylon jumping on the bandwagon late).
1 Which I was involved with when they were first proposed in 2011.
I registered today both nextlang.org
and nxtlang.org
. Might prefer Next to Boost.
We are up against Go, Hack, Rust, and Swift as the contenders for next mainstream language. I believe really only Go and Swift are capable contenders. Actually I don't know much about Hack.
I registered today lucidlang.org
and slicklang.org
.
Lucid seems to best represent or summarize my goals for the language. Although Lucid was used for a programming language in 1985, I don't think it is in current and certainly not popular use that could be confused. Presumably not trademarked for a programming language.
Slick (with recognition to @smooth's username for probably causing me to think of it) is a much more stylish name than Tidy, Bare, Pithy, Clean, Trenchant, Deft, and Adroit, which has a similar meaning of uncluttered and efficient.
So we can choose from:
Boost
Lucid
Next (Nxt)
Slick
Zen
Again for my tastes, Zen is making nebulous promises making me think of some stoned hippie babbling nonsense about tripping on LSD or some other Steve Jobs “reality distortion field” hype marketing ploy.
We should have an advantage over Swift (which seems to be the language with the most momentum right now for potentially contending for the next mainstream language for client-side applications), because if we quickly follow my suggestion to transpile to TypeScript (which transpiles to JavaScript), then our language runs every where now, which Swift doesn't yet. Also I think the priority features I've outlined (with the potential to add typeclasses which is superior to OOP) is superior in terms of readability (and thus mass appeal and lack of head scratching obtuse code for maximization of open source benefits) compared to Swift. And similarly we should have an advantage over Go where Go is competing as server-side programming language for Internet facing applications. Our language should do client and server-side better than both while advancing the JavaScript ecosystem. Interested in any detailed discussion on that comparison.
P.S. note some Chinese company registered neatlang.com
and neatlang.org
on January 14, 2017.
P.S.S. I can see that my former ability (e.g. coolpage.com
in 1999) to choose names with ease is returning to me now that I am 6 weeks into my Tuberculosis treatment. I was also able to effortlessly select OpenShare (opensha.re
domain) recently for my blockchain project. I now understand how debilitating liver disease is (cascade effect of the infection).
I like Lucid the most, then maybe Next (it has a neat three letter file extension), Slick and Boost are my least favourite if we exclude Zen as the current working-title.
Scala used
trait
for interface combined with mixins long before Rust used them for typeclasses.Perhaps we can think of a better name? Ideas?
The Traitscript name isn't that sexy/racy nor exciting. A racy name would be for example HaloScript or just Halo.
Edit: also Traitscript can be mispronounced “traits crypt”. One syllable names are best.