This list of top programming articles from the year on Opensource.com, showcase the depth of the open source community's latest programming interests. If you share my curiosity for even the tiniest steps forward in open source programming tools and tricks, this article's for you.
How to choose a PHP framework
PHP has become one of the workhorses of the internet due to its power and flexibility. In this article, Dr. Michael Garbade introduces us to and reviews three PHP frameworks: Symfony, Laravel, and Yii. Frameworks are an almost essential tool for those sites that by their nature require frequent updates and interaction with databases.
All three use templating systems to allow for the creation of PHP code for customized layouts and structures for various web pages, while minimizing the setup work. Dr. Garbade points out the advantages of each framework's approach in terms of flexibility, speed, database utilization, and extensibility. Although he couldn't recommend an overall winner in all of these categories, each framework has its strong points, depending on your needs.
3 open source Python GUI frameworks
Using Python on the command line is where many us started to learn it, but most of us have also moved to GUI frameworks, especially when user interactivity becomes complex. In this article, Jason Baker introduces three possible approaches—PyQt, Tkinter, and wxPython—each offering a host of tools for GUI programming.
Jason also gives us pointers on the varied and helpful resources that each has to offer.
Python vs. C/C++ in embedded systems
As Tom Radcliffe points out in this article, C and C++ have a long history of use in embedded systems. C and C++ certainly have an advantage with regard to runtime speed and compactness of compiled code. They are also known for the challenges they present when writing code and often in understanding code someone else has written. In spite of a much shorter existence, Python has come on strong because of its greater ease of learning; thus, its popularity in computer science curricula.
Tom explains the advantages of choosing Python vs. C/C++ for an embedded environment. If runtime speed were the main or only criterion, Python would be at a disadvantage, but in the real world, speed of coding can be a big factor, as well as allowances for user interaction with the system, an area where Python has some points of its own. A bright future for embedded Python seems likely.
Rumors of COBOL's demise have been greatly exaggerated: Meet GnuCOBOL
This might have made a great article closer to Halloween, but in June, D Ruth Bavosett took us back in time to show us that, today, COBOL isn't a zombie; it's still very much alive. In fact, the GnuCOBOL open source compiler is a modern development. This news is good for the financial sector, which continues to use COBOL widely, just as it did decades ago. Interestingly, the GnuCOBOL compiler works by transforming COBOL into C, then compiling that.
Which 'ancient' programming language do you use the most?
This poll asks readers to choose from Assembly, BASIC, C, COBOL, Fortran, LISP, Pascal, and SQL.
With almost 3200 votes, C is the winner by far, with SQL a solid second.
How to use Python to hack your Eclipse IDE
Tracy Miranda introduces us to the Eclipse Advanced Scripting Environment (EASE), and then gives us a nicely detailed explanation on how to set it up to add your own customizations to Eclipse. A master instructor, she has a great way of explaining the process and shows us some very useful examples of ways to enhance Eclipse IDE. Whether you are seeking to reduce the tedium of repetition, finding code references you need to edit, or even something as "simple" as building in an auto-save function, you will find Tracy smooths the way with her explanation of EASE.
Python versus R for machine learning and data analysis
Tom Radcliffe gives us some particulars about what is under the hood in both machine learning and data analysis, and he evaluates two languages for working with these specialties. R is a relatively new language that has wide academic use, presumably due to its simplicity and focus on data entry and analysis. Python of course has much more widespread use and is seeing an increasing number of applications, including machine learning. Each approach has its strengths, and the development of further enhancements tailored to these tasks is a pretty sure bet.
Google's security princess talks cybersecurity
Remy DeCausemaker conducts a wonderful interview of Parisa Tabriz, who grew up with only a casual interest in computers, majored in computer engineering in college, and tapped into a keen sense of purpose and focus for cybersecurity. She now works at Google on the Chrome project. She's obviously found a home doing what intrigues her and surely that kind of enthusiasm can only inspire and drive others.
LEGO Mindstorms programming with ev3dev
Why manufacturers think they can successfully exclude Linux interoperability from their gadgets is a mystery. We always find ways around roadblocks. Such is the case with ev3dev, a project that Don Watkins looked into for this article. ev3dev works by putting a Debian Linux layer on top of the operating system for LEGO Mindstorms, then it interacts via SSH to send commands to it. As a result, Linux enthusiasts have another toy to play with.
How do you get programmers to join your project?
This question is probably in the top five issues that many, if not most, open source projects deal with, and in this article Jeremy Garcia gives us his insights into this challenging problem.
In particular, I like his approach of focusing on the needs and interests of potential contributors. People have to have some buy-in to your project by understanding what it's about, and they also need to have a way to grasp a deeper understanding of what it entails. You have to give contributors some space to feel their way into a role in the project, but above all you need to communicate with them in the most helpful way you can, including and especially involving fixing issues they introduced.
Recruiting help in many ways has to be a 24/7 concept, because you never know from what sort of contact and from which direction your best help may come.