Live data from Hacker News

I wrote an LLVM-powered trace-based JIT for Brainfuck

github.com

11–20 of 56 posts

Re: I wrote an LLVM-powered trace-based JIT for Brainfuck

#11
post #10
post #2

I don't know... "neat hack", but it seems there is so much out there that could actually have some kind of practical application that it's a bit of a waste to work on "silly" projects. I love to hack on things that don't have any immediately evident business model or real world application, but I think purposefully working on something that never will is perhaps a bit unfortunate. Yeah, he learned something for sure,…

This is an awesome project to look at to learn how to write a JIT. BF is simple enough that it's easy to see what's going on. Learning is silly and useless?

> Learning is silly and useless?

Yes, that's precisely what I said, isn't it.

Re: I wrote an LLVM-powered trace-based JIT for Brainfuck

#12
post #5

Earlier quoted context omitted.

oh look! http://en.wikipedia.org/wiki/Art_for_arts_sake

Yeah, I don't think of programming as an art, but a craft, so that's why I have the point of view I do. There are tons of projects that will never go anywhere, done just for learning or as neat hacks, but why ensure that one won't?

It's the same as carpentry and sculpting. It's the same thing, but one is a craft and the other is an art. This guy just took time off making furniture to build a sculpture.

Sure, he could have made a new kind of furniture, but making sculptures also has its merits (or not, depending on your viewpoint, I guess).

Re: I wrote an LLVM-powered trace-based JIT for Brainfuck

#13
post #8
post #2

I don't know... "neat hack", but it seems there is so much out there that could actually have some kind of practical application that it's a bit of a waste to work on "silly" projects. I love to hack on things that don't have any immediately evident business model or real world application, but I think purposefully working on something that never will is perhaps a bit unfortunate. Yeah, he learned something for sure,…

I'm assuming you've been downvoted because slightly more than 50% of HNers think of this project as an artistic/fun project. But the fact is, even a purely artistic/fun project will have some creativity or originality in it. I would consider a toy language or Brainf__k written for the first time as artistic. But this project is just a JIT for Brainf__k, there's no creativity in it, and all it did was give the author…

Does HN censor the "fuck" in "Brainfuck", or was it just you?

EDIT: Ah, it doesn't.

Re: I wrote an LLVM-powered trace-based JIT for Brainfuck

#15
post #7
post #6

Earlier quoted context omitted.

That's not the point. These are the kind of projects programmers do for fun. Your comments is like saying "if this guy didn't go the zoo, but rather spent his day at work, he at least might have been productive". Now, I can imagine you wouldn't enjoy watching somebody else's pictures of zoo animals, unless you were very interested in zoo animals, like, say, some people are interested in compiler technology and/or eso…

I did a small language for fun: http://www.hecl.org And it has actually turned out to be useful, besides being a lot of fun to work on. I am not saying fun projects need to be useful (I'd be the last one to say that), I'm saying "why ensure they'll never be useful?". Here's another language that is a 'fun project' that, who knows, might be quite useful some day: http://wiki.reia-lang.org/wiki/Reia_Programming_Languag…

