Skip to content
This repository has been archived by the owner on Sep 12, 2024. It is now read-only.

Commit

Permalink
Merge pull request #520 from Jaseci-Labs/jaclang_docs
Browse files Browse the repository at this point in the history
[DOCS] Update jac-lang.org docs
  • Loading branch information
marsninja authored Jul 30, 2024
2 parents 0d076f1 + 64f0160 commit 100e8cd
Show file tree
Hide file tree
Showing 7 changed files with 125 additions and 26 deletions.
17 changes: 17 additions & 0 deletions support/jac-lang.org/docs/index copy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Welcome to Jac

**Jac** combines the power and flexibility of Python's ecosystem and 'pythonic' coding style with a unique 'jactastic' approach to programming. It draws inspiration from a variety of programming languages to improve upon Python to create an engaging, productive, and intuitive coding experience, giving the coder all of python's power, plus superpowers. Additionally, Jac introduces a keystone innovation that may prove to be a monumental advancement in programming languages called the **Data Spatial Programming Model**.

Just as Object-Oriented Programming (OOP) brought a higher level of abstraction to C and Fortran's functions offered a new way to manage assembly code, Jac introduces Data Spatial Programming constructs expanding on the concept of OOP. This new model is a higher-level abstraction that lets programmers rethink how they interact with data structures, and enable new ways of thinking and being productive.

That being said, Jac was meticulously designed to provide a seamless gradient of expressiveness allowing coders to code in a familiar pythonic style, while using as much or as little data spatial semantics as they'd like.

## A Love Letter to Python, and Beyond

Jac's design encapsulates a love for the world of programming, computers, and code. It captures the spirit of what makes coding joyful while expanding upon the foundation laid by the beloved language - Python. At its core, Jac is a love letter to Python and modern coding. It inherits the clean syntax, flexibility, and broad applicability that makes Python one of the most popular programming languages in the world while being designed to give us coders new (and old) superpowers.

## A New Home Language

The goal of Jac is to serve as a home language for a coders lifestyle. Jac is built for us, folks who love python, see coding as beauty, and are serious hackers aiming to launch everything they do to the world. It is the language that I've always wanted and one that I believe you will enjoy too. We are looking forward to seeing what you will create with Jac, and how you will add to its evolving story.

Join us on this exciting journey. Let's make code art with Jac.
54 changes: 52 additions & 2 deletions support/jac-lang.org/docs/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,54 @@
# Welcome to Jac
#
<div class="hero" style="background-color: var(--bg-color); padding: 2rem; text-align: center;">
<div class="container">
<div style="display: flex; align-items: center; justify-content: center;">
<img src="https://www.jac-lang.org/assets/logo.png" alt="Jac Logo" width="150rem"/>
<div style="color: var(--hero-text-color); font-size: 4rem; font-weight: 600; margin-left: 1rem; font-family: 'Roboto', sans-serif; display: flex; flex-direction: column; align-items: flex-start;">
Jac-Lang
<span style="font-size: 1.2rem; font-style: italic; font-weight: 100; margin: 0; color: var(--hero-text-color);">
~ Imagine, Create, Launch ~
</span>
</div>
</div>
</div>
</div>

<div class="grid cards" style="text-align: center;" markdown>

[Dive into Jac!](start/about.md){ .md-button }

</div>

<div class="grid cards" markdown>

- <span style="color: orange; font-weight: bold">Jac supersets Python</span>

---

*Jac is a drop-in replacement for Python and supersets Python, much like Typescript supersets Javascript or C++ supersets C.*

- <span style="color: orange; font-weight: bold">Novel Code Construct for AI</span>

---

*Jac introduces a new way programmers can integrate LLMs into their code. Simply replace a function body with an llm call, need for prompt engineering, learning extensive libraries and complicated new syntaxes.*



- <span style="color: orange; font-weight: bold">Beyond OOP</span>

---

*Jac introduces super OOP constructs for a new paradigmn called data spatial OOP, enhancing the handling and visualization of data in ways traditional programming paradigms might not support.*

- <span style="color: orange; font-weight: bold">Cloud Native Abstractions</span>

---

*Jac makes persistence and user concepts part of the language, enabling simple programs to run unchanged in terminals or across clouds. Jac streamlines development by removing the need for dev ops and cloud setup.*

