return to table of content

Show HN: I spent 6 months building a C debugger as a 17-year-old

bluetomcat
21 replies
1d1h

Looks especially clean, consistent and well-modularised, tackling a problem that requires non-trivial knowledge about binary formats and kernel APIs. Many "senior" programmers would struggle to build something like this even at a conceptual level. The antithesis of "kids these days" :-)

Out of curiosity, how does a 17-year-old attain that level of knowledge? Books, peers, programming clubs, parents who are programmers probably?

D4ckard
8 replies
1d

It's mostly books and blogs: I like to read a lot. Also, your guess is correct, my dad is a computer scientist.

manicennui
6 replies
23h38m

Reading books to increase your understanding puts you ahead of 90% of people who graduated from a CS program in the last 5-10 years from what I've seen. Several of my coworkers admitted to having never read a book on anything related to software engineering before and it shows.

flykespice
3 replies
20h15m

To be honest these days articles on the web seem to be more efficient means to attain knowledge than a book, with less condensed words

yi_xuan
0 replies
13h17m

Don't think so.

If articles are more efficient, then it means there are plenty of nonsense in books. I don't think good books are filled with a lot of nonsense, if they are, then they are not good.

However, it's a fact that there are a lot of books which are collections of many trivial topics, collections of unrelated articles.

manicennui
0 replies
53m

These people don't read anything that they aren't assigned in school or by their manager at work.

keyle
0 replies
17h18m

If you can find good articles. The reality is with the ad economy, 99% of articles are plain wrong and copypasta.

Todays internet is a cat litter spilled all over the floor.

uoaei
0 replies
17h48m

Having parents who expose you to these things and instill curiosity and passion puts you ahead of 99.9% of people who graduated from a CS program if you decide to go through that yourself. Direct early-life hands-on experience is a huge privilege and it is important to remember that.

peruvian
0 replies
15h15m

We just had a thread about programming books where plenty of people admitted to never reading them.

sagarpatil
0 replies
12h28m

I'm impressed. What did your dad do to help you get interested in coding?

thibaut_barrere
3 replies
22h50m

I can reply because I was in the same situation at a younger age, at a time with no internet then limited internet.

Raw curiosity & having "just access to the required hardware" (a huge "just") and a bit of books & magazines can take you a long way.

My parents were not programmers but my father bought computers early on (1984), and later brought compilers at home (via his work), e.g. TurboPascal, C++, and let me experiment.

I learned mostly via magazines & books, and later a bit of exchanges with peers (demomaking), and also via buying disks (https://fr.wikipedia.org/wiki/DP_Tool_Club) that contained documentation (such ashttps://en.wikipedia.org/wiki/Ralf_Brown%27s_Interrupt_List) and arrived via snail mail.

I "just" gradually iterated and coded small stuff, then gradually more complicated stuff (Windowing toolkit in CGA, a Tetris clone, a Bomberman clone, FFT software, and ultimately 3D realtime rendering without any FPU, only in software, with Phong rendering and suchhttps://github.com/thbar/demomaking#obez-1995).

I was not an isolated case in the sense I ended up stumbling on other teenagers (via the demomaking world) who did exactly the same thing.

Today a curious kid can go probably much further, as long as curiosity is encouraged :-)

seb1204
2 replies
5h15m

Sorry but 1980 does not compare to 2020 I levels of distraction kids nowadays have that divert their attention into consuming rather than creating.

I would really be interested in the author's take on it.

thibaut_barrere
0 replies
3h57m

It's not the same for sure. But I see my 15-yo doing mostly the same today!

You are right that the attention-eating stuff is a huge difference.

Happy to also read the author :-)

D4ckard
0 replies
3h43m

There are definitely many people who almost exclusively spend their time consuming stuff at a young age. I cannot tell however, if that has ever been different, or if it's just perceived differently now. For many people continue consuming a lot their entire lives. The quality of the content one can consume has likely gone up though, or at least it has become addictive.

The idea of only watching saddens me. Doinganycreative work is incredibly satisfying, and I think has positive effects on long-term happiness and self-worth.

ManuelKiessling
2 replies
23h33m

Tangential: my gut feeling is that this is a very good use case for GPTs; I’m an experienced application developer and sysadmin, but wouldn’t even know where to start if I’d want to tackle this sort of topic. I’m pretty sure ChatGPT would point me in the right direction and allow me to tackle the first important steps.

sdwr
0 replies
22h40m

Yeah this is the dream for ChatGPT. Someone with enthusiasm, some knowledge, and tons of free time.

saagarjha
0 replies
17h45m

ChatGPT might be able to point you at some stuff but you might run into trouble if it tells you something and you have no easy way of verifying whether it’s right or not, since you won’t be in a position to check.

forgotpwd16
1 replies
20h45m

how does a 17-year-old attain that level of knowledge?

There's an excellent blog series linked at repo that guides you step-by-step.

D4ckard
0 replies
3h41m

Yes. Anyone who is interested in this topic should read it.

flashgordon
1 replies
22h16m

Wow this is amazing. My question on top of yours is beyond just knowledge (which yes yes I know I am underrating) how does a 17 year old get this kind of passion. (Not to brag) I was very fortunate to have this kind of passion in my early teens (also I did not have many friends) but I am really struggling to get my kids and their friends this kind of passion!

saagarjha
0 replies
17h46m

Well, part of it includes actually wanting to do this stuff. Some people don’t, and that’s fine.

up2isomorphism
0 replies
1d

Because there is no software engineering manager who likely does not write any useful code for a long time and is telling engineers what to do.

MuffinFlavored
16 replies
20h51m

I always found this a bit weird. Why do you want everybody to know how old you are? It's kind of like... hey, I did this impressive thing, please give me credit, but also, just to give it some flare and kick it up a notch, I'm also super young making it that much more impressive!

Why couldn't the title be

Show HN: I spent 6 months building a C debugger

Why is your age relevant other than "wow factor"?

badrabbit
4 replies
20h33m

I was about to make a similar comment. The project is impressive but a bit annoyed because he attached his age to it.

OP, you'll do cool stuff. Your age, location,sex, etc... has nothing to do with it. A 60yr old hobo and a 17yr old kid who know nothing about programming are at an equal footing, what each accomplishes is the result of how much time and effort they put into it (not neccesarily the same).

If you were like a 5 year old that'd be noteworthy but reading, writing, knowing how to use a computer and time is all that is needed for coding, unless you are out there creating or implementing sophisticated algorithms that require background mathematical knowledge.

I'd love to be corrected on this but there isn't anything you learn in school beyond like the 6th grade that is needed to succeed as a coder (not SWE, just programming and creating cool stuff).

I hope you let the coolness of your work speak for itself in the future OP.

MuffinFlavored
3 replies
17h45m

I think it's super interesting that you and I went from upvoted -> downvoted. It seems the community is pretty split on agreeing with us / thinking we're the problem. Interesting how we can't all get along... Try to give a youngin' some friendly unsolicited advice, only to get told we're the problem.

After a while it trains you to suppress your opinion/not speak up. Those who put us down the hardest will dominate and we'll give up + stay silent.

What will that lead to?

A chamber full of...

badrabbit
2 replies
15h54m

Oh yeah, that's HN. They'll even follow your every post and downvote out of spite.

It is appearances only many seek not genuine and sincere truth.

pvg
1 replies
15h3m
badrabbit
0 replies
11h40m

Hey, at least you had the decency to even in engage in a conversation, even if it is veiled ad-hominem. Your reponded against my personality, arguably "brigading" which I am told is against HN rules. Instead of attacking my argument, which so happens also supports my statement about intellectual cowardice on HN.

codetrotter
3 replies
20h48m

It’s very common for teenagers to do so. I did the same when I was their age. No reason to question why they do it, it’s just a thing teenagers do.

MuffinFlavored
2 replies
20h20m

No reason to question why they do it,

No, then they'll never learn that it is received by "adults" as "unnecessarily extra-attention seeking".

Most people who like to share stuff are seeking validation one way or another (myself included).

It might be worthwhile for OP to step back and ask "why am I seeking validation from strangers online to find what I post impressive"?

thibaut_barrere
0 replies
19h21m

Maybe he didn't come here to receive a therapy :-)

Maybe it's just cool to connect with people similarly minded and share what everyone is doing, not necessarily for attention seeking, but because it improves everyone's situation by sharing extra knowledge?

Just sharing what I did at a younger age brought me extraordinary connections at the time, some who still are friends 30 years later.

alex_lav
0 replies
15h8m

It’s not random people’s job on the internet to coach kids like this. I also disagree with you entirely on the way “adults” will perceive this behavior, so clearly there are no unanimous perspectives on how others will interpret things. Maybe this will be a good moment of reflection for you, an “adult”.

skullone
2 replies
20h41m

Because this is a highly unusual and complex thing for someone that young to accomplish? We should applaud them for their dedication and results. There's soooop much that can distract youth (or anyone of any age) from completing a pursuit like this. To the point I find your comment to be pedantic and ageist.

badrabbit
0 replies
20h31m

Your expectation that age should have prevented OP from doing cool things is what is ageist and harmful to the success of youth. A 17 year old can revolutionize the world if they wanted to, lest you "adults" set such a low bar.

_Algernon_
0 replies
20h15m

This is a highly unusual and complex thing for anyone to accomplish. Why not let the achievement stand for itself?

Mentioning one's age screams insecurity (though to be fair, that is to be expected from teenagers). And as this comment chain illustrates it also partially derails the conversation to discussing his age, instead of his actual achievement.

w4yai
0 replies
14h8m

Because of people like you most likely. There are so many reasons why young people are discouraged or plainly afraid to do things nowadays. They're being told they can't do X or Y because it's too complicated. They're also brutally judged when they show off something.

So yeah, being able to spend 6 month building such a nice piece of code is awesome and admirable, BUT ALSO being able to pull it off at this age is another accomplishment that should be applauded.

Let's support our young generation, don't do the same mistake than your older generation and don't be mad because you weren't receiving the same amount of support at his age.

pvg
0 replies
19h14m

If you squint, 'no weird meta nitpickery' is not hard to derive from most ofhttps://news.ycombinator.com/showhn.html

HybridCurve
0 replies
13h13m

The author's age is relevant as it gives the rest of the community a standard at which to judge their achievement, and a reference point to base our criticisms. Users here can be savage when judging other's work and castigating a person at this age would be both unnecessary and detrimental to their development.

2C64
0 replies
19h37m

Different strokes, but the context in which something is built can be just as interesting as what is built when it is unusual. See also the post recently about the open source contributor working from a prison in Maine - that's interesting for a ton of reasons.

In this case there are two interesting things: that they built a debugger and that they are 17. The latter information might also lead to more interesting helpful comments for the kid versus a "okay, and?" series of responses.

And at the end of the day, every Show HN has a bit of "hey, notice me!" in it - whether or not age or other identifying information is included. I don't think that's bad.

jacknews
14 replies
1d2h

Very well done, and I hope you build this out further, but please leave out the 'as a 17 yo'. I really don't think it's relevant and risks coming across as cloying - your work should (and does) stand on it's own.

raarts
9 replies
1d2h

As a (former) employer I definitely think his age is relevant.

jacknews
7 replies
1d2h

It's maybe relevant on a CV, not so on HN, which is for 'look at this', not 'look at me'.

SushiHippie
4 replies
1d1h

I think it's okay, otherwise this wouldn't have landed on the front page (less likely at least). And it's only on HN and not on the GitHub repo. If it would be stated on GitHub, I'd agree with you.

cinntaile
2 replies
1d1h

Editorialized headlines are against HN guidelines.

SushiHippie
1 replies
15h35m

It's a Show HN

cinntaile
0 replies
10h5m

That doesn't matter. A show HN still doesn't allow you to editorialize headlines, but dang has replied in this thread so I guess the title is fine after all.

ricardobeat
0 replies
1d1h

