Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Brainfuck is an esoteric programming language created in 1993 by Urban Müller. It was designed to challenge and amuse programmers, and was not made to be suitable for practical use.

But still, it exists and some really cool stuff is written with it.

My question is - will learning/practicing Brainfuck increase the depth of my knowledge of programming? For example: as a high-level programmer (using high-level languages) will it improve understanding of low-level methods and operations? Or is it really just a joke used to spend some time and amuse by showing code that really looks like "code" in a sense that's it's hard to read/understand.

share|improve this question

closed as primarily opinion-based by James McLeod, MichaelT, gnat, Bart van Ingen Schenau, Dan Pichelman Feb 24 '14 at 14:29

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

up vote 10 down vote accepted

Brainfuck (and number of other esolangs, my favorite is FRACTRAN) take you down to the very basics of computing and the nature of storing state, and looping.

It might be more useful to work on something a bit easier to think of with a less objectionable name such as a Minsky register machine. If you look at the Wolfram Mathworld article on register machines you will likely see a strong relationship with BrainFuck.

By understanding how programs in these languages work (and many of them are Turing complete) you may get a better idea about the nature of computation and Big O.

The fundamentals of how to write a program in esolangs make the fundamentals of computing a bit more clear... or murky, but through their murkiness shine a light on other aspects of the fundamentals that are forgotten in the higher level languages.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.