5 ms·
I read the whole interview, and at no point did I really feel like I understood what this is trying to achieve. The closest I felt I got was this: --- > Obviou
by horsawlarway 6y ago
I read the whole interview, and at no point did I really feel like I understood what this is trying to achieve. The closest I felt I got was this:
---
> Obviously my primary target communities here are Cree communities that are looking for new (and exciting) ways to encourage students (especially in the K-12 grades) to use their heritage language as much as possible, and resist using English as their primary language.
---
But at the end of the day - This feels more like a display piece along the lines of art. Choices were personal, artistic, and spiritual. But I REALLY struggle to call this a programming language. To quote him:
---
> Where the output is generative and graphic. The generative aspect is crucial in the representation of the Indigenous worldview, because when the program ends whatever display was generated is destroyed (comes to end of life). And subsequent running of the program – though they may produce similar results will never be graphically identical to any previous execution. This mimics the “real” world equivalent of listening to a story from a storyteller – who might change it slightly each time, so the same story is never the same twice.
---
I'd say instead this feels more like NetLogo - It's a modeling environment that creates generative graphical output based on input, but is not capable of doing most of the things that I'd expect from any real programming language. Mainly - repeatability and precision.
Doesn't make it a bad choice, particularly if his goal is student engagement - but it's not a tool that I feel has much use outside of the very limited environment of teaching/story telling.
- jdc 6y ago> Doesn't make it a bad choice, particularly if his goal is student engagement - but it's not a tool that I feel has much use outside of the very limited environment of teaching/story telling. And that's enough.
- ModernMech 6y agoI encourage you to watch this talk by Amy J. Ko called A Human View of Programming she gave at SPLASHCon a couple years ago [0]. It makes that case that the predominant view of programming languages as math or tools is not the only valid view, and that by holding this narrow definition for programming languages, the PL community has left a huge design space untapped. I think it's fine for you to expect repeatability and precision from the languages you use if you are using them as tools. But not everyone uses programming languages that way, so I don't think a PL that is not repeatable and precise is any less of a programming language. It may not be a good tool, but as the talk argues, that's okay, as this is only one a narrow view of programming languages. https://medium.com/bits-and-behavior/my-splash-2016-keynote-81cc802f5f6e https://medium.com/bits-and-behavior/my-splash-2016-keynote-...
- horsawlarway 6y agoAt least right now - I do believe, fairly firmly, that repeatability and precision are requirements for a programming language. And I'm not saying that because I think those things are inherently more valuable (they might be - I don't really know), I'm saying that because a programming language has to interact with hardware. And at least our current generation of computational hardware requires precision and repeatability or it doesn't work. And I don't mean doesn't work as in "fails". I mean the literal foundation of the space is built on logic gates - Small devices that have very specific, repeatable, and precise outputs for a given input. The requirements for precision and repeatability are SO ingrained that it's genuinely hard for us to introduce real randomness to the process. --- So stepping back a moment - I think the issue at hand is really how we define "programming language". I see them as tools to control hardware that has fundamental requirements (at least right now) around repeatability and precision. This uses languages that do have those properties to create another abstraction layer which no longer provides them (or does provide them, but through a black box that hides or obfuscates how they're being applied in a manner that simulates not providing them, it's actually really hard to tell based on the content of the article) It means that there's a fundamental gap between the capabilities of the two. --- A programming language can program hardware. This is an application for turning stories into visual output written in languages that can control hardware (Go and C#). It's a cool application in much the same way that NetLogo is a very nifty toy to introduce beginners to language/concepts/terms that are used in programming. So in that sense, I think the creator has mostly hit the mark he's going for. But it's not general - it can't step outside of that space. It's more akin to a domain specific language that has to operate within the context of his specific editor/application. So just like Photoshop is not "a programming language", I don't really see this as a language.
- ModernMech 6y agoRespectfully, these are all requirements you are projecting onto the design and implementation of programming languages based on your preferences. Like you said, you "see them as tools to control hardware that has fundamental requirements". Your definition of programming languages is predicated on your view of languages as tools. Yes, it is important for tools to be predictable, repeatable, and precise. But not everyone uses programming languages as tools, so there is no requirement for them to be tools for their applications. Just because the underlying hardware is a predictable machine, doesn't mean the language has to use it in predictable ways. For instance, I could write a language that has all the trappings you would expect from a PL: a parser, compiler, syntax, semantics, code gen, etc. But the execution of language constructs depends on the time of day the program is compiled. e.g. An if statement compiled in the morning doesn't behave like an if statement compiled at night. Would that be a good tool? No. Would it be a programming language? I don't see why not. It's a programming language in every sense except for an arbitrary constraint you've placed on it based on your particular expectations. > But it's not general - it can't step outside of that space. It's more akin to a domain specific language that has to operate within the context of his specific editor/application. There is no requirement for a PL to be generally applicable. Domain specific programming languages are in fact programming languages. Moreover, I would also argue that any language you call a "general" programming language is in fact a "domain specific language". You just have defined your native domain as the "general" case, and any language outside of your native domain a "DSL". For example, "general" languages like C are in fact specifically tailored to the domain of imperative programming on a von Neumann computer architecture. When you take C out of its target domain - e.g. into parallel programming in a non von Neumann architecture, it suddenly becomes very cumbersome to express programs. Other languages you might call "domain specific" can very easily express programs in that domain. e.g. the dataflow language Lucid. People native to those domains would call those languages "general" and C "domain specific". It's all a matter of perspective.
- relatt 6y agoYes I think it's both those things, and really a few different projects with overlapping goals: Cree# itself as a general-purpose language based on C#/Java with Cree keywords Ancestral Codes and wisakecak as multimedia versions of the language, what he calls the "digital storytelling apparatus." Here he's bringing in cultural logic from Cree, with programs as stories written to the Raven, as interpreter of the code, used to record and present stories from Cree elders, etc And then the Indigenous Toolkit to help other communities build programming languages around their own traditions
- timkam 6y agoDo you know whether Cree# is open source? Sorry if I missed this when reading the text too quickly, but I struggle to find more documentation or a code repository. I know some folks at my university who are working with indigenous languages and cultural heritage, this could be interesting for them.