| In 1987 I went from a company where most work was done in C (and assembly) to Apple, which was a Pascal shop. The thing is, the version of Pascal used at Apple had been extended to the point where there were really few differences between the two languages. - C used curly braces, Pascal used BEGIN/END. Whatever. - C didn't have strings, really; they were broken. Pascal had strings, but of limited length (e.g., Str255), and thus they were pretty broken. Different pain points, but string handling in either language was not much fun. - C had short circuit operators; Pascal didn't. This was the most painful thing to deal with. - C had pointer arithmetic. Pascal had been extended to provide it, too (but didn't do type scaling, so you had to do this manually). - C didn't have nested procedures. Pascal did, but people mostly used them for hiding (the equivalent of 'static' scope function in C). After a couple of months it no longer mattered what I was writing code in. Apple's Pascal had been extended to be semantically so close to C that I barely noticed. A couple years later Apple more or less stopped writing new code in Pascal (everything was in C++, or at least C) and by the early 90s Pascal was all but gone, except for a few holdouts such as the AppleScript group. I don't have fond memories of the unextended Pascal compilers I had to use in college. To put it mildly. |