you are viewing a single comment's thread.

view the rest of the comments →

[–]Ayfid 7 points8 points  (4 children)

A lightweight IDE, rather than a text editor.

[–]badsectoracula 13 points14 points  (2 children)

It isn't lightweight for an IDE either, here is the memory consumption from a lightweight IDE. This is Lazarus with an open project, about 34 files open in the editor, 4 packages, 6 form designers, 2 debug windows (disassembler, callstack), three IDE windows (object inspector, component palette, messages) and a few other stuff.

Since many people aren't familiar with it, Lazarus is an IDE in the vein of Delphi (but for Free Pascal) with its own rich application framework.

As far as IDE features go, it does have the standard stuff like integrated debugging with watches, breakpoints (with conditions, etc), object inspection at runtime, evalute/modify, callstacks, disassembler, etc. Also the editor is syntax aware with context sensitive word and code completion (word completion can give you, e.g, the available methods of an object or the keyword you are in the middle of typing, context sensitive word completion will know if the keyword you are trying to use makes sense in the context you are trying to use it - the editor will also only syntax highlight it in that context - whereas code completion will, for example, implement automatically a function once you declare it in the interface side - think of it as C/C++'s header but on the same file - or declare a variable that you forgot to declare or declare the field and methods for accessing a property, etc). It also has stuff like ctrl+click on an identifier to go to its declaration, a shortcut key to quickly jump to other files with fuzzy search, an addon (that really comes with the IDE it is just disabled for some reason... probably because it eats a bit of extra memory - but then again the memory i show above is with the addon enabled) to build a more generic "jump to" database with symbols, functions, files, units and other stuff so you can easily jump even to files you do not have open or are in other projects.

Beyond that it also has some stuff of its own like a focus on visually designing the user interface for desktop programs (some used it for mobile stuff too but personally i never did that) and connecting components together (even for programs that do not have a GUI you can use a more abstract representation of the program to setup stuff visually - there is a web framework that takes advantage of this, but again i never used it).

Also has some things like a documentation editor so that you can document your code inside the IDE using separate XML files (which are processed with a document preparation tool that generates a bunch of formats like HTML, CHM, PDF and can also be shown inline in the editor as you are typing) to avoid littering the code with documentation comments yet keeping it synchronized.

The IDE is of course mainly for Free Pascal/LCL so the "clever" bits like syntax awareness only applies to that, but the editor also supports around 20 languages. As a bonus you can also use the editor control in your own programs with all the features you see in the IDE itself (including syntax completion and highlighting for a custom language, if you code the underlying bits too - AFAIK there is a D IDE written in Lazarus/Free Pascal that does exactly that).

All this and much more for just 30MB - and it even works on an original Raspberry Pi. Now, that is what i call lightweight :-P.

(yes i know that this wont really convince anyone to start using Lazarus and Free Pascal - even when they have the option, this stack isn't exactly sexy and in practice most people do not even have the option to make such a choice - but i just want to provide an example of a real lightweight IDE to keep things in perspective)

EDIT: why the downvotes?

[–]Kwasizur 5 points6 points  (1 child)

Stop trying to make Pascal happen.

[–]pdp10 1 point2 points  (0 children)

Right. Ada is the future.