# Examining an older and simpler version of Julia

**URL:** <https://discourse.julialang.org/t/examining-an-older-and-simpler-version-of-julia/1142>\
**Category:** General Usage\
**Tags:** question, history\
**Created:** [December 24, 2016, 10:09pm UTC](https://discourse.julialang.org/t/examining-an-older-and-simpler-version-of-julia/1142 "2016-12-24T22:09:50Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![ihnorton](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ihnorton/32/26_2.png) [@ihnorton](https://discourse.julialang.org/u/ihnorton)\
**Post date:** [December 25, 2016, 5:12am UTC](https://discourse.julialang.org/t/examining-an-older-and-simpler-version-of-julia/1142/2 "2016-12-25T05:12:58Z")

</div>

I haven’t been around quite that long, but here are a few interesting points to look at:

- the first 10-20 commits: basic parser
- beginning of codegen: [https://github.com/JuliaLang/julia/commit/17f383fec059f](https://github.com/JuliaLang/julia/commit/17f383fec059f)
- beginning of dlopen / ccall support: [https://github.com/JuliaLang/julia/commit/18f456233b280f](https://github.com/JuliaLang/julia/commit/18f456233b280f)
- beginning of ast translation to C: [https://github.com/JuliaLang/julia/commit/89247a6bf2eeb](https://github.com/JuliaLang/julia/commit/89247a6bf2eeb)
- beginning of interpreter: [https://github.com/JuliaLang/julia/commit/6c2b43c2b3e2986b](https://github.com/JuliaLang/julia/commit/6c2b43c2b3e2986b)

You can get a nice view of the earliest history by running `git log --follow FILE` (and then shift-G to go to the end).

That said, don’t spend too much time looking at the history. It is an interesting idea as a way to get a handle on small pieces, but much of the code [has changed](https://discourse.julialang.org/t/run-the-half-life-of-code-analysis-on-julia/763).

A few other comments:

- read the [dev docs](http://docs.julialang.org/en/stable/#developer-documentation)!
- watch [Jeff’s internals talk from 2014](https://www.youtube.com/watch?v=osdeT-tWjzk). There have been other related talks at JuliaCon since then.
- if you don’t have any compiler background, from personal experience I can recommend _not_ trying to learn compiler theory by osmosis. I wish I had read [Appel](https://www.cs.princeton.edu/~appel/modern/ml/) much sooner than I did. There are many interesting compilations of free resources you will come across on stackexchange/hacker news/etc., and I had read some of those – but frankly there is no substitute for a good book.
- don’t try to learn Lisp/Scheme using flisp. [Racket](https://racket-lang.org/) is close enough to be transferrable, but has a more user-friendly environment and many more resources.

(FYI: in the future, please don’t `@`-blast people with general questions. It’s kind of bad form)

---

_[View the full topic](https://discourse.julialang.org/t/examining-an-older-and-simpler-version-of-julia/1142)._
