277 karma · joined September 26, 2010
This is a large problem space that you can glean over by using C as a layer of interaction between your language and the underlying machine, but it makes your language a: not truly a "system language" and b: it also ties you to C philosophy, API/ABI, calling conventions and so on.
I believe Rust is also implemented in Rust and Go, after a few years of being implemented in C has now a compiler written in Go.
That's the quote of the article for me. I think there is way too much emphasis on Liszt the performer and his earlier symphonic music than on his later work. At the latest stage of his life, he developed an almost post-modern attitude towards the piano, as a percussion instrument rather than a melodic one, and also began experimenting with atonal music. These are two of the most dominant aspects of early modern (i.e. 20th century) music, seen in Lizst work as early as 1885.
The first problem is that every tool has demands, especially the limited ones, and you end up writing your application around those limits and demands, using platform-specific code that will have to be discarded and re-written come the migration.
The second problem is that these tools dictate design, and once you try migrating, you still have an application designed around the prototype tools, which make a lot of concessions and have design flaws because of that.
Finally, I've never understood the need for learning a specific tool, platform or language for "rapid prototyping". Use the tools you will use eventually, it's not that building something in, say, Java from scratch will take an order of magnitude more time and effort than building it on Node.js, despite all the hype, especially if you're a Java shop.
But, the idea is to try and understand why was the code written like that, what is the model the original programmer had in mind, and whether there could be more of the same errors in other places. It's the way you can see a db table and immediately know where will there be issues in the db design.
That's a load of crap. If anything, 'this business' showed us what you need to do is grow to a level where you can throw not 10, but 100 rocks against the wall, and once one of them hits, get another 4 dozens and hurl them at the same spot immediately.
It's like they are ashamed of the language they created and would rather hide it than display it.
As such, I've been a proponent of reading code like text, instead of the usual maintenance method of locating the line with the bug, making the most minimal change and leaving everything else as-is. I believe the more I read the actual program, the better I can understand why was there a bug, get some insight into the original programmer's thinking, and maybe get some more idea on how to better fix the problem.
If you create something that is only working on Chrome, at least put "Google Chrome only" in the title, otherwise this is a broken application that you've just posted for the world to see.