Learn Chapel in Y minutes
learnxinyminutes.com
learnxinyminutes.com
Full disclosure: I am currently an intern with the Chapel team at Cray, and I am no shame trying to sell this open source language to the masses. However this is not a product of the internship; one can get surprisingly bored in Seattle, and I wrote this on unoccupied weekends.
I think this tutorial should show me the unique parts of the language without boring me first.
Probably. I first looked at the page on a tablet, where the viewport is much smaller and so scanning/skimming is much harder. I later got back to the page on a laptop, and I scrolled past uninteresting parts without any problems.
One thing I think would be good on learnxinyminutes is an ability to link to a specific line. Is it possible and I just missed it?
Any hints about what makes Chapel special and useful. A short section with links to relevant parts of the full documentation that highlights what one might use Chapel for. I saw some nice features but nothing that really struck me as decisive.
As gberger says, that should go at the top of the page.
After skimming the page it looks rather similar to Nim. Chapel looks like it wants to be a systems programming language with special focus on concurrency and parallel computation. It's statically typed with local type inference. It supports product types with tuples, but I don't see sum types or (G)ADTs in general. It has numeric types with explicit range, like Ada or Nim (that is without dependent types). It supports generics, with a very lightweight syntax (ie. lack of any syntax). Supports in/out/inout parameters like C#. Supports operator overloading. Has iterators. Supports class-based OO with destructors (so probably is not GCed?). Has coroutines as a main concurrency construct. It has "sync" keyword, but I don't have the time to look at it in depth to know how it works.
It looks like it's somewhere between C and Java, like Nim, Rust and a couple other languages. From a quick glance I can't tell if the language is garbage collected and I don't really know how the concurrency and parallelism really work in the language. Still, it looks rather nice and I suspect you'd use it any time you otherwise use C with pthreads.
What's interesting about it that makes it worth taking a look?
See https://www.cs.indiana.edu/~achauhan/Teaching/B629/2010-Fall...
Designed mostly for scientific computing on highly parallel machines. Not your typical web-application development :)
This sounds like it means that I cannot supply a variable as the argument to whereProc. Is that correct?