Slashdot Mirror


Stephen Wolfram: No Need To Teach With 'Toy Programming Languages' Like Scratch (wolfram.com)

theodp writes: From Stephen Wolfram's blog post announcing the Wolfram Programming Lab: "It's a very important — and in fact transformative — moment for programming education. In the past one could use a 'toy programming language' like Scratch, or one could use a professional low-level programming language like C++ or Java. Scratch is easy to use, but is very limited. C++ or Java can ultimately do much more (though they don't have built-in knowledge), but you need to put in significant time—and get deep into the engineering details—to make programs that get beyond a toy level of functionality. With the Wolfram Language, though, it's a completely different story. Because now even beginners can write programs that do really interesting things. And the programs don't have to just be 'computer science exercises': they can be programs that immediately connect to the real world, and to what students study across the whole curriculum. Wolfram Programming Lab gives people a broad way to learn modern programming — and to acquire an incredibly valuable career-building practical skill. But it also helps develop the kind of computational thinking that's increasingly central to today's world." So, when it comes to programming education, are schools hitchIng their cart to the wrong horse?

214 comments

  1. ob by Anonymous Coward · · Score: 0

    draw cat
    cat.say "frosty piss"

  2. Breaking News, Details At 11 by Anonymous Coward · · Score: 5, Insightful

    Guy with profit motive thinks his pricey programming environment is better than one that is free.

    1. Re:Breaking News, Details At 11 by Anonymous Coward · · Score: 4, Insightful

      More like guy with a reputation for having a huge ego misrepresents another option that is aimed at an entirely different group of people. The scratch environment is for a very specific audience, and it is not in any way in competition with Wolfram's audience.

    2. Re:Breaking News, Details At 11 by ShanghaiBill · · Score: 4, Interesting

      Guy with profit motive thinks his pricey programming environment is better than one that is free.

      He also doesn't understand how Scratch is used. I help teach programming to 4th graders in an after school program, using Scratch. The kids go to the site, and start programming. With Wolfram's site, they can't do that, because they hit an immediate roadblock: An email address is required. Most 9 year old kids don't have an email address, and don't know how to get one.

      I was unable to create an account, because it seems to be Slashdotted, but from looking at the demos, it seems to require a lot of typing, rather than the graphical interface that Scratch uses. So my impression is that this is something that is too hard for young kids, but too silly for adults. In my school district, after the kids learn Scratch, they move up to a "real" programming language (Python) in middle school, so I am not sure if this product has a niche.

    3. Re:Breaking News, Details At 11 by Anonymous Coward · · Score: 1

      The one really nice thing about scratch is the online environment. Where you can easily share your programs with others.

      You can run other people's programs (games), view their code, remix it, copy it into your own program, etc. You can also keep everything private if you want.

      Scratch isn't perfect, even a little limiting, but the community is great.

    4. Re:Breaking News, Details At 11 by Anonymous Coward · · Score: 3, Informative

      With Wolfram's site, they can't do that, because they hit an immediate roadblock: An email address is required.

      The big red button right after the page title says "Start programming now (no sign-in required)".
      I think a loggin is only required if you want to save work -- just like Scratch

    5. Re:Breaking News, Details At 11 by fahrbot-bot · · Score: 1

      More like guy with a reputation for having a huge ego misrepresents another option that is aimed at an entirely different group of people. The scratch environment is for a very specific audience, and it is not in any way in competition with Wolfram's audience.

      Options to that thought:

      1. The Scratch audience is more sophisticated than we think and yearn to do maths.
      2. Wolfram's audience is less sophisticated than we think and yearn to color and draw.
      --
      It must have been something you assimilated. . . .
    6. Re:Breaking News, Details At 11 by Anonymous Coward · · Score: 0

      He may not be wrong, but it does come across that he is worried we're not hitching up to HIS horse.

    7. Re:Breaking News, Details At 11 by HiThere · · Score: 1

      Well, if you know Scratch and want to do maths, then Squeak with e-toys is perfect for you.

      I don't know Wolfram's tools well enough to comment on them, however. (As in "I've never seen them used, or talked to anyone who used them.".)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    8. Re:Breaking News, Details At 11 by HiThere · · Score: 1

      Is Scratch on-line now? When I tested it a few years ago I installed it, and if there were any other options I ignored them.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    9. Re:Breaking News, Details At 11 by meerling · · Score: 2

      Whether the kids have an email address or not, I think the real issue is that trying to teach someone to program by starting with a low level language instead of a high level language is kind of like throwing someone that can't swim into the deep end of a river.
      It seems to me that the languages used to teach are intended to be rather simple, and though that limits their functionality, it makes it a lot easier to learn, and a lot less scare. If you just hit them with professional type stuff at square one, a lot of them will just give up right there and many others will avoid it in the first place because they've already heard how difficult it is. Back to the whole swimming thing, it's like starting them off in waist deep water learning how to float.

    10. Re:Breaking News, Details At 11 by Anonymous Coward · · Score: 0

      I'm surprised most 9 year olds don't have an email address these days. I think I got my first one when I was 12 or something, but I'm 31 now.

    11. Re:Breaking News, Details At 11 by Altrag · · Score: 2

      There's two arguments there:
      - Starting at a high level language will allow a wider audience, but they'll come out not knowing the fundamentals.

      - Starting at a low level language will scare off many casuals, but those who stick with it will (typically) know a lot more in the end.

      In our modern era of "everyone should have a chance!" thinking, the former is definitely the way to go. Unfortunately it makes it harder for those who want to dig deeper to do so because you end up forming a lot of bad habits that are hard to break even when you know better.

      Still, at least its possible to go that direction.. usually if someone is scared off from "programming" because their teacher started them in C, they probably won't try another programming course even if its dramatically less obscure (especially since they wouldn't have gained the knowledge needed to understand the difference.)

    12. Re:Breaking News, Details At 11 by Anonymous Coward · · Score: 0

      I was programming ASM and C in 3rd grade. Do we really need stuff like Scratch to engage kids with programming?

    13. Re:Breaking News, Details At 11 by GodelEscherBlecch · · Score: 4, Insightful

      There's two arguments there: - Starting at a high level language will allow a wider audience, but they'll come out not knowing the fundamentals. - Starting at a low level language will scare off many casuals, but those who stick with it will (typically) know a lot more in the end.

      I think people keep turning this into a false choice by assuming that there is only only one end goal for education in coding, which is a career in programming. There are in fact many (and in another decade will surely be many more) careers where a secondary skill in 'light' coding (aka: scripting) is a huge benefit if not a requirement. Starting at the high level is dead wrong (IMO) if you intend to be a programmer, but is just fine if you are targeting basic code-literacy and the ability to write script-y stuff against existing APIs. Since public school is about maximum exposure to a wide area of topics, I think that it makes the most sense to teach high-level as the core class and supply low-level as an elective or AP course. The people who take the core class will still benefit from it even if they never pursue programming, just like those of us with decent grammar / math skills have a general leg up in the world even if we are not writers / mathematicians.

      I really don't know why people don't get it that every time Obama or whoever says that we should get kids to 'code' they are referring to code-literacy as an avenue or compliment to many careers (STEM and otherwise), not turning an entire generation of children into career programmers. The latter is so patently absurd I have to assume this is a willful misinterpretation, but I guess it is no more ridiculous than a lot of the other things some folks around here ascribe to the government (or their phobia thereof) for the purposes of strawman-ing it to death.

    14. Re:Breaking News, Details At 11 by Anonymous Coward · · Score: 0

      Eh, not so much. It's more like "Please quit teaching X in favor of Y (that nobody uses)"
      Only one language should be taught. And that language is C. Once students get the hang of C, they should be able to determine if they want to use C++ for their projects. The absolutely poor support for C under Windows (due to Microsoft having hitched itself to the C++ camp and never supporting enough of the C++ standard functionality) just means you need to use a compiler that supports the functionality you want.

      The reason for this is that only the C runtime library is consistent between all operating systems, give or take a few unix-specific things that don't apply to Windows. C++ tends to also be available in all operating systems but it's a much more fragmented world (eg Windows will have one C++ runtime for each version of Visual Studio, but only one C runtime.) On OSX you also get the option of OBJC/OBJC++ and Swift, but that is specific to OSX/iOS, so developing your portable software should not be done on OSX with OBJC/OBJC++/Swift without an installable runtime on all other platforms, which only Windows actively has (look through the iTunes software and see it has OBJC runtimes.)

      All other languages require platform support, so you don't use those languages unless you are committed to learning all the quirks. Quite frankly, everyone should only be using C unless their product specifically calls for Object Oriented Programming, by which then remember not to commit cardinal sins of programming (eg distributing everything as libraries when you've actually changed the functionality from stock.)

    15. Re:Breaking News, Details At 11 by KGIII · · Score: 1

      Need? Probably not, we don't need it. Is it good to have? I'd say yes. Why? It's a fine introduction into some logical thinking that gives you near immediate gratification or notification that you failed and need to improve. Why is it a matter of "need" anyhow? Kids don't need lunch, they'll live without it. We still feed them. They don't need history, we still teach them. Why does "need" matter to you in this case?

      Just because you feel like swapping lies on the internet about your supposed ability in third grade doesn't mean that everyone is quite the special snowflake you're pretending to be. Yeah, sorry - I don't believe you were programming in C and ASM in third grade. Sue me... Why don't I believe you? Your faulty logic indicated by "questioning" if it was something that they "need" instead of realizing that it is one of many options to be considered and that "need" is hardly a consideration in this matter. The kids don't even "need" to learn to read. There's countless illiterate people. Hell, the kids don't even "need" to go to school.

      No, you probably still can't program in C or ASM. You might be able to bang out Hello World in BASIC with some help.

      Heh... Prednisone really does make me cranky but I'm still calling you on your bullshit question. Really? You expect that to pass on Slashdot?

      --
      "So long and thanks for all the fish."
    16. Re:Breaking News, Details At 11 by Anonymous Coward · · Score: 0

      agreed, he's nuts. obviously an egomaniac.

      he thinks real world developers are actually going to pay by the api call??

      HAHAHAHAHAHAHAHA!! TOO FUNNY!!

    17. Re:Breaking News, Details At 11 by lucien86 · · Score: 1

      A primer programming course that starts with C ? Maybe they should cut out the middleman and start with naked machine code instead. Maybe even assembly is too high level so teach them using naked hexadecimal and CPU code translation tables.
      C compilers often actually allow direct inline assembly, and all basically allow direct hex coding.
      Create an array, fill it with hex, and then call it as a function.
      I'm a barbarian. :)

      --
      Below the speed of light Special Relativity is one of the most accurate theories in physics - above the speed of light..
  3. Popcorn time by Hognoxious · · Score: 3, Funny

    Settling into a comfy chair & pouring myself a beer...

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    1. Re:Popcorn time by istartedi · · Score: 1

      You don't have to pop your own corn, or run to the store for beer. You can pay Wolfram to deliver, or let him regale you with a message from his sponsors while he pops the corn and pours the beer for you.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  4. I can understand the point. by Z00L00K · · Score: 1

    But C++ and Java isn't for beginners. You need to have a certain level of understanding of programming before you can use them.

    In the 80's we started with Basic (not a good language really, but it was a good way to get kids started)

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    1. Re:I can understand the point. by joshki · · Score: 1, Informative

      No you don't.

      C++ and Java are both great beginner's languages.

      --
      I do not read or respond to AC's. If you want a discussion, log in. Otherwise, don't waste your time.
    2. Re:I can understand the point. by gl4ss · · Score: 1

      no you don't.

      if you make toy level programs all you need is to be able to call
      toy.moveLeft(20);

      I thought that would be the point. that toy level programming in scratch or java needs just toy level knowledge so why not use something that can be used for something else too... not an advertisement for some weird ass wolfram language i've never heard of until now and unlikely to utilize in my work anyways.

      basic was good that it was included.. even with dos computers. now javascript is what's included.. heck even with tv's.

      if you're stuck with one language though then you're pretty much stuck anyways.

      --
      world was created 5 seconds before this post as it is.
    3. Re:I can understand the point. by DutchUncle · · Score: 0

      "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." - Edsger Dijkstra

    4. Re:I can understand the point. by Anonymous Coward · · Score: 3, Insightful

      I'm sorry, but in the world of instant gratification and kids already used to highly graphical and immersive games from a very young age, writing a program that 'outputs hello world' or having to learn to use some framework or library to do anything 'cool' is not going to engage 5,6,7 year old kids.

      For these age groups, these kinds of graphical block programming languages are very much helpful in that they actually engage the child. I have not played with Scratch in a while, but the exercises on code.org are very engaging, very awesome and they even show you the JavaScript code that would be produced as a result. I think they even have some pure JavaScript exercises now too.

      It's easy to say that we all learned on real languages and it was good enough for us, but much as I hate to say it, we grew up in a different time with different expectations on what a computer program should/can do.

    5. Re:I can understand the point. by Z00L00K · · Score: 1

      Ever tried to describe to someone below the age of 10 why you need to declare variables?

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    6. Re:I can understand the point. by PolygamousRanchKid+ · · Score: 3, Funny

      C++ and Java are both great beginner's languages.

      I've met folks in projects, who have been programming C++ and Java for 10 years . . . and they still program like they are beginners.

      Hmmm . . . maybe a Fountain of Youth . . . ?

      --
      Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    7. Re:I can understand the point. by serviscope_minor · · Score: 5, Insightful

      I wish people would stop quoting that. First, it's junk and second it's incredibly out of date. The quote is from 1975.

      BASIC in 1975 was not very good.

      BASIC by 1982 was much much better. BBC basic (first released in 1982) had simple structured programming with named procedures and functions, local variables and etc. By 1987 BBC BASIC had acquired proper blocks, and was quickly followed by QuickBASIC in 1988. Those are the only ones I know of.

      The glib quote about BASIC has been out of date for approximately 30 years.

      --
      SJW n. One who posts facts.
    8. Re:I can understand the point. by Z00L00K · · Score: 2

      Only if you have made enough mistakes in a language like Basic you will realize that there's a reason to code in better languages. Otherwise you will just get bad coders in a different language and nothing would have been achieved.

      The language doesn't really matter, it's how you apply it that matters.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    9. Re:I can understand the point. by Archtech · · Score: 1

      But C++ and Java isn't for beginners. You need to have a certain level of understanding of programming before you can use them.

      You need to have a certain level of understanding of programming before you can use ANY programming language productively. Which is why it's not really about the syntax and semantics - it's about algorithms and data structures, and above all about mathematical modelling. Until you master the art of creating suitable models of real-world situations, and judging how amenable to computation your models will be, there's not much point in writing a single line of code.

      --
      I am sure that there are many other solipsists out there.
    10. Re:I can understand the point. by Anonymous Coward · · Score: 0

      I'm pretty sure that Dijkstra had his tongue firmly planted in his cheek when he said that.

    11. Re:I can understand the point. by CastrTroy · · Score: 3, Interesting

      Exactly. Same goes for all the boiler plate code just to get things running. We have to start with a bunch of complicated stuff like "int main(int argc, char **argv)" and "#include ". Java makes it even worth by having to declare a class simply to write hello world. Languages like basic are much simpler for beginners because there is no boiler plate code. Hello world is a single line of code, and very easy for people to understand.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    12. Re:I can understand the point. by JoeMerchant · · Score: 2

      No you don't.

      C++ and Java are both great beginner's languages.

      Yeah, that's why there is LabView.

      Some people are easily intimidated by text - not just procedural thinking, but actual text - not many of those people will participate in a text based discussion board like /. but they exist, watching YouTube videos, and working in your company. One way of thinking says: so let people who can handle text handle all the programming. Another way says: give them a mouse and a drag and drop language so we don't have to have endless meetings with these people trying to get them to explain something they want in terms that can actually be delivered.

      If you give a person something they can work with directly, they can learn the limitations for themselves. Otherwise, they'll often assume your "can't be done" explanations are a form of laziness, or ignorance, rather than a communication of the physical realities of the universe we live in.

    13. Re:I can understand the point. by gfxguy · · Score: 2

      Yes... and I think it's important that they understand why. A beginning programming course might do well to teach the basics of what's going on in the computer itself, how code - no matter which language - is changed to machine instructions, and talk about the instruction pointer, simple memory allocation (like what happens when you declare a variable).

      My son takes these crap programming courses in high school, and while it included Java (and scratch, and even python), and while he understood some of what the code he was writing did, he didn't understand that the complicated stuff was being handled by some "magic" libraries the teacher gave them, or what was provided in the IDE they were given. At the end of the day, using the programming environment he was given, he could compile a Java program to byte code and run it... but it didn't generate jar files and, even if it did, he could send it to me and it wouldn't work on my computer because I didn't have all the "magic" libraries that actually did all the work.

      I actually wouldn't have a problem with that if the intent was to give them an understanding of programming concepts like structures or classes and why they are useful, but no, even though he gets great grades, he couldn't explain why he was creating classes in Java. He new he could use System.out.println(), but didn't really know what it was - he just knew that was the statement to print something.

      --
      Stupid sexy Flanders.
    14. Re:I can understand the point. by gstoddart · · Score: 5, Interesting

      You need to have a certain level of understanding of programming before you can use ANY programming language productively. Which is why it's not really about the syntax and semantics - it's about algorithms and data structures, and above all about mathematical modelling. Until you master the art of creating suitable models of real-world situations, and judging how amenable to computation your models will be, there's not much point in writing a single line of code.

      Actually, I disagree it should be about algorithms and data structures to begin with. In fact, it's a terrible idea. Don't shoot for "productively", don't look for "creating suitable models of real-world situations". That's way too much way too fast.

      You don't teach a kid to build stuff by letting them build a real functioning bridge. You give them some legos or building blocks and let them run wild with it. Let them realize things fall over, or collapse, or don't fit.

      What we need is a way to accomplish small, discrete, achievable tasks ... as quickly as possible, in a way they can fiddle with permutations and see the outcomes, and with as little abstract concepts as possible. At least, not ones which seem like abstract concepts.

      You're not trying to make people who are professional programmers ... you're trying to establish "if I do X, Y happens ... if I want something which is kinda like Y, I need to do something which is mostly like X but different in this way".

      One of the exercises I saw done in junior high/high school to teach people the root concept was to get them to "program the robot". You have them walk someone through the steps of doing an easy task for a human ... ideally the "robot" understands you can ONLY do EXACTLY what they tell you, EXACTLY as stated, and that you CAN'T interpret for them.

      "Go get the book" results in nothing. Step with your left foot, step with your right foot, extend your hand, open your hand, close your hand. I had a class mate who just couldn't wrap her head around this until a teacher and I did this after class ... once she'd done it, she suddenly kinda went "oh, so I need to break this down into a bunch of small steps it already knows how to do". She was never going to be a professional coder, but suddenly she understood the underlying fact ... computers are idiots and can't do anything on their own.

      The idea you need to formulate a set of steps, plan it out and describe it correctly to do something is what you're learning when you first get introduced to the concept of "programming". And it's incredibly eye-opening how much people struggle with even that as a concept.

      Start throwing around words like algorithms and data structures, and people will switch off LONG before you've taught them a damned thing.

      You need to lay the foundation to help people being to grasp what it means to start filling in those blanks, and extrapolating to a more generalized solution. You can do an awful lot of that adevelopers.slashdot.org

      What you describe is not suitable for teaching kids, or establishing the concept. It's for people who are going to be pursuing something much more rigorous and formalized.

      --
      Lost at C:>. Found at C.
    15. Re: I can understand the point. by Anonymous Coward · · Score: 0

      You have to learn what numbers are before you can learn trigonometry.

      Glad you aren't my dad.

    16. Re: I can understand the point. by Anonymous Coward · · Score: 2, Interesting

      I started in BASIC. My software made me $4 million last year, and is often cited by other developers as being exceptionally well done.

    17. Re:I can understand the point. by mindwhip · · Score: 1

      Exactly.. I started with Sinclair Basic by myself, then got taught procedural programming with Comal at school, then dabbled a little with AMOS on my Amiga then moved on to Turbo Pascal at Uni, shortly followed by Turbo C, Borland C++ 4.5 (still the most I have ever paid for a single piece of software). More recently C# and Java are my current poison, mainly for work reasons. Had I started with Java with all its complexities, oddities, need to learn the API etc things would have been a lot harder.

      You need to start with something that won't start acting very odd if you type = instead of == or === in an if statement or won't fail to compile just because you missed a ; or put one in the wrong place, as those kind of nuances are very difficult for a beginner to get their head around.

      --
      [The Universe] has gone offline.
    18. Re:I can understand the point. by I-am-a-Banana · · Score: 1

      WTF is an AC?!? Actually I would disagree that C++ and JAVA are good beginner's languages, but depending on how they are taught they could be, and for me the same goes for C# and especially VB. I think coding needs to be taught the way we teach people to drive. You learn all the rules, you obey the rules and you are tested on the rules. Then when you get out in the real world you learn when to break the rules. Now I am not saying C++ and JAVA are bad languages, just not the best to begin with especially if self taught. There is a term in cooking called "Mise en Place", it means to have everything in its place ready to go and planned out when preparing a meal, all the dicing, measuring, cutting, pots and pans all ready and organized. Then when it comes time to cooking the dish it become about the assembly. That is what is missing from most languages. Now traditional Pascal and I believe Modula has this. You have to declare your variables, constants and methods before hand. You cannot just willy-nilly add a variable in-line code to work around an issue. And I think we would have better code if developers learned to code like this. Mise en place, plan out your methods and variables before hand, and lay out the structure, then fill in the actual code. Once competent coding like this then start getting loose with the code.

    19. Re:I can understand the point. by gfxguy · · Score: 3, Insightful

      With all due respect to Dijkstra, that's a load of crap. I'm from the generation of programmers that learned basic on their Commodores, Tis, and Ataris... The difference may be that I was motivated to learn on my own, but there's a whole generation of older, very well established and learned programmers out there from my age group that started with BASIC. And make fun of BASIC all you want, but I've seen Visual Basic, and while it's not my choice, it's a workable object oriented language that I've seen some pretty complicated and impressive programs written in.

      --
      Stupid sexy Flanders.
    20. Re:I can understand the point. by david_thornley · · Score: 1

      C++ is actually not that bad to begin with, if taught right. You can learn to program well, but you won't be prepared for real-world C++ programming, where people use obsolescent parts of the language, use more sophisticated concepts, and generally use more things than you can practically teach a beginner. I'm not sure that this is the right way to proceed, but it's better than teaching C with Classes like my son's textbook did in 2011.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    21. Re:I can understand the point. by david_thornley · · Score: 1

      The other question is what was better back in the late 1960s when I was first exposed. The most-used other languages were FORTRAN, COBOL, and some PL/I, which means either the same sucky control structures or hopeless complexity.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    22. Re:I can understand the point. by MtHuurne · · Score: 0

      I once was an assistant in a course that taught beginners Java. Try explaining why they must have "public static void main(String[] args)" in all their programs when they are writing their first code ever...

      As for C++, the only way I can imagine it being a beginner's language is that you'll regularly feel like a beginner even if you've used it for years.

    23. Re:I can understand the point. by Hognoxious · · Score: 1

      But C++ and Java isn't for beginners.

      Neither, it appears, is English.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    24. Re:I can understand the point. by Hognoxious · · Score: 1

      Teacher: Where do you keep things?
      Kid: In my pockets.
      T: OK, but where do we keep things in the classroom?
      K: Boxes.
      T: Exactly. Do we keep the shoes in with the cookies?
      K: Yukk! No!
      T: So you have a box for this, and a box for that, and you put the right thing in the right box?
      K: Yes.
      T: Well computers need to keep things too. Variables are like boxes, and one thing goes in one and another thing goes in another. That way it knows where everything is.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    25. Re:I can understand the point. by jader3rd · · Score: 1

      But C++ and Java isn't for beginners.

      I started with Java and then learned C++. I can't think of a better way to start as a beginner.

    26. Re:I can understand the point. by fahrbot-bot · · Score: 2

      Ever tried to describe to someone below the age of 10 why you need to declare variables?

      I was a grader in college and can attest to frustrations at having to explain this to people over 10.

      --
      It must have been something you assimilated. . . .
    27. Re:I can understand the point. by Anonymous Coward · · Score: 0

      OMG GORILLAZ AND NIBBLES!!!!

    28. Re:I can understand the point. by Anonymous Coward · · Score: 0

      "Some people are easily intimidated by text"...this is very true, and confusing to me. You say, "just type this on the command line" and they melt down. You say, "you can fix your web page by making this little change to the html" and they run away. Then they inform their pals about how awful that was by...texting. Which they love.

    29. Re:I can understand the point. by Anonymous Coward · · Score: 0

      Hey guess what! The assembled code that gets compiled is also completely independent of the classes and such. Start with a computer and x86 assembler. Learn how a computer works before making up bullshit like objects and classes.

    30. Re:I can understand the point. by thoromyr · · Score: 1

      yeah. I taught myself basic back a long time ago. Numbered lines and lots of gotos. There was gosub, but I didn't really get it. Then I taught myself C, and since then have learned numerous other languages.

      The advantage of basic over C, at least for someone's first exposure to programming, is the immediacy of execution. I wouldn't recommend basic at this point, but there's nothing fundamentally wrong with it just that there are better languages.

      Personally I'd recommend Python to a beginner because the syntax is very straightforward and it is an interpreted language. But there's no major reason not to use perl or javascript or even php as a learning language. (Other than the required goat sacrifices on Friday nights required for Perl, some places frown on that. :)

    31. Re:I can understand the point. by Anonymous Coward · · Score: 1

      "Anybody who doesn't use Java is a fucking pussy." -Abraham Lincoln

    32. Re:I can understand the point. by tshawkins · · Score: 1

      Yeh, its a real dampener on things when you have to load your c compiler from cassette tape every time you want to use it.

    33. Re:I can understand the point. by Anne+Thwacks · · Score: 1
      Ever tried to describe to someone below the age of 10 why you need to declare variables?

      Yes.

      The issue of forward referencing is part of the nature of the universe, not specific to certain computer languages. I would probably actually use the words "Forward references are only permitted where the context enables their dereferencing." and then explain what they mean to some ten year olds, also explaining that it is the same reason that you cannot, in English class, say "He was good" without previously having identified a male suspect. This works for the ones that will learn most from the tools.

      You may wish to use different words to a 10 year old, but that depends on their language skills, world understanding and social background. And yours. It is not necessarily out of place to explain the whole issue, just as it is not always appropriate. Some 10 year olds might be better off kicking a ball round the playground.

      --
      Sent from my ASR33 using ASCII
    34. Re: I can understand the point. by Anonymous Coward · · Score: 0

      Don't you downvote your mother!! Get out of my basement!!!

    35. Re:I can understand the point. by Anne+Thwacks · · Score: 1
      no major reason not to use perl

      Au contraire: There are loads of reasons not to use perl, all of them major.

      Goat sacrifices are one of the more minor ones. Programming has a long tradition of goat sacrifices. I personally worked in a software company that decided to sacrifice a goat. However, the company failed shortly afterwards, so I do not actually recommend goat sacrifice any more than perl.

      --
      Sent from my ASR33 using ASCII
    36. Re: I can understand the point. by Anne+Thwacks · · Score: 1

      Is that you, Bill?

      --
      Sent from my ASR33 using ASCII
    37. Re:I can understand the point. by HiThere · · Score: 1

      Sorry, but while crafted subsets of C++ and Java can be great beginners languages, the full languages are terrible beginners languages.

      If you're in the right age group, C could be an excellent beginners language, as could some dialects of Forth or Lisp. (In the case of Lisp, NOT Common Lisp. Same problem as C++ and Java ... too much. Too many traps.)

      FWIW, I started with Fortran IV and from there went on to PL/1, USCD Pascal, Forth, and Assembler. I never did master PL/1. I got to where I could mainly handle Forth. I never used Assembler except for small routines that I called from something else. I rather liked PL/1, even though I never mastered it. I found Forth so interesting (and so frustrating) that I started trying to design a successor language. I didn't pick up C until over a decade after I'd started programming. But it was C that I think would be the best introduction to programming for a high school student. None of them would be appropriate for an elementary school student, and I even wonder about Scratch...though it has it's points. I'd really think it better to wait until middle school, though.

      Face it, any programming, however you do it, requires the kind of abstraction that you get in subjects like algebra, and shouldn't be introduced until about the same time. Scratch is probably simpler than Algebra in some ways, but it adds dynamics to the mix, which makes it more complex in other ways. (OTOH, I feel the same way about set theory...only moreso. I think it's a mistake to introduce it early, except possibly in a *VERY* restricted form.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    38. Re:I can understand the point. by vel-ex-tech · · Score: 1

      A beginning programming course might do well to teach the basics of what's going on in the computer itself, how code - no matter which language - is changed to machine instructions, and talk about the instruction pointer, simple memory allocation (like what happens when you declare a variable).

      So much this. I was getting ready to get into pointers and memory locations with my previous student before an asshole manager ran her out of the company. This post will be about the method I use which seems to be wildly more successful than the "sit student in front of computer and tell student what to type" approach (i.e. how code.org does it).

      The trick I think is to #1 don't teach new concepts with the computer turned on and #2 turn it into a kind of game where the rules say i.e. ok, this line says let x:= 3, so now we make a space for x and put a 3 in it. Also #3 always start from first concepts, and if introducing a "magic" operation is absolutely necessary, go back later when the student has the necessary tools in her toolkit and actually implement it.

      In general I think this is a huge problem with the Everybody Can Code! thing. The "programming" environment I use on a daily basis resembles a poorly done, Turing-incomplete, bug ridden version of Scratch in a way. My "colleagues" who also use this same piece of niche software routinely engage in magical thinking. All my students I tried to mentor before I switched to the "turn the computer off first and start from first concepts" approach also routinely engaged in magical thinking. There is just something about starting out at the high level that encourages magical thinking. It always ends in tears (and various insane accusations, etc, etc).

      My general progression is truth tables and (very simple) Boolean algebra, how we can represent integer values and characters as a game of 20^H^H8 questions, the essential tools in the programmer's toolkit (let, if, while, and puts--basically assignment, conditionals, loops, and output), then fizz buzz, then methods, recursion, and iteration, then an exercise with Pythagorean numbers, then array and their basic operations (push, pop, shift, unshift, get, set, remove, insert, sort [this is the only magical operation I allow]), then an exercise with happy numbers (ok, I lied, I include another magical operation here that takes an integer and returns the digits as an array, but have some discussion about what the algorithm would look like), and then we're finally ready to turn the computer on and implement our three exercises in Ruby!*

      All exercises are evaluated on paper. Since we're evaluating on paper, we're also dealing with memory locations the student can see for themselves. My pseudocode is a bit of a mish-mash of Ruby and BASIC. Once we have the computer turned on, we use the command line extensively.

      There are a few other areas I touch like relational data before going on to pointers and memory locations, but that's only because in the end, I'm teaching somebody how to use a proprietary environment that's a badly done Scratch.

      Pointers and memory locations could easily come after the happy numbers exercise. I'm thinking the perfect exercise there would be to introduce linked lists and vectors. I've always wanted to represent a linked list node as a tile with a hole in a corner with an inscribed tile in another corner that also has hole. Use some yarn to represent the smaller one as a pointer and tie it to another tile (another hole in the larger containing tile) to get the idea across. Then have the student implement the array operations from the happy numbers exercise using a more C-ish pseudocode. At this point, since we're actually dealing with memory locations and pointers, it might help to have a linear game board with actual memory locations (the tile and yarn idea wouldn't apply when we actually write the pseudocode) say 0x01 through 0x0F or even a large square board to go up to 0xFF.

      And of course, once that's complete, we can fina

    39. Re:I can understand the point. by HiThere · · Score: 1

      Fortran didn't have the "all variables are global" that the early BASIC's had, and THAT was what justified the above quotation. It did, however, lack the structured programming constructs that were present in PL/1. PL/1 was nearly as complex and hard to use as C++, but it had significant advantages over Fortran if you were doing anything involving dynamically allocated memory. (Look up DYSTAL for the lengths some people would go to handle dynamically allocated memory in FORTRAN IV. I don't know COBOL well enough to comment about it.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    40. Re:I can understand the point. by HiThere · · Score: 1

      Well, Java's probably a better starting point than C++. Java 1.x actually had many decent characteristics as a starting point for beginners. But modern Java is too complex to be a good first language. C would be a better starting point. But that's when we're talking about high school or advanced middle school children. For younger children neither is any good, though some children would probably overcome the poor fit. And Scratch has a lot to recommend it. Even so, I think they're probably pushing things too early.

      Also, what about Minecraft? I've heard that it's a pretty powerful environment for learning programming. If so (I've never played it), that might be the best choice.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    41. Re:I can understand the point. by vel-ex-tech · · Score: 1

      This has to be one of the most beautiful comments I've read lately.

      I've found a very easy way to gauge whether a student will succeed or not: put her in front of a command line. If she mostly stays there, you've got a programmer. If she runs away back to the Windows world of GUIs with hidden file extensions, you might have somebody you can train on a few tasks, but you don't have a programmer.

      Really, drag and drop programming I've observed doesn't help at all. They merely mask the deeper intellectual laziness and fear of rational thinking for some and for others the fear of losing their identity and becoming an egghead. It's too easy to get strung along by seeming success only to run into "you're a sexist and you're making everything too technical because you don't think women should be programmers!" the minute things get more complicated than having a Disney princess ice skate in simple geometrical patterns.

      Show me an English major who reads and writes well, and I will show you a programmer. We like to mock English majors, but I have turned an English major into a programmer before.

    42. Re:I can understand the point. by Anonymous Coward · · Score: 0

      give you a hint. The CPU doesn't give a hint about your variable declaration. That's an abstraction from the compiler that makes things more complex. It's just a pointer to some piece of memory and a hint to the compiler about which multiply function to use. In the 80's, children used peek and poke just as well without any variable declaration.

    43. Re: I can understand the point. by gfxguy · · Score: 2

      I'm not asking to teach how to program assembly before another language, just a very high level analogy of memory (I've seen it as a mailbox or cubby hole analogy), and how the instruction pointer moves from one to another, and I'm not going to do the whole thing here. It would be less than one 45 minute class to describe what I'm talking about; it's actually fairly simple (the gist of it), and would do worlds of good for students to understand what they're doing and what happens when you say "A=1, B=2, C=A+B."

      --
      Stupid sexy Flanders.
    44. Re:I can understand the point. by gfxguy · · Score: 2

      Thanks. Only the non-anonymous coward understands what I was saying. You can take 30 to 45 minutes - less than a full class period, to give a brief overview of what's happening behind the scenes. If you explain in simplified terms what happens when you program "A=1; B=2, C=A+B," you're off to a better start then handing someone an already implemented class that reads in an image file and resizes it, and then tell the students to modify the code to make a mirror of the image.... by using the built in "mirror" function that's already given in the super high level image library that doesn't come with the language. But hey, kids these days need pictures.

      --
      Stupid sexy Flanders.
    45. Re:I can understand the point. by flargleblarg · · Score: 1

      Ever tried to describe to someone below the age of 10 why you need to declare variables?

      It's actually quite easy. You just say, "We need to tell the computer (the compiler) what type of data the variable represents. This is so it knows if it's a whole number, a fractional number, or a string, etc. When the computer knows what type the data is, it can automatically enforce the rules about that type — for example that 3.14 can't fit into a whole number, or should be rounded to 3."

    46. Re:I can understand the point. by flargleblarg · · Score: 1

      This is brilliant. Love it!

    47. Re:I can understand the point. by Anonymous Coward · · Score: 0

      Nope. My brother tried it and scared his kids off. Scratch looks to be the way.

    48. Re:I can understand the point. by Anonymous Coward · · Score: 0

      "The computer stores them differently in its memory, since integers are different from decimals or letters." sounds pretty simple....

    49. Re:I can understand the point. by Anonymous Coward · · Score: 1

      You just say, "This is the way you tell the program to start." In an introductory C++ course, students just typed it once, then copied and pasted it to begin the rest of their programs until it came time to do a variation on it, at which point they learned what all that stuff was doing....

    50. Re:I can understand the point. by shutdown+-p+now · · Score: 1

      This explains what variables are, and why they're typed, but not why you need to declare them. When you write in Python, you're basically saying things like "I put 1 into box X", and you get a box labeled "X" right there and then, when you need it. When you write in C, it's the same, except you have to ask for all the boxes in advance - you don't get any later. There's no obvious advantage to the later from this high-level perspective; a kid would take away that C is strict and Python is not, but they wouldn't know why strict is better.

      Of course, an astute kid would also point out that a box can be used for different things (of the right size), too, just not at the same time. So a box can hold a cookie now, and it can hold a shoe later, and then a cookie again. You don't need boxes of different color or anything. Again, this is exactly how Python works (variables don't have types, but they hold values which do have types), and less like C.

    51. Re:I can understand the point. by Anonymous Coward · · Score: 0

      Don't bother then. Just give them a hex editor and let them get on with it.

    52. Re:I can understand the point. by Hognoxious · · Score: 1

      My eyes glazed over reading that. A 9 year old kid would probably burst into tears and never want to touch a computer again.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    53. Re:I can understand the point. by KGIII · · Score: 2

      I think this might apply to both of you so I will place it here.

      I hold my PhD in Applied Mathematics and I could do maths by rote, in my head, really quickly and easily but I never understood it until I had a teacher explain why it was that The formula for finding the area of a triangle actually made sense. (Duh, you're squaring it. It's half of that.) At that point it just "clicked" in my head and from that point on, and with more instruction from that same teacher, I grasped the concepts and not just the rote - I understood and could visualize the maths involved.

      I imagine that point is different and some people may never get that. I can look at a complicated algorithm, work it out, and visualize it. I might even be able to solve it in my head - even if it's kind of complicated.

      All because a teacher told me that you're really just squaring and solving for half the value to find the area of a triangle. Sure, I knew the formula but it just had never clicked. When it clicked - I got it.

      There are other things that sometimes just finally click and I understand them. Like, I had the hardest time (and I'm a real mathematician) understanding why a one-time-pad couldn't be brute forced and then it clicked - it can be anything. You don't know, it's everything that has that many letters. It's just something that clicked and I got but it took two people pretty much beating into my head before it finally clicked.

      That's how my head works. I don't think it's unique but once it clicks, it's a "complete" thing. So, it's nice when it does click but it doesn't always click so I've done many things (not mathematically related) by rote. They've just not yet clicked. I don't have a better to put it. But, if you can find a teacher who can find the special way to make it click for their students - that's a good instructor in my humble opinion.

      I don't know if that makes much sense but that's the best way I can think of to describe it. Hell, it might have even been you who was helping me with the OTP thing. I just couldn't grasp it - and then it just clicked.

      --
      "So long and thanks for all the fish."
    54. Re:I can understand the point. by KGIII · · Score: 1

      You'd be surprised what I learn from reading all these posts. However, your over-thinking it and your kid's a pig. Why? He didn't wash the boxes out so he had dirt from his shoes in there when he later used that same box to store cookies. I believe that's called shooting yourself in the foot with C but, alas, I'm a very, very bad programmer who hasn't really programmed anything except for some PHP in like 15 years. ;-) Seriously, I had professionals take over my code base completely by 2000. I've programmed a few things in Perl, a couple of quick things that I needed in C, and a bunch of PHP and I haven't even done much of that since 2009 or so.

      In short, thanks. You folks make me think. And you should tell your kid to make sure he cleans that memory space of the folks I'd hired would have yelled at me and told me I was doing it wrong. So, wash those boxes out between storing cookies in them or shoes in them. Otherwise you'll have contamination issues. Or maybe a buffer overflow. *nods*

      --
      "So long and thanks for all the fish."
    55. Re:I can understand the point. by shutdown+-p+now · · Score: 1

      Good thing I wasn't explaining it to a 9 year old kid, then.

      As for the kid, I'd just give them Python and tell them that boxes magically appear when they need them (or better yet, that they're always there, on the shelf).

    56. Re:I can understand the point. by shutdown+-p+now · · Score: 1

      I don't have a kid :)

      The "dirty box" analogy is actually kinda good also because it "explains" why, even though you can store different things in the same box at different times, you don't really want to in most cases (i.e. why even in a dynamically typed language, it's probably not a good idea to say x=1 on one line, and then x="abc" right after). On the other hand, the fact that you can do so is still useful in a pinch (e.g. if you suddenly have to move, you grab whatever boxes you have and stuff whatever fits).

      But honestly, it's just not a big deal either way. Variables just operate differently in different languages when it comes to detailed semantics, and there are more models than the two we have discussed (e.g. in Haskell and similar functional language, variables don't store values, they bind to values - so it's not a box, but more like a sticky note that you can write something on once, and then you have to discard it and get a different note if you want to write something else).

      The key concepts are variables in general, conditionals, loops/recursion, functions, general notion of aggregate data structures (collections etc), and reactiveness (observers/events/...). If a language handles all of these adequately with minimum overhead from other concepts, it's good to go for teaching of basic programming literacy. And once on that level, an "industrial strength" language like Java can be tackled directly by mapping those concepts to things in that language, and covering new ones, explaining them in terms of old ones (e.g. OOP = aggregation + functions, at its core).

      The nice thing about Python is that it covers both levels - it pretty much gets out of your way when teaching basic stuff (you don't need to explain "import", "class", "#include" or "main" to write a hello world app), but it still has all the bits of a full-fledged modern programming language, and it weaves them everywhere in an inconspicuous ways. For example, you can explain numbers and strings and lists, and operations on them, without delving into OOP (the only bit that you'll need to gloss over is the dot-syntax for things like "abc".startswith("a"), but it's very easy); and then later, when you do get into OOP proper, you can rewind and explain how "everything is an object", and recast some older code samples from that perspective.

    57. Re:I can understand the point. by KGIII · · Score: 1

      It's so awesome that you mention that - two things spring to mind. I was not a programmer but I programmed because I had to. Make sense? I had to learn in order to do what I wanted to do - which was model traffic. I eventually got it working and eventually hired capable programmers and did things like cross train or even send them to school to learn about traffic engineering to some extent. So, I got it pretty rough from what was what I'm going to call "The Old Guard."

      Manage your memory, wipe it clean and use each block for a specific purpose. Things like that were kind of drilled into me - right or wrong, they're what I picked up along the way but, fortunately, others were either maintaining my code base or converting it to C++ by then. Yes, it takes time but when you're running models on hardware (clustered servers) they were generally adamant that memory be used efficiently and, when cleared, it was zeroed. Why? Because that's the correct way of doing it - or so I'm told/recollect. That's what your analogy made me think of. Clean those boxes out of you're gonna have dirty cookies because shoe's were stored in them first.

      Again, I stress that I am not a programmer but had to do so - I hated every minute of it, pretty much. With some help, I built the greatest traffic simulation game ever (it didn't have graphics for a few more years, really) but I might be biased. ;-) I had great people that enabled me to be where I am today - which is retired and wintering in Florida.

      The other thing is, I am literally just getting ready to dive in and start learning Python. I am very excited to learn. From what I've already played with, it looks so powerful for what appears to be a fairly high level language. I'm not sure how to describe it better than that.

      Which leads me to this: Thanks. I seriously love being told new things. I even kind of like being wrong because it often meant that I was willing to hazard a guess (and I'm usually pretty clear that it's a guess or an anecdote) and it means that I'm learning something new. I value that, a great deal, and I love it when there are threads that are so full of information that I actually spend hours in them reading, rereading, searching, maybe even trying a snippet out, and seeing where things go and why they go where they go and what they're meant to do when they're put together properly.

      I truly appreciate and value you giving me your most valuable asset - time. I appreciate it to the point where I hold it as something special and actually make it a point to go ahead and take little lessons and turn them into bigger lessons. I bookmark some, I straight up save some as whole pages, and I try to keep some properly referenced to call on later when I know that I've just seen a very important thing that I'll want to know later - because it will be essential to bake that in from the start instead of trying to bolt it on later.

      So, again, thank you. I believe that I've read enough of your posts to be familiar with your skill level, at least, and I think you'd have made a hell of a hire if you'd been around when I needed you. Of course, we didn't have Python then - I don't think. Early to late 1990s. I was completely done hiring programmers by 2005 or so. I suspect you'd have been a hell of an asset.

      --
      "So long and thanks for all the fish."
    58. Re:I can understand the point. by joshki · · Score: 1

      Humanities students aren't necessarily computer stupid. A true liberal arts education includes study of the humanities...

      There are lots of people in those fields who have good analytical minds.

      --
      I do not read or respond to AC's. If you want a discussion, log in. Otherwise, don't waste your time.
    59. Re: I can understand the point. by Anonymous Coward · · Score: 0

      Class clown makes a dick in the box joke.

    60. Re:I can understand the point. by Anonymous Coward · · Score: 0

      Fountain of Youth?
      I recommend a fountain of doubt...

      http://oglaf.com/fountain-of-doubt/

    61. Re:I can understand the point. by Hognoxious · · Score: 1

      Post I was replying to, by Z00L00K:

      "Ever tried to describe to someone below the age of 10 why you need to declare variables?"

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    62. Re:I can understand the point. by shutdown+-p+now · · Score: 1

      Yes. And I explained to you why your explanation wasn't good enough.

    63. Re:I can understand the point. by Hognoxious · · Score: 1

      No you didn't. You wittered on irrelevantly in a vain attempt to look smart.

      You didn't even understand the question.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    64. Re:I can understand the point. by shutdown+-p+now · · Score: 1

      I rather think you didn't understand the answer (or chose not to "in a vain attempt to look smart"?), but whatever. I should have known better, given how you chose to name yourself.

      I do hope you aren't actually teaching kids, though. The worst kind of people are those who are wrong, but are utterly convinced that they're not, because they had a teacher who was very good at teaching them those wrong things in a very convincing way.

    65. Re:I can understand the point. by Anonymous Coward · · Score: 0

      > I would probably actually use the words "Forward references are only permitted where the context enables their dereferencing." and then explain what they mean to some ten year olds

      You probably have a 'kick me' sticker stuck to your back right now.

  5. Sounds reasonable by Anonymous Coward · · Score: 2, Insightful

    Obviously no language can be serious without a high price tag and draconian licensing restrictions.

  6. Quite possibly ... by gstoddart · · Score: 3, Informative

    Not so long ago, a story came up on Slashdot about learning the Wolfram language (left as an exercise to the reader to locate).

    As I recall, very quickly there were concrete things as a result of relatively easy things ... graphing or plotting or somesuch. And it went quick from there in terms of being able to do things people could relate to, because it's the same kinds of things they kids would learn in school.

    So, I guess contrast this to the old fashioned languages we used to learn on like Logo ... ok, I can draw a line. I have always wanted to draw a line. How awesome, a line. (Don't get me wrong, Logo was my first programming, and it was cool.)

    Wolfram seems like he's got a much more "results oriented" language for doing fairly practical things, and that it will be easier to see the immediacy of the pieces as it relates to something you grasp.

    I wouldn't discount him out of hand when he says this. His stuff is far less abstract, and far more concrete in terms of the kinds of things you do.

    --
    Lost at C:>. Found at C.
    1. Re:Quite possibly ... by loonycyborg · · Score: 2

      To me Wolfram Language seems exactly as much of a toy as Scratch, so he's basically pushing two contradictory points in name of product placement.

    2. Re:Quite possibly ... by gstoddart · · Score: 2

      Except his language allows you to all of the stuff which has come from Mathmatica and the like ... you can do full on advanced maths with it.

      It isn't a toy language, it's a fairly complete language. Once you learn the basic you keep going on to the advanced stuff.

      The easy stuff is easy. But it can go all the way to doing multi-variable calculus ... that's not a toy language.

      Maybe you don't understand the scope of what can actually be done with it.

      What he's saying is he has an easy to learn language which doesn't top out at being a toy. There's a difference.

      --
      Lost at C:>. Found at C.
    3. Re:Quite possibly ... by Trailer+Trash · · Score: 1

      The Wolfram language allows you to do things that make sense to people who aren't necessarily programmers in easy and obvious ways. A good example is dealing with images. I have performed a lot of image manipulation in various languages and it involves some pretty hairy stuff. In Wolfram Alpha an image is a piece of data like a string or whatever, and you can visually see them as you work with them from the command line. You can stick images in an array and manipulate them just as you would a string or a number. And it shows up visually as one would expect. Well, as a naive person would expect - but that's the beauty of it, right? At the same time, you can write programs to do the same things and they'll work.

      I've worked with languages like scratch and such for my kids, but I think Wolfram's got something special. I also like Alice for the same reasons.

    4. Re:Quite possibly ... by gstoddart · · Score: 1

      You can stick images in an array and manipulate them just as you would a string or a number. And it shows up visually as one would expect. Well, as a naive person would expect - but that's the beauty of it, right?

      To me, absolutely ... a five year old can understand sorting an array of pictures of "banana frog cat apple dog elephant" in alphabetical order, without understanding the mechanics of sorting .. it's direct, tangible feedback. It's visual, and it's approachable. And it needs to advanced conceptual thinking.

      I'm with you, allowing non-programmers to do easy things easily, and at the same time allow for advanced users to do really advanced stuff ... that's a pretty damned cool teaching tool. And it's anything but a toy language, because it's capable of the actual heavy lifting too.

      Suddenly one wonders just how much cool educational stuff you could pre-package using this into a tablet app or something ... imagine your three year old has mastered "greater than/less than".

      --
      Lost at C:>. Found at C.
    5. Re:Quite possibly ... by Anonymous Coward · · Score: 0

      Yes but He charges a subscription to program in his language.

      I could tolerate purchasing it for say 50 bucks, but I refuse to purchase software on a subscription basis.

    6. Re: Quite possibly ... by Anonymous Coward · · Score: 0

      Mathematica and the Wolfram language are how a mathematician would approach a problem - nested formulas and functions with little to no side effects. It works in many fields but having a beginner memorize a bunch of functions and expecting them to understand it a year afterwards is too dry, same as if you tried to learn calculus without knowing why. A general purpose language needs a smoother transition between the imperative to the functional.

    7. Re:Quite possibly ... by loonycyborg · · Score: 1

      You seem to be using bogus definition of toy language. Which features and library bindings language has can't serve as objective definition because there are no requirements everyone would agree on. Only actual use in production systems can make a language non-toy.

  7. Misses the point by Lord+Bitman · · Score: 5, Insightful

    Teaching "how to program" to the general population isn't about teaching a practical skill.

    Just like Math, the point is to get students to understand Logic and Reasoning skills.

    Similar to how P.E. class isn't meant to teach children how to play dodgeball, it's about making sure they understand the importance of being active, and know various ways they might be able to enjoy that.

    If a "toy language" is more approachable, go for it.

    --
    -- 'The' Lord and Master Bitman On High, Master Of All
    1. Re:Misses the point by ITRambo · · Score: 1

      Great points. Kids that get the coding bug will move on to learn more languages anyway.

    2. Re:Misses the point by bluefoxlucid · · Score: 4, Insightful

      Math up to geometry is a practical skill.

      Programming to a limited extent is a practical skill; beyond that, it's about people getting their pet ideals out to the masses.

      Programming to teach logic and reasoning is bullshit. Programming doesn't teach logic and reasoning; logic and reasoning are exercised in programming. If you're not that interested or simply don't know how to plan and reason, you'll be a shit programmer; we can fix this by teaching you to plan and reason.

      I taught myself basic, C, C++, awk, bash scripting, and even assembly; I am not a programmer because I never learned to plan out large software projects. I don't know how to do it. I mash together bits of logic code and create a shambling, horrible beast summoned from the darkest depths of Hell. It works, but it's a *disaster*.

      I've been learning about programming convention, design patterns, architecture, problem solving, and project management lately. These things have helped me improve my programming. Each is only a tool; even architecture and programming convention only lead to horribly-designed Python modules created to interface with database backends for custom Web applications, the code for which is more readable but still *terrible*. Planning skills from Project Management improved my programming; I am now seeking planning skills related to the large architecture of programming, rather than simply having an abstract idea of planning in general and programming architecture in general.

      It's my ability to turn general problems into structured problems which is now transforming my 25 years of being able to make machines do things into a new skill of *programming*. All that Basic, C, Python, and the like I've done since I was 6 years old didn't give me any ability to think, plan, or solve problems; I've used programming languages to look directly at a thing I want and violently rip it from its seat into my greedy hands, and nothing else.

    3. Re:Misses the point by gstoddart · · Score: 1

      But the question is, is this toy language more approachable?

      Drawing a pie chart in Wolfram from what I've seen is bordering on trivial -- and I don't meant that in a bad way.

      It seems like the kinds of things he's solved with his language have much more immediacy in terms of things kids are already learning.

      If I do X, Y happens. The link between cause and effect is stronger .. and quite frankly, more understandable than understanding why you'd want to print "Hello World" in the first place.

      Are you suggesting Wolfram is less suited to teaching logic and reasoning skills? I'm not so sure of that.

      Draw a pie chart, observe the pie chart. Now, create me a pie chart which looks like this.

      From the very small amount I've seen of it, you can definitely teach all of those things as long as the kids understand the concept -- and you might be able to introduce some concepts better using it if you know how.

      --
      Lost at C:>. Found at C.
    4. Re: Misses the point by bistromath007 · · Score: 2

      So, in other words, it's completely pointless and may in fact have a deleterious effect.

      Math and PE have both been required portions of a public school curriculum for more than a century. In that time, each generation has consistently been fatter and more afraid of numbers than the last.

      If we require programming as a way of "teaching logic and reasoning," we can likely expect future high school graduates to be unable to send an email without help from a government case worker.

    5. Re:Misses the point by Graymalkin · · Score: 1

      Just like Math, the point is to get students to understand Logic and Reasoning skills.

      No. Full stop. Programming does not teach logic and reasoning. It might use those skills but it certainly does not teach them. Nor does it teach mathematics, critical thinking, grammar, or anything else everyone seems to profess.

      If you want children to learn reasoning, logic, and critical thinking they need to be taught those things specifically. People with a predilection for those things will find programming intuitive and those without will just be frustrated.

      Programming also does not teach children about how computers work or about the theory of computing. It doesn't help them use computers in their daily lives nor will it help them much in the future.

      This whole idea is just a modernization of "computers will make kids smarter" meme from the 90s. Schools unloaded millions stuffing computers in the back of classroom. Statistics were quoted saying students with computers did better in school. What was lost on people was students that did well in school had socio-economic situations and home environments that allowed or encouraged them to well in school. Having a computer was simply a hallmark of higher socio-economic status.

      Today it's statistics claiming programmers make more money than other professions. The mean salary for programmers is not much better than other white collar professions. The outliers in places like the SF Bay Area skew the numbers significantly. The average programmer is not working at Facebook or Google, they are working at Initech.

      --
      I'm a loner Dottie, a Rebel.
    6. Re: Misses the point by 110010001000 · · Score: 0

      Obviously you are part of the failed educational system. So you are suggesting that we don't teach anything, because we teach PE and kids are getting fatter? Such logic.

    7. Re:Misses the point by gfxguy · · Score: 2

      ... except that, in my son's case (high school programming classes that included scratch, as well as Java and Python), they skip over the concepts and don't really understand the bigger picture. The teacher gives them a class and asks them to modify it, but they don't understand why it's a class and not just some functions. I think, in the modern era of "visual" languages and IDEs that do the bulk of the work for you, they don't learn.

      --
      Stupid sexy Flanders.
    8. Re:Misses the point by Threni · · Score: 1

      They use Scratch, and language like it, to teach 10 year olds in the uk. Anyone who thinks c++ is a better choice for that task is fucked in the head.

    9. Re:Misses the point by Anonymous Coward · · Score: 0

      i think it is about a practical skill too.

      in my own case, just this week i spent ~65 hours this week working on VBA macros and VB scripts (both making new ones, and updating others already had) to save paperwork time, and ~35 of those hours were work hours (gah! working on work on unpaid time!), and if average macro saves a mere 30 seconds (lowball), and average number of macros run in a day is ~50 (lowball), then I will recoup the work time spent in 120 days.

      And then every 120 days after that, I will have "gained" 35 more productive hours. ~235 work days in a year. So in a year, I gain ~68.5 productive hours. My work year effectively becomes 242 days.

      But it doesnt end there. There's ~40 technicians in the lab. Even if the savings are only 50% effective (lowball again) with the other technicians, that's ~240 extra days of output, equivalent to an an entire additional technician (at 100%, 2 technicians; without lowball estimates, 3 even 4 technicians).

      At 70k a year (plus benefits), that's 70-280k/year in savings in wages alone.

      So this leads to a few conclusions:
      -contrary to opinion I have been informed of, its not wasted time
      -i should to ask for a bonus (say 25% of savings)*
      -i need to stop working for free on my own time
      -i need to stop giving my macros to other techs for free

      (*ignores fact that condition of employment is they own my soul, and anything it creates, biological, intellectual, or otherwise, and because im an electronics technician (not a paid programmer) covered by a CBA, cant get a bonus anyway)

      this is on top of other automated scripts i made that turned my test bench into an automated test bench. one particularly onerous piece of gear was a 3 hour task when i started; i knocked it down to 30 minutes. and I've been running my bench now for ~5 years.

      so anyway, ya. its totally a practical skill too.
      and i totally need to stop working for free just cause i programming to be fun.

  8. EWD was here in 1975 by Orgasmatron · · Score: 1

    EWD498 in PDF or HTML

    The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities.

    It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

    The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.

    FORTRAN --"the infantile disorder"--, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use.

    PL/I --"the fatal disease"-- belongs more to the problem set than to the solution set.

    APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.

    --
    See that "Preview" button?
    1. Re:EWD was here in 1975 by Anonymous Coward · · Score: 0

      Arrogant snobbery, even if there's a grain of truth to it.

    2. Re:EWD was here in 1975 by Anonymous Coward · · Score: 0

      Every programming language sucks. Some just suck less than the rest.

  9. They're kids by Anonymous Coward · · Score: 0

    You're really going to criticize teachers for teaching children in kindergarten, first, second and third grade programming logic using the equivalent of building blocks?

    1. Re:They're kids by bluefoxlucid · · Score: 3, Insightful

      Programming is not a building block.

      Were you ever told to study or take notes in school? Do you know how to do either of those? Think before you answer.

      Did you know organization aids in memorization? Did your teachers tell you rhythm and rhyme increase the ease with which you can learn something, or only leverage that fact, most likely thinking they were adding entertainment to keep a class full of distracted kids attentive?

      Surely someone tried to feed you acrostics. Even engineers know this one.

      What about mathematics? Are you still counting on your fingers and carrying the two? If you memorize your multiplication tables (by brute force) and practice using a Japanese 4/1 abacus, you can immediately compute arithmetic operations in your head. Memorize a simple system of numerical storage (Dominick's, Mnemonic Major, number shape, PAO) and use a digital computation algorithm and you can keep three registers straight while you compute infinite digits in any square root in your head faster than you can write or voice the numbers.

      People think too much about goals and not about foundations. They also think children too stupid to understand anything complex, instead of thinking about how people think. You would think folks would say, "Hey, we can describe memory to children in great technical detail, because a child will stare at you blankly, think for about four seconds, and immediately recognize the mechanism you've described!" Instead they say, "Associative? You want to tell children memory is visual and associative? They're not going to understand that! It's too complex!" It's ludicrous; it's like claiming you can't tell a child teeth grind up food and wet it with saliva so it can safely transport down the esophagus to the stomach. They bite a chicken nugget, chew, swallow, and feel it move, and immediately understand what you're babbling about.

      As a result, we don't teach children to learn. We force them to learn by whatever means necessary, but give them no tool to drive information into their minds. We don't teach them study methods, note-taking methods, or deliberate practice; we don't teach them any concepts of executive function or mnemonics; and we even avoid showing them highly-structured, systematic approaches to basic mathematics, under the assumption that children cannot handle structure and require a sort of free-play type of classroom learning.

      Children need to start with a basic study of the mind. First a brief overview of memory in function, including a high-level overview of the neurology involved and an introduction to mnemonic devices, but excluding mnemonic systems. Then an explanation of leveraging human memory through systems of study and note-taking, like SQ3R and the Affinity Diagram device. These provide the easy foundation to ingesting new information.

      Once you've transferred these, you can teach and apply deliberate practice and executive function. Deliberate practice is a method of technical, goal-oriented practice producing constant and immediate results: you recognize your weaknesses and focus on those, while trying to judge if you're improving. Executive function includes a broad array of loosely-related behaviors, notably in eliminating distraction, managing time, and orga

    2. Re:They're kids by Anonymous Coward · · Score: 0

      In the world of "let's teach every kid to program", everyone in the field is an engineer, no one is a teacher, and still... nobody thinks of the long-term consequences of the educational plan.

    3. Re:They're kids by Anonymous Coward · · Score: 0

      What the hell are you doing on /.?! That is the most intelligent and insightful comment I've read in years...

      Obviously, you're not a teacher; as I was taught - those who can't teach!

      I tried discussing (some of) these ideas with my son's teacher some time ago - man you talk about deer in
      the headlights. But they're right up there about grooming kids and teaching them to be gey and what not.
      Where did we go so terribly wrong...

      CAP === 'invite'

  10. Don't teach the kids real world skills by Anonymous Coward · · Score: 0

    But if the kids learn C++ and Java, then they'll be competition and they'll take our jobs!

  11. I dare to disagree by Opportunist · · Score: 1

    Especially if you want to teach kids, you need something that gives immediate rewards. C doesn't do that. It takes an incredible amount of learning (either that or a lot of rote programming as in "do all this without thinking why") before you even get any kind of output out of the program. Let alone anything that would evoke more than a "meh" from a kid.

    You need some environment where the child gets the impression that his or her ideas are reflected by the machine. I want - I do - I get has to be a simple three step program. At the very least at the beginning.

    Expecting children to invest a lot of time for the promise of some reward in some future they can't imagine is pointless. They won't do it.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    1. Re:I dare to disagree by bluefoxlucid · · Score: 2

      You should appreciate my ideals about teaching kids about memory, and then about studying and practicing. Memory is immediately recognizable and can produce immediate benefit: every mnemonist is a sort of charlatan who performs a routine, giving his audience a bunch of shit to remember and watching them utterly fail, then telling them to use one tiny little trick--usually the mnemonic linking system or the method of loci--and providing them a new list, which they promptly remember near-perfectly (typically about 1/3 of the audience gets it perfect). They never tell you how physically exhausting it is to train yourself to use these systems effectively... at first, anyway; it gets ridiculously easy with practice.

      Imagine a child's reaction to a technical explanation which he can understand, and which immediately makes him *smart*. Then imagine explaining that the brain adapts: new things are hard and tiring, and then become easy and effortless after you force yourself through them for a while. This "force" can be as little as a good 10, 15, or 30 minutes each day practicing. Conclude this by pointing at his amazing, genius memory, and associating it with systems of study and systems of practice which leverage the human memory efficiently, allowing him to learn much more easily. What regard do you think you'll get for the long-term goal?

      You'll get a classroom full of kids who want their minds filled, and who suddenly love math. Well, they'll probably still hate math; they'll just enjoy the feeling of dominating it with their elite mind powers. A half-hour lesson and they'll be able to imagine it; they'll crave it; they'll want you to teach them everything.

  12. Learning to Program by Anonymous Coward · · Score: 0

    The basic structures, conditions, loops, and routine definitions and calls is pretty much the same for all languages (except maybe lisp because of its alien syntax).

    Beyond that certain formalities exist in error/exception handling with try/catch and methods to exit loops or functions and the various methods to associate methods with data structures. Subsequently higher level abstractions of datasets and manipulation of those sets etc.

    Personally, I also think it can be disorienting to need to switch to a new development environment when, during the course of study, we advance enough to need more than a single programming language has to offer. The question can also easily be whether learning to deal with that disorienting aspect of environment switches is a quality desirable to have in professionals. I would say it is easily just as important as any other fundamental.

    1. Re:Learning to Program by HiThere · · Score: 1

      Lisp is different, but not that different. If you want something that different, look at Erlang. And even Erlang has a transformation of those basic blocks. Perhaps Haskell or CaML, I don't know either of those.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  13. Challenge The Children! by Anonymous Coward · · Score: 0

    If they can't do 3000 levels calculus in Wolfram assembly, they're just not being challenged.

    This is Sparta!

    But, what about women and minorities? How will they compete in the new world of Wolfram? I presume that he will ultimately produce a very basic participation trophy language for them. Oh, wait, that's Scratch, or Turtle.

  14. Looks like an advertisement for Mathmatica by Anonymous Coward · · Score: 0

    I was hoping for an innovative language. Mathmatica is fine but nothing new.

  15. You need something engaging with kids by ErichTheRed · · Score: 1

    The problem with introducing software development is that environments like Scratch are the easiest way these days to get a kid to write something and get immediate feedback. How many old timers remember:
    10 PRINT "I am Cool"
    20 GOTO 10
    as their first BASIC program on one of the old home computer platforms of the 80s?

    Scratch is like that. You stitch together simple statements and make something actually happen on the screen. You could argue that you could teach them a little JavaScript or something similar. but you still need enough syntax and backstory to get them to do something interesting. This is especially true now that most kids are being raised with "consume only" mobile devices and tablet OSes as their main computing platforms. The Wolfram language is similar -- very easy to pick up, -but- for a beginner the syntax is a barrier. Now that programming is so abstract from the actual hardware, it takes a little effort to introduce the concepts slowly and walk back all that abstraction.

    1. Re:You need something engaging with kids by Punko · · Score: 1

      My son is 12. He is teaching himself Python. So far, he's figured out how to replicate a board game in Python. I'm not sure how useful Python will be for him, but its the concept of programming that I think will be the of most use for him

      --
      If only we could fall into a woman's arms without falling into her hands
  16. Wrong shade of pink by abies · · Score: 5, Interesting

    My daughter (7 years old) spend 10 minutes choosing proper shade of pink for a cat in her first Scratch game. I don't think that Wolfram can even start to compete in same category of fun. She was a lot more interested in possibilities of making things meow or bark rather than trivially connecting her results to per square-furlong gross national product of 10 most polluted cities in the world.

    If you are targeting 12-15 year olds, sure, pick whatever. They are forced to learn French, they can be forced to learn any other strange programming language. But for 5-8 year olds, let us play with Scratch. And having to explain that father does bit different things at work than picking between pink colors for cats... he picks between different shades of blue for odd lines in table css... yes, it is kind of a cat for grownups, just square and painted in blue stripes.

    1. Re:Wrong shade of pink by cruff · · Score: 2

      per square-furlong gross national product of 10 most polluted cities in the world

      Plugged that into Wolfram Alpha, it didn't understand it directly. It instead offered up the factorization of 10. I'm disappointed. :-)

  17. Smalltalk by Anonymous Coward · · Score: 0

    If you're going to have a "kid's" / beginner language that's also "real", you might as well go with Alan Kay's Squeak, which is a variant of Smalltalk:

    * https://en.wikipedia.org/wiki/Squeak

    1. Re:Smalltalk by HiThere · · Score: 1

      Scratch is Squeak with safety bars and training wheels. Use Scratch before they're ready for Squeak. When they're done with Scratch, Squeak is only one of their options.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  18. Examples of bad ideas by Anonymous Coward · · Score: 2, Funny

    Asking your carpenter to fit you for braces.

    Asking a wood chipper for a blowjob.

    Asking a physicist to write you a programming language.

    Asking a squirrel to guard your strategic nut reserve.

    Guess which one applies to this story?

    1. Re: Examples of bad ideas by Anonymous Coward · · Score: 0

      > Asking a physicist to write you a programming language.

      Physicists write the worst code ever. Except for EEs.

  19. Not sure any of this is that good... by Junta · · Score: 4, Insightful

    I think there's a flawed premise, that there must be outreach to those not particularly inclined to do programming of their own volition.

    I think that certain popular offshoring destinations demonstrate the result of such a strategy. There are good developers in those geographies, but the signal to noise ratio makes it tricky for a business person to tell the difference up front. I know in my experience, the 'cheap' flavor of offshore developers have been 5% immediately proficient (those will be gone in a month to get a better paying job, whether they move or not, people who underestimated themselves or had to take a filler job between good jobs), 15% will get to that point over half a year or so (and then get a better paying job, effectively those fresh out of not-much-better-than-high-school education and this is their first real world job). The other 80% of the cheap labor that US companies love so much either just aren't wired for the work or just don't care enough. They approach their job with all of the enthusiasm of a retail store stocker or grocery bagger.

    --
    XML is like violence. If it doesn't solve the problem, use more.
    1. Re:Not sure any of this is that good... by Luthair · · Score: 1

      We're all taught trig in school, but most people will never need to apply it. The intent of learn to code isn't to train programmers, rather to provide people with a understanding of how things work. In truth, it probably helps more people than trig as the knowledge would help with spreadsheets.

    2. Re:Not sure any of this is that good... by Junta · · Score: 1

      That would be all well and good, but the rhetoric frequently invokes 'be competitive with india/china/etc'

      --
      XML is like violence. If it doesn't solve the problem, use more.
  20. And how's that universe pattern search going? by kriston · · Score: 1

    Yeah, and how's that universe pattern search going? Did he find the meaning of life yet?
    Is this the kind of advice we should take?

    --

    Kriston

  21. Language matters less than integration/content by JMZero · · Score: 2

    If I was designing a setup to teach kids programming, it'd be an IDE centered around creating - for example - a 2d game. Have easy, integrated ways to edit art assets and associate them with scripts and inputs. Have easily accessible commands to make sounds, move stuff around, and navigate between "levels". Kids like doing this; when I was a Cub Scout leader, the boys really enjoyed drawing pictures and bringing them to life and figuring out what would happen - but there's no way they would have been able to chain things together (in Haxe, since at the time a Flash game was the most accessible target for the kids to be able to play the final game at home) without me helping.

    There's lots of languages that would be suitable for this, and I don't think that's necessarily the important part. The problem with just picking up, say, Java and writing a game is that there's a lot of ducks you have to have lined up before you can get an interesting result. There's a lot of unintuitive steps. When I learned Commodore 64 basic as a kid, I pushed through those challenges because that was the only way I could play a new game. Most kids now won't have that problem of "there's nothing to do on the computer".

    --
    Let's not stir that bag of worms...
    1. Re:Language matters less than integration/content by Luthair · · Score: 1

      Even Java could work if you were to create the right libraries. If anything strict typing and compile time errors are probably more helpful to novices and beginners than trying to understand a failure afterwards.

    2. Re:Language matters less than integration/content by JesseMcDonald · · Score: 1

      Have a look at CodeWorld. While still a work in progress, it's designed specifically for students new to programming, and renders the output of simple programs as pictures and animation right in the web browser.

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
  22. Age by iamacat · · Score: 1

    8 year olds can learn Scratch precisely because it's limited. In beginning classes, there is are only so many way to connect blocks. One can stumble on a solution with random twiddling and over time start to notice patterns. This is not going to happen with any free form language where you can type whatever you want, but most of the thing you type will not compile.

    Past this stage, there is actually nothing wrong with BASIC. Try PLAY "abcd", tweak till results sounds like a tune, then add gosub for a refrain.

  23. Wow by Anonymous Coward · · Score: 1

    "Stephen Wolfram" is the new "3D printing" of hype! Have you Stephen Wolframed yet? I got a Stephen Wolfram, it's the future. If you don't Stephen Wolfram, you are a Luddite.

    1. Re:Wow by Anonymous Coward · · Score: 0

      Wolfram wolfram wolfram wolfram

  24. BASIC programming skills by DFDumont · · Score: 4, Interesting

    I taught myself how to program using the BASIC books located in the Radio Shack stores and typed them into the (new) TRS-80's they had out. (Yes I am THAT old) I then moved on to using Assembly (Z80). At the moment I can code in 23 languages, and I think in C so there can be a progression.

    Although I completely agree that one needs an introductory language to bridge the gap between language arts and programming, the last time I checked Dice there were no openings for Wolfram programmers. I do however remember all the hype around the various instances of BASIC and I can attest to a large number of VB apps that were written (very poorly) by non-programmers. Coding past an interpreter syntax does not qualify you as a programmer.

    I see this entire discussion, including the various calls for CS education in the public schools as yet another instance of what killed my profession: the incorporation of unskilled labor. I am CCIE #12981 and there was a time when having that certification meant I could pull down a well paying job nearly anywhere. Now it almost doesn't matter because so few organizations need highly qualified networking resources. They have farmed out networking to a 3rd party, or they have a few slightly skilled resources that keep the lights on. I see the same thing happening to software development, and we as a culture will continue to suffer under the risks of running poorly written applications, because corporations don't see the need to hire highly skilled developers. Shoving all students into the pot via mandatory CS education, or promoting BASIC languages like Wolfram will only make that worse.

    If you want a programmer you don't start with a language. You start with math and specifically with logic. The language used is a mere vehicle for the expression of concepts and as such learning its syntax is secondary. Rather teach principles, such as "Always check your inputs, and your return values" which is true in any language.

    1. Re:BASIC programming skills by narcc · · Score: 1

      Coding past an interpreter syntax does not qualify you as a programmer.

      What a load of nonsense! The skills you need are identical. Further, the distinction between interpreted and compile languages has been more than a bit blurry for the last 30+ years. (Lets hope you never run across Forth, your head might explode.)

      But let's take it to the "extreme". Compare that old BASIC you had on your Trash-80 to 6502 Assembly and C, so that we have high, medium, and low level languages represented. It should be immediately obvious to you that programming in BASIC and 6502 Assembly are very similar, requiring similar skills and approaches to program organization than either one as compared to C. (Fun story, when I tutored VAX Assembly, I would have students write the solution in BASIC first, then translate it to assembly. The similarity between them made that step trivial for all but the thickest student. It was incredibly successful in getting them past the 'assembly is super hard' mental barrier many had erected thanks to elitist nonsense like you're pushing.)

      This elitism nonsense, where some developers aren't "real programmers" because they use language X instead of language Y, really needs to stop. It adds absolutely no value. It could possibly even be considered harmful, as my fun story illustrates.

    2. Re: BASIC programming skills by Anonymous Coward · · Score: 0

      Forth rocks. Love to love the stack.

    3. Re:BASIC programming skills by DFDumont · · Score: 1

      You completely missed the point. I could have just as easily said "past a compiler" but since I used VB as my example I went with interpreter. Next time you may try reading the entire post rather than jumping off a single clause.

      My post had nothing to do with one language/framework/tool being better than another. The point that you missed is that the skills needed to be a programmer have nothing to do with proficiency in a language. They have everything to do with math. Let's teach more math and then perhaps if you happen to enjoy coding you can be a programmer.

      Another aspect I didn't mention has to do with tools. So long as we rely on tools which essentially build an application by linking interfaces from a library, you don't need a programmer. You need one to build the library but any mildly intelligent human can then build the app like linking together legos. That has been the main focus of software development for some time, which of course removes incentives to hire qualified developers. Thus the more 'intelligent' your tools, the less you need intelligent developers.

      Software development is well on the path that Networking took about a decade ago. Good luck finding a job that pays enough to support a family when every 10th grade is building apps.

    4. Re:BASIC programming skills by Anonymous Coward · · Score: 0

      Interesting hypothesis. However, do I break an illusion if I ask you what you learnt first? Math and logic (ie. in school or from higher-grade books studies), or syntax?

      What's the reasoning behind that it should be different for someone raised today? Mind you, the kids these days are all over Minecraft, not BASIC, but the root drivers probably remain pretty much the same (fun).

    5. Re:BASIC programming skills by narcc · · Score: 0

      The point that you missed is that the skills needed to be a programmer have nothing to do with proficiency in a language. They have everything to do with math.

      You've been programming at least as long as I have, yet you still haven't figured out that programming has absolutely nothing to do with math and logic. It's just a silly lie developers with discipline envy tell themselves. You'll find that even excellent programmers struggle with math and logic in a formal setting. That is, beign able to write computer programs in no way prepares them for a logic or advanced math course. There is very little overlap between programming, math, and logic in the general case. Those only appear, and generally only math, in specific problem domains.

      So long as we rely on tools which essentially build an application by linking interfaces from a library, you don't need a programmer. [...] Software development is well on the path that Networking took about a decade ago. Good luck finding a job that pays enough to support a family when every 10th grade is building apps.

      Here we get to the heart of it. What actually motivated your post, and the delusions therein contained. It's simple fear. You want to be part of some exclusive group. You want to have some special skill possessed by few others. It makes you feel important. If everyone could write computer programs, you'd no longer be special, so you invent fantasies like programming is all about math (math is hard!) and logic (so cool) or that those other people aren't real programmers because they don't use the same tools you do.

      Here's the cold, unabashed, truth: Programming is easy. So easy, in fact, that children can (and often do) teach themselves. Anyone without a severe cognitive disability can learn to write computer programs. The skill of which you're so proud, and have wrapped so much of your identity within, is little more than a childhood hobby turned profession. You do not have a "special mind". You are not a "mathematician" or "logician". You are a computer programmer, just like millions of pre-teen kids around the world.

      If you're worried about employment, perhaps you should have invested some time in other marketable skills.

    6. Re:BASIC programming skills by Beeftopia · · Score: 1

      Here's the cold, unabashed, truth: Programming is easy.

      It's easier after one has amassed 20 years of experience. Dealing with the intricacies of syntax, remember what functions require what parameters, the nuances of compilers and interpreters, of threads and mutexes, roll-your-own bit-shifting, reading other people's code and identifying subtle, intermittent bugs may be easy to a rockstar, but to merely highly capable it can produce challenges, especially in large code bases. I've heard elite programmers say they don't know what's going on in a section of code.

      Conceptually, at a high level, it's typically easy to describe many if not most programs. But those who think actually programming non-trivial systems is easy I think are not correctly stating the reality.

    7. Re:BASIC programming skills by narcc · · Score: 1

      Let's try this: Programming is simple. Programs can be complex. Some problem domains are complex, giving the illusion that the program itself is complex, regardless of its actual complexity. Some programs are unnecessarily complex, through the inverse relationship that program complexity seems to have with the skill of the developer.

      Programming is a skill, after all. Some are developers are better than others, but all improve with practice; just like every other skill. It is ridiculously easy to learn how to program as evidenced by the millions of children under 10 that have taught themselves. If I had to describe it, I'd say that the learning curve is initially quite steep, but also very short. It doesn't take long to grasp and apply all the essential skills and concepts. They are, after all, very simple.

      That is the reality, after all. Programming is, quite obviously, very simple. To confuse the complexity of poorly designed programs or the natural complexity of the problem domain with the complexity of programming is to completely misrepresent the nature of the activity entirely.

      Bringing this back on topic. To insist that it's complex or in any way related to subjects culturally considered difficult to keep young people out of the profession out of fear for your job or merely to feed your own ego is the height of absurdity. Be deluded all you like, but don't push belief in your imaginary monsters on others. That can be very harmful. In my fun story earlier, I talk about the mental block some students had when learning VAX Assembly. Many believed that assembly was incredibly complex (because that's what a bunch of elitists told them) and that they weren't capable of understanding and using it. Once that false belief was dispelled, though the method described earlier, students no longer struggled with their assignments.

      I know, you really like the idea that programming has a cultural mystique not unlike what doctors, physicists, and mathematicians enjoy. You like that your profession makes people think that you're very smart of very clever. You'd rather not see a world where a larger percentage of the population shares the skill from which you derive those benefits. I say, face reality and accept it. The alternative, after all, is to remain deluded, holding those odd beliefs in face of evidence to the contrary. That's no way to live.

    8. Re:BASIC programming skills by ShoulderOfOrion · · Score: 1

      Software development is well on the path that Networking took about a decade ago. Good luck finding a job that pays enough to support a family when every 10th grade is building apps.

      You could say that about pretty much every job today, from Airline Pilot to Zoologist. That has nothing to do wtih programming, and everything to do with automation and globalization in particular and life in general. Change is constant. Deal with it.

      I wrote my own 6800 assembler in C-64 Basic (and hand-tuned 6502 assembly) as a teen to run my homebuilt wire-wrapped computer, so I'm probably about your age or older. I've been around the industry a while. Programming isn't math, or logic, it's understanding the domain and the end user. If I'm writing a Linux device driver I do it in C, and the domain involves semaphores, interrupts, bottom halves, and a host of other things that have little to do with math. Coding an android app in the NDK might involve C++, but the real hard work (at least for me) is building a proper UX and creating the graphics that other people want to use. Web site coding requires HTML, CSS, and the sort of browser-quirk javascript that makes me squirm, but hardly any math beyond an occasional sum. The only time I worry much about math is when I'm coding a FIR filter or some-such.

      No, success as a programmer involves understanding the domain and the end user. That 10th grader may have barely passed trig, but he can still code up angry round objects and animate them using a plug-in library. If by genius or serendipity he realizes that every other 10th grader in the world will pay to watch those angry round objects dive on things, he's still a successful programmer in my book. If some particularly sharp 7-year-old codes up the next Minecraft in Scratch, more power to her.

  25. This is about communicating by meburke · · Score: 1

    I am constantly reminded that people seldom communicate well with each other; Why would they be expected to communicate well with machines?

    The Wolfram Language seems to me to be a good way to learn to communicate (at least mathematically) with machines, and it looks to me like it could help improve communicating mathematically with people, too.

    Charles Key Ogden developed a system he called "Basic English," based on the theory that anything can be communicated in 850 words. https://www.youtube.com/watch?...
    Notice how many English words are mathematical. They describe numbers, relations, space, etc., etc.. Yet people with huge vocabularies seem to lack precision; almost everything in their language is an abstraction rather than an operable fact.

    I hold no hope for the Human Race, but after only two hours trying out the Wolfram Language, I can see how this will help new thinkers master communication with their tools, and the tools they have to communicate with every day.

    --
    "The mind works quicker than you think!"
    1. Re:This is about communicating by meburke · · Score: 2

      Ughh!!! I totally apologize to everyone for including the wrong link for Ogden's Basic English. A thousand pardons!

      Here is where I meant to direct you: https://en.wikipedia.org/wiki/...

      (And now too many people know where I let myself be distracted this morning!)

      --
      "The mind works quicker than you think!"
  26. java? by aglider · · Score: 2

    Since when Java can be considered a low-level programming language? Even C++ can be questioned as such!

    --
    Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    1. Re:java? by Progman3K · · Score: 1

      Since when Java can be considered a low-level programming language?

      Yup, stopped reading right there

      --
      I don't know the meaning of the word 'don't' - J
    2. Re:java? by gnupun · · Score: 1

      Well, Java is C++ with garbage collection added and a few difficult constructs (like multiple inheritance, explicit pointers etc.) removed.

    3. Re:java? by abies · · Score: 1

      When you look from high perch of 4GL, every 3GL language looks the same to you. Java is a lot closer to C than to SQL, Wolfram or Matlab. C is a lot closer to java than to assembly. We are talking about languages here (syntax etc), not capabilities.

    4. Re:java? by aglider · · Score: 1

      In my old-fashioned mind, "low-level" means "closer to machine code" while "high-level" means "farther from".
      So, Java is far from being close to machine code while C is little more that machine code with macros, just in a portable way.
      C++ is a little bit farther because of run-time support needed for classes (and other OO fancy stuff), yet still quite close to machine code.
      Java is as close to machine code as a fish from the moon.
      The "capabilities" is something that needs definition. Someone intends "expressivity power", someone else (like me) means "ability to do things".
      Under the latter meaning, there's nothing Java does that cannot be done in C. The other way around seems to be not true.

      --
      Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    5. Re:java? by aglider · · Score: 1

      ... and lower level code interpretation and JIT compiler.

      --
      Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    6. Re:java? by aglider · · Score: 1

      Sure I stopped: I had to vomit first, then clean the screen.

      --
      Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
  27. Wolfram language isn't free by iplayfast · · Score: 1

    except as a toy language. Who ever heard of a language you had to pay to use? And it's not trivial amounts either. The recommended level is $15 a month billed anually, so $180 to use their language. I'll stick with C++ or scratch.

    1. Re:Wolfram language isn't free by rockmuelle · · Score: 2

      "Who ever heard of a language you had to pay to use?"

      S/S-Plus, SPSS, Matlab, IDL, PV-WAVE, Mathematica, AutoLisp (AutoCAD's language) and a range of other smaller languages developed in the late 70s and 80s and targeted at very specific technical markets.

      To some extent, Palantir, Tableau, Spotfire, and even Excel also all are programming environments that are close enough to languages to count here (they all have solutions close to Scratch in spirit).

      I'm just scratching the surface - every industry has these languages and environments. Sure, Python (NumPy/Matplotlib), R, and many of the Java-based environments and C++ libraries can be used to replace these, but most customers don't necessarily have the resources or time to move to these solutions. And, those solutions are never complete replacements. Believe it or not (yeah, I know this is /.), many people see value in using commercial solutions that meet their needs better than the free-as-in-beer/Free-as-in-ideology alternatives.

      -Chris

      ps: Don't forget Oracle and their flavors of Java and PL/SQL that are tightly integrated with the database

  28. The madness continues by Anonymous Coward · · Score: 0

    First it was Microsoft and Google, now Wolfram. When are these guys going to comprehend that 1) most people are not dying to become a programmer; 2) most do not want to become low-pay highly-trained monkeys for big corporations; 3) people can have fulfilling lives without learning anything about computer programming; 4) programming per se takes back seat to mathematics when it comes to developing logical thinking; 5) programming is not computer science; 6) Mickey Mouse languages are not computer science; 7) professional languages are not computer science; 8) kids are, in general, not mature enough to learn the basics of computer science; 9) most people are sick and tired of corporations and their shenanigans, whose obvious goal is to lock-in people for life, but whose ostensible goal is to improve education?

  29. Assembler first by shoor · · Score: 3, Interesting

    I learned to program in college before computers were found in the home, starting with Fortran. And, I could do it, but it didn't really come together for me till I learned assembly language. In class, the teacher started with a very simple model of a computer that had only an accumulator and a small instruction set. We didn't learn about index registers until we had had to write self-modifying code to go through a list. We learned about indirection and pointers and so on.

    And it wasn't hard! OK, I already had experience, but really, a kid could have learned it easily enough. One could probably turn it into a kind of game without much trouble. And, after that, you just know.

    --
    In theory, theory and practice are the same; in practice they're different. (Yogi Berra & A. Einstein)
    1. Re:Assembler first by Anonymous Coward · · Score: 0

      I fondly remember learning via play about logic gates with a game called Rocky's Boots https://en.wikipedia.org/wiki/Rocky's_Boots back in the early 80's.

    2. Re:Assembler first by Anonymous Coward · · Score: 0

      Yeah, start with Assembler. Then build from there. 40 years later these kids will know everything they were expected to know 30 years earlier about contemporary technology.

      Learning to cook? Start by eating everything raw. If you don't die, build from that knowledge.

    3. Re:Assembler first by Anonymous Coward · · Score: 0

      OK, I already had experience, but really, a kid could have learned it easily enough. One could probably turn it into a kind of game without much trouble. And, after that, you just know.

      A game covering many of the core concepts came out last year, called Human Resource Machine by Tomorrow Corporation. It won't last very long for someone already familiar with assembly, but my 5 year old gets a kick out of it.

    4. Re: Assembler first by Anonymous Coward · · Score: 0

      Speaking of turning it into a game, take a look at TIS 100.

  30. Honey coated health food by goombah99 · · Score: 5, Informative

    I looked at teaching my kids scratch. I bought this book called super adventures in scratch. Sort of a comic book that knitted together diverse simple programs into a made up adventure story. No teaching of concepts just moving icons. I did not think much of it but I gave it to my kids.

    Man was I wrong. that book was absolutely perfect for a 7 to 9 year old. they gobbled it up, and competed to finish chapters. played the games, and them tried to modify them. all on their own.

    I could not have imagined a better introduction. And it reminded me a lot of my own self propelled learning by copying BASIC programs out of KILOBAUD magazine (dating myself).

      The challenge then was that computers were slow so you had to figure out how to make programs go fast. The problem today is rather one of managing complexity. And this is where scratch beats wolfram as a language. Scratch has the ingredients we now consider essential most notably event dispatch, listeners and everything that makes objects work. The objects scratch mainly uses are literally iconified (usually a cat or something).

    So yes, no one is writing a word processopr or computing sattelite trjaectories in scratch. but it cuts past the crap of languages (remebering syntax) but teaches you the abstract concepts just as a matter of course. There really isn't any good linear program in scratch and even calling subroutines is rare. You many dispatch messages to objects.

    Wolfram is right if you already know about programming and are fixated on doing some calculations. but in regards to learning scratch is sugar coated health food that kids love.

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re:Honey coated health food by david_thornley · · Score: 2

      My wife taught herself to program modifying game programs in BASIC on the TRS-80. She didn't stop studying there, but currently makes a lot of money as a developer, and is glad she went into the field.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    2. Re:Honey coated health food by Jason+Levine · · Score: 2

      So yes, no one is writing a word processopr or computing sattelite trjaectories in scratch. but it cuts past the crap of languages (remebering syntax) but teaches you the abstract concepts just as a matter of course.

      In college, one of my computer science professors told the class that everything we were learning would be obsolete by the time we graduated, but the concepts we learned would serve us for our entire careers. Sure enough, he was right. I don't code in C anyone (the language I used in college - I was the last class before they moved to C++), but I still use for loops, if-then statements, includes, etc. The syntax changes from language to language, but those core concepts have appeared in every language I've learned since college.

      My kids have done the Code.org exercises (uses a language similar to Scratch) and it helps teach them the concepts behind programming. Everything else is just filling in the details of the individual languages.

      --
      My sci-fi novel, Ghost Thief, is now available from Amazon.com.
    3. Re:Honey coated health food by mrchaotica · · Score: 2

      The challenge then was that computers were slow so you had to figure out how to make programs go fast. The problem today is rather one of managing complexity. And this is where scratch beats wolfram as a language. Scratch has the ingredients we now consider essential most notably event dispatch, listeners and everything that makes objects work. The objects scratch mainly uses are literally iconified (usually a cat or something).

      So, what does it do that Squeak didn't already do 20 years ago?

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    4. Re: Honey coated health food by lisaparratt · · Score: 1

      You do realise scratch came out of squeak, right?

    5. Re:Honey coated health food by HiThere · · Score: 1

      Scratch has a lot of the rough edges filed off so beginners can't hurt themselves, and integrates a lot of fun or useful things.

      When I last tried e-toys the developers hadn't bothered to get all the user interface bugs out, and it was a lot more complicated to use than Scratch was. But, IIRC, Scratch was developed from e-toys, but extracted from the larger environment so you don't need to load a complete Smalltalk image to run it. (I don't think most of Squeak is included...but the transition from Scratch to Squeak should be relatively painless.)

      OTOH, it was stated above that the transition from Scratch to Python is also pretty simple, and Python is more widely useful. (The last time I checked Squeak still wasn't dealing effectively with unicode. And database connections from Squeak were a pain.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    6. Re:Honey coated health food by jonwil · · Score: 2

      Here in Australia there is a TV show called "Good Game" that reviews games and stuff. It has a spin-off TV show called "Good Game Spawn Point" that reviews games and stuff aimed at younger gamers (so only kid-friendly games). Good Game Spawn Point ran a segment (split up over a couple of episodes) on how to build a game with Scratch (a Space Invaders clone IIRC) and it was so popular with the viewers that they brought it back and showed how to make some sort of tank game as well.

      I haven't played with Scratch but I watched some of the segments and it looked perfect for introducing young kids to programming (far better than the stuff I was programming in when I was a kid)

    7. Re:Honey coated health food by Anonymous Coward · · Score: 0

      Thanks mate! I'm just about to start my kids off in scratch, this looks awesome as they love GGSP.

    8. Re:Honey coated health food by KGIII · · Score: 1

      That's kind of how I taught myself to program. I had to learn. It was required for me to do what I wanted to do so I just started looking at other people's C and I'd already done a lot of what your wife did with BASIC. The difference is, probably, that I actually hated computers back then. I really did. I bought a book on C programming, I still own it somewhere - forgot the name but it was good, and looked at lots and lots and lots of code. I also, by then, had USENET and a comp sci grad student as a friend who was with me at the beginning, sort of.

      I really did, I hated computers with a passion. I despised them. I didn't even really start to like them until the early/mid 1990s.

      --
      "So long and thanks for all the fish."
    9. Re:Honey coated health food by GruntMan · · Score: 1

      I could not have imagined a better introduction. And it reminded me a lot of my own self propelled learning by copying BASIC programs out of KILOBAUD magazine (dating myself).

      Until the magazines switched to converting the binary executable into 16 or 32 hex pairs in columns across many pages, and the checksum in an additional column on the right. Compute! and other C-64 magazine did that. I can't recall the name, but a very capable word processor was the end results of a weekend of typing in those hex digits... and then waiting until the next issue arrived with the all-to-frequent errata. I think that word processor took 2 errata lists.

      While it was good that you'd eventually get a working program, the mere typing in the BASIC commands, seeing the logic (and sometimes some code documentation), and the lengthy typo-finding sessions did serve a purpose. A lot of learning there.

      And just to cement my old hand status, first experience was a school's Commodore Pet, the one with the built-in tape drive and (possibly) the label-stuck-on-the-key type of keyboard. We'd wait 10 minutes to load some game (Trek usually) off tape, half the time there'd be a syntax error due to bad tape noise, so load again, play for 10 minutes until it crashed. LIST would show us the source code, and RUN would make it go again.

      Get off my lawn!

      --
      Too cool to live, too smart to die!
  31. C++ and Java are low level? by fustakrakich · · Score: 1

    That's news to me...

    --
    “He’s not deformed, he’s just drunk!”
    1. Re: C++ and Java are low level? by Bing+Tsher+E · · Score: 1

      Well, if you strip off the ++ part, you have C, and C has pointers, which are actually hardware memory addresses, so it can be low level. Not C++ or Java, though.

  32. That's because C++ has destroyed your brain. by Brannon · · Score: 1

    Wolfram Language is far more powerful than any language you've ever used. Try it.

  33. Toy assembler with blinky-lights by davidwr · · Score: 1

    Back in 1998 or so there was a contest to program a re-built 50-year-old computer for a museum.

    I think it was the Manchester Baby Mark 1.

    There were only like 5 or 6 instructions and very limited memory.

    The "wow factor" for kids was the memory:
    It was a 32x32 "dot matrix" on a CRT.

    There was a java simulator for it.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    1. Re:Toy assembler with blinky-lights by dbc · · Score: 2

      That's called Williams Tube storage. Several early computers used it. One of my Computer Engineering profs started on those, then worked on a computer that used mercury delay line memories, a big improvement in storage density. You took a long pipe, formed it into a serpentine that fit the memory cabinet, put an ultrasonic transmitter on one end, and a receiver on the other, forming an acoustic delay line. You regenerated bits, or flipped them, as they came around. Of course, you had to wait for the bit you wanted to fly by.... Later he got involved in some new-fangled stuff called "core", and many of his graduate students went on to be big deals in magnetic core memory design. The last of his graduate students worked on magnetic bubble memory for their thesis work.

  34. He's right by Anonymous Coward · · Score: 0

    I agree with the basic idea here. One bullshit thing I've heard advanced for the last few decades, is that toy languages are "easier." A beginner can get their shit running sooner.

    Ok. If true, then ok. There are very many situations where maxing get-done-quickly, over all other concerns, is the right thing to do.

    And yet, toy languages rarely seem any easier once you get past "hello world." Like, the thing you're working on a week after "hello world" isn't any easier whether you're using PHP or Java. And the thing you're working on a month after "hello world" is harder in PHP and takes you longer. And a few years later, it takes a very special kind of .. discipline? apathy? depressed fatalistic resignation? .. to stay with the PHP job, because you know your productivity is going to be below industry average. You're spending longer writing code than everyone else, you're spending more time finding and fixing bugs that a compiler should have caught, etc etc etc.

  35. Java what?! by Anonymous Coward · · Score: 0

    I always considered Java a toy language... you never stop learning new things in the interstate.

  36. is this an ad? by Punto · · Score: 1

    Is this an ad for this programming language I've never heard about?

    --

    --
    Stay tuned for some shock and awe coming right up after this messages!

  37. In other news there is a language called Scratch. by Anonymous Coward · · Score: 0

    I though Turtle and BASIC were languages for beginners.

  38. Found a simulator Re:Toy assembler with blinky-l by davidwr · · Score: 1
    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  39. I agree by jader3rd · · Score: 1

    My brother-in-law was excited to show me his project from his high school computer science elective course, and I was surprised by what I saw. From what I could tell it was an IDE specifically designed to help kids build and run video games with in the IDE. I'm sure that' helpful for teaching students some very abstract concepts, but it's not empowering. I'd much rather learn how to build a program that will run on an actual computer, than piecing together objects to create a video game that only I'd be able to play.

    After a year of computer science class he still couldn't write a program that could independently of the IDE, or a program that was not a Mario clone. The greatest thing about programming is the empowering ability to get a computer to do what you ask it to do.

  40. LUA by Jonah+Hex · · Score: 1

    Actually I think learning LUA would be great for kids, especially since many video games use it for modding. What's cooler for a kid than seeing mods s/he modifies/creates in one of their favorite games!

    1. Re:LUA by Anonymous Coward · · Score: 0

      Hi! Teen services librarian here. Can you recommend some good resources for LUA? I'm trying to start doing STEM programming for the kids here, and tying it in to video games is a good way to make it feel less like more schoolwork.

    2. Re:LUA by Jonah+Hex · · Score: 1

      I've always just gone off whatever game uses it that I wanted to play with. For example World of Warcraft mods are written in LUA.

    3. Re:LUA by Anonymous Coward · · Score: 0

      Cool. Working with a game-specific tutorial could be fun if I can get it installed on the library computers. I'll look around. Thanks!

  41. Almost, but not quite, a cool language... by Anonymous Coward · · Score: 0

    But so very close! Almost! Except the syntax.

  42. bullshit bingo. we have a winner. by Anonymous Coward · · Score: 0

    "[...] they can be programs that immediately connect to the real world [...]"

    "Wolfram Programming Lab gives people a broad way to [...]"

    "[...] an incredibly valuable career-building practical skill [...]"

    "[...] the kind of computational thinking that's increasingly central to today's world [...]"

    "all for $1.99/month!"

    Ok, I made the last one up.

    I just don't like Stephen Wolfram. I'm not even sure why, but I'm sure that nothing simple and elegant ever comes from his offerings.

  43. JAVA by Anonymous Coward · · Score: 0

    public class HelloWorld {
            public static void main(String[] args) {
                    System.out.println("Hello, World");
            }
    }

    Because that is just sooo much more intuitive than:

    print "Hello World"

    and then one needs to install the correct java interpreter, and the java binary, and the java development environment [Eclipse], hope you have 8Gb memory and disk space.

    Because I can do all that on a raspberry pi for $30, which includes everything I need to get up and running, and even works on old crappy TVs.

    They also include sandboxed environments, just like java, that prevent damage to real hardware/memory. Java is great for junior developers who need a sandboxed environment because they are not ready to do the "hard stuff" like proper memory management, cleanup, etc.

    Then again, it's more rewarding when "hello world" boots in a few seconds, not a few minutes, or spews out a huge stack of stack traces.

    JAVA is a toy, as proof, it runs most toddler entertainment devices like android phone apps, etc. Toddler apps can withstand a bit of lag, business apps can't.

  44. Scratch isn't meant to teach programming by Anonymous Coward · · Score: 0

    This is the point he's missing - scratch is meant to test aptitude for programming, not programming itself. If they like it, the resources are there to take it further. If they don't, they haven't wasted too much time discovering that fact.

  45. Totally Missed the Point... by bradgoodman · · Score: 1

    Scratch is good for very young kids that aren't even proficient enough at TYPING. That would be the first major barrier the Scratch could overcome. When you work in scratch - there is no "syntax" to learn - because it's all tactile. Imagine a second-grader who drops a semicolon and starts trying to interpret an error message given at compile time on the FOLLOWING line due to it...

  46. *Yawn* by MakersDirector · · Score: 0

    This sounds like click bait, to be honest, rather than a real discussion.

    Here's the simple fact of the matter with so-called modern programming languages and their variants: As long as you're thinking in the box, your concepts of incremental improvement will reach a plateau and invariably flatline. I took the bait and checked out Wolfram - and here we have YET another language expressing ideas on how to mirror text, how to determine shortest routes, and to draw polygons.

    How many times has this been done before? Perhaps a thousand times? Perhaps more, much more?

    Scratch is decent for exemplifying logical sequences in a visual manner much like game programming engines do, but calling it a toy language is both silly and stupid. It's a visual way of relating logic to the user experience, plain and simple.

    It's like when people called Visual Basic a toy language... Not only was VB responsible for teaching an entire generation of coders how to code, but it also introduced the beauty of visualizing the user and customer experience first BEFORE filling in the details behind the scenes. Visual Basic, alone is arguably what made Windows as successful as it is and influencing 'real' languages for better UI design and organization concepts.

    The funny thing is. Modern 'experiences' are stripping away those advances, complicating them, and making them difficult to work with. Again.

    In my opinion. The world needs a new REAL toy language that can build optimized applications on the client side without requiring a web connection, and without requiring a virtual machine to run. That and with VR on the horizon, we absolutely need a new framework for designing new 'in virtual reality' interfaces to manipulate our environments.

    Personally. Brain dead endeavors such as Wolfram's are nothing but a 'me too' and please give me a few bucks plea. When the REAL innovation which need to occur and will occur is going to be with application development inside the virtual reality environments.

    Can you imagine pair programming with one person inside the environment and another outside?

  47. Samlltalk was:Honey coated health food by Anonymous Coward · · Score: 1

    Scratch is just and application running on a Smalltalk image. There is an easter egg which will drop you into the full IDE when you are ready to spread your wings and start doing "Real Programming (TM)"

  48. Translation by Mathieu+Lu · · Score: 1

    Another advantage of Scratch and similar Free Software projects: they are usually translated, and require minimal language skills. For 8-10 year old kids, it's a great option.

    I bought a Tiddlybot/PiBot for my kid, which runs Blockly (https://github.com/google/blockly), and was able to switch the interface language easily (less intimidating).

  49. No Language by Anonymous Coward · · Score: 0

    We teach math without calculators. We can teach logic and computer science without computers. Like any other language, programming languages apply mnemonics to otherwise abstract concepts. Why not focus on the concepts independent of an arbitrary representation, just as we do in other core subjects?

  50. Nope by Anonymous Coward · · Score: 0

    My 11yo has been telling me he would like to "program" for over a year, but the idea of teaching Python or Java has felt bad... This week they had a lesson with scratch at school and he came home so happy and excited.

    Today he started playing around with it at home, and in a moment he had a drawn a simple labyrinth, put a ball on the mouse cursor and asked how he could detect when the ball hits the wall... To me it looked intuitive and easy to use. Very little typing, rather he has an idea, and needs to figure out the logic to implement. It seemed like he is solving similar problems on a small scale as in real programming without having to type, think about libraries, dependencies etc.

    At some point I guess we'll go through how this stuff works "in a real language", but I would imagine this will make that step a lot less painful.

  51. Not all kids speak English by kaur · · Score: 1

    Please note that those "toy" languages are based on English.
    Most kids in the world DO NOT SPEAK ENGLISH at the age of 7-8-9 years.
    Half of the world does not even use Latin alphabet - see the map at https://en.wikipedia.org/wiki/....

    Adult programmers are expected to read & comprehend basic English no matter what their native language is. You can speak in Hindi or Amharic with your colleagues, but your if/else statements will still be in English. With kids this assumption will not hold.

    Thus, some other coding languages or paradigms must be used.

    Maybe I am wrong and English will dominate the future world so heavily that all 5 year olds WILL comprehend it enough to use it for basic coding?

  52. the problem with scratch by Anonymous Coward · · Score: 1

    The problem with scratch is that the kids have conquered my ipad, extorted me into buying a copy of Minecraft PC to modify and then to get the Mindstorms robot thing for them. Cost me over a thousand dollars, they're still to young to hold a job, and they dont' do much housework.

  53. Teaching languages considered harmful by plopez · · Score: 0

    Stop teaching people toy languages. Because before you know it people will be using them in production in a role they were never intended. If you want to see what damage that can cause look to BASIC and VB, and Pascal. As they were the only languages people knew, especially managers, they were forced into a role they were never intended to fill. Hence they had to be kludged to actually be useful.

    So pick a scripting language such as Python, Perl, Ruby, JavaScript, etc. instead.

    --
    putting the 'B' in LGBTQ+
  54. Yet another money pit! by Anonymous Coward · · Score: 0

    Another subscription money pit! I think not!
    It may be a great language but with that business model I for one will not even try it!

  55. some of our society is useless by Anonymous Coward · · Score: 0

    The problem with Wolfram Alpha's programming language is that you can't really use it to accomplish anything. It exists in a bubble that isn't very useful. Really it is just interesting for a few minutes to play with. Are you going to write a smartphone app, word processor, website or some revolutionary new software program? Nope. Also, it is so unlike actual programming languages used to make those kinds of useful programs that it isn't important to learn. The same goes for Scratch. Maybe they're useful for getting kids interested, I don't know. I mean if you're not already interested in programming of your own volition then you're probably not going to be. If a real programming language is too hard for you or you don't want to learn to type, then you are probably doomed to just playing with tablets or game consoles and being generally useless to society except as a consumer.

  56. Thanks!Re:This is about communicating by Anonymous Coward · · Score: 0

    You gave me a chuckle, and - since it was at your expense - I feel it would be proper and polite to thank you for it.

  57. Scratch requires Flash? No go... by ffkom · · Score: 1

    ... but maybe you can tell me that I got it all wrong from looking at their web page for 10 seconds.

  58. Correct! by Anonymous Coward · · Score: 1

    In order to teach someone English would you require them to learn Pidgin-English?

    Answer: No.

    Very simple.

  59. Plato by Anonymous Coward · · Score: 0

    Approach this from Plato's view point. The amorphous blob. Stereotypes. What is a thing... Etc. Use kunta kinte as a name placeholder for what/who is a baby?

  60. Programing languages are like standards... by The123king · · Score: 1
    --
    If you gave me a choice between a printer and a giraffe with explosive diarrhoea, i'll get my ladder and my raincoat
  61. meh by Anonymous Coward · · Score: 0

    a lot of meh

  62. Khan academy by spongman · · Score: 1

    I have a 9-year-old that knows how to program JavaScript thanks to khan academy's excellent interactive tutorial series. He quickly hit a brick wall with scratch.

  63. Mark down is more fundamental to education by kentsin · · Score: 1

    A markdown syntax which can write math formulas, chemical, musical, ...... is more important and fundamental than anything else for education.