Hacker News new | past | comments | ask | show | jobs | submit login
PSPad: A freeware programmer's editor for Windows (pspad.com)
80 points by open-source-ux on April 20, 2021 | hide | past | favorite | 94 comments



One of the good things about Windows is the backwards compat.

I know this particular code has been updated in 2021, sure, but in general, you can take binary from early 2000s and it will run on Windows 10 most likely. (OK, games and rich "multimedia CD-ROMs" from that era have problems, but it holds in general.)

In linux, it kinda holds, because everything is open-source anyway, but binaries in general are not compatible.

In macOS, it really really doesn't hold, Apple likes to move fast-break things. They changed just the architecture like 4 times, and macOS and OS9 are entirely different. (They did things like Rosetta 1, Rosetta 2, Classic, Carbon, but they never maintain them for long.)

Windows is rock solid in this way. Windows 10 still has 32-bit version, and it can still run MS-DOS code apparently. (Although 64-bit Windows apparently cannot.)


It is a double-edged sword. I believe the primary reason Windows has so many 'issues' in general is the sheer amount of hardware and ancient software that is supported. Keeping the surface area small is easier to maintain, more secure (less attack vectors), etc...

I am not saying one approach is better than the other - but when it comes to Apple it makes a lot of sense that they did what the did considering they have full control over their entire stack top to bottom. That being said, they did extend Carbon compat for a really really long time. AFAIK Photoshop was still Carbon for a long time after the switch to x86.


> believe the primary reason Windows has so many 'issues' in general is the sheer amount of hardware and ancient software that is supported

The hardware part in the old days maybe - they have solved that problem. I am not sure beyond people's opinions there are any real issues directly attributable to backwards s/w compatibility.


On Linux, so long as you have the older versions of any of the app's dependencies pretty much anything will still run. Getting all the right dependencies set up (and hopefully not opening yourself up to numerous security vulnerabilities as a result) is the hard part.


Well yeah of course. But on Windows you don't need to do any of that. I think that was GP's point.


You don't need any of that, but not because Windows is somehow "better" but because it's Windows "culture" to package almost all dependencies with the application, while on Linux application use a bunch of libraries that are part of the distribution.


No. On Linux, the only stable ABI is the kernel. On Windows, the stable ABI and API includes many platform components outside of the kernel (in fact, the syscall interface itself is undocumented and NOT backward compatible on Windows). The Windows platform APIs are very expansive and cover a lot of territory that on Linux is covered by non-ABI-stable dependencies.


How is it not better for the end user?


You can also use containers for that.

I'm running Phatch under Ubuntu 12.04 via LXD on an Ubuntu 20.04 machine (which was maybe 14.04 or 16.04 when I first set it up to do some batch image processing), and it's working fine.


> Windows 10 still has 32-bit version, and it can still run MS-DOS code apparently. (Although 64-bit Windows apparently cannot.)

This is because Windows uses VM86, hardware virtualization that is only available in 32 bit (legacy) mode.

https://en.m.wikipedia.org/wiki/Virtual_8086_mode


And Wine is better than Windows 10 for the use cases you are describing.


>and it can still run MS-DOS code apparently.

Use ReactOS NTVDM, it's far more compatible. Just copy the DLL in the game folder and voilá.


Just because you can doesn't mean you should run something that old. I would not want to run a 21 year old native application written in C or C++ from a different era of security consciousness on any modern machine. Certainly not anything connected to the internet--remember that was the hey-day of massive worms that crippled entire networks of machines. If the source hasn't been touched in decades, treat it like an antique and keep it in a museum of a virtual machine.


I'm using Paint Shop Pro 7 as my main image editor[0], it has the best UX of any image editor i've used, was released 21 years ago and i have zero concerns about its security - not because i expect it to be secure (chances are it is using, e.g., a jpeg library with security bugs) but because there isn't any use case where that would matter.

