Glad to see this thread is here. I will just share some general thoughts 
for syntax as my ATS is a bit rusty:

1. I like Scala style syntax - I think it is easy enough to read, unless 
maybe you are doing stuff at the type level, where ATS seems to have an 
advantage over Scala. I think Scala is similar to python in a lot of ways 
(especially with Python 3.6 typing styles), aside from making indentation 
part of the syntax. My thought is that Python doing this helps to force 
people to write somewhat readable code (think beginner Python vs beginner 
Perl), but I think we can assume that if you are coding in ATS, or at least 
publishing code in ATS, you will be sensible enough to have some kind of 
good programming style. So I would vote for leaving indentation to a style 
2. Concision: I sadly don't know Idris or Haskell, and am very tempted to 
learn one of them to get a better appreciation of them, but I'd rather 
focus on ATS again. However, I do appreciate that they are concise, even 
more so than Scala, which is generally laudable. 
3. Feature hiding: Facilitate the principle of least powe 
ATS has a lot of advanced features, as does Scala (of course ATS has more). 
Scala is pretty good at letting you hide them. I swear, I'd been coding in 
Scala for 3 years and was still amazed at how simple you could make the 
code if you try - just take a look at - it is 
nearly as easy as python I would say, and preferable to me. The lack of 
types in the coding examples is almost annoying to me, but I understand it 
is beneficial to young readers. Now, I'm not saying we can do all this in 
ATS, but Scala is so named because it is a "language that scales with you", 
and I believe ATS is this too, but it would be good to make that scaling a 
bit more smooth, like climbing a Olympus Mons 
rather than K2.

Other goals:
 - Build systems: I think cross builds are very important as already 
stated. In scala land, there is Scala (JVM), scala.js, and now 
scala-native. Usually, we can create cross builds by having some source 
that is platform independent (e.g. APIs/interfaces/types) and other bits 
that are platform specific and rely on the platform independent bits. This 
is great. Related to this, I actually think it may be worthwhile looking 
into an existing build tool with a larger community rather than using make 
and autotools, which seem to me a bit antiquated and unfriendly to other 
platforms. I recall Hongwei and I were both a bit jaded by our experience 
with using gradle, so I'm both excited to say Mill 
<> looks like a promising alternative, 
though I'm also hesitant to make a suggestion after the last failure with 
Gradle :-) But I believe a lot in Mill's stated goals, especially insofar 
as they overlap with CBT's <> and the idea of 
being designed to support multiple languages. If we can agree that Scala 
isn't terrible, I say let's not reinvent the wheel, and try to comingle a 
bit with them. This could be beneficial for both communities. Let's think 
about using their build tools. At the moment, Mill seems to be creating a 
lot of excitement, so it might be worth looking into it first.

I'll try to give more concrete feedback in the future.

On Friday, February 9, 2018 at 1:15:22 PM UTC-5, gmhwxi wrote:
> For the moment, I just want to open a thread for ATS3.
> I decided to pick ATS/Xanadu for the full project name. I like the name 
> Xanadu
> because it is poetic and brings a feel of exoticness.
> ATS3 is supposed to be compiled to ATS2. At least at the beginning. I will 
> try to
> write more about what I have in mind regarding ATS3.
> I know that a lot of people have been complaining about the syntax of 
> ATS2. So
> we can start the effort of designing some "nice" syntax for ATS3. Please 
> feel free
> to post here if you would like share your opinions and ideas.
> I will be happy to take the lead but we definitely need to have some form 
> of community
> effort on this project given its size and scope.
> Cheers!
> --Hongwei
> PS: I felt rushed every time up to now when implementing ATS. This time I 
> am hoping
> to have the luxury of thinking about implementation a bit before actually 
> doing it :)

You received this message because you are subscribed to the Google Groups 
"ats-lang-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
To post to this group, send email to
Visit this group at
To view this discussion on the web visit

Reply via email to