</div>
<!-- # Welcome to Jac
**Jac** combines the power and flexibility of Python's ecosystem and 'pythonic' coding style with a unique 'jactastic' approach to programming. It draws inspiration from a variety of programming languages to improve upon Python to create an engaging, productive, and intuitive coding experience, giving the coder all of python's power, plus superpowers. Additionally, Jac introduces a keystone innovation that may prove to be a monumental advancement in programming languages called the **Data Spatial Programming Model**.
Expand All @@ -14,4 +64,4 @@ Jac's design encapsulates a love for the world of programming, computers, and co
The goal of Jac is to serve as a home language for a coders lifestyle. Jac is built for us, folks who love python, see coding as beauty, and are serious hackers aiming to launch everything they do to the world. It is the language that I've always wanted and one that I believe you will enjoy too. We are looking forward to seeing what you will create with Jac, and how you will add to its evolving story.
Join us on this exciting journey. Let's make code art with Jac.
Join us on this exciting journey. Let's make code art with Jac. -->
18 changes: 9 additions & 9 deletions support/jac-lang.org/docs/start.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# **Getting Started with Jac-Lang**
# <span style="color: orange; font-weight: bold">Getting Started with Jac-Lang</span>

Welcome to Jac, if you know python, there's near zero learning curve to get started.
If you know python, there's near zero learning curve to get started.

<div class="grid cards" markdown>

Expand All @@ -24,29 +24,29 @@ Welcome to Jac, if you know python, there's near zero learning curve to get star

</div>

## Features in Jac-Lang
## <span style="color: orange">Features in Jac-Lang</span>

While Python is widely regarded for its simplicity and versatility, jac lang offers several advantages, particularly in terms of readability, flexibility, and type safety. By addressing some of the shortcomings of Python, jac lang provides developers with a more robust and scalable alternative for building modern applications.

<!-- - Full-stack programming language
- Jaclang empowers developers to create both front-end and back-end components of their applications using a single language. This eliminates the need to switch between different programming languages and frameworks, resulting in a more cohesive and efficient development experience. -->

- Supersets Python
- **Supersets Python**
- As TypeScript supersets JavaScript, Jac-Lang is a language which was built on top of python which all pythony goodness available to all jac-lang programmers while including the entire python ecosystem, available to use.

- Offers more readable code
- **Offers more readable code**
- By adopting a clean and intuitive syntax, Jac Lang makes it easier for developers and coders to write code that is easy to understand and maintain.

- More flexible than python, in terms of styling the code
- **More flexible than python, in terms of styling the code**
- As jac lang uses syntax where multiline comments, multiline function declerations and more, which allows the user to arrange arguments, lists, dictionaties and other list-like objects in a readable format.

- Type safe to support large codebases
- **Type safe to support large codebases**
- Jac lang prioritizes type safety to support the development of large-scale applications. By enforcing strict type checking, jac lang helps identify potential errors at compile time, rather than runtime, leading to more robust and reliable code.

- Data Spatial Programming
- **Data Spatial Programming**
- Jac Lang's programming approach focuses on data-spatial constructs, enhancing the handling and visualization of data in ways traditional programming paradigms might not support.

- Programming with Large Language Models
- **Programming with Large Language Models**
- Jac-lang has an up & coming feature which allows programmers to integrate LLMs into their programming pipeline seamlessly without the need for learning extensive libraries and complicated new syntaxes.
<!-- ## Integrating Jac into Python Modules
Expand Down
28 changes: 28 additions & 0 deletions support/jac-lang.org/docs/start/about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<h1 style="color: orange; font-weight: bold; text-align: center;">Welcome to Jac</h1>

**Jac** combines the power and flexibility of Python's ecosystem and 'pythonic' coding style with a unique 'jactastic' approach to programming. It draws inspiration from a variety of programming languages to improve upon Python to create an engaging, productive, and intuitive coding experience, giving the coder all of python's power, plus superpowers. Additionally, Jac introduces a keystone innovation that may prove to be a monumental advancement in programming languages called the **Data Spatial Programming Model**.

Just as Object-Oriented Programming (OOP) brought a higher level of abstraction to C and Fortran's functions offered a new way to manage assembly code, Jac introduces Data Spatial Programming constructs expanding on the concept of OOP. This new model is a higher-level abstraction that lets programmers rethink how they interact with data structures, and enable new ways of thinking and being productive.

That being said, Jac was meticulously designed to provide a seamless gradient of expressiveness allowing coders to code in a familiar pythonic style, while using as much or as little data spatial semantics as they'd like.


## <span style="color: orange;">A Love Letter to Python, and Beyond</span>
Jac's design encapsulates a love for the world of programming, computers, and code. It captures the spirit of what makes coding joyful while expanding upon the foundation laid by the beloved language - Python. At its core, Jac is a love letter to Python and modern coding. It inherits the clean syntax, flexibility, and broad applicability that makes Python one of the most popular programming languages in the world while being designed to give us coders new (and old) superpowers.

