Keep OSNews alive by becoming a Patreon, by donating through Ko-Fi, or by buying merch!

General Development Archive

The C# Design Process: A Conversation with Anders Hejlsberg

After 13 years with Borland, Hejlsberg joined Microsoft in 1996, where he initially worked as an architect of Visual J++ and the Windows Foundation Classes (WFC). Then, Hejlsberg was chief designer of C# and a key participant in the creation of the Microsoft .NET Framework. Today, he leads the ongoing development of the C# programming language. On July 30, 2003, Bruce Eckel, author of Thinking in C++ and Thinking in Java, and Bill Venners, editor-in-chief of Artima.com, met with Anders Hejlsberg in his office at Microsoft. Check out the entire eight-part interview here.

Basic Use of Pthreads

Threads strike fear into the hearts of many programmers. UNIX's process model is simple and well understood, but it is sometimes inefficient. Threading can often allow for substantial improvements in performance, at the cost of a little confusion. This article demystifies the POSIX thread interface, providing practical examples of threaded code for consideration.

Business Service Grid, Part 6: In operation

A service domain applies autonomic computing principles for aggregating Web services and grid services. The service domain technology provides a service grid and can create, filter, discover, cluster, organize, select, route, recover, and switch Web services and grid services autonomically. Using service domain objects enables you to implement business solutions easily and quickly. In this article, we discuss how to invoke and access a service domain to start the operational phase.

C++: ACE Logging; .NET: Exception Handling, Logging, and Tracing

Every C++ program -- and every networking app -- needs a good logging mechanism. ACE provides you with more than one way to handle such things. Consider your application and how you expect it to grow over time. Your choices range from the simple ACE_DEBUG macros to the highly flexible logging service. Regarding .NET, exception handling is more than just throwing and catching objects. There are many design elements in providing a robust system, and providing a sound exception handling, logging, and tracing schema are among the first steps. In this chapter from ".NET Patterns: Architecture, Design, and Process" book, you'll learn best practices for determining when to throw, catch, and log your errors.

The New Breed of Version Control Systems

CVS, part of the glue that holds open source development together, shows its age. Many competitors have emerged recently, fixing misfeatures and adding new ideas. Shlomi Fish (of the version control comparison fame) explores several current open source version control systems that may be better than CVS for your needs. Email Shlomi on how to add info for your favorite VCS on his comparison page.

Overview of Task Schedulers for Embedded Newbies

This paper by veteran real-time instructor David Kalinsky provides an introduction to the subject of task scheduling, from the perspective of novice embedded systems software developers. It begins with a survey of simple "home-made" task schedulers. Then it introduces the concept of preemption and priority-based preemptive schedulers, as used in off-the-shelf real-time operating systems. It ends with a glimpse into deadline scheduling for hard real-time systems.

SciTech Software Announces Release of Open Watcom 1.2

SciTech Software, Inc. today announced that Open Watcom 1.2 has been released and is now available for download from its website. This release contains a large number of new features, product enhancements and several fixes designed to bring Open Watcom to a higher level of quality and compatibility. SciTech, the official maintainers of the Open Watcom project, have also announced the availability of an updated Open Watcom CD, complete with SciTech’s installer for DOS, OS/2, and windows. Support for the update will be handled exclusively through the Open Watcom website.

Nine Language Performance Round-up: Benchmarking Math & File I/O

This article discusses a small-scale benchmark test run on nine modern computer languages or variants: Java 1.3.1, Java 1.4.2, C compiled with gcc 3.3.1, Python 2.3.2, Python compiled with Psyco 1.1.1, and the four languages supported by Microsoft's Visual Studio .NET 2003 development environment: Visual Basic, Visual C#, Visual C++, and Visual J#. The benchmark tests arithmetic and trigonometric functions using a variety of data types, and also tests simple file I/O. All tests took place on a Pentium 4-based computer running Windows XP. Update: Delphi version of the benchmark here.