3 ms·
really love the syntax of this language and how they are repurposing existing programming language primitives for parallelism. but i also just spent quite some
by blondin 7y ago
really love the syntax of this language and how they are repurposing existing programming language primitives for parallelism.
but i also just spent quite some time looking for a substantial example of usage and had to give up. the only thing close to that are the unit tests. and the language has been in development since late 2011.
that's somehow dispiriting.
that, in a nutshell, is the unfortunate situation with some of these interesting modern programming languages.
- cultus 7y agoI never understand why people go to all this work of developing and even marketing major libraries or languages if you aren't going to at least give some doc examples. Jeez, just copy and paste some unit tests and put some prose explanation in. It doesn't take long.
- kick 7y agoWhy does Cray need you to use their programming language? The people who need it will seek it out, and Cray probably doesn't mind that people unwilling to spend a minute clicking on 'browse sample programs' or similar won't be trying out their language.
- zentiggr 7y agoYou missed the "HPC" acronym. If you're not in the market to run supercomuting projects, you'll likely never use this language. If you are, there's a very high chance you know about it already. Sharp divide between those sides.
- ken 7y agoAnd yet, in the presentation slides linked to from their homepage, they brag that it aims to be "programmable as Python, fast as Fortran, scalable as MPI, SHMEM, or UPC, portable as C, flexible as C++, fun as [your favorite programming language]". It's not even supercomputer-specific: they say it runs on "a Mac laptop". If even half of those are true, why wouldn't I want to use it for every program I write? (Easy answer: it looks like most of those are still simply "aims", and not actually that close to being true.)
- bradcray 7y agoI think it's plausible you would want to use Chapel for every program you write. I definitely want to use it for every program I write, but I'm also biased. The main disincentive to doing so today is that Chapel is not nearly as broadly adopted or well-supported as the languages you probably do use in practice today. The Chapel team is trying to get it to that point, but it's a modest-sized team taking on large challenges (both technical and social, as this thread indicates). To date, we haven't made a significant effort to draw in a massive/mainstream audience because we know we're not ready for it yet, either in terms of the language's maturity or our ability to support a large group of users. But we hope and intend to get there. That said, I think we're already achieving the aims in the slide you quote—far more than your easy answer suggests—though there's obviously room for differences of opinion (e.g., what does it really mean to be "as programmable as Python?"). If you're interested in pointers to supporting details, let me know.
- zentiggr 7y agoI forget that many of the people and projects that get mentioned here are here as well. Thanks for a deeper viewpoint! I'll definitely put Chapel on my curious list.
- bradcray 7y agoArkouda [1], [2] is a recent and substantial example use of Chapel. It's a Python package that supports a subset of NumPy operations on distributed Terabyte-scale arrays implemented using a server written in Chapel. It currently involves ~10k lines of Chapel code. Other recent notable examples include using Chapel for Dark Matter simulations [3], tree-based search algorithms [4], and CFD simulations (to appear at CHIUW 2020 [5]). Your point is taken that the Chapel webpage could be better at pointing to such examples via a "powered by Chapel" section or the like. [1]: http://www.clsac.org/uploads/5/0/6/3/50633811/2019-reus-arkuda.pdf http://www.clsac.org/uploads/5/0/6/3/50633811/2019-reus-arku... [2]: https://chapel-lang.org/presentations/ArkoudaForPuPPy-presented.pdf https://chapel-lang.org/presentations/ArkoudaForPuPPy-presen... [3]: https://github.com/mhmerrill/arkouda https://github.com/mhmerrill/arkouda [3]: https://github.com/sourceryinstitute/PAW/raw/gh-pages/PAW-ATM19/presentations/PAW-ATM2019_talk3.pdf https://github.com/sourceryinstitute/PAW/raw/gh-pages/PAW-AT... [4]: https://link.springer.com/chapter/10.1007%2F978-3-030-22734-0_19 https://link.springer.com/chapter/10.1007%2F978-3-030-22734-... [5]: https://chapel-lang.org/CHIUW2020.html https://chapel-lang.org/CHIUW2020.html