Introducing Stanza: A New Optionally-Typed General Purpose Programming Language from U.C. Berkeley.

Started by
20 comments, last by CuppoJava 7 years, 10 months ago

Trying to take prisoners in one of programming's holy wars is not user-friendly.

Maybe the language is useful. I can see some of the nicer features I got used to in Objective Caml hiding under the surface. Maybe the library is even robust and the compiler optimization fantastic.

But I don't have faith that any of these are true, after reading...

Indentation is important in Stanza programs. Be careful when trying out the examples.

And don't use tabs. Stanza won't let you. We don't like tabs.

Well, good for you. But this aggressive, inflammatory approach to user-friendliness just lost you an entire market of potential users who aren't even going to give the time of day to that attitude. It comes across as petty, and that's not something you want a reputation for. If you have a technical reason for blacklisting \t, put that in the documentation instead.

Also, a bug report: on 64-bit Ubuntu with 2 GB of RAM, after following the instructions to install Stanza and successfully running `stanza version`, I try to compile the "Hello World" example, and this causes `cc` to crash with an out-of-memory error while trying to consume a 7.6 MiB "tmp1.s" assembly.


[dispos@vbox: ~/mystanza]$ time ./stanza examples/helloworld.stanza -o helloworld
cc -std=c99 'tmp1.s' '/home/dispos/mystanza/runtime/driver.c' -o 'helloworld' -lm
Cannot allocate memory

real    0m38.292s
user    0m5.576s
sys     0m1.796s

[dispos@vbox: ~/mystanza]$ cc -v 2>&1 | tail -n 1
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04)

[dispos@vbox: ~/mystanza]$ date -R --reference=../lstanza.zip
Wed, 18 May 2016 15:40:50 -0700
RIP GameDev.net: launched 2 unusably-broken forum engines in as many years, and now has ceased operating as a forum at all, happy to remain naught but an advertising platform with an attached social media presense, headed by a staff who by their own admission have no idea what their userbase wants or expects.Here's to the good times; shame they exist in the past.
Advertisement

Thanks very much for the bug report Wyrframe. We'll look into that.

Our predisposition towards the tab character was of course said in jest. That may have been lost in the wording, but we hope you're not too put off by it to dismiss the rest of Stanza.

Cheers.

-Patrick

I don't see how that is aggressive. I thought aggressive would involve cursing at the user for using tabs and telling them how horrible tabs are and that they should die for using it.

It sounds more like they are joking than telling you to f*** off.

edit:

#fixed some words

#added in edit:

But I don't have faith that any of these are true, after reading...

Indentation is important in Stanza programs. Be careful when trying out the examples.

And don't use tabs. Stanza won't let you. We don't like tabs.

Well, good for you. But this aggressive, inflammatory approach to user-friendliness just lost you an entire market of potential users who aren't even going to give the time of day to that attitude. It comes across as petty, and that's not something you want a reputation for. If you have a technical reason for blacklisting \t, put that in the documentation instead.

Also, don't forget that languages where identation changes behavior and is really important are extremely error prone.

Just a quick remark.

Does your language work in interpreted mode? Or can you execute it without precompiling? If your language non interpreted, you should compare the speed and it's advantages to precompiled languages, rather than scripting languages (where most of them are interpreted).

One other issue with new languages is usually the IDE support. Especially with intellisense, and all the fancy tools we get used to when using other programming languages. In my experience, a good IDE is usually the biggest factor for productivity. How is that for stanza?

shaken, not stirred

The language currently only comes with a compiler. There is no interpreter yet.
We also don't yet have IDE support. There is a syntax highlighter file for VIM users, but that is it so far. A plugin for Eclipse is on the horizon but it won't be out for a while.

For early users, there definitely is a tradeoff between the language's productivity versus its lack of tooling. For our work at Berkeley, the language's inherent productivity has more than made up for its lack of tooling, so we still encourage people to try it out and see whether this is the case for them. But we recognize that other people have differing tooling needs.
-Patrick
That tab thing gives me an idea. If I ever make a language, you'll be forced to have whitespace around any binary operators. No more "a+b" in my language. The inherent productivity will be huge.

That tab thing gives me an idea. If I ever make a language, you'll be forced to have whitespace around any binary operators. No more "a+b" in my language. The inherent productivity will be huge.

He just did that. a+b is a single identifier in Stanza. f(x) and f (x) are also different expressions.

I think this could lead to programmers hunting missing or extra spaces, but I could be wrong, and the language is protected from misspelling for an extent.

That's right. "a+b" is a single identifier in Stanza.

In our experience using and teaching Stanza, the largest initial confusion comes from not knowing that f(x) and f (x) are different expressions. Once users are explicitly told that, they don't typically have any issues with it. Occasionally, they do forget to put spaces between the + in an expression like a+b, but then they get an immediate error that says Stanza could not resolve the variable by the name "a+b".

Just wanted to let everyone know. Stanza 0.9.2 is out, and this latest release supports 64-bit Windows!

-Patrick

I actually don't have a problem with a language enforcing a coding style.

It neatly avoids all the stupid disagreements over style.
if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight

This topic is closed to new replies.

Advertisement