Description
The easiness with which you can mix code, text, equations and graphics in Jupyter has made it the preferred tool of data scientists, engineers and scientists to do scientific programming in Python. Jupyter certainly excels at data exploration and teaching but lacks many features necessary to create large and modular programs, which can be found in other well-known scientific environments such as Matlab. Spyder is an alternative to Jupyter which seeks to provide most of these features in an integrated, easy to use environment that works as a desktop application in all major operating systems (Windows, Linux and macOS). In particular, Spyder comes with a powerful editor that provides code completion, signaling of warnings and errors and the ability to go where a function, class or method is defined. With the next Spyder version, these facilities will be available not only for Python but for several other programming languages as well (e.g. C++ or Julia). After writing your code on the editor, you can execute it in Spyder's integrated IPython console. Spyder supports several types of evaluation modes, according to your needs: you can run the whole file, only portions of the it (called cells) or a single line. This allows for quick iteration and incremental code development: every change can be reevaluated and feedback about its results obtained immediately thanks to the console's presence. To further support this process, Spyder also offers and integrated documentation viewer called 'Help'. After pressing 'Ctrl+I' next to any object used in the editor or the console, the documentation viewer will display its associated help in a beautifully formatted way, which avoids constantly consulting the web to remember how to use that object. After a code execution is completed, Spyder also gives the possibility to explore all objects created by it in a pane called 'Variable Explorer'. There users can inspect and modify the contents of lists, dictionaries, sets, 2D and 3D Numpy arrays, Pandas Dataframes and any other kind of Python object through specialized viewers for each of them. Besides these four main components (Editor, Console, Help and Variable Explorer), Spyder comes with a host of other facilities aimed at increasing productivity and allowing users to easily embark in small to mid-size programming projects. Among them we would like to mention the following: the ability to create projects to quickly switch between different coding efforts, find any text snippet contained in plain text files of a given directory, and explore all files present on that directory. As the current Spyder maintainer, it would be my pleasure to present these and several other components and nifty tricks and features to the SciPy Latin America community.