Skip to content

Commit eba5fd2

Browse files
MarsBarLeenoatamir
andauthored
[BLOG] Add release-spyder-4beta2 (#607)
Co-authored-by: Noa Tamir <[email protected]>
1 parent d1e69ac commit eba5fd2

File tree

8 files changed

+159
-0
lines changed

8 files changed

+159
-0
lines changed
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
---
2+
title: 'Spyder 4.0 takes a big step closer with the release of Beta 2!'
3+
published: May 21, 2019
4+
author: gonzalo-pena-castellanos
5+
description: 'This is the first of a series of blog posts we will be writing to showcase updates on the development of Spyder, new planned features and news on the road to Spyder 4.0 and beyond.'
6+
category: [IDEs]
7+
featuredImage:
8+
src: /posts/release-spyder-4beta2/blog_feature_var1.svg
9+
alt: 'An illustration of a brown and a dark brown hand coming towards each other to pass a business card with the logo of Quansight Labs.'
10+
hero:
11+
imageSrc: /posts/release-spyder-4beta2/blog_hero_var1.svg
12+
imageAlt: 'An illustration of a brown hand holding up a microphone, with some graphical elements highlighting the top of the microphone.'
13+
---
14+
15+
It has been almost two months since I joined Quansight in April, to start
16+
working on Spyder maintenance and
17+
development. So far, it has been a very exciting and rewarding journey under
18+
the guidance of long time Spyder maintainer
19+
[Carlos CΓ³rdoba](https://github.com/ccordoba12).
20+
This is the first of a series of blog posts we will be writing to showcase
21+
updates on the development of Spyder, new planned features and news on the
22+
road to Spyder 4.0 and beyond.
23+
24+
First off, I would like to give a warm welcome to
25+
[Edgar Margffoy](https://github.com/andfoy),
26+
who recently joined Quansight and will be working with the Spyder team to
27+
take its development even further. Edgar has been a core Spyder developer
28+
for more than two years now, and we are very excited to have his (almost)
29+
full-time commitment to the project.
30+
31+
# Spyder 4.0 Beta 2 released!
32+
33+
Since August 2018, when the first beta of the 4.x series was released, the
34+
Spyder development team has been working hard on our next release.
35+
Over the past year, we've implemented the long awaited full-interface dark theme;
36+
overhauled our entire code completion and linting architecture to use the
37+
[Language Server Protocol](https://microsoft.github.io/language-server-protocol/),
38+
opening the door to supporting many other languages in the future;
39+
added a new Plots pane to view and manage the figures generated by your code;
40+
and numerous other feature enhancements, bug fixes and internal improvements.
41+
42+
## Dark theme
43+
44+
A full-interface dark theme has been a
45+
[long awaited feature](https://github.com/spyder-ide/spyder/issues/2350),
46+
and is enabled by default in Spyder 4. You can still select the
47+
light theme under ``Preferences > Appearance`` by either choosing a light-background
48+
syntax-highlighting scheme, or changing ``Interface theme`` to ``Light``.
49+
50+
![Screenshot of the Spyder main window with default panes, with the dark theme applied across the entire interface.](/posts/release-spyder-4beta2/spyder-qdarkstyle.png)
51+
52+
Pretty, right :-) ?
53+
54+
This enhancement was made possible by the work of
55+
[Colin Duquesnoy](https://github.com/ColinDuquesnoy),
56+
[Daniel Pizzeta](https://github.com/dpizetta)
57+
and their [QDarkStyle](https://github.com/ColinDuquesnoy/QDarkStyleSheet/)
58+
package. The Spyder team is now actively collaborating with Colin and Daniel
59+
to pursue the release of QDarkStyle 3.x, which will be using Spyder's
60+
[QtSASS](https://github.com/spyder-ide/qtsass/)
61+
package to harness the power of SASS/SCSS and allow users to fully customize
62+
the theme dynamically.
63+
64+
65+
## Language Server Protocol architecture
66+
67+
The Language Server Protocol (LSP) was created by Microsoft for Visual Studio Code to standardize how
68+
development tools (e.g. editors and IDEs) communicate with
69+
servers that provide code completion, linting and related facilities for
70+
different programming languages. With LSP, as
71+
[they describe it](https://web.archive.org/web/20190528210156/https://microsoft.github.io/language-server-protocol/):
72+
73+
> A single Language Server can be reused in multiple development tools,
74+
> which in turn can support multiple languages with minimal effort.
75+
> LSP is a win for both language providers and tooling vendors!
76+
77+
As of Spyder 4 Beta 2, Spyder is now one of those tools!
78+
We developed our own client to communicate with any server that implements
79+
LSP v3.0 through a transport layer that uses ZeroMQ sockets. Code completion,
80+
help generation, calltips, and real-time code/style analysis were rewritten to take advantage of this
81+
architecture, and hover hints and docstring style analysis were added.
82+
Further LSP features, such as workspace functionality and on the fly completion, will come in future betas.
83+
84+
<img src="/posts/release-spyder-4beta2/spyder-hover-hint-calltip.png" class="center" />
85+
86+
Our current support is geared towards Python, using the great
87+
[Python-Language-Server](https://github.com/palantir/python-language-server)
88+
package. This has allowed us to provide fine-grained configurability for
89+
[Pycodestyle](http://pycodestyle.pycqa.org/en/stable/) and
90+
[Pydocstyle](http://www.pydocstyle.org/en/stable/) options, and in future
91+
betas we’ll also add the ability to use and configure code formatters like
92+
YAPF and autopep8.
93+
94+
![Docstring style preferences in Spyder.](/posts/release-spyder-4beta2/spyder-doc-prefs.png)
95+
96+
We support configuring LSP servers for additional, non-Python programming languages.
97+
In the future, we hope to include out-of-the-box LSP integration for
98+
some of the most popular languages in the scientific computing space,
99+
including Fortran, Julia and C/C++.
100+
101+
![Spyder Completion and Linting preferences pane, showing example PyLS servers configured for Go and Julia.](/posts/release-spyder-4beta2/spyder-preferences-lsp.png)
102+
103+
## Plots pane
104+
105+
Similar to [RStudio](https://www.rstudio.com/) and other data science IDEs,
106+
Spyder now includes a Plots pane, allowing you to browse all figures created during a
107+
session. Beyond just viewing plots, you can also zoom, save/export, copy and remove
108+
them.
109+
110+
![Spyder main window with a figure in the plots pane.](/posts/release-spyder-4beta2/spyder-plots.png)
111+
112+
## But wait, there's more!
113+
114+
There are numerous additional features we've added in the previous 10
115+
months! These include:
116+
117+
* **Autosave** and **File Recovery** in the editor, so Spyder can restore your
118+
unsaved files in case it crashes or something else goes wrong.
119+
* Dedicated **Sympy**, **Cython** and **Pylab** consoles, making it
120+
very simple to quickly explore and create code for these libraries.
121+
* OS level **window pane undocking**, allowing you to easily
122+
organize panes across different monitors.
123+
* Support for **[multi-indexes](https://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html)**
124+
in our Dataframe viewer, making working with complex datasets much easier.
125+
126+
We will describe all of these additional enhancements in greater detail in
127+
future blog posts.
128+
129+
## You can help!
130+
131+
If would like to help us test this beta release and try out the new features it offers,
132+
you can! You can install it with ``conda`` (if using Anaconda/Miniconda, as we recommend),
133+
or with ``pip``; we suggest doing so in a new Conda env or ``virtualenv``/``venv``
134+
so you can easily switch between your existing Spyder install and the Spyder 4 beta.
135+
For example, to do so with ``conda``, enter the following at the Terminal/Anaconda prompt:
136+
137+
```bash
138+
$ conda create --channel spyder-ide --name spyder-beta spyder=4.0.0b2
139+
$ conda activate spyder-beta
140+
$ spyder
141+
```
142+
143+
This is a safe process because Spyder now uses a different configuration
144+
directory for its development versions, so you can easily switch between our stable
145+
and beta releases without worrying about one affecting the other.
146+
147+
If you find any bugs, you can report them on our
148+
[issue tracker](https://github.com/spyder-ide/spyder/issues);
149+
make sure to search for your error message or behavior before making a new one.
150+
151+
## Closing remarks
152+
153+
I would like to thank Quansight for the opportunity of working in open source
154+
development on an awesome project like Spyder. I am also grateful to our
155+
users, [contributors](https://github.com/spyder-ide/spyder/graphs/contributors)
156+
and [core developers](https://github.com/orgs/spyder-ide/people) for helping
157+
making Spyder amazing!

β€Žapps/labs/public/posts/release-spyder-4beta2/blog_feature_var1.svgβ€Ž

Lines changed: 1 addition & 0 deletions
Loading

β€Žapps/labs/public/posts/release-spyder-4beta2/blog_hero_var1.svgβ€Ž

Lines changed: 1 addition & 0 deletions
Loading
226 KB
Loading
126 KB
Loading
216 KB
Loading
57.5 KB
Loading
180 KB
Loading

0 commit comments

Comments
Β (0)