BBVA API Market
Freedom. Openness. Possibilities. Low cost. These are some of the words usually chosen by developers to express what it means to program for GNU/Linux and use the tools that are available on this platform. They also mention security, flexibility, stability and scalability, four basic elements in software development. This is a list of the best tools available in this programming environment.
1. Code editors
– Terminal-based text editors.
– Vim (Vi IMproved): an improved version of the Vi text editor, which is found in UNIX operating systems. It has the basic features of any editor: text selection in columns, auto-completing, use of regular expressions, syntax highlighting, enabled for more than 200 different languages, highlighting of parentheses, square brackets and keys, built-in spell checker, browsing through tabs, script programming for extensions, file compression and decompression, macro recording and running, log of executed orders, graphical interface, file format recognition and conversion… Unlike other editors, Vim enables the user to enter orders through special key combinations or keyboard shortcuts. It is fully compatible with Vi.
– GNU Emacs: text editor which is an interpreter of Emacs Lisp, a specific dialect of the Lisp programming language. As a code editor, GNU Emacs provides syntax highlighting, full unicode support, customizable editor with the incorporation of a graphical interface, and it enables the inclusion of extensions or plugins that enhance its capabilities (debugger, project planner, calendar… ). This editor is available for several operating systems, not only GNU and GNU Linux, but also for Windows, Mac OS X and Solaris platforms.
– GNU Nano: a text editor for Unix systems based on curses, a library for controlling terminals on this type of systems. Using this tool, a developer can write a desktop application for running in text mode. Some of its key features: search and replace function, use of regular expressions, editor under a free GPL v3 software license…
– Bluefish: a code editor for several programming languages. It is an open source project under a GNU GPL license. It works on most operating systems: Linux, of course, but also Windows, Mac OS X, Solaris and OpenBSD. Features: syntax marking based on regular expressions, table and macro creation, document creation wizard, simultaneous opening of several files, translations in 22 languages…
– Kate: one of the text editors most widely used by Linux developers. It is extensible through scripts, it offers window partitioning, multiple-document interface (MDI), as well as advanced editor features such as code folding, syntax highlighting, it is available for more than 180 different languages, smart indenting, code autocomplete, search and replace function, backup and restore capability and use of regular expressions.
2. Integrated Development Environments (IDEs)
– Android Studio: the integrated development environment for Android applications. It is based on Intellij IDEA. Some of the features of this IDE: automatic project building based on Gradle, code templates, integrated support for Google cloud services such as Google App Engine, ProGuard capabilities (reduces the size of applications, for example, by removing the classes that are not used to free up space), signature application, integrated Rich design editor…
– Anjuta: an open source and free Integrated Development Environment, specially designed for programming in C and C++.
– Anjuta has a customizable module-based user interface with a simple drag and drop function.
– All the menu actions are also configurable.
– Its functionality can be expanded by adding plugins, which can be activated and deactivated by type of project. Own plugins can also be written, in this case using the C programming language, the same one used to write the API.
– As a code editor it has some of the usual features: syntax highlighting for nearly all existing programming languages; code autocomplete; smart indenting function (available for C and C++ only); automatic code formatting (for C and C++ only); and text zoom.
– Built-in debugger.
– It incorporates Glade for rapid application development (RAD): it creates graphical user interfaces (GUIs) with GTK+ (a toolbox for developing GUIs with its own widgets, buttons, menus, tabs…) and GNOME (a desktop environment for Linux and Unix operating systems).
– KDevelop: an open source IDE for Linux, Mac OS X, Solaris and FreeBSD operating systems. An extensible development environment using plugins for C, C++ and other programming languages. It operates under the KDE graphic environment, although it is also available for other options like GNOME. This IDE enables programming in languages such as C, C++, PHP and also Python.
– Lazarus: an IDE for rapid application development (RAD), both open source and proprietary applications. It is a development environment written for Pascal and for programming in Pascal, specifically in an object-oriented dialect such as Free Pascal. It is extensible using packages or plugins from the Lazarus library and it operates with several development frameworks and different platforms such as Windows, Mac OS X and Linux.
3. GCC (GNU Compiler Collection)
A collection of compilers for different languages such as C, C++, Java, Objective C and Fortran. Available under a GPL (General Public License) license. It is usually included by default in the configuration of any GNU/Linux platform and there are versions for nearly all the operating systems available on the market (Windows, Mac OS X…). The community is constantly enhancing this tool; some of the latest features are:
– Record assignment optimization.
– The libstdc++ library for C++ uses a new ABI.
– Support for OpenMP 4.0 in C, C++ and Fortran compilations and DragonFly BSD, FreeBSD and VxWorks MILS platforms.
Some of its key features are:
– Based on Gecko, Mozilla's rendering engine.
– File management interface and design similar to Dreamweaver.
– Built-in FTP file manager.
– Web authoring in WYSIWYG mode or directly in HTML.
– CSS editor.
Follow us on @BBVAAPIMarket
In a connected world, APIs are the glue that keeps all the parts that form our day-to-day lives in place. The same way the power of glue depends on the material it is used on and the knowledge of its properties, APIs are only as useful as their documentation allows for.
There are different solutions to monitor the performance of an API, in terms of traffic, quality and speed of the answers it provides. Detecting faults in the code or quantifying the generated revenues are also some of the options offered by these useful tools.
App users must be aware that a button... is in fact a clickable button. Therefore, app buttons must be designed in such a way that users should feel invited to interact with the interface and actually click on it.