General Development Archive

Opa 0.9.0 ‘S4’ released

Opa, the new open source programming language for web applications, just released its 0.9.0 'S4' version. Opa is a single programming language for specifying client code, server code and database code. The new release introduces two major features: A new default syntax that resembles JavaScript and was asked for by the community, and an abstraction layer for the NoSQL database MongoDB. Features that were previously supported by the internal Opa database are now available with the fast-growing, scalable NoSQL database. Together, Opa and MongoDB, provide a way to develop complex web applications and have them scale out easily. Many other smaller features have been added, as the number of contributors to the code on github grows.

C++ AMP Open Specification Published

"As an industry trend, advancement in heterogeneous hardware has progressed at a rapid pace. This in turn has fueled developer desire to target such hardware for accelerated computation, necessitating a significant step forward in programming models to enable such practices. C++ Accelerated Massive Parallelism (C++ AMP) is a new technology implemented in Visual Studio 11 that helps C++ developers use accelerators such as the GPU for parallel programming."

Programming Opa: Web Development, Reimagined

InfoWorld's Rick Grehan takes an in-depth look at Opa, MLstate's attempt to provide a single language for Web app development, and one of 10 cutting-edge programming languages that could shake up the future of IT. "With Opa, you write your Web application as though it were a single-tier program, and the compiler handles the knotty details of partitioning your program and deploying the resulting components to their proper domains. The compiler also builds the communication infrastructure among application components, and that infrastructure is invisibly managed by the runtime. The security weaknesses inherent in today's Web applications are virtually eliminated."

The Rust Compiler 0.1 Released

"Today Mozilla and the Rust community are releasing version 0.1 of the Rust compiler and associated tools. Rust is a strongly-typed systems programming language with a focus on memory safety and concurrency. This is the initial release of the compiler after a multi-year development cycle focusing on self-hosting, implementation of major features, and solidifying the syntax. Version 0.1 should be considered an alpha release, suitable for early adopters and language enthusiasts. It's nifty, but it will still eat your laundry."

Shed Skin 6 Years Later

It has been 6 years since we last mentioned Shed Skin, a restricted-Python to C++ compiler (Python 2.4-2.6). In the meantime, development has continued at a rapid pace. Shed Skin has taken part in the GSOC and GHOP projects. It is now able to generate extension modules, which can be used in larger Python programs. Its type inference engine has become orders of magnitude faster. One of the Shed Skin example programs, a work-in-progress C64 emulator is now compiled in under a minute on a fast PC. In total there are 64 non-trivial example programs. As may be expected from a static compiler, performance is better than when using PyPy in many cases. Though of course we have to mention that PyPy is much less restricted, and also improving at a rapid pace.

Developers Must Unite For Mobile App Portability

Fatal Exception's Neil McAllister sees a glaring omission among the proposed plans for the new Application Developers Alliance for mobile app developers: any clear focus on easing cross-platform mobile development. 'Currently, the leading mobile operating systems are all vertically integrated "walled gardens," and developing versions of the same app for multiple platforms is both challenging and costly,' McAllister writes. 'That's where an organization like the Application Developers Alliance could help. By organizing app developers from all across the mobile OS market, it could act as a unified voice to put pressure on Apple, Google, and others to lower barriers to entry for their platforms. ... But as long as it's being underwritten by leading proponents of the status quo, it seems unlikely that the Application Developers Alliance would rock the boat by taking a stand against walled-garden-style mobile platforms.'

10 Programming Languages That Could Shake Up IT

InfoWorld's Neil McAllister takes a look at 10 cutting-edge programming languages, "each of which approaches the art of software development from a fresh perspective, tackling a specific problem or a unique shortcoming of today's more popular languages. Some are mature projects, while others are in the early stages of development. Some are likely to remain obscure, but any one of them could become the breakthrough tool that changes programming for years to come - at least, until the next batch of new languages arrives."

How Xamarin Gave Mono a Life After Novell

On May 4, 2011, Novell conducted a large round of layoffs as part of its post-merger with Attachmate -- and one of the casualties was the 30-person team that worked on Mono. Fewer than two weeks after Novell swung the axe, de Icaza announced the launch of Xamarin. Xamarin is going strong: The company is generating self-sustaining revenue and is on a steady product launch schedule. (Last week it rolled out Mono for Android 4.0, which lets developers make apps that work with the latest version of Android, Ice Cream Sandwich.)

Why We Need More Programming Languages

