Hugo Hacker News

The ATS Programming Language

dang 2021-08-17 21:39:05 +0000 UTC [ - ]

Past related threads:

ATS: Why Linear Types Are the Future of Systems Programming - https://news.ycombinator.com/item?id=26191219 - Feb 2021 (1 comment)

Type-Safe Pointers in ATS - https://news.ycombinator.com/item?id=22726512 - March 2020 (8 comments)

The ATS Programming Language - https://news.ycombinator.com/item?id=19404347 - March 2019 (38 comments)

Casting in ATS - https://news.ycombinator.com/item?id=16058803 - Jan 2018 (12 comments)

The ATS Programming Language – Unleashing the Potentials of Types and Templates - https://news.ycombinator.com/item?id=10570444 - Nov 2015 (9 comments)

ATS: a dependently-typed systems programming language? - https://news.ycombinator.com/item?id=3340010 - Dec 2011 (5 comments)

Sharing Linear Resources in ATS - https://news.ycombinator.com/item?id=2487512 - April 2011 (1 comment)

Safer C Code Using ATS - https://news.ycombinator.com/item?id=1397984 - June 2010 (2 comments)

ATS - Applied Type System Programming Language - https://news.ycombinator.com/item?id=1357229 - May 2010 (3 comments)

ATS programming language - https://news.ycombinator.com/item?id=449453 - Jan 2009 (1 comment)

lolski 2021-08-17 22:55:31 +0000 UTC [ - ]

these are interesting. thanks.

dan-robertson 2021-08-17 22:38:15 +0000 UTC [ - ]

Vanessa McHale has a great set of blog posts about ATS. They touch on technical aspects of the language and it’s type system as well as practical aspects and real-world performance of compiled programs. The list is here:

http://blog.vmchale.com/category/ATS

If you click the ‘next’ link a few times you can go through several pages to earlier posts that introduce the language.

rtfeldman 2021-08-17 21:25:16 +0000 UTC [ - ]

Some entertaining talks introducing the language, by /u/deech:

"A Tase Of ATS" at Compose Conf 2019:

https://youtu.be/ADN6B1Wk5Ts

"A (Not So Gentle) Introduction To Systems Programming In ATS" at Strange Loop 2017:

https://youtu.be/zt0OQb1DBko

jetrink 2021-08-17 22:18:41 +0000 UTC [ - ]

What does tase mean in this context?

diskzero 2021-08-17 23:01:07 +0000 UTC [ - ]

To be shot with a Taser. https://en.wikipedia.org/wiki/Taser

I am assuming this is a play on words, as the usual word used would be "Taste"

2021-08-17 22:25:15 +0000 UTC [ - ]

doublec 2021-08-17 23:50:28 +0000 UTC [ - ]

I have a few ATS related posts, talking about the safety aspects of it https://bluishcoder.co.nz/tags/ats/index.html

henning 2021-08-17 21:27:57 +0000 UTC [ - ]

The end-boss of programming languages.

yewenjie 2021-08-18 06:56:41 +0000 UTC [ - ]

I would really recommend a modern look and HTTPS to the website though.

fulafel 2021-08-18 06:44:27 +0000 UTC [ - ]

Is there a recent Rust vs ATS comparison? I found only this reddit thread: https://www.reddit.com/r/rust/comments/73j4p5/a_not_so_gentl...

lolski 2021-08-17 22:56:56 +0000 UTC [ - ]

the website looks like it was made in the 90s however don't let that fool you

galaxyLogic 2021-08-18 04:55:45 +0000 UTC [ - ]

The web-sites I create look much like that, but that is not my goal. I would like to look modern.

Can you say what in particular makes it look like 90s? And what could be done to make it look more current?

Zababa 2021-08-18 08:27:51 +0000 UTC [ - ]

For me the annoying part that screams "old website" in a bad way is having two column for two different contents. I'd like to have one main content and be able to zoom on it easily. Outside of that, I think the "holy grail" design (https://en.wikipedia.org/wiki/Holy_grail_(web_design)) and the muted colors are a characteristic of old web design.

tannhaeuser 2021-08-18 09:48:31 +0000 UTC [ - ]

Not responsive, presenting the same layout on mobile and desktop

3-column grail layout (not bad per se, and not badly done at all, just something that was chased in the 90/00s to the extent that it looks dated - still could be ok for the intended target audience)

Why are there two nav menus? The horizontal menu appears to contain the same links as the vertical one, or the first couple items of it

Center body text doesn't have margin/padding

In general, allow content to have space rather than trying to cram everything into the first page impression; there are exceptions, though

What's the central message/tagline for the ATS site? The teaser syntax examples in the right column, with proper typo, are about the stuff that should be featured as central or only content

+1 for crafting a site for your project in the first place

riffraff 2021-08-18 07:59:26 +0000 UTC [ - ]

I am no designer, but I would guess:

* underlined links in sidebar (we are familiar with sidebars now, we know we can click those, this looks like a page made with <frame>)

* same for top nav bar

* solid non-subtle background colors (more subtle ones or patterns these days are more common these days)

* too many font sizes

* odd intermix of rounded corners (very round!) and square ones

* unstyled textual header (if you just adopt a "visual" font for the title it will look nicer)

I don't mind it, anyway.

jcelerier 2021-08-18 08:10:12 +0000 UTC [ - ]

> * underlined links in sidebar (we are familiar with sidebars now, we know we can click those, this looks like a page made with <frame>)

please no. my parents had an internet connection since 1996, and they have SO MUCH TROUBLE with links that aren't underlined, especially on the phone. It's one of the most basic affordances of the web.

riffraff 2021-08-18 12:30:54 +0000 UTC [ - ]

Are you sure about this? I agree this is the case for generic links, but it seems odd for the navigation ones.

Basically every site I could think of (NYT, Yahoo!, BBC, Google/GMail, HuPo, Amazon) has navbars without underline.

Even the site for "Don't Make Me Think!"[0] avoids them.

[0] https://sensible.com/dont-make-me-think/

lolski 2021-08-18 11:12:35 +0000 UTC [ - ]

The one that adds a lot to the retro look for me was the colour scheme - look at how each section has different colours.

The combination of typography, colour scheme, borders, corners, and margin used doesn't add up to a "unified look and feel".

Anyways, I made the discussion go off tangent here talking about the website and not the language itself :D

tartoran 2021-08-18 05:34:38 +0000 UTC [ - ]

Layers and layers of styling, all sorts of frameworks and web trinkets. I like the style of this website, it is simple and not overwhelming. It does look older but old in UI/UX doesn’t mean worse, it could mean better in many ways. However, the left banner overlaps the content and it makes reading the content on my phone nearly impossible so I guess it’s got its flaws.

mejutoco 2021-08-18 08:51:25 +0000 UTC [ - ]

IMHO, it is mainly The default styling of links (blue with underline)

hknapp 2021-08-18 01:43:01 +0000 UTC [ - ]

The design oddly makes me take it more seriously.

riidom 2021-08-17 23:13:49 +0000 UTC [ - ]

when you see "online" written as "on-line"

dan-robertson 2021-08-18 06:20:40 +0000 UTC [ - ]

I often read online as “on the web” and on-line as referring to algorithms that are supposed to incrementally produce their output based on an input stream of unknown length, eg an on-line algorithm for estimating medians.

riidom 2021-08-18 07:30:45 +0000 UTC [ - ]

Just learned about that difference. In terms of an web-based code editor with a result panel, both definitions fit a little bit, I guess.

lolski 2021-08-17 22:59:31 +0000 UTC [ - ]

and the fact that it's hosted in sourceforge

jp0d 2021-08-18 00:56:01 +0000 UTC [ - ]

Does anyone use it? I couldn't find a list of businesses who use it.

treebog 2021-08-18 03:48:17 +0000 UTC [ - ]

It’s on the far bleeding edge as far as languages go, so I doubt any businesses use it. The largest practical ATS program I know of is polyglot: https://github.com/vmchale/polyglot

grumpyprole 2021-08-18 07:58:32 +0000 UTC [ - ]

Rust seems very popular despite also being bleeding edge. I am surprised there isn't more public industry interest in ATS, it looks very principled and well designed.

chriswarbo 2021-08-18 10:40:50 +0000 UTC [ - ]

ATS seems like a "Worse is Better" approach to dependent types and linear types. It exposes all of their power at the type level, and the value level allows both ML-style high level programming and C-level bit-banging. That's really useful for

Yet to actually use that power, developers are pretty much left to implement everything themselves.

The nice thing about Rust's borrow-checking approach is that common patterns can be inferred and checked. Linear types ATS offer the same power, but force developers to jump through more hoops 'manually' (and likewise for dependent types, compared to the fancy inference/proof-search approaches of languages like Idris)

jp0d 2021-08-18 11:23:53 +0000 UTC [ - ]

Thanks for the descriptive answer mate. I honestly don't know much about it. But I've read about the LISP family and ML family of languages. There are too many to choose from. I've decided to learn F# and have been going through some tutorials. I'm enjoying it quite a lot. ATS sounds like a good combo of abstraction meets bare metal.

jp0d 2021-08-18 05:36:56 +0000 UTC [ - ]

Thanks man. It's difficult to keep track as I've seen so many new languages on HN. This one seemed like an important one.

moonchild 2021-08-18 08:35:45 +0000 UTC [ - ]

The ATS compiler is also written in ATS.

pabs3 2021-08-19 12:41:23 +0000 UTC [ - ]

How do you bootstrap the ATS compiler from source if you don't have binaries?

detaro 2021-08-19 12:43:40 +0000 UTC [ - ]

There is more than one compiler: http://www.ats-lang.org/Implements.html

yamazakiwi 2021-08-17 21:22:06 +0000 UTC [ - ]

I thought this was going to be some sort of scripting language for Applicant Tracking Systems