27 comments

[ 4.0 ms ] story [ 66.3 ms ] thread
My take: it certainly looks interesting, and I congratulate you on building it.

That said, since I use a standard US keyboard, the requirement to use symbols I can't easily type would prevent me from building anything with it.

Cool stuff! Some random thoughts:

- APL comes to mind. As well as the classic http://www.eecg.toronto.edu/~jzhu/csc326/readings/iverson.pd...

- You might want to cross post to https://reddit.com/r/programminglanguages/.

- I like how you have a subreddit.

- I'm a little confused about how to view the source. The GitHub seems to just be a website. Is there a folder I should be looking at?

- You might want to educate people near the top on how to quickly enter symbols (control+command+spacebar on Mac OS X). I find unless a programmer is familiar with that, they are quickly turned off by symbolic languages.

Do you, or does anyone you know, regularly use unicode input like that in your day to day programming? It sounds like you might.

I'm super interested in symbols as a way of increasing expressivity, but the ctrl+cmd+space route just seems like it'd be too much overhead for the tradeoff to be worth it.

I'd love to hear what people who have gotten over the learning curve think about it as a language feature.

i regularly use Compose for unicode symbols, mostly stuff like ←↑↓→–≠ . it's not too clunky, for example "→" is "RAlt, -, >" in succession.
Julia allows the use of unicode variables and functions, which is pretty cool for scientific notation.they are written using latex shortcuts, and the REPL gives you how to write a symbol if you don't know how to do it
Yes.

Have one experimental mathy one and one silly one for parents.

Will post one of those soon.

I don’t like them unless the tooling is great. With proper tooling, it’s looking to be a very interesting new area of r and d.

What does Ji compile to?
From the example code it looks very much like it doesn’t compile to anything, but is in fact just JavaScript.

The import and calling “jit`...` as a “tagged template literal” is just plain JavaScript.

In that case, calling it a language seems like a stretch...
> Ji (pronounced gee)

The "g" in "pronounced gee" obfuscates your intent. Use IPA if you want to clarify pronunciation.

IPA helps if you want to be very clear to the very small proportion of the population familiar with IPA and completely obscure to everyone else; using an existing, common word like “gee” is more clear to most people than IPA would be.
The very small population that knows how to perform an Internet Search or owns a dictionary?

You don't need to know IPA off by heart for it to be useful, I certainly don't, I only recognise a few characters, or whatever they're called.

'Gee' isn't terrible in combination with the name itself ('ji') since it eliminates options.

Better IMO if you want to avoid IPA is giving an example like 'the first syllable in 'genius'', but that's not so good (or at least much harder) for polysyllabic names of things.

More to cater to the relatively large population that isn't on the autistic spectrum, has OCPD (obsessive-compulsive personality disorder), or knows IPA well. Without trying to ostracize that smaller group of people, the bulk of the population is used to comparing to "sounds alike" words and would not take to well to... "it's just IPA, go look it up."
I took gee to mean like "ghee" the butter is pronounced. But maybe he means the way you say G the letter?
He probably means like in "GIF".
I’m guessing you are joking as there are at least 2 ways people pronounce that abbreviation.
I don't get what problem it solves. The whole symbol thing is confusing and feels like adding problem and complexity where it is not needed.
It's not supposed to solve a problem. It's only purpose is to create them.
Complex-looking symbols can also make things easier.

Do you want to stare at 100000LOC of if/else, for and function declaration statements? Me neither.

With a good code-editor, these complex-looking symbols can also always be shown in an easier language, on-demand and opt-in.
Then it is also almost like a two-factor definition. Once it is defined through the symbol and twice through the easy, canonical easy language explanation. The easy language explanation must also be specced then.
Ligatures solve that problem.
Ligatures supposedly heal cancer. My grandfather built a tool in his garden with his bare hands and llligatures
I think adding about a sentence as soon as possible on the landing page that explains your language in more specific, formal terms would be helpful. "Ji enables literate programming and is good at x."

Maybe a quick example that shows how easily I can do some non-trivial task would be nice, "here is how Ji lets you multiply matrices or something."