Home
Feedback
FAQ
Getting Started
Discussions
Site operation discussions
Recent Posts
(new topic)
Departments
Courses
Research Papers
Design Docs
Quotations
Genealogical Diagrams
Archives
Computerworld is undertaking a series of investigations into the most widely-used programming languages.
That's the first time I saw "Ada" and "most widely used" in the same sentence...
"Don't believe anyone who says that we have reached the end of the evolution of programming languages."
Aho says: "One of the things that I would have done differently is instituting rigorous testing as we started to develop the language. We initially created AWK as a 'throw-away' language, so we didn't do rigorous quality control as part of our initial implementation." Interestingly, one of the nice things about Ada is the existence of ACATS. Note that simply having tests in the compiler code implies a single implementation, whereas the Ada approach is not only a way to test the compiler, but also a way of ensuring conformity of compilers to the language standard.
Ada is not alone in doing this. Dylan and Perl 6 are another examples. Though, Ada might be the first one.
Of course. I didn't mean to imply it was the only one. But I think it was the first widely used language to have such an extensive test suit, as far as I know. While not a replacement for formal semantics, I think given the period in which the language was developed, and the complexity of the semantics, this was the important and highly commendable.
Forth added to the list.
One of the founding esoteric languages.
Intercal one o f themost widely-used programming languages? I think not.
...esoteric languages...
(For differing definitions of 'used' and 'widely' and 'most'). :-)
(Allowing for a comic break, I do think the author of INTERCAL lost some of his humor along the way). :-(
I guess they had to stop somewhere, and the first History of Programming Languages conference already covered them extensively (the proceedings are among the most fascinating and amusing things I ever read about programming languages).
Wonder if we lose some of the feel for grammers/parsers because we no longer do them on paper by hand. :-)
anybody know what the different designs were for OO in Ada? what was Ichbiah's design?
I'd have preferred that Modula-3 had become the default systems language, but history was not kind to DEC.
Of course, the pretense of "widely used" can be questioned for this series... But anything that draws Luca Cardelli out should be commended. :-)
I liked Modula-3 a lot, and it inadvertently got me into functional programming... Most universities that taught it also taught ML, so I had to check that out.
ML was a revelation. I was instantly hooked, though it took about a year and a half to really get competent with a whole new paradigm.
Best quote from the article: "A language that is not under development is a language that is not being used."
The longest article in the series so far. I especially like the following Q/A:
Were there any particularly hard/annoying problems you had to overcome in the development of the language? Yes, mainly the incredibly short development cycle to prove the concept, after which the language design was frozen by necessity. I spent about ten days in May 1995 developing the interpreter, including the built-in objects except for the Date class (Ken Smith of Netscape helped write that by translating Java's java.util.Date class to C, unintentionally inheriting java.util.Date's Y2K bugs in the process!) I spent the rest of 1995 embedding this engine in the Netscape browser and creating what has become known as the "DOM" (Document Object Model), specifically the "DOM level 0": APIs from JS to control windows, documents, forms, links, images, etc., and to respond to events and run code from timers. I was the lone JS developer at Netscape until mid-1996.
Were there any particularly hard/annoying problems you had to overcome in the development of the language?
Yes, mainly the incredibly short development cycle to prove the concept, after which the language design was frozen by necessity. I spent about ten days in May 1995 developing the interpreter, including the built-in objects except for the Date class (Ken Smith of Netscape helped write that by translating Java's java.util.Date class to C, unintentionally inheriting java.util.Date's Y2K bugs in the process!)
I spent the rest of 1995 embedding this engine in the Netscape browser and creating what has become known as the "DOM" (Document Object Model), specifically the "DOM level 0": APIs from JS to control windows, documents, forms, links, images, etc., and to respond to events and run code from timers.
I was the lone JS developer at Netscape until mid-1996.
One aspect about Lua that differs from most other languages is that it was designed to be an embedded scripting language. This meant that the language has pressure to stay relatively small, but with the benefit that you could shift into another programming language if you needed to do something beyond the confines of Lua. In this respect, Lua has had a different evolutionary path than almost any other PL.
...we have had the luxury of avoiding hard/annoying problems. That is, there have been many problems along the way, but we never had to overcome them; we have always had the option to postpone a solution.
Seems to be the longest interview yet: <http://ComputerWorld.Com.Au/index.php/id;1974033854>.
Anders identifies the three big trends: (a) declarative programming; (b) dynamic programming; and (c) concurrency. Linq and other additions are C# 3.0's answer to the first. Hints that C# 4.0 will include changes for more dynamic programming. But no reference on how C# will attempt to tackle concurrency.
If I had to name the 3 big trends that are going on in the industry that we take an interest in and get inspiration from, I would say the first is a move towards more declarative styles of programming, and you can sort of see LINQ as an example of that. All the talk we have about domain specific languages, that’s one form of declarative programming, and functional programming is another style of declarative programming. I think those are going to be quite important going forward and are certainly areas that we will invest in, in C#. Dynamic programming is seeing a big resurgence these days, if you look at phenomena like Ruby and Ruby on Rails, these are all of a sudden very popular, and there are certain things you can do with dynamic programming languages that it would be great to also have in more classical languages like C#. So that’s something we’re also looking at. Lastly, I would say that concurrency is the big thing that you can’t ignore these days because the mechanics of Moore’s law are such that it is no longer feasible to build more powerful processors. We can’t make them faster anymore because we can’t get rid of the heat, and so now all the acreage on the chips is being used to make more processors and all of a sudden it’s almost impossible to get a machine that doesn’t have multiple CPUs.
If I had to name the 3 big trends that are going on in the industry that we take an interest in and get inspiration from, I would say the first is a move towards more declarative styles of programming, and you can sort of see LINQ as an example of that. All the talk we have about domain specific languages, that’s one form of declarative programming, and functional programming is another style of declarative programming. I think those are going to be quite important going forward and are certainly areas that we will invest in, in C#.
Dynamic programming is seeing a big resurgence these days, if you look at phenomena like Ruby and Ruby on Rails, these are all of a sudden very popular, and there are certain things you can do with dynamic programming languages that it would be great to also have in more classical languages like C#. So that’s something we’re also looking at.
Lastly, I would say that concurrency is the big thing that you can’t ignore these days because the mechanics of Moore’s law are such that it is no longer feasible to build more powerful processors. We can’t make them faster anymore because we can’t get rid of the heat, and so now all the acreage on the chips is being used to make more processors and all of a sudden it’s almost impossible to get a machine that doesn’t have multiple CPUs.
Been a while between articles and it's good to see Naomi crank out another interview. I can't say that I buy into the ethos of Perl, but the Perl community does have a lot of quality programmers and produces interesting results.
While I'm touching on Perl, I would also note that Mark Jason Dominus has made his book Higher Order Perl available for download on his website. Probably deserves to be put on the front page, but I don't have time to work my way through the book. A quick trundle through the book made me think that he was influenced by SICP (which would be a good thing).
I proudly acknowledge a tremendous debt to SICP. As I said in the preface:
This book was directly inspired by two earlier books: ML for the Working Programmer, by Lawrence Paulson, and Structure and Interpretation of Computer Programs, by Harold Abelson and Gerald Jay Sussman.
Microsoft researcher Don Syme talks about the development of F#, its simplicity when solving complex tasks, the thriving F# community and the future ahead for this fuctional programming language.
The A-Z of Programming Languages: Bourne shell, or sh
The A-Z of Programming Languages: Falcon. Was thinking that the author of Falcon is on LtU, but I could be misremembering? A language that's still somewhat early in development, it's interesting to see things when they are a work-in-process (not that the work on any PL is ever really complete).
Along a similar line, I see that O'Reilly just published Masterminds of Programming Languages: Conversations with the Creators of Major Programming Languages. (Can't help but think that LtU has made the PL people into rockstars). Of the listed languages/people, I'm looking forward to the Milner section the most. But we shall see if the book form is more in depth than Naomi's series.
Somebody should review this book for LtU!
Series has been taken over by Kathryn Edwards. Nice to see ComputerWorld Australia keep it moving forward.
Scala
Been busy and in lurker mode, so it's been a while since I've posted on LtU. The list of articles has been updated.
Brad Cox doesn't seem to have much respect for PLs:
Using programming languages is like mud brick architecture. The future of mud brick architecture isn’t better mud mixers (programming language). It is moving to real bricks, i.e. tested, certified, trusted components.
It's a reasonable analogy, except that the mud in this case is used to make the bricks.
Mud can also be used to bind the bricks together (ah...not a great solution though).
Analogies are mostly useless.
Recent comments
22 weeks 6 days ago
22 weeks 6 days ago
22 weeks 6 days ago
45 weeks 19 hours ago
49 weeks 2 days ago
50 weeks 6 days ago
50 weeks 6 days ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago