
Ć Programming Language - Compile C# subset to C, Java, C#, JS, AS, Perl and D - gjndrtjh
http://cito.sourceforge.net/
======
fauigerzigerk
If I ever create a programming language, I will call it either ♫ (pronounced
music) or . (pronounced dot).

That's one thing brainfuck didn't get right. Even they couldn't predict how
incredibly stupid programming language naming would become :)

------
AlexanderDhoore
Great, another programming language we can't google!

Please rename it to Membranous language.

~~~
jlgreco
Or for that matter, type. At least C♯ has "C#".

Maybe we can use C' ?

~~~
danabramov
At least in OS X, you can type Ć by holding C and pressing 2:

[http://i.imgur.com/6xCSVW5.png](http://i.imgur.com/6xCSVW5.png)

~~~
davorb
I don't have this functionality. Could you explain if I have to enable
something for it to work? It would be a great help, since I have that letter
in my last name...

~~~
roryokane
I was going to say that on OS X 10.6 and earlier, you can type Option+E, then
type C, but it turns out that doesn’t work. Option+E only lets you add the ´
to vowels, like Á. I confirmed that using the Keyboard Viewer (search for it
in System Preferences).

However, you _can_ create a custom keyboard layout with Ukelele
([http://scripts.sil.org/ukelele](http://scripts.sil.org/ukelele)), in which
you replace some character you never use (option+something) with Ć. I use a
custom layout myself, in which I swapped some keys around so it’s easier to
type smart quotes ‘ ’ “ ”.

~~~
Zarel
Opt+E, C works fine in US Extended keyboard mode, which supports a lot more
accented letters. US Extended is also required for writing in certain obscure
Latin-based writing systems, such as Esperanto or Chinese Pinyin.

------
profquail
This is a really interesting project. However...

It's licensed under GPLv3 -- in my experience, that's an instant turnoff for
most .NET (C#/F#/VB.NET) developers. If you changed the license to something
like Apache 2.0, I think you'd get much more interest; not only new users, but
new _contributors_ too.

~~~
3825
What's wrong with GPLv3? I thought the only thing that changed from v2 was
preventing tivotization?

~~~
danabramov
I think he means commercial use in closed-source projects. So it's not v2 vs
v3, but GPL vs Apache or MIT.

~~~
profquail
Yes, that's what I meant.

Most -- nearly all -- major open-source projects written in C# (or other .NET
languages) are permissively licensed. Yes, that means people _could_ just grab
the code and use it in their own closed-source projects without giving back;
but, as far as I've seen, most devs are happy to contribute back to the
projects they use in whatever way they can.

------
trailfox
Nice idea, but please give it a name that makes the language easy to discuss
and search for.

There's no way I'm going to work on Monday and discussing: 'did you see that
new language that I have no idea how it's pronounced that was on HN?'

~~~
iso8859-1
Almost all other languages have ASCII names. How do you think South Koreans,
Japanese, Chinese, etc refer to them? They figured it out, just like you
would, if you wanted to.

~~~
WayneDB
The name of something makes a big difference in the USA though. If it sounds
ridiculous or has a non-obvious pronunciation, people won't take it seriously.

Rationalize all you want...the issue makes it a non-starter for many people.

~~~
danabramov
I doubt name makes a bigger difference than usefulness.

------
kevingadd
See also the C~ language that the author of Scintilla created for the purpose
of building a retargetable text editor component:

[http://www.scintilla.org/SWPortability.html](http://www.scintilla.org/SWPortability.html)

He wrote his text editor component in C~, then compiled it down to C++, Java
and C#. Kind of interesting - I actually used SinkWorld in a product once.

------
DenisM
That's awesome. I remember I spent some time rewriting the code I had from C#
into Java and wishing there was a way for me to just write it once and reuse
in multiple places. Just so that I do not have to patch multiple locations as
I add features.

Maybe Objective C for the next iteration? :)

------
aaronbrethorst
Pronunciation:
[http://www.asusilc.net/scr101/les1/s1glas.htm](http://www.asusilc.net/scr101/les1/s1glas.htm)

"ch or tch as in: church, fetch, pronounced softer than the English sound"

~~~
dotemacs
I'd say it's more like 'ci' (sounds closer to 'ty') in Italian 'ciao' and less
like 'ch' in 'change'.

~~~
groovy2shoes
In American English (and perhaps other dialects), Italian 'ciao' is an
allophone with English 'chow'. (Really two allophones, 'ch' and 'ow'). Most
Americans won't be able to hear a difference.

~~~
involans
"ciao" and "chow" are homophones, not allophones. Allophones are different
phonetic representations of the same phoneme found in complementary
distribution. For example, [t] and [th] and [ɾ] and [ʔ] are allophones of /t/
(the first in 'cat', the second in 'tack', and the third and fourth in
'cutter' , depending on your regional variant. Also, the initial phoneme in
Italian "ciao" is for all purposes identical to the one in English "chow" (the
vowels are a bit different) - it is written as: /tʃ/

------
chipsy
I really like this concept. It would make a good counterpart to Haxe.

------
Moto7451
This is great. Glad to see Perl support as I'm working in both these days. I
have a C# DLL I'm planning on porting and I think I'll give this a whirl. If
it can do a good port I'll be very impressed.

------
piokuc
Does it do garbage collecting in all the target languages? The question is
mainly about C, cause I can imagine it can rely on native garbage collector
when targeting Java, Perl, etc.

~~~
gjndrtjh
It only has manual memory management. No GC.

But if you don't target C, you can just skip using "delete".

~~~
stephth
Right, from the documentation (albeit hidden in the Arrays section):

 _Since there is no garbage collection in C, you must free the dynamically
allocated array with delete. delete translates to C as free and nothing in
other (garbage-collecting) languages._

------
dsego
Time to start working on Č I guess.

~~~
marssaxman
We've all got a language in our back pocket, haven't we?

My first thought on seeing this name was that I ought to rename my project
"Ç".

------
nnq
Great idea, but _why another new language?_ Why not just pick a _subset of
C#_? (or Java, or D, but subjectively speaking, C# is the most "friendly"
language from that list)

~~~
ygra
It _is_ a subset of C#. And giving that subset a name is much easier than
talking about »that subset of C# that compiles cleanly to Java, D, Perl and
C«.

~~~
Trufa
Except when the name is Ć.

~~~
ygra
Cee acute? Doesn't strike me as that horrible.

~~~
nnq
...unless you have no idea what "acute" means or you've never seen it in your
life, because you haven't been exposed to French or English musical notation
before (which applies for, I'd bet, over 80% of programmers worldwide :) )

~~~
cdcarter
But most programmers probably have studied basic geometry.

~~~
itsybitsycoder
And? There are a _lot_ of diacritics to choose from if you don't know all
their names, and that's assuming you even catch on that it's supposed to be a
diacritic.

------
pimpl
I guess I’m of the very few ones in this thread who know how to pronounce this
name :D

------
chris_wot
What was the need for this?

~~~
DenisM
Second statement from the article:

 _Ć is a new language, aimed at crafting portable programming libraries, with
syntax akin to C#_

~~~
chris_wot
That's the purpose, is there really such a need?

~~~
stephth
Right. Who would ever want to be able to write libraries that can run on any
platform?

~~~
chris_wot
I'm not saying there isn't a need, but I'm interested in knowing of another
need. Hasn't this been done in C already? C pretty much runs anywhere, after
all. What exactly does this bring to the table?

Sorry that people thought I was being negative (as per all the downvotes - you
people really aught to comment), I'm just curious as to why other languages
don't fill this gap.

~~~
gjndrtjh
>C pretty much runs anywhere, after all. What exactly does this bring to the
table?

1\. No, C doesn't run everywhere. I can't compile C to Java, C#, JS, AS, Perl
and D. Or compile it to any other language (PHP, Objective-C, Pascal, ...)
just by writing 500 lines of generator.

Look how huge project Emscripten is: 1 537 390 lines according to Ohloh. But
JS generator for Ć is only 457 lines.

2\. C# is easier than C. You can write Ć in Visual Studio C#, the best,
easiest and fastest IDE in the world.

~~~
chris_wot
1\. A compiler translates from a higher level language to a lower level
language.

2\. I disagree. They have the same level of complexity, C# possibly more if
you use advanced concepts. And you can write C in Visual Studio...

------
Dewie
If they just wanted the name to be a variation of 'C', they could have called
it 'Ç', since I'm guessing that most people can type that easily with their
keyboards.

------
ycamel
Why not support floating point number type?

~~~
gjndrtjh
I asked the language creator. Float, double, short types are going to be added
within 1 month. 64 bit integers are not possible because Javascript doesn't
have them.

