3 ms·
Building your own computer or your own operating system very rarely help, in my opinion, because the real systems you work on are so much more complex than the
by Locke1689 15y ago
Building your own computer or your own operating system very rarely help, in my opinion, because the real systems you work on are so much more complex than the pretend stuff you build that you miss massive layers of complexity. It's far better to have a good knowledge of how modern systems work than waste years attempting to build such a system.
Similarly, I have no idea why you would build your own programming language. You're very rarely likely to run into a problem with closure conversion in a programming language you wrote, but you might run into a problem with peephole optimization that you would never get to implementing unless you have a PhD in PL.
- spacemanaki 15y ago> Similarly, I have no idea why you would build your own programming language. So, I might be biased because I'm a wannabe languages geek, but I think studying PL really does give you a lot of insight. I think if more people tried to write their own language, there would be far fewer flame wars about inane things like syntax, and far fewer poorly argued debates about types. Plus, learning about parsing is definitely practical and useful.
- Locke1689 15y agoI'm doing research in PL, but as much as I like it I just don't think that designing your own PL is much of a benefit. I think if more people tried to write their own language, there would be far fewer flame wars about inane things like syntax, and far fewer poorly argued debates about types. I'd much rather people just leaf through some the PL research that already exists rather than try and invent their own. Most people don't even know what HM is. Plus, learning about parsing is definitely practical and useful. I completely disagree. Writing a parser is a character-building exercise. It ultimately wastes more time than its worth and you're better off using someone else's parsing system anyway.
- spacemanaki 15y agoActually I think we basically agree, it's just a matter of degree. When I read "write your own language" I'm mostly thinking of the kinds of work you might do in an undergrad PL class, which I think works well as a kind of antidote to the Java monoculture. I agree that inventing and designing a custom language with no reference, in a vacuum, would probably not be helpful. As for parsing, that was almost exactly my point, learning about parsing, and realizing what kind of work is involved, is just the experience you need to reject being assigned the writing of a custom XML parser by a clueless manager (true story).
- Apocryphon 15y agoBut wasn't that how Linux came to be?
- Locke1689 15y agoI'm not sure what you're saying, but regardless it's not useful to attempt to create another open source OS from scratch. Unless you're an expert you're probably not going to do a very good job anyway.
- bricestacey 15y agoCan't you can write your own programming language and use someone else's parser? When we implemented our own subset of java, we hand wrote our own parser to see how to do it, but then the professor introduced us to JavaCC.
- JeanPierre 15y ago(It seems like all the points in my list have been interpreted in many different ways here, so I apologize beforehand if any of you misinterpreted my list.) I'm not talking about wasting years here, I'm talking about something that is possible to learn in a single course. [1] Also, I'm not talking about making a computer from scratch by building your own circuit board and make your completely own compiler to your newly designed programming language for your home made OS without any proper design. I meant simple stuff - simple compilers[2] and operative systems, because it may actually come back and help you someday - even if you're not going to make a programming language[3] or an operating system. [1] http://video.google.com/videoplay?docid=7654043762021156507# http://video.google.com/videoplay?docid=7654043762021156507# [2] http://norvig.com/lispy.html http://norvig.com/lispy.html (maybe not THAT simple, but the idea is that doesn't have to take that long or be that hard.) [3] http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html http://steve-yegge.blogspot.com/2007/06/rich-programmer-food...