Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I submit that the reason the internet is boring is that these causes are all obvious to us, and this comment won't get upvoted:

1) apps created niche proprietary software everywhere that used to be free and open media

2) the declarative, idempotent roots of the world wide web have been replaced by imperative, brittle Javascriptified spaghetti code

3) Javascript build systems have largely obfuscated any code that can be seen

4) Web 2.0 introduced private social networks in walled gardens that in many ways offer fewer privacy guarantees than before (due to the profit motive of exploiting user info)

5) Monopolies and duopolies now receive the lion's share of funding for research (which tends to aim for increasing profits and attracting eyeballs instead of fundamentally advancing the state of the art)

I'll stop there. It's hard to say how many of these are fundamental impasses to having an open internet again..



I was on the internet in the mid-90's (I was 15 in 95 which I think is the year I got on the net, I'd been on BBS's for about 5-6 years before that) and it did used to be much more weird as a percentage of sites than now (though the number of sites was tiny).

As the grownups came along and commercialised everything a lot of that went away and back then if you wanted to say something online you had to learn HTML and what FTP was as a minimum.

So things were weird because quite a few early adopters were not techies by nature.

It's different now.

It's one of the reasons I don't use facebook, instagram, snap etc, they just don't stick for me.

I do use twitter but that is because it's a nice way to follow projects and programmers I admire so it has some utility to me.

I was an early user of reddit but since the redesign (on the back of cleaning up the community) the trend towards just another social network (EDIT: speaking of which https://news.ycombinator.com/item?id=19039571) is pretty clear at this point, it's utility is going down as is the quality of the average posts in the subreddit's I cared about.

HN has been fairly consistent since I join over the last 5 years, a testament to the effectiveness of decent moderation.

It used to be I checked HN after reddit but that switched over the last year or two.


I have been doing internet things since the early 2000s. I learned HTML and FTP and many other technologies back then precisely to say something online. I disagree that things are less weird now.

Things are more weird. Where there was one weird place, there are now thousands. Even if only 1% of today’s sites are “weird” that’s bigger than all of the internet of 1995 combined. Rising tide lifts all ships.

Want to talk on a BBS? Head on over to SDF. They got you covered. IRC is still alive and kicking, though now with far greater capabilities. GitHub. Think about what people used to have before GitHub. I uploaded things to SourceForge back when it was one of the few choices. Oof. Think about the kind of weird shit you can find on GitHub/GitLab/etc. today.

The thing is that the apparent problem is that non-nerds are now allowed online. The horror. I have found plenty of strange, weird, niche, 1337, whatever communities now and they are made better by the fact that you don’t always have to have a magnetized needle and a steady hand to use them. All you gotta do to find them is to look just beyond Facebook, Twitter, and Instagram. Hell, some subreddits are microcosms onto themselves.

But this nostalgia for the “good old days” when you couldn’t have a web page in Russian and Korean at the same time is just that, nostalgia. What has actually been lost that we used to have but don’t today?


I never said anything about "good old days" give me a choice between 1995 internet and 2019 internet and I'll take 2019 in a heartbeat.

Wikipedia alone would make that choice easy.

Throw in that I can get an answer to some obscure error code in some library to talk to an old piece of hardware in <30s and I'm completely sold.

I was just describing my experience between then and now.

> The thing is that the apparent problem is that non-nerds are now allowed online.

Now you are just projecting, I never said modern internet was worse and I definitely didn't say anything about non-nerds been a problem, the internet is a larger part of my mums life (nearly house bound due to arthritis) than it is mine and that's a good thing.


It's great for tech research, but if you search for anything else, it's all spam/commercial sites.


In what domain do you find spam to be overwhelmingly present?


I can be really hard to find "hot singles in your area" nowadays.


Fitness, health, DIY, investing to name a few I see regularly.


That’s fair. My response was partially to the general theme of the thread, and your comment described quite well the 1995 state of things.

My comment about the non-nerds being the apparent problem is not that I actually think that. It’s that this sentiment often comes up. But reality is that we have way more nerds online now than before.

And overall the whole article is basically an advert for a new blogging system. Which may or may not be fun to use, but pining for the days when XSS was a desired feature.


> Things are more weird. Where there was one weird place, there are now thousands. Even if only 1% of today’s sites are “weird” that’s bigger than all of the internet of 1995 combined. Rising tide lifts all ships.

Yes, this is the counterpoint to TFA. Sure, it's a lot harder to find "weird" stuff now. Especially because it tends to get pushed down in search results. But once you find something that's "weird" in your preferred way, there are often links to lots more of it.

Also, you'll find lots more "weird" on Tor onion sites, I2P and Freenet. There are a few reasons for that, I think. One is relative lack of censorship. Also, a lot of content is more or less standalone, generated by users using simple tools, on VPS or shared hosting. And there are constraints imposed by high latency and limited bandwidth. All of that is like the old Web.

So anyway, TFA is correct, if we're talking about the Web ("internet") as a whole. But not if we're talking about the absolute amount of “weird” content.


> The thing is that the apparent problem is that non-nerds are now allowed online.

Eternal September is forever.


Also a testament to the sustainability of usefulness of having a business model that isn't directly about monetization, which means it's probably really hard to copy.

HN is a PR project for an accelerator/venture capital firm. Since its purpose is to make ycombinator look awesome and generate leads for them (providing indirect monetary value), we all get a fun place to hang out and discuss stuff so they can project that image, but I have no doubt that without that fairly unique situation it would quickly devolve into some variation of what we commonly see with social networks that have to find a way to pay for the services they provide.


The technical side of HN isn't insurmountable, the moderation side is harder but the community side is the hard part.

I could build a HN, I could maybe moderate it (though probably not as well as dang and co, they are rather more even handed than me) but getting people to come and use it without attaching it to a VC fund not so much.

If I wanted to make a profit though then things are different.

Good community projects can self fund, lichess is a good example, hundreds of thousands of users, millions of games a day and zero advertisings, scheezy tactics.

Completely funded on donations, even pays the lead developer a liveable salary (though certainly not what he'd earn on the open market working for said scheezy social networks sadly).


I actually wasn't trying to make a point that HN itself is specifically hard to copy, but the more generic idea that having a business model that's not based on monetization is hard, for some of the reasons you noted. I guess a corollary is that HN is therefore hard to copy, but it's not for any real technological issue, as you note.

I also agree it's not impossible, as you point our with lichess, it's just that with the current level of consumer awareness of privacy, I think most people (still) don't realize what they are paying for some competitors that appear free, but are really just monetized through selling personal information, and for some services network effects trump almost all others. A free chess matching service, where being linked with random people of appropriate skill level is a selling point is a lot different than a social network that's built around connecting with friends and family.

AS to being funded on donations, while I think it's wonderful that a project can be funded on donations, I wouldn't want any project I care about to be in this situation unless the donations exceed all operating/staffing costs by a very comfortable margin. There's just not enough leeway for unforeseen problems in a situation like that. Server failure? Severe illness in key personnel? Massive influx of new users that haven't matured in the user lifecycle to consider donating yet? That's such a stressful situation that I can't imagine wanting to live it for more than a few years. Unfortunately, if you can't get enough donations to get past that point (or keep increasing scope until you are at that point no matter the incoming funds), I'm not sure a solution besides monetization in some manner, and the problems and perverse incentives that come along with it. :/


> I was on the internet in the mid-90's (I was 15 in 95 which I think is the year I got on the net, I'd been on BBS's for about 5-6 years before that) and it did used to be much more weird as a percentage of sites than now (though the number of sites was tiny).

I agree with your basic observation but I have a slightly different response:

Most people aren't all that fun or weird, at least not in a way which translates to text or graphical arts or music or anything else you can transmit over the Internet. Most people are the majority, and you'll never find the majority you're currently steeped in to be especially fun or weird. (Example: A great way to make a living as a comedian is to rephrase normality to make people see it as fun and weird. Observational comedy takes a keen eye for the obvious.)


In 1995 been on the net at all made you an outlier which is why I said by percentage though perhaps that wasn't clearly put.

None of my friends had a computer at home and didn't understand anything about them beyond those things we use in school for an hour once a week I was literally the only kid in my year who programmed them as a hobby.

We were not rich or anything but my father (for his faults) was fascinated with them and so I had access years before they became a thing.

They just were not embedded into the fabric of a working class northern town in England the way that they are now.

It's strange been under 40 and remembering three distinct phases in my life, pre-computers in homes, 1 computer in a home (maybe) and now everyone is wandering around with the kind of hardware 15 year old me would have dreamed of in their pocket.

I've been on the leading edge of computer adoption since a child and I still get future shock when I walk through a bus station and literally everyone is starting at a little glass rectangle streaming video wirelessly.

The other thing that still makes me smile is that my mum has three computers in her house, all of them running a linux kernel (Kindle Fire, Chromebook and a desktop running Mint) meaning as a percentage of devices owned she out 'Linuxs' me (I have an Xbox and dual boot for gaming), in 1998 when I was faffing about with RH and getting in trouble for breaking the family PC I wouldn't have seen that coming either.


You're entirely correct that most people just aren't all that fun or weird. Over the last 20 years the internet has become an increasingly commercial and democratised place. In the earlier years the level of technical aptitude necessary to be a content producer online would have filtered out the contributions of all but the more tech-savvy amongst us, who I'd wager tend to be among the more 'fun or weird' people out there. For commercial reasons alone, it's advantageous to all parties involved from those on the infrastructure side, all the way to media companies and manufacturers of consumer goods to make the internet a more accessible place. This has contributed to the internet becoming ever more homogenised, commercial and bland to match the taste of the vast consumer public. 2019 internet is built for the same status quo that the television stations and tabloids of old were made for. Also refer to the 'Eternal September' phenomena on Usenet, that's pretty much what's happened here at a large scale.


> Most people aren't all that fun or weird, [..]

It took me way too many runs around the sun to finally get that :(.


Maybe they are now self-censoring and therefore are even less fun or weird?


During that same period, we were building up the concept of UX and one of the things drilled into people's heads was that 9 times out of 10 (at least), what you are doing is not so unique that you deserve to use a new UI metaphor to present it.

When in doubt, use the same mechanisms to accomplish things that everybody else uses.

That sort of peer pressure is intended to reduce the variability between web sites. I think for better or worse we are seeing the dividends of that effort.


Are you the "Hinkley" who created HL?

More on-topic, you're totally right. I keep a copy of "Macintosh Human Interface Guidelines" on my desk and show it to designers sometimes when they want to suggest interaction patterns that are unnecessarily novel. Very handy! haha :)


(nope, I just like the sound of it)


Wow, have you looked up the price of that book now? I don't know what it originally sold at, but today it's $248 and up. You can get the PDF for free, but if you want a hardcopy to keep on your desk, it's not cheap.


Huh for sure? I could see it on Amazon around $20-40. But yeah I got pretty lucky, cost me $5 or $10 or something along with some other Mac programming books from that era. Aww yeah :)


Interesting wording, that reddit "cleaned up the community", and that this caused a decline in the quality of content. I had this worry at the time, and was, under doubt, opposing this decision. Could you say a few words about what specifically changed after this?

I don't personally agree, as far as I know, with any of the communities that were banned, apart from the communities for buying and selling stuff, which no one should really have a problem with. And some of the communities that were banned, I vehemently disagree with, and would probably strongly oppose if they formed a political platform. The "involuntary porn" subreddits were probably breaking the law and in some cases causing great emotional distress. This latter case I think clearly crosses the line, but there were plenty that were in a gray area at worst.

There's something to having free speech readily available for criticism and scrutiny that feels very valuable. These people are around whether you want them to or not, and there's value in being able to scrutinize their views. Also, I feel there's a chilling effect when you've seen examples that saying certain things leads to explulsion.


You've pretty much covered my views.

What was illegal should already have been banned but the removal of non illegal but objectionable (to many) content stuck at the heart of what Reddit was, of course it's their platform and they can do as they please but I often enjoyed debating with people holding diametrically opposite views.

I mean I entirely get why they would do it from a business point of view but it was a stark sea change from what they'd done up to that point.

Throw in all the other odds and ends and Reddit just feels different.

The constant nagging to install their app, the hilariously bad redesign and handling of the redesign etc it just adds up.


Cool. Nice to have this discussion with you. It felt like there was remarkable consensus on reddit while these changes took place, with remarkably few people who took a more principled (in a free speech sense) stance. So I’m glad it’s not just me. I’ve been questioning whether I am in the wrong for not wanting to censor unpopular or heinous opinions.


I wonder if there is a way to combine the weird fun that was geocities/tripod/etc with the connections of a social network and modern ease of updating. Like how you use twitter, but for following webpages about butterflies or a shrine to the 6502 processor.


What you want is ActivityPub: https://activitypub.rocks/

It's the underlying protocol that connects the various federated services in the "Fediverse", (see https://en.wikipedia.org/wiki/Fediverse) like Mastodon, PeerTube, NextCloud, etc. At root it's just a standardized way for nodes in a network to send messages to each other, though, so you could use it to get those "connections of a social network" you're looking for. And then Mastodon users, say, could get updates/notifications from your site/service/whatever right in their feed.


RSS - (partially) Google killed it.

My first website was about about TNG and why DS9 sucked balls.

Ironic since I now consider DS9 the better series (but TNG still has the truly stand out episodes, I think young me was just oblivious to a lot of the subtler stuff but I digress), it was shockingly bad (and I'd been programming since the 80's, HTML was just weird).

I spent about five years hating the crap out of it and never even considered web development as a career, if you'd have asked me back then I'd have said you'd claw the compiler out of my cold dead hands.

20 odd-years later and I do enterprise web dev (and C#/WPF and Java)


RSS is alive, and for dumb sites there are hacks such as https://github.com/RSS-Bridge/rss-bridge/-


I love RSS-Bridge. I have a local instance running, and it saves me from having to sign up with Twitter, Instagram, etc.

Also, tt-rss is an excellent reader.


I was interested in tt-rss until I tried it out and there was a problem with the Android app. I checked the forums for a solution...

If you do check out the forums for it you will very quickly see that the developer is a massive asshole.

I wouldn't trust any code that a person like that writes to run on my machine.


I forked tt-rss back in 2005 for my personal use after I tried to submit a few patches that didn't "align well" w/ the developer. I wouldn't go so far as to say "massive asshole", but he did seem to be a challenge to deal with. I decided it wasn't worth the effort to try to contribute back my changes.


You have a trailing - and also neat!.


I was able to enjoy TNG from the get go. It's one of the few shows where the stories have any depth. Although I did start watching it when I was in my twenties, so that could have been a factor in being able to pick up on the subtler themes


I watched TNG as it aired, that and Quantum Leap where my favourites as a kid at a time when UK TV was four channels and sci-fi was rare.


Bit of a shameless plug... but that's kind of what we're building @ find.xyz.

Here's an example of some weird shit in the dessert. https://find.xyz/map/toto-forever

Also one on the death of RSS since someone mentioned that https://find.xyz/map/what-happened-to-rss


Nice idea!

You've got a typo on https://find.xyz/about : s/beatuful/beautiful/g


Ha. Damn. Thanks :)


Stumbleupon was a good resource for this.


Websites have had comments sections since well before social networks took off. Even in the Geocities days, you had "Sign my Guestbook/View my Guestbook". Some truly old-school websites, like Mark Prindle Reviews, included email responses from people who read his work.

Trying to shoehorn social media profile integration into this system will eventually end up influencing the content, and once more it'll be a race to the bottom, with everyone posting stuff only for other people's validation. It shouldn't work that way for the 'weird web'.


Tumblr?


Tumblr gave itself up and will be irrelevant soon.


This. Weird and fun I exactly how I see Tumblr.


That, sprinkled with a bit of CP on top


youall forgot to mention beaker browser.


> and it did used to be much more weird as a percentage of sites than now

Bingo.

There are still weird sites now. But back then, that's all there were.


back then, nobody needed .onion


I think a bigger reason than any of those is that the web became a corporate advertising tool, run by bean counters and marketing people who don't like "weird" content because it may scare some people away. Just like TV, web content now targets the lowest common denominator and anything confrontational or "weird" gets put on niche sites or self hosting out of the limelight.

I think there are still a ton of "fun and weird" sites out there, they're just not on highly promoted, corporate backed platforms. And they're now a much smaller percentage of the entire web.


Actually, they're not that much scared that weird content will scare people off, they just don't like weird content exactly because it's weird and therefore unpredictable and hard to put into Excel planning charts.

Marketing people like boring and predictable.


The end result is still things like “wow, my tumblr account sure is a lot quiet now that all the people I was following because I liked their weird cartoon porn are gone”.


That was mostly FOSTA, wasn't it?


No, FOSTA hit sex workers. Tumblr just decided that lewd stuff would make it hard for Verizon to sell ads, so they banned lewd stuff and anything their shitty algorithm thought was lewd-adjacent. Now they're down something like a quarter of their former userbase, depending on whose estimates you believe; it might be higher. So that'll really help them sell those ads!


Excellent comment. I fondly remember the old advertisements and banner ads. Now-a-days most online ads are by major international corporations.


This is an amusing comment. You're trying to attribute social problems to underlying technological "problems". This is something an engineer would try to do, but I think the social problems of the internet have nothing to do with what framework a website was written in or whether or not software is proprietary.


>whether or not software is proprietary.

I think this has made a huge difference, not so much if it is open source our not but how much things have become locked down. Before if you made a cool program you could hand it out to your friends on a usb stick and run it. These days you have to pay $100 to apple and go through a long approval process before you get listed on the app store. Its the same with all the platforms people use now. They have become more and more locked down pushing the regular user in to simply consuming content and only the corporations with large dev teams are able to make anything.


How is sending your friends a URL that they can easily send to others any more difficult than handing over a USB stick? Seems far easier to me.


Now you need to buy a domain name, understand dns, understand web hosting and rent out a server because many home ISPs and routers don't support hosting servers.

Sure you can still do things but we are constantly raising the bar for creating and making consuming easier.


Not only that, but even if you could create something in the traditional way (without having to go through all those extra hoops you described), how many of the younger generation know how to run an executable locally (either downloaded, compiled from source, or received on a USB stick) when they've been raised on computer systems where everything takes place in the browser?


I came here to say the same thing. This reads like a list of technical issues that bother HN users the most. As such it's understandably a very popular comment with the HN crowd, but it has almost nothing to do with why we rarely encounter fun/weird things on the internet.


I don’t think it’s how we build websites per se, I think it has to do with how just a few websites have made themselves so phenomenally useful that they’ve eliminated the need for what I’ll call the “discoverabilty infrastructure” we used to have.

The first is Google. Google was such a phenomenally good search engine that you rarely needed to “surf” the web to accomplish a task. You could search “order a hand powered woodworking drill” and likely be taken to a page that let you do just that. Much of the discoverability of “fun, weird” stuff came from the “surfing” aspect of the web, Google vastly reduced that.

The second is Wikipedia (and the Wikia networks). Much of the wonderful weirdness of the early web was passionate amateurs compiling information, wrapped in their own design aesthetic (or lack thirst of.). Wikipedia as amazing and wonderful as it is, gets rid of the need to find these sites to answer a question about the world (again, reducing surfing behavior, at least outside of Wikipedia.)

The last is Facebook. So much of geo cities and the early web was the “personal website”- a Sort of combination of Facebook profile, blog, and experiment in web art. These sometimes grew into impressive little gems of content, but mostly they were terrible quips and “under construction” banners. Then came the Friendster->MySpace-> Facebook and LinkedIn transition, and the need for these personal sites dropped away. They still exist, but the interaction patterns for using fbook and LinkedIn are so much easier.

I feel like YouTube still has the early web experience to it. Much of the content remains the domain of passionate amateurs and the “up next” algorithm regularly takes me in serendipitous locations (and sometimes down some darker paths).

The fun and weird communities now seem like “islands in the net” if you will, they are there and probably larger than ever, but much harder to get to (or at least stumble upon), due to tooling that allows use to accomplish tasks without detours.


Much of the discoverability of “fun, weird” stuff came from the “surfing” aspect of the web, Google vastly reduced that.

One must not forget that Google is actively optimising search results away from the "weird stuff" and blocking users that try to dig deeper into the results to find it, insulting them with the accusation that they're a bot (a bit ironic, considering that if you behave "like the billion other mindless drones" you don't get singled out...) and presenting them with endless CAPTCHAs.

On the other hand, Bing still feels a bit like the "old school" search engines, and I've had better success finding the rare and niche "weird stuff" with it; apparently you can even find stuff horribly beyond legality, which is not surprising given how "dumb" it is: https://news.ycombinator.com/item?id=18876361

I'd say the "fun and weird" Internet is definitely still alive; but the efforts of search engines to "clean up" their results have basically resulted in censorship and hiding of the less popular parts.


About search engines, https://searx.me works great on local content, per country.


I think the de-anonymization of online users is another shift that (among many other things) caused the Internet to be less fun and weird.

You can see a very different tone in YouTube video comments, for example, before they switched to using real names.

Now, people are afraid to risk damaging their own personal reputation by posting "weird" things (I don't mean extremely weird either -- people are extremely self-conscious in general of saying things that MIGHT be considered weird in front of others, so they don't be themselves as much as they did when they were anonymous). And often, "fun" is synonymous with "weird".

It's not ALL bad -- people also say FAR less offensive things to each other when their real names are attached (but it still happens), but if you're looking for reasons for the shift, user de-anonymization is definitely one of them.


To add to this, the few remaining pockets of anonymity are still as weird as ever :)


I'm in a private forum and its funny to see how strangers with anime profile pics are able to discuss topics that would be flamed to death in seconds on most of the internet.


Ah yes, this is another great point. When people think they are being watched or monitored, activity fundamentally changes.


Show me a declarative, idempotent API that will render MAME games and run old OSes inside a browser window.

Even show me a declarative, idempotent API that can generate an arbitrarily long scroll of user-generated content.

If your answer is that users shouldn't expect to be able to do these things, then you have aliased the word "web" to mean something that 99% of web users will not recognize.


> Even show me a declarative, idempotent API that can generate an arbitrarily long scroll of user-generated content.

RSS. With a good reader software.


You bring up a good point, and I've had similar conversations with my friend who is an avid Unity developer, which has a mostly imperative programming (IP) runtime with a declarative GUI.

Since functional programming (FP) and declarative programming (DP) have many similarities, the same issue of hardness (for lack of a better term) exists in languages like Elixer/Clojure/Julia/Haskell/Scala/F# etc etc.

This all comes down to one of the most poorly understood concepts in FP, the monad:

https://en.wikipedia.org/wiki/Monad_(functional_programming)...

Honestly, I'm still not sure I understand internally how monads work, or if there are related terms for how I think of them. But monads (and related devices) are a way to deal with imperative logic and side effects when pure FP can't.

Imagine you're writing Tetris in a spreadsheet. It's easy to visualize how you might enter a piece's (x,y) coordinate in 2 cells and then pipe that through a series of cells containing logic that examines the blocks and outputs the next (x,y) coordinate for the following main loop.

But the actual main loop (that grabs input events) is very hard to visualize as a spreadsheet. This "glue" with the imperative stuff is where the monad comes in. Another way to think of it is, how to represent exceptions in a spreadsheet or a pure functional implementation of a promise chain (you can't without monads).

To write Tetris in HTML/CSS with no Javascript, we'd probably have to write a ton of CSS rules to show/hide/move DOM elements based on the state. That's an intractable problem for humans, so we'd probably compile the CSS from another language, which defeats the whole purpose. Maybe someone has tried it, I can't tell:

https://news.ycombinator.com/item?id=6709466

https://codepen.io/alexdevp/pen/pgdKf

But if we had something like a CSS monad, then we could write rules that are based on dynamic state from other rules. Writing this all out now, something like this might be useful, if anyone knows of such a thing.

Anyway, from what I understand, languages like Clojurescript get around this by suspending execution via a monad and then entering again with new input. Here is an almost purely functional Tetris clone written in Clojurescript:

https://github.com/yogthos/clj-tetris

Piece definitions, with code to offset/rotate the matrices and check for collisions by counting the number of cells to see if any have overlapped:

https://github.com/yogthos/clj-tetris/blob/master/src/tetris...

https://github.com/yogthos/clj-tetris/blob/master/src/tetris...

What I assume to be a thread sleep and JS setTimeout monads:

https://github.com/yogthos/clj-tetris/blob/master/src/tetris...

https://github.com/yogthos/clj-tetris/blob/master/src/tetris...

https://github.com/yogthos/clj-tetris/blob/master/src/tetris...

I know that code looks a little strange. But conceptually it's orders of magnitude simpler than that equivalent imperative code. Note that this is different from easy:

https://medium.com/@kiksdium/simple-vs-easy-bfd897ab293c

TL;DR; you bring up a really good point. FP and DP probably shouldn't be considered proven techniques until they can be used in the same problem domains as IP.


>This all comes down to one of the most poorly understood concepts in FP, the monad:

Of the languages you mentioned just Haskell, and Scala to some extent, has any deep concept of monads (and even in haskell they’re not part of the language, just a common idiom and ”easily” implemented)

Also, I’m using FP for the exact problems I used to use IP for, not sure what needs ti be proven..?


Oh sorry ya I went off the deep end a bit.

What I was trying to get at is that (IMHO) somehow the FP and DP paradigm has a huge blind spot when it comes to tackling the problems that IP solves handily. These are the problems that mostly involve integrating with the outside world - things like mutating state, exceptional situations, side effects etc.

Sure FP can largely avoid them via strong type handling and categories etc, but I've rarely seen good explanations of how to REALLY do something that programmers like to do, like write video games and social media feeds (things which the parent poster alluded to).

It's easy to visualize FP as a spreadsheet where the inputs generate a certain output. It's even straightforward to visualize how FP and IP are equivalent:

https://cs.stackexchange.com/questions/44305/why-are-functio...

https://cstheory.stackexchange.com/questions/625/relationshi...

https://en.wikipedia.org/wiki/Church–Turing_thesis

But I'm not convinced that pure functional programming can handle the simplest thing like new input without suspending execution or via a device like a monad. I also wonder if using those things makes functional programming impure. Which would make pure functional programming a fantasy..

This is maybe just a misunderstanding on my part since I haven't actually written much FP since learning Scheme back in the 90s. I'm all ears if you or anyone else knows of any articles exploring these issues.


Scheme was my first functional language actually. The general computational model is very similar to haskell untill you get to homoiconicity/metaprogramming.

Purity (and lazyness) is primarily there to help you reason about your code with referential transparency (purity ensures no side effects, and lazyness makes dealing with (certain parts of) bottom (think undefined) easier).

Of course any program needs to communicate with the outside world, and monads are a very general way of dealing with this. It’s worth noting that the first releases of haskell did not handle IO with monads.

At the same time, haskell contains functions to subvert lazyness (the function seq, which forces strict evaluation), and purity (the Debug.trace function which prints values in the middle of evaluating a pure function).

There’s also some fairly well-founded arguments that the State-monad violates the monad laws, which causes problems for referential transparency.

And you can still write a divergent function, in which case all your referential transparency goes out the window (kinda)..

Does this make haskell less pure? Probably, but since these are generally considered escape hatches or debug functions, the main paradigm of the language allows you (imho) to reason about your code in a way that’s (again imho) more amenable to separating your problem logically into discrete parts.

At the same time these escape hatches allow us to use haskell in the situations you describe. And you can often wrap them in a monad, in a way that allows you to reason about that boundary of the more purely logical parts of your code.

(There is obviously a tradeoff to using a type system like haskell’s. I’m a big fan of elm, precisely because it makes typed functional progamming easier to explain, and doesn’t distract people with all the fancy type theory stuff you can find in haskell (which I also love of course, and don’t get me started on agda))


Ok that all makes sense (I think). OK after sleeping on it, I had an epiphany about monads:

A monad is analogous to the imaginary number i.

So in FP, a monad gets passed along as a placeholder until it can be computed. Here is a pretty good description of how they work:

https://medium.com/@newhouseb/motivating-monads-f93c9ddf7014

I agree with his analysis except that in his "MAGIC TRICK" example, I would have used something that is UNDEFINED in the interim but can be computed to a real value at the end (just like how we use i as a placeholder device in math). His example:

f(x) = x^2 + x + 1

g(x) = 2x

h(x) = sqrt(x)

m(x, f) = UNDEFINED, if x is UNDEFINED f(x), if it isn’t

m(m(h(-1), g), f) ~= (2(sqrt(-1)))^2 + 2(sqrt(-1)) + 1 ~= -3 + 2i ~= UNDEFINED

In this case, the 2(sqrt(x)) is still undefined for -1, so can't be simplified further, so the answer is UNDEFINED.

But I probably would have used an example like:

f(x) = x^2 + 1 # <- note that his was x^2 + x + 1

g(x) = 2x

h(x) = sqrt(x)

m(x, f) = UNDEFINED, if x is UNDEFINED f(x), if it isn’t

m(m(h(-1), g), f) ~= (2(sqrt(-1)))^2 + 1 ~= (2(i))^2 + 1 = -3

See, using i or a monad as a placeholder allows us to compute a real answer.

In FP, all computable parts of the stack could be collapsed (optimized). Then if anything is left uncomputed, the runtime could block on any involved monad. Then when the monad is set to a real value from the input stream, it could be collapsed completely and return the final answer.

I haven't succeeded in learning Haskell yet, but when I tried, I got stuck on its mutability implementation, which seems to use monads:

https://en.wikibooks.org/wiki/Haskell/Mutable_objects

Honestly today, I would prefer to use pure FP. I think that allowing mutability anywhere in the language is a huge cost, because we can no longer visualize the whole thing as a spreadsheet.

I'd really like to know if another FP language solved the mutating state problem by doing something more like ClojureScript (CS), where it stops execution until the monad gets set from the runtime. Unfortunately, it looks like CS has mutable variables via reset!:

https://stackoverflow.com/a/36847124/539149

So it's not pure either :-/

Anyway, I'm still learning. Hope this helps someone.


I’m not sure that discussion of monads is super helpful. It’s not neccessarily wrong, but it doesn’t get to the meat of the matter.

Monads doesn’t represent uncomputable values like sqrt(-1), it’s more like they represent a context, where computations take place.

So you can separate all computations involving IO into the parameterized function type ’Monad a’, where a is your result type


(In the IO case that would be ’IO a’)


>Monopolies and duopolies now receive the lion's share of funding for research

This for me is especially soul-crushing. Some of the biggest minds of our time are working, devoting their talents and their ful attention, to the noble goal of... making us click more ads.

These people could be trying to research diseases, to come up with solutions for the big problems that affect us -- in short, working to to improve our lives. Instead, we reward those that make our lives even more miserable/erode democracy/help concentrate power even more. In our economic system, those are the ones that get rewarded.

Sigh.


I'd agree with #1 and #4, combined— "regular" people are very much siloed into apps that narrow the kind of media that get to them. Sure, the videos and photos are better than before, but that's just two types of content.

In my mind, weird/interesting internet died with the phrase "link in bio."


Well you have all proven my hypothesis wrong. Please stop upvoting this comment before you give me a complex :-P


We should invent a term for this, if it doesn't already exist?

"I'm going to get downvoted, but..." - proceeds to get upvoted

"Unpopular opinion: " - is actually a popular opinion


I propose we reach for Dickens to name this form of insincere disclaimer, and call it a "Heepsclaimer": https://en.wikipedia.org/wiki/Uriah_Heep


According to Google, you are the first person on the internet to ever use this word.

I like it. I'm going to start using this.


Aristotle's already got you covered with "aporia".

_Ars Rhetorica_, BTW is great read.


Well, it is mostly probably survivorship bias... you don't see the comments that say they are going to get downvoted and actually get downvoted.


If anyone is wondering, these exist. You can see them if you turn showdead on. Been interesting experience using it for a while.


I don’t know how to translate it in English, but in Italian there’s a specific term: Cleuasmo.

It’s a rhetorical device meant to captivate the audience by humility.


To add context, is a type of captatio benevolentia (“obtaining benevolence/captivating”) and as such is typically placed at the start of a discussion.

Someone uses cleuasms (I’m gonna create a word by inferring a translation) many times in a discussion. Pay attention: this unsolicited and reiterated form of humbleness can be too much. If you shouldn’t have right for a statement, apply suspension instead ;)


Weird, I was actually writing a response wondering whether there was a term for this phenomenon and then got distracted by work. I made a post about a week ago that I thought would be fairly unpopular and it ended up being my most upvoted post yet. It's like a super specific form of self doubt.


Decrying modern JavaScript is upvote bait on HN.


MySpace was a centralized for-profit site that owned your data, no different than any other, they just happened to allow more advanced design editing than similar sites today (which we look back on nostalgically, but I promise you they were ugly and crappy and fb an amazing breath of fresh air at the time). They do not, however, represent any sort of utopian free internet.

The problem is our wants have become too complex. A blog site that used to be simple self-hosted markup, now requires commenting, moderation, voting, recommendations, authentication, backup, performance, media, analytics, seo, and more. How much coding skill can we expect from people? And even if they had it, should everyone use their time re-implementing or deploying and maintaining tens of individual platforms to participate on the web? There doesn't seem to be a feasible way but to centralize. And now you need to monetize and people have shown they are not willing to pay money, leaving the only other possibility we know: monetizing the data - which, of course, only encourages even more centralization and data capture.

None of this is new, but these are the fundamental natural forces that need to be addressed.


This is 100% correct. The only thing I can add is that the profit seeking and consolidation is now hurting the remaining enclaves of weird fun on the Internet. For instance, many of niche subcultures that once thrived on Geocities still thrive on Tumblr, but the leadership of Tumblr is not happy about this fact.

When Marissa Mayer was in control of Yahoo (which included Tumblr) she used to brag about how she was using a "data driven" approach to maximize the revenue from Yahoo. This seems to have been abysmal for the actual users. Engagement on Tumblr stagnated, then declined. The great business guru Peter Drucker has pointed out that entrepreneurs often ruin their own products because they are uncomfortable with the type of success they end up with. Marissa Mayer would be an example of this. She had one of the great gems of the Internet, but she was uncomfortable with how weird it was. And it is difficult for leadership to really lead when the leadership is uncomfortable with the product they have.

I tried to capture how destructive her rhetoric about "data driven decision making" can be when I wrote the essay "When companies make a fetish of being data driven they reward a passive aggressive style":

"I’m especially curious because Google is famous for basing its decisions on “data”. I have no idea how things work in Google, but I can say that every company I’ve worked at that supposedly valued “data” in meetings actually valued something darker. The use of “data” in meetings tends to be a passive aggressive negotiating tactic for a group of people who for cultural or emotional reasons don’t think it is reasonable to express strong disagreement or actual anger. Instead of expressing strong emotion, people are taught to quote data — they then cherry pick whatever statistics back up their beliefs."

As far as I know, there has never been a company that said “We want the worst informed people to make the decisions” so in a sense all companies have always valued data. But they didn’t make a fetish out of it. They simply expected people to be well informed, and to make intelligent arguments, based on what they know. That would have been true at General Motors in 1950. That much has probably been true at most companies for centuries. When management says that the company is going to be “data driven” they are implicitly asking for a particular type of interaction to happen in meetings, an elaborate dance where people hide their emotions and quote statistics.

Trust your instincts. Over the years, we often condense many years of learning to a few simple rules. If you asked me from what peer-reviewed study I learned to value minimalist design, I would not be able to answer you — it comes from dozens of books, hundreds of articles, thousands of conversations, and countless observations, and if the accumulated wisdom of my years of experience is of no value to you, then why did you hire me?

Obviously I am not advocating that meetings should be abusive. No one should be allowed to talk over another person, as that would be disrespectful, but when one has a chance to speak, often the most effective kind of communication is one where people show how strongly they feel about an issue. If you are an experienced professional, then presumably you’ve been hired because the company wants to know the lessons you’ve learned over the years. If your instincts tell you that a given policy will be a disaster, don’t let anyone silence you with their demands for “data.” Speak the truth that you know."

http://www.smashcompany.com/business/when-companies-make-a-f...


You're missing the point completely. The deprecation of flash and the push for CSS are the unique reason things have changed


This is completely on point ^. I remember those times, and I also long for a weirder, more creative and more frontier-like internet! The combination of a strong reaction to Flash, which had begun to dominate the web around 2001, and the well-intended, but simultaneous push for web standards created an insurmountable course over-correction. Then the iPhone's non-support for Flash in 2007 was the final nail in the coffin. The web was never the same. We got standards (yay), but we made it unfashionable to be really CREATIVE with code. It was no longer cool to do something totally different and unique with code. There was no longer any point in putting information on the web if it wasn't cross-browser, cross-device, and future-proof. While standards have been a boon to our profession, they completely zapped the old internet. I am hopeful the pendulum will swing the other way.


I believe mobile / response / bootstrap killed the unique designs. CSS helped make things easier over inline style tags


i'm intrigued by your comment(2) concerning declarative, idempotent roots. could you add more language to that?


To take a simple example, HTML was originally a pure markup language, so if you wanted to make text bold you <b>would do it like this</b>; simple, declaritive

But then it was decided that there was no semantic purpose to the <b> tag, <span style="font-weight:bold">so it became this</span>.

Now, with the ubiquity of js, it's more like <span id="bold-text">this</span> (along with something like getElementById("bold-text").setAttribute("style", "font-weight:bold") in the background).

It should be pointed out that things come full-circle: frameworks like Bootstrap define the <strong> tag which, via similar JS to above, all-but-duplicate the functionality of the original <b> tag. I think the OP's point though is that you have to add a JS framework to do this.


What? <strong> is a tag defined in the HTML standard (with a bold default-styling in browsers). There is absolutely no need for frameworks to do anything to it, especially not with JS.

<span style=...> vs <b> vs <strong> have different semantic meaning, and all have valid uses in modern HTML.


I think this is a bit confused? <span style="font-weight:bold">bold text</span> would be appropriate for a span of text that is to be set in bold for no semantically-relevant reason, otherwise you would use something like <strong class="important">this (please read carefully!)</strong>, and then use CSS to style the "important" class as bold. The <b> tag has actually been revived, but it is reserved for a span of text that is to be clearly set apart from its surroundings for some semantic reason unrelated to emphasis, importance or anything that's covered by other HTML tags or features.


<span style="font-weight:bold"> is not invalid from a literalist perspective. It will still be bold.

Semantic markup is nice, but 'div/span soup' is still very popular and isn't technically incorrect.


Have you looked at the linked post? It creates a powerful mechanism for introducing new declarative elements. And gasp it uses JavaScript.

   import Ghost from "../components/Ghost"; 
   <Ghost size={80}>Thanks for reading!</Ghost>


I think you're overlooking CSS as well, which is a very nice declarative way that maintains semantics and makes styling more adjustable.

<span class="bold-text">this</span> and .bold-text {font-weight: 600;}


strong has been around for a long time.


Ya there are lots of articles on them, but let's start with these:

http://latentflip.com/imperative-vs-declarative

https://stackoverflow.com/questions/45016234/what-is-idempot...

https://en.wikipedia.org/wiki/Side_effect_(computer_science)

The early goal of the web was to create a longterm available, reliable, discoverable network of media over an inherently unreliable transport.

I keep trying to write a concise explanation of these but I can't fit it in a comment. Let's do it DECLARATIVELY haha:

imperative->functional->declarative

for()->foreach()->map()->executables+pipes->spreadsheet

C/BBS->perl/cgi-bin->Apache->HTML/CSS

manual network config->DNS

state machine/brittle long running process/fear of manual retry->idempotent request/response

Always, always, always work towards the rightmost side if you want the least side effects and highest reliability (critical for a distributed system built on unreliable parts!)

I'd like to say that declarative idempotency was an immediately obvious thing to the architects of the www, but what really happened is more like Darwinian evolution where each solution's fitness was measured by reliability. Declarative idempotency was also cheaper because requests/responses could be cached and scaled.

If we flip it around for a moment, imagine a web without these things. Every site would have a complex tangle of brittle code to do even the most trivial operations, and it wouldn't be able to pass data on to other sites (it would be an app). Without idempotency, users would have to be really careful to only click the send button once when they were transferring money (thankfully this hasn't happened much).

The one thing that I wish the web had though was a layer to make unreliable communication reliable. It would look something like a promise or future with no exceptional logic. That way we could think in terms of wiring up the inputs and outputs of many websites and then "load" it to execute the logic. Kind of like Ansible, where internally the logic is imperative but on the surface is declarative.

I'd also like to see declarative idempotence replace imperative code (especially object-oriented programming) at the developer level.


Incorrect. I was there the moment this flipped. It was actually with a bang, not a whimper.

The iPhone came out. Before the iPhone DSL was a thing, making big-ish pages was a thing.

Suddenly your pages had to be downloaded on a 2g connection. Eventually 3g, and 3g today is seen as insanity, but back then was the best we can get and still only few could get that.

We started to minify the hell out of our code. Every byte was critical. CDNs were used to speed every bit of our site up. Google came out with their research that you have ~150ms to serve content before it stops feeling instantaneous.

Boom.

Eventually tools came out to make all this so easy, why wouldn't you do it.

And thus here we are today.

I was using the internet when AltaVista was a thing. Searching was SLOW! If you wanted to find something online, grab a cup of tea, because its gonna be a while.


And ad companies like Google who have become so big that they can basically crush their competition. If you said 10 years ago that the most popular web browser right now is made by an ad company, people would have thought you're nuts but here we are. They basically control the very code that fetch and render those ads right at the end-user level.


Is this all set in stone?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: