

TrollScript, an esoteric dialect of Brainfuck. - wlll
https://github.com/tombell/trollscript

======
carterparks
I can't understand why anyone would choose to use this language. Clearly it is
unreadable and I highly doubt this scales. Can somebody give me a good reason
for using this on my Facebook clone instead of a more mature language such as
PHP, Python or Java? Also, I heard somebody was developing a web framework,
Trolls under Bridges. Has anybody heard about this?

~~~
lkrubner
I don't think this is a language people use in real life. It's more for
testing. When I went for a job interview at Alexander Interactive
<http://www.alexanderinteractive.com/> one of the tests they gave me was to
write a short bit of code in Brainfuck to reverse a string. The string they
gave me was "Hello World". I was allowed to look at the Wikipedia page
regarding Brainfuck. They had an interpreter running, into which I could type
my code and see the results. I had 15 minutes to make it work.

I think that is where these kinds of languages are used. I think the idea is
to test how fast a programmer can learn something new. (For the most part, I'm
doubtful about these tests.)

~~~
lukejduncan
Sounds like either they were messing with you; you are messing with us; or
Alexander Interactive doesn't respect their applicants

~~~
burgerbrain
Impossible, or seemingly impossible, interview questions are actually quite
useful. It can be quite informative to see how the applicant response to such
a situation, and what their _"Oh shit, wasn't expecting this"_ emergency
problem solving techniques are.

~~~
Helianthus
Which is another way of saying, messing with people is a respectable interview
tactic--see how they react to a little nudge.

~~~
RickHull
> Which is another way of saying, messing with people is a respectable
> interview tactic

I don't think so. Rather it's that technology jobs (and others, surely) often
confront frustrating, confounding, and even downright impossible tasks. The
ability to identify a situation as impossible or otherwise -- to drill down to
the point of conflict -- is prized, as well as the ability to keep it together
mentally and keep plugging away.

------
wlll
A trollscript interpreter in trollscript:

[https://raw.github.com/gist/1204925/743626cf2313690d82243e99...](https://raw.github.com/gist/1204925/743626cf2313690d82243e991f336b24844dc02b/gistfile1.txt)

Have it sung to you on OS X: $(curl
[https://raw.github.com/gist/1204925/743626cf2313690d82243e99...](https://raw.github.com/gist/1204925/743626cf2313690d82243e991f336b24844dc02b/gistfile1.txt)
| say -v "Bad News")

~~~
simpsond
And I thought brainfuck was hard to read... Pretty funny.

------
ashleymoran
The biggest obstacle to me using TrollScript professionally is lack of testing
tools. Troll-driven development is a fundamental tenet of XP which I'm not
willing to forsake. Is anyone working on TSUnit or TSSpec? In addition,
Cuke4Trolls would be a worthwhile project. I'd like to practice behaviour-
driven trolling expressed in natural troll language, so TrollScript seems like
the perfect target.

------
0x12
Someone (definitely not me) should make a GCTA version of this where the
'codons' map to the 8 opcodes.

Then you can execute any DNA string ;)

------
mahrain
Now compile the Mr. Trololo video transcript and see what Soviet software he
was actually transmitting!

------
sien
Has anyone done a proper comparison to Ook ?

<http://www.dangermouse.net/esoteric/ook.html>

------
laconian
Get back to me when I can write it in an IDE with syntax highlighting and
content assist.

~~~
NickPollard
How do I parse Trollscript with Regular Expressions?

~~~
caiusdurling

      str.scan(/.{3}|.{1,2}$/).each do |bit|
        process(bit)
      end

------
wollw
Something inspired me to write a Brainfuck interpreter after reading this so I
just put together one in Scheme with a TrollScript compatibility layer. I
haven't tested it extensively but it seems to work with everything that I've
thrown at it.

<https://github.com/Wollw/BrainScript>

I wrote it using Guile 1.8.7 and I have no idea if I'm using Guile specific
features or not.

edit: Seems it's still a bit broken. The reverse string example in this thread
doesn't work for example.

edit2: Well the reverse string example works now. I changed it to read the EOF
as equal to 0.

~~~
hbrouwer
Here's one a friend and I did in Prolog last year:

<https://github.com/danieldk/brainfuck-pl>

Why? Because it can be done. And actually prolog's tracing mechanism makes
debugging brainfuck code quite insightful.

~~~
bromagosa
I coded one in Pharo Smalltalk last year:
<http://www.squeaksource.com/BrainFuck.html> It's so slow it's almost
hilarious. It took it 8 hours to print an ASCII mandlebrot fractal frame, NO
KIDDING.

------
saintfiends
Not another scripting language. Google announcing Dart and now this?. I think
I like the syntax improvements though.

------
aduros
I work for a company that primarily uses LOLCODE. I've been trying to convince
my boss of the benefits of moving to Trollscript, so I wrote this Trollscript
interpreter in LOLCODE: <https://github.com/aduros/trollcat>

~~~
bromagosa
If I could, I'd upvote you a million times.

------
overshard
Part of the troll is that it's programmed on top of Ruby...

------
EwanG
As amusing as I find all this, can you imagine what would happen if one of
these took off? I had enough trouble several years ago convincing my boss that
we really did need to get a copy of Satan... can you imagine trying to even
fill out a PO to order 1000 licenses of Brainfuck with the optional
TrollScript extension?

~~~
BasDirks
Your trolling is highly inappropriate.

------
bromagosa
This is the best thing I've seen in my whole life. Word.

------
jgmmo
Wow... I never knew a 'Hello World' program could look like this. Mind =
Blown.

Trooloolooloolooloolooloolooloolollooooolooloolooloolooloolooooolooloolooloolooloolooloolooloooooloolooloooooloooloolooloololllllooooloololoooooololooolooloolooloolooloololoolooolooloololooooooloololooooloololooloolooloolooloolooloolooloolooloolooloololooooolooolooloololooollollollollollolllooollollollollollollollollloooooololooooolooll.

