Speare is a small and friendly code editor. You can use it to edit source code files, programming and debugging. It designed to make programming feels light, simple and free. Speare not only has an efficient code navigation and call routines tracing ability but also has flexibility to extend it to support special developing requirements. Speare code editor includes an ultra lightweight debugging environment for C, C++, Ruby, mruby, Lua, Python, PHP, Perl and Tcl, and give people complete freedom to control and customise the debugging environment for a new programming language.

What's new

Java debugging supported. The Java debugger of Speare support all kinds of JVM that implemented Java Debugger API, JDK all version from 6 and later, all kinds of Java application development. Android application, J2ME (Java ME) games, standalone Java J2SE application and game for desktops, J2EE (Java EE) server side application for all kinds of application server, such as Tomcat, Spring, Weblogic, WebSphere, JBoss (Wildfly), Glassfish, and Jetty etc.
(update: Jul 11 2021)

Speare is only ~1.1MB! extremely small code editor with full featured scripting language debuggers.

If you can't open the link above, please launch App Store and found "Speare" by searching.

Screenshot of LLVM with fast code completion and instant diff operation in Speare code editor.

more screenshots: screenshot references.

Debug Mode

1. Click main menu "Navigate" → "Toggle Output", to show the debug toolbar.

2. Debug toolbar:

From left to right, Start, Stop, Step Into, Step Out, Run To, Step Over, Show Watches. The "Step Over" is equals to "Step next", and "Step To" is equals to "Continue" in common debugging words, and the "Step To" is the command that tell the debugger run to meet a breakpoint or an exception occurred or the program meet exit. On the rightmost there are three other function units, they are, search items in the stackview, siding stackview, and clean debug output.

Search in the debug output: click in the output area and use the shortcut key "Control + F" to do the searching.

3. Socket port:
You can set the socket communication port number both used by Debug Server and the Speare code editor. Open the Preferences of Speare and select the "Debug Settings" tab then input your number.

Please remember to empty the port number when you switched to debugging with the default builtin programming languages with default port number.

4. Watches:
Watches used to evaluate variable or expression and their values can be real-time showing in stack-view when debugging session paused, the nodes normally has a green colour and always placed on the top of stack-view.


Debugger Architecture

A free small IDE for C, C++, Ruby, mruby, Lua, Python, PHP, Perl and Tcl.

Speare code editor support embedded system software development, e.g. Arduino and Raspberry Pi embedded development platform, desktop software and server side application development. Proposed debugging environment support in Speare code editor are: GDB, LLDB, Ruby, mruby, Lua, Python, Perl, PHP, Tcl, Node.js, Dart, AWK and shell. Speare code editor provides very concise and simple interface to add new programming language in it, end user can very easily write a new programming language parser, syntax highlighting, code formatter and debugger for it.

Debugging code with Speare code editor

Despite the dragon is evil but it still can't escape under the claws of eagles.
Speare code editor provides an intuitive debugging environment allows adding breakpoints and the execution flow can be viewed and controlled and has the abilities that an IDE debugger will give you over trace execution in code, view the call stack at any point in time, giving you a context for your current stack frame, step into libraries or sub modules that you want to tracing the debug symbols, and change variable values while the program is running. It provides simple interfaces that can be integrated with any command line tools without boring configuration, giving you the flexibility you need to debug code at hand. The debuggers of Speare code editor, the source-level debuggers, helps you step through the code line by line and observe the runtime behaviour of your program and got a better understanding of your code.

Speare code editor is a small PHP IDE that well support all kinds of PHP development, from PHP 5.x to PHP 7.x, framework based on big projects or common command line applications, the above is a screenshot of debugging WordPress in Speare code editor.

Lua Debugger

Speare code editor provides an ultra lightweight debugging environment for C, C++ and Lua. As a small but productive Lua IDE, Speare well supports all kinds of Lua development with concise and intuitive user interface, and can seamlessly debug C and C++ modules with Lua code in the same environment. The Lua debugger of Speare supports all common versions of Lua and LuaJIT, and you can directly replace the Lua interpreter with your self-compiled version, the version range includes from 5.1.4 and 5.1.5 to 5.2.4, 5.3.5, 5.3.6, and 5.4.2, the download link is here:
http://www.sevenuc.com/download/lua_debugger.tar.gz (801KB)
(SHA256: b43ccdb91b86ec9e479670f1b2916e9e9c49eb7a6cc5192f2ba87525f751b861)

Speare code editor support various game engine and frameworks, such as the LÖVE 2D, Moai open source game engine, the Gideros mobile game platform, the Corona 2D game engine, the Marmalade game engine, the Cocos2d and cocos2d-x game engine, the OpenResty Nginx web server and the Lapis web framework, the high performance Prosody instant message server, the JUCI Webgui for embedded devices, the Torch machine learning framework, and the Redis open source database etc.

Ruby Debugger

Speare supports debugging all kinds of Ruby development, mruby/c and mruby, Ruby and Ruby on Rails, please refer this document http://www.sevenuc.com/download/Small_IDE_for_Ruby_development.pdf. The built-in mruby debugger of Speare full supports mruby development, the lightweight implementation of the Ruby programming language.

mruby_debugger_2.0.1.tar.gz (362KB) for mruby 2.0.1
(SHA256: 203cab73bd11a4996c6909be2ce5ceae7e3c6cc61708b4bef362ca0586495c45)
mruby_debugger_2.1.0.tar.gz (370KB) for mruby 2.1.0
(SHA256: 7e2b9e2818c7aa897d3624acd7aa564369e1cfce603e984c2b7ab632709054a9)
mruby_debugger_2.1.2.tar.gz (368KB) for mruby 2.1.2
(SHA256: cd4872c99436d0feb603e052c37380a46030fcfcab0707da28980359c2987edb)
mruby_debugger_3.0.0.tar.gz (440KB) for mruby 3.0.0
(SHA256: f6f47a6bcf94390c950a9902f15f3d34c3295125d1dcca47f27c6d682f3ccef6)

Python Debugger

The Python debugger of Speare code editor supports Python version 2.5, 2.6, 2.7 and 3.x, and MicroPython. You can enjoy debugging Python scripts as same as debugging web applications that based on web frameworks such as Flask and Django under the lightweight environment of Speare code editor.

Switch Python Interpreter
You can directly switch CPython interpreter to MicroPython or your own self-compiled version of Python, or others such as PyPy, Jython and IronPython.

Tcl Debugger

The Tcl debugger of Speare code editor supports all kinds of Tcl development, from embedded systems to common desktop app to web applications, you can debug Tcl code and C and C++ modules for Tcl in the same lightweight debugging environment with efficient code editing and debugging capability.

Documents References

About Software Industry

They obviously know a technology is garbage, a project shouldn't be started, but they don’t have enough courage to admit the mistake, correct the mistake, cancel the project and abandon that technology. On the contrary, they not only want to recover their cost, they even drag customers into big mud puddle and even promote their big lies to make money.

About Programming Languages

I have used various popular programming languages from DOS era, for small, reliable and strong software:

C is the only choice.

C can make strongest software by programmer crafting with patient and willpower. C is far from a perfect language and it really has many flaws, C++ has more, but no replacement. I've tried Nim in its early stage, it's a good idea but the final result is unacceptable, the result turned out to be an interesting but failed attempt, because it produced a lot of garbage when automatically generating C code, that's very annoying, so I throw it away immediately. And I've tried Wren, a small scripting language, sorry, it really can't compare to Lua, so I have to give it up. Haskell is good at programming language parsing, code generating, concurrency and functional programming, concise and grace, but its runtime made it heavy and burdensome, plenty of other programming languages have the same inherent problem too, big runtime with huge boring dependencies. In short, big runtime is unacceptable, such as C++, huge dependencies is unacceptable, such as Java and Node. From my programming experience, Java have more stronger OOP ability than C++, and Objective-C have more stronger OOP ability than Java, Ruby has the extreamly OOP flexbilty in all of them, but there isn't a perfect programming language in the world can help you make a good software without, without long term programming experience. Despite Rust, Go, OC and Swift try to resolve existing issues in C and C++ programming language, but none of them can replace the importance of C and C++. Master C programming language and make small software is a real programmer's cultivation. Why small software.

References: The issue when OOP with C++.pdf.

About the C programming language

Common pitfalls of C programming:

First known how to write close and free and then try open and alloc, ensure clean first and then do something is the philosophy and bits of C programming, this rule also suitable to other languages.

C is not safe but it is the strongest programming language and the most strongest softwares were written with it, including operation system and the most important infrastructure of internet and software industry, think about BIND, Apache, Nginx, MySQL, PostgreSQL, SQLite, Berkeley DB, Redis, Memcached, PHP, Perl, Ruby, Python, Lua, Git, FFmpeg and other countless excellent softwares. If sqlite and git were written with C++ or Java, I'll throw them away immediately. C is top professionals' language, a mature developer may needs ten years to really write software with it. The product quality of the software industry is directly proportional to the number of experienced C programming experts.

The Tao and Kung Fu of Programming

Why all attempts failed? They want to create new programming language to resolve problem in software industry, but all attempts failed. Rapid development hurt software industry. Any new programming language that intended to achieve a seamless translation from Lisp or Lisp like language, e.g. Javascript, to native executable code will failed at final. The product quality of the software industry is directly proportional to the number of experienced C programming experts, but experienced C developer and C ninja are rare and rare, big monster software more and more, big garbage more and more, they produce garbage based on garbage, because only a few people can persistently walk on the difficult way of C. C is really unsafe and really difficult to master, to be a mature C developer or an C expert, a developer needs about ten years to continually experience it. Programming is difficult, there is no shortcuts for programming, programming language itself can't resolve it. Programming with C++ is not essential, but mast how to OOP with C++ is essential, there's no any other language can replace the importance of it and no any shortcut to bypass OOP with it, master OOP with C++ and then you can better programming in other high-level languages. In other words, better understand C++ then better understand OC and then better understand Swift. Only the honest and continuous improving of the skills of OOP is the reliable way. Only the honest and continuous improving of the skills of C programming is the reliable way.

"C + elegant scripting language" is the reliable, efficient and flexible extending solution.

If you can't write quality C code, that means you're not a real programmer. Most developer have never written a real C software in their life, I wish more and more developer use Speare code editor to develop efficient and excellent software with C instead of current popular bloated programming languages. Small software with strong bone!

Crafting software as small as possible!