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

Pascal's bad rap was entirely justified. You could not write a useful program in Wirth's Pascal - a lot of language extensions were required, and of course every Pascal vendor implemented their own such extensions.

Ada suffered for years for being an unimplementable language. It was a long time before compiler technology caught up with it, but Ada found it hard to shake that stigma.

C came along at the right time, did not have those problems, and so took off. On the PC, for example, in the early days C was the only possibility other than assembler.



> Ada suffered for years for being an unimplementable language. It was a long time before compiler technology caught up with it

Could you explain what features of the language made it that hard to implement?

I would really like to see your general opinion on Ada from a language designer standpoint. Considering you're the main mind behind D - did you draw any inspiration from Ada while fleshing out the language?


I first got and read the spec for Ada in 1982, intending to write a compiler for it. I found it to be overwhelmingly complicated, but I had little experience with compilers at the time. I haven't paid much attention to it since. Many other early compiler devs shared my opinion of it, and indeed it was many years before it was successfully implemented.

I don't recall just what it was that made it hard, other than being so complicated. I doubt I'd feel the same way looking at it now, as I have a lot of practice implementing complex features from writing a C++ compiler :-)

What I find attractive about Ada is the emphasis on writing programs that are checkably correct. I believe that, with the ever increasing complexity of software, better and much more mechanically checkable encapsulation, etc., is the way of the future, as opposed to what I call "faith based programming" where you overly rely on the programmer not making mistakes.

A large focus of D has been and continues to be on being able to write mechanically checkable code.




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

Search: