3 ms·
Where's the joke? I do in fact target somewhat oldish POSIX sh when writing shell scripts; I want to write a script once and not have to worry about where it wi
by yjftsjthsd-h 2y ago
Where's the joke? I do in fact target somewhat oldish POSIX sh when writing shell scripts; I want to write a script once and not have to worry about where it will run, and sh is basically universal.
- deleted 2y ago[deleted]
- zamadatix 2y agoThe joke was the over the top-ness in the example of how CLI solutions have lacked forward compatibility as often as GUI solutions. The latter parts about how both CLI and GUI have decent examples of long term backwards compatibility were serious.
- yjftsjthsd-h 2y agoI don't think it works that way either, though. AIUI the problem is that QT5 apps don't automatically work on QT6 (otherwise this would be a non-problem; Ubuntu would just ship QT6 alone and everything would work). But none of the shell examples given have that problem; AFAIK virtually every script that worked on BASH 4 works on BASH 5 - as does virtually every script that worked on any other older version of BASH, and every script that targets plain sh. If you wanted to make that argument, the ncurses suggestion by https://news.ycombinator.com/item?id=42020272 https://news.ycombinator.com/item?id=42020272 is probably more compelling than the shell itself, which is amazingly backwards compatible.
- zamadatix 2y agoSure, I'll give the particular example of bash compared to sh is probably a poor example to put focus on in that it's one that doesn't demonstrate every point just like SDL 1.2 to 2.0 wouldn't due to SDL_Compat (leaving some room for interpreted vs compiled differences to not count otherwise we'd have to restrict conversation to scripted GUIs instead of QT or compiled shell commands instead of scripts). The other example of ncurses 6 vs 5 is better as it's a compiled interface where the ABI broke but that was already in the comment. Or take the other example zsh vs bash on how there are often changes that take some porting work but not much. More than each of the specific examples, the main point was meant to be more around things like stdout being comparable to display server protocols which do behave about the same in compatibility. Specific apps end up doing their own thing with compatibility regardless which interface they output on. One of the examples I chose was a poor example for that and seems to have distracted from that point, mea culpa. Another commenter noted Python might have been a better example of scripting compatibility over time.
- Brian_K_White 2y agoDoesn't work. A 30 year old sh script still works. A 1 year old qt5 app or python script does not.
- zamadatix 2y agoYou're right there, I should have used a Python on the CLI side as the example. Bash was a poor choice as it doesn't work with all of the points in one example. GUIs also vary on their out of the box compatibility, QT5 to QT6 is similar to Python in that that doesn't (without some work) just work though.
- davvid 2y agoQt5 to Qt6 is nothing like Python2 to Python3. The lessons from (Qt3 to Qt4 and) Qt4 to Qt5 have been learned and moving a large project from Qt5 to Qt6 is not that hard comparatively. There are a few minor deprecated APIs to handle and it's relatively easy over all. I even have a stable project that is compatible with Qt5 and Qt6 [1] all in a single code base (particularly thanks to the effort of the qtpy[2] library). It's not that hard, and my opinion includes C++ in that assessment. [1] https://github.com/git-cola/git-cola/ https://github.com/git-cola/git-cola/ [2] https://github.com/spyder-ide/qtpy https://github.com/spyder-ide/qtpy
- hulitu 2y ago> The lessons from (Qt3 to Qt4 and) Qt4 to Qt5 have been learned Have the lessons been learned ? They say this all the time when they release a "new" version.
- deleted 2y ago[deleted]