-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
438 lines (380 loc) · 19.1 KB
/
index.html
File metadata and controls
438 lines (380 loc) · 19.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zoof — the interactive IDE for dynamic languages</title>
<link rel="stylesheet" href="_static/basic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/bootswatch-3.1.0/readable/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<link rel="stylesheet" href="_static/font-awesome-4.2.0/css/font-awesome.min.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="_static/js/jquery-fix.js"></script>
<script type="text/javascript" src="_static/bootstrap-3.1.0/js/bootstrap.min.js"></script>
<script type="text/javascript" src="_static/bootstrap-sphinx.js"></script>
<link rel="top" title="the interactive IDE for dynamic languages" href="#" />
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
<meta name="apple-mobile-web-app-capable" content="yes">
</head>
<body>
<div id="navbar" class="navbar navbar-default ">
<div class="container">
<div class="navbar-header">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">
Zoof</a>
<span class="navbar-text navbar-version pull-left"><b></b></span>
</div>
<div class="collapse navbar-collapse nav-collapse">
<ul class="nav navbar-nav">
<li class="divider-vertical"></li>
<li><a href="docs.html"><i class='fa fa-book'></i> Documentation</a></li>
<li><a href="http://github.com/zoofIO/zoof"><i class='fa fa-github'></i> Source</a></li>
<li class="dropdown globaltoc-container">
<a role="button"
id="dLabelGlobalToc"
data-toggle="dropdown"
data-target="#"
href="#">Zoof.io <b class="caret"></b></a>
<ul class="dropdown-menu globaltoc"
role="menu"
aria-labelledby="dLabelGlobalToc"><ul class="simple">
</ul>
</ul>
</li>
<li class="dropdown">
<a role="button"
id="dLabelLocalToc"
data-toggle="dropdown"
data-target="#"
href="#">Page <b class="caret"></b></a>
<ul class="dropdown-menu localtoc"
role="menu"
aria-labelledby="dLabelLocalToc"><ul>
<li><a class="reference internal" href="#">Purpose</a></li>
<li><a class="reference internal" href="#features">Features</a></li>
<li><a class="reference internal" href="#status">Status</a></li>
<li><a class="reference internal" href="#details">Details</a></li>
<li><a class="reference internal" href="#testimonials">Testimonials</a></li>
<li><a class="reference internal" href="#modern-features">Modern features</a></li>
</ul>
</ul>
</li>
</ul>
<form class="navbar-form navbar-right" action="search.html" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search" />
</div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-12">
</div></div></div>
<div class='splash'>
<!-- Undo divs that the template prepared -->
<div class="container">
<div class="row">
<!-- Maintain compact width -->
<div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
<center><img src="_static/zooflogo220.png" /></center>
<!-- The briefest summary for Zoof -->
<div class="shortest-summary">
Zoof - download, run, start coding!
</div>
<br />
<!---
<i class="fa fa-download"></i> Download
<i class="fa fa-play-circle"></i> Run
<i class="fa fa-child"></i> Coding!
-->
<!-- The brief summary for Zoof
Zoof is a simple and intuitive IDE that promotes a powerful
interactive workflow to use dynamic languages like Python, and helps
you get started quickly.
-->
<!-- The purpose (long summary) of Zoof -->
The purpose of Zoof is to lower the barriers for (scientific)
computing by providing a simple and intuitive IDE that promotes a
powerful interactive workflow to use dynamic languages like Python.
Getting started is easy, since Zoof can take care of installing the
programming language and additional packages.
<br /> <br />
We believe that making (scientific) computing easier accessible promotes
freedom and independence, and is an important step to make science
more reproducible.
</div></div></div>
</div> <!-- ex splash -->
<div class="container">
<div class="row">
<div class="col-md-12"><div class="section" id="purpose">
<h1>Purpose<a class="headerlink" href="#purpose" title="Permalink to this headline">¶</a></h1>
<p>Since most dynamic languages are easy to learn, they are well-suited
for education. Similarly, their interactive workflow provides many
<a class="reference external" href="http://www.almarklein.org/why_dynamic.html">benefits</a> for data analysis.
This is propably why dynamic programming languages are becoming
<a class="reference external" href="http://news.techworld.com/applications/3529457/python-bumps-off-java-as-top-learning-language/">increasingly popular</a> . For instance the
<a class="reference external" href="http://scipy.org/">Scientific Python</a> ecosystem is blooming and
provides powerful tools for science and data exploration. Exciting
development like
<a class="reference external" href="http://llvm.org/">LLVM</a>, <a class="reference external" href="http://pypy.org/">Pypy</a>,
<a class="reference external" href="http://julialang.org/">Julia</a>, <a class="reference external" href="http://kivy.org/">Kivy</a>,
<a class="reference external" href="http://asmjs.org/">ASM.js</a>
demonstrate that dynamic languages can be nearly as fast as compiled
languages.</p>
<p>All these tools are open source and free for anyone to use. So, whether
you’re a high-school kid who wants to create a game, a scientist who
wants to process some data, or anything in between, the tools you need
are probably there ...</p>
<p>However, newcomers often don’t know where to start, and the development
environments that most developers use are not well suited for beginners.
Zoof aims to reduce these obstacles by making it as easy as possible
to get access to the tools, and provides an intuitive environment to
use them.</p>
<p>We believe that the art of writing software can (and should) be a much
more common skill. Many exciting tools already exist; with Zoof we bring
them to a wide audience.</p>
</div>
<div class="section" id="features">
<h1>Features<a class="headerlink" href="#features" title="Permalink to this headline">¶</a></h1>
<p>(These are the features that Zoof <em>will</em> have, see status below)</p>
<div class="row">
<div class="col-md-4 col-sm-6">
<h4><i class="fa fa-rocket"></i> Get going quickly</h4>
With Zoof you can use programming languages that are already
installed, or you can easily spawn a new environment.
</div>
<div class="col-md-4 col-sm-6">
<h4><i class="fa fa-child"></i> Intuitive</h4>
Zoof minimizes clutter and provides information when the user needs
it. The tip system will help you adopt an efficient workflow
without getting in the way.
</div>
<div class="col-md-4 col-sm-6">
<h4><i class="fa fa-refresh"></i> Highly interactive</h4>
Run code from file, cell or selected lines with a single key combination.
Make use of powerful introspection tools like autocompletion, call tips,
interactive docs, and workspace.
</div>
<div class="col-md-4 col-sm-6">
<h4><i class="fa fa-thumbs-up"></i> Modern</h4>
Preserve state accross sessions, smart-open instead of tabs. No
more saving or closing of files, and more. (Some of these features will
be experimental at first.)
</div>
<div class="col-md-4 col-sm-6">
<h4><i class="fa fa-desktop"></i> Cross platform</h4>
Zoof is available on Windows, Linux and OS X. Binaries/installers
are provided for each platform. Zoof also runs on the Raspberry Pi!
</div>
<div class="col-md-4 col-sm-6">
<h4><i class="fa fa-plug"></i> Extensible</h4>
Zoof provides a well-documented API and an extension system to allow
others to write new functionality, tools, and support for new
programming languages.
</div>
<div class="col-md-4 col-sm-6">
<h4><i class="fa fa-group"></i> Open source</h4>
Zoof is free as in speech. Found a bug? Want a new feature? A
translation for your mother tongue? You can contribute to the
improvement of Zoof. The quality of our code is maintained by CI
that verifies our unit tests and style.
</div>
<div class="col-md-4 col-sm-6">
<h4><i class="fa fa-heart"></i> Always free</h4>
We believe that everyone should have access to good tools: Zoof is
free and always will be. Whatever business model we will adopt, the
free version shall not have any restrictions in functionality.
</div>
<div class="col-md-4 col-sm-6">
<h4><i class="fa fa-cloud"></i> Web-enabled</h4>
Zoof is build using web technologies, and can be hosted as a
web-application to e.g. drive a cloud computing platform.
</div>
</div></div>
<div class="section" id="status">
<h1>Status<a class="headerlink" href="#status" title="Permalink to this headline">¶</a></h1>
<p>Zoof is just getting started ...</p>
<p>Zoof can be seen as the successor of <a class="reference external" href="http://www.iep-project.org/">IEP</a> and
<a class="reference external" href="http://www.pyzo.org/">Pyzo</a>. Although quite successful, it’s time
to move things to the next level. Zoof essentially combines the two projects
in as single application. Further, we want to open up to other dynamic
programming languages, and we want to make the user interface more
intuitive and modern.</p>
<p>We start with a clean sheet, allowing us to lay a strong foundation
with a modular design, a well-documented public API, unit-tests, and
approporate coding style. From there we include the pieces from IEP and
Pyzo, while adapting them to the Zoof’s design principles. Along the
way, some functionality will be replaced by modern features (see below).
With this approach we think that we can get Zoof ready to roll in a
relative short amount of time, while achieving a healthy code-base for
future development. You can see the progress at
<a class="reference external" href="http://github.com/zoofIO/zoof/">our github repo</a>.</p>
<p>Since Januari 2015 we are actively developing Zoof. The first step is
developing a web-based GUI toolkit, which will form the basis for Zoof’s
UI.</p>
<p>If you would like to participate in any way, please contact
<a class="reference external" href="http://almarklein.org/">me</a>.</p>
</div>
<div class="section" id="details">
<h1>Details<a class="headerlink" href="#details" title="Permalink to this headline">¶</a></h1>
<p>Here is the main idea of Zoof: Download Zoof and start it up, set
up an environment with the language of your choice, and start coding.
An intuitive interface will guide novice users through the process, and
will provide tutorial materials if necessary. At the same time, the
interface does not get in the way and is powerful enough to support the
workflow of advanced programmers.</p>
<p>Zoof supports multiple progamming languages, focusing on dynamic
languages (which support the interactve work flow of Zoof). At first we
will focus on <a class="reference external" href="http://python.org/">Python</a> and
<a class="reference external" href="http://julia-lang.org/">Julia</a>, and other languages can be added via
an extension mechanism. Over time the languages that Zoof natively
supports will be increased.</p>
<p>Like IEP, Zoof will be available in multiple (natural) languages. Let
us know if you want to help with the translations!</p>
<p>Zoof will probably support two ways to provide kernels. On the one hand
we will piggy-back on the kernel mechanisms of
<a class="reference external" href="http://jupyter.org/">project Jupyter</a> (formerly IPython). On the
other hand, we are developing protocols that are aimed to be easy to
implement in any dynamic language, and have few dependencies.
Therefore, making Zoof work with a new language should be quite simple.
Imagine building a toy language with LLVM and being able to target it
from Zoof by spending one day implementinging a few simple protocols.</p>
<p>Zoof uses <a class="reference external" href="http://conda.pydata.org/">Conda</a> to spawn and manage new
environments. Conda already provides full-fledged support for several
version of the Python programming language. Via
<a class="reference external" href="http://binstar.org/">Binstar</a> it will be straightforward to allow Zoof
to spawn other languages as well.</p>
</div>
<div class="section" id="testimonials">
<h1>Testimonials<a class="headerlink" href="#testimonials" title="Permalink to this headline">¶</a></h1>
<p>Some encouraging <a class="reference external" href="http://www.iep-project.org/#testimonials">testimonials</a> from IEP
and Pyzo:</p>
<i class='fa fa-quote-left fa-1x pull-left'></i>
This is fantastic IDE - exactly what I was looking for!
<br /><br />
<i class='fa fa-quote-left fa-1x pull-left'></i>
For quite a while now I’ve been looking for a way to switch from
Matlab to Python. The last remaining problem was a lack of descent
IDE for interactive work. I do a lot of short calculations, so a
‘cell’ execution mode is crucial for me. Thanks again for a great
project!
<br /><br />
<i class='fa fa-quote-left fa-1x pull-left'></i>
I don’t even remember how I found IEP, so confused and desperate I
was testing [all available IDE’s] I could find. Installed it, and
10 minutes later I was coding, connecting with a glade created user
interface, and everything is running so well. I ain’t gonna change
now. IEP is my choice. Thank you very much, and keep up this amazing
work.
<br /><br />
<i class='fa fa-quote-left fa-1x pull-left'></i>
What I like especially of iep is the plain and simple design of the
UI [...] while providing really powerful functionality.
Please, keep this project running.
<br /><br />
<i class='fa fa-quote-left fa-1x pull-left'></i>
It’s performing beautifully, the UI is very intuitive and stylish
(to my eyes anyway). [...] This is a very impressive app, on OSX
close to alpha dog status (I’ve used ALL the OSX alternatives).
<br /><br /></div>
<div class="section" id="modern-features">
<h1>Modern features<a class="headerlink" href="#modern-features" title="Permalink to this headline">¶</a></h1>
<p>There are some features that we plan on incorporating (or at least
experiment with). The details need to be worked out, and much is still up
for discussion:</p>
<ul class="simple">
<li>Once Zoof has started, most interaction with the file system will be
done via a proxy that runs in a dedicated thread, so that Zoof remains
responsive even if your hard drive is busy. This is already implemented in
IEP’s file browser tool. This approach can later be extended to transparently
map remote file systems (e.g. cloud computing).</li>
<li>No more tabs, only one file is “open” at a time. Begone with the
old-fashioned concept of unsaved files. Just edit each file directly.
The state of each file (cursor position, undo, etc.) is preserved once you
re-open it. Open/select a file by typing in a
text field, which will smartly suggest recent files and files that match
the part of the file name that you wrote. The idea is similar to
Sublime’s “open anything” and Zed’s method for opening files. Don’t
worry, we will also include IEP’s powerful file browser that has
support for filename filters and search.</li>
<li>No more menu bar. Each component of Zoof has its own small menu that only
lists functionality specific to that component. Instead of searching for
functionality in the global menu, you simply select the menu of the component
to which the required functionality applied.</li>
<li>A generic “tip” mechanism to guide novel users in using Zoof, that is easily
put out of the way when (no longer) needed. Also give hints about
keyboard shortcuts to help users adopt an effective workflow. The
same system provides extra information on menu items and
user-settings. This should help keep the UI simple and clutter-free
while making it easy to get more information when needed.</li>
<li>Source structure tool (like IEP has) is shown in the editor itself and is
only shown when ALT (or another key?) is pressed down. This should
reduce clutter while still making it easy to get an overview of your
code. Will need to see how this works out in practice though.</li>
<li>Concept of “pages”. Much functionality is provided via pages that are
displayed in the area where your code is normally displayed. E.g.
configuration options can be accessed by selectig “zoof:config” as a
“file name”. This reduces the amount of dialogs popping up, and makes
Zoof very easy to extend. Common pages can easily be loaded via a menu
option.</li>
<li>The start page (which can be accessed using a single click) provides a quick
way to common tasks, like launching and managing environments.</li>
<li>Zoof will get an extension mechanism to make it easy to register extenstions
that provide new pages, tools, and other functionality to customize Zoof
to your needs.</li>
</ul>
<div class="toctree-wrapper compound">
<ul class="simple">
</ul>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<ul class="list-inline">
<li class="pull-right"><a href="#">Back to top</a></li>
</ul>
<ul class="list-unstyled small">
<li>Copyright <i class='fa fa-copyright'></i> 2014 Almar Klein</li>
<li>Code licensed under
<a href="http://opensource.org/licenses/BSD-2-Clause">BSD license</a>,
website and documentation under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0 </a>
</li>
<!--
<li>
Made with <a href="http://sphinx-doc.org">sphinx</a> using the excellent
<a href="https://github.com/ryan-roemer/sphinx-bootstrap-theme">bootstrap theme</a>
</li>
-->
</ul>
</div>
</footer>
</body>
</html>