Difference between revisions of "Raspberry Pi Programming"

From eLinux.org
Jump to: navigation, search
(Created page - based on programming section of Rpi_Software)
 
(s/Nimrod/Nim/)
 
(63 intermediate revisions by 34 users not shown)
Line 1: Line 1:
===Programming languages, IDEs, etc===
+
{{Template:RPi_Software}}
  
====Languages tested on Alpha board====
+
==Programming languages, IDEs, etc.==
 +
 
 +
===Tested on Alpha board===
  
* Interp
 
* Scala
 
 
* Clojure
 
* Clojure
* OCaml
+
* gas (GNU assembler) <ref>http://www.vanhaarlem.eu/assembler</ref>
 
* gcc
 
* gcc
 
* g++
 
* g++
 +
* Interp
 +
* Mono (C#)
 +
* OCaml
 +
* Node.js 0.6.18 (JavaScript)
 +
* Perl
 
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
 
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
* Perl
 
 
* Ruby 1.9.2 (KidsRuby)
 
* Ruby 1.9.2 (KidsRuby)
 +
* Scala
 +
* [http://nim-lang.org/ Nim]
 +
* [http://freecode.com/projects/tinybc Tiny BASIC for Curses]
  
====Expected to work====
+
===Tested on Raspberry Pi===
  
 +
* [[CSharp_on_RPi|C#]]
 +
* [[CodeBlocks]]
 +
* [[Erlang]]
 +
* [[Forth]]
 +
* [http://xxicc.org GalaxC programming language and XXICC "Chicken Coop" environment] (works in progress)
 +
* [[Go_on_RPi|Go]]
 
* Java
 
* Java
 +
**  [[How to set up Java]] and add access to the hardware
 +
** gcj - for Java code compilation,
 +
** depending on ''floatness'', Oracle JVM may or may not be available. For now, only soft-float JVM is available. See [http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html here] for thorough description.
 +
** Groovy (requires Java)
 +
** Other JVMs are compared [http://www.raspberrypi.org/phpBB3/viewtopic.php?f=34&t=15639 here].
 +
* JavaScript via [[Node.js on RPi|Node.js]]
 +
* Pascal
 +
** [[Free Pascal on RPi|Free Pascal Compiler / Object Pascal language]]
 +
** [[Lazarus on RPi|Lazarus]], the professional cross-platform IDE for [[Free Pascal]].
 +
* PHP
 +
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
 +
* Regina Rexx <ref>http://www.rexx.org/</ref>
 +
* [[Scratch_on_RPi|Scratch]]
 +
* Tcl/Tk
 +
 +
===Expected to work===
 
* Eclipse
 
* Eclipse
* Tcl/Tk
 
* Lazarus
 
 
* (maybe) BoaConstructor
 
* (maybe) BoaConstructor
 
* Anjuta for C/C++
 
* Anjuta for C/C++
 
* Dev-C++
 
* Dev-C++
* CodeBlocks
 
 
* [http://www.lua.org/ Lua]
 
* [http://www.lua.org/ Lua]
 
* [http://www.bbcbasic.co.uk/bbcbasic.html BBC BASIC]
 
* [http://www.bbcbasic.co.uk/bbcbasic.html BBC BASIC]
Line 30: Line 56:
 
* [http://www.squeak.org/ Squeak implementation of Smalltalk]
 
* [http://www.squeak.org/ Squeak implementation of Smalltalk]
 
* [http://processing.org/ Processing]
 
* [http://processing.org/ Processing]
* Other BASIC variants common to Debian/Ubuntu/Fedora etc. are all likely to work fine, including:
+
* Other BASIC variants common to Debian, Ubuntu, Fedora, etc. are all likely to work fine, including:
 
** [http://http://basic256.org basic256] - educational BASIC programming environment for children  
 
** [http://http://basic256.org basic256] - educational BASIC programming environment for children  
 
** [http://www.bwbasic.at/tutorial.htm bwbasic] - Bywater BASIC Interpreter  
 
** [http://www.bwbasic.at/tutorial.htm bwbasic] - Bywater BASIC Interpreter  
 
** [http://sdlbasic.sf.net sdlbasic] - BASIC interpreter for game development  
 
** [http://sdlbasic.sf.net sdlbasic] - BASIC interpreter for game development  
 
** [http://www.yabasic.de/ yabasic] - Yet Another BASIC interpreter   
 
** [http://www.yabasic.de/ yabasic] - Yet Another BASIC interpreter   
 
+
* [http://regina-rexx.sourceforge.net/ Regina Rexx]
 
<blockquote>''See also:'' [[RaspberryPiBoard/EducationalLinks]] for education-friendly languages.</blockquote>
 
<blockquote>''See also:'' [[RaspberryPiBoard/EducationalLinks]] for education-friendly languages.</blockquote>
  
===Graphical Programming===
+
==Graphical Programming==
* [http://gambas.sourceforge.net/ Gambas] - possibly a good choice; easy like old visual basic
+
* [http://www.xojo.com Xojo] - Create desktop, web and console apps for Pi. Not free and does not run on the Pi itself, but super-easy to use.
 +
* [http://gambas.sourceforge.net/ Gambas] - possibly a good choice; easy like old Visual Basic
 
* [http://scratch.mit.edu/ Scratch]
 
* [http://scratch.mit.edu/ Scratch]
 
* [http://www.alice.org/ Alice]
 
* [http://www.alice.org/ Alice]
Line 46: Line 73:
 
* [http://education.mit.edu/starlogo/ Star Logo]
 
* [http://education.mit.edu/starlogo/ Star Logo]
 
* [http://primerlabs.com/codehero PrimerLabs CodeHero]
 
* [http://primerlabs.com/codehero PrimerLabs CodeHero]
 +
* [http://www.lazarus.freepascal.org Lazarus] I was working on LaZor'''OS4'''Pi a while back to provide a on-device IDE but I'm stuck with only a VGA monitor + chroot. Will pick it back up asap for it is a great combination. (Used: Fedora, [http://razor-qt.org/ Razor-QT desktop] and Lazarus-QT+FreePascal. 2nd attempt => [http://funtoo.org Funtoo])
 +
* [http://code.google.com/p/yad YAD] 'Yet Another Dialog' for fast GUI scripting in Bash.
 +
* [https://sites.google.com/site/easybashgui EasyBashGui] Want to keep it fast and simple than this is your tool. Goes even faster with the code snippets from Komodo Edit + Bash Menu plugin.
 +
* [http://bluegriffon.org BlueGriffon] is a very slick WYSIWYG editor for HTML5.
 +
* [http://fpgui.sourceforge.net fpGUI Toolkit] has been tested and fully working on the Raspberry Pi. fpGUI is a custom drawn, full featured, cross-platform GUI toolkit that has been in development since 2006. fpGUI can be use for Desktop or Embedded environments, and is suitable for commercial and open source projects. Implemented 100% in Object Pascal, and producing small executables and very low library dependency (just the standard X11 - no Qt or GTK, etc. required). For a very quick setup of the Free Pascal Compiler & fpGUI Toolkit, download the starter archive (3.5&nbsp;MB download) from http://www.turbocontrol.com/easyfpgui.htm. Unzip, and you are ready to go! fpGUI includes lots of ready made widgets, a documentation viewer (docview), a Visual GUI Forms Designer (uidesigner), and an IDE (maximus). The IDE is still in the very early stages of development, but any programmer editor could be used with fpGUI too.
 +
* [https://github.com/rec/pi3d Pi3D hardware accelerated 3D (and 2D) for Python] - still being improved but works now
 +
* [http://learn.adafruit.com/webide/overview Adafruit Learning System Raspberry Pi WebIDE] - allows programs to be written, compiled, and executed on the Raspberry Pi via a web interface.
 +
* [http://www.pridopia.co.uk/rs-pi-set-scratch.html Pridopia Scratch-RaspberryPi GPIO Driver] -- helping children / beginner programmers / hardware enthusiasts build up their skills by doing simple tasks with even easier commands / controls.
  
===Robotics===
+
==Robotics==
 
* [http://mindstorms.lego.com/en-us/Default.aspx Lego Mindstorms]
 
* [http://mindstorms.lego.com/en-us/Default.aspx Lego Mindstorms]
* [http://edu.kde.org/kturtle/ KTurtle] and other Logo/[http://en.wikipedia.org/wiki/Turtle_graphics turtle graphics] (The IO board supports motor drive outputs)
+
* [http://edu.kde.org/kturtle/ KTurtle] and other Logo/[http://en.wikipedia.org/wiki/Turtle_graphics turtle graphics] (The I/O board supports motor drive outputs)
  
===Uncategorised===
+
==Would Be Great If These Worked==
 +
* wvdial -- Dialer for Land-line, GSM, UMTS modems and other serial devices.
 +
* VHDL -- VHDL (VHSIC hardware description language) is a hardware description language used in electronic design automation to describe digital and mixed-signal systems such as field-programmable gate arrays and integrated circuits.
 +
* Verilog -- Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits at the register-transfer level of abstraction. icarus verilog (iverilog) is available at http://iverilog.icarus.com/ or apt-get install iverilog
 +
 
 +
==Uncategorised==
 
* [http://wiki.sugarlabs.org/go/What_is_Sugar%3F Sugar Learning Platform: An alternative to the Desktop metaphor of the GUI]
 
* [http://wiki.sugarlabs.org/go/What_is_Sugar%3F Sugar Learning Platform: An alternative to the Desktop metaphor of the GUI]
* [http://futureboy.us/frinkdocs/ Frink]
+
* [http://futureboy.us/frinkdocs/ Frink] - A language that tracks units of measure through all calculations.  If Java works, Frink will work.  Frink runs under any version of Java 1.1 or later.  Can work without GUI, with AWT GUI, or with Swing GUI, or run on Android if that's what you're using.
 
* [http://www.geometricalgebra.net/gaviewer_download.html GAViewer]
 
* [http://www.geometricalgebra.net/gaviewer_download.html GAViewer]
 
* [http://www.geogebra.org/cms/ GeoGebra]
 
* [http://www.geogebra.org/cms/ GeoGebra]
Line 59: Line 99:
  
 
See also [[:Category:Education]]
 
See also [[:Category:Education]]
 +
 +
== References ==
 +
<references>
 +
</references>
 +
 +
 +
{{Template:Raspberry Pi}}
 +
[[Category: RaspberryPi]]

Latest revision as of 07:29, 23 October 2015

Back to the Hub.


Software & Distributions:

Software - an overview.

Distributions - operating systems and development environments for the Raspberry Pi.

Kernel Compilation - advice on compiling a kernel.

Performance - measures of the Raspberry Pi's performance.

Programming - programming languages that might be used on the Raspberry Pi.

Programming languages, IDEs, etc.

Tested on Alpha board

  • Clojure
  • gas (GNU assembler) [1]
  • gcc
  • g++
  • Interp
  • Mono (C#)
  • OCaml
  • Node.js 0.6.18 (JavaScript)
  • Perl
  • Python [2]
  • Ruby 1.9.2 (KidsRuby)
  • Scala
  • Nim
  • Tiny BASIC for Curses

Tested on Raspberry Pi

Expected to work

See also: RaspberryPiBoard/EducationalLinks for education-friendly languages.

Graphical Programming

  • Xojo - Create desktop, web and console apps for Pi. Not free and does not run on the Pi itself, but super-easy to use.
  • Gambas - possibly a good choice; easy like old Visual Basic
  • Scratch
  • Alice
  • Android App Inventor
  • Kodu
  • Star Logo
  • PrimerLabs CodeHero
  • Lazarus I was working on LaZorOS4Pi a while back to provide a on-device IDE but I'm stuck with only a VGA monitor + chroot. Will pick it back up asap for it is a great combination. (Used: Fedora, Razor-QT desktop and Lazarus-QT+FreePascal. 2nd attempt => Funtoo)
  • YAD 'Yet Another Dialog' for fast GUI scripting in Bash.
  • EasyBashGui Want to keep it fast and simple than this is your tool. Goes even faster with the code snippets from Komodo Edit + Bash Menu plugin.
  • BlueGriffon is a very slick WYSIWYG editor for HTML5.
  • fpGUI Toolkit has been tested and fully working on the Raspberry Pi. fpGUI is a custom drawn, full featured, cross-platform GUI toolkit that has been in development since 2006. fpGUI can be use for Desktop or Embedded environments, and is suitable for commercial and open source projects. Implemented 100% in Object Pascal, and producing small executables and very low library dependency (just the standard X11 - no Qt or GTK, etc. required). For a very quick setup of the Free Pascal Compiler & fpGUI Toolkit, download the starter archive (3.5 MB download) from http://www.turbocontrol.com/easyfpgui.htm. Unzip, and you are ready to go! fpGUI includes lots of ready made widgets, a documentation viewer (docview), a Visual GUI Forms Designer (uidesigner), and an IDE (maximus). The IDE is still in the very early stages of development, but any programmer editor could be used with fpGUI too.
  • Pi3D hardware accelerated 3D (and 2D) for Python - still being improved but works now
  • Adafruit Learning System Raspberry Pi WebIDE - allows programs to be written, compiled, and executed on the Raspberry Pi via a web interface.
  • Pridopia Scratch-RaspberryPi GPIO Driver -- helping children / beginner programmers / hardware enthusiasts build up their skills by doing simple tasks with even easier commands / controls.

Robotics

Would Be Great If These Worked

  • wvdial -- Dialer for Land-line, GSM, UMTS modems and other serial devices.
  • VHDL -- VHDL (VHSIC hardware description language) is a hardware description language used in electronic design automation to describe digital and mixed-signal systems such as field-programmable gate arrays and integrated circuits.
  • Verilog -- Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits at the register-transfer level of abstraction. icarus verilog (iverilog) is available at http://iverilog.icarus.com/ or apt-get install iverilog

Uncategorised

See also Category:Education

References