Clojure
Rich Hickey discusses Clojure features and syntax, example code, functional programming, concurrency semantics, transactions, software transactional memory, agents, implementation and pain points.
- Java,
Tracking change and innovation in the enterprise software development community
Posted by Ian Roughley on Jan 24, 2008 09:26 AM
Concept programming started in 2000 as a private project in Hewlett Packard (HP) by Christophe de Dinechin, and is a way to
Cope with the increasing complexity in software by offering a new way to look at how software is conceived and created
In many ways, concept programming is solving the same problems as Domain Specific Languages. However the approaches are different. Rather than using a specific programming language, Christophe is creating XL - a general programming language. The reasons for doing this appear in an article for the RegDeveloper where he states:
The limitation with existing notations was that it was hard to find ways to add elegant extensions to them. You can extend languages like Lisp and its derivatives - but the problem is to get the extensions to look the way you want them to
Furthermore, the article goes on to explain
One of the intriguing aspects of XL is it has no fixed keywords - relying on what Dinechin describes as "shape": "XL does not use keywords - only a single syntax which can parse just about anything. The look of it is standard, it relies on a very small number of parse trees and instead of keywords it is based on the shape of the parse tree. This means you can play with it and experiment by adding things to it quickly."In a presentation by Christophe de Dinechin, he expands on the article, arguing that even simple problems are hard to implement in todays programming languages.
There is a gap between:
- Concepts, in your head
- Representations of concepts, in the code
Concept Programming is all about this gap
He continues on to say (that concept programming will)
Make the code “look like” the concept
- Similarity in structure, behavior, locality
- Principle of least surprise
Along with the concept, Christophe defines some pseudo-metrics. These are highly subjective and not easily measurable, but they do provide a way to communicate information. The pseudo-metrics he outlines are:
Syntactic Noise
- Form that doesn’t map to the problem space
Semantic Noise
- Meaning that doesn’t map to the problem space
Bandwidth
- How much of the problem space is covered?
Signal/Noise Ratio
- How much code actually deals with real problems?
To learn more about XL and concept programming, the XL project can be found at http://xlr.sourceforge.net.
Terracotta 10x Faster Than Oracle Coherence
Offshore software development: Making it a success with Agile Practices
How to use Open Source SOA Safely in the Enterprise
Architectural Quality: Design, Development and Testing Rules
Rich Hickey discusses Clojure features and syntax, example code, functional programming, concurrency semantics, transactions, software transactional memory, agents, implementation and pain points.
We introduce the concept of Composite Oriented Programming, and show how it avoids the issues with OOP and reignites the hope of being able to compose domain models with reusable pieces.
Dan Farino talks about the system architecture and the challenges faced when building a very large online community. Dan explains how a .NET product scales on hundreds of servers.
Alan Shalloway, CEO and founder of Net Objectives, presents the Lean software development principles and practices and how they can benefit to Agile practitioners.
Bernd Mathiske discusses Maxine VM, Java compatibility, swapping major VM components, research areas, Object handling, code examples, optimizing compiler, snippets, bytecode generation, JNI and JIT.
Joe Armstrong speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days.
The java double-check singleton pattern is not thread safe and can’t be fixed. In this article, Dr. Alexey Yakubovich provides an implementation of the Singleton pattern that he claims is thread-safe.
Diana and Jim talk about patterns observed in CTOs' activity. CTOs emerge as real people caring for other people in their organization, and are put under a lot of pressure and constraints.
1 comment
Reply