Re:Concepts in Programming Languages
by shaunxcode on Tuesday December 27, 2011 @01:32PM
(#3396743)
I like the cut of your jib, however: I believe APL actually exposes you to an even higher(est) order of abstraction which makes you truly confront the meat of the problem space/algorithm v.s. allowing for a few sessions of syntax abstraction before you get down to business. Believe me I LOVE lisp, but I also recognize that many times I enjoy it because it allows me to create these amazingly succinct domain specific languages before ever "getting to work". When I attempt to write/think something in APL I find myself actually just pondering the problem. It was the language in which I realized math was my true (and neglected) love.
Re:Concepts in Programming Languages
by LearnYouALisp on Tuesday December 27, 2011 @04:20PM
(#3397476)
Thank you for explaining the conceptual framework APL provides. My comment was merely poking a little fun at the kind of comments we sometimes see when people are trying to the tell the virtues of Lisp. I could not say much about APL but did want to find out if it really gives you a new way of thinking.
Re:Concepts in Programming Languages
by RodgerTheGreat on Monday December 26, 2011 @08:05PM
(#3394402)
I think if you're looking for a replacement for SICP that covers a broad spectrum of language paradigms, (in particular paradigms beyond just imperative vs. functional) a good choice might be Concepts, Techniques and Models of Computer Programming, which uses the Oz programming language.
Re:Concepts in Programming Languages
by extension on Monday December 26, 2011 @07:34PM
(#3394336)
Might be a bit ambitious covering Fortran, Lisp, C, Smalltalk, Scala, and more in an intro to programming course. This looks more like a history and comparison of languages.
Re:Concepts in Programming Languages
by dpkendal on Monday December 26, 2011 @07:44PM
(#3394355)
To an extent, you're right. But SICP already covers most of the concepts of these languages -- it just chooses to cover them all in Scheme, with a functional bias. I don't see why differing syntax should affect the teaching of the concepts, as long as focus is maintained on one language when it comes to actual programming. That said, this course as it is does teach too broadly to be an effective intro to CS.
Re:Concepts in Programming Languages
by motxilo on Tuesday December 27, 2011 @04:26AM
(#3395256)
It is not just a difference in syntax, it is about the core. While all those programming languages are great in their respective areas, Scheme is directly based on the lambda calculus and as such it defines a minimal amount of primitives/constructions, on top of which you can build almost any other concept from scratch. This is great for a person learning the ropes.
I sadly lost the book when I moved but I remember loving both the book and the course and learning a ton thanks to seeing a number of different language types side by side. I have fond memories of trying to wrap my mind around Prolog the first time I saw it.
Re:Concepts in Programming Languages
by oacgnol on Tuesday December 27, 2011 @12:49AM
(#3394950)
Perhaps it's not Scala but the paradigms that define it that are "state of the art". Multiple paradigms like functional programming, OOP, and other nice syntactical things make Scala very much a language of the future, even if its current implementation is poor. It's a marker to where we may be headed in language development.
It seems to steer away from PL details and focus more on how to design programs and think about programming.
I'll add Robert Kowalski's "Predicate Logic as Programming Language" to the reading list.
http://uk.youtube.com/watch?v=a9xAKttWgP4&fmt=18
Also: http://archive.vector.org.uk/art10500180 - great article on array languages for lisp programmers.
I sadly lost the book when I moved but I remember loving both the book and the course and learning a ton thanks to seeing a number of different language types side by side. I have fond memories of trying to wrap my mind around Prolog the first time I saw it.
http://www.paulgraham.com/vanlfsp.html