Big talk with the creator of smalltalk - and much more
Can code ever be too terse? The designer of the K and Q languages discusses this question and many more with Queue editorial board member Bryan Cantrill.
Backward compatibility always trumps new features.
Sometimes you just have to make a better mousetrap.
Domain-specific languages bridge the semantic gap in programming.
High-level DSLs for low-level programming
Looking at embedded DSLs
Is an open, more flexible programming environment just around the corner?
It's easy to transform objects into components and Web services, but how do we know which is right for the job?
There are characteristics of good coding that transcend all programming languages.
The increasing significance of intermediate representations in compilers
Hard technical problems and tough business challenges
Dear Kode Vicious, Where I work we use a mixture of C++ code, Python, and shell scripts in our product. I always have a hard time trying to figure out when it's appropriate to use which for a certain job. Do you code in only assembler and C, or is this a problem for you as well?
New programming languages are born every day. Why do some succeed and some fail? In 50 years, we've already seen numerous programming systems come and (mostly) go, although some have remained a long time and will probably do so for: decades? centuries? millennia? The questions about language designs, levels of abstraction, libraries, and resulting longevity are numerous. Why do new languages arise? Why is it sometimes easier to write new software than to adapt old software that works? How many different levels of languages make sense? Why do some languages last in the face of "better" ones?
Is programming language a misnomer? Many linguists are still busy trying to reconstruct the single ur-language presumed to have evolved over untold millennia into the thousands of human tongues - alive and dead, spoken and written - that have since been catalogued and analyzed. The amazing variety and complexity of known languages and dialects seems, at first parse, to gainsay such a singular seed.
Revisiting Schorre's 1962 compiler-compiler
Why the next language you learn should be functional
How the embeddability of Lua impacted its design
Modern dynamic languages lack tools for understanding software failures.
While often breaking the rules of traditional language design, the growing ecosystem of purpose-built "little" languages is an essential part of systems development.
Traditional computer science deals with the computation of correct results. Realtime systems interact with the physical world, so they have a second correctness criterion: they have to compute the correct result within a bounded amount of time. Simply building functionally correct software is hard enough. When timing is added to the requirements, the cost and complexity of building the software increase enormously.
Of class, type, and method
To move forward with programming languages we need to break free from the tyranny of ASCII.
A set of extensions to the Dart programming language, designed to support asynchrony and generator functions
Interfacing between languages is increasingly important.
"Mostly functional" programming does not work.
Maybe it's Fortran. Or maybe it just doesn't matter.
Ada remains the Rodney Dangerfield of computer programming languages, getting little respect despite a solid technical rationale for its existence. Originally pressed into service by the U.S. Department of Defense in the late 1970s, these days Ada is just considered a remnant of bloated military engineering practices.
There's perception, and then there's reality. Even though the frenzied hype over Java has died down since the Internet bubble burst, Java is becoming hugely popular in the wireless space. Several events highlight its emergence. Most recently, in December, Texas Instruments opened a research operation in France to focus on the integration of Java apps into the next generation of wireless devices.
Understanding the proposed revisions to the C language
The benefits of composability are becoming clear in software engineering.
Sometimes all you need is the right language.