Dmitry Soshnikov

dmitrysoshnikov.com · Personal blog · on HN since 2011

Dmitry Soshnikov writes about JavaScript internals, parsing, garbage collection and memory allocators, and sells courses on compilers topics.

What HN saysCommenters recommend his JavaScript. The Core articles for understanding closures, prototypes and scope chains, and praise his parsing and garbage collection courses.
32HN people shared it
18linked it in comments
25stories submitted
1.3Kstory points
10 months agolast shared
2011people per year2026

Most-shared posts

  1. 1
    JavaScript. The Core: 2nd Edition
    7 people · 420 points · first shared 2017 · 91 comments on HN
  2. 2
    Javascript. The core.
    6 people · 9 points · first shared 2011 · discussion on HN
  3. 3
    Writing a Memory Allocator (2019)
    5 people · 175 points · first shared 2019 · 40 comments on HN
  4. 4
  5. 5
    ECMAScript OOP implementation
    2 people · 1 points · first shared 2011 · discussion on HN
  6. 6
    Homepage
    2 people · first shared 2012
  7. 7
    Writing a pool allocator
    2 people · first shared 2025
  8. 8
    Parsing Algorithms
    1 people · 407 points · first shared 2020 · 86 comments on HN
  9. 9
    Essentials of Interpretation
    1 people · 57 points · first shared 2020 · 21 comments on HN
  10. 10
    Scheme on CoffeeScript
    1 people · 41 points · first shared 2011 · 5 comments on HN
  11. 11
    Scheme's Metacircular Evaluator ported to CoffeeScript
    1 people · 4 points · first shared 2011 · 1 comments on HN
  12. 12
  13. 13
    Writing Mark-Sweep Garbage Collector in C++
    1 people · 3 points · first shared 2020 · discussion on HN
  14. 14
    Essentials of interpretation
    1 people · 3 points · first shared 2011 · discussion on HN
  15. 15

What HN people wrote when they linked it

