This is a read-only archive of the old Scratch 1.x Forums.
Try searching the current Scratch discussion forums.

#2801 2011-02-14 16:43:21

fullmoon
Retired Community Moderator
Registered: 2007-06-04
Posts: 1000+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

Well, the part about project files is more closely tied to the evaluation model.  It would make me very happy if a project were a text file, so I could debug in emacs!

Instead of all this business about running BYOB4 on top of a JS-based Scheme interpreter, why not just compile the blocks to pure JS and execute it? I would love for BYOB to eventually become a way to write vanilla Javascript, which as someone here pointed out, is arguably the most-used programming language in the world. And as browsers get better, BYOB will only become faster, without you guys doing a thing!


http://i302.photobucket.com/albums/nn100/fullmoon32/wow.jpg

Offline

 

#2802 2011-02-14 17:34:01

chalkmarrow
Scratcher
Registered: 2007-05-18
Posts: 100+

Re: BYOB 3 - Discussion Thread

Jens wrote:

OTOH we want to make BYOB better for use in UC Berkeley's CS10 course and for those highschools which base part of their curricula on it. This is where we (probably) need some kind of an engaging interactive microworld to be controlled by a (sub-) set of blocks.

It's great to see how BYOB is evolving, and I particularly hope that something like CS10 ends up as the basis for future high school AP CS courses. From the Berkeley site, it looks like a great class.

Offline

 

#2803 2011-02-14 18:03:07

14God
Scratcher
Registered: 2008-11-14
Posts: 100+

Re: BYOB 3 - Discussion Thread

xly wrote:

...continue

...and pleasant to use, for all ages from 7 to 77 years. This is the basic project of Scratch , raisen at a much higher level by Brian/Jens without losing the original principles of Scratch. (Consider for example the millions of Scratch projects whereas not a single book has been edited to support this language. Compare with the hundreds of books of many hundred of pages dedicated to JS !!)

To me the applications of BYOB in its 2011 version are more limited by the creativity of Byobers rather than by its lack of technical "bells and whistles" .

OTOH there is no doubt that the team Brian/Jens is perfectly able to invent a new JS-killer "programming language", but this is a totally different story. BYOB should be finalized like it is now, in line with the Scratch spirit...And from then on, up to the 2 genial parents of BYOB 2 to start with a new adventure by inventing (not from scratch !) a new project with a totally different agenda, for example Pad-Web applications.

In the meantime I've improved my initial project at - http://www.xleroy.net/ByobTuto/New/Thumbnails.html - by using most of the new BYOB features.

If you like BYOB as it is now you can always keep the old version handy but what they are talking about is amazing and I would not be one to try and sway them.
BTW- I like your latest project, it makes scrolling a lot more elegant and far less glitchy when you do it that way, Thanks

Last edited by 14God (2011-02-14 18:24:20)


http://cs.berkeley.edu/~bh/sig4.png
Logic and reason have led me to atheism... but I'm stuck with the name  tongue

Offline

 

#2804 2011-02-14 18:07:01

nXIII
Community Moderator
Registered: 2009-04-21
Posts: 1000+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

Panther's handling of colors has been an inspiration to me and we'll certainly do something along those lines (trying to cut down on the number of blocks  smile  ) in 4.0.

For 3.1, the plan is to represent a pixel as a list of four numbers (RGBA) and to try to make invisible how that pixel is actually stored in a bitmap.

Yep, with a list you don't need any new blocks. However, I find the lists-for-data idea potentially a little confusing. For example, if a user has "first name of," "last name of," and "full name of" blocks which operate on a list with three items as well as a color utility which also operates on a list with three items, they are allowed to use the name-list in the color-util function and, furthermore, the block cannot tell anything is wrong. I prefer being able to call "is (input) a (color)" (a custom block, naturally) and define custom types in order to give informative error messages and validate input rather than having code which runs fine & doesn't give any error messages but doesn't run properly.

Also, this leads to bad naming conventions such as using arbitrary numerical indices to describe a certain property of an object.

Last edited by nXIII (2011-02-14 18:09:34)


nXIII

Offline

 

#2805 2011-02-14 18:10:13

14God
Scratcher
Registered: 2008-11-14
Posts: 100+

Re: BYOB 3 - Discussion Thread

Jens wrote:

But once we're done we'll totally pwn, right?!  big_smile

BYOB already makes Scratch look like pretty bad and won't flash make Scratch slower? Yeah it'll pwn!

Last edited by 14God (2011-02-14 18:25:03)


http://cs.berkeley.edu/~bh/sig4.png
Logic and reason have led me to atheism... but I'm stuck with the name  tongue

Offline

 

#2806 2011-02-14 18:37:58

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

xly wrote:

whereas not a single book has been edited to support this language.

This isn't quite true.  I have two Scratch 1.4 books on my bookshelf. (The two authors are Badger and Ford if that helps.)

Once we get first class sprites, costumes, and sounds done, I'll be pretty happy about the language capabilities.  But our Bugzilla database has a bunch of unresolved bugs, and (at least for Brian-style projects) it runs really slowly.  So we'll be doing development for the foreseeable future!

Beyond that, I'd be totally psyched if it could run on an iPad-like device!  Light enough to carry around everywhere, big enough screen to handle the UI.  Maybe running in a browser is the way to get onto tablets quickly.

But, given the necessity of a complete rewrite for speed and stability reasons, we might as well put a bit of effort into UI improvements.  In particular, if we invented a version that'd work on my cell phone and be usable on that tiny screen (to build projects, not just to run in presentation mode), that would be awesome.


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2807 2011-02-14 18:44:29

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

fullmoon wrote:

Instead of all this business about running BYOB4 on top of a JS-based Scheme interpreter, why not just compile the blocks to pure JS and execute it?

Yeah, that's what Jens wants to do.  I don't mind, really, except that JS has syntax to deal with, whereas a Scheme program is already a parse tree with no syntactic nonsense.  A related point is that a Scheme program is already data -- a deep list -- and so it's very easy to have self-reflective programs.  By contrast, neither a BYOB nor a JS program is in a form that can reasonably be manipulated as data.

But Jens might wear me down on this one.  smile


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2808 2011-02-14 18:48:02

xly
Scratcher
Registered: 2010-04-17
Posts: 100+

Re: BYOB 3 - Discussion Thread

14God wrote:

xly wrote:

...continue

...and pleasant to use, for all ages from 7 to 77 years. This is the basic project of Scratch , raisen at a much higher level by Brian/Jens without losing the original principles of Scratch. (Consider for example the millions of Scratch projects whereas not a single book has been edited to support this language. Compare with the hundreds of books of many hundred of pages dedicated to JS !!)

To me the applications of BYOB in its 2011 version are more limited by the creativity of Byobers rather than by its lack of technical "bells and whistles" .

OTOH there is no doubt that the team Brian/Jens is perfectly able to invent a new JS-killer "programming language", but this is a totally different story. BYOB should be finalized like it is now, in line with the Scratch spirit...And from then on, up to the 2 genial parents of BYOB 2 to start with a new adventure by inventing (not from scratch !) a new project with a totally different agenda, for example Pad-Web applications.

In the meantime I've improved my initial project at - http://www.xleroy.net/ByobTuto/New/Thumbnails.html - by using most of the new BYOB features.

If you like BYOB as it is now you can always keep the old version handy but what they are talking about is amazing and I would not be one to try and sway them.

I'm not talking of my personal preferences not very worthy in this discussion. But it is obvious that BYOB has severe limitations to become an all-purpose programming language like JS : its Scratch design (script area), its poor performance, its very poor stage window, absence of file management, lack of Windows tinkery etc.

I have no doubt that Brian&Jens are able to imagine and create an extraordinary new programming language but far away from the native base of Scratch/Byob 3.1. Opposedly BYOB 4 could become the long-waited user-friendly educational tool to teach/learn kids and CS students principles and applications of high-level OOProgramming.

Offline

 

#2809 2011-02-14 18:48:43

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

chalkmarrow wrote:

It's great to see how BYOB is evolving, and I particularly hope that something like CS10 ends up as the basis for future high school AP CS courses. From the Berkeley site, it looks like a great class.

Wow, thanks!  There are pretty good odds that BYOB will end up being at least one of the languages for the new AP.  We're working with high school teachers who are trying to present the material to high school kids, typically not running exactly our course, but borrowing units from us for their own purposes.  And we know several other high school teachers who are writing their own BYOB-based curricula.  It's all very exciting.

(You should see the final projects that last semester's CS10 kids did!  They're all amazing.)


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2810 2011-02-14 19:01:55

