Great post. There’s a lot of good stuff here. Specific comments are inline.
Quoting Ming Lei (2013-12-17 18:11:10)
5. Electronics and hardware/software interface. Device drivers, video
codecs, firmware, embedded/realtime operating systems, they can all
benefit from strong typing and formal proofs.
I would add to this the more general cateogry of systems software - not
just drivers and embedded operating systems, but operating systems more
broadly, as well as high performance network servers, language
runtimes…
2. Make a formal specification of ATSs entire grammar. It neednt to be
as readable as the Haskell 98 language report. Even as simple as an
EBNF can be hugely helpful. The language guide is far from
completed yet, so a formal grammar would be the only way for new
comers to learn the whole language, except reading the source code.
Yes. I can’t stress this enough: having key parts of how the language
is used not written down anywhere is unacceptable.
There’s a heading somewhere on ats-lang.org re: a formal grammar, but
the section isn’t actually there…
5. Update the languages official Web site. Its too shabby now. People
do judge a language by its face. ATS is at least 30 years ahead of
mainstream languages, but its Web site looks to be 30 years behind.
Irrespective of design, it’s often less than helpful. Apparently there’s
a wiki that some people have contributed to. I found out a bout this
when someone mentioned it on this list; the website doesn’t even mention
it! There needs to be more attention paid to making sure the first page
people land on gets them where they need to go.
I actually think we should offload most of that sort of thing to a wiki
somewhere. There’s too much overhead in contributing to this sort of
thing right now. Better documentation is a must, but it’s also a big
job. We need to use tools that make it easy for people to help out.
Make it pretty, usable and informative, update it timely. Bonus
point for writing its backend in ATS.
It’s pretty much static html now, and I think that’s actually the way to
go; not much backend to be had (web servers and operating systems I
suppose, but that’s orthogonal to this one site).
6. Migrate all the remaining source code and downloadable stuff away
from SourceForge. SourceForges reputation is not good, and its
usability is worse. People may think ATS is dying with SourceForge.
We can just move ATS1s source code to GitHub and move the
downloadable packages to the Web site.
Might still be acceptable for downloading tarballs, but that’s about all
I see most people using it for these days, and with good reason.
7. Fix the trivial bugs in the build system and make it work well on
all the supported platforms. Encourage Linux distribution packagers
/ Mac OS X ports maintainers to include ATS in their releases.
Specific recommendation: choose names for the tarballs and folders that
agree with package naming guidelines in major distributions. This
usually means no uppercase letters at the very least. It’s not something
that’s ever stopped me from packaging something, but it’s a pet peeve.
8. Separate the contribution libraries from the compiler itself. Make
a real online libraries repository similar to CPAN, RubyForge or
NPM, so people can freely share useful libraries with each other.
Absolutely. I’d also point out that having a standard build system for
things written in ATS would make this a lot easier. It’s also something
that needs attention on its own. We don’t need another language where
build systems are as messy as they are for C/C++.
One additional comment, not immediately related to anything Ming Lei
mentioned: a mailing list is not a bug tracker. There’s a lot of
improvements to make to ATS, and for anyone but Prof. Xi to try to
tackle them, we need a more organized way of managing them. We need a
real bug tracker.
I’d propose, as a start, make an organization on github, move the
existing git repos and the wiki to it, and start using the bug tracker.
-Ian