avinassh · 2020-11-30
I like the courses offered by Dmitry Soshnikov [0][1]. I have gone through Parsing algorithms and Garbage Collection algorithms courses, they were really fun. I messaged him on twitter recently and he was kind enough to offer nice discount for Cyber Monday [2] [0] - https://news.ycombinator.com/user?id=DmitrySoshnikov [1] - https://www.udemy.com/user/dmitry-soshnikov/ [2] - http://dmitrysoshnikov.com/
zappo2938 · 2016-12-11
When I started out, this and "Secrets of the JavaScript Ninja" didn't help me understand. For me, after months of trying to understand JavaScript, Dmitry Soshnikov's post, JavaScript. The Core, made understanding closure, prototype, and scope chain crystal clear in about 30 minutes. [0] Also, every time someone shares a basics on JavaScript link on Hacker News I also share my interview guide which despite its popularity has yet to land me a job writing JavaScript. Nonetheless, I love writing JavaScript and understanding it and some of the APIs like Angular, Lodash, Nightmare, and async makes me feel empowered. It doesn't cover any topics in ES6 yet.[1] [0] http://dmitrysoshnikov.com/ecmascript/javascript-the-core/ [1] https://github.com/adam-s/js-interview-review
chrishenn · 2013-04-22
When I was learning more about this, I found this[1] article to be of great help. I think the key idea is that JS is a prototype-based OO model. It's easy to forget because there are so many abstractions[2] that act like a JS is a static class based OO language. [1] http://dmitrysoshnikov.com/ecmascript/chapter-7-1-oop-general-theory/ [2] http://coffeescript.org/#classes
bonsai · 2012-07-03
I would suggest you to read Dmitry Soshnikov blog, it has great level of details http://dmitrysoshnikov.com/tag/ecma-262-3/. This 3 books are great reading material: 1) JavaScript: The Good Parts - Douglas Crockford, 2) High Performance JavaScript - Nicholas C. Zakas, 3) JavaScript Patterns - Stoyan Stefanov
v413 · 2011-01-29
For highly technical analysis of the ECMA Script (JavaScript) language I highly recommend the series of articles of Dimitry Soshnikov. http://dmitrysoshnikov.com/ecmascript/javascript-the-core/ These series of articles are probably the deepest series into the language on the Internet (surpassing even Crocford's articles as far as depth goes).
clyfe · 2012-10-20
http://dmitrysoshnikov.com/ top right hoover over "Menu"
masklinn · 2011-05-28
The note should be much bigger. And __proto__ really isn't "supported" anywhere: it's an implementation detail. It's been deprecated in Mozilla, and Opera used not to have it (as recently as 2009, though there is now an __proto__ property on all objects). I would recommend a note similar to Dmitry Soshnikov's in his Javascript: The Core: http://dmitrysoshnikov.com/ecmascript/javascript-the-core/#an-object > Let’s take a basic figure of an object with which we will operate in the following descriptions. A prototype of an object is referenced by the internal [[Prototype]] property. However, in figures we will use __<internal-property>__ notation, and in particular for the prototype object: __proto__ (that’s moreover, is a real, but non-standard, implementation in some engines, e.g. SpiderMonkey). It uses __proto__ but makes quite clear that the property is just an implementation detail of the graphs.
rubymamis · 2026-01-19
I'm interested in the same! There are plenty of resources for C[1][2]. I just looked into my old notes and found a post for C++[3]. [1] https://btmc.substack.com/p/memory-unsafety-is-an-attitude-problem [2] https://www.gingerbill.org/series/memory-allocation-strategies/ [3] https://dmitrysoshnikov.com/compilers/writing-a-pool-allocator/
keyle · 2025-01-09
The parent article is quite interesting and slightly different being cpp [1]. There is also a post about writing a memory allocator [2]. [1]: http://dmitrysoshnikov.com/compilers/writing-a-pool-allocator/ [2]: http://dmitrysoshnikov.com/compilers/writing-a-memory-allocator/
langitbiru · 2020-05-15
Here is the garbage collector course from the FB engineer. http://dmitrysoshnikov.com/courses/essentials-of-garbage-collectors/ Garbage collector is a part of compiler technology.
DmitrySoshnikov · 2019-07-07
@ameyv, thanks for the feedback! Yes, there will be more courses related to implementation of programming languages: Automata Theory, Theory of Parsing, Essentials of Interpretation, and others. There are some lab sessions for the Garbage Collectors class, e.g. Writing a Memory Allocator from Lecture 6, where we implement an allocator similar to `malloc` function: http://dmitrysoshnikov.com/compilers/writing-a-memory-allocator/ As to materials, yes, there will be an accompanying book for this course.
waveforms · 2018-10-16
I have to mention Dmitry Soshnikov's "JavaScript. The Core" webpage. The concepts explained in version one published in 2010 helped me land several contracts. Now I see he has "JavaScript. The Core: 2nd Edition". Thank you Dmitry! http://dmitrysoshnikov.com/ecmascript/javascript-the-core-2nd-edition/
strager · 2013-01-19
[SPOILERS] I got tripped up by question #5 of one of the expert quizzes [1] due to a difference between ActionScript 3 and JavaScript [2]. In AS3, `(a).b` is equivalent to JS's `(null, a).b`. That is, the `this` binding is lost in AS3 (but not JS). I thus thought the anser was "20, 10, 10, 10", and not "20, 20, 10, 10". AS3 is not a superset of ES3 as most people believe. [1] http://dmitrysoshnikov.com/ecmascript/the-quiz/ [2] I have been working on an AS3 compiler lately, which is why I mixed JS and AS3.
jashkenas · 2011-01-29
Direct link to the source (which is nicely commented): http://dmitrysoshnikov.com/coffee-lisp-eval/eval.coffee
rwaldron · 2011-01-14
"W3schools obviously fills a niche that the W3C isn't filling" This alone is the biggest problem - that you think they are somehow related. They are not. "W3Schools has gone through the work of reading the spec and turning it into a good reference" No. You're wrong. THIS: http://dmitrysoshnikov.com/ecmascript/ ...is a good reference based on a spec.
aastronaut · 2020-04-27
I think the sentiment of "you dont know what you dont know" is especially cumbersome with JS, since its usability is so much defined by its extensions (WebAPIs, runtimes etc.) Reading into specs (ECMAScript[0], W3C[1]), some more approachable explanations[2] of them and some implementations[3, 4] of embedded engines seem to be my approach. [0]: https://tc39.es/ecma262/2020/ [1]: https://github.com/w3c [2]: http://dmitrysoshnikov.com/ecmascript/javascript-the-core-2nd-edition/ [3]: https://bellard.org/quickjs/ [4]: https://v8.dev/docs/embed

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close