http://www.perlmonks.org?node_id=106109

Over the next few weeks I would like to try and track down and read a few interesting viewpoints on programming. So I am trying to compile a list of things that I should be interested. I don't care if they are Perl specific, in fact if anything I might prefer if they are not. For instance I was interested by the following set of notes on one programmer's opinions about language design trade-offs even though Perl was not one of the langauges discussed.

And likewise, even though I don't agree with several of his premises or conclusions, I found Richard Gabriel's Mob Software article fun and educational.

So does anybody have more to recommend?

Replies are listed 'Best First'.
Re: Any interesting philosophy of programming articles to recommend?
by Maclir (Curate) on Aug 20, 2001 at 06:14 UTC
    There was an article I read about a year ago - maybe more - called the "Programmers stone". I did a google search and came up with this:

    http://www.reciprocality.org/Reciprocality/index.html

    Now, whether this fits your requirement, I am not sure. I know when I originally read it, I though it was thought provoking.

Re: Any interesting philosophy of programming articles to recommend?
by kapper (Chaplain) on Aug 20, 2001 at 11:13 UTC

    The following article, got me to seriously rethink my opinion of literate programming.

    Article

    Anybody who has not totally dismissed the idea of literate programming, but just the tools that exist today could get a lot out of reading this article.

    Warning: the article is kind of a dry read, but i find it to be worth the effort.

Re: Any interesting philosophy of programming articles to recommend?
by Zaxo (Archbishop) on Aug 20, 2001 at 13:41 UTC

    I'm not converted, but the Extreme Programming site has lots of links to interesting notions. Their methodology would seem to be well-supported by the standard Perl/CPAN use of Test::Harness.

    After Compline,
    Zaxo

Re: Any interesting philosophy of programming articles to recommend?
by clemburg (Curate) on Aug 20, 2001 at 16:36 UTC

    Some items off the cuff:

    • Design Patterns in Dynamic Programming - a presentation by Peter Norvig on how Design Patterns are a way for OO languages to cope with missing abstraction capabilities
    • Alistair Cockburn's papers on methodology
    • I don't know if you have access to this, but in the ACM digital library there are all the articles of Jon Bentley's famous "Programming Pearls" column, including the (out of print and therefore "lost") articles that are collected in "More Programming Pearls". Old, but still worth reading to me.

    Update: There is a new book out that should be very interesting reading: "Software Fundamentals. Collected Papers by David L. Parnas". A recommendation in the ACM journal compared it to "The Mythical Man Month" in terms of importance.

    Christian Lemburg
    Brainbench MVP for Perl
    http://www.brainbench.com

      Judging from the first two, I will enjoy Alistair Cockburn's papers. It will take me a while to get through that. :-)

      I should also note that on my home node there are quite a few random links. People who are looking through the various links in this thread might also like to follow some of them.

      And a random exercise for the brave that just came up in chatter. Keep a log of bugs you discover in your own code, with notes about what you think caused the bug. Review that log periodically. If you feel truly brave, have someone you respect review said log with you. Excellent, if painful, way to learn what you personally need work on.

Re: Any interesting philosophy of programming articles to recommend?
by jryan (Vicar) on Aug 20, 2001 at 07:36 UTC

    I'm not sure if this is exactly what you are looking for, but here is a great article about how to prevent internet game hacking. Its one of the better ones I've read on the subject, and it clearly lays out just what exactly developers are up against and suggests several solutions to fight back. Its a good read, especially if you are into gaming at all.

Re: Any interesting philosophy of programming articles to recommend?
by mattr (Curate) on Aug 20, 2001 at 18:32 UTC
    Here is a topic to help you get out of the box, maybe something will click for you. You may already know about visual programming languages such as ToonTalk and Pictorial Janus. A short and fascinating article about these two programming systems called "Drawings on napkins, video game animation, and other ways to program computers" is available on ToonTalk's Papers page in Word and Postscript, and an interesting essay there about concurrency, describing how Toontalk eliminates deadlocks and beats the pants off of Java at threads, due to its lightweight model based on a universe which follows physical rules.

    Some neat movies of PJ are also available. I realize this is probably not what you seek, but please note that Perl plays to our linguistic talents, while some people are better at spatial reasoning than at thinking in words. It is also evident from the above essay on concurrency that it is possible to build a system which by its architecture resolves whole genres of headsplitting problems. And Perl newbies may pick up the English-sounding commands relatively easily but might prefer explaining a complex datastructure with a pen and paper instead of dealing with all the brackets, parentheses, and diacritical marks you need to build and access them in Perl.

    I think there are similar fault lines in thinking inside real-world software projects as well, not just in terms of technical expertise either. As the Mob Software article suggests, the pressures they generate lead organizations to latch onto fashionable methodologies.. perhaps you will find a solution?..

    Update: The following post didn't show up on the page
    There's also Max from Opcode Systems. I've played with it (a visual programming tool that lets you do anything with midi and serial cables), a friend was able to turn seismographic live from California into body-shaking sonics at a Tokyo art museum. The interface (which animates as it runs, and can be pulled and tweaked on the fly) is very good for technical artists.

      It will take me time to get to trying to understand how they work. But another alternate computing model that I found very interesting was Flow-Based Programming. Toontalk's model sounds somewhat similar, though with more complex interactions available.
        I once dabbled in a bit of Flow-based programming to develop a visual 'pipe' program in Java, to the point where the basics worked including plug-ins, visual editing, etc. However, I believe others have superceded my work with actual released projects :-)

        But I'm curiously interested in developing something similar in perl with some sort of GUI. The back-end really isn't that hard, and with typelessness of perl, data transfer's a lot easier to handle. The fun, of course, comes when it's time to set up all the intra-process pipes and threads. Ugh. :-)

        But to come down to the point, there's several different ways to think of flow-based programming. The one that seems to be most popular is that as used with Macromedia's products, where you have a flow-chart, and user-interactions determine which way you go down it. In this case, this is much less like flow-based programming than procedural programming with events. On the other hand, something where data flow is unaided by the user save to initiate it, whether part of a gui or not, is more interesting to think about.

        -----------------------------------------------------
        Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain

Re: Any interesting philosophy of programming articles to recommend?
by stefp (Vicar) on Aug 20, 2001 at 13:26 UTC
    For historical interest. the first book I cam across. The interesting thing was that the translator heavily annotated the books so his opinion completed the one of the original author. I don't know if there is more up to date editions:

    Proverbes de programmation. 1975. Trad. et annotations par J. Arsac de Programming proverbs. de H. Ledgard Paris : Bordas, 1978.

    added name of the original author

    -- stefp

Re: Any interesting philosophy of programming articles to recommend?
by MZSanford (Curate) on Aug 20, 2001 at 16:44 UTC
    Perhaps the wisdom you seek can be found in The Tao of Programming ?
    always more than one way to skin an amoebae
    -- MZSanford
Re: Any interesting philosophy of programming articles to recommend?
by dws (Chancellor) on Aug 21, 2001 at 03:36 UTC
    One "new" viewpoint that's been around for a few years, but is just now gaining traction, is Aspect-Oriented Programming.

    Sayeth the FAQ:

    An aspect-oriented language is a programming language that provides constructs for capturing units that crosscut the system modularity in a principled way. These units are called aspects, and are a new unit of software modularity that encapsulate crosscutting concerns.
    Some good stop-and-think material.

      After reading a case study, I have to admit that they did something new to me. I would have to see a few more examples and let it sit to see how I could use it, but that is just how I learn.

      I was vaguely reminded of how Coroutines in C managed to get C to act like it had coroutines, which it manifestly does not, by rewriting the C in a clever automated way. I don't think that is very close to what the AOP people are doing, but it was what came to mind for me. (BTW I got that link from japhy a while ago.)

Re: Any interesting philosophy of programming articles to recommend?
by toma (Vicar) on Aug 21, 2001 at 05:10 UTC
    I really like the book "AntiPatterns in Project Management" by William J. Brown, Hays W. "Skip" McCormick III, and Scott W. Thomas.

    The book is entertaining and the situations the book describes ring true. There is much programming philosophy in the book, with topics such as constructing demos, prototypes, problems with legacy code, etc.

    Antipatterns are fun to read about and they address the real-world issues that harm your code and development processes.

    The book is light reading, perhaps aimed mostly at managers. There are other books on antipatterns, also.

    It should work perfectly the first time! - toma

Re: Any interesting philosophy of programming articles to recommend?
by grinder (Bishop) on Aug 27, 2001 at 14:37 UTC
Re: Any interesting philosophy of programming articles to recommend?
by hsmyers (Canon) on Aug 20, 2001 at 17:52 UTC
    Any/all of the articles by Donald Norman, Jakob Nielsen. Not an article, but re-reading Software Tools is usually cause for reflection.

    hsm

Re: Any interesting philosophy of programming articles to recommend?
by t0mas (Priest) on Aug 21, 2001 at 10:27 UTC
Re: Any interesting philosophy of programming articles to recommend?
by stefp (Vicar) on Aug 21, 2001 at 16:53 UTC
Re: Any interesting philosophy of programming articles to recommend?
by mattr (Curate) on Aug 21, 2001 at 12:05 UTC
    A few more links, though if I have tread the trail already in your page forgive me - it is hard to chase my trail back to the beginning. I also recommend reading Marvin Minsky's online papers because he realizes that social issues have a heck of a lot to do with the programming job that is building Artificial Intelligence. I just read his Introduction to Logoworks again which you might like.

    Also Ken Ficara has a page with links to some related books.