It could have easily landed on the home page without the age mention. There are 10-20k links on the front page every year.

raarts
0 replies
1d1h

So you think employers don't look on HN?

InCityDreams
0 replies
1d1h

...remembering what i was doing at 17, it's relevant to myself, and i reckon future employers and also education establishments may find it relevant.

flykespice
0 replies
1d

Judging your candidate by age than skill is what perpetuates the gross ageism on the IT sector.

Gladly you got demoted from the position

brynbryn
1 replies
1d1h

I disagree about the age. It provides context, and provides inspiration to others. I think he has done a fantastic thing and we don't need to be negative for the sake of being negative

ricardobeat
0 replies
1d1h

You’re right about the inspirational aspect, but when highlighted by the author themselves it does feel a bit unnecessary, and it detracts from the project. Half of the comments are on the subject of age.

schleck8
0 replies
1d

Please include the 17 yo part, I think it's very interesting.

29athrowaway
0 replies
1d2h

It is an achievement that requires courage, specialization and training... the latter require time and focus.

This guy did it at an early age, showing great promise for the years to come.

bregma
10 replies
23h8m

So, only self-hosted debugging on x86_64 Linux. A good start.

Now make it work for other common CPUs (aarch64, RISC-V).

Make it work for other OSes (FreeBSD has ptrace, for example).

Make sure it handles signal and thread trampolines, calls through the VDSO, and handwritten assembler that does not have function prologues. Handle C++ constructors and destructors of objects in static storage running before/after main().

Have it intercept signals. Have it follow the child or the parent after forking. Have it handle multiple threads.

Make it work with coredumps.

Make it work on core dumps from a foreign CPU architecture (big-endian PowerPC, for example).

Make it work with debug symbols in separate files from the executable.

Make it work with binaries compiled from languages other than C.

You're going to be busy for the next 20 years or so.

D4ckard
7 replies
23h3m

Yeah, I don't think so. It's x86_64 only, and C only too. Some points from your list make sense now, but most of it is simply not part of Spray's scope, and never has been ...

lopkeny12ko
5 replies
22h54m

The point the parent commenter is trying to make is that building a general purpose C debugger is not some kind of trivial exercise that can be shipped in 6 months, and claiming to have done so is disingenuous and pompous.

roadbuster
1 replies
22h38m

The parent commenter doesn't need to piss on a 17 year old for sharing their work and progress. You could also take a moment to step back and reflect on this.

dang
0 replies
22h13m

Please don't respond to a bad comment by breaking the site guidelines yourself. That only makes things worse.

https://news.ycombinator.com/newsguidelines.html

thibaut_barrere
0 replies
22h47m

claiming to have done so is disingenuous and pompous.

I don't read anything that might express that?

Especially with:

> Its feature set is limited at this point, but it's already enough to tackle some basic problems.
owenpalmer
0 replies
22h12m

building a general purpose C debugger is not some kind of trivial exercise

Yes

claiming to have done so is disingenuous and pompous

Nobody has claimed to do so in this situation. You are inventing conflict. Also I don't think bregma intended to be this targeting or accusatory, why are you speaking for them?

dang
0 replies
22h13m

Please don't cross into name-calling and certainly not personal attack.

https://news.ycombinator.com/newsguidelines.html

thibaut_barrere
0 replies
22h57m

Not commenting on the debugger specifically, but: keep being curious & experimenting, it will go a long way :-) (I was in your shoes)

xvilka
0 replies
14h52m

This is precisely what we are trying to do at Rizin[1][2]. Though the primary goal of the tool/framework is static analysis. All that portability across OSes, their versions, platforms and architectures, etc is definitely hard. If anyone is interested in these subjects, all contributions are welcome. For example, check out our "RzDebug" label, marking debugging issues[3].

[1]https://rizin.re

[2]https://github.com/rizinorg/rizin

[3]https://github.com/rizinorg/rizin/labels/RzDebug

brancz
0 replies
23h4m

I just spent ~1.5 years of my life on various aspects of debuginfos and that even just for profiling where I only need line/column information. So I feel this comment through and through.

