Some interesting syntax ideas here: https://rise4fun.com/Dafny/nbNTl. This 
is probably pretty readable to ATS programmers.

On Thursday, April 12, 2018 at 11:49:54 AM UTC-5, Brandon Barker wrote:
>
> Apparently there is at least one example of Shake being used for the JVM: 
> https://github.com/typelead/eta-benchmarks
>
> On Thu, Apr 12, 2018 at 10:47 AM, Brandon Barker <brandon...@gmail.com 
> <javascript:>> wrote:
>
>> Ya, I really wish I had more experience with Haskell to give it a fair 
>> comparison to Scala, but I get what you are saying. Compared to the 
>> alternative 1 (Java) it is quite a bit less verbose, and compared to 
>> alternative 2 (JavaScript), I'd say it is similar, but probably still less 
>> verbose aside from type annotations. However, as we're talking about 
>> JavaScript, I think it a fair trade!
>>
>> I wasn't suggesting ATS inherit the deficiencies of Scala, such as its 
>> limited means of TCO (largely if not wholly due to limitations of the JVM; 
>> I know ScalaNative plans to expand TCO functionality) or any unnecessary 
>> syntax. I was just using it as an example that worked well for me; it 
>> generally does a good job of allowing you to get work done with what you 
>> know, without having to get entangled in more advanced features until you 
>> are ready (or think you are ready, anyway). 
>>
>> I am curious what the technical grounds you have for being against any 
>> use of Scala whatsoever; sounds like it would be useful to know about. 
>>
>> As for shake, looks like the site (hackage) is down when I tried just 
>> now, but looking at https://shakebuild.com, I'll say it looks 
>> interesting, and sounds as though it may be good for complex builds 
>> (involving multiple languages). I'd love to give it a try - looks like it 
>> hasn't been used much for the JVM, so not sure when I'll get time to try.
>>
>> Scala string interpolation works by providing an implicit value class for 
>> Strings, which then can have additional methods, like the 's' method: 
>> s"hello $name", so s is called on the following string. It isn't quite that 
>> simple, here's the full details: 
>> https://docs.scala-lang.org/overviews/core/string-interpolation.html
>>
>>
>> On Mon, Apr 9, 2018 at 7:52 PM, <vamc...@gmail.com <javascript:>> wrote:
>>
>>> I'm actually not a huge fan of Scala syntax, simply because I find it 
>>> verbose and I believe that it is not suited to functional programming in 
>>> general. If there are reasons to support methods and whatnot, then I would 
>>> be more amenable to it.
>>>
>>> As for build systems, I think that shake 
>>> <http://hackage.haskell.org/package/shake> is probably good to have. 
>>> I've learned a lot of lessons from language-ats, and I believe I could 
>>> write a language-xanadu package that worked and stayed up-to-date with the 
>>> actual compiler. This would (among other things) make builds much, much 
>>> simpler. I am against any use Scala on technical grounds, and shake is much 
>>> better established, having led to several published papers. I actually kind 
>>> of like the versatility and portability of make/configure, but I should be 
>>> able to maintain a shake-xanadu package as well to provide an 
>>> alternate/simpler solution. 
>>>
>>> I'm also not really sure how string interpolation works in Scala. I know 
>>> Rust does something at the macro level, so that may be an option - it would 
>>> allow errors to be generated at compile-time.
>>>
>>> On the ATS front: I am curious as to how ATS optimizes tail recursion. I 
>>> know Scala doesn't actually optimize tail recursion (unless the values are 
>>> of the same type) which is immensely limiting in practice. A lot of 
>>> interesting stuff (e.g. monadic recursion) relies on such optimizations in 
>>> practice. 
>>>
>>> Cheers
>>> Vanessa M.
>>>
>>>
>>> On Wednesday, March 7, 2018 at 10:52:49 AM UTC-6, Brandon Barker wrote:
>>>>
>>>> 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 checker/linter.
>>>> 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 
>>>> <http://www.lihaoyi.com/post/StrategicScalaStylePrincipleofLeastPower.html>r.
>>>>  
>>>> 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 http://www.kogics.net/kojo - 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 
>>>> <https://en.wikipedia.org/wiki/Olympus_Mons#/media/File:Olympus_Mons_Side_View.svg>
>>>>  
>>>> 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 
>>>> <https://github.com/lihaoyi/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 <https://github.com/cvogt/cbt> 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 a topic in the 
>>> Google Groups "ats-lang-users" group.
>>> To unsubscribe from this topic, visit 
>>> https://groups.google.com/d/topic/ats-lang-users/mjS9NtQz6Pg/unsubscribe
>>> .
>>> To unsubscribe from this group and all its topics, send an email to 
>>> ats-lang-user...@googlegroups.com <javascript:>.
>>> To post to this group, send email to ats-lan...@googlegroups.com 
>>> <javascript:>.
>>> Visit this group at https://groups.google.com/group/ats-lang-users.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/ats-lang-users/876a2928-ab2c-4e50-814f-6f85696fb7f5%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/ats-lang-users/876a2928-ab2c-4e50-814f-6f85696fb7f5%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>
>>
>>
>> -- 
>> Brandon Barker
>> brandon...@gmail.com <javascript:>
>>
>
>
>
> -- 
> Brandon Barker
> brandon...@gmail.com <javascript:>
>

-- 
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 ats-lang-users+unsubscr...@googlegroups.com.
To post to this group, send email to ats-lang-users@googlegroups.com.
Visit this group at https://groups.google.com/group/ats-lang-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ats-lang-users/130a72fa-c698-4da6-b50e-aff8e179e489%40googlegroups.com.

Reply via email to