The bad-word filter didn't add the asterisks. I did.

I got passed a link to this "Computer Language" by a parent who asked me if I knew anything about it and was this a worthwhile endeavor for her teenage son to learn. I assumed by the name that it was not and was a joke, but a little research suggests that it is perhaps a legitimate endeavor for an after-school Programming Club. If I were the teacher in charge of this club, I imagine the name would give me pause as it would distract from the learning. Apparently, though, the teacher wants to try it out with some of the kids who are having a hard time with the more traditional languages as well as some of the advanced kids who want to learn a little more about the deeper Computer Science concepts in lieu of teaching Assembly. A quick glance makes me skeptical that the kids who are having problems with BASIC and Python will be able to grasp this language.

Is this a legitimate language? Has anyone heard of it/used it? Would you consider teaching it to teenage students or is it a waste of effort? If you DID decide to teach it, who would you teach it to: newbies and folks having problems or the more experienced whiz kids planning to major in Computer Science in college?

Well it's a legit language but for many reasons you rarely see it in the wild. And given it's not something your average code monkey can't deal with, it's best left to the curious.

Here's an online visualizer.

All of my encounters with it have suggested that it was created as its name suggests ... it's a legitimate language, but it has such a crazy, unreadable, unmemorizable, unintuitive syntax that it's almost purposefully designed to be a brain challenge to write in more than anything else.

It's certainly not designed or geared towards newbies, and I think that the more experienced programmers who want to major in Comp Sci in college would find it MUCH more valuable to learn something like Assembly which is actually incredibly useful and would help them in college.

Brainfuck is designed with the single purpose of being a real language that is designed to F with your brain just for the sole sake of being challenging and a brain teaser instead of useful.

OK, good to know. Sounds like a disaster waiting to happen, as he's gearing it NOT as a Brain Teaser or to F with these kids' brains, and the audience is kids who are bright, highly motivated, but extremely frustrated because they can't get their heads into how a computer works, but seem to grasp some of the ideas of how a state machine worked, could follow some logic graphs and flowcharts, language parsing, stacks, etc., when written on the board in words and graphs, but they are having a hard time translating it to programming. Sort of the opposite of a code monkey. They're better at the theory than actual coding and can sometimes follow parsing an algebraic statement into stacks of operators and values with precedence. Bright kids who aren't achieving their potential scholastically for a variety of reasons. The goal is to give them success, increase self-confidence, and make it fun.

I imagine F'ing with their heads would be counterproductive here and would just drive them away. The teacher wants something that actually MAKES SENSE. He seems genuine in this. Not sure why he considered this, but I'll suggest pouring cold water on it. Thanks.

There are plenty of esoteric programming languages, some of which have been around for a long time.

I'm not sure actually teaching students syntax is too important, but demonstrating that there are many languages each with their own strengths and weaknesses is. Readability and succinctness are definitely advantages.

commented: Great link that explains what I was trying to say perfectly = +16

BF was designed to be as small as possible. The interpreter was about 700 bytes or so. In the previous century most computers had sometimes no more than 4K RAM. I once saw a mandelbrot set written in BF.
The teacher who wants to use it wants to be progressive and impress his students. Well, IMHO students will be dissapointed again and left with fucked up brains by the strange syntax.
I would opt for the Pascal language as first language. It was designed for that purpose.

Teaching Pascal as a first language in 2017? Really? Hopefully he's not just doing it to impress people. That's missing the point. It's not supposed to be about him. Hopefully this is just a kooky bad idea, but with pure motives. I'd say it's firmly been established that this IS a bad idea.

Regarding 4K of RAM, I've been programming PIC microcontrollers lately. Lots of them have that much RAM or less. ISIS is supposedly even using them to make roadside bombs in Kurdistan. Someone set up a website where you can download script-kiddy stuff, compile it onto a development board with a transceiver, encryption and the whole bit, and voila, a 16-year-old illiterate jihadist now has a bomb that the US military with all its fancy expensive technology can't defeat, detect, or defuse. 4K or less of RAM and a few bucks and less than an hour of training time. It's amazing. Naturally some people think the solution is to ban microcontrollers.

I've often wondered how much RAM they had to put a man on the moon and it's mind-boggling to think that my microcontroller that cost me less than a dollar rivals cutting edge technology from less than 50 years ago. I remember them using an Abacus in the movie Apollo 13 and I often wondered if that was accurate. Hard to imagine using an Abacus in lieu of a computer/calculator.

Teaching Pascal as a first language in 2017? Really?

Pascal has the benefit of being very easy to understand. It's also hand-holdey, which for most of us translates to "heavily restricted", but for beginners means less working around the quirks of the language and focusing directly on solving the problem at hand.

Hopefully this is just a kooky bad idea, but with pure motives.

I don't disagree with the concept, but Brain#### wouldn't be a good language choice. From the goal stated in the OP, I'd actually recommend some variant of Forth. Also a legit language (with more practical use than Brain####), and the stack-based design is enough of a difference from your more usual languages to entertain and challenge both the remedial and advanced students.

Another option would be a variant of Lisp, but I think Forth is more accessible.

@AssertNull: Hmm, you don't need a microcontroller to let a bomb explode.
And if you're in doubt about the RAM on the Apollo missions, you could start reading this article
You may think of Pascal as you wish, but it was designed and it still is a first computer teaching language. In the 80-thies I did a lot of programming with the successor language Modula-2.
And as Deceptikon points out, Forth may also well be considered as a first language to learn.
For the moment I am trying to translate some Go (golang) code into C#. It's a hell of a job, but I'm enjoying every moment of it! :)
I fact just to point out that languages in the long run don't matter that much. Try being a web developer. So start slow, start Pascal! Forget BF.

You may think of Pascal as you wish

I actually have no opinion on Pascal as a starting language as I am rather ignorant regarding Pascal. I used it way back, but I really don't know its pros/cons. I'm not skeptical. I'm surprised. I didn't realize people still used it, particularly folks NEW to programming. I used Modula-2 too in college. Why they taught that instead of C++ I don't know. Never used it after that, so it seemed like a bit of a waste. I'm sure it's a fine language, but the guy taught it simply because he knew and admired Niklaus Wirth and knew and liked the language. As far as I know, none of the other professors taught it.

I don't doubt the NASA guys either. I'm just impressed they could do so much with so (comparatively) little.

Thanks for everyone's input. I've passed on this thread to the relevant folks.

I think it's super important to pick a language that has a lot of recent, practical applications and has a strong community around it. Newbies to programming I think would appreciate seeing the language they're writing in actually being the same language as was used to create software they actually use, as it makes it all relevant when they can see tangible practical applications to what they are learning. For the more advanced yet young students, I think having a strong community around the language opens up a lot of opportunities for them to hit the ground running on their own, and really be self-motivated to expand their skills beyond the classroom. For example, if they see that the language they're learning in school has a large community around it, they may be more inclined to join the community themselves, and participate in open source Github projects, etc. in their free time.

This sounds and appears like a program designed to just make the brain think, personally that is a very good idea. There are many languages available from the old to the new and they all have their purposes, the old ones made people think more about data design and structure. Modern coding makes database and screen handling much easier but doesn't enforce rules on efficient coding, most data is still stored on hard disks and an inefficient search will not only be slower but take more system resource on the remote server.
Perhaps this language will encourage more use of the best computer in the world, the human brain.

commented: A recent client request was for an app in 2 weeks. Will not comment about brains. +12