Download PDF version of this article PDF

What's on Your Hard Drive?

WOYHD is a forum for expressing your opinions on the tools you love and loathe. Tools, as we’ve made clear, can be anything from programming languages to IDEs to database products. This month we’ve taken liberties with the definition to include the Linux music software praised below. Listening to music can help us get through those long hours spent unraveling lines of spaghetti code (someone else’s, of course). It can also make some people completely unproductive, but cannot the same be said of many other, more obvious “tools”? Don’t get us wrong, though—never, under any circumstances, will Minesweeper be considered a tool!

Who: Chris Bellini
What industry: Manufacturing
Job title: Software developer
Flavor: Develops on Windows for Windows

Tool I love! Python. I’m still a newbie to Python but I’m quite impressed with it thus far. As a scripting language, it can quickly test an idea or an algorithm, even if the project I’m working on doesn’t use Python. Also, with free tools such as wxPython and py2exe, a Python script can easily become a full-blown distributable application with a robust UI.

Tool I hate! Microsoft Visual Studio .NET. It’s a love/hate relationship. On the one hand, it’s my bread and butter and I’ve learned to use many of its features. On the other hand, it has become a bloated resource hog that makes things sluggish while a large app, such as CAD/CAM, is running simultaneously.

Who: Guilherme Mauro Germoglio Barbosa
What industry: Education
Job title: Software developer
Flavor: Develops on Linux for Linux

Tool I love! XMMS. I simply cannot focus on my work without any music. Programming is a bit of a lonely task, and listening to music helps combat this loneliness. 24/7 listening to music = 24/7 programming! \

Tool I hate! CTTE. This tool is a bit buggy—only five minutes of use produced six exceptions. I hope they improve it. Maybe it will be very useful in the future. But there’s another problem: programming is fun—crafting artifacts that no one really cares about (such as those created by CTTE) is not.

Who: John Styles
What industry: Technology vendor
Job title: Chief architect
Flavor: Develops on Windows for Windows

Tool I love! Awk. Within its chosen problem domain, nothing can beat Awk’s elegance and simplicity. It is easy to deploy, and its syntax is simpler and more rational than certain other scripting languages I could mention. I often try other tools but come back to the one that always does the job.

Tool I hate! OLE DB. If OLE DB were just another bizarre, overly complex, overly abstract, poorly documented API, then I could just happily ignore it. Unfortunately, it is the native data access API for Microsoft SQL Server, so it cannot be avoided. If only there were a decent simple C language API for it, such as Oracle’s OCI.

Who: Jeff Price
What industry: Not-for-profit
Job title: Software engineer
Flavor: Develops on Windows for Unix

Tool I love! Eclipse. Eclipse allows me to be much more productive by assisting with syntax and generating many standard, repetitive code blocks. The refactoring tools make otherwise unthinkable-to-tackle tasks (such as renaming/repackaging a frequently used class) almost trivial.

Tool I hate! PVCS Version Manager. The X interface is slow, clunky, and unstable. Open projects sometimes disappear, many error messages inaccurately represent the cause of the problem…and did I mention that it’s slow? It represents the antithesis of the productivity gains I get by using Eclipse.

acmqueue

Originally published in Queue vol. 3, no. 7
Comment on this article in the ACM Digital Library





More related articles:

Nicole Forsgren, Eirini Kalliamvakou, Abi Noda, Michaela Greiler, Brian Houck, Margaret-Anne Storey - DevEx in Action
DevEx (developer experience) is garnering increased attention at many software organizations as leaders seek to optimize software delivery amid the backdrop of fiscal tightening and transformational technologies such as AI. Intuitively, there is acceptance among technical leaders that good developer experience enables more effective software delivery and developer happiness. Yet, at many organizations, proposed initiatives and investments to improve DevEx struggle to get buy-in as business stakeholders question the value proposition of improvements.


João Varajão, António Trigo, Miguel Almeida - Low-code Development Productivity
This article aims to provide new insights on the subject by presenting the results of laboratory experiments carried out with code-based, low-code, and extreme low-code technologies to study differences in productivity. Low-code technologies have clearly shown higher levels of productivity, providing strong arguments for low-code to dominate the software development mainstream in the short/medium term. The article reports the procedure and protocols, results, limitations, and opportunities for future research.


Ivar Jacobson, Alistair Cockburn - Use Cases are Essential
While the software industry is a fast-paced and exciting world in which new tools, technologies, and techniques are constantly being developed to serve business and society, it is also forgetful. In its haste for fast-forward motion, it is subject to the whims of fashion and can forget or ignore proven solutions to some of the eternal problems that it faces. Use cases, first introduced in 1986 and popularized later, are one of those proven solutions.


Jorge A. Navas, Ashish Gehani - OCCAM-v2: Combining Static and Dynamic Analysis for Effective and Efficient Whole-program Specialization
OCCAM-v2 leverages scalable pointer analysis, value analysis, and dynamic analysis to create an effective and efficient tool for specializing LLVM bitcode. The extent of the code-size reduction achieved depends on the specific deployment configuration. Each application that is to be specialized is accompanied by a manifest that specifies concrete arguments that are known a priori, as well as a count of residual arguments that will be provided at runtime. The best case for partial evaluation occurs when the arguments are completely concretely specified. OCCAM-v2 uses a pointer analysis to devirtualize calls, allowing it to eliminate the entire body of functions that are not reachable by any direct calls.





© ACM, Inc. All Rights Reserved.