May 12th, 2007
Here’s another interesting article from Joel Spolsky of Fog Creek Software. This one’s entitled “Can your language do this?” and is about the importance of functional programming, giving the opportunity for abstraction and tighter, more adaptable code. It first appeared in the summer of 2006. Can Your Programming Language Do This? - Joel on Software
Posted in Before you start | No Comments »
May 1st, 2007
The Financial Times also had a look at the implications of the rewritten GNU General Public License recently. On March 30th an article by Richard Waters addressed the repercussions of the revised agreement in terms of consumer electronics. If the new agreement is adopted consumers could open up their appliances and add new and improved features themselves. The article is entitled GPL Sparks Openness Debate In Tech Sector. FT.com / Services & tools / SearchFT.com / Services & tools / Search
Posted in Liscencing | No Comments »
May 1st, 2007
On 28th March 2007 the Free Software Federation released the 3rd discussion draft of version 3 of the GNU General Public License, the most used free software license.
According to the FSF it incorporates feedback from the public as well as from its own committees and international conferences. There are quite a few changes to the previous draft which appeared in July 2006 and apparently there is to be one further draft before the final text appears.
Richard Stallman, president of the FSF, has commented that the recent patent agreement between Microsoft and Novell attempts to undermine the FSF philosophy, namely that you can run any programme issued under a GPL as you like and study and adapt it as well as redistribute the amended version as you wish. The new draft of the GPL adds patent requirements designed to avoid distributors and patent holders getting together to allow protection from patents.
The draft also simplifies license compatibility terms and offers users who violate the license agreement an opportunity to have license rights restored if they remedy the situation within 30 days. Interestingly, it also includes a requirement that manufacturers include installation instructions for software included with consumer products.
The April 15th issue of SD Times has an article by Alex Handy which looks at the patent issues in more depth. You can read it here. SD Times - Sweeping GPL Rewrite Takes on Patent Issues
Posted in Copyright | No Comments »
April 10th, 2007
There’s an article from April 1st 2007 by Alex Handy in SD Times which looks at the legal implications of using open source software and the perceived necessity on the part of some organisations to incorporate legal advice into the software development process when using open source tools. Are there grey areas when developers of proprietary software incorporate open source building blocks into their work? SD Times - Enterprises Deal With Open Source Legalities
Posted in Copyright | No Comments »
April 10th, 2007
Here’s a quick run through the three new programming languages currently being worked on with a view to increasing the speed of processing instructions and therefore improving productivity in software development projects.
The first is a draft specification called Fortress which is being developed by Sun Microsystems. This is funded by DARPA as part of a supercomputing initiative. One of the language designers is Guy L Steele Jr who also worked on Java.
Fortress is intended to succeed Fortran and has elements designed to support Unicode and use concrete syntax which is similar to mathematical notation. The language is not designed to be similar to Fortran. Syntactically, it apparently most resembles Scala, Standard ML, and Haskell. Fortress is being designed from the outset to have multiple syntactic stylesheets. Source code can be rendered as ASCII text, in Unicode or as an alternative image. This is designed to allow for support of mathematical symbols and other symbols in the rendered output for easier reading.
Fortress is also designed to be both highly parallel and have rich functionality contained within libraries, drawing from Java but taken to a higher level.
Chapel is a new parallel programming language being developed by Cray Inc. Chapel is being developed as part of the Cray Cascade project, as part of DARPA’s High Productivity Computer Systems (HPCS) program, which is trying to improve supercomputer productivity by the year 2010. Chapel is trying to improve the programmability of parallel computers in general, not just the Cascade system specifically. It is trying to do this by allowing a higher level of expression than current programming languages and giving improved separation between algorithmic expression and data structure implementation details.
Chapel, the Cascade High Productivity Language, supports a multithreaded parallel programming model at a high level by supporting abstractions for data parallelism, task parallelism, and nested parallelism. It allows for optimizations for the locality of data and computation in the program via abstractions for data distribution and data-driven placement of subcomputations. It also allows for code reuse and generality through object oriented concepts and generic programming features. While Chapel is a development from several preceding languages, its parallel concepts are closest to High-Performance Fortran, ZPL, and the Cray MTA’s extensions to Fortran andC.
X10 is a programming language being developed by IBM at the Thomas J Watson Research Centre. It is also part of DARPA’s High Productivity Computing Systems programme. Those working on it include Kemal Ebcioglu, Vijay Saraswat, and Vivek Sarkar.
X10 is designed for parallel programming and it will apparently be an extension of Java. It will very much resemble Java but with customised design arrays and concurrency operations. It will support object oriented and non-object-oriented programming paradigms.
X10 uses the concept of parent and child relationships for tasks to prevent the lock stalemate that occurs when two or more processes wait for the other to finish before they can end. A parent has child tasks that themselves can become parents but parents will have a command called “finish” that they can issue to children. Children cannot wait for a parent to finish but a parent can wait for a child before finishing. This approach of using a tree hierarchy and enforcing that all parent tasks start before child tasks do, a lockout never arises.
Please see the Computerworld article mentioned in the previous article for some comments on the three languages.
Posted in Uncategorized | No Comments »