Hey Mike!<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">In a recent article in Computer Music Journal, the Chuck team finally<br>

came out and admitted that &quot;readability and clarity trumps performance<br>
and conciseness.&quot; &nbsp;In as much as Chuck was designed as a pedagogical<br>
tool for the PLOrk class (and now SLOrk), the choice of a simple<br>
imperative language (painfully C-like) I think is justified.<br>
</blockquote><div><br>I&#39;m not sure why you write &quot;finally&quot; here; I&#39;m not even sure I can remember any ChucKian paper that *didn&#39;t* make this very clear, correct me if I&#39;m wrong but I think this was explained in the early papers already and hinted at in the old priority lists and so on.<br>
<br>I think this is a good choice, not just for novice users. Aiming something too much at the novice is -IMHO- a bad idea as people will only be a novice for such a short time. It&#39;s quite often that we see people sign up to the forum, ask how to get running at all and within a few days come up with a quite functional musical toy/tool. I&#39;m not sure I&#39;d call people &quot;novice&quot; after that any more.<br>
<br>Being very readable is good for everybody. It&#39;s good in situations that are high on stress and/or beer, it&#39;s good at 3am and it&#39;s good for resuming work on a complicated project after a month or two. Basically it&#39;s good for all of us. I&#39;m personally convinced clear language can/could save us all a lot of confusion and disagreements, often even arguments. Sadly in real life we are stuck with natural languages so some confusion there is unavoidable there. <br>
<br>A few days ago I walked for a few extra Kilometers because the directions I got stated a certain road would &quot;turn into&quot; another. I took &quot;turn into&quot; to refer to &quot;change into&quot; while what was meant was that I could take a &quot;turn&quot; into this other road. Clearer directions would have saved more time there than a bike could&#39;ve.<br>
&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
It&#39;s hard for me to accept this, since, like you, I find the language<br>
lacking. &nbsp;To be precise, the first 5 minutes of Chuck are pure joy,<br>
but it becomes an uphill battle from there to do anything of<br>
significant complexity. &nbsp;The creators of Chuck want very much to keep<br>
it simple. &nbsp;In order to do this, they have to toe a very fine line<br>
between functionality and approachability.<br>
</blockquote><div><br>I think I&#39;m fairly aware of the sort of thing you are trying and doing and I&#39;m not sure I agree what you are fighting is a actual language issue. IMHO the more relevant question there at this moment is some bad bugs and a lack of documentation. I&#39;m thinking about the type system and casting in particular here.<br>
<br>To me those are age issues (and developer time constraint issues) more than real language design ones. As you know very well; ChucK as a program doesn&#39;t always and everywhere follow ChucK as a language specification. Mostly the difference is pure bugs. Right now I feel that the problem with (very) advanced code is that -so far- relatively few people write it and so once you start doing that you&#39;ll run into a relatively large amount of bugs.<br>
<br>This makes such code hard or sometimes even impossible to write but to me that&#39;s a bug issue and not a language one.<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
The upsides of this include the fact that many novice programmers are<br>
attracted to Chuck, and it&#39;s easy to get started. &nbsp;I think that the<br>
success of any addition to the language depends on two things. &nbsp;The<br>
first is that it provides a unique and demonstrably useful<br>
functionality that previously did not exist. &nbsp;The second is that the<br>
addition does not in any way limit the approachability of the<br>
language.<br>
</blockquote><div><br>Agreed. Well, agreed as long as additions are made in a way that&#39;s coherent with the rest of the design. So far ChucK syntax is quite coherent and that in itself makes it easy to write.<br>&nbsp;<br>
I too would like things like functors and i&#39;d like (chuck-) operator overloading but not at the expense of coherence.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
I&#39;m trying to get this community to share their code a little more so<br>
that we can collect tools that make the use of Chuck more powerful.<br>
</blockquote><div><br>This is clearly great.<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
Also, Michael Heuer has provided a git repository of some library code<br>
that he uses to do functional programming (using functors, since<br>
functions are not first class objects in Chuck) and tweening, etc.<br>
Honestly, I&#39;m still trying to wrap my head around it (being a novice<br>
myself). &nbsp;It is here:<br>
<br>
<a href="http://github.com/heuermh/lick/tree/master" target="_blank">http://github.com/heuermh/lick/tree/master</a></blockquote><div><br>Wow, how did I miss that? That looks great! <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Rambling again...<br>
<br></blockquote></div><br>Not at all, it all seemed quite coherent and sensible to me, even if I didn&#39;t agree with every point you made.<br><br>Yours,<br>Kas.<br>