xly
Scratcher
Registered: 2010-04-17
Posts: 100+

Re: BYOB 3 - Discussion Thread

@ bharvey

"This isn't quite true.  I have two Scratch 1.4 books on my bookshelf. (The two authors are Badger and Ford if that helps.)"

It was just an image to tell that it is easy for a kid to start programming with Scratch/Byob without any book because it is natural, intuitive, graphical, simple, straightforward, user-friendly, responsive etc which is far from being the case with JS or any other text-based language.

Offline

 

#2811 2011-02-14 19:07:07

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

nXIII wrote:

Yep, with a list you don't need any new blocks. However, I find the lists-for-data idea potentially a little confusing. For example, if a user has "first name of," "last name of," and "full name of" blocks which operate on a list with three items as well as a color utility which also operates on a list with three items, they are allowed to use the name-list in the color-util function and, furthermore, the block cannot tell anything is wrong. I prefer being able to call "is (input) a (color)" (a custom block, naturally) and define custom types in order to give informative error messages and validate input rather than having code which runs fine & doesn't give any error messages but doesn't run properly.

Indeed.  I grew up (at the MIT AI Lab) with the slogan "don't protect the user from himself."  That position has definitely influenced the design of Scheme (at MIT) and BYOB.  On the other hand, the next Scheme standard (in the works) will have some form of enforced data abstraction built in.

But it's easy enough to build your own, if you feel the need.  Just use the first element of every list to store its data type.  (At one point I was advocating a feature that if the first element of a list is a command, it's used as the print procedure for this list, so, e.g., you could represent 2/3 as the list whose three elements are

Code:

THE SCRIPT [JOIN [ITEM 2 OF < >] [JOIN </> [ITEM 3 OF < >]]]
2
3

and when you SAY it, you see 2/3 instead of a list box.  I still like this idea but we haven't gone anywhere with it.)

Anyway, your procedures can check for a type tag as the first item of the list if you want to protect yourself.

I suppose we could help you out by adding a Predicate slot in the long form input dialog for a type-checking predicate that reports True if the input is the right kind of thing, so we'd be doing the enforcing, but only if you ask for it.

Also, this leads to bad naming conventions such as using arbitrary numerical indices to describe a certain property of an object.

... as I did in the print-rational procedure above.  You're right, I should have defined selectors NUMERATOR and DENOMINATOR but I wanted the example to be readable on its own.  In my own code I generally try to have abstract selectors for the members of a finite non-variadic data type.

One of our goals should be to be able to write, in BYOB, a block that would look like

Code:

MAKE-SELECTORS <rational> [LIST <numerator> <denominator>]

and the result would be to define

Code:

NUMERATOR-RATIONAL <rational>
  REPORT [ITEM <2> OF <rational>]

DENOMINATOR-RATIONAL <rational>
  REPORT [ITEM <3> OF <rational>]

We can do it if we have first class variables!  smile

Last edited by bharvey (2011-02-14 19:08:00)


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2812 2011-02-14 19:16:21

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

xly wrote:

