Seed (programming)

Last updated
Seed
Developer(s) Robert Carr, Matt Arsenault and Tim Horton
Initial releaseNovember 8, 2008;14 years ago (2008-11-08)
Stable release
3.8.1 / April 16, 2013;10 years ago (2013-04-16)
Repository
Written in C
Available inEnglish
Type Interpreter, library
License GNU LGPL
Website wiki.gnome.org/Projects/Seed

Seed is a JavaScript interpreter and a library of the GNOME project to create standalone applications in JavaScript. [1] It uses the JavaScript engine JavaScriptCore of the WebKit project. It is possible to easily create modules in C.

Contents

Seed is integrated in GNOME since the 2.28 version and is used by two games in the GNOME Games package. [2] It is also used by the Web web browser for the design of its extensions. The module is also officially supported by the GTK+ project. [3]

Hello world in Seed

This example uses the standard output to output the string "Hello, World".

#!/usr/bin/env seedprint("Hello, world!");

A program using GTK+

This code shows an empty window named "Example".

#!/usr/bin/env seedGtk=imports.gi.Gtk;Gtk.init(Seed.argv);varwindow=newGtk.Window({title:"Example"});window.signal.hide.connect(Gtk.main_quit);window.show_all();Gtk.main();

Modules

To use a module, just instantiate a class having for name imports. followed by the name of the module respecting the case sensitivity.

List of the Seed versions

The names of the versions of Seed are albums of famous rock bands.

VersionCode NameRelease Date
0.18 November 2008
0.3 Wednesday Morning 3AM 2 January 2009
0.5 Transformer 16 April 2009
0.6 Beatles for Sale 29 April 2009
0.7 Another Side of Bob Dylan 13 May 2009
0.8 Bringing It All Back Home 29 May 2009
0.8.5 Self Portrait 10 July 2009
2.27.90 London Calling 10 August 2009
2.27.91 Yellow Submarine 21 August 2009
2.27.92 Metal Machine Music 7 September 2009
2.28.0 The Rise and Fall of Ziggy Stardust and the Spiders 21 September 2009
2.29.2 Never Mind the Bollocks 16 November 2009
2.29.330 November 2009
2.29.417 December 2009
2.29.5 Icky Thump 1 January 2010
2.29.5.1 Achtung Baby 1 January 2010
2.29.5.2 Third Stage 7 January 2010
2.29.5.3 Twist and Shout 11 January 2010
2.29.90 Fort Nightly 8 February 2010
2.29.91 Greatest Hits 23 February 2010
2.30.0 Piano Man 29 March 2010
2.31.1 The Black Album 29 March 2010

See also

Related Research Articles

<span class="mw-page-title-main">GNOME Web</span> Free and open-source web browser for Unix-like systems

GNOME Web, called Epiphany until 2012 and still known by that code name, is a free and open-source web browser based on the GTK port of Apple's WebKit rendering engine, called WebKitGTK. It is developed by the GNOME project for Unix-like systems. It is the default and official web browser of GNOME, and part of the GNOME Core Applications.

WebKit is a browser engine developed by Apple and primarily used in its Safari web browser, as well as all web browsers on iOS and iPadOS. WebKit is also used by the PlayStation consoles beginning from the PS3, the Tizen mobile operating systems, the Amazon Kindle e-book reader, Nintendo consoles beginning from the 3DS Internet Browser, and the discontinued BlackBerry Browser. WebKit's C++ application programming interface (API) provides a set of classes to display Web content in windows, and implements browser features such as following links when clicked by the user, managing a back-forward list, and managing a history of pages recently visited.

<span class="mw-page-title-main">PyQt</span> Python GUI library

PyQt is a Python binding of the cross-platform GUI toolkit Qt, implemented as a Python plug-in. PyQt is free software developed by the British firm Riverbank Computing. It is available under similar terms to Qt versions older than 4.5; this means a variety of licenses including GNU General Public License (GPL) and commercial license, but not the GNU Lesser General Public License (LGPL). PyQt supports Microsoft Windows as well as various kinds of UNIX, including Linux and MacOS.

<span class="mw-page-title-main">PyGTK</span> Set of Python wrappers for the GTK graphical user interface library

PyGTK is a set of Python wrappers for the GTK graphical user interface library. PyGTK is free software and licensed under the LGPL. It is analogous to PyQt/PySide and wxPython, the Python wrappers for Qt and wxWidgets, respectively. Its original author is GNOME developer James Henstridge. There are six people in the core development team, with various other people who have submitted patches and bug reports. PyGTK has been selected as the environment of choice for applications running on One Laptop Per Child systems.

Cairo (graphics) Vector graphics-based software library

Cairo is an open-source graphics library that provides a vector graphics-based, device-independent API for software developers. It provides primitives for two-dimensional drawing across a number of different back ends. Cairo uses hardware acceleration when available.

<span class="mw-page-title-main">GObject</span>

The GLib Object System, or GObject, is a free software library providing a portable object system and transparent cross-language interoperability. GObject is designed for use both directly in C programs to provide object-oriented C-based APIs and through bindings to other languages to provide transparent cross-language interoperability, e.g. PyGObject.

<span class="mw-page-title-main">GLib</span> Software library

GLib is a bundle of three low-level system libraries written in C and developed mainly by GNOME. GLib's code was separated from GTK, so it can be used by software other than GNOME and has been developed in parallel ever since.

<span class="mw-page-title-main">GDK</span> Software library

GDK is a library that acts as a wrapper around the low-level functions provided by the underlying windowing and graphics systems. GDK lies between the display server and the GTK library, handling basic rendering such as drawing primitives, raster graphics (bitmaps), cursors, fonts, as well as window events and drag-and-drop functionality.

The Linux Desktop Testing Project (LDTP) is an open-source testing tool that uses computer assistive technology to automate GUIs. The GUI functionality of an application can be tested in Windows, Mac, Linux, Solaris, FreeBSD and embedded environments. The Mac OS X version is called PyATOM, and the Windows version is Cobra.

Tkinter is a Python binding to the Tk GUI toolkit. It is the standard Python interface to the Tk GUI toolkit, and is Python's de facto standard GUI. Tkinter is included with standard Linux, Microsoft Windows and macOS installs of Python.

<span class="mw-page-title-main">Clearlooks</span> Theme for GTK

Clearlooks is a theme for GTK, the main widget toolkit used by the GNOME desktop environment. It is based on Red Hat's Bluecurve theme. It was the default theme for GNOME since version 2.12 until GNOME 3 when it was replaced by Adwaita. Many users have contributed themes that have changed the colors and some visual effects, leading to many derivative themes.

Libart is a free software graphics library of functions for 2D graphics supporting a superset of the PostScript imaging model. Libart was designed to be integrated with graphics, artwork, and illustration programs. It is written in optimized C and is fully compatible with C++. With a small footprint of 10,000 lines of code, it is especially suitable for embedded applications.

<span class="mw-page-title-main">Vala (programming language)</span> Programming language

Vala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system.

Clutter is a discontinued GObject-based graphics library for creating hardware-accelerated user interfaces. Clutter is an OpenGL-based 'interactive canvas' library and does not contain any graphical control elements. It relies upon OpenGL (1.4+) or OpenGL ES for rendering,. It also supports media playback using GStreamer and 2D graphics rendering using Cairo.

java-gnome is a set of language bindings for the Java programming language for use in the GNOME desktop environment. It is part of the official GNOME language bindings suite and provides a set of libraries allowing developers to write computer programs for GNOME using the Java programming language and the GTK cross-platform widget toolkit.

<span class="mw-page-title-main">GTK</span> Free and open-source cross-platform widget toolkit for creating graphical user interfaces

GTK is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the Wayland and X11 windowing systems.

Genie is a modern, general-purpose high-level programming language in development since 2008. It was designed as an alternative, simpler and cleaner dialect for the Vala compiler, while preserving the same functionality of the Vala language. Genie uses the same compiler and libraries as Vala; the two can indeed be used alongside each other. The differences are only syntactic.

<span class="mw-page-title-main">GTK Scene Graph Kit</span>

GTK Scene Graph Kit (GSK) is the rendering and scene graph API for GTK introduced with version 3.90. GSK lies between the graphical control elements (widgets) and the rendering.

<span class="mw-page-title-main">Nim (programming language)</span> Programming language

Nim is a general-purpose, multi-paradigm, statically typed, compiled high-level systems programming language, designed and developed by a team around Andreas Rumpf. Nim is designed to be "efficient, expressive, and elegant", supporting metaprogramming, functional, message passing, procedural, and object-oriented programming styles by providing several features such as compile time code generation, algebraic data types, a foreign function interface (FFI) with C, C++, Objective-C, and JavaScript, and supporting compiling to those same languages as intermediate representations.

References

  1. "Building desktop Linux applications with JavaScript". Ars Technica. 19 January 2009.
  2. Seed, the module! Archived 2009-08-15 at the Wayback Machine
  3. GTK+ binding list Archived 2011-04-02 at the Wayback Machine