Fatal Exception's Neil McAllister writes in favor of new programming languages given the difficulty of upgrading existing, popular languages. 'Whenever a new programming language is announced, a certain segment of the developer population always rolls its eyes and groans that we have quite enough to choose from already,' McAllister writes. 'But once a language reaches a certain tipping point of popularity, overhauling it to include support for new features, paradigms, and patterns is easier said than done.' PHP 6, Perl 6, Python 3, ECMAScript 4 -- 'the lesson from all of these examples is clear: Programming languages move slowly, and the more popular a language is, the slower it moves. It is far, far easier to create a new language from whole cloth than it is to convince the existing user base of a popular language to accept radical changes.'

Welcome to Ceylon

"Ceylon is a programming language for writing large programs in a team environment. The language is elegant, highly readable, extremely typesafe, and makes it easy to get things done. And it's easy to learn for programmers who are familiar with mainstream languages used in business computing. Ceylon has a full-featured Eclipse-based development environment, allowing developers to take best advantage of the powerful static type system. Programs written in Ceylon execute on any JVM."

What I’m Thankful For As A Developer

Fatal Exception's Neil McAllister gets into the holiday spirit with a post that gives thanks to technical advances for developers, including open source tools, modern IDEs, and distributed version control. 'I'm old enough to remember when performance-critical routines meant hand-coded assembly language and sometimes even keying in machine code as hexadecimal digits. We've come a long way since those bad old days, and not surprisingly we owe a lot of our progress to technology. So for this Thanksgiving, here are just a few of the modern advances for which I, as a developer, give thanks.' What are you giving thanks to?

PyPy 1.7 Widens the Performance “Sweet Spot”

"The PyPy development team has released version 1.7 of its 'very compliant' Python interpreter with integrated tracing just-in-time compiler. The developers say that the focus of the new update was widening the range of code that PyPy can speed up, which the developers refer to as the 'sweet spot'. In their benchmarks, PyPy 1.7 performs approximately 30 per cent faster than 1.6 and 'up to 20 times faster on some benchmarks'."

The Futility of Developer Productivity Metrics

Fatal Exception's Neil McAllister discusses why code analysis and similar metrics provide little insight into what really makes an effective software development team, in the wake of a new scorecard system employed at IBM. "Code metrics are fine if all you care about is raw code production. But what happens to all that code once it's written? Do you just ship it and move on? Hardly - in fact, many developers spend far more of their time maintaining code than adding to it. Do your metrics take into account time spent refactoring or documenting existing code? Is it even possible to devise metrics for these activities?" McAllister writes, "Are developers who take time to train and mentor other teams about the latest code changes considered less productive than ones who stay heads-down at their desks and never reach out to their peers? How about teams that take time at the beginning of a project to coordinate with other teams for code reuse, versus those who charge ahead blindly? Can any automated tool measure these kinds of best practices?"

Tough Tests Flunk Good Programmer Job Candidates

Fatal Exception's Neil McAllister discusses the use of quizzes and brain-teasers in evaluating potential software development hires, a practice that seems to be on the rise. 'The company best known for this is Google. Past applicants tell tales of a head-spinning battery of coding problems, riddles, and brain teasers, many of which seem only tangential to the task of software development. Other large companies have similar practices -- Facebook and Microsoft being two examples,' McAllister writes. 'You'll need to assess an applicant's skill in one way or another, but it's also possible to take the whole interview-testing concept too far. Here are a few thoughts to keep in mind when crafting your test questions, to avoid slamming the door on candidates unnecessarily.'

Extending Native Features To HTML5 Web Apps

A small company called AppMobi is enabling developers to create HTML5 apps that tap into native hardware and OS capabilities of mobile devices, such as gravity sensing, accelerometer, GPS, camera, sound and vibration, and the file system, InfoWorld reports. 'Its MobiUs browser for iOS implements HTML5's DirectCanvas API for gaming, as well as the HTML5 local storage API for saving executables and data in the browser cache so that apps can run offline. But what makes MobiUs more than just yet another browser is the set of libraries AppMobi provides app developers to access native hardware and enable push messaging from Web apps.'

John McCarthy Dies, Age 84

The news already hit HackerNews late last night, but at that time there was no confirmation so I decided to wait until we knew for sure. Well, after Dennis Ritchie and Steve Jobs, the technology world lost another great mind yesterday. Stanford has confirmed that John McCarthy, the creator of LISP and the father of artificial intelligence, has passed away, age 84.