4 ms·
I'm not a fan of languages designed "for children". They tend to be toy languages with limited expressibility, and libraries tend to be limited or nonexistent,
by kylec 13y ago
I'm not a fan of languages designed "for children". They tend to be toy languages with limited expressibility, and libraries tend to be limited or nonexistent, severely limiting what the user can actually do with the language.
When I was in middle school, I first learned to program using BASIC. While BASIC was designed to be easier to use, it was still a full language designed for people to be productive in.
There are a whole host of languages that can be taught to (or independently learned by) children that have a clean, simple syntax. Why do we need to create another one with all the drawbacks a small, obscure language brings to the table when Ruby, Python, Scheme, etc exist and are just as easy to get started in, but much more powerful when you dig into them?
- krainboltgreene 13y agoThis comment assumes that Ruby, Python, and Scheme are easy enough for children to get started with, and I disagree with that assumption. This is clearly, in my mind, better than the languages out there and I've only seen 3 lines.
- 6d0debc071 13y agoWhy do you disagree with it? Children have started on and understood them easily enough before.
- vidarh 13y agoAge 5-7 I spent figuring out to get sprites and music to work on a Commodore 64 that had no commands for it - it was all "POKE"'s to various memory locations. I was by no means unique for my generation, or even my class. There's a huge number of us that are evidence that non-custom languages that were massive pains to program are easy enough for children to get started with. Does Ruby, Python and Scheme have dark corners that are harder to understand than BASIC? Sure. Just like my C64 had all kinds of secrets I couldn't figure out by myself by POKE'ing randomly around at that age. But I'd hazard a guess that most children will be mature enough at some point between 5 and 10 to be able to pick up the basics of pretty much any reasonably "normal" language if they have the motivation to try (for me it was seeing my dad program a simple game and wanting to be able to do the same thing). I'd hate to dumb it down unnecessarily.
- James_Duval 13y ago> Scheme Out of interest, what are the dark corners of Scheme? I've been using Racket for a while now and I've not come across any unexpected behaviour. I suppose using non-idiomatic language elements such as mutations is a little odd but so far I've found nothing in the language which has surprised me.
- vidarh 13y agoI meant as in "stuff that is difficult for most 5-10 year olds (or so) to pick up easily on their own".
- GregBuchholz 13y agoOleg Kiselyov has done some exploration into the darker corners of Scheme. See things like: How to Write Seemingly Unhygienic and Referentially Opaque Macros with Syntax-rules http://okmij.org/ftp/Scheme/macros.html#dirty-macros http://okmij.org/ftp/Scheme/macros.html#dirty-macros
- lettergram 13y agoI agree this language is easier than say Ruby or Python, but I do remember in 4th and 5th grade (8 to 10 uears old) learning a bit of BASIC from a couple books my father gave me. By the end of 5th grade I had written a calculator, a stopwatch and a couple other items in BASIC(programming exercises from the book). Then in high school I decided to learn some Ruby and had a good time tinkering with that and the things I learned from BASiC made it relatively easy. The point is, a kid can pick up on that stuff if they want to learn it and BASIC is defiantly simple enough to "start with" and I would guess so is Python and Ruby which don't have too much semantic complexity.
- ronilan 13y agoI think your'e right. The rule of thumb when it comes to "designed for children" goes something like this - if it does not offer progression toward the "adult" version then it is a toy.
- loumf 13y agoI think making toys for children is a good idea. There are lots of examples in the physical world that don't progress towards the adult version that are fun and educational. My problem with this is I'm not sure kids would find it fun. Something like HacketyHack that has integrated music and graphics feels like the kind of thing that would make the programs kids want to make. I'd also try Processing.
- voidlogic 13y ago>I'm not a fan of languages designed "for children". This, I think if I was helping I child get into programming I would get them started with QB64 [1], [2]. Then once they mastered that move on to HTML/CSS/JS and C or Go. Personally I started with GWBASIC (at age 7 or 8), then moved to QBASIC, then learned VB, and then C/C++. Then in college I learned Java and via work learned C#. Nowdays I program full time in Go. (I of course have learned many other languages and platforms along the way , but those were always what I wrote in when left to my own devices). 1: https://en.wikipedia.org/wiki/QB64 https://en.wikipedia.org/wiki/QB64 2: http://www.qb64.net/ http://www.qb64.net/
- tootie 13y agoThere is a fundamential principle of programming that I think most failed programmers can't wrap their head around at that is GIGO. When you start typing words, most people will have trouble with the rigorous and literal interpretation of words that are normally far more expressive and nebuluous when shared with people instead of computers. And, if I may step way out on a limb, this is especially difficult for women and seems to be a major tripping point for women who are otherwise more than bright enough to be good programmers. I think that Isla seems to be usable for any minimally literate kids (like 6 years old) and can impart GIGO while being really simple and fun. It's not a replacement for BASIC, but it can be seen as a stepping stone to it.
- nawitus 13y agoSuggestion: An IDE for children which only allows valid sentences to be inserted. E.g. they could click "create variable" or "create function call" button which would be a form/wizard/dialog to create it. This could be combined with "switch to advanced mode" button which would allow normal typing.
- bitwize 13y agoI actually wrote one of these when I was about 11. It was a menu-driven program written in BASIC that constructed (more or less) syntactically correct BASIC programs. It had a user interface similar to Multiplan, or the Microsoft Word of the day. I eventually abandoned it because even as a kid, for me it was faster to type stuff in than to mess around with a program like this; and typing gave me access to the whole language rather than just what I had implemented in the menus so far.
- swarthy_io 13y agoI agree, this is what I tell non-programmers who are interested in learning more. I phrase it as: "Most people are too smart to program." The way we talk to each other involves a lot of abstraction and context. It is very hard to speak __simply__ to a computer, unlike normal conversation.
- maryrosecook 13y agoI feel that Ruby, Python and BASIC are too complicated for five year olds. My aim with Isla was to make a language that avoids as much programming jargon as possible, and assumes no prior familiarity with programming. This is why I made it natural-language-like and omitted punctuation from the syntax as far as possible.
- nawitus 13y agoI think 5 year olds should begin with graphical 'programming' environments like Klik or The Games Factory (those are old now, but I'm sure there are modern replacements). They offer simple event based programming and the children don't need to bother with syntax errors etc. They also have a built-in graphical edition so it's a bit more fun than just playing with a terminal. After a few years it's easy to continue with basic-like languages.
- kevinpet 13y agoIf you're in middle school, you aren't the target market for languages designed for children.