Difference between revisions of "Raspberry Pi Programming"

From eLinux.org
Jump to: navigation, search
(Undo revision 209888 by Madman xxx (talk))
(Graphical Programming)
(19 intermediate revisions by 13 users not shown)
Line 1: Line 1:
 
{{Template:RPi_Software}}
 
{{Template:RPi_Software}}
  
 
+
==Programming languages, IDEs, etc.==
 
+
==Programming languages, IDEs, etc==
+
  
 
===Tested on Alpha board===
 
===Tested on Alpha board===
Line 14: Line 12:
 
* Mono (C#)
 
* Mono (C#)
 
* OCaml
 
* OCaml
* NodeJS 0.6.18 (Javascript)
+
* Node.js 0.6.18 (JavaScript)
 
* Perl
 
* Perl
 
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
 
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
Line 22: Line 20:
 
* [http://freecode.com/projects/tinybc Tiny BASIC for Curses]
 
* [http://freecode.com/projects/tinybc Tiny BASIC for Curses]
  
===Tested on RPi===
+
===Tested on Raspberry Pi===
  
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
+
* [[CSharp_on_RPi|C#]]
* [[Scratch_on_RPi|Scratch]]
+
* [[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,
 
** 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.
 
** 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].
 
** 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
 
* PHP
* Groovy
+
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
* [http://www.freepascal.org Free Pascal Compiler / Object Pascal language]
+
* Regina Rexx <ref>http://www.rexx.org/</ref>
* [[Lazarus on RPi|Lazarus]], the professional cross-platform IDE for [[Free Pascal]].
+
* [[Scratch_on_RPi|Scratch]]
* [http://xxicc.org GalaxC programming language and XXICC "Chicken Coop" environment] (works in progress)
+
* Tcl/Tk
  
 
===Expected to work===
 
===Expected to work===
 
* Java
 
 
* Eclipse
 
* Eclipse
* Tcl/Tk
 
 
* (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 52: 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  
Line 61: Line 65:
  
 
==Graphical Programming==
 
==Graphical Programming==
* [http://gambas.sourceforge.net/ Gambas] - possibly a good choice; easy like old visual basic
+
* [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 69: Line 73:
 
* [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://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.
+
* [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.
+
* [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://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 RPi. 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.5MB 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.
+
* [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
+
* [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 RPi via a web interface.
+
* [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)
  
 
==Would Be Great If These Worked==
 
==Would Be Great If These Worked==
 
* wvdial -- Dialer for Land-line, GSM, UMTS modems and other serial devices.
 
* 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.
 
* 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.
+
* 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==
 
==Uncategorised==

Revision as of 10:59, 12 October 2013

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
  • Nimrod
  • Tiny BASIC for Curses

Tested on Raspberry Pi

Expected to work

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

Graphical Programming

  • 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

  1. http://www.vanhaarlem.eu/assembler
  2. http://ntoll.org/article/baking-with-raspberrypipy
  3. http://ntoll.org/article/baking-with-raspberrypipy
  4. http://www.rexx.org/