Build Impossible Programs

Cmerlyn | 652 points

I just wanted to share that everything jvns is saying here is true.

In 2014, for the Google Summer of Code program, I applied to build a JIT compiler for the MoarVM virtual machine. (It is actually more correct to speak of my work as a JIT backend than a full-fledged compiler - the 'frontend' of the compiler was already under development when I started). At the time, I knew just short of nothing about compilers, let alone JIT compilation. So what I did instead was learn, and make lots and lots of mistakes.

And it worked. The JIT backend I created has been in production since 2014, with a new backend since 2017, and a small (but thriving) community of contributors. It is far from the worlds most advanced JIT compiler, but it does provide a nice speedup on real-world perl 6 programs. All the while I've continued learning.

So... definitely try ambitious things :-)

brrt | 6 years ago

Some of the best experiences I've had programming is when I thought of something I'd like to make, but it seemed impossible. Then I went and made it.

You do that enough times and coding becomes like real-world magic. You know you can do it, you don't know how yet.

Yes, there are places you can get stuck. Rules-processing, unstructured data, Markov Chains, ML, and so forth. But even that's a win. You start understanding the various classes of problems to be solved and how best to approach each one of them. That kind of meta-knowledge is really difficult to get without wading into things.

At the end of the day, you realize that there's no such thing as impossible problems in coding. There's just problems that people can't figure out how to produce optimum results. A lot of the ML stuff we're seeing now is more like "make the best of things" and less like math.

Programming is a hoot.

DanielBMarkham | 6 years ago

If I'm reading that correctly, Segment was (is?) providing some people $8K per month for 3 months to work on open source projects. That's amazing! Here's a link to their 2017 application page: https://open.segment.com/fellowship

mikekchar | 6 years ago

One thing that caught my attention is Julia’s value of work / life balance and the humanization (if that’s the right word) of programming. She very deliberately didn’t work on this in her spare time (underlining that coding isn’t the only important thing in her life) and when she did build the prototype she explicitly wanted to do it at a weekend coders retreat with other “wonderful” people around (as opposed to secluding oneself in a room and coming out of it with a solution).

georgecalm | 6 years ago

This is so inspiring, thanks a lot. It's great to see that there are now resources going into supporting OSS developers that require only an idea and pedigree, and not a finished product and a business plan.

afroisalreadyin | 6 years ago

I do love it when people post their slides for presentations, because this means I can usually get the gist of it without watching the video. Thanks, Julia! Though one quick comment: you're drawing your slides by hand, which unfortunately makes it a bit annoying for other people to consume–copy/paste doesn't work, and I'd assume people with limited vision might even be completely out of luck. So a transcript would be really nice.

saagarjha | 6 years ago

Does someone have a direct link to the video? The iframe Vimeo player doesn't work and I can't seem to be able to find the original video on there.

EDIT: M3U8 link: https://skyfire.vimeocdn.com/1537357126-0x19388e9cb2a5d6095b...

speps | 6 years ago

This is really cool inspiring work. Julia Evans makes the world a better place.

gorpomon | 6 years ago

I'm really enjoying the content that Julia Evans is releasing these days!

lprd | 6 years ago

I can't tell if she's nervous or awkward or excited but it reminds me of myself when giving talks, even to small groups. I get so flustered that my mind races and then the rest of my body tries to catch up so I'm now talking really fast and moving and jumping all over and being very fidgety with things. Anyway the difference is that she managed to get her points through while mine often gets lost.

I still don't know how to fix that except to practise and memorise what I'm going to say, and then just read it. But then it just becomes very monotone-y.

cattlefarmer | 6 years ago

What about thinking impossible thoughts?

https://gist.github.com/AndreasS2501/2dc6c5813f5fd8abc79aad4...

Philosophy is pretty cool?

NotUsingLinux | 6 years ago

there is nothing like jvns I wish I had more spare time to read her content. :/

tomerbd | 6 years ago

Anyone know what Julia is using for those handwritten slides?

I absolutely love everything Julia writes. She writes in a way that makes absolutely zero assumptions about your level of technical competence. You could be a junior, mid, senior and still get something from most of her articles.

Anecdotally; Almost every female engineer I work with writes and communicates in this fashion and I really bloody wish more of my male counterparts would speak with less jargon/acronyms for the sake of new starts/non-engineers.

AJRF | 6 years ago

How do you make those lovely slides?

yuanotes | 6 years ago

But if it can be built.. then it's not impossible.

Hence the topic should be "Build possible programs".

ensiferum | 6 years ago