[But it is obvious that BYOB has severe limitations to become an all-purpose programming language like JS : its Scratch design (script area), its poor performance, its very poor stage window, absence of file management, lack of Windows tinkery etc.

Some of those, most notably the speed, will be addressed in the JS rewrite.  But the last two examples aren't interesting as programming language features; they're just library functions.  I can easily imagine that we have a CALL-JAVASCRIPT block that takes any number of BYOB inputs, uses their values as inputs to a given JS library procedure, and reports whatever JS reports.  Then users could build the I/O libraries themselves!

(When I suggested that to John Maloney two years ago he said "that'd be hard because a lot of JS functions work using callback procedures" and I just smiled and spread my arms out until he got it -- BYOB's first class procedures are perfect for callbacks!)


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2813 2011-02-14 19:28:03

14God
Scratcher
Registered: 2008-11-14
Posts: 100+

Re: BYOB 3 - Discussion Thread

Funny to think we didn't start with a page 113 today.


http://cs.berkeley.edu/~bh/sig4.png
Logic and reason have led me to atheism... but I'm stuck with the name  tongue

Offline

 

#2814 2011-02-14 19:36:05

xly
Scratcher
Registered: 2010-04-17
Posts: 100+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

xly wrote:

[But it is obvious that BYOB has severe limitations to become an all-purpose programming language like JS : its Scratch design (script area), its poor performance, its very poor stage window, absence of file management, lack of Windows tinkery etc.

Some of those, most notably the speed, will be addressed in the JS rewrite.  But the last two examples aren't interesting as programming language features; they're just library functions.  I can easily imagine that we have a CALL-JAVASCRIPT block that takes any number of BYOB inputs, uses their values as inputs to a given JS library procedure, and reports whatever JS reports.  Then users could build the I/O libraries themselves!

(When I suggested that to John Maloney two years ago he said "that'd be hard because a lot of JS functions work using callback procedures" and I just smiled and spread my arms out until he got it -- BYOB's first class procedures are perfect for callbacks!)

@bharvey

, May I suggest  you to visit the following link to look at a 3D demo of XLogo,( a flavour of Logo written in Java by a french teacher)... to make you dream of having Byob 4 running like that !  XLogo offers a whole set of 3D primitives (Imagine the potential of Byob + 3D applications !!!)

http://xlogo.tuxfamily.org/fr/html/examples-fr/3d.html

Offline

 

#2815 2011-02-14 19:39:41

14God
Scratcher
Registered: 2008-11-14
Posts: 100+

Re: BYOB 3 - Discussion Thread

xly wrote:

(Imagine the potential of Byob + 3D applications !!!)

Provided that it was fast enough BYOB would have kids making some pretty sweet programs.

"I think I talk too much" -me

Last edited by 14God (2011-02-14 19:55:45)


http://cs.berkeley.edu/~bh/sig4.png
Logic and reason have led me to atheism... but I'm stuck with the name  tongue

Offline

 

#2816 2011-02-14 21:34:25

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

xly wrote:

(Imagine the potential of Byob + 3D applications !!!)

Doesn't tempt me at all -- I'm not a graphics person!

The Scratch Team made a deliberate decision to go with 2-D graphics and I think they were right about that.  People who program in Alice (3-D) put a ton of effort into getting the camera position and angles right, none of which has any intellectual interest.

/My/ idea of what we should add to get sweet kid programs is text boxes!  smile


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2817 2011-02-14 21:39:58

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Yet another experimental release:

Jens wrote:

This build once again changes invisible things:

     - the ATTRIBUTE reporter can now be dropped into Boolean slots
     - the functionality of the experimental GET _ OF _ block has been merged into the _ OF _ block

Now there is only one OF block again (the "old" one known from Scratch and previous versions of BYOB), and it is supposed to support all existing Scratch and BYOB projects as well as the new crazy attribute stuff without ever evaluating its object slot "accidentally" (in case there's a CLONE reporter in there).

There are some hairy details to this, so please let me know if you come upon any major glitches (aside from the fact, that recent projects that use the interim OF block will no longer be able to use it).

Enjoy!
--Jens


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2818 2011-02-14 21:48:08

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

nXIII wrote:

in order to give informative error messages and validate input rather than having code which runs fine & doesn't give any error messages but doesn't run properly.

This brings up one of the interesting Scratch design decisions, which was to avoid error messages whenever possible.  Instead they try not to let you make the mistake in the first place, e.g., by a block refusing to drop into a wrong-shaped slot.  This gets harder when you have variables, so you can't tell until runtime what the input is.  Still, whenever possible, I'd like to avoid error messages.


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2819 2011-02-14 22:03:50

chalkmarrow
Scratcher
Registered: 2007-05-18
Posts: 100+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

chalkmarrow wrote:

It's great to see how BYOB is evolving, and I particularly hope that something like CS10 ends up as the basis for future high school AP CS courses. From the Berkeley site, it looks like a great class.

Wow, thanks!  There are pretty good odds that BYOB will end up being at least one of the languages for the new AP.  We're working with high school teachers who are trying to present the material to high school kids, typically not running exactly our course, but borrowing units from us for their own purposes.  And we know several other high school teachers who are writing their own BYOB-based curricula.  It's all very exciting.

(You should see the final projects that last semester's CS10 kids did!  They're all amazing.)

Great to hear. As I may have mentioned ('complained') to Jens , there's a real void in public high school CS programs these days, I think, even compared to the early 80's.  In the old days, we all got excited and stayed after school to type Basic programs from Byte into the TRS-80s or Apple IIs that were stored in the corner of the math classroom. Now, 11th graders are told, on the first day of AP CS, "start your programs with 'public static void main(String [ ] args)', and we'll tell you why later."  I think something like CS10 is exactly what we need. The fact that "Kinect," "Recursion," and "Game Theory" all appear on your CS10 web page is all I need to know  smile

Offline

 

#2820 2011-02-14 22:34:59

fullmoon
Retired Community Moderator
Registered: 2007-06-04
Posts: 1000+

Re: BYOB 3 - Discussion Thread

chalkmarrow wrote:

Now, 11th graders are told, on the first day of AP CS, "start your programs with 'public static void main(String [ ] args)', and we'll tell you why later."  I think something like CS10 is exactly what we need. The fact that "Kinect," "Recursion," and "Game Theory" all appear on your CS10 web page is all I need to know  smile

Ha! Good lord, that was exactly what my teacher told my programming class the day we started Java. There was an uproar as everyone kept trying to compile various mutations of this method signature until we gave up and played Wolfquest.

I don't know if I'm going to take AP CS, but I'd sign up today if it was in BYOB!


http://i302.photobucket.com/albums/nn100/fullmoon32/wow.jpg

Offline

 

#2821 2011-02-14 23:22:20

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

chalkmarrow wrote:

The fact that "Kinect," "Recursion," and "Game Theory" all appear on your CS10 web page is all I need to know  smile

Don't forget my favorite, higher order functions!  smile

fullmoon wrote:

I don't know if I'm going to take AP CS, but I'd sign up today if it was in BYOB!

This course isn't meant to replace the Java-based AP CS A.  This one is the "CS 0" course for humanities types with no programming experience.  Anyway, you'll be in college before the AP people get around to writing a CS Principles (which is what they call it) exam.


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2822 2011-02-14 23:29:13

fullmoon
Retired Community Moderator
Registered: 2007-06-04
Posts: 1000+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

This course isn't meant to replace the Java-based AP CS A.  This one is the "CS 0" course for humanities types with no programming experience.  Anyway, you'll be in college before the AP people get around to writing a CS Principles (which is what they call it) exam.

Bah. I'm not particularly fond of Java. But I suppose taking the class would probably look good on a college application...


http://i302.photobucket.com/albums/nn100/fullmoon32/wow.jpg

Offline

 

#2823 2011-02-15 00:03:51

14God
Scratcher
Registered: 2008-11-14
Posts: 100+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

Doesn't tempt me at all -- I'm not a graphics person!

The Scratch Team made a deliberate decision to go with 2-D graphics and I think they were right about that.  People who program in Alice (3-D) put a ton of effort into getting the camera position and angles right, none of which has any intellectual interest.

/My/ idea of what we should add to get sweet kid programs is text boxes!  smile

What about 3d math? I had to learn a lot to use 3d environments as apposed to 2d ones. But If Jens wants to make it so BYOB is backwards compatible with JS so you can edit any JS program with it, then I could use my uncles game engine(3d) and script my program with BYOB.


http://cs.berkeley.edu/~bh/sig4.png
Logic and reason have led me to atheism... but I'm stuck with the name  tongue

Offline

 

#2824 2011-02-15 00:18:55

14God
Scratcher
Registered: 2008-11-14
Posts: 100+

Re: BYOB 3 - Discussion Thread

fullmoon wrote:

Bah. I'm not particularly fond of Java. But I suppose taking the class would probably look good on a college application...

Java kinda sux. People waste a lot of time with unneeded typing with Java and Java is very very  slow. It would be more valuable if people would take the time to compile their programs for multiple platforms. I very much expect to see a Java killer in a decade or two.

EDIT:
“If Java had true garbage collection, most programs would delete themselves upon execution.”
--Robert Sewell (No idea who that is  tongue  )

Last edited by 14God (2011-02-15 04:33:17)


http://cs.berkeley.edu/~bh/sig4.png
Logic and reason have led me to atheism... but I'm stuck with the name  tongue

Offline

 

#2825 2011-02-15 01:06:00

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

14God wrote:

What about 3d math? I had to learn a lot to use 3d environments as opposed to 2d ones.

If you wanted to write your own 3D library in BYOB, then you'd learn some trigonometry.  But if we do that work for you, I don't see where the math comes in.

P.S. You and fullmoon should just learn Scheme.


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

Board footer