Live data from Hacker News

Posix Has Become Outdated (2016) [pdf]

cs.columbia.edu

121–130 of 246 posts

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

#121
post #103

Earlier quoted context omitted.

Asynchronous IO, hardly anyone uses the POSIX standard of select and poll anymore, and instead use kqueue (bsd/macOS) and epoll (Linux). I should add that this is for performance critical software.

I'll agree that a lot of people prefer and recommend things like kqueue+kevent over select/poll. But my experience is that the statement that "hardly anyone uses" select/poll is still erroneous. On an out-of-the-box installation of FreeBSD/TrueOS, most processes listed by "ps" show a wchan of things like ttyin, select, poll, pause, uwait, wait, or nanslp. On the FreeBSD machine that I am typing at right now exactly o…

Yeah. I considered this critique, which is why I added the performance caveat. The thing is, libraries of other languages are being written abstractly over the native eventing systems on the OSes.

For example, the MIO library in Rust, is an abstraction over epoll, kqueue, and the MS primative. Not one over the POSIX standard. This means that if you use that in a Rust library, you get that platform independence for free.

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

#122
post #74

Earlier quoted context omitted.

Microsoft didn't have a mistake to realize. From very early on, one of the must-have toolsets for Windows NT was the Windows NT Resource Kit, with a whole bunch of command-line tools -- provided by Microsoft. There was in fact a whole load of command-line tooling for Windows NT, well before PowerShell and back to version 3.1 . Far from this being the reversal that you propound, actual history is even more in favour o…

Look at the design of NT. Every output is based on IPC and calls to the event logger. That something like a stdout exists is due to backwards compatibility and mostly the Posix subsystem. The entire OS was meant to be used and administrated by means of GUI. The existence of a bunch of CLI tools that deviate from the main paradigm doesn't prove anything to the contrary. Have a look at the literature on the design and…

>"Every output is based on IPC and calls to the event logger."

What does that even mean?

I think you're painting an incorrect picture of the design goals of NT. The original NT was designed by a group of people (e.g. Cutler) with VMS background and they sure as hell didn't have any GUI in mind. In fact, Windows came to the picture much later. Whether NT is administered by a GUI or CLI is totally irrelevant to NT design. Today all the NT derivatives (Windows Server) can be administered with a rich variety of command line tools.

Stdout exists because the original subsystems (OS/2, Windows, MS-DOS) required that. Same applies TODAY. Where is the NT bias to GUIs exactly?

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

#123

Earlier quoted context omitted.

"You're confusing popularity with being outdated." POSIX was supposed to be popular to the point of default way that apps were written. It failed. Whereas there's quite a bit of portable apps on (insert framework here). They succeeded with many running on non-UNIX OS's, too. You'll need those or similar things in your code instead of POSIX for truly, portable apps. That's his point.

> POSIX was supposed to be popular to the point If you read up on why companies such as Microsoft make it their point to break and avoid standards, you would understand why your comments regarding "popularity" are moot. Business strategies don't make or break technical merits.

I would not if the goal of a standard is uptake by OS and application developers. Wide usage of a product = popularity. It didn't achieve the popularity it sought. This is independent of what businesses like Microsoft were doing.

Microsoft's strategy was to create a permanent dependence on them for long-term profitability. They had too many tactics for that to cover here. Once open standards proliferated, they subverted them too with proprietary extensions under "Embrace, Extend, Extinguish" strategy. Companies buying into their solutions and using non-standard features paid the price.

Regardless, people still created apps that worked on such proprietary platforms and UNIXen via portability frameworks or libraries. Some products using them became quite popular (eg Apache, Netscape/Firefox) with some of the frameworks themselves becoming popular (eg Qt, GTK, wxWindows, Tk). POSIX's got into enough stuff that it was a default many picked up. Whereas, these others people went to willingly even when POSIX was available with even more portability. That's why they were objectively more successful on portability.

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

#124
post #110

Earlier quoted context omitted.

Yes, but the need for those shows that POSIX failed.

Just like CPU opcodes have failed... POSIX is a low level interface, that of the OS and the C library. It's another level of abstraction, necessary for the ones that are building other levels on top of it.

CPU opcodes have a different purpose. POSIX aims to be an API for general purpose application development.

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

#125

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…

> Isn't the point that those are the most prolific platforms You're confusing popularity with being technically antiquated or obsolete.

I think your reading more into my comment than is there.

If you're trying to write a portable app between all of those platforms, would you choose POSIX or would you instead pick a framework or language that has a better high level abstraction?

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

#126

Earlier quoted context omitted.

"You're confusing popularity with being outdated." POSIX was supposed to be popular to the point of default way that apps were written. It failed. Whereas there's quite a bit of portable apps on (insert framework here). They succeeded with many running on non-UNIX OS's, too. You'll need those or similar things in your code instead of POSIX for truly, portable apps. That's his point.

> POSIX was supposed to be popular to the point If you read up on why companies such as Microsoft make it their point to break and avoid standards, you would understand why your comments regarding "popularity" are moot. Business strategies don't make or break technical merits.

Are you also speaking about all those APIs in GNU/Linux that aren't part of any other UNIX clone?

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

#127
post #73

Earlier quoted context omitted.

At the end of the 80s and throughout the 90s, a common belief was that the CLI could be completely replaced by the GUI, one just hadn't yet figured out how. The GUI, however, never delivered those last 10-20% that you need in automation or in a context that requires reproducibility. Windows NT was designed towards those promises, but eventually Microsoft realised their mistake and created - ten years ago - Powershell…

> At the end of the 80s and throughout the 90s, a common belief was that the CLI could be completely replaced by the GUI And it has, except for backend programmers. Most Windows programmers stay all day in Visual Studio and the like, for example. But as far as end users as concerned, that is the 99% of computer users, the CLI might as well not exist.

[deleted]

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

#128

They managed to write an entire article about POSIX and never mention the filesystem parts? Even the section about "asynchronous I/O" seems to have more to do with locking than actual I/O. Nothing about directory operations, permission models, consistency/durability requirements, and all the other things that make that part of POSIX the most egregiously out of date. I wrote a bit about this ( http://pl.atyp.us/2016-0…

There's a whole lot of POSIX that they didn't mention. They concentrated upon the system call API and left out all of the concepts (character sets, locale, environment variables, regular expressions, command line conventions), the filesystem, the shell, and the utilities.

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

#129
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.

> That's what majority of computer users (smartphones included) use though. Most computer users access countless sites which run on deep software stacks running on any flavour of linux. ...which run POSIX.

> ...which run POSIX.

More accurate to say, expose a POSIX compliant API.

I remember BeOS had a 100% compliant POSIX layer. Impressive for a non-UNIX.

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

#130
post #30

Earlier quoted context omitted.

"There are literally dozens of us!" FWIW, I think C++ is killing it on mobile and many other platforms and disagree with the post you responded to. Just pointing out that 2 samples isn't statistically significant.

Where are the C++ killer applications on iOS and Android, besides game engines, written 100% in C++? Where is C++ on the iOS and Android documentation versus Objective-C, Swift and Java?

100 % is a trap. Lots of games that require performance use c++ heavily. There's an NDK for a reason.

There's a lot of languages and many are used in different contexts. Just because people use Java and C# to write desktop apps doesn't mean a lot are not using c++ and Qt to do the same.

Post reply on HN