A very large number of us use open-source software every day. Many also participate in open-source projects. But if you maintain an active open-source project, then you’re dealing with other people’s code on a very regular basis. How do you handle this? How do you manage a large number of commits, or pull requests, or bugs, or feature suggestions? When should you define, or enforce, code standards? And what sorts of documentation standards shoudl you put in place? In this talk, Barak Michener shares his experience running a number of open-source repositories and projects. If you are thinking of managing a new open-source project, or becoming an active participant on an existing project, then this talk will help you to consider how to scale your software — not in terms of efficiency, but rather in terms of people, community, and contributors.
“Systems programming” is a category of programming that requires high speed, demanded by such applications as operating systems, network servers, and databases. For many years, and even today, C is the go-to programming language for such work — but over the years, a growing number of other languages have been joining this space, most notably C++, and more recently D, Go, and Rust. What do each of these languages have to offer, and what do the languages’ designers prioritize in their designs? This panel brings together Bjarne Stroustrup (C++), Rob Pike (Go), Andrei Alexandrescu (D), and Niko Matsakis (Rust) to discuss what they think about programming languages, language design, community, and future directions.
Back in college, I had to take a course in signal processing. I did miserably at it, for a variety of reasons — I didn’t have the right math background, I was busy with the student newspaper, and I had no idea what was going on. But it was clear to me, even with my slim grasp of the subject, that manipulation of radio signals could be potentially quite interesting and useful. Fast forward two and a half decades, and wireless systems are all over the place, from WiFi to cellular networks. And the GNU project, unknown to many, has a system known as GNU Radio, that lets you control them. In this talk, Tim O’Shea introduces GNU Radio, telling us what it can do, and why you would even want it.
Apache Spark has taken the data-science world by storm, offering a new way to process and analyze large quantities of data. Spark provides interfaces in a number of popular languages, such as Java, Scala, and Python, making it possible to perform large-scale data analysis in relatively short periods of time. Indeed, Spark’s claim to fame is that it can do very fast analysis of very large quantities of data. In this talk, Spark inventor Matei Zaharia introduces the technology, describes how it compares and interacts with others, and provides examples of how to use Spark to answer questions about large-scale data sets.
If you create a piece of software, you need to worry about the users. But if you create an API, then your users are people you’ve never met, who will be using your software on a regular basis — and who will create applications and services based on the API you created. This means that if you make mistakes when creating the API, you’ll be forced to live with those mistakes, and support them, for some time. How can you create, and then maintain, an API with a minimum of of fuss, and in a way that you can fix mistakes? In this talk, Philipp Meier describes the mistakes that he has made when writing APIs in Clojure. His lessons are appropriate not only for Clojure developers, but for people using other languages, too.
One of the reasons for Ruby‘s popularity as a programming language is Ruby gems, the collection of open-source libraries that can be downloaded and used by developers around the world. With tens of thousands of gems available, there’s no doubt that they make Ruby a more productive, interesting, and collaborative language. The fact that anyone can contribute a gem makes it even more appealing and democratic. But not all gems incorporate practices that encourage their widespread use, as well as contributions from other developers. In this talk, Mat Brown provides seven ground rules for gem designers that, when followed, will make your gem more appealing to developers — those who want to use your gem, and those who want to help make it even better.
PHP is one of the most popular languages for Web development, Many programmers think that PHP has gone out of favor for serious applications — but remember that WordPress powers a huge proportion of the Web, and it’s written in PHP. (Plus, you have companies such as Facebook that are using languages related to PHP.) PHP 7 includes a huge number of optimizations and language improvements. If you’re a PHP developer, then you’ll definitely want to watch Erika Heidi‘s talk, in which she describes the changes included in this latest version,
For many years, Perl was one of the best known, and beloved, programming languages. It was at the forefront of high-level “scripting” languages, of Web development, of textual analysis with regular expressions, and of cross-platform languages. And then, Larry Wall announced Perl 6 … and the world waited, with many Perl developers moving onto other languages. Well, Perl 6 is about to be released — and many people who haven’t thought about Perl is years are at least interested in hearing what Larry and others have been working on for more than 15 years. In this talk, Larry Wall unveils Perl 6, describing not only the technical features, but also the thinking behind those features, and what led them to be included.
To many people, open-source software is free of charge, and without any restrictions or licenses. But of course, open source (and its close cousin, free software) can only exist thanks to licenses, and copyright laws. But wait — is software like a movie, a book, a machine, or none of these? Or all of these? What laws apply? Hhow do they affect us, and what do they mean for the permissions we need in order to use, copy, and modify software? What do open-source licenses mean to us as users, and developers? And why is there so much confusion regarding licenses? In this talk, Brenda Wallace introduces us to the ideas of copyright, and to some of the murky aspects of copyright that software developers should understand, particularly if they’re contributing to open source.