> I am not saying fun projects need to be useful (I'd be the last one to say that), I'm saying "why ensure they'll never be useful?".

Because some things are done for learning exercises and nothing more.

Just because that code isn't going to do anything useful when executed, it does not mean that there is no value in the exercise of producing or sharing the code.

Not that it needs that much justification, fun is a good enough reason.

Re: I wrote an LLVM-powered trace-based JIT for Brainfuck

#16
post #15
post #7

Earlier quoted context omitted.

I did a small language for fun: http://www.hecl.org And it has actually turned out to be useful, besides being a lot of fun to work on. I am not saying fun projects need to be useful (I'd be the last one to say that), I'm saying "why ensure they'll never be useful?". Here's another language that is a 'fun project' that, who knows, might be quite useful some day: http://wiki.reia-lang.org/wiki/Reia_Programming_Languag…

> I am not saying fun projects need to be useful (I'd be the last one to say that), I'm saying "why ensure they'll never be useful?". Because some things are done for learning exercises and nothing more. Just because that code isn't going to do anything useful when executed, it does not mean that there is no value in the exercise of producing or sharing the code. Not that it needs that much justification, fun is a go…

Ok, you people are seriously failing to comprehend that which I am attempting to communicate to you.

* I have no problems with 'fun projects'. I do them myself.

* I have no problem with 'useless code'. Many fun projects are never useful. I have done these myself.

* I have no problem with learning for learning's sake. I have engaged in lots of that.

What I don't agree with is artificially limiting your project's potential. By choosing to implement brainfuck, instead of Tcl or Lua or Forth or Lisp or any number of other languages (even if it's just a toy version, and not the full spec), you've consigned your project to the dustbin before you've even finished it. To my way of thinking, that just doesn't make any sense. If you want to be artistic, go out and make your own language.

Re: I wrote an LLVM-powered trace-based JIT for Brainfuck

#17
post #2

I don't know... "neat hack", but it seems there is so much out there that could actually have some kind of practical application that it's a bit of a waste to work on "silly" projects. I love to hack on things that don't have any immediately evident business model or real world application, but I think purposefully working on something that never will is perhaps a bit unfortunate. Yeah, he learned something for sure,…

I can't disagree more.

This is a great project for learning how to use LLVM because there is nothing to add complexity. There is no need for a runtime library. There is no need for a complicated parser. With those parts gone, all that matters is building the compiler, JIT core, tracing algorithm, and so on.

Now that the author knows how to do all that, he's mentally prepared to be productive when taking on a more complex task, like writing his own language or improving an existing one.

You seem to think that because it's on Github you're supposed to use it. Incorrect. Github is just a public backup and a way of sharing something with your friends. Kind of like posting your drunken photos on Facebook. Productive? No. Fun? Yes.

Re: I wrote an LLVM-powered trace-based JIT for Brainfuck

#18
post #8
post #2

I don't know... "neat hack", but it seems there is so much out there that could actually have some kind of practical application that it's a bit of a waste to work on "silly" projects. I love to hack on things that don't have any immediately evident business model or real world application, but I think purposefully working on something that never will is perhaps a bit unfortunate. Yeah, he learned something for sure,…

I'm assuming you've been downvoted because slightly more than 50% of HNers think of this project as an artistic/fun project. But the fact is, even a purely artistic/fun project will have some creativity or originality in it. I would consider a toy language or Brainf__k written for the first time as artistic. But this project is just a JIT for Brainf__k, there's no creativity in it, and all it did was give the author…

exercise projects do not belong to [sic] HN

You've used HN for 38 days and you are already saying what kinds of programming articles should and shouldn't be on HN?

Sorry, but this is exactly the sort of thing we should see on HN.

But this project is just a JIT for Brainfuck, there's no creativity in it, and all it did was give the author some experience writing JITs.

How exactly do you define creative?

The author applied his programming skills to create something that didn't exist before. That's creative.

Re: I wrote an LLVM-powered trace-based JIT for Brainfuck

#19
post #2

I don't know... "neat hack", but it seems there is so much out there that could actually have some kind of practical application that it's a bit of a waste to work on "silly" projects. I love to hack on things that don't have any immediately evident business model or real world application, but I think purposefully working on something that never will is perhaps a bit unfortunate. Yeah, he learned something for sure,…

I can't disagree more. This is a great project for learning how to use LLVM because there is nothing to add complexity. There is no need for a runtime library. There is no need for a complicated parser. With those parts gone, all that matters is building the compiler, JIT core, tracing algorithm, and so on. Now that the author knows how to do all that, he's mentally prepared to be productive when taking on a more com…

> You seem to think that because it's on Github you're supposed to use it.

Actually, if you read my post, you would have understood that that is not the case:-/

Your point about it being a "minimum viable language" is a good one though, but I find it difficult to think there isn't something else he could have chosen.

Re: I wrote an LLVM-powered trace-based JIT for Brainfuck

#20
post #16
post #15

Earlier quoted context omitted.

> I am not saying fun projects need to be useful (I'd be the last one to say that), I'm saying "why ensure they'll never be useful?". Because some things are done for learning exercises and nothing more. Just because that code isn't going to do anything useful when executed, it does not mean that there is no value in the exercise of producing or sharing the code. Not that it needs that much justification, fun is a go…

Ok, you people are seriously failing to comprehend that which I am attempting to communicate to you. * I have no problems with 'fun projects'. I do them myself. * I have no problem with 'useless code'. Many fun projects are never useful. I have done these myself. * I have no problem with learning for learning's sake. I have engaged in lots of that. What I don't agree with is artificially limiting your project's poten…

Not sure why you see implementing a simple language to learn the underlying techniques as "artificially limiting" the project's potential. Maybe this is just a step to implementing a more complicated language.
Post reply on HN