3 ms·
Absolutely not wanting to diminish the success of Notepad++ among its user base, I'd still like to mention that Notepad++ is a Windows only editor, where the ma
by acqq 6y ago
Absolutely not wanting to diminish the success of Notepad++ among its user base, I'd still like to mention that Notepad++ is a Windows only editor, where the main functionality is actually provided by the multiplatform editor engine called Scintilla, written by Neil Hodgson, and published since 1999 under a very permissive BSD-like license. The first version of Notepad++ was published in 2003.
Neil Hodgson also maintains the multiplatform editor called SciTE
https://en.wikipedia.org/wiki/SciTE https://en.wikipedia.org/wiki/SciTE
which uses the same engine, and which, from my perspective, has some important advantages over the Notepad++ (it's multiplatform, and, for me, more "hacker oriented" and more "hackable" (e.g. having Lua as its scripting engine)).
Edit: regarding the "UX" mentioned in the responses -- the configuration of SciTE is performed by editing text files, whereas the configuration of Notepad++ is done by the dialogs. That's exactly why I consider SciTE more "hacker oriented". I've also mentioned the integration of Lua in SciTE. That's the UX that, for better or worse, matched my needs. I've never claimed that SciTE has "better dialogs" or something like that. Regarding "more LOC" claim, I claim that Scintilla is very carefully written, and that the LOC aren't the reflection of unnecessary abstractions, but correspond to the real non-trivial problems solved by the code. Whoever disagree should should demonstrate where the LOC could be reduced.
- moron4hire 6y agoScintilla only provides the textarea control that can perform syntax highlighting. It doesn't include any of the application or options interfaces: menu bar, toolbar, tabs, settings, themes, etc. Your post makes it sound like Notepad++ is "just" a thin wrapper around Scintilla. But there is a lot more that goes into any text editor than just the bit that does the syntax highlighting. However, not to detract from Scintilla. It's a great project and has bindings in lots of languages[0]. I've used it to add editors to lots of bespoke editor GUI tools. Can highly recommend using Scintilla. [0] the bindings might all be 3rd party, I don't remember clearly (it's been a while). Whatever the case, I was using it from .NET, myself. It was very easy to use.
- acqq 6y agoNo, it's provably not true that "Scintilla only provides the textarea control that can perform syntax highlighting." So what actually loads and saves the files, even if they are many megabytes? Scintilla. What is what makes that loading fast, compared to the implementation of Windows Notepad (which is how people discovered Notepad++)? Scintilla. What performs all the editing operations fast? Scintilla. What maintains all the undo information? Scintilla. What performs all the rendering of everything shown, in all the fonts and with all the configured properties, (and it works on all platforms, which is far from trivial)? Scintilla. And yes, what does all syntax coloring for all the languages? Scintilla. It's in its source base: https://sourceforge.net/p/scintilla/code/ci/default/tree/lexers/ https://sourceforge.net/p/scintilla/code/ci/default/tree/lex... Scintilla does provide all the programming level interfaces for its configuration, which can be also seen in the sources. In Notepad++, the dialogs which use these interfaces are, true, written by the Notepad++ author. So yes, most of the main functionality of the editor is in its editor engine, Scintilla, and the dialogs and menus are implemented by Notepad++.
- lucideer 6y ago> *the main functionality is actually provided by a multiplatform engine called Scintilla As a former user of SciTE, the definition of the word "main" here is highly subjective. If you mean "more LoC", then maybe, fine. But the value in Notepad++ is in UX, which is an immeasurably better than SciTE's (and an extremely challenging thing to get right—I'm not faulting SciTE for lacking here, UX is hard).