Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is, to me, an odd way to approach parsing. I get the impression the author is relatively inexperienced with Rust and the PL ideas it builds on.

A few notes:

* The AST would, I believe, be much simpler defined as an algebraic data types. It's not like the sqlite grammar is going to randomly grow new nodes that requires the extensibility their convoluted encoding requires. The encoding they uses looks like what someone familiar with OO, but not algebraic data types, would come up with.

* "Macros work different in most languages. However they are used for mostly the same reasons: code deduplication and less repetition." That could be said for any abstraction mechanism. E.g. functions. The defining features of macros is they run at compile-time.

* The work on parser combinators would be a good place to start to see how to structure parsing in a clean way.



> I get the impression the author is relatively inexperienced

The author never claimed to be an experienced programmer. The title of the blog is "Why I love ...". Your notes look fair to me, but calling out inexperience is unnecessary IMO. I love it if someone loves programming. I think that's great. Experience will come.


If someone didn't study the state of the art of tokenising and parsing and still wants to write about it, it's absolutely ok to call it out as being written by someone who has only a vague idea of what they're talking about.


>> I get the impression the author is relatively inexperienced

> calling out inexperience is unnecessary IMO. I love it if someone loves programming. I think that's great.

I'll observe that the commenter did not make the value judgement about inexperience that you appear to think they did.


> calling out inexperience is unnecessary IMO

I don't know the author, so it's useful for me to see in the comments that some people think they are not so experienced.

Doesn't mean I won't respect the author at all, it's great that they write about what they do!


Posts on here sometimes come from the world expert, and sometimes from enthusiastic amateurs.

I wrote a compiler in school many years ago, but besides thinking "this project is only one a world class expert or an enthusiastic amateur would attempt", I wasn't immediately sure which I was dealing with.


"calling out" is too fuzzy a term to be useful. It covers "mentioning" and "accusing". I wouldn't use it, for that reason.

"unnecessary" is the same. Who defines what's necessary? Is Hacker News necessary?


It's definitely necessary: it provides an answer for those who do have knowledge about parsing, read this and wonder why didn't the author do this other often used practice instead.


Strongly disagree. There should be a higher standard of articles. This amateur "look what I can do" is just noise. Here's an idea, don't tell the world about what you've done unless it is something new. We don't care and it wastes our time and fills the internet with shit. Not everyone deserves a medal for pooping.


I can see how my comment could be read in this way. It wasn't my intention; I was just a quick note I dashed off before starting work. Apologies to anyone who thought I was making a value judgement on experience here. I think everyone should be encouraged to share their experiences.


> * "Macros work different in most languages. However they are used for mostly the same reasons: code deduplication and less repetition." That could be said for any abstraction mechanism. E.g. functions. The defining features of macros is they run at compile-time.

In the context of the blog post, he wants to generate structure definitions. This is not possible with functions.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: