top of page

The Enviroment

Live Coding and the Debugger 

Essential to Pharo is the ability to live code. That means that in Pharo everything is a live object. Pharo does not use source files instead it uses a file format called the image file , where every live object is saved. That creates a live enviroment that is very fast to load and save, but also because everything is a live object the user has access to every part of the system. The largest part Pharo also is implemented in itself, including the language , the IDE and the Enviroment itself. Thus the user , unlike others systems and programming languages , does not need to learn another language to hack Pharo. 

 

Central in this enviroment is Debugger that implements the cetral workflow of live coding. Live coding is the process where the user codes an application while the application is running. The Debugger allows the user on error to pause the application, correct the error and resume the execution as if the error never existed. The Debugger is also part of the IDE having access to many IDE tools without never leaving the Debugger. Because of this extremely powerful workflow many Pharo users coder solely from inside the Debugger. The user can afford to call methods that do not exist and intentially put errors inside their code. The Debugger will offer solutions to many errors with single click approaches, allowing the user to test and code its application while the application is running but also allow for great degree of Experimentation

 

The Enviroment however is not limited to the very powerful Debugger. It comes with a modern VM and powerful JIT compilation that allows for very fast dynamic code, faster than many other dynamic languages. 

 

Essential of course is the the Library of Objects coming with Pharo including but not limited to Syntax Tree, Collections, FFI for C language and Inline Assembler, Raster Graphics libraries, Vector Graphics Libraries, GUI libraries,  Compiler , File System , Image Serialization ,Shortcuts  Key mapping , Source Version Control , Power Refactoring , Regex, Unit Testing , Text manipulation , Network Library , Sockets and much more. 

bottom of page