General Development Archive

Don Syme: Introduction to F#

Mike Hall caught up with Don Syme recently and recorded a few interviews covering Don's favorite programming language: F#. Don has done many great things over there in MSR Cambridge including creating everybody's favorite C# feature, Generics. Well, he also developed (with his team) the research programming language, F#. "F# is a programming language that provides the much sought-after combination of type safety, performance and scripting, with all the advantages of running on a high-quality, well-supported modern runtime system."

UNIX Error Reporting in the Standard C Library

Proper error detection and recovery is often ignored by UNIX developers. The lack of exceptions from the C language and the rudimentary error mechanisms from the standard C library certainly contribute to this. This article familiarizes you with the UNIX standard error reporting mechanism, the errno global variable. You'll also learn about a couple of associated global variables ( sys_nerr and sys_errlist) and the standard functions that help you report errors to the user and (hopefully) encourages you to report and handle errors in a user-friendly way.

IronPython 1.0 Released

"IronPython is about bringing together two worlds. The key value in IronPython is that it is both a true implementation of Python and is seamlessly integrated with the .NET platform. Most features were easy and natural choices where the language and the platform fit together with almost no work. However, there were challenges from the obvious cases like exception type hierarchies to the somewhat esoteric challenges concerning different methods on strings." More here.

Review: Borland Turbo Explorer

With the free Turbo Explorer line, Borland brings programming to the masses. Each of the four Turbo Explorer 'personalities' targets a different combination of programming language and platform: Turbo Delphi and Turbo C++ for Windows, and Turbo Delphi and Turbo C# for .NET. There are over 200 components for building programs, but the abundance of features may be overwhelming to new users.

The Future of Programming

What is the future of programming? I retain a romantic belief in the potential of scientific revolution. To recite one example, the invention of Calculus provided a revolutionary language for the development of Physics. I believe that there is a “Calculus of programming” waiting to be discovered, which will analogously revolutionize the way we program. Notation does matter." More here.

The Problem with Threads

"Concurrent programming is difficult, yet many technologists predict the end of Moore's law will be answered with increasingly parallel computer architectures - multicore or chip multiprocessors. If we hope to achieve continued performance gains, programs must be able to exploit this parallelism. Automatic exploitation of parallelism in sequential programs, through either computer architecture techniques such as dynamic dispatch or automatic parallelization of sequential programs, offers one possible technical solution. However, many researchers agree that these automatic techniques have been pushed to their limits and can exploit only modest parallelism. Thus, programs themselves must become more concurrent."

Helpful Hints for Porting Fortran Applications

This article addresses the most commonly encountered scenarios and errors while porting Fortran or any UNIX or Linux-based applications on different systems. Discover how to port Fortran-based High Performance Computing applications, such as computational fluid dynamic (CFD) modeling, weather modeling, and linear algebra packages, using IBM XL compilers and gnu compilers on large clusters.

uBASIC – a Really Tiny BASIC Interpreter

Adam Dunkels, well-known author of the Contiki operating system and the uIP embedded TCP/IP stack, has written a really small BASIC interpreter called uBASIC in about 700 lines of C code. It is intended to be a very small scripting language for systems where memory really is at a premium such as deeply embedded systems which may have as little as a few hundreds of bytes of RAM. It provides an interesting look into how to write a very lightweight script interpreter.

Update XML with XSLT, Apache Ant, Java SE

Learn the method for automating updates to a library of XML files so that they all conform to an updated XML schema in this two part tutorial series. In Part 1, you learn the steps in the entire process, and then create an XSLT stylesheet to update the XML files. In Part 2, you learn to install, configure, and run Ant and Java to iteratively transform your XML files based on the updates specified in your XSLT stylesheet.

The GNU Linear Programming Kit

"The GNU Linear Programming Kit is a powerful, proven tool for solving numeric problems with multiple constraints. Get an introduction to GLPK, the glpsol client utility, and the GNU MathProg language to help find the best solutions to complex numeric problems. Then, learn to solve the problem of optimizing the operations for Giapetto's Woodcarving, Inc., a fictional toy manufacturer."

.NET and Java to Get Better Dynamic Language Support; PHP.NET

With highly expressive syntax that is easy to read, write, and maintain, dynamic programming languages like Python and Ruby are extremely conducive to rapid development. Microsoft and Sun Microsystems have observed growing interest in dynamic programming, and plan to integrate more extensive support for dynamic language features in their respective managed language platforms. Elsewhere, check PHP for .NET.