PSPad: A freeware programmer's editor for Windows
pspad.com
pspad.com
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.)
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.
Don't run any of those old apps as an admin at the very least.
And yeah, there is very rarely a need to run apps as admin anyway.
It's not like these exploits are one-size-fits-all
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.
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
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.
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)
Same here, and TextPad from the same era still works (I occasionally try the version in my download archive saved back around 2001).
I'm impressed by the longevity of both PSPad and TextPad and it's refreshing to encounter fast, native, nimble desktop programs.
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?).
Old apps of all stripes did not generally require internet (or even network) access -- a lesson we could learn from today.
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.
Use ReactOS NTVDM, it's far more compatible. Just copy the DLL in the game folder and voilá.
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.
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.
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.
This is because Windows uses VM86, hardware virtualization that is only available in 32 bit (legacy) mode.
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.
I did 10 years ago, but I'm now using vscode (with a stint of sublime in the meantime!)
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.
The modern magic stuff. but the core editor is like you described.
Oh, and the market place itself.
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 find this good news, mainly, i hate electron apps. ST4 speed is legendary.
In terms of souped up text editor, the exact transition that "everyone" made since:
Notepad++ > Sublime Text > Atom > VSCode
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.
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...
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.
I don't regret buying Sublime at all, but I do feel like some potential was wasted there.
It also saved your undo buffer on close so you could still undo next time you opened a file.
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!
You could use any other editor, both for GUI and CLI.
In retrospect, I'm probably a happier coder now because of that.
Looking for any info on its principles, or anything really.
What 'design language' are you speaking off? It was supposed to be HTML in the end (well whatever that meant in those editors :D)
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').
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.
Everybody wanted them :) 2000 or 2001, right? It was TBSTYLE_FLAT.
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.
It speaks to how successful Wine is that this is easily confused with a native screenshot.
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.
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?
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.
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.
Edit: Not sure about tooling ecosystem in macOS, but IMO it isn't worth that much.
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.
Disclaimer: I'm a user of Onivim 2 but I'm in no way affiliated with the author.
>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.
Good times.
It's a nice piece of software, built in ftp support and can push new versions on save (combined with VMS style versioning).
It was lightweight, fast, and could edit large files (for the time) easily.
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.
-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.
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.