In recent years, we have seen an explosive growth in the popularity of chatbots based on neural networks, such as ChatGPT and Claude. Large language models demonstrate impressive abilities to process natural language and generate meaningful responses. However, working with such universal models is not always convenient for solving practical problems, especially when it comes to development.
In the previous blog article Not just ChatGPT. AI-driven tools for creating programs we considered everyday programming tools: editors and development environments. In the new article, we will focus on auxiliary development tools – those tools that are needed only from time to time, to solve one-time tasks at certain stages of your project development.
Your project. If you're on the verge of a new project, tools like What should I build next? will help generate ideas for implementation. Just select four items from the drop-down lists and – voila – you have an idea to implement.
With the idea chosen, the planning phase begins. What is the best architecture to use? This is where GenPen comes to the rescue. The tool helps you choose the optimal project structure and avoid mistakes at the early stages of development. At the same time, GenPen solves the problem not abstractly, but even generates basic code for the selected components.
Third-party project. If you don't want to develop your own or generated idea, you can join a commercial or open source project. When you're just getting into a new project, it can be hard to understand how it works. The Onboard tool can help you analyze your GitHub repository and answer questions: for example: "How do I filter the post entries in the blog section in the interval for 2020?" or "How does authorization work?". With Onboard, you'll adapt faster and start contributing to the project.
Visualization. However, a textual description is not always sufficient for understanding. For creating diagrams and visualizing flows there are ChatUML and Cruderra, and for full visualization of architecture on the basis of program code Archense is suitable.
Many of the tools mentioned here are handy "wrappers" – environments that have context added to them to accomplish a particular task. Often it comes down to turning a simple user request into a technical action, be it creating a regular expression, querying an API, or generating an SQL query.
While ChatGPT and Claude can handle many of these tasks, sometimes you need a more specialized tool that already contains the necessary context.
Third-party APIs. HTTPie is an example of such a tool for working with APIs. It uses artificial intelligence to generate natural language requests, making it easy to test and debug interactions with HTTP services. In fact, HTTPie stands out among other tools by offering a complete platform for working with APIs.
Regular expressions allow smbd to select necessary components from the text according to patterns that have specific grammar. It often takes tens of minutes to create and test such expressions. Autoregex takes care of all the difficulties and simply converts English text into a regular expression. By the way, the system is able to solve the problem in reverse order, when you need to explain what a complex regex does.
SQL queries. For those who are just starting to work with databases, AI Query will be a real salvation. The tool allows you to write natural language queries for PostgreSQL, MySQL, MariaDB and SQL Server databases. AI Query can not only generate a query, but also explain the SQL query or optimize it, including using indexes.
Another popular trend in query conversion is the creation of commands for the terminal. Unlike web-based tools, such utilities are installed directly on your computer.
Among them are such popular tools as heyCLI, plz CLI and BashSenpai. The principle of operation is simple: start a string with "hey" or "plz", then describe the desired action, and the utility will provide you with the corresponding command.
Example of a user case from the plz utility site: ask to rename filenames, and plz realizes that we are using N as a temporary variable
The plz tool can not only suggest commands, but also create automated scripts (runbooks) and suggest methods for installing missing dependencies. This is especially useful for facilitating collaboration between programmers in large companies.
Version control systems. If you are looking for a way to improve your work with pull-requests, I recommend checking out What The Diff. The tool helps you write informative pull-requests descriptions, review and merge them faster, perform code reviews, and keep the non-technical part of the team in the loop. It only works with Github for now. If you're too lazy to add tags to an issue, try Maige.
Development languages. Translators from one programming language to another allow you to quickly find correspondence between concepts in different stacks. For example, AIi-Code-translator in this respect differs little in mechanics from Google Translator: you specify a couple of languages and translate from one to another.
Internationalization. To translate mixed structures containing fields corresponding to natural language, for example, when internationalizing JSON objects, use Transluna. If you need to do the same but for an entire project (i18n), there is Locale Badger.
Search engines and dialog systems for the developer. Finally, if you are not satisfied with AI solutions embedded in IDEs, try Phind, a specialized search engine for developers. The tool helps you write code and searches for information only on specialized sites. Phind doesn't just generate code, but first asks you for the necessary implementation details, for example, what base you plan to use. If you don't have enough experience, the tool will help you choose a suitable solution.
A closely related tool, Perplexity AI allows the use of GPT4 and also asks questions that allow the user to better clarify context and more effectively utilize the capabilities of the neural network with additional context. In doing so, the tool adds references to the sources used in its answers.
Auxiliary development tools are natural examples of how generative models open up a wide range of possibilities for creating useful tools that simplify software development. Such tools save time: for example, they help you navigate through other people's code faster, and find suitable solutions to typical problems.
This not only lowers the threshold of entry for novice programmers, but also creates new challenges – preventing AI abuse and preserving user privacy. In this regard, in the next article we plan to look at, among other things, large language models that developers can run locally.