3 ms·
When I joined Apple in 1987 it was a Pascal shop that had just started moving to C. The Pascal they were using had been developed and was maintained in-house an
by kabdib 12y ago
When I joined Apple in 1987 it was a Pascal shop that had just started moving to C. The Pascal they were using had been developed and was maintained in-house and had a number of extensions, and with the exception of a few things like different semantics for pointer arithmetic and the presence of nested procedures it felt in practice nearly the same as C, just with different keywords. I wrote a ton of code in it, and I really didn't think about the difference much.
But in college I had to use unextended Pascal, and it sucked pretty hard. Maybe that's the point of a teaching language; make it stink to the point that students are encouraged to move to better languages. Maybe the current vocational approach of teaching a "Real Language" -- ahem, Java -- to beginning programmers is flawed because they're less likely to get experience with other, better languages. [I'm not sure how serious I am about this. I know that I hate Java, at least how it was circa 2001].
- arnsholt 12y agoAnother problem with teaching introductory programming in a Real Language, I think, is the temptation to also teach more software engineering-like things as well. When you start measuring your experience with programming in decades rather than years, it's hard to remember learning how to program is actually kinda hard. Thus, adding things like version control and IDEs to the mix gives you less time on teaching what should be the core of an introductory programming class: how to solve problems in code. Anything else is fluff that can be ignored until the foundations have been laid. An additional reason I think using something "weird" like Haskell or Scheme is that it's a very good equalizer (Haskell in particular). IME, this kind of class will have two kinds of student: those who already know how to program, and those who've never programmed. Those who already know how to program are mostly going to ignore the class, simply because it's known to them already; and this is a problem because the interactions between strong students and weaker ones is massively helpful, to both parties. Teaching things is, somewhat ironically, perhaps the very best way of focussing your knowledge of it. When you're explaining stuff to yourself (as it were), you can fudge the details you're a bit vague on (which is generally thue tricky bits), but if you're explaining it any vagueness is painfully obvious (I suspect this is also the reason simply explaining a problem to someone can be so helpful).
- abroncs 12y agoI learned programming with Pascal in high school, and it definitely didn't stink. It's way easier than C and lets you focus on the actual programming, not the idiosyncrasies of the language. It's very much like Python in this regard, but I think it's even better as a first languge. It's more explicit and to someone completely new to programming, that really pays off IMO.
- icelancer 12y agoPascal was my 2nd language after Apple IIe BASIC. I also found it to be a great language to learn. I have some bad memories involving Delphi, though...
- xxs 12y agoWithout a compiler BASIC was absolutely terrible performance wise, so assembler was kind of a must (at least to me). When I was trying to learn object orient programming with Turbo Pascal, it felt rally hard till I saw the exact compiled code. But I liked Pascal very much... and Delphi even more. Actually I liked everything about Delphi, compared to Visual Basic it was absolutely amazing and it came with the source code of its libraries! What was your bad experience with?
- 72deluxe 12y agoDoes anyone use Lazarus and Free Pascal for anything? I only tinkered with Delphi when it used to come on PC Plus cover CDs back in the day, before using C++ Builder at work. I know that C++ Builder lost significant (!) market share after the name changes to Inprise and being bought by Embercarado, although those things weren't necessarily the real reasons for this market share loss. I was pleasantly surprised to come across Lazarus and Free Pascal and thought it might be a way for my brother to do some programming, instead of C++ (which I use, but he doesn't know).
- marktangotango 12y agoI studied TP many years ago, and have fond memories of it. I looked into using Free Pascal for a system level project involving networking, threading, and concurrency (here I mean things like synchronized collections). In particular the threading and concurrency libraries seemed to be limited, and not as 'nice' as alternatives in other languages (boost, or java concurrent utils). Also the language is sufficiently complex that I decided I may as well use c or c++.
- mathattack 12y agoI think the move to safer languages for CS education is more to encourage people to think about the CS lessons at hand, rather than software engineering. Learning about various list types is much easier if you don't have to worry about randomly crashing things. Learning about recursion is better in a language suited for it. My CS education was founded around Scheme in part because it was a good language for showing how things worked. I thought the school went a little too far in that direction because outside of SQL, I had to teach myself every language I worked with thereafter. But... It did prepare me to learn those languages.