trmpakufnfee
3 replies
1d1h

Awesome. I wish I had this level of dedication when I was young.

I recommend you to participate in programs like Google Summer of Code, KDE Season of Code, Linux Foundation LFX, and X.org EVoC. There are some very interesting problems to solve. I wish I had known about them when I was student. Now I am working in Full time job, therefore have no time to contribute to open source.

Keep up the good work.

D4ckard
2 replies
1d1h

Thanks for pointing me to those projects! I didn't know about any of them.

xvilka
1 replies
1d

We (Rizin and Cutter) usually participate in GSoC, so if we are accepted next year as an organization, you could apply. See our previous programs[1][2][3].

[1]http://rizin.re/gsoc/2023/

[2]https://rizin.re/posts/gsoc-2023-announcement/

[3]https://rizin.re/posts/gsoc-2023-dwarf/

D4ckard
0 replies
23h59m

Thanks the links : D

smithza
3 replies
1d2h

I want to only comment that your level of knowledge and maturity at the age of 17 is very impressive. The topics being investigated and exploited are expected at an undergraduate level and even then, this project would be in the Graduate level course. My hat is off to you and wish you a successful career.

fuzzfactor
2 replies
1d1h

I'm impressed too, this is an excellent head start.

Years later as a still-young technology enthusiast it would be likely that even more impressive projects will be accomplished. By then it may be largely unknown how advanced this was at this young of an age. Simply because there will be other sharp minds that do impressive stuff but only got started in their 20's, and reaching the same age they would be considered by most observers as peers.

But this head start will be an unfair advantage that can be made to last forever anyway.

Even if it does turn out to be kind of like a "secret weapon" after a number of years or decades.

superduty
1 replies
1d

Why is the advantage of early learning and understanding “unfair”?

thelock85
0 replies
23h55m

I read it in a “first to market” unfair advantage type of way, not ethically unfair. Of course, there are larger societal questions around access to early learning opportunities but I didn’t read into it that way.

lopkeny12ko
3 replies
22h58m

What others need to understand is that, unlike the older generation, kids today have grown up in the era of easily accessible computing. Someone who is 17 today was born in the year the original iPhone was introduced. Computing literacy is not only required, it isexpectedfrom a very young age. What might have been impressive to us 20-30 years ago is not really the same as it is now.

Cool project, but as other commenters have pointed out, the self-promotion of off-putting. Don't hold on to using your age as a qualifier to make you stand out in job applications or otherwise.

marcus0x62
1 replies
22h47m

Did you read the first paragraph after you wrote it? If you did, and then posted it anyway, I don’t really know what to say. But, in any case, “Computing literacy” != “wrote a debugger.”

Your post comes off more delusional (or just ignorant) than the OP ever came off as self-promotional.

dang
0 replies
22h11m

Please don't cross into name-calling or personal attack, regardless of how wrong another comment is or you feel it is.

https://news.ycombinator.com/newsguidelines.html

vimy
0 replies
22h49m

It’s the opposite. Computer literacy has gone down for gen Z, iOS and Android are too simple and locked down.

So this is very impressive at that age.

gumby
3 replies
1d2h

Debuggers are particularly tricky to write so this is quite good!

D4ckard
2 replies
1d2h

Thanks, it's been quite a struggle at times : D

gumby
1 replies
1d2h

Yeah, I started working on a pre-existing debugger around the same age as you (this was the ITS debugger DDT, so 40+ years ago) and boy, it was full of puzzling counterintuitive stuff.

And it was just an assembly debugger so minimal debugging symbols. Merely reading some DWARF data is impressive enough. DWARF makes sense to me but that’s only because I worked with other debugging formats and compiler output of same, before and during the evolution of DWARF. I can imagine it’s hard to understand when you start cold with DWARF 5.

D4ckard
0 replies
1d2h

DWARF 5 is truly ... special. My mind was blown when I understood that half of its data is encoded as instructions for full-blown stack-based VM.

cyberpunk
3 replies
19h58m

Why do you put spaces between your function names and their arguments?

I find it quite jarring, as someone who's spent a good 18 years reading C code :}

    return lookup_breakpoint (dbg->breakpoints, get_pc (dbg->pid)); 

vs

    return lookup_breakpoint(dbg->breakpoints, get_pc(dbg->pid));

Edit: I tend to lean towards the 'bsd' style, if you have an open or freebsd system, try 'man style' and try their rules on for size.

valleyer
2 replies
19h51m
darkwater
0 replies
19h39m

Off-topic but I can not avoid a tear of joy reading this:

In the Unix world, “portability” refers to porting to different Unix versions. For a GNU program, this kind of portability is desirable, but not paramount.

The primary purpose of GNU software is to run on top of the GNU kernel, compiled with the GNU C compiler, on various types of CPU. So the kinds of portability that are absolutely necessary are quite limited. But it is important to support Linux-based GNU systems, since they are the form of GNU that is popular.

cyberpunk
0 replies
19h49m

Damn, I really have been in my cave for too long! Forgot all about their weird if {}.

Thanks!

pjmlp
2 replies
1d1h

Congratulations, good luck with your projects.

Compilers was one of the first rabbit holes that drove my interest into computing.

One of the books that I endless read multiple times, is nowadays available for free, and eventually interesting for your reading collection, even though it is about the compiler part not debugging.

"Compiler Design in C"

https://holub.com/compiler/

It is a bit oldie, but maybe interesting.

D4ckard
1 replies
1d

Thank you for the link. I'm always looking for books on compilers, but they can be hard to find. Many of them are everyfrom the ivory tower-like unfortunately.

junior44660
0 replies
1d

Try "crafting interpreters", it's very practical book.

koolba
2 replies
1d1h

First glance through the project and it seem well organized. Kudos!

How long have you been programming and what languages did you start off with? I know quite a few developers decades older than you that still don't know how to write a Makefile [1].

What's the deal with the inline emojis in the source? Is that what all the cool kids are doing these days or does it just force you to be mindful of non-ASCII input?

[1]:And even more that cannot write or understand dynamically generated targets...

D4ckard
1 replies
1d

I started off learning Python and C++. At some point I got fed up with C++ and switched to C.

Haha, the emoji thing was something I was doing for about a week or so. You see emojis used a lot more around Rust I guess. I never bothered to remove them. I think the bugs around the PID are fun. The ones in the comments might go at some point, though I didn't experience any problems with editors (Helix, Emacs, and VSCode all work) so far.

Should I maybe disabled printing emojis to standard output in the REPL if terminal colors are disabled as well?

koolba
0 replies
1d

I started off learning Python and C++. At some point I got fed up with C++ and switched to C.

How many years and hours per day?

Should I maybe disabled printing emojis to standard output in the REPL if terminal colors are disabled as well?

I generally avoid anything that's not ASCII if it's possible. Tying it to terminal colors or terminal output (e.g. "if [ -t 1 ] ...") is common too. Though I'm not a big fan of things changing based on the runtime environment as it makes debugging annoying.

SillyUsername
2 replies
18h46m

Well done.

Achieving this at 17 is a rare feat even most supposed senior developers don't achieve and it ranks up there with writing an emulator.

It was only in my late 20s I understood low level architecture enough to be able to do similar work, like you through passion, which I never had in my teens (I did start programming Pong like games at 8 years old and Tetris clones around 12/13 but that's hardly the same ;) ).

Keep up the great work, it restores my faith that their are less code monkeys out their like me!

silentsea90
1 replies
18h26m

I feel like a code sloth/donkey if you with your achievements are a code monkey. I think we need a hierarchy of animals here. I'll fit right at the bottom thank you.

SillyUsername
0 replies
8h45m

No big deal TBH.

It was Pong in BASIC on a ZX Spectrum after understanding some simple max min bounds and then negating direction of a ball.

For Tetris it was again BASIC, now on a graphical calculator, but while I was learning basic matrix operations such as rotate in school.

I didn't learn better languages until I was 18 (Java and C).

I'm no autistic savant, I just have cool sound bites lol.

w4yai
1 replies
13h57m

This is a very nice job. Please don't mind the jealous commenters telling you condescendingly that it's barely "good enough", if you wouldn't told them your age they wouldn't have told you that.

It's actually an impressive piece of software and you can be proud about it. I love your coding style and I wish everybody could code with the same amount of dedication than you do, I can see your efforts through each line of your source code.

If you like low level stuff, I encourage you to follow the path I did at your age, that is learning computer security. Specially reverse engineering. There are computer security challenges called "CTF" or "hacking skills challenges" [1].

If you weren't aware about them, they're filled with brilliant and very curious young people as you are. You could meet some and start wonderful projects you'd be proud of all your life. Generally speaking, I'd encourage you to find peers and start doing bigger things together, even though that being said, this is only an advice from a 32 years old dude that recognize himself through you, and what is the most important thing is to do what you prefer the most. Trust yourself you'll go far !

PS : if that is relevant, don't be worried about school. Focus on yourself and learn about your mental health. Many people developing an uncommon skill at young age may feel isolated, misunderstood, secluded, etc. Please make sure to be conscious about it and if that is relevant to you and if you need it, please seek help from a therapist, there's no shame about it at all. I'm purely speaking from experience without knowing anything about you, I'm just telling you what I wish someone could told me earlier.

[1]https://www.root-me.org/?lang=de

D4ckard
0 replies
3h25m

Thanks for your kind words, and also thanks for the link : D

spiralx
1 replies
1d

Nice one, I remember writing a 2D graphics library in Turbo Pascal using embedded hand-optimised assembly for the actual drawing code when I was your age, but that was back before I discovered the internet so it ended up being something I'd enjoyed writing but never did anything with, so well done on taking the next step turning it from a personal project to one that other people can see and maybe use themselves - it all looks very tidy, well-commented and the README is clear.

Putting things out there for the world to see can be a scary thing, but remember that what people say is often as much about them than it is about your work, especially so when what they say is about you.

PS I'm actually more interested in Motes than this myself, going to experiment with it now :)

D4ckard
0 replies
1d

Oh, I just noticed some bugs in the code while using Motes the other day. Expect some weirdness with the Emacs plugin. The scripts have been working flawlessly for me the past few weeks though. I hope you like them :D

forgotpwd16
1 replies
20h49m

Cool job. Grats!

Parts of the Spray frontend are written in Scheme

Why you decided it do it that way rather fully in C or fully in Scheme?

D4ckard
0 replies
3h32m

Scheme doesn't work well for very low-level code, and C doesn't handle processing source code very well. For that I'd rather use a functional language. Also, I like using different programming languages (though not necessarily in the same project).

IamDaedalus
1 replies
1d2h

GGs dude I'm cloning the code and looking through tonight We share similar interests and I will try to make contributions to your project

D4ckard
0 replies
1d

Wow, this sounds great. Please hit me up at any time if you have questions about the code. I left behind comments most places, but I don't know if all of them are helpful.

zerr
0 replies
22h44m

Awesome! It might be boring for you, but accompanying that project with a "Let's write a debugger" tutorial would be very useful.

white_beach
0 replies
1d2h

at least it is open source unlike some lame debuggers like remedybg

sneed_chucker
0 replies
1d1h

Impressive work.

Be careful about leaning on your age/precociousness to get approval. It's not a long term solution.

gdcbe
0 replies
22h4m

Seems 17 year old kids do still know what cd’s are. The floppy disk save icon might not be deprecated after all :P

eliben
0 replies
19h16m

Really nice work!

I'm happy you found my articles useful :)

demyinn
0 replies
16h20m

Super awesome project!

WalterBright
0 replies
12h55m

I stared to work on Spray because I was curious about how debuggers work.

Awesome. That's the way it's done!

HybridCurve
0 replies
15h0m

I like reading young programmers' code: It's interesting to see how they design everything with a decently high level of knowledge, but not the years of experience. The author seems to be a fast learner, and this is a great result for 6 months of work.