The Wyvern Programming Language
cs.cmu.edu
cs.cmu.edu
What is a "high-assurance application"? I accept that it's my own deficit for not knowing this, but I do think that the Wyvern authors should embrace my kind and tell us what this is (and why we should care). In 5 years, this may be obvious, and hopefully by that time I'll be embarrassed that I even asked.
Edit: please read the website, this really is funded by the NSA.
(I clicked to the GH page and there is no code in the readme there as well.)
https://github.com/wyvernlang/wyvern/blob/master/examples/bo...
Is that a statically checked DSL? Is it part of the base language? If it's a DSL, where is it defined?
(not a critic to parent's post, just saying it in case someone involved in the project steps here)
No thanks.
This is a research language at the moment, so our papers are the primary mode of communication about the language. There are several examples in those.
This is gonna end well.
But as far as I can tell these "type-specific languages" are possible in Nimrod. The most basic tool is probably the "distinct type" (http://build.nimrod-lang.org/docs/manual.html#distinct-type). Macros can then be used to create DSLs for HTML generation, and they already exist (http://build.nimrod-lang.org/docs/htmlgen.html).
I think you accidentally a word.
I'm also very interested in Rust. Still has a lot of rough edges, but it's the first new language I've seen in a long term that really feels ambitious. Ambitious as in raising the state of the art (memory-safety without GC is a big deal); ambitious as in aiming at big scary problems. The fact that your language can express quicksort or Fibonacci nicely isn't that interesting. The fact that you're planning to build a portable, performant, secure web browser in it tells me you're serious.
There have been plenty of great languages in which you can express things marvellously well, but for the most part they remain obscure. Although Rust is not the most powerful language around for some of the things I want to do, it’s sufficiently powerful and backing what already looks to be a winner means that the ideas will actually get used.
Yes!
(Narrowly edging out 'this', because I don't want to do, uh, that.)
> Because Wyvern itself is an evolving language and we believe that the techniques herein are broadly applicable, we have implemented the abstract syntax, typechecking and elaboration rules precisely as specified in this paper, including the hygiene mechanism, in Scala as a stable resource.
Source code here [1]
Its nice that the syntax is simpler than in C-based languages, but its still OOP and you motivate people to think in OOP ways. I had some bad experiences with OOP. Most prominent is, that i spend more time with assorting functions and classes than with writing stuff and that i often lost view for the important implementation details. Your language is good for functional and OOP programming, but like Scala, its maybe not a good idea to give the developer a choice.