Talk:Software components
Have you considered adding Mono as a software component of the OLPC?
If Sugar was running on Mono, it would make it easier to write Activities in languagues other than Python. For example Java, C#, possible Ruby: http://www.mono-project.com/Languages
IronPython is an implementation of Python that runs on Mono. It is supposed to be faster than CPython. There is a reference to that on the original IronPython page. The current IronPython page is: http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython
I've read that the final version of the OLPC will run Windows (according to this article, that is why the SD slot was added). Will these applications also be on the final Windows version or will they be rewritten?
Applications that can be looked for integration in the Sugar environment
- Dr Geo, an interactive geomtery software which allows one to create a geometric figure and manipulate it considering the geometric constraints associated with the figure.
- X-word, a GTK crossword puzzle program that reads and write puzzles in the Acrosslite format used by The New York Times . It has a clock, a word list, options like printing, auto saving and to check and reveal letters of the puzzle.
- Range Software Packages, a software for engineering simulations, finite element analysis and is able to solve problems based on heat transfer , radiation , stress strain , porous media flow and viscous incompressible flow.
- Ascend, an interactive mathematical modelling system for engineering and scientific applications capable of solving non linear systems containing upto 100,000 variables.
- gElemental, a periodic table viewer that provides detailed information on the chemical elements.
- xyz2ila, a little C program to convert earth centred earth fixed(ECEF) cartesian coordinates to latitude, longitude and altitude.
- Lybniz, a simple function graph plotter in Python which can also be made to function as a graphing calculator for the Sugar.
- Scilab, a numerical computation system similar to Matlab or Simulink.
- g3data, a program for extracting data from graphs.
- G Flashcards, a teaching tool for learning vocabulary lists or historical facts.
- Comix, a pyGTK based user friendly and customizable image viewer specifically designed to handle comic books but can also serve as a generic viewer.
- gretl, an application useful for teaching Economics Stastics.
- Shrinking Man, a diet tracker application that can be used for tracking body weight and the calories consumed per day.
- Electric Form, an application that can be used for calculation purposes in the field of Electricity based on the relationships existing between Power(P), Current(I), Voltage(V) and Resistance(R) that is 'P=I^2*R', 'P=V*I', 'P=V^2/R' and 'V=I*R'.
Games
- Duo, a Uno-like card game project, the first free Uno game on PC which is a nice and an easy card game written in Python, multilingal and could be played with 1,2 or 3 computer players.
- Pyamb, a dice game also popularly refered to as a gtk version of Yamb written in Python which is a game played in turns with 5 dices and each turn player has three dice throws available. The object of the game is to reach the highest possible score.
- Dragon Hunt, a Graphical Role-playing game which investigates the rumours of monsters attacking a town.
removed
- A basic quizzing web application with around 20 quizzes built by CERTY
In general web applications, while accessible from the laptops, will not be bundled onto the laptop. --Walter 02:50, 4 November 2006 (EST)
The problem with Mono is that it allows too many languages to be used, each of which requires its own support libraries. The OLPC doesn't have the storage to spare for Python libs, Ruby libs, C# libs, etc.
Python has the power to build the type of applications that would be useful in an educational environment. That's why it was chosen. The laptop also supports Javascript in xulrunner and csound. And programs can be written in C as well.
The laptop is not a PC in the conventional sense. It has very limited memory and will be used in a very different networking environment from a PC. Most software will need to be written specifically for OLPC or heavily modified to suit a very different environment. Python is the ideal language for this development work.
C is for Critical
You somehow found room for Python, Javascript, CSound, FORTH, and even Smalltalk (Squeak/Etoys). Smalltalk??? Heck, if Smalltalk makes the grade, throw in COBOL and Ada!
Most of the OS is in C. Even the Python interpreter is in C.
You think you have resource constraints? UNIX had C on the PDP-11 port, which maxed out at 128 kB of RAM and a few MB of disk. Linus started with only 4 MB of RAM and less than 64 MB (probably about 20 MB) of very slow disk space. I used to use gcc on a Linux box with 8 MB of RAM and a 40 MB hard disk. You have a whopping 128 MB of RAM and a 512 MB "disk" that has 0ms seeks and does on-the-fly compression.
If you want small, go with bcc. If you want to treat C files as scripts, use tcc and just put "#!/usr/bin/tcc" at the top of any C files that should be executable. Really though, gcc is best.
By default, modern gcc can be a bit of a pig. This is because it's doing lots of optimization. That can be cut back via the specs file, which is a config file that defines the meaning of "-O2" and similar. One might also compile gcc itself with -Os.
AlbertCahalan 01:51, 28 February 2007 (EST)