setonas

Setonas Programming Language

View the Project on GitHub

Setonas

Gitter chat

Setonas is a programming language created in the secret labs of Bell Labs.

This is the first language that supports reverse versioning.

Thanks to him, there is no problem with backwards compatibility.

Setonas in its releases is moving from version 3.4.6 to 0.0, which will be the absolute in programming languages.

There will not be any bugs and the language will run faster than the machine code.

The first release of Setonas is version 3.4.6, which was released on April 1, 2017.

It is believed that from this moment the world lives on a new calendar -

Before the appearance of Setonas and After the appearance of Setonas.

Setonas is Python-based and translated into the Lithuanian language, as it is more receptive for reading.

Facts about Setonas

At the moment, Setonas is used by such gigants as:

Conceptually Setonas very similar to other programming languages, as took the best of them.

Try Setonas in Docker

docker pull setonas/setonas
docker run -it setonas/setonas

How-to contributing

You can become a core developer of Setonas very simply - by purchasing a T-shirt. Buy

Syntax example

You can simply run a .se file by using

setonas example.se

For education purposes lets try to understand butelis.se:

apibrėžti WSGIHandler(aplin, pradžia_atsakymas):
    globalinis prašymas
    globalinis atsakymas
    prašymas.įpareigoti(aplin)
    atsakymas.įpareigoti()
    bandyti:
        prižiūrėtojas, argi = rungtynės_url(prašymas.kelias, prašymas.metodas)
        jei not prižiūrėtojas:
            kelti HTTPKlaida(404, "Nerastas")
        produkcija = prižiūrėtojas(**argi)
    išskyrus BreakButelio kaip antsparnis:
        produkcija = antsparnis.produkcija
    išskyrus Exception kaip išimtis:
        atsakymas.statusas = getattr(išimtis, 'http_statusas', 500)
        klaidaprižiūrėtojas = KLAIDA_HANDLER.get(atsakymas.statusas, klaida_nutylėjimą)
        bandyti:
            produkcija = klaidaprižiūrėtojas(išimtis)
        išskyrus:
            produkcija = "Išimtis per klaidos prižiūrėtojas! Prašymas sustabdyti."

        jei atsakymas.statusas == 500:
            prašymas._aplin['wsgi.errors'].write("Error (500) on '%s': %s\n" % (prašymas.kelias, išimtis))

    db.uždaryti()
    jei turiatrib(produkcija, 'read'):
        failąišvesties = produkcija
        jei 'wsgi.file_wrapper' iš aplin:
            produkcija = aplin['wsgi.file_wrapper'](failąišvesties)
        kitas:
            produkcija = iter(lambda: failąišvesties.read(8192), '')
    kijei isinstance(produkcija, stg):
        produkcija = [produkcija.encode()]

    dėl c iš atsakymas.SLAPUKAI.values():
        atsakymas.antraštė.papildyti('Set-Cookie', c.OutputString())
    statusas = '%d %s' % (atsakymas.statusas, HTTP_KODAI[atsakymas.statusas])
    pradžia_atsakymas(statusas, sąrašas(atsakymas.antraštė.daiktai()))
    sugrįžti produkcija

Ecosystem

Butelis

Setonas has the first web framework - butelis.

Here is an example.se with its using:

nuo butelis importas maršrutas, paleisti, prašymas, atsakymas, siųsti_failą, nutraukti, db, ButelisKibiras

kibiras = ButelisKibiras('kibaras1')
kibiras['mano_vardas'] = None

@maršrutas('/')
apibrėžti sveiki_pasaulis():
    jei kibiras['mano_vardas']:
        sugrįžti "Jūs buvote %s" % kibiras['mano_vardas']
    sugrįžti 'Sveiki Pasaulis!'

@maršrutas('/sveiki/:vardas')
apibrėžti sveiki_vardas(vardas):
    kibiras['mano_vardas'] = vardas
    sugrįžti 'Sveiki %s!' % vardas

@maršrutas('/sveiki', metodas='POST')
apibrėžti sveiki_paštas():
    vardas = prašymas.PAŠTAS['vardas']
    sugrįžti 'Sveiki %s!' % vardas

@maršrutas('/statinio/:failo_pavadinimas#.*#')
apibrėžti statinio_failą(failo_pavadinimas):
    siųsti_failą(failo_pavadinimas, šaknis='/path/to/static/files/')

paleisti(kariuomenė='localhost', uostas=8080)

MagicSetonas

MagicSetonas

MagicSetonas is used to highlight syntax in:

Language Design

Here is some language design, that you can use:

if/else

if -> jei
elif -> kijei
else -> kitas

def

def -> apibrėžti

try/except/else/finally

try -> bandyti
except -> išskyrus
else -> kitas
finally -> pagaliau

import/from/as

import -> importas
from -> nuo
as -> kaip

raise

raise -> kelti

return

return -> sugrįžti

for/in

for -> dėl
in -> iš

yield from

yield -> duoti
from -> nuo

class

class -> rūšis

continue/break/pass

continue ->tęsti
break -> pertrauka
break -> pereiti

del

del -> pan

global/nonlocal

global -> globalinis
nonlocal -> nelokaliosiomis

assert

assert -> teigti

while

while -> kol

with/as

with -> su
as -> kaip

lambda

lambda -> liambda

property

property -> nuosavybė

isinstance

isinstance -> yrainstancija

getattr

getattr -> gautiatrib

or/and/not

or -> arba
and -> ir
not -> nebūtų

os module

os -> vs
os.path -> vs.kelias
os.name -> vs.vardas
os.curdir -> vs.dabkat
os.pardir -> vs.tėvųkat
os.sep -> vs.sep
os.extsep -> vs.pratsep
os.altsep -> vs.pakasep
os.pathsep -> vs.kelsep
os.linesep -> vs.linisep
os.defpath -> vs.numamarš
os.devnull -> vs.asilas

int/list/object/str

int -> sveik
list -> sąrašas
object -> objektas
str ->stg

True/False

True -> Tiesa
False -> Netikras

None

None -> Joks

abs/all/any

abs -> abs (absoliutus)
all -> visi
any -> koks

sum/min/max

sum -> suma
min -> min (minimumas)
max -> maks

next

next -> sekantis

len/hasattr

len -> ilgis
hasattr -> turiatrib

range/iter

range -> diapazonas
iter -> iter

print

print -> spausdinti

in

in -> iš

This is an April Fools’ joke =)