Live data from Hacker News

Posix Has Become Outdated (2016) [pdf]

cs.columbia.edu

91–100 of 246 posts

Re: Posix Has Become Outdated (2016) [pdf]

#91
post #32

Earlier quoted context omitted.

That's what majority of computer users (smartphones included) use though. As for developer-oriented CLI tools, I've also seen more and more GNU-isms and macOS-isms creeping in.

Counter example: Almost everyone uses the Apache webserver when they browse the web, but hardly anyone even knows what that is. We could easily compile a long list of similar crucial infrastructure software that virtually everyone is using and that doesn't have graphical user interfaces.

Even if everybody is using Apache: Apache httpd doesn't use POSIX but APR (Apache Portable Runtime) which removes the POSIX-dependenc from the core of httpd.

Re: Posix Has Become Outdated (2016) [pdf]

#93
post #90

Earlier quoted context omitted.

Isn't the point that those are the most prolific platforms, where a common API to the system, POSIX, would be most beneficial to us as developers? But it's simply not possible to do? From what I can tell POSIX has been replaced by per language stdlibs, with the portability of your software tied to the portability of a languages stdlib. POSIX was mainly designed for C, most other languages have a higher level abstract…

POSIX wasn't designed, per se. It's a standard, a lot of which was the codification of existing practices on operating systems where the C language was the primary language. Also note the existence of FORTRAN language bindings, and the low level but persistent rumbles about C++ language bindings that have continued for the past 20 years or so. Then note the number of languages where the doco tells you all about how "…

Yes, you are completely correct. And 'designed' was perhaps a poor word choice.

In terms of wrappers of POSIX, I'm definitely not saying that POSIX is dead and not used. It's great that it is a beginning point for porting to various platforms. What I was more pointing out is that as a developer, its your stdlib's portability that is key. For example, many languages use POSIX interfaces where they can, and then switch to platform specific interfaces where necessary, for performance or other reasons.

Re: Posix Has Become Outdated (2016) [pdf]

#94
post #14

I know people tend to hold up POSIX compliance as something that's of utmost importance, but from my conversations with Bionic's maintainers, there's an awful lot of cruft and poor designs in some of the POSIX APIs.

One of the primary goals of POSIX was to standardize and encode existing behavior, but the behavior of Unices is sufficiently divergent that many APIs are uselessly underspecified. One especially hilarious case is close being impossible to use correctly in a cross-platform manner: on HP-UX, you must check for EINTR and try again; on Linux, close will close the file descriptor even if interrupted by a signal, so you m…

This is a really good explanation of POSIX! The issues with EINTR alone are enough to make you very angry at the standard.

Re: Posix Has Become Outdated (2016) [pdf]

#95
post #86

Earlier quoted context omitted.

What? Those are not even POSIX environments (well, their primary and intended interface interface is not POSIX, but they maybe eventually inherit some of it because of their underlying environment or Unix influences, but that's irrelevant). Also, I never used OS X but AFAIK many Unix software runs on it easily, so it must be mostly compliant if not completely (IIRC it's a certified Unix).

That's exactly the point of the report: Hardly anybody uses POSIX. Many people use frameworks on top of it though. If POSIX would go away many won't notice.

Isn't a nice common interface that those frameworks and higher-level language libraries and interpreters can be written for a nice thing? It's like a nice road network, you sure want to be in your car not on the road, but it's better if most of it is good for the common tire, you don't want to change your tires at every turn.

Re: Posix Has Become Outdated (2016) [pdf]

#96

Earlier quoted context omitted.

POSIX compliance is important if you value portability - especially for business critical systems (e.g. you want your bank's transaction processing data to work on IBM Z/Series's UNIX, whatever Linux distro they use, and say... SunOS). My main takeaway from the article is POSIX is too antiquated and anemic as a "system API" for modern-day use - however I'm surprised the article doesn't seem to touch upon POSIX shortc…

POSIX is neither antiquated nor anemic. There's nothing antiquated about a hierarchical filesystem with a single root. There's nothing antiquated about 'everything is a file'. In fact, that's continually useful to me on a day-to-day basis. There's nothing antiquated about byte streams, which is all they are. They aren't text streams. A great example of how all of this turns out to be good design is that you can see h…

> There's nothing antiquated about a hierarchical filesystem with a single root.

Actually, there’s quite a bit about that.

Having actually a filesystem API that takes a UUID for a partition, and then a relative path within the partition, would solve a lot of problems.

Re: Posix Has Become Outdated (2016) [pdf]

#97

Earlier quoted context omitted.

Counter example: Almost everyone uses the Apache webserver when they browse the web, but hardly anyone even knows what that is. We could easily compile a long list of similar crucial infrastructure software that virtually everyone is using and that doesn't have graphical user interfaces.

Almost everyone uses the Apache webserver when they browse the web No. https://news.netcraft.com/archives/category/web-server-surve...

To be fair, Apache not having an overwhelmingly-majority market share is (according to that site) a relatively recent trend.

Re: Posix Has Become Outdated (2016) [pdf]

#98
post #61

Earlier quoted context omitted.

Counter example: Almost everyone uses the Apache webserver when they browse the web, but hardly anyone even knows what that is. We could easily compile a long list of similar crucial infrastructure software that virtually everyone is using and that doesn't have graphical user interfaces.

How much of Apache is pure POSIX and how much are #ifdef around OS specific APIs?

Interestingly, I took a random tour through the source code and didn't find a single OS specific API. Which is not to say that the code was intrinsically POSIX specific. It is a surprisingly good example of multi-platform code. The #ifdefs that I saw were all to do with defining functionality from scratch if it didn't exist rather than the more usual massively indented list of platform specific hacks. Although I had fairly high expectations, I was fairly surprised at how nice the code was.

I didn't spend all that much time, so I'm sure I missed a lot, but I recommend taking a look for yourself as it is quite interesting.

Re: Posix Has Become Outdated (2016) [pdf]

#99
post #24

The original goal of the POSIX standard was application source code portability. However, modern applications are no longer being written to standardized POSIX interfaces. Speak for yourself.

Try to write a modern iOS, OS X, Windows, Android, ChromeOS UWP with standardized POSIX interfaces .

> Try to write a modern iOS, OS X, Windows, Android, ChromeOS UWP with standardized POSIX interfaces.

You're confusing popularity with being outdated.

It's irrelevant if some vendors intentionallly go out of their way to avoid implementing any standard interface which, in the very least, can't be controlled by them.

And it's also absurd that you're quoting platforms which even restrict which programming language can be used to write applications purely due to their business strategies.

Re: Posix Has Become Outdated (2016) [pdf]

#100

Earlier quoted context omitted.

Arguably, you listed the projects that went out of their way heavily to restrict and lock-in users.

Isn't the point that those are the most prolific platforms, where a common API to the system, POSIX, would be most beneficial to us as developers? But it's simply not possible to do? From what I can tell POSIX has been replaced by per language stdlibs, with the portability of your software tied to the portability of a languages stdlib. POSIX was mainly designed for C, most other languages have a higher level abstract…

> Isn't the point that those are the most prolific platforms

You're confusing popularity with being technically antiquated or obsolete.

Post reply on HN