CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
sagemathinc

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

GitHub Repository: sagemathinc/cocalc
Path: blob/master/src/packages/next/pages/features/julia.tsx
Views: 687
1
/*
2
* This file is part of CoCalc: Copyright © 2021 Sagemath, Inc.
3
* License: MS-RSL – see LICENSE.md for details
4
*/
5
6
import { Layout } from "antd";
7
8
import { Icon } from "@cocalc/frontend/components/icon";
9
import Content from "components/landing/content";
10
import Footer from "components/landing/footer";
11
import Head from "components/landing/head";
12
import Header from "components/landing/header";
13
import Image from "components/landing/image";
14
import Info from "components/landing/info";
15
import Pitch from "components/landing/pitch";
16
import SignIn from "components/landing/sign-in";
17
import Snapshots from "components/landing/snapshots";
18
import { Paragraph, Title } from "components/misc";
19
import A from "components/misc/A";
20
import { Customize } from "lib/customize";
21
import withCustomize from "lib/with-customize";
22
import juliaCode from "public/features/julia-code.png";
23
import splash from "public/features/julia-jupyter.png";
24
import logo from "public/features/julia-logo.svg";
25
import nbgraderScreenshot from "public/features/julia-nbgrader.png";
26
import plutoLogo from "public/features/pluto-logo.svg";
27
import plutoScreenshot from "public/features/pluto-plot.png";
28
29
const component = "Julia";
30
const title = `Run ${component} Online`;
31
32
export default function Julia({ customize }) {
33
return (
34
<Customize value={customize}>
35
<Head title={title} />
36
<Layout>
37
<Header page="features" subPage="julia" runnableTag="jl" />
38
<Layout.Content>
39
<Content
40
landing
41
startup={component}
42
body={logo}
43
title={title}
44
subtitleBelow={true}
45
subtitle={
46
<>
47
<div>
48
Run {component} scripts, <A href="">Pluto notebooks</A>,{" "}
49
<A href="/features/jupyter-notebook">Jupyter notebooks</A> in
50
a full, online environment.
51
</div>
52
</>
53
}
54
image={splash}
55
alt={
56
"Using Julia in a Jupyter notebook to plot and do symbolic computation"
57
}
58
/>
59
<Pitch
60
col1={
61
<>
62
<Title level={2}>
63
<Icon name="julia" /> Run{" "}
64
<A href="https://julialang.org/">Julia</A> on CoCalc
65
</Title>
66
<Paragraph>
67
<ul>
68
<li>
69
Use CoCalc's own realtime collaborative{" "}
70
<strong>
71
<A href="/features/jupyter-notebook">
72
Jupyter Notebooks
73
</A>
74
</strong>
75
.
76
</li>
77
<li>
78
Use Julia from the collaborative,{" "}
79
<strong>
80
<A href="/features/terminal">Linux Terminal</A>
81
</strong>{" "}
82
or{" "}
83
<A href="/features/x11">
84
virtual X11 graphical Linux desktop
85
</A>
86
.
87
</li>
88
<li>
89
Easily launch a{" "}
90
<A href="https://doc.cocalc.com/howto/pluto.html">
91
Pluto.jl notebook server
92
</A>{" "}
93
in your CoCalc project.
94
</li>
95
</ul>
96
</Paragraph>
97
98
<Title level={2}>Packages</Title>
99
<Paragraph>
100
CoCalc includes over 500{" "}
101
<A href="/software/julia">pre-installed Julia packages,</A>{" "}
102
and if something is missing you can{" "}
103
<A href="https://doc.cocalc.com/howto/install-julia-package.html">
104
easily install more packages.
105
</A>
106
</Paragraph>
107
</>
108
}
109
col2={
110
<>
111
<Title level={2}>Benefits of working with Julia online</Title>
112
<Paragraph>
113
<ul>
114
<li>
115
You no longer have to{" "}
116
<strong>install and maintain</strong> Julia. In particular
117
when you're{" "}
118
<A href="/features/teaching">teaching a class</A>,
119
students just have to sign in to CoCalc to get started!
120
</li>
121
<li>
122
All your files are private, stored persistently,
123
snapshotted and backed up.
124
</li>
125
<li>
126
You can invite <strong>collaborators</strong> to your
127
project to simultaneously edit the same notebooks or code
128
files.
129
</li>
130
<li>
131
Everything runs remotely, which means you do not have to
132
worry about messing up your own computer.{" "}
133
</li>
134
</ul>
135
</Paragraph>
136
</>
137
}
138
/>
139
140
<SignIn startup={component} />
141
142
<Info.Heading
143
description={
144
<>There are many ways to use {component} online via CoCalc.</>
145
}
146
>
147
Feature Overview
148
</Info.Heading>
149
150
<Info
151
title={
152
<>
153
<A href="https://github.com/fonsp/Pluto.jl#readme">
154
<Image
155
src={plutoLogo}
156
height={70}
157
width={250}
158
alt="the Pluto.jl Logo"
159
/>
160
<br />
161
Use Reactive Notebooks Built for Julia
162
</A>
163
</>
164
}
165
image={plutoScreenshot}
166
alt={"A screenshot of the Pluto notebook."}
167
anchor="pluto"
168
wide
169
>
170
<Paragraph>
171
You can use the{" "}
172
<A href="https://doc.cocalc.com/howto/pluto.html">
173
Pluto.jl notebook server
174
</A>{" "}
175
in any CoCalc project. Pluto is an open source lightweight and
176
reactive notebook written in Julia.
177
</Paragraph>
178
</Info>
179
180
<Info
181
title={"Teach using Julia and Nbgrader"}
182
image={nbgraderScreenshot}
183
alt={"A screenshot using nbgrader with Julia."}
184
anchor="nbgrader"
185
>
186
<Paragraph>
187
CoCalc's{" "}
188
<A href="/features/teaching">
189
integrated course management system
190
</A>{" "}
191
fully supports{" "}
192
<A href="https://doc.cocalc.com/teaching-nbgrader.html">
193
using nbgrader together with Julia
194
</A>{" "}
195
Jupyter Notebooks.
196
</Paragraph>
197
<Paragraph>
198
We provide custom Julia templates for all the nbgrader cell types.
199
</Paragraph>
200
<Paragraph>
201
Tests run in the student's project, so malicious code won't impact
202
anybody except the student.
203
</Paragraph>
204
</Info>
205
206
<Info
207
title={"Collaboratively Edit and Run Julia Code"}
208
image={juliaCode}
209
alt={"A screenshot involving Julia code, a terminal, and chat."}
210
anchor="code"
211
>
212
<Paragraph>
213
CoCalc includes a realtime collaborative Julia code editor with
214
syntax highlighting and code folding.
215
</Paragraph>
216
<Paragraph>
217
You can also run Julia code in a terminal side-by-side the .jl
218
file you are editing.
219
</Paragraph>
220
<Paragraph>
221
In addition, you can chat with other CoCalc users about your code.
222
</Paragraph>
223
</Info>
224
225
<Snapshots />
226
227
<SignIn startup={component} />
228
</Layout.Content>
229
<Footer />
230
</Layout>
231
</Customize>
232
);
233
}
234
235
export async function getServerSideProps(context) {
236
return await withCustomize({ context });
237
}
238
239