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.
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.
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.
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.
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.
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.
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.
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.
> 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.
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.
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.
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.
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.
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. ;)
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!
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.
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. :)
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.
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.
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.
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 :-)
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.
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.
-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 :)
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 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.
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.)