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

Except in web design you rarely create a design that is literally, provably impossible to make


Can you be more specific about what is impossible to make?


Any decent language designer should know the Halting Problem and how that translates to static analysis (Rice's Theorem). But more than that, it's quite easy to design typechecking algorithms that exhibit combinatorial explosion. A naive language designer could promise fast compilation speeds and robust typechecking with inference, assuming that typechecking could be sped up with caches and a fast implementation language. However if the typechecking algorithm is O(n^3), no matter what, compilation speed will be slow.


I lived through the early 90s, when Borland's Turbo Pascal and later Delphi, compiled programs in a fraction of a second.

It proved empirically, that compilation does not need to be slow, if the language is simple and carefully designed. Go is also a good example.

Computers are now several orders of magnitude more powerful.

We do NOT have to wait for compilation of simple programs in 2020. In my opinion, waiting is more of a symptom of the current obsession with optimization, and disregard for ergonomics, than a fundamental CS result that is set in stone. Compare for example compiling a program with gcc and tcc (without optimizations, so that they are on equal grounds, because tcc does not strive to do optimizations, but strives to be fast and tiny) .

tcc is usually 4-5 times faster.




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

Search: