6 ms·
You (and the authors of the article) seem to be assuming that "modern applications" are by definition applications with graphical user interfaces.
by cperciva 10y ago
You (and the authors of the article) seem to be assuming that "modern applications" are by definition applications with graphical user interfaces.
- kccqzy 10y agoThat'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.
- tmalsburg2 10y agoCounter 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.
- ycmbntrthrwaway 10y agoCount sendmail in: > There is some sort of perverse pleasure in knowing that it's basically impossible to send a piece of hate mail through the Internet without its being touched by a gay program. That's kind of funny.
- nj923f 10y agosendmail is dead at this point though.
- ci5er 10y agoHow so? As recently as 2015, sendmail, Microsoft Exchange Server, Postfix, and Exim together represented over 90% of SMTP service. Or is this one of those pre-emptive "called it first!" kind of comments?
- yosamino 10y agoI think the point is that out of these 90% not so many ones are "sendmail" anymore.
- justinator 10y agoAs a suggestion, let's keep the homophobia to a nonexistent level, please.
- detaro 10y agoThat's a quote by the (gay) developer of sendmail, I don't see how quoting that is homophobic?
- pjmlp 10y agoHow much of Apache is pure POSIX and how much are #ifdef around OS specific APIs?
- mikekchar 10y agoInterestingly, 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.
- nickpsecurity 10y agoApache uses the Apache Portable Runtime: https://en.wikipedia.org/wiki/Apache_Portable_Runtime https://en.wikipedia.org/wiki/Apache_Portable_Runtime That's one of the competitors to POSIX for application portability. Unlike POSIX, it was totally open as well vs people telling me The Open Group will sell me a copy of full standard.
- gm-conspiracy 10y agoAlmost everyone uses the Apache webserver when they browse the web No. https://news.netcraft.com/archives/category/web-server-survey/ https://news.netcraft.com/archives/category/web-server-surve...
- tmalsburg2 10y agoReading comprehension. I did not say that people only visit pages that are served by Apache. Even if Apache has just 20% market share there is a very high chance that you will hit some pages served by Apache. Plus, the same argument really applies to most alternatives to Apache.
- gkya 10y agoNitpicking 101.
- yellowapple 10y agoTo be fair, Apache not having an overwhelmingly-majority market share is (according to that site) a relatively recent trend.
- johannes1234321 10y agoEven 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.
- Avshalom 10y agoApache almost certainly uses epoll/kqueue.
- yamaneko 10y agoJust curious, can you give me some examples of GNU-isms/macOS-isms? I have a suspicion what they might be, but I'm not sure.
- bluejekyll 10y agoAsynchronous 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.
- JdeBP 10y agoI'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 one program is waiting in kqread, one of the inner processes of Chrome. Install my nosh toolset, and a fair amount of that changes, because my programs use kqueue+kevent and suddenly the "ps" output is full of kqreads. But what's left is still not "hardly anyone", by a long chalk. Would that it were! There's a nasty kernel panic somewhere in the innards of the kevent system on FreeBSD, where a sleeping thread holds a non-sleepable lock, that only manifests itself (at least for me) when there are a lot of programs using kqueue+kevent on a system that is doing a lot of stuff. If more people used kqueue+kevent in more programs, there would be more people wanting it fixed. (-:
- bluejekyll 10y agoYeah. 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.
- 10y ago
- geezerjay 10y ago> 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.
- bluejekyll 10y ago> ...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.
- kajecounterhack 10y agoColin I think you're being a little pedantic. You can use context to infer what they mean. This is their application list: https://github.com/columbia/libtrack/blob/master/workloads/osx.md https://github.com/columbia/libtrack/blob/master/workloads/o...
- cperciva 10y agoLooking at that list, I'm struck by the fact that it includes most of the applications users know they're using, but only a small minority of the processes running on an OS X system.
- pjmlp 10y ago> only a small minority of the processes running on an OS X system. Which are anyway not POSIX. https://www.amazon.de/MAC-OS-Internals-Amit-Singh/dp/0321278542 https://www.amazon.de/MAC-OS-Internals-Amit-Singh/dp/0321278...
- netheril96 10y agoPOSIX is an application interface. How OS X is implemented under the hood is irrelevant. It does present an application interface mostly conformant to POSIX standards, so it is some way POSIX.
- coldtea 10y ago>so it is some way POSIX. That's hardly encouraging, when all the basics and all the newer OS X abstractions are based things other than POSIX standards, and ask programmers to connect to them with non-POSIX interfaces. The fact that it also supports a POSIX layer is about as relevant to what we're discussing (whether POSIX is fit for today's needs and used in today's mainstream development) as the presence of some X Windows translation layer is in Wayland.
- pjmlp 10y agoIf I wanted to stay with CLI applications, MS-DOS would be enough. UNIX got X Windows in 1987.
- astrobe_ 10y agoCLI and GUI have different grammars and capabilities. If you think that CLI means "prehistory" and GUI means "future", then ask yourself why CLI has "survived" GUI for at least 30 years.
- pjmlp 10y agoHas it? Sure it is down there on the OS tooling, but how many people outside UNIX devs, do actually bother using it? Personally it doesn't offer me any benefit over an higher level programming language REPL.
- dualogy 10y agoSilly flamefest this. Even back when I worked mostly for Windows/MS shops or clients, writing CLI tooling for business (not developer) needs were often the order of the day. Batch import/export tools and what not. Also prototypes of daemon-like Windows Services for client testing. All kinds of tools that weren't directly developer tools. Sure enough, we were interfacing with IT folks at the client end but still, no programmers per se! There's a reason GUI starts with a G. Other than "graphical" user interfaces, "other" user interfaces will also always have their place.. In some ways looking at how much non-developer computer usage in the past decades has been in front of excel/access sheets and tables, these aren't so "graphical" either. They essentially end up evolving into (haphazard) custom CLI-like keyboard-driven power tools, half-programmable, half requiring intimate familiarity with its "commands" (formulas) or even "training" to use them fluidly. But if you'd rather code out your CLI needs in a PL REPL (aka CLI), more power to you ;D
- Gravityloss 10y agoInteresting, I assume you do development? How do you handle scripting, moving files, grepping logs etc?