30th Anniversary of Pascal
GrokSoup writes "UC San Diego is holding a public symposium on Friday, October 22nd, honoring the 30th anniversary of the Pascal programming language. Oh the memories of undergraduate bubble-sorts ..."
← Back to Stories (view on slashdot.org)
Pascal was more than just undergrad bubble sorts. The original Mac had all the hooks and development stuff in Pascal. If memory serves the Mac was the largest Pascal project going. Using C (Lightspeed C, circa 1986 or so) was a real bitch on the machine.
Trolling is a art,
Loved Turbo Pascal, learned it in high school, was even remaking the first zelda on it, but was pixelizing everything, so it looked way better... sorry but that's pretty uber geek in my mind.. that was a long time ago.. this is also my first post, so i wish to formally introduce myself to the /. community!
President Bush Supporter
I've never used Pascal, I started programming in QB, went on to VB(5, then 6), then did C++, then Java, now Objective-C.
I think when I start teaching programming classes at my old high school I'm going to start with Python so you get one language that can do both objects and procedural programming... anyone recommend otherwise? I'm just a bit curious.
Kyle
http://www.unlogikal.net/
I too recall the heady days of Pascal in undergrad. Trying to explain to my lab partner how one could have an array of arrays... But that was a long time ago and I pose the question. What language is the "teaching language" now? Do they have Pascal?
When it comes to primitive sorting algorithms, your time would have been better spent implementing a fibonacci sequence spaced shell sort.
"Europeans call me by name, Americans by value."
Sheesh, evil *and* a jerk. -- Jade
program Anniversary;
begin
writeln ('Happy 30th Anniversary Pascal. You roxxorzz');
end.
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
Any project without line numbers is not a *real* project!
These kids today...
..helping to get the basics before starting to learn c. Quite nice language, although not the best, but ive seen even an operating system in freepascal ;)
It takes a man to suffer ignorance and smile
Be yourself no matter what they say
Hmmm and D&D just turned 30 too... coincidence?
Pretty widgets? What pretty widgets?
After spending a few years programming in C, I took a job programming in Pascal. I figured that it was just a matter of replacing {} with begin/end, and '=' with ':='. Boy was I wrong.
Sometimes you need a hack, and Pascal's purpose in life it to prevent those convient little hacks.
Am I the only one who felt _really_ really_ old when I read that. What have I done with the last 30 years of my life?
Who is General Failure, and why is he reading my hard disk?
It was one of the best teaching languages before OO took hold. For me it was much better than scheme or lisp type languages which were also popular at the time. I still remember the Pascal-like stuff in the original windows api.
I always did think that Pascal's notation for pointers and dereferencing was more intuitive than C and therefore less confusing for teaching algorthms and data structures. It also didn't let you write out of bounds of arrays. Good stuff.
I use Pascal all day, every day. I laugh myself sick thinking how much time my C++ developer friends waste on stuff that takes days in ATL/MFC/C++ that I can do in a few seconds in Delphi. DCOM servers, GUI programming, reusable components, these are all a pain in the butt with C++. Okay, C# and Dotnet are almost as powerful as Delphi, but they have a huge runtime (like java). For my money, nothing can touch Delphi/ObjectPascal/VCL for efficiency, productivity, quality, easy deployability with NO DLL HELL and no runtime installation issues.
WP.(Franciscan)
(P.S. I never ever shipped any app with the BDE in it. That, and the Database Desktop, are the crappiest things ever to come out of Borland. They are still in the latest native Win32 version of Delphi, Delphi 7, but at least you don't ever have to use them.)
I remember learning Pascal in high school for my AP (advanced placement) computer science class. If I remember correctly, the final exam was based around that language. Are they still using Pascal for the test?
begin
Seems like a limited (and rather verbose) language now, but it was UCSD Pascal for the Apple II and shortly thereafter Turbo Pascal for DOS that made it possible to create sophisticated and transportable programs on personal computers without spending a fortune on development tools. Prior to that point it was either assembly-level hacking (which produced some amazing work, but didn't generalize well) or BASIC (no more need be said...)
end;
"All successful systems accumulate parasites" -- Hal Hixon
The only programs I remember being written in Pascal were BBS Doors and demos.
Delphi lives on to this day...
Way, way ahead of its time. It was an IDE and the code it generated was bytecode, not native code. I love hearing all the Java weenies talk like the Java VM is somehow a "new" concept when P-code was availble for a real language in the early eighties.
I wrote a "conquer the galaxy" game in UCSD Pascal when I was 19. Such fun, dealing with overlays to fit it in the 64k of my Apple ][+. I never sold it, alas, so dreams of become a rich game programmer never panned out.
It's funny...it also had the last IDE I actually liked.
Unfortunately for UCSD, they priced it too high, and Phillipe Kahn came in and stole the PC Pascal market. Of course, the grad students who actually designed and wrote the system never saw a penny.
The cake is a pie
"Honinbo Warrior" was written on my Apple II (serial number 71) using UCSD - a very civilized programming environment indeed.
The Apple II also had a fairly good interpreted Lisp (Pegasis Lisp) that I used a lot way back then. The Lisa editor/macro asembler was also great (as long as I am getting nostalgic, what about Bill Budge's great 3D library for the Apple II).
Seems like a lot of fun. I hope I will be as nostalgic about the anniversaries of Java!
Some of those issues have been solved with advent of the Turbo/Object Pascal by Borland which is currently the most used Pascal dialect (for example the FreePascal uses it) which has taken many things from C. However, a still worthy read.
You can defy gravity... for a short time
I think it's a valid question since "undergrad" was mentioned in the topic, i know a lot of people on here started with pascal, i'm simply asking what the best language to start out with NOW is. I'm sure there's been an Ask Slashdot on this but oh well, such is life. I just didn't think it was that offtopic :-/
Kyle
http://www.unlogikal.net/
I'd be interested to hear why people think Pascal never caught on like C or Java did? My understanding is that nowadays one of the Borland tools implements what is essentially an OO-version of Pascal?
riiiiiiiiight.........
President Bush Supporter
Pascal was more than a programming language, it was a multi-platform operating system.
See what I've been reading.
It has been ages since I've done anything in pascal...but my programming language progression went from BASIC, QBASIC, then Pascal. I've moved to other languages from there but it was quite the eye-opener. Variables had to be declared, the "uses CRT" was quite the drastic change from what I had been used to (if I remember correctly), and the overall approach was enlightening.
Now there are other languages to learn with (and a few of those aren't just for educational purposes). Java, PHP, and C for example. Even Delphi has kept Pascal alive and relevant.
Back then, I had to find...um...creative ways to be able to program and compile Pascal code. With all the freely available IDEs, compilers, debuggers, etc. around now for all these various languages (especially through OSS), things have become more accessible.
Pascal was the language that brought me out of my BASIC habits...for that I'm definitely grateful.
All your productivity are now belong to CmdrTaco. Hope you like it here!
Cheers,
Gaurav
Luckily, I know what that is, but still, that's mean.
In Soviet russia, only old Koreans profit from pictures of Natalie Portman stored on Beowulf Clusters.
In France at the PrePa to get into one of the Grand Ecoles it's still Pascal. Incl the Namesake .
Help fight continental drift.
Pascal was great during the early 90s... It brings back memories of BBSes with 300-2400 bauders. Back then, this language was probably the most popular structured language. Many free and commercial BBS programs and doors were created using Pascal, using the free DDPLUS door kit for 7.0. So it wasn't just used for bubblesorts, it drove much of the BBS community!
Damn dude, you almost got a first post first post!
Back in the 80s for me it was Turbo Pascal, originally a $39.95 wonder-package on a single 5-inch floppy. Compiled a whopping 7000 lines a minute on my 2Mhz 8080.
My never-ending project to simulate a D&D world led me to explore the mysteries of virtual method tables, linked lists, B-trees, and that other structure -- a mesh of nodes without a head -- what was it called?
My favorite TP achievement was a homegrown BBS that I ran for 2 years on my 1200-baud modem. I had no hard drive, just two 360K floppy drives. So the system and programs were on one and the msg files were on the other. There were 10 message boards. I gave some users sysop privs on individual boards. Three of them ran RPGs -- AD&D, Traveller and Robotech -- one woman ran hers as an adults-only hot tub/bar. Eventually I wrote an adventure game parser as a unit that would plug into the BBS. I only created one game for it, but many people played it through to the end and commented on it. Good memories of the pre-web era.
Wouldn't want to get shut down, would you?
- John
How relevant today is Pascal? How much business work, or work of any sort that someone else pays for, is still done in it? What modern compilers/IDE's are available. To my mind, Pascal is as dated as line numbered BASIC, and I haven't seen an job ad looking for a Pascal programmer since before the Dot Com boom started. And I lived near UCSD when UCSD Pascal was the way to learn programming.
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
Oh! I almost forgot. The most important point in UCSD Pascal System was not Pascal itself but the p-code. Well the p-code allowed programs to be compiled to some intermediary form resembling assembler called (guess what!) p-code, which could then be run with a help of a simple interpreter on any machine, thus giving us a machine independent code. Seems familiar?
You can defy gravity... for a short time
Pascal, a lovely little language. Before that, I was enmeshed in BASIC and FORTRAN. Pascal, even though it was originally Niklaus Wirth's training exercize for compiler students, had a certain undeniable elegance to it. Its recursion and record features were particularly nice. Later the lure of C and languages containing C-like syntax finally got it's grip on me and Pascal has nearly been forgotten. It did have a nice run with the early Macs, though, with all of the OS being written in it.
BTM
That was the turning point of my life--I went from negative zero to positive zero.
...until I tried the Pascal family of languages (Modula-2 actually). The strictness imposed by Pascal and its decendents really forces you to think carefully about what it is you're trying to code. Most of my early C programs worked by luck rather than design and would produce pages of warnings on compilation. After learning a bit of Modula-2, I became a much better C programmer (and programmer in general). Many years later I had to program in Turbo Pascal 7.0 (a predecessor of Delphi) and found it very pleasant (despite DOS and Windows). Pascal has come on a long way in 30 years and spawned Delphi, Modula-* and Oberon-*. They're well worth investigating.
Stick Men
It is a teaching language, so the main design goal is to force students to do it right, rather than hacking. Once they learn how to do that, they can the use a profressional language hacks. In other words, first you have to learn the rules, then you have to learn when to break the rules.
The cake is a pie
It's the 30 year Anniversary of the death of pascal.
Last one in jail is a fascist.
Some of us have never given up on Pascal. I still use Delphi and Kylix to this day. Meets my needs and Pascal makes a nice OO programming language, something that dates back to Turbo Pascal 7.
There is a ton of third party support for it and you can do just about everything a little easier then just about everything else. All my DSOs for Apache are done in Kylix...
D.O.U.O.S.V.A.V.V.M.
R.I.Pascal.
...but I was too busy sorting the bubbles in my bong.
Real Programmers Don't Use Pascal: http://www.pbm.com/~lindahl/real.programmers.html
use Scheme. Almost every major university with a reputation for churning out great computer scientists uses Scheme in their first programming courses.
For purposes of instruction and introduction, Scheme is better than any language I can think of. You can write incredible programs in very short pieces of code while making the key concepts very clear.
I always failed to see the value of Pascal. It seemed like a useless intermediate between C and BASIC with no real advantage over either. I'm sure Pascal had its place and time, but it is long gone.
can't sleep. clowns will eat me.
cout (1 8) ""
listening to the instructor babble some shit about operator overloading the first day of class and I'm thinking holy fucking shit nobody here is going to learn how to program this way
pascal forever
Jef Raskin's Pascal Poster. Way cool if you've never seen it before. Still way cool but nostalgic too if you have seen it before.
-russ
Don't piss off The Angry Economist
There is a great open source compiler called Lazarus that rivals Borland's Delphi. It's found over at lazarus.freepascal.org. It's object oriented and has a nice GUI. Best thing about it besides being open source is the fact that it is cross platform. It really is a great product!
Damn dude, you almost got a first post first post!
Now *that* would be something to be proud of.
What was at first the so called BSD (Berkeley Software Distribution) by Bill Joy? Essentialy it was a Pascal Development System for UNIX bundled with UNIX itself. The improvements in UNIX were made by Joy in order to have an easy to use Pascal system. Don't believe? Look here.
Well Pascal was at that time really important.
You can defy gravity... for a short time
Whitespace! Pure luxury! Why when I was a young programmer, we hadn't even invented 1's, we only had zeros.
AND WE LIKED IT THAT WAY!
HA! I just wasted some of your bandwidth with a frivolous sig!
that's just very very very wrong.. i'm on a work computer.. so it's even more wrong.. no need to be a jerk, but i know ya gotta get the new guy...
President Bush Supporter
what does HHBT and HAND mean?
President Bush Supporter
It's unfortunate that Pascal gave type safety such a bad name: the language, as it was usually used for teaching, had such limited functionality and imposed such a straight-jacket on people that several generations of programmers thought type-safety made languages useless and that they needed to use something as unsafe as C to get any work done.
Yet, commercial implementations of Pascal were in pretty common use, had all the low-level facilities of C, and yet gave programmers a decent amount of type safety and runtime error checking. In fact, a lot of the early Macintosh software was written in ObjectPascal, and TurboPascal was very popular and very useful on the PC. Even the Apple II ran a pretty good Pascal development environment (in 64k of memory), with a decent screen oriented editor, menu bars, and an integrated compile/edit/run/debug system. Pascal syntax also was quite a bit less error prone than C/C++'s. Having pointer dereferencing be a postfix operator alone is just so much more sensible.
Perhaps much more interesting than Pascal, historically, are Algol-60, Simula-67, and Algol-68, which are related to it; Pascal was probably never intended to compete with them, but rather serve as an educational introduction to them and their successors. Around the same time, many fundamental ideas in programming languages were developed and implemented, including APL, Lisp 1.5, Snobol, PL/I, Smalltalk, and Prolog. Window systems, GUI toolkits, constraint-based programming, MVC, and other concepts we take for granted today followed shortly thereafter.
One of the thing I like the most about Borland's Delphi is that its Object Pascal allows you to be procedure or object oriented. It also has the best IDEs around, and allows you to do anything you want (web services, device drivers, console apps, database apps, office tools, servers, clients, etc, etc, etc). Truely a Swiss army knife.
I'm going to go out tomorrow to buy some string.
:)
I'll cut off pieces, and at one end of each piece, write down how long that particular piece is.
I remember helping people in the labs when I was in college with this mac-only program called Karl the Robot...it was basically a way to learn algorithms as you had to come up with ways to move Karl around mazes and such. I believe it used Pascal as the underlying code, though it was pretty limited to just moving Karl around. While I myself disliked Pascal as a language (weened on C), I thought Karl was a pretty clever program.
just got lucky i guess
President Bush Supporter
I am going to reveal my "nerdy-ness" and say that I was the NJ Pascal Programming Champion in High School back in 1993 held at Glassboro College in NJ. We all got the same project and 2 hours to program it. Our team also won 3rd as a whole. Whoo hoo!!! Finally, I can claim my fame:) Ocean City High!!!
30 years later and I'm still trying to wipe it out. Sure we've made great progress but I won't rest until CS grads say "Pascal who?" (I hope you get the joke)
I took USCSD Pascal in 1980 using an Apple II+ with a whopping 48K of memory. It ran on a new network they were trying to set up that had a 3 or 5 MB hard disk storage device so you could access the interpreter off that. I was told that hard disk cost 5 or 10 grand at the time.
I had previously learned APL, and Fortran at junior college before taking this class, but I remember that that Pascal really made sense to me because it seemed logical in in its layout. I still think to this day I am a better programmer for having learned Pascal before C and not the other way around.
I know I have already posted this some days ago but it is valid for this story too. This is a quite classic text.
Actually I (mildly) regret that I was an advocate for C and C++ in the university undergrad CS programmes, because at the time I personally enjoyed programming in C more than Pascal. Looking back I think Pascal was an excellent language for students, and I wish Niklaus Wirth's other languages, such as Module-2, Oberon caught on more. I think they were evoluting in the right direction of promoting good programming style, for programming in the large.
Rather than quick coding by the seat of your pants which C encourages or at least strongly tolerates.
Pascal was great
:P
I loved Pascal
My memories of Pascal
It's Pascal's anniversary and you're talking about it like it's Pascal's funeral
Sometimes you need a hack, and Pascal's purpose in life it to prevent those convient little hacks.
While all of the typical classroom compiler projects used simulated, interpreted machine languages to avoid all of the hard problems of generating commercial, messy object files, the Pascal compiler itself, for the PDP-10, managed to generate native object files. The primary trick was to use variant records (unions in C). Many, many structures named "wandlung" (German for "transformation"). Depending on your point of view, it's enlightening or depressing (or both) to find out that the gurus used the back door when you believed the party line and kept banging on the front door.
Of course, the most annoying aspect of Pascal for me is string handling. Even Modula2 didn't fix them.
Lazarus is not the compiler, it is the IDE. Freepascal is the compiler.
perception is reality
Learned COBOL and RPG II before I learned PASCAL. We had to write everything in pseudo-code first and flow chart our entire program. Those were the days... Our development environment was a piece of paper you spoiled little brats!!!!!! Thank God I had admin rights so I could que my compilation ahead of other people....
__________ Leave me alone I'm compiling a RPG II program on my S/36...Thanks to metamucil I'm a Regular Meta Moderator
I started with Logo, but that was in the 3rd grade. Really useful, to be honest. But not really as appealing to adults as it might be to kids. I'd say learn something like Lisp or Haskell first, personally.
All's true that is mistrusted
Boy, you really are new here, huh? YHBT (I assume it's what he meant) is You Have Been Trolled, HAND is Have A Nice Day!
The semester-long class was originally for FORTRAN. The teacher used a method where we wrote our own programming manuals through the semester. Each day we had a lesson that became a page in our manuals and then we did a programming project in teams. It was such an effective way to teach a language that we all had our manuals done with six weeks to go. We were given the choice of doing larger FORTRAN projects or moving on to Pascal. We chose Pascal and got pretty far in the six weeks left.
I still have both of those manuals twenty years later. Truly one of the best educational experiences I have had.
Cormen, Leisserson, and Rivest's book was commonly known as the Big White Book of Pain at my university. Hopcraft and Ullman was known as the Little White Book of Pain.
(S(SKK)(SKK))(S(SKK)(SKK))
ahh, thank you, i need to learn more of the lingo around here.
President Bush Supporter
xHBT means x Has Been Trolled. HHBT is probably He Has Been Trolled. HAND is Have A Nice Day.
Trolls spout gibberish, insults, profanity, and sexually explicit material in order to get you to reply. They just want attention, so it's best not to give them any. Usually, people posting as Anonymous Coward are trolls.
It was basically a new parser for the C compiler. Anything the back end of the C compiler didn't have had to be faked by the front end. Subscript checking was horrendously inefficient, with a subroutine call for every subscript check. Variant records were implemented by allocating separate storage for each variant. It optimized almost nothing. And it was a straight ISO Pascal, with a minimal hack for external compilation.
As a result, a generation of UNIX programmers grew up thinking that Pascal was much less efficient than C.
Note how many of us are still programming in C or C++, and how much commercial and OSS software is written in that language family, vs. Pascal. No contest. Good riddance!
Generally, bash is superior to python in those environments where python is not installed.
Wirth published "The Programming Language Pascal" in 1971 in Acta Informatica, Volume 1. Pascal is 33 years old!
There have been newtons per square meter for much longer than 30 years...
*ducks*
Love the Third Amendment?
Mac Pascal, Lightspeed C! I thought I was the only living person who climbed that learning curve. Problem was; it turned in to a learning cliff that I then fell off. I was good for nothing but assembler and BLISS for years until Pascal came along. This means we are due for a birthday party for the original MS-Basic pretty soon.
But didnt Pascal lead people to think of P-code which foreshadowed Java bytecode? a link off the article's link seems to agree with my memory...so i better not read it too carefully;)
and I certainly didn't use pascal just for academics. When I execavated the basement hole for my house, on an ostensibly unbuildable scrap of bedrock-studded land, a pascal contour mapping program that I wrote detected the one spot where the bedrock would be flat and need no blasting...back hoe guy was amazed an amateur could show him right where to dig.
SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
There's one thing I really miss about Pascal: nested procedures and functions. Being about to write a little utility function in the scope of the function it helps is just so elegant. You don't have to pass a bunch of parameters to get them in scope. Nobody else can miscall your utility function because it's not out in the global namespace. It's immediately clear to people reading your code that it's just a subordinate helper and to which function it belongs.
Function nesting is a feature sorely lacking from languages like C. It's not to hard to work around this limitation in an OO language, but the solution is still not as elegant or efficient.
And even after 15 years of C and C++, it still makes more sense to me to use = for comparison and to have a special symbol like := for assignment.
Today, we have Python, and whitespace-sensitive code is fucking BACK!
Fight hunger. Filet a politician and send him to a 3rd world country of your choice.
At MIT the required first computer course uses the 47-year old LISP language, at least the object-oriented, modular version called SCHEME. I guess this partially intertia, having done this since the 1970s. All electrical engineers and computer sci majors are required to take this course. That can be 40% of MIT undergrads in popular years.
It is a riot to read through all these posts on Pascal.
When I was knee high to a grasshopper I used Pascal to...
I remember once using pascal in high school to...
Man, Pascal is such a great language! Why I remember the last time I used it, it was just like yesterday...25 years ago...
Cut me some slack! Yes, it is a good language, I even have used it from time to time. But the adjectives pleasurable, cool, awesome, etc., are not what I would use to describe the experience. Perhaps okay, humdrum, yawn and eh? are some words I could use.
I know that people still use it but Borland/Inprise (yeah, remember the Inprise fiasco?) seem to do a real good job killing it. In fact, I would go so far as to suggest that Borland is Delphi's worse enemy.
I won't go down the list of things I hate about the language or Delphi, but if I were looking for a language to use for my next project, and I read the posts here, I would NOT choose a language that seems to have only fond memories going for it (btw, try doing a search for books about Delphi on Amazon).
If Delphi is so good and [ any language pascal users hate ] is so bad then how come Delphi is doing so miserably in the market? Ok, Ok! Yes, if you go to Brazil or the Ukraine EVERYONE and their grandmother is using it. But for as sucky as C/C++ (according to Pascalites) is it sure gets a whole LOT more air time then Pascal/Delphi. We could blame it on MSonopolies and cooperations, but that doesn't seem to go vary far either when you look at the open source community. And if cooperate America drove the use of language (not saying they don't have some say it it) then Java would be a rip roaring hit. Is it? NOT! It has a following but even it bills itself as a language that is much like C++. Even C# has a very C-ish look and feel (with a very Pascal-ish smell).
I remember once during a Delphi campaign Borland (or were they Inprise then?) tried to convince VB programmers that moving to Delphi would be easy and painless. If that doesn't give you chills then you are dead.
Sometime, if we all get together, I will show you my b&w photos of me using Pascal.
C was created for writing operating system(s), recte Unix; therefore, it has features required for that task: flexibility in terms of data type passing, CPU instructions, a.s.o. Now what happened was, all geeks determined they had to do their software development in C, even if they were not involved in system programming. For someone who doesn't do programming for a living, strong typing (see Pascal) is a very good thing, as it avoids common errors. Then, someone decided C was not good enough because OOP in C/C++ was not an easy endeavor (true) so they invented Java, only they removed some very good things in the process, such as pointers and (user-controlled) dynamic memory allocation. And for those sysadmins who are still in love with C but all too aware of its limitations there is always Perl, a mutant born from a happy C + unix shell scripting marriage.
Thus, I canot repeat it often enough, long live Pascal!
Sigh, those were the days. Just the other day I found a floppy-load of programs I had written a decade ago. What a great feeling! It's a great language to learn programming with. Happy Birthday!
A blog like any other.
> this is also my first post, /. community!
> so i wish to formally introduce myself to the
Welcome to Slashdot.
Just be careful with the words "first post!"
I have been using Pascal on multiple platforms for... what, 20 years or so? and I am still using it on Linux in various projects. You know what? It's the best language ever created for a scientist or any other kind of non-IT profession. IMHO, the two greatest disasters that have ever happened in computer programming are the advent of the C and Java languages. Let me explain (cause I can hear your laughter from here).
C was created for writing operating system(s), recte Unix; therefore, it has features required for that task: flexibility in terms of data type passing, CPU instructions, a.s.o. Now what happened was, all geeks determined they had to do their software development in C, even if they were not involved in system programming. For someone who doesn't do programming for a living, strong typing (see Pascal) is a very good thing, as it avoids common errors. Then, someone decided C was not good enough because OOP in C/C++ was not an easy endeavor (true) so they invented Java, only they removed some very good things in the process, such as pointers and (user-controlled) dynamic memory allocation. And for those sysadmins who are still in love with C but all too aware of its limitations there is always Perl, a mutant born from a happy C + unix shell scripting marriage.
Thus, I canot repeat it often enough, long live Pascal!
What is wrong with providing an installer at the base package like the MS products?
I would have stuck with Delphi if I could match the feature set of Visual C#/C++ . Yet to get some of the more useful tools (like the ability to build installers) I had to buy the expensive versions.
Borland killed Delphi with their upgrade costs and constant downgrading what was packaged. The left behind the hobbyist who went to JAVA and C++/C# simply because better tools were available at a better price.
* Winners compare their achievements to their goals, losers compare theirs to that of others.
I finally got my own Apple II in 1981, and promptly tried to write a program called "Dial a Dungeon" - a multi user modem text based dungeon. Alas, too big a project for me, and thus never finished.
Whoever first thought anyone should be taught bubble sorts should be taken out and shot. If they're already dead they should be dug up, shot, and reburied.
Bubble shorts give you absolutely no asymptotic benefit over insertion sort. The instructors do a song and dance about how values tend to migrate into the right position, but you still have to check every remaining value every single time. So you only get modest benefit if you stop the sort early - who could possibly consider this a useful property?
Even among the O(n^2) algorithms they're outperformed in practice by every other algorithm. They're more costly than unidirectional insertion sort (because of all of the swapping), and far slower than bidirectional insertion sort. (Scan the records and find the smallest _and_ largest values. Swap with first and last positions. Repeat on remaining elements.)
H***, even the bidirectional bubble sort (which is like a bubble sort but again you run it one way and percolate the largest value to the top and then run it the other way to percolate the smallest value to the bottom) is faster than that stupid sort. E.g., while percolating the largest value you can also take note of the smallest value seen. Immediately swap it, then run the bubble sort the other direction and take note of the largest value seen. This gives you two values per pass.
The bubble sort is important... but only as an example of a seemingly good but in reality really brain-dead algorithm that's studied as a cautionary tale in graduate algorithm classes.
For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
When I took my first datastructures class, the Prof had just gotten one of the first copies of "cfront", the first implementation of C++. Try doing that when neither the prof nor any of the TAs know the language!
The cake is a pie
Strange, I would've called it a first first post post.
Karma: Bad (mostly due to all those "In Soviet Russia" jokes)
... is programmed in Pascal derivative! ;-)
;-)
(and hardware is designed another one as well)
Pascal -> modula -> modula 2 -> Ada (fighter planes and other DoD S/W) -> VHDL (hardware)
As to education, the original intent (as far as I remember) was not only to teach "Introduction to Programming" in Pascal, but "Compilation and Interpretation of Languages" as well -- thus syntax intentionally suitable for writing a simple enough Pascal compiler in Pascal itself.
Paul B.
P.S. And, of course, it is quite proper for UCSD to host the event -- I have fond memories of good old UCSD Pascal (compiled to P-Code!) running on Bulgarian clones of Apple ][!
Paul B.
Both Pascal and BASIC were intended for teaching only. Unfortunately both were pressed into areas they were not originally designed for and had to be retrofitted.
THere is a discussion above about production languages vs teaching languages being taught at this time. My opinion being better a production language, because when the Business Admin types take their intor to programmig class they will not be left with the impression that a teaching language is a real programming language.
THen force programmers to deal with what often amounts to crippleware when they are tasked with managing a software project.
putting the 'B' in LGBTQ+
Yeah, they taught that as an intro language at my alam matter Truman state university. Can't say that I cared for the language. I really think its a poor choice. Its not used for much outside of the aviation industry, and its not very simular to any other language outside of pascal/delphi.
Well.. maybe. Or Maybe not. But Definitely not sort of.
I remember first learning Pascal w/ Tiny Pascal on my Trash-80 Model 1, then moving to an early version of Turbo Pascal under CP/M on my Model 4P. I wrote all the code for my M.S. and Ph.D. projects w/ Turbo Pascal on 386's. Good times...
After SofTech Microsystems was founded to support UCSD Pascal I offered to rewrite the elementary function routines (sqrt, sin, ...). The negotiations were interesting; Mark Overgaard said something like "Well, here's the thing---if we're going to do business then you'll have to visit in person, and during the visit there will have to be these vibrations, and they'll have to be good vibrations ..." I laughed so hard on the phone I nearly fell out my chair, but anyway the deal got done and delivered around June 1981.
Later I bought an IBM PC and after testing the elementary functions in MicroSoft Basic (they were crap) I offered to rewrite them. MicroSoft replied that they had already shipped that product, they weren't fixing anything in it now, they were on to other things. I thought that any company that had such a cavalier attitude to quality could never do well in the market; boy, was I wrong.
A few years later some bit of random testing showed that double-precision floating-point multiplication in MicroSoft Basic sometimes returned results accurate to only single precision. But, hey, the product was shipped and paid for, they were on to other things!
- real programmers use assembly language...
- casts in programming for the early Mac OS drove me nutz!
I guess it says something about M.I.T. and about the Lisp "family" (Common Lisp, Scheme and Islisp). By the way, nobody writes "LISP" anymore, and I guess it's been that way for more than a decade (or two, maybe).
/require/ you to learn Scheme (Lisp), instead of any of the fashionable languages-du-jour? Maybe it's got something to do with the fact that you can bend Lisp a lot, and it doesn't break.
I don't think anyone would dispute the M.I.T. is a great institution, capable of the most creative and excellent research. So, why is it they
Think about that.
Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
If you want to build your first compiler, Pascal-style languages are a good place to start. They are amenable to recursive descent parsing.
I strongly recommend Jack Crenshaw's (free) introduction.
I seem to remember that the compiler is written in Pascal. I translated it to C as a I went along. You could always use GNU Pascal (That's a google link, because the site seems to be refusing connections. Could that be related to this FPP?)
Lisp is a language that doesn't get in your way with a lot of syntax...the very opposite of , say Ada which presumes [with its 277 BNF production rules] to have a sytactic straightjacket that will keep you from doing something stupid. Knowing how to think: analyzing, compartmentalizing and being able to create coherent whole solutions from components is something you are as likely to learn as a physicist or a mathematician. Knowing how to program is all that a BSCS degree promises and with that you can get programming squables of the sort going on between McKitrick and Michaels. Knowing how to think, it is handy to have a language like Lisp that is amorphous, taking its shape from your structuring of the problem/solution. This begins to sound like academic BS but harken: Here is a company that wrote the world's fastest airfare pricing engine in Lisp and makes a nice living selling its services to travel booking websites like Orbitz. But you have to think to get a job there! their job application has a humbling day-long programming test in the language of your choice that would sorely try any Google applicant's skills.
SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
...since niklaus wirth defined pascal in 1971.
Pascal is a well respected language from the beginning of my foray into Computer Science.
The strong formatting of my preferred compiler then, THINK Pascal on the Macintosh, helped instill a respect for structure in my programs and formatting in my source code.
Many were the lessons learned in that era of youth and many were the tears shed when the things of youth were left behind for the toys of adulthood.
Who here doesn't love to browse the selection of ThinkGeek? Come 'hon ... you know who you are...
This post encoded with ROT26. If you can read it, you've violated the DMCA. Handcuffs please, sergeant.
I remember sitting in a Borland Turbo Pascal class when I was about 14. The instructor always had us type the same paragraph for the first 15 minutes of class, which got really old. I could code basic by then and as soon as I figured out what arrays and procedures were, I wrote a little program that immitaded the GUI and typed the paragraph for me, haltingly and one char at a time (in case she walked by all I would have to do is tap at the keyboard and it would look like I was typing.) That class was very fun, and even more fun was always having the upper hand on the teacher! Gawd we always pwned her so bad. Wed do stupid stuff like makeing some graphcolormode_boobs_and nasty message, compile it to .exe, copy to her comp and call it out in the autoexec.bat file :D I miss that
---
My sig was stolen - the insurance company replaced it with this one.
Check out http://www.threedee.com/jcm/ for more history of the Terak computer and the p-System. A pure bitmap display with 320 x 240 mono graphics, pan/scroll, a software-driven speaker and sound, all designed as a desktop personal computer, wow! It's right there in the history books next to Xerox PARC machines and the PERQ.
r es/pascal.htm .
In November 1981, an Terak 8510/a with a PDP-11/03 CPU, 56K of RAM and one floppy drive was $8,935. And extra floppy drive was $2,570. You could even upgrade to color graphics at 640 x 480 by eight colors for $10,550. A ten meg hard drive was $7,985.
One of my functional Teraks was invited to take part in the 1970s History exhibit at SIGGRAPH 98, celebrating the 25th anniversary of the ACM SIGGRAPH conference, the annual gathering of the computer graphics industry.
The p-System was one of the operating system alternatives for the original IBM PC, apart from MS-DOS and CP/M-86. If you can find them, the disk images for that p-System will still run in a command window under Windows, if you preload ANSI.SYS.
Another reference to the reunion is http://www.alumni.ucsd.edu/magazine/vol1no3/featu
This Terak page won the "Geek Site Of The Day" Award on October 16, 1996.
- John
Curator of the Jefferson Computer Museum http://www.threedee.com/jcm
I've read claims that TeX's source language is in Pascal, which is translated from a still higher-level language that generates source code and documentation. Anyone know more?
assignment operator should not equal '='
:)
plain and simple
Actually rather annoying. I'm a scientist now, so I will never get a good programming education -- high school's bubble sorts and linked lists are all I have. But everything in the sciences is done using C, and I don't have the time to sit down properly and grok syntax and style the C way.
Including all those C subtleties when dealing with two dimensional arrays. So I write C as if it's Pascal, with none of that pointery elegance.
(Of course, the old school here uses FORTRAN, which we have to learn to read, but FORTRAN is really just the Apple IIe BASIC with procedures and local variables instead of GOSUB. [ducks huge flamewar (?)])
Protect your liberties. Donate to the ACLU
I fondly remember Apple pascal, which was based on the UCSD p-System. Perhaps I've led a sheltered life, but that was the only filesystem I ever used that required contiguous file allocation. Defragmentation wasn't merely an optimization, it was often required to get a large enough block of free space to actually use!
Anyway, sometime later I got a PCPI Applicard and ran CP/M on my Apple. The PCPI was very hackable, since unlike the Microsoft CP/M cards, it didn't try to share any of the resources of the Apple motherboard. Instead, it was a complete Z-80 running independently in its own 64K RAM space and communicating with the Apple across a parallel port. The Apple could spend its processor time buffering keystrokes and print jobs, and since the timing was not critical, you could "overclock" the Z-80 very easily. I wound up at one point with a 10 MHz Z-80 that was actually able, with Turbo Pascal, to compile programs faster than the x86 machines in the school's lab (and they were state-of-the art at the time)!
I still have that Applicard somewhere. I don't have an Apple ][ to put it in, but I just can't seem to let go of it.
I do, however, still have an installation of a p code interpreter from the FreeBSD ports tree. It can even do turtle graphics. Fun!
There is also Free Pascal that is Delphi compatible.... and Lazarus that use Free Pascal and is Delphi-like (Visual Pascal)... Write once, comile everywhere (Win32, *nix, Mac, BeOS, etc, etc, etc.).
At my first job (in 1980) we did some programming with UCSD Pascal, although the majority of our work was in assembly (Z80 and friends). We dabbled around with UCSD Pascal on our CP/M machines and on a customer's Apple ][ and the performance was quite acceptable.
Then we got this strange beast -- I think it was a modified DEC PDP-11/03. IIRC, the 11/03's CPU was actually 3 chips: a core and what was essentially two microcode PALs. The microcode chips were replaced with ones that executed p-code (rather than PDP machine code). There was no interpreter -- raw execution of the p-code in hardware. It was so blazingly fast that we couldn't believe it. It was probably a 16-bit architecture too, so that may have helped (or was the PDP-11 one of those oddball 18-bit machines, 6 octal digits to a word...)
We never had a case for it, it just sat on the workbench on antistatic foam, with wires leading out to the floppy drives and the terminal. We did all of our Pascal development on that box, then moved it to the Apple (the customer's machine) for the "beta testing." It was mostly UI, so the performance didn't really matter.
Eventually, we switched to using C, since Pascal wasn't too practical for the embedded systems we were designing: we were mortified to see a compiled "hello world" was 8K bytes in size! That was four ROMs in those days... C had a much smaller footprint, so we began using it.
But I still wonder whatever happened to that machine...
I worked for a couple years writing Turbo Pascal applications for real time auto emissions analysis. I have not missed it since I left that company.
Both apps are Free Software (GPL).
www.lazarus.org
www.freepascal.org
Lazarus := Delphi-like (almost a clon) IDE for Win32 AND Linux. It's API independent: can use transparently GTK+, Windows graphic system... etc.
FreePascal :=
Portable? no problem! It's available for different processors Intel x86, Motorola 680x0 (1.0.x only) and PowerPC (from 1.9.2).
The following operating systems are supported: Win32, Linux, FreeBSD, NetBSD, MacOSX/Darwin, MacOS classic, DOS, OS/2, BeOS, SunOS (Solaris), QNX and Classic Amiga.
The language syntax is semantically compatible with TP 7.0 as well as most versions of Delphi (classes, rtti, exceptions, ansistrings). Furthermore Free Pascal supports function overloading, operator overloading and other such features.
Try it! Or, at least visit the web sites.
Java has strong typing; its references differ from pointers in that you can't do arithmetic so array access always requires bounds checking (shock horror!); and memory is dynamically allocated by the "new" keyword.
If I would start with a bunch of guys/gals fresh to programming, it could be I would start with SmallTalk. I know it's old, very old, and will have to fall back on "outdated" implementations, but there are still many around, but the advantages are IMHO great.
:-), don't infect them with any procedural stuff. There's still plenty of opportunity later to learn stuff like C, Assembler (!!) and such.
SmallTalk is fun!! SmallTalk is small, that helps to understand it quickly. SmallTalk is probably the most pure OO language. I read some posters saying that you better start procedurally and then move on in the next year. Well, I started 20 years ago procedurally (Fortran, then Pascal, then C, then Java) and I still have trouble making the transition to OO. I witnessed others who were never, ever infected by procedural programming and they "got" the OO way of thinking 10 times faster than me.
So, if you want to achieve that, and that all what teaching is about, you better start with a language that is pure, that is small, that is fun and who cares if it is by now irrelevant.
My main message is: If you have students that are still "programming virgins"
Ohhh, and if you want to start OO, but not with something as irrelevant as SmallTalk, then the only choice is of course Java!!!!
Browsers shouldn't have a back button!! It's all about going forward...
They teach those after high school? I only recall insertion sort and a bevy of O(n lg n) sorts.
Actually, I remember one study we did in a first year algorithms class where a bunch of sorts were ranked using averaged actual system times. Bubble sort came in second-last... with the worst sort being a modified Bubble Sort that aimed to improve performance :)
You're there to learn computer programming, which is why ASM, C, and C++ should be taught.
Contrast this with Pascal or Java, which are designed to hide the "difficult" parts of the computer from view. With those languages, you learn a programming language, not computer programming. Part of the reason performance is so bad in high level languages, is not because of the language itself, but because of the unskilled programmers who choose those languages.
Only by using a language which exposes the internal workings will one ever have a true understanding of a computer. I know I would have had a lot easier time if my college classes had started with Assembly and C rather than Pascal and Visual Basic. It took me a tremendous amount of effort to "unlearn" the bad habits of those languages and gain an understanding of the "computer" part of computer programming.
Once you've gained a mastery of low-level code, then you are better equipped to deal with ultra-high level languages like Java and C#. You will know which operations consume the most amount of CPU, and how to avoid memory leaks in the garbage collectors (which happens when you aren't paying attention to stale references you left lying around). You will understand how common data structures like linked lists and hash maps work because you've written your own for practice, so you'll be able to choose the right one for the task at hand...
Or perhaps, like me, you will realise that after trying Java and C#, you are still happiest with unfashionable languages like C++.
Agreed. Lisp is really easy to parse. But an algol-style language is easier to parse than one that needs LALR(1) parsing. But that's easier than....(on to natural languages). And algol can be fully parsed by RDP.
So why are XML parsers so bloody slow? It's only a tree of sexps.
Kylix (http://www.borland.com/kylix/) is Borland's IDE for Object Pascal and C++ development for Linux. They even have an Open Edition, which is free but requires the code developed with it to be GPL'd. They have enterprise-level offerings too.
Agree. See subcomment here
But a compiler that targets this
LISP is easy iff the hardware has a stack.
(I think I want that on a Tshirt)
from http://burks.brighton.ac.uk/burks/language/lisp/
/prog.htm) (The example APL program shown, above, is explained in detail, below)
LISP is a list-processing language originally developed by John McCarthy at MIT in 1960 for use in artificial intelligence research. Notable for its use of lists enclosed in parentheses for representing both programs and data, it is sometimes said that LISP is an acronym for "Lots of Irritating Single Parentheses". The fact that programs and data are both represented as lists makes this one of the few high-level languages which can generate data and then execute it as code.
The flexibility of Lisp means that many Lisp dialects have developed over the past 40 years, and Common Lisp was an attempt to re-unify those dialects in a single language. Common Lisp is the first ANSI-standardised object-oriented language, as it incorporates CLOS, the Common Lisp Object System (although Ada 95 still claims the record for the first ISO-standardised object-oriented language).
Scheme (sometimes described as an "UnCommon Lisp") is a simple and elegant dialect of Lisp which is in widespread use in teaching and research, although it is perhaps closer in spirit to more modern functional languages like ML than it is to the original Lisp tradition
about APL:
http://www.users.cloud9.net/~bradmcc/APL.htm l#exam ple
APL is a computer programming language unlike any other. This is obvious from the first instant you see an APL program: An APL program doesn't even look like other computer programs! --APL programs look more like algebraic formulas.... One Internet dictionary of programming languages describes APL thus: "Famous for its enormous character set, and for being able to write whole accounting packages or air traffic control systems with a few incomprehensible key strokes."(http://public.logica.com/~stepneys/cyc/p
APL is a computer programming implementation of a notation Kenneth E. Iverson, while he was a professor at Harvard, in the late 1950s, invented ("Iverson notation"), to facilitate succinctly describing certain mathematical propositions, and also to help teach mathematics (my view on this latter item, below). The notation came first; only later was the notation implemented as a computer programming language [APL], after Iverson came to IBM, in the early 1960s.
To say that APL is unlike any other programming language may be an understatement. No ordinary language words are used in APL -- not even the almost ubiquitous computer word: IF. APL even requires a special computer keyboard, since much of the syntax consists of Greek letters and specially invented characters. Back in the time before television-like video display monitors became the normal way for computers to communicate with users, in the days of printing ("TTY", i.e.: "teletype"...) computer terminals that looked like over-large IBM Selectric typewriters, one needed a special "type ball" to print the APL.... [Author's note: My experience with APL ended about 18 years ago; I hear that, since then, things have changed: persons no longer need to use special keyboards, and "word-size" syntactic elements have been introduced, even "IF..." constructs. I have no idea to what extent the original radiant purity of the language may have been compromised.]
APL's most obvious attribute is: succinctness. The APL community newsletter is (or at least used to be...): "QuoteQuad" (named after the APL print function[fn.24], which is a rectangle with a single quote mark at top center). Each issue contained a programming puzzle. In most computer programming languages, the challenge might be to solve the puzzle in the fewest lines of code. In APL, it is generally a given that the solution will be one line of code: The challenge is to solve the problem in the fewest characters!
The heart of APL is a set of powerful built-in functions, which can be combined by indefinitely "nesting" functions, as the result obtain
Maybe it's 30 years for UCSD Pascal, but the Pascal language itself was developed by Niklaus Wirth in 1970. I make that 34 years. UCSD was far from the first implementation.
It's hard to believe Dungeons and Dragons is a little older than Pascal.
-- juggling flaming chainsaws --
SCUD Pascal Rules!
Back in college (UCSD, graduated in 1981) I programmed in UCSD Pascal on Terak 8510 microcomputers. LSI-11 based, 56K RAM, 320x240 monochrome bitmapped display, 8-inch floppy drives. They were pretty cool for the time; even with everything running under the P-code interpreter, they didn't feel slow.
By writing a 16-bit address into a specific register and twiddling a few bits in another, you could cause any specified 9600-byte chunk of memory to be continuously displayed on the monitor, updated 60 times per second. You could see dark vertical stripes every 8 columns if the displayed data happens to be ASCII text.
The Pascal compiler used this to show the top of the stack and heap (which grew towards each other). If your program was too big to compile, you could actually watch the impending stack overflow as the two areas of furious activity got closer to each other; finally they'd collide and explode into an error message.
I once wrote a program that mapped an array to the screen, filled it with random numbers, and ran Quicksort on it. You could actually see the recursion. I did the same thing with bubblesort; you could watch the region of activity move down the screen repeatedly. I never tried Shell Sort.
Ah, those were the days.
My God, I feel so old... I remember when back in the '80s I read some USENET article devoted to the macho side of programming which made the bald and unvarnished statement: "Real Programmers write in Pascal." Now, twenty years later, I often hear: "Real Programmers write in Perl."
Maybe they do now in the 21st century, in this postmodern era of blogs, smartphones, and "user-friendly" software, but back in the Good Old Days, when the term "software" sounded funny and Real Computers were made out of drums and vacuum tubes, Real Programmers wrote in machine code. Not Perl. Not Pascal. Not, even, assembly language. Machine Code. Raw, unadorned, inscrutable hexadecimal numbers. Directly.
Lest a whole new generation of programmers grow up in ignorance of this glorious past, I feel duty-bound to describe, as best I can through the generation gap, how a Real Programmer wrote code. I'll call him Mel, because that was his name.
I first met Mel when I went to work for Royal McBee Computer Corp., a now-defunct subsidiary of the typewriter company. The firm manufactured the LGP-30, a small, cheap (by the standards of the day) drum-memory computer, and had just started to manufacture the RPC-4000, a much-improved, bigger, better, faster -- drum-memory computer. Cores cost too much, and weren't here to stay, anyway. (That's why you haven't heard of the company, or the computer.)
I had been hired to write a FORTRAN compiler for this new marvel and Mel was my guide to its wonders. Mel didn't approve of compilers. "If a program can't rewrite its own code," he asked, "what good is it?"
Mel had written, in hexadecimal, the most popular computer program the company owned. It ran on the LGP-30 and played blackjack with potential customers at computer shows. Its effect was always dramatic. The LGP-30 booth was packed at every show, and the IBM salesmen stood around talking to each other. Whether or not this actually sold computers was a question we never discussed.
Mel's job was to re-write the blackjack program for the RPC-4000. (Port? What does that mean?) The new computer had a one-plus-one addressing scheme, in which each machine instruction, in addition to the operation code and the address of the needed operand, had a second address that indicated where, on the revolving drum, the next instruction was located. In modern parlance, every single instruction was followed by a GOTO! Put that in Pascal's pipe and smoke it.
Mel loved the RPC-4000 because he could optimize his code: that is, locate instructions on the drum so that just as one finished its job, the next would be just arriving at the read head and available for immediate execution. There was a program to do that job, an "optimizing assembler," but Mel refused to use it. "You never know where it's going to put things," he explained, "so you'd have to use separate constants." It was a long time before I understood that remark.
Since Mel knew the numerical value of every operation code, and assigned his own drum addresses, every instruction he wrote could also be considered a numerical constant. He could pick up an earlier "add" instruction, say, and multiply by it, if it had the right numeric value. His code was not easy for someone else to modify.
I compared Mel's hand-optimized programs with the same code massaged by the optimizing assembler program, and Mel's always ran faster. That was because the "top-down" method of program design hadn't been invented yet, and Mel wouldn't have used it anyway. He wrote the innermost parts of his program loops first, so they would get first choice of the optimum address locations on the drum. The optimizing assembler wasn't smart enough to do it that way.
Mel never wrote time-delay loops, either, even when the balky Flexowriter required a delay between output characters to work right. He just located instructions on the drum so each successive one was just past the read head when it was needed; the drum had to execute an
I wrote my first computer programme in UCSD Pascal on punch cards for the compiler on a IBM 360 in 1982.
I came from the countryside and had never touched a computer before. At the time I found Pascal painful, full of grammatical overhead and confusing.
Later I learned C and other languages based on the C syntax.
Now I miss those Pascal days.
Long live C!
Teaching using C++ is a crime against humanity (and I say this as a professional C++ coders.) Java is only marginally better.
The cake is a pie
<ramble_on>
Anyhow, my 2 cents;
I did go to UCSD in Pascal's heyday (CS major, class of '83) and while I remember using Pascal in a couple of beginner's programming courses, on Apple ][, IIRC, I have never used Pascal for anything real. Very quickly, after the Pascal classes, we used C and even FORTRAN for real work.
Gad, I now I remember writting an ADA compiler, in C! (and using z80 assember to write a "pong" program to drive an oscilloscope display, oh the humanity!)
So, there you go, 20+ years later, my knowledge of C (and vi!) still serve me well on a daily basis, but I couldn't write "hello world" in Pascal if my life depended on it (well, if you pay my normal rate, I'll figure it out.)
</ramble_on>
This issue is a bit more complicated than you think.
ALICE Pascalwas the best computer language teaching tool of the day and the inspiration for IDEs that came after it. It would be brilliant if designed today - nevermind 20 years ago when it was developed.
The Wizard Book is still [one of?] the best introductory CS course[s] around. It's being used in Universities all around the world.
cpghost at Cordula's Web.
Pascal was defined in 1969, revised in 1972.
Ada is Pascals "child" so to speak. The sytax is pretty close. The more I use ada the more I like it although not without its quirks. Its not hard to pick up, and gcc will compile it.
Although calling Ada a success would be pushing it, it seems my companies large projects work best in ada, then c and c++ is always a disaster.
Ada lacks a lot of libraries that make java/ c so useful. But as someone pointed out (with a chuckle), you can bind Ada calls to C making it as powerful as C!
Eh?
Common Lisp programming is a pretty high-end market. Commercial Common Lisps sell for large sums of money to a number of large customers implementing really complex systems.
why the hell does Javascript STILL consider 010 to be an octal number?
I've been programming since the early 80s and NEVER needed octal.. why do languages like Java, Javascript STILL support octal.. octal!
I was using Pascal on the CDC6/7xxx machines well before 1974. Let's not rewrite history.
And in certain circles, Pascal is still the language of choice. Lots of people who hack out basic native-code Windows software prefer Borland's Delphi IDE to any alternative. One reason is the programming language, which is actually an object-oriented extension of Pascal.
I spent 3 years at Borland, documenting their component libraries, which are mostly written in Delphi. I came to appreciate its simplicity and power. My job required me to go back and forth between Delphi and C++ (the same libraries are used in Borland's C++ products) and it was an object lesson (forgive the pun) in how painfully baroque C++ has become.
It's a pity that Pascal/Delphi has so thoroughly lost the language wars. But it has. Even if C++ hadn't thoroughly taken over native-code programming, Borland's bizarre and insular corporate culture would keep from spreading beyond a few fierce loyalists.
...but it's a kneejerk anti-MS rant that has no place in this discussion.
If you do real things with Pascal, it is very difficult to do casting of variables to do data transmission and to read characters.
With Pascal you had to read keystrokes one at a time and translate numbers as there weren't common library routines that let you do these things.
Also Pascal didn't have real pointers. It didn't have a logical way to map variables to memory.
You couldn't just cast regions of memory to a pointer and then read them.
For this reason pascal was impossible to use for data jocking between ROM images and compiled binary object files.
The pascal didn't give you an image that you could understand like C does.
And if it did give those things, they were very obscure.
C gives you a clear view of memory.
When you declare a variable you know what you have as bytes.
Pascal just doesn't have that as part of the main idiom.
Obviously this was fifteen years ago that I am talking about.
I used Turbo Pascal and did some real things with it. (and I still have the code somewhere).
Then I learned C and never looked back.
As far as Delphi/ Borland Builder/Kylix go I have used those too. I did a lot of very cool things with these, but they are nothing like the Pascal that lost out to C and other languages.
Pascal was good for learning, but didn't cut it for system level programming.
Unfortunately, learning to program in Pascal is like learning to drive in a go-kart.
I learned how to drive playing Super Mario Kart, you insensitive clod!
As long as you have to extend Pascal to make it useful, why not extend BASIC to make it useful?
Which implementation of a good extended BASIC is Free? Mono's VB.NET compiler isn't out yet.
I started off with BASIC junior year in high school, then Turbo Pascal my senior year, did more Turbo Pascal freshman year in college, then a semester of Cobol, then everything was C until C++ in my senior year.. I dallied with Lisp, Prolog & Objective-C in grad school, then discovered Java.. strictly Java since '96 with a few months of Visual C++, C and Perl on a couple projects.. Not sure what language I'll learn next; I'm thinking Ruby could be interesting to learn..
http://www.embedded.com/98/9806pt.htm
Programmer's Toolbox by Jack W. Crenshaw
More on Interpreters
Last month, I gave you some history concerning a class of computers that popped up in the early '60s and thrived for a few short years. They were computers such as the Royal McBee LGP-30 and the North American Recomp II and Recomp III, among others. One of the key features of these computers was the interpretive languages that came with them. The native programming languages of such machines was so obscure and baroque that no vendor would dream of asking the end user to program in it. Instead, the manufacturers hid the horrors of the "real" computer behind an interpreter that presented a different interface to the user, one that appeared, for all practical purposes, to be the native programming language of the machine. The interpretive languages allowed us to use the computers as "personal" computers, which they were in the very real sense that only one person could use them at a time, and they were used interactively. As higher-order languages such as Fortran became more readily available, these "personal" computers faded away, and the batch-programming mentality took over. Though Professors John Kemeny and Thomas Kurtz of Dartmouth College were already working on a little interpretive language called BASIC, it depended on the availability of time-share systems and would not be readily available to the general public until much later.
This month, I want to tell you one more story about an older computer. Then we'll move on to some more interesting developments in the world of microcomputers. Understand, I am making no attempt here to write a history of early computers; that would take a lot more research than I'm able to do. Instead, what you're getting is history as it happened to me. The stories I'm telling have a shamelessly personal perspective, and I don't apologize for that.
You can expect this trend to continue as I tell you about my own exposure to interpreters, and how they've affected my work. My story will be mostly chronological, but based on my own personal chronology, not that of the rest of the computing world. I suppose I might be prejudiced on this score, but I think the story is more interesting when told from such a perspective. The downside of this approach is that the history is necessarily slanted. You won't hear about computers I never saw or heard of, or languages that might have been wildly successful, but that no one told me about. However, in the interest of a broader coverage, if any readers here want to add their own unique perspectives and recollections of those early days, I'll be happy to add them to the tale.
A real programmer
In the spirit of reader contributions, I offer the following gem, apparently posted originally to Usenet by Ed Nather in 1983, and forwarded to me by Robert H. Morrison.
"A recent article devoted to the macho side of programming made the bald and unvarnished statement: 'Real Programmers write in FORTRAN.' Maybe they do now, in this decadent era of Lite beer, hand calculators, and 'user-friendly' software, but back in the Good Old Days, when the term 'software' sounded funny and Real Computers were made out of drums and vacuum tubes, Real Programmers wrote in machine code. Not FORTRAN. Not RATFOR. Not even assembly language. Machine Code. Raw, unadorned, inscrutable hexadecimal numbers. Directly.
"Lest a whole new generation of programmers grow up in ignorance of this glorious past, I feel duty-bound to describe, as best I can through the generation gap, how a Real Programmer wrote code. I'll call him Mel, because that was his name.
"I first met Mel when I went to work for Royal McBee Computer Corp., a now-defunct subsidiary of the typewriter company. The firm manufactured the LGP-30, a small, cheap (by the standards of the day) drum-memory computer, and had just started to manufacture the RPC-4000, a much-improved, bigger, better, faster drum-memory computer. Cores cost
One problem with the UCSD p-system approach was that many platforms' p-code interpreters ran on top of the bare hardware instead of on top of the operating system, limiting the language's interoperability and multitasking capability. Another was that unlike a modern JIT recompiling virtual machine, p-code interpreters tended to run noticeably slower than natively compiled code.
You moron, can't you understand that this story evolves? That it is hacked, like the author intended? This story is available everywhere on the internet. Did Eric Raymond also steal it in your opinion? How can the poster have even stolen it? Because he signed it as "Anonymous Coward"? Don't be ridiculous! Besides, have you even read the commentary to this story in the jargon file? In my opinion the granparent post is brilliant because this AC managed to adapt it perfectly to our times, making it still relevant, while doing only minimal changes. Do you think that talking about "in this decadent era of hand calculators" would be understood by young people today better than "in this era of blogs and smartphones"? If so, then you are a moron. In my opinion this story should evolve. I think the original poster was truly brilliant. And should be modded as +5, Insightful. I wouldn't say it if it was posted by a logged-in user who claimed to be the author of this text, but it was posted anonymously, no one knows who posted it, yet everyone can find it easily using google like you did. In my opinion the legend of Mel is still alive, thanks to the original poster.
Does anyone actually have an online "readable" copy of that poster?
Well, it already had a virtual machine (like the Java JVM), the P-machine back in the early 1980s. PASCAL is very readable, and Wirth's booklet on compiler construction is still a great introduction to compilers, which contains the very short and readable source code of a simple compiler.
However the editor sucked as much as vi, as you had to press 'i' for insert. Thanks to Emacs, pico and fellows.
For those lamenting FORTRAN posters: There was a system around called Oxford PASCAL for the Commodore C64, which actually was an interpreter, probably the only PASCAL with line numbers...
--
Try Nuggets , the mobile search engine. We answer your questions via SMS, across the UK.
I remember I was tearing my hair out during one school project written in Pascal. I accidentally put a semi-colon between the loop and the begin-end pair. It resulted in the loop body only executing once and I was going crackers trying to figure out why. Evually I asked a lab assistent, and I shrank to about 5 inches tall when he pointed out the extra semicolon.
I have since fought to bannish semi-colon-based languages from the face of the earth. That was not the only problem I've had with semi's. Semicolons are nasty in my book. But, I guess I have to get used to them, for the persist in Java, JavaScript, c#, Php, and others.
Table-ized A.I.
No, they pretty much try to get everyone.
The way I learned the trade:
First Turbo Pascal,
then x86 asm
then C
then C++
then SML
then bash
then Fortran
then Perl
then Scheme
then Haskell
then PA-RISC/UltraSPARC/Power2/Alpha asm
Today I'm ~85% C++, 10% C, and 5% asm(weird archs), Haskell, ML, Perl, bash, etc.
Pascal: Thanks for the good years - and good riddance.
Ciao
/. introduces itself to YOU!
Hey, You can still use (as i do) Free Pascal for software development on even PalmOS, not to mention all the major stuff around. And easily port around anything. Except for windows - there the dummies are dominant with visual basic and other crap.
:)
I am sure that using VHDL for designing CPU/DSP hardware, then FreePascal to simulate and debug, and to write cpu/dsp specific assembler, then coding the bridge to assemble from free pascal programs to that cpu, is the easiest and most efficient way i could work.
As well as just for a PC - use can use Asm+Pascal very efficiently for high performance software. However who cares about performance nowdays?
Pascal is version 1 of Modula.
Also,
Java machine is to p-code
like
the (original) Mac is a poor copy of Lilith.
Thanks
I am using Object pascal every day. (Delphi and Free Pascal). But there is still development done on Pascal compilers... take a looke at Chrome http://www.chromesville.com/ . That is a brand now .NET language based on Pacal that has some REALLY nice features...
...was the lack of precedence on boolean operators; and, or, etc, which meant that poor students had to drown their expressions in brackets to the point of absurdity, which they took with them to C*. Whenever I find myself doing this, I say 'F*ng Pascal.'
You should probably not be posting these logged in, if you want to preserve your karma -- since you said you are new here.
:-)
If you do, you're likely to get modded down - and once your Karma goes below zero, it reaches bad-status all your comments will have a score of 0 by default, rather than the existing 1. So far, it looks like you've a vaguely positive karma (+4 moderations, -3 moderations). That's walking the thin line, IMHO
Just talk useful stuff and ignore most of the offtopic threads and you'll be fine!
Cheers & welcome to Slashdot.
Every programming language can be described with two lists: Ways It Makes Life Easier, and Ways It Makes Life Harder. These lists change, of course, with the actual project at hand, but generally the best project is one where both lists are about the same size.
For example, for general programming, writing in Assembly makes life EASIER because you don't have to worry so much about how the compiler is going to mangle your code, and it makes life HARDER in a whole lot of different ways. However, if you're writing on a machine that doesn't HAVE a compiler, for whatever reason, then suddenly the HARDER list for every other language suddenly gets a lot longer (generally starting with: need to write a compiler).
My point is that while Pascal brought a lot of useful points to programming, such as the emphasis on structure, it could also be TOO structured, to the point where the language started getting in the way of getting something done. Of course, Pascal isn't usable, there have been a TON of large projects done using Pascal, but in my opinion, I think that other langauges are a better balanced for most programming purposes.
were written, primarily, in Apple Pascal on an Apple ][. At the time, Pascal was the only resource available that easily implemented a number of traits essential for building large programs on the tiny (48K!) machines of that era: p-code compiler to conserve space, built-in dynamic segmentation of program code; and a responsible and reliable compiler.
>> "I've also read that BASIC is really just a derivative of Pascal and VB even more so."
Elves live in your closet
There, you just read that. It isn't true, either.
-- Slashdot: When Public Access TV Says "No"
I have found that for most if not all students perl is far superior to Pascal. So superior that I stopped teaching pascal all together unless I have to do it (nobody else will and I drew the short straw). I also have my students implement functions in C and call them from perl. Pascal should go the way of snobol, algol, and a few other languages most of you have never heard of. Same with BSD Unix, kill it... SYS V compatibility Forever!
That may have been a processor limitation rather than a language one. I know the 16 bit x86 processors had 64k segments.
Best Slashdot Co
thanks, i'll try :)
President Bush Supporter
"there have been a TON of large projects done using Pascal"
And everyone knows that it takes a *lot* of source code to make a ton of it.
perception is reality
Beware of the "Senior Programmer" that thinks Hash, Bubble, and Binary doesn't mean sort methods, but Food, Toys, SG-1.
...kicked the bucket in 2002 IIRC.
I am NaN
This is a very small excerpt of an interview I did with Zack Urlocker, Delphi's first product manager and one of the desinger of the product. The interview appeared in the February 97 issues of the UK magazine Developers Review and (translated in Italian) in the Italian magazine Computer Programming.
Asked about the development of Delphi, Zack told me that:
"Delphi is really the product I'm most proud of in my career. It was a tremendous amount of fun to create Delphi. We had a small group of 4 people, most of whom are still at Borland, who were at the core of version 1.0. We developed a prototype in the first 3 or more months, and sometimes, for a laugh we bring that out to see how it compares to Delphi today..."
"In fact, the Delphi's VCL component model is really the basis of Java's JavaBean component model. Sun came to us early on in the history of Java and said they wanted to have the same RAD development of Delphi available for Java. Borland helped Sun develop the JavaBeans component model and rather than keep it as a proprietary standard, we made it open to the entire industry. So I think Delphi has earned its place as a good footnote in the history of programming."
The entire interview covers the status (and the future) of Borland, the history of Windows programmin tools (including the excerpt above), but also Java and Internet programming...
I didn't do a count, but there were a ton of folks for both the reunion talks and for the dinner event afterwards.
Highlights:
* Ken Bowles' talk about his five careers. Before his UCSD days, he was one of the builders of the Jicamarca Radar Observatory.
* Bud Tribble (VP, Apple) talking about how UCSD Pascal (AKA Apple Pascal) influenced the Lisa and the Macintosh. Apple was extremely generous and presented KB with a shiny new iMac.
* Mark Overgaard discussing one of the truly terrible product names of the era. UCSD P-System, indeed!
* The chancellor of UCSD (Mary Anne Fox), the dean of engineering (Frieder Seible), and the chair of the CS department (Ramomohan Paturi) praising Bowles and the project.
* Seeing almost all of my old project buddies make it back to campus. We also looked back at the social aspects of the project, including pictures that seemed to involve a lot more hair. (A combination of biology and the 70's. Shudder.)
* A demonstration of a running UCSD Pascal system on my XP notebook. (Thanks John Fouts!)
There are a lot of artifacts from the day, including video (to be broadcast on UCSD-TV and available via webcast), as well as powerpoint. When I know the URLs for all this stuff, I'll post them here. John tells me he would also like to have them on his UCSD Pascal museum (http://www.threedee.com/jcm/psystem/index.html).
Cheers,
Richard Kaufmann (author of the UCSD Pascal screen editor)
Why can't i attempt to have Turbo C++ 3.01 Professional?
Why can't i buy the unexistent Turbo C++ 3.01 Professional from Borland?
open4free ©
Windows API programming has been classically approached by object inheritance -- you have a base class that implements the "under the hood" stuff to do a form or a widget, and you extend that class for your customized widget or form.
Borland has something called the Type Library Editor, found in both Delphi and C++ Builder. The Type Library Editor is how you can make changes to a COM interface. It keeps an IDL file describing a COM interface up to date with a Delphi/C++ Bui;lder wrapper class. The beauty of this arrangement is that, yes, you can use the code wizard to initially generate the wrapper class, but you can go in and play around with the interface methods and signatures and edit stuff and things will keep in synch. COM/ActiveX programming has been approached with "code wizards." Yes, there is code wizard stuff in the Windows API programming, but Borland is famous for the VCL class library that does most of the heavy lifting using object inheritance while Visual Studio is somewhat code wizard oriented.
The reason why everyone reverts to code wizards with COM is that COM is based on exposing a virtual method table (VMT) to the outside world and is fussy about order and signature of the methods in that VMT. You end up needing a wrapper class with the correct VMT to forward all your calls to the actual object, implemented by inheriting from a base object, that does all the work. On account of all of the baggage in COM and ActiveX, that wrapper class is wordy, and the only way people know how to generate it is with a code wizard.
In the MFC/ATL world, you have the code wizard to generate the interface, the IDL, and the wrapper class, but if I want to edit anything, I am stuck. Yeah, yeah, COM interfaces are supposed to immutable, but sometimes you want to move things around in the initial development phase before your COM interfaces are published to the outside world and set in stone. I am at a loss as to how to change a method signature or remove a method from a COM object -- it seems there are about 5 different files you have to edit by hand. The only way I can think of is to scrap the project file and start over.
While the Borland Type Library editor is not perfect and I had about a year's worth of learning curve to get it to do everything I want (or find out what is not possible), I am utterly dependent on its features for doing COM/ActiveX development. I have done some toy COM and ActiveX objects using VC++, but I am really stuck figuring out how to edit COM interfaces and I wonder how anyone is able to use VC++ (i.e. the MFC/ATL wizards) to do COM without going mad.