## <span style="color: orange;">A New Home Lagugae</span>

The goal of Jac is to serve as a home language for a coders lifestyle. Jac is built for us, folks who love python, see coding as beauty, and are serious hackers aiming to launch everything they do to the world. It is the language that I've always wanted and one that I believe you will enjoy too. We are looking forward to seeing what you will create with Jac, and how you will add to its evolving story.

Join us on this exciting journey. Let's make code art with Jac.

<div class="grid cards" style="text-align: center; border: 2px;" markdown="1">

- __<span style="color: orange;">**Getting Started with Jac**</span>__

---

*To get you started working with Jac Lang, this guide will walk you through the process of installation and running Jac files.*

[Getting Started with Jac-lang!](../start.md){ .md-button }
</div>
10 changes: 6 additions & 4 deletions support/jac-lang.org/docs/start/installation.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# **Installing Jac-Lang**
# <span style="color: orange; font-weight: bold">Installing Jac-Lang</span>

Firstly make sure that Python 3.12 or higher is installed in your environment, then simply install Jac using pip:

Expand All @@ -25,7 +25,8 @@ Once you've got Jaclang installed, just give the Jac CLI a try to make sure ever
>
> If these commands prints ```hello world``` you are good to go.

## Supportive Jac CLI commands
## <span style="color: orange">Supportive Jac CLI commands
</span>

- Clean cached files (recommended after each run):
```bash
Expand All @@ -37,9 +38,10 @@ Once you've got Jaclang installed, just give the Jac CLI a try to make sure ever
```
- Visit [https://dreampuf.github.io/GraphvizOnline/](https://dreampuf.github.io/GraphvizOnline/) to visualize the graph.

## Installing the VS Code Extention
## <span style="color: orange">Installing the VS Code Extention
</span>

In addition to setting up JacLang itself, you may also want to take advantage of the JacLang language extension for Visual Studio Code (VSCode). This will give you enhanced code highlighting, autocomplete, and other useful language features within your VSCode environment.

- To install just visit the VS Code marketplace and install,
- [Jac Analyzer](https://marketplace.visualstudio.com/items?itemName=jaseci-labs.jaclang-extension)
- [Jac](https://marketplace.visualstudio.com/items?itemName=jaseci-labs.jaclang-extension)
2 changes: 1 addition & 1 deletion support/jac-lang.org/docs/start/jac_in_a_flash.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# **Jac in a Flash**
# <span style="color: orange; font-weight: bold">Jac in a Flash</span>

Here we demonstrate an example where the ```guess_game.py``` python program, which implements a guess the number game, is converted to jac-lang, which is shown in ```guess_game1.jac```. This Transformation has a one-to-one mapping with the python program.

Expand Down
22 changes: 12 additions & 10 deletions support/jac-lang.org/mkdocs.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,29 @@
site_name: The Jac Programming Language
site_url: https://jac-lang.org
nav:
- ~$: 'index.md'
- ~/start$:
- Home: 'index.md'
- Start:
- 'start/about.md'
- 'start.md'
- 'start/installation.md'
- 'start/jac_in_a_flash.md'
- ~/learn$:
- ~/for_coders:
- Learn:
- For coders:
- 'learn/guide.md'
- 'learn/jac_ref.md'
- 'learn/with_llm.md'
- 'learn/tips_tricks.md'
- 'learn/jac_plugins.md'
- ~/for_contributors:
- For contributors:
- 'learn/contrib.md'
- ~/w.i.p$:
- W.I.P:
- 'learn/ast_doc.md'
- ~/projects$:
- projects:
- 'projects/auto_ref.md'

- ~/why$: 'why.md'
- Why: 'why.md'
# - ~/roadmap$: 'roadmap.md'
- ~/github$: https://github.com/Jaseci-Labs/jaclang
- Github: https://github.com/Jaseci-Labs/jaclang

theme:
logo: 'assets/logo.png'
Expand All @@ -40,6 +41,7 @@ theme:
- navigation.tracking
- navigation.tabs
- navigation.path
- navigation.footer
icon:
admonition:
note: octicons/tag-16
Expand Down Expand Up @@ -91,7 +93,7 @@ extra:
social:
- icon: fontawesome/brands/mastodon
link: https://fosstodon.org/@squidfunk
copyright: Copyright &copy; 2023 - 20XX Jac Hackers Everwhere
copyright: Copyright &copy; 2023 - 2024 Jac Hackers Everwhere

plugins:
- search
Expand Down

0 comments on commit 100e8cd

Please sign in to comment.