Similarly i use Delphi 2 and C++ Builder (both around 25 years old) now and them for making small utilities (e.g. [1] and [2]) - again no internet connection nor any reason to worry about their security. Also i use Adobe PageMill (21 years old too) as a WYSIWYG word editor and simple site editor (like the sites i linked to) - that one can connect to the internet to upload stuff, but i use a separate (and under development) client for this.

Also aside the possibility for security issues there is also the probability for you to face them: after all just because a program has an issue it doesn't mean you'll encounter it - if anything, nobody is going to spend any time targeting such old software.

[0] https://i.imgur.com/wakdMXK.jpg (random shot i took some time ago)

[1] http://runtimeterror.com/tools/pastepreview/

[2] http://runtimeterror.com/tools/winless/


> I'm using Paint Shop Pro 7

Same here, and TextPad from the same era still works (I occasionally try the version in my download archive saved back around 2001).


TextPad is still being updated and available for sale (the latest release was on 11 April 2021). It's even older than PSPad. Wikipedia says it was first released in 1992, that's almost 30 years ago. (https://www.textpad.com/products/textpad/features)

I'm impressed by the longevity of both PSPad and TextPad and it's refreshing to encounter fast, native, nimble desktop programs.


I usually keep up with TextPad's updates, and also bought and paid for it and their other tool called WildEdit which is pretty neat. Also TextPad's ability to handle monster files was and still is quite impressive.


Paint Shop Pro 9 user here, and I dread the day it no longer works for me.


You are aware that not all applications listen to the Internet, or need to, right?

My audio editor (GoldWave) is from 2000. It works fine. I can't even think about what "security consciousness" would be on a software that runs locally and doesn't have (or need) accounts.

Text editors fall into the same category.


If you load outside data into the program, it has the potential to be exploited. There is no shortage of exploits for editors, media players, etc. that only require the victim to open a specially crafted file.


Well, if you're facing a targeted attack like that, there is little you can do anyway. They will survey the hardware/software you use and find/purchase a vulnerability to exploit. Its always wise to treat any software (new or old) with caution.


What makes you think exploit crafters are waiting around for you to load their random JPG into an old version of Paint Shop Pro?

It's not like these exploits are one-size-fits-all


Waiting for victims to run your malware is not an active process. It requires no resources on the attacker's part beyond maintaining a server.

Maybe it will connect to a server that has been dead for five years or maybe it's pointing towards a domain name that the attacker still maintains. Maybe instead of a trojan, it's a cryptolocker or old school destructive malware. I don't know why anybody would want to gamble with something like this.

Also, some of the exploits are one-size-fits-all because they target the underlying libraries that the software is using.


>Waiting for victims to run your malware is not an active process.

Except that's not what we are talking about. The old piece of software here is known to not be malware.

>I don't know why anybody would want to gamble with something like this.

Everything you do in life is a gamble. Everything is a risk.

And the risk of opening an external file in a common format that just happens to have a carefully crafted exploit for extremely uncommon, outdated software that you happen to use to open it is so, so, low, that the risk of the computer exploding in your face on power-up becomes significant compared to that.

Yet people aren't deterred from booting up their machines just because there was this laptop one time that did explode.


Yes but the mechanics of exploit crafting aren't generic at the slightest. Everything is bespoke. Which means that for the random bystander the probability that your specific-combination-of-old-software-and-data being exploited is extremely low.

If you've reason to be paranoid, sure. And if you're trolling old warez archives with software contemporary to the time, sure. But otherwise? The odds are too low and the possibility space too high for anyone to bother


It's all fun and games until a rootkit finds a vulnerable executable to elevate privileges and really get going... just one mixed up bound check, missing end of string, etc in 20 year old code and oops!

Don't run any of those old apps as an admin at the very least.


If the said rootkit is already running on my machine, I probably have larger things to worry about than a possible vulnerability in 20-year-old software.

And yeah, there is very rarely a need to run apps as admin anyway.


Not everything is internet connected.

http://www.weitz.de/regex-coach/ -> Regex Coach is a very impressive Windows application I've used for debugging regexes.

> The program hasn't changed since 2008 and this page is also essentially still the same. But I can confirm that in September 2019 the program still works fine for me on Windows 10.

There are many apps like this one and even older apps. Some can be from the early 90's or even late 80's.

The equivalent MacOS app would have been unusable, I imagine, as well as many Linux desktop apps. Especially those before the Great ELF Transition (1996?) as well as those before the Great ABI Breakage (I don't remember the year, it was a major glib change, maybe in 2005?).


Our industry (biotech) relies heavily on Windows and specifically Windows backwards compat. Heck just this last month we put in some used analytical equipment that came with software that was first released on XP. It runs like a champ on W10-32bit. The software we use is often crazy expensive - when you add in the compliance addons, it routinely exceeds USD 10K. I can tell you unequivocally that Windows' backwards compat has saved our company tens of thousands of dollars.

Software isn't magic, security isn't magic either. You can employ physical protections (air-gap) and hardware/software (firewall, etc) protections to contain the threat. All software has the potential to be vulnerable, and so a sysadmin would be wise to treat them equally - new or old.


Is this really people's attitude? Those of us actually around at that time will remember it was not that bad.

Old apps of all stripes did not generally require internet (or even network) access -- a lesson we could learn from today.


Like UNIX?


Wow, I'd totally forgotten about PSPad... it used to be my editor of choice back in the XP days. These days I use Notepad++ (doesn't everyone on Windows?).

I think PSPad could benefit from new screenshots on its website, even though it's clearly still being actively updated, the screenshots make it look like it stagnated 10 years ago.


> These days I use Notepad++ (doesn't everyone on Windows?)

In terms of souped up text editor, the exact transition that "everyone" made since:

Notepad++ > Sublime Text > Atom > VSCode


If by "everyone" you mean "developers when doing development work".

I work in a Windows shop these days, and I see Notepad++ used by everyone - developers and managers alike - for poking around various configuration and log files.


You're not wrong; my only regret there is Atom, which never got the performance right when I used it.

VS Code is not great in performance compared to ST either, but it does more and it's got a much bigger ecosystem and developer activities.

ST feels more like a black box, irregular updates, vague provenance, etc. It works, and it worked really well for me back when (in the days when Javascript didn't have proper modules, documentation or types, think early days of NodeJS / NPM, Bower, BackboneJS, etc). But nowadays I'm not sure if it's keeping up with VS Code or IDE's. I'm mainly using intellij at the moment, but it's slow in its critical path - editing code (the main reason from moving away from it in the first place). An editor should NEVER lag or block when the user is typing. ST did this Right. Notepad++ probably does as well.


Sublime is still the most performant text editor I use. Its plugin ecosystem is not particularly healthy, but LSP helps bridge the gap with more advanced code editing tools. I mostly use it for quick edits, configuration files, etc. Sometimes I just want a break from Neovim I guess.

I don't regret buying Sublime at all, but I do feel like some potential was wasted there.


For me, ST is still the only editor in the world that works with really, really large files.


Same here, it's my go-to editor for anything over a few MB in size, frankly.


I went from Metapad > e - Text Editor > Sublime Text. Did anyone else use e? I still haven't seen another text editor that handled the undo buffer as well. The buffer had branching and a gui to view the edits and switch branches.

It also saved your undo buffer on close so you could still undo next time you opened a file.


For small edits, look at logs, scratchpad, open JSON or XML files Notepad++ > UltraEdit > Sublime Text

For FrontEnd development Atom is nice but bloated > VSCode (arguably > Vim)

For Java development Eclipse (or variants like RAD, STS) > IntelliJ Idea

for other languages your mileage may vary...


Sublime is what I moved from Notepad++ from. It has good extensions and is very fast.

These days I use Visual Studio Code. It's separate to Visual Studio. Code is open source and runs on Linux and OSX as well.

There's a ton of extensions and it's super flexible.


Technically vscscode isn't open source completely, it has many proprietary features.


For a version of VSCode without the telemetry you can use VSCodium


Which features are closed source? I thought the only difference the source on GitHub and the binary you download from Microsoft was branding and configuration.


Some of the extensions .. C# Debugger, Remote Server on WSL, SSH, Docker, whatever, Liveshare

The modern magic stuff. but the core editor is like you described.

Oh, and the market place itself.


Also C++ language server, Python language server...

Which is kind of annoying to me, because the whole value proposition of VS Code to me is that it drives language sever development, which lets me use Emacs instead of VS Code :).

Fortunately, Clang can cross-compile for Windows while pretending to be MSVC, so I figured out how to make clangd work with MSVC-specific codebases, and I'm good for now.


I think they are factoring some core capabilities of Visual studio into language servers and vscode gets a subset. Do they are protecting big VisualStudio.


Apparently the official C++ extension is not licensed to run in Codium either...although technically it seems to work in Codium just fine. Don't ask how I know. ;)


ST4 is about to be released. The LSP plugin in ST4 brings it to the level of VSCode.

I find this good news, mainly, i hate electron apps. ST4 speed is legendary.


> These days I use Notepad++ (doesn't everyone on Windows?).

I did 10 years ago, but I'm now using vscode (with a stint of sublime in the meantime!)


PSPad is probably the editor in which I've written most of my code as I was learning programming on my own (mostly PHP on Windows XP, old times…). Before that, I had used Notepad (yes, I did!), Notepad2 and Notepad++, but PSPad had so many features, so well integrated together that I used it almost exclusively.

At some point, I had to switch because… you know… NetBSD. And it was a real pain to start working with Emacs. After years of practice, I'm finally used to it and wouldn't switch to anything else, but PSPad remains the friendliest and most easily discoverable powerful editor I've ever used.

Thanks Jan, I might not be the programmer I am today without PSPad!


>NetBSD. And it was a real pain to start working with Emacs.

You could use any other editor, both for GUI and CLI.


Well, maybe. Didn't know that back then. I also used the default shell I was provided with (tcsh), if it helps understanding how lost I was.

In retrospect, I'm probably a happier coder now because of that.


Unrelated, but hope someone here knows: what was the name for Microsoft's design language around 2002? Example for Frontpage https://media.codeweavers.com/pub/crossover/website/appdb/b7...

Looking for any info on its principles, or anything really.


I like that the screenshot you picked actually shows FrontPage running under Wine/CrossOver, most likely on Linux + KDE (judging by the title bars).

It speaks to how successful Wine is that this is easily confused with a native screenshot.


I couldn't find much about it. I was learning to program MFC at the time, and just before Windows XP appeared Microsoft started experimenting with that flat buttons style, which I really wanted to adopt my apps.

I don't think it was an actual design change from Microsoft, just some transitional look-and-feel they adopted which sits between Office 2000 with the classic Windows 95+ look, and Office 2003 inheriting the Fisher-Price oversatured cartoony look of Windows XP.

https://bcgsoft.com/featuretour/tour163.htm


> flat buttons style, which I really wanted to adopt my apps

Everybody wanted them :) 2000 or 2001, right? It was TBSTYLE_FLAT.


There is a snippet linked to from Wikipedia’s article on Office XP (see section on streamlined user interface):

https://web.archive.org/web/20050930195959/http://download.m...

The overall UI still uses the Command Bars concept (merging of menus and toolbars) first used in Office 97.


What do you mean by 'design language'? It was a WYSIWYG (What You See Is What You Get) editor, at least as far as I know.

What 'design language' are you speaking off? It was supposed to be HTML in the end (well whatever that meant in those editors :D)


Examples: Microsoft's current design language is called Fluent Design. Google's is called Material Design, and Apple's... idk, their old one was Aqua and their current one is referred to as Cupertino I believe?

Not sure if they even gave names to designs back then though, I believe it only became a thing during a design transition era some time ago (moving away from 'skeuomorphic' to 'flat design').


Windows 3.1, Windows 95, Windows 98, XP, etc. There wasn't a cohesive design language it was just referred by the OS name. You had garish colorschemes (remember hot dog stand?... yeah) and lots of silly things. Win32 programming back then was barely one step above pushing pixels on a canvas and it showed. VB and OLE, then COM started to standardize prebuilt components like dialogs and such that could be shared and used between apps but it was still a wild west of design. Into the 90s it got worse as Windows 98 gave more control over rendering to apps and we had things like Winamp skins that looked like a modern stereo, or a (thankfully) brief period where non-square windows with ovals, curves, and all kinds of junk were in vogue (track down an old copy of Bryce 3D if you want to see something really wild). It's an era of computing that's probably best left forgotten. :)


The icons and color scheme remind me of Office 2000.


PSPad has been my main text editor (not IDE) for almost 20 years now. Such a great piece of software.


That's a name I haven't heard in many a year! Completely forgot it existed.

I used to use this extensively about 15 years ago I think, as it was a very capable free editor. It was one of my go-to installs on windows.

Now ... I don't use windows for much more than gaming.


My first PHP code was written on PSPad. I didn't love it but I also didn't hate it and it worked. It's really nice to know that it's still going on.


I wish there were apps like PSPad and Notepad++ on MacOS. I really did not like any editor I used on this OS. Same with MS paint and the windows calculator.


For a text editor, what's wrong with any of TextMate, BBEdit, ubEthaEdit or CotEditor, to name but a few.

Literally the only thing I've ever seen anyone in a professional setting use MS Paint for, is pasting the result of a screen dump, because apparently capturing to a file would have made it to convenient for the user.

What exactly do you see missing from the macOS Calculator, that Windows has?


> For a text editor, what's wrong with any of TextMate, BBEdit, ubEthaEdit or CotEditor, to name but a few.

There is nothing wrong with those. I guess it is a matter of getting comfortable with the UI.

> Literally the only thing I've ever seen anyone in a professional setting use MS Paint for, is pasting the result of a screen dump, because apparently capturing to a file would have made it to convenient for the user.

I disagree. MS paint is amazingly useful in so many situations. And it is just simple enough that I can do everything without spending much time. Even the markup tools in macos's default editor are cryptic and hard to use. I have yet to figure out how which tiny inscrutable button crops the image.

I downloaded paintbrush, but that is also way harder to use than paint. How do you resize the canvas? Why does drag and drop not work? Why are all the toolbars floating in the air?

> What exactly do you see missing from the macOS Calculator, that Windows has?

Literally everything! Macos calc is just one simple standard calculator with only 5-6 operations. On windows, the calculator has a button that converts it into various specialized versions. Like programmer, which has a nice bit-wise display also. There are many built-in unit conversions too.


> There is nothing wrong with those. I guess it is a matter of getting comfortable with the UI.

It’s a text editor. The “UI” is a box you type in. What “getting used to”?

> Even the markup tools in macos's default editor are cryptic and hard to use.

If you say so.

> On windows, the calculator has a button that converts it into various specialized versions. Like programmer, which has a nice bit-wise display also. There are many built-in unit conversions too.

macOS built in calculator has had multiple modes and conversion tools (including e change rates using online lookup) for years. I don’t know exactly how long it’s had those features, but it’s since the early days of Mac OS X at least.


You can try SciTE, a cross-platform Scintilla-based editor (similar to Notepad++).


It looks good but it is a ₹3699 ($49) purchase! I usually don't hesitate to pay for the software I use, but this is too high a price for a text editor. I will see if there is a way to demo it. Thanks for the suggestion.


Oh, didn't know only a commercial macOS version exists.

Edit: Not sure about tooling ecosystem in macOS, but IMO it isn't worth that much.


And I still wish there was a text editor like BBEdit on Windows...


Huh, blast from the past! It's been just a bit over 10 years since I donated to PSPad. My first editor when I got into programming as a kid.

Directly edit on FTP hosts was one of my favourite features. I would edit php websites directly... Until I lost absolutely everything one day and soon after switched the editor.


For anyone who loves Vim but also the extensibility of Visual Studio Code I suggest you take a look to Onivim 2 https://www.onivim.io/

Disclaimer: I'm a user of Onivim 2 but I'm in no way affiliated with the author.


How is this better than just using VS Code with the vim extension?


Looks cool though I've never heard this before and doesn't come up in editor recommendations. Also the

>Link on the donation page can be published as reward for $50+ donation for one year.

seems to be working as there're many donations at exactly $50.


I remember using this editor in the very early 2000s, it was quite something back then. You could easily live edit files off of FTP. With PHP being all the rage, we were changing things pretty live :-)

Good times.


Landing in a mainframe team a few years ago most devs swore by pspad.

It's a nice piece of software, built in ftp support and can push new versions on save (combined with VMS style versioning).


Does he really use ICQ still? :) https://www.pspad.com/en/author.htm


glad to hear PSPad is still under active development. I use PSPad as an alternative to UltraEdit in my senior high school and university till I discovered Sublime Text and later VSCode.


Old but not obsolete.


Another text editor I had used for a few years, and liked, many years ago, was PFE - Programmer's File Editor.

It was lightweight, fast, and could edit large files (for the time) easily.

https://en.m.wikipedia.org/wiki/Programmer's_File_Editor


Searched for "LSP" and "Language Server Protocol" and did not find any mentions.

Unfortunately, I think the programming languages are getting too complex for an editor to try to maintain smart browsing, smart formatting, code completion, etc. Language Server Protocol allows this language work to be done once by people who are generally actively tracking the language.

I think in 2021, a programmer's editor without Language Server Protocol support is hopelessly hampered.


Let me tell you about my knives:

-A swiss army knife that I always carry, for small fixes, opening packages & bottles (the scissors are amazing).

-A small foldable knife for slightly heavier duty or eating on the go.

-A bigger foldable knife for outdoors, camping, ang general purpose work.

-A rescue knife I keep in an emergency kit, with cord cutter and glass breaker.

-A huge chef knife for general cooking.

-A small cooking knife for cutting veggies precisely.

-A small fixed-blade outdoor knife with scandinavian grind, solid, easy to sharpen, and very precise for things such as wood carving.

