Zolang – A programming language for sharing code between multiple platforms
github.com
github.com
The most notoriously difficult problem in GUI development is cross-platform. It's a holy grail within software development. Every major company is taking an increasingly larger stake in this race and a few like Qt are selling it directly as their core product.
Zolang sounds like it could be a bit like Elm or Flutter, but one layer above, able to orchestrate a little bit of platform-specific glue code where it's always gonna be necessary.
The programming language landscape is extremely tough. It's very hard to beat any language on language features alone. You also gotta compete with its community, its libraries, the enterprise support and so forth. You gotta carve out a really special niche for yourself, your very own domain. And I think Zolang's domain should be GUI development.
I think if anything we need loftier goals and more optimism to solve problems.
/shrug
(I'm dealing with a client doing just this right now.)
[0] https://news.ycombinator.com/item?id=9224
[1] http://paulgraham.com/startupideas.html (special emphasis on the the “Well” section)
Also, since this is essentially metaprogramming, any domain where performance is a concern is going to be problematic to handle.
As far as cross-platform support, the LLVM approach seems like the right one to me.
Many-an-occasion, I have written foo.xml and translated it to Python/JS/Java/C++/Excel/whatever.
This type of thing is very useful in that use case - though in my case, it was generally used to add bindings to C++ code.
I'm also really curious about the rationale for the cobolish make a be b minus c. Cobol did that because it didn't aim to be used by programmers. How about Zolang?
But you can do (a + (b - c) * d) in Zolang as well, the choice is yours
make i be i plus 1
What's with the verbosity?make i be (i + 1) * (a / b)
as well as
make i be (i + 1) times (a over b)
make i be (i + 1) times (a divided by b)
The choice is yours :)
let i as number be 1
while (i < person.friendNames.count) {
print(person.friendNames[i])
make i be i plus 1
}