http://blog.fogus.me/2017/07/20/pascal-at-apple/#comment-808...
Pascal at Apple
141–145 of 145 posts
Re: Pascal at Apple
#142I'm reminded of a really great interview with Bill Atkinson where he describes (among many other things) how he initially brought Pascal to Apple and the Apple II. https://youtu.be/6tUWoy1tJkE?t=45m The Pascal bits are from 45:00 to about 50:00. ... My manager at the time said, no, we don't want to do this [Pascal], people are happy with what they got. I overrode him and went to Jobs, and Jobs said "Well, I'm not con…
Interesting at my first job I did a little bit on USCD Pascal on apple.
Re: Pascal at Apple
#143Earlier quoted context omitted.
A major issue was that C compilers were actually fairly ill-suited for 8-bit processors with limited memory, limited processing power, and at most a floppy disk (if that) for external storage. Pascal was designed to allow single pass compilation of programs, while the C preprocessor alone was a source of what was immense overhead at that time. On CP/M, Turbo Pascal blew all C compilers out of the water in terms of co…
C was also designed to compile in one pass, hence the need for forward references. The preprocessor was extra overhead, though. Also, from my recollection, Turbo Pascal was not just faster than C compilers. It was also faster than other Pascal compilers. And pretty much any other computer regardless of language. That was part of its appeal.
Re: Pascal at Apple
#144Earlier quoted context omitted.
In the past I've sometimes used standard C++ local structs to nest functions. E.g.: int f() { struct local { static int nested_func() { return 123; } }; return local::nested_func(); }
I've done that, too. It's clumsy and only does half the job (doesn't provide access to locals). At some point one just gets tired of the workarounds :-)
int g()
{
int x, y;
struct local {
int & a_;
int & b_;
local(int & a, int & b) : a_(a), b_(b) {}
int operator()()
{
return a_ + b_;
}
} nested(x, y);
x = 99; y = 1;
return nested();
}
assert(g() == 100);Re: Pascal at Apple
#145Earlier quoted context omitted.
The language has evolved, but it still falls squarely in the imperative, OO camp. And besides, you mentioned than you'd prefer to stick with more functional languages. It's hard to prove someone's preference wrong. :) I mostly share your preference, but I make an exception for Pascal. There's just something about it that draws me in, even though I've only used it for fun, and not professionally.
Just curious: do you use an IDE, and if so, which one ? The thing that drew me in to Object Pascal was getting Delphi back in 1996 (I think it cost $200), and being just amazed at how much I could do out-of-the-box without knowing a thing about Object Pascal. The productivity with IDEs like Delphi/Lazarus is just astounding. I look at setup instructions for many languages today and just cannot believe what I'm readin…
I've used Lazarus when I've had small GUI apps I wanted to make. Other times, I'll just use Turbo Pascal in DOSBox when I'm just trying to have some fun and make simple little games.