-A bigger outdoor knife in stainless steel.

-A relatively cheap, thick and huge carbon steel survival knife, which is extremely though but require taking care as to not rust.

-A less cheap huge carbon survival knife because I like toys after all.

-A little hobby knife for crafts and very precise work.

All of these tools do the same basic thing (cutting), yet aside from that and being made in some kind of steel (ceramic knives are bad), all of them have no common attributes, and they are not appropriate for the same kind of work.

And cutting is much, much simpler than writing code :)

Thanks for reading my blog.


Do you use a different computer for each editing task too?


The VM/CMS approach to computing?


That's a sophism, sorry.


Your spiel about knives on the other hand was a masterstroke of intellectual discourse.


I am more of an axe guy myself, though I reckon I rarely use them for cooking :)


Oh yes, my favorite tool by far is actually a small hatchet. You can do almost every life-or-death things a knife do with one. Properly sharpened, the head absolutely can be used for roughly cutting veggies and shaving very thin timber from logs.


I for one am happy that PSPad takes less than half a second to launch and has a memory footprint of less than 10MB. If I wanted a fancy IDE with perfect syntax highlighting, I wouldn't be using PSPad. I have other tools for that. There's a space for editors that are more complex than Notepad and less complex than your average IDE, and PSPad fits right into that space.


My editor supports LSP, takes 400 ms to load and uses less than 1mb of memory (300mb+ when LSP is active) ¯\_(ツ)_/¯


My experience with LSP (gopls specifically) in Emacs has been abysmal. It makes navigation even slower, opening files sometimes takes a second or two, but the worst issue is frequent crashing. lsp-mode with gopls is the only plugin I've used that crashes Emacs altogether. I've never lost much work thanks to autosave, but to say it was annoying is an understatement. Since I disabled both a few weeks ago, crashes stopped entirely.

I probably should open an issue about it, but with the complexity of the entire stack I'm not sure what component is responsible, and frankly didn't have time to dig into it.

So I'm glad that simple editors still exist that don't have LSP integration. There's a lot that can be accomplished with plain old ctags and grep.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: