User loginNavigation |
Darcs: an open source version control system implemented in HaskellSlashdot today links to an interview with David Roundy, the author of darcs, one of a number of proposed replacements for CVS. Darcs is, rather thrillingly, based on a
Also interesting is his choice of Haskell for an implementation language, and the reasons he gives for this:
Roundy also notes that he has had no difficulty finding Haskell coders to help with the project:
Jon Udell: interview with Ward Cunningham and Jack Greenfield
Jon Udell's interview with Ward Cunningham and Jack Greenfield might help understand Microsoft's methodology of software factories and DSLs.
The interview is available as a 54 minute MP3 file. The notion of language as abstraction mechanism and explanation of the part played by DSLs appear towards the second half of the conversation. By Ehud Lamm at 2004-11-24 20:35 | DSL | OOP | Software Engineering | login or register to post comments | other blogs | 6571 reads
Python, metaprogramming, and macrosA nice blogpost from Ian Bicking. By Ehud Lamm at 2004-11-24 10:48 | Meta-Programming | Python | login or register to post comments | other blogs | 8192 reads
LL4 Program and AbstractsRDF and DatabasesSome RDF research dropped me to a nice paper (PDF) from IBM discussing RDF with relational databases. This combination can replace half-baked application data mechanisms. These crop up regularly in my consulting work. Think nested directories of Windows INI files and brittle, binary files breaking on minor design iterations. The pain, the pain. Someone should describe RDF in 500 words or less as a generalization of INI. That note would spread understanding of RDF, which is simple but often described so abstractly that it seems complicated. It's better to start from the known and move to the unknown. Here is a short attempt, just to spark interest. Experts may call me all wet. Windows INI format uses "key-equals-value," with keys grouped into sections. Think of "key-equals-value" as a special case of RDF's "subject-predicate-object." RDF generalizes to any verb, not just "equals," along with superior grouping. While INI nests just one level down (via sections), RDF URIs handle arbitrary nesting (via slashes), and URIs also permit remote data. That is not to say RDF data must be tree-structured. Most RDF papers focus too much on XML. XML is merely one expression syntax. There are several others and a relational database will store RDF data in its own way, completely independent of XML. There are several projects in this domain. My favorite so far is OpenRDF Sesame. It supports querying at the semantic level. It seems more mature than others, having derived from previous efforts, and works with both PostgreSQL and MySQL as well as Oracle. An abstraction layer called SAIL makes Sesame database-agnostic. Sesame even sports a stand-alone b-tree system, or in-memory operation, if you don't want an external database. I like PostgreSQL much better than MySQL for its loose BSD license and technical merits. Apropos of that, another bit of news is that PostgreSQL now works natively on Windows. (The PostgreSQL client has always worked natively as a DLL.) PostgreSQL speed issues mentioned in Sesame papers have improved. As for Sesame, the only drawback is Java. But since Sesame interfaces over TCP through Java servlets, that's a don't-care.
On a related note, I looked into Python-based Chandler. The story there is that it's a custom job because, says Andi Vajda, By Mark Evans at 2004-11-23 01:48 | Software Engineering | XML | 21 comments | other blogs | 25699 reads
Release of Python 2.4, release candidate 1
What's New in Python 2.4 details the changes and additions in this release. Download the release here.
Most of the additions were discussed here in the past. Notable among them are generator expressions and function and method decorators.
Extending Ruby with CI've generally found that the APIs for bridging the gap between Perl and C are either cryptic (XS) or fragile (Inline::C). While Python is better in some ways, I still find its C API rather difficult to read. Tools such as SWIG can help alleviate this problem, but you still need to write a bunch of glue code to bridge the gap between the high-level agile languages and the low-level C code. A nice tutorial article on extending Ruby by providing access to a C library (GenX). It has been awhile since we discussed language extension mechanisms and multi-language programming, yet these techniques are quite important when building real life systems. Skribe 1.2b released(via comp.lang.scheme) Erick Gallesio and Manuel Serrano have announced the release of version 1.2b of Skribe, a document processing language based on Scheme. From the home page:
What language enthusiast/researcher hasn't chafed at the language design of TeX? You should especially check out some of their cool examples. By Dave Herman at 2004-11-18 03:00 | DSL | Functional | Implementation | 19 comments | other blogs | 97517 reads
Language Oriented ProgrammingSergey Dmitriev of JetBrains has written a whitepaper on domain specific languages. It is called "Language Oriented Programming: The Next Programming Paradigm" and is available at Language Oriented Programming Calculemus 2005via OCaml The Calculemus 2005 Symposium on July 18-19, 2005 will explore the mission of the Calculemus project: The scientific and technological goal...is the design of a new generation of mathematical software systems and computer-aided verification tools based on the integration of the deduction and the computational power of Deduction Systems and Computer Algebra Systems respectively. Both Deduction Systems and Computer Algebra Systems are receiving growing attention from industry and academia. On the one hand, Mathematical Software Systems have been commercially very successful in recent years....On the other hand, the use of formal methods in hardware and software development has made Deduction Systems indispensable not least because of the complexity and sheer size of the reasoning tasks involved. In spite of these successes there is still need for improvement as many application domains still fall outside the scope of existing Deduction Systems and Computer Algebra Systems. For instance, the scope of Computer Algebra Systems (CASs) could be significantly enhanced by adding deductive reasoning power. In fact this lack of expressivity together with the unsolved problem of correctness prohibit large classes of applications. Deduction systems (DSs), which - on the other hand - provide such an expressivity, as well as the guarantee of correctness, still lack computational power as they are not suited to directly carry out algebraic or numerical calculations. This severely restricts their scope of application in mathematics and - more importantly - in engineering applications. Earlier we discussed the Axiom CAS. |
Browse archives
Active forum topics |
Recent comments
22 weeks 2 days ago
22 weeks 3 days ago
22 weeks 3 days ago
44 weeks 4 days ago
48 weeks 6 days ago
50 weeks 3 days ago
50 weeks 3 days ago
1 year 1 week ago
1 year 5 weeks ago
1 year 5 weeks ago