The craziest date ever - <AUTHOR> http://www.salon.com/2013/11/12/the_craziest_okcupid_date_ever/?new <comment><USER2> I did something similar albeit not so cool and without the intent of dating but with a backpack. Hiked and Hitchhiked a few weeks through Europe with a girl. We met through a "looking for hitchhiking partner" forum. It was tremendous fun. We almost had no money and no iSomething but met a lot of nice people and got around very quickly. We also showered and changed clothes every few days. Smelling like shit complicates things. Hitchhiking is far easier if you look and smell "normal".

I remember driving a BMW from the 7 series into the sunset heading to the atlantic ocean in france. I have the credit card of the car owner next to me (for the toll stations) as he is sleeping and we are listening to his favorite french chansons. He was a banker not much older than me. This connected feeling and trust is priceless and I'm really flabbergasted every time it works. There is a longing in the people you meet on your way and a longing in yourself. Nothing beats someone who stops and offers you ride after you were stuck for 6 hours in a godless place surrounded by refuges who are trying to enter great Britain in the back of trucks that cross the border. And you suddenly realize how important that passport in your pocket is. And how lucky and privileged you are and what desperation does to people. I don't know. It changed my perspective on a lot of things.

If you are careful with your money and avoid tourist areas and research cheap spots before going to big cities (more expensive if you don't know where to live on the cheap) you can travel for 4 weeks for 500 to 1000€ in western europe using only a tent and a small backpack. In eastern europe it is probably cheaper. We also went to restaurants quite often - so we were quite wasteful.

But if I would do it next year again I'd also take a smartphone with me. There is the great hitchwiki.org and Couchsurfing and other internet services would help me save money and time. This was in 2007.

<comment><USER3> My wife and I travelled through Europe around the same time as you (most of 2007 and some of 2008). We managed to spend about $25000 for both of us for a year's travel. There's really a ton of ways to travel cheaply if you do your research.

One resource that was invaluable for us was HelpExchange ([http://www.helpx.net](http://www.helpx.net)). Basically the idea is that you exchange helping out someone (usually for about 4 hours a day) in exchange for room and board. On it's own, it's not the greatest deal in the universe, but you can find some really interesting places. During our stay, we did help exchange at:

\- A farm in Sweden, where we helped out at the market, got to see some amazing countryside with super friendly people.

\- A pub / hostel in a small village in Yorkshire, where our "job" was really just to chat with the locals and pull the occasional pint.

\- An absolutely beautiful chateau in Normandy, with 4 other helpx people, including a chef who made the most amazing food ever.

\- A camel farm in Austria, where we actually learned to be pretty good horseback riders in 4 weeks (due to dressage lessons every day after we took the camels for a walk)

<comment><USER4> There's also a lot of hospitality exchange groups that'll help you meet people and hopefully find a place to stay. Here's a list: [http://wikitravel.org/en/Hospitality_exchange](http://wikitravel.org/en/Hospitality_exchange)

</comment></comment></comment><comment><USER5> The writing really is fantastic, the story compelling and unique, and the take-away completely expected. How could you not find yourself more focused, more present, more enrapt by the lands and peoples surrounding you, with nothing to distract you but the clothes on your back!

Modern marketing machines aside, I think the human condition really lends itself to exploring the world like this. There must be some base instinct which tends to support a high level of empathy and respect for the courageous and peaceful strangers who throw themselves into a foreign culture like this. Obviously some tribes don't invite strangers so easily, but often the people you think would be most hostile are the ones that welcome you the warmest.

One thing I'm mildly curious about, when asked, did they say they were Canadian? ;-)

Kudos to Clara and Jeff, and thanks for sharing your story with us.

EDIT: For those harping on them carrying an iPhone/iPad, let me just say this; feel free to comment about how your own similar experience was further enhanced by also unplugging. In the meantime, I'm impressed with anyone who can take such a large bet on the chivalry of strangers in a foreign land and come out so much better for it. Personally I think carrying an iPhone is orthogonal, because it's a useful planning and safety tool which does little to dampen the experience a trip like this can bring.

<comment><USER6> I found the writing middling, the story twee and arrogant and the take-away utterly predictable.

Of the two of us, I am clearly the better fit for HN.

<comment><USER7> > "Of the two of us, I am clearly the better fit for HN."

Thanks for the laugh, nailed it.

</comment></comment></comment><comment><USER8> As someone who loves the idea of wandering, but is always apprehensive of truly letting go, I enjoyed the concept of this article. The writing left something to be desired because the author missed the point that we the readers were looking for: did she fall in love with this stranger she met on okcupid? Did traveling without agenda with someone you barely know bring them closer together or further apart? Where is the HUMAN aspect to the story.

More related to the topic: Are there flex-passes still sold for flights, trains, etc (like eurail passes)? Or do security issues prevent basically open ended stand-by flying?

<comment><USER9> "Our romantic relationship intact, Jeff and I boarded the Heathrow return flight as closer friends than ever (despite the questionable state of our undergarments)."

<comment><USER8> yeah, but that gives us really very little to go off of, seeing as this was her "first date" right?

months later or weeks later, where are they?

</comment></comment></comment><comment><USER10> There's no story in this article. It is just a chronology of events designed to show off their hipster muscles.

<comment><USER11> I wonder if in 30 years people will be showing off their photo albums to which their kids will wonder why aside from the images not being 3d. That the photos have had detail purposely brushed out by means of superficial Instagram filters.

<comment><USER12> That's not what instagram does. Instagram replaces noise and poor color with an artsy layer. The missing detail was never there (or if it was, t was ugly detail like harsh shadows and pimples)

Shots with good cameras and lighting and faces don't get instagrammed.

</comment></comment></comment><comment><USER4> There's got to be some phrase that describes this. "Travel porn" is the closest I can get to. Wandering through random locales with some meager idea of a lesson learned or an "experience" that might in some way transmogrify your grip on reality. In the end you just end up meeting a lot of strangers and seeing a lot of different places, which doesn't teach you anything other than how to wash your clothes in a sink or how to order a beer when you don't know the language.

<comment><USER13> Josie Long does a good send-up of this in her standup show "Trying Is Good", [http://www.youtube.com/watch?v=n2Vwy9TL3pY#t=14m25s](http://www.youtube.com/watch?v=n2Vwy9TL3pY#t=14m25s) // [http://www.youtube.com/watch?v=PtBsI4JAViQ](http://www.youtube.com/watch?v=PtBsI4JAViQ)

"In this last year, I've got to do more traveling than I ever thought I'd be able to. It's been wonderful. What it has done is it has blown my tiny, (?) mind. I really want to talk about it. But I'm just a bit worried because I am aware that when people go traveling, they can come back with this sort of attitude on them. You know, like, 'Yeah, I've just been traveling … yeah, traveling, no, it's like a holiday, it's just I'm more sensitive than you. Yeah, no, just traveling, mate. Just the people, you know, soooo different! Just, pace of life mainly. Just, poverty, you know. Just the street food, temples, yeah, temples. Just so, just so, really made me realize how intelligent I am.' I thought, I probably am a little bit like that, I don't want to be."

</comment></comment><comment><USER14> I can almost hear the indie music and fixie bike bell ring.

<comment><USER15> I was hating hipsters before it was cool.

<comment><USER16> _yawn_

</comment></comment></comment><comment><USER17> It's a nice idea, but this strikes me as a bit of a puff piece for OkCupid. The fact the name of the site is used and not 'an online dating site' makes me question it.

I am somewhat biased though as I am a bitter + twisted undateable who's had bad experiences with online dating. If these people got something positive out of the experience, then awesome :)

<comment><USER18> Even the photos with their old/fuzzy/faded effect reminds me of the style used by TV adverts for online dating.

<comment><USER19> What I want to know was who was taking the photos?

</comment></comment></comment><comment><USER20> I hitchhiked from Leh to Manali in northern India with a couple of guys I met while travelling. It was an incredibly liberating, unforgettable experience. The hitchhiking experience gave you a completely different experience of travel: on the way from Manali to Leh I sat clutching my head with altitude sickness as a minibus sped through the Himalayas at breakneck speed, making the journey in 12 hours or so. Whereas on the return trip, I think it took us around a week: we saw so much more of the places along the way, had views across incredible Himalayan plains from standing up in the back of pick up trucks or overlooking chasms from the cab of a lorry while the driver dragged on his cigarette. We stopped off more and talked to more people, explored more, and even did a spot of walking like the authors in the article -- sometimes this is your only option: no vehicles for 3 hours? Start walking!

We had backpacks though... not as hardcore ;)

</comment><comment><USER21> During my Alaska->Argentina drive I managed a hostel in the Andes in Ecuador for 5 months.

I met all kinds of travelers, including a young lady that had been on the road for six months, with _nothing_.

Her passport was in her front pocket, and a credit card and ~$20 in the other. _Nothing_ else.

Her clothes were falling off and covered in duct tape and she couldn't remember the last time she showered. It was repulsive.

<comment><USER22> Sounds like you are complaining about a person who didn't shower. Gross sure, but the natural human condition.

The fact she no carried no luggage doesn't seem to be the problem.

<comment><USER21> With no luggage, you only have one pair of underwear. Showering only helps so much.

<comment><USER23> That's why you travel in exofficio (or similar) underwear.

</comment></comment></comment></comment><comment><USER24> The no change of clothes angle seems to be overshadowing what I think really made their experience - that of no itinerary. That said, I think people mostly over-pack for holidays/travel. I once had all my luggage stolen at the start of a holiday when camping in France. I ended up buying a jumper and a change of underwear and the rest of the holiday went swimingly :)

</comment><comment><USER13> I thought this was a pretty cool story but was a bit bummed that the author didn't disclose the total cost of their trip. It would have been interesting to know how much they spent.

</comment><comment><USER25> I once travelled through about 8 countries in Asia over two months. I was recently looking at the backpack I had used for that trip and remembered that it was literally half filled with lonely planet/history/language books that must have weighed about 20 lbs. That is hard to imagine these days.

<comment><USER26> To put that in perspective: I just backpacked a year abroad on a 14 country tour through Africa, India and Southeast Asia with my (now) fiancee. On our first day in Rwanda a guy gave us the entire 2007 Lonely Planet series (like 90 countries) in PDF format that we put on our Kindle. They were 5 years old and using a Kindle for large PDFs is an awful experience, but it saved us about 100 pounds of weight.

</comment></comment><comment><USER27> 1) It's a "date" and on every picture they're like 4 meters apart from each others. Hmmkey.

2) Looks too much like an okcupid & instagram linkbait than real stuff.

<comment><USER28> I was thinking exactly the same, the photos with the forced distance between them looks really weird.

<comment><USER22> I think its a theme, and they just met.

</comment></comment></comment><comment><USER29> Minimalist travel apparently includes an iPhone and an iPad mini these days. So much for getting away from it all!

<comment><USER30> An iPhone or iPad is a total minimalist thing. It replaces a camera, a music player, books, a mirror, a flashlight, a phrase book, travel guides. And that doesn't even touch on the communication benefits of having Skype in your pocket.

<comment><USER31> If you took a camera, a music player, books, a flashlight, a phrase book and travel guides with you then you would not be being minimalist. Replacing them with one tool is physically more minimalist, but in terms of distractions or intellectual 'stuff' about the same.

</comment></comment></comment><comment><USER32> I don't remember original saying but it was something like - "You have as much freedom, as far you can go with weekender bag". This guys are absolutely free, love it.

</comment><comment><USER33> There's something weird there that sounds like a very fun way of travel but those pictures seem very cold.

With that body length distance between each other in every picture they don't seem friends at all more like people who happen to be traveling together. What's up with that?

<comment><USER34> I thought it was cool. Instead of doing the boring arms around shoulders that everyone else does, they made a deliberate decision to take these posed, stoic shots, using the same formation in every one. Much more interesting than the "warm" shots you see in typical facebook posts that are instantly forgettable.

<comment><USER33> It's human nature to want physical closeness why would you mask that?

To me it looks like their awkwardly standing there like look where we are.

I detest posed pictures I like them to look as natural as possible.

Best way to get that is to catch people when they don't notice their getting their picture taken.

<comment><USER35> I always just make blurry photos this way :/

<comment><USER33> That's because average digital cameras suck at taking quick photos this way.

The best ones i made were all made by an old film point and shoot. Digital is still inferior in some regards.

<comment><USER9> I would think this has more to do with the quality of the camera and its output. If I find a crappy film point and shoot that doesn't allow me to claim all film cameras suck.

<comment><USER33> What if you found that all phone cameras and regular Digital Point and shoot cameras you owned do not match you old film camera in speed.

The only thing that comes close are the Professional DSLR's.

Would that qualify?

<comment><USER9> If I found that every one of the digital cameras I've purchased suck at taking the kinds of pictures I want then I would assume I suck at picking cameras. I would not assume that all digital cameras suck at taking pictures.

One of the biggest factors involved is going to be the quality of the lens. If the lens sucks then chances are you'll get bad pictures. A good film camera with horrible lenses will most likely get you bad photos.

Then, as you say, there's shutter speed to consider. Shutter speed will affect the resulting image based on the environment and situation where you are taking the picture. Most cameras meet the needs of most people, a cheap digital camera will not meet the needs of those who require high shutter speeds. Nor would a film camera. My question is, who cares? If it doesn't meet your needs then get a camera that does. For instance, get one that lets you adjust the f-stop.

Remember cheap, crappy film? That's the equivalent of a crappy digital camera. A cheap image sensor in a digital camera is roughly the equivalent of not only cheap film but a bad development of the film.

In other words, you get what you pay for.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER36> If there's an aspect I don't like about myself is that I hate traveling. The whole topic of travel bores me a lot. And really alienates myself from "interesting" conversations.

Just the thought of sleeping somewhere that isn't my place, then carry all things and walking, and having that fear of getting lost all the time is not something I find enjoyable, and lets not forget airports.

I enjoy going out (and I do it a lot) and meeting strangers and I pretty much live in a tourist trap. So it isn't that I'm antisocial.

<comment><USER37> Its reassuring to see that at least one other person has the same viewpoint as me, when I seem to be surrounded by people who 'love' traveling

<comment><USER36> I feel you, all my friends "love" traveling too, more like "love talking about traveling" tho.

I always think: "Do you know the implications of traveling? Not sleeping on your own bed? Bugs? Most people get sick for trying odd foods? (which is something I'm always down)"

</comment></comment></comment><comment><USER38> It seems to me a backpack wouldn't decrease mobility by much, and would allow for more comforts such as a change of clothes.

<comment><USER39> A small backback would not be a physical hindrance, but rather a psychological one.

</comment></comment><comment><USER40> I love how an iPhone was deemed more essential than a change of clothes.

<comment><USER41> Well, it gives them unlimited access to information, which helps a lot when arriving in a new city. The lack of a change of clothes is a bit gimmicky and relies presumably in being able to find a washer and drier pretty much anywhere.

<comment><USER42> > Once you actually travel like this a lot you come to realize that changing > clothes is basically optional.

some people sharing transport with you may disagree.

<comment><USER41> Looks like you meant to reply to a different post. In any case, in the OP, it is described that their clothes are regularly cleaned.

</comment></comment></comment></comment><comment><USER43> I had a girl fly from London to Spain for our second date, the day after our first, whilst I was on holiday with my at-the-time-ex-girlfriend.

Crazy stuff can happen!

<comment><USER44> Heh ... I've flown for dates at least 3-4 times. Seemed romantic at that time. None of them worked out and I blew a lot of cash. But it makes for some interesting memories :)

<comment><USER33> You should never fly for dates it never works out you come off too needy.

Now if you're flying to visit a place and just squeeze a date in that's different. The goal shouldn't be the date it should be visiting the city.

Maybe you can make her show you around (if she's a local) that way you get something out of it even if it doesn't work out.

<comment><USER45> What if the person you are dating works for the airlines and can fly you in for free?

<comment><USER33> Would you fly in every random person you date? You don't even know you like her?

They would have to be way past the dating stage before I would consider flying them in even if it's free.

Women are known to go on dates with guys they don't like just because hey they get a free meal. So the best way to find out if she actually is interested in you and not the perks is by not giving them out in the beginning.

If they're a girlfriend or just a friend with benefits that's different.

<comment><USER46> How is a flight to you for a date a perk? Sounds like a chore to me.

<comment><USER33> Some people like to travel to new places.

I would enjoy it.

Would any ladies here like to fly me in? :P

</comment></comment></comment></comment></comment></comment></comment><comment><USER47> From the photos it almost appears that this date was brought to you by the films of Wes Anderson.

</comment><comment><USER48> I really think they should have taken a towel with them.

</comment><comment><USER49> "Loves to travel" has to be one of the most cliché banalities that people put on their profiles. I guess kudos to these guys for actually living out their interest.

</comment><comment><USER50> You learn more about yourself going alone.

<comment><USER51> ...and you generally meet a lot more people. Traveling alone is awesome

</comment></comment><comment><USER52> Is anyone else curious how much money this cost them, outside of the plane tickets?

I imagine food would get pretty expensive with this strategy. I think the travel expenses (bus, train, etc) would be less than expected because of the hitchhiking though.

</comment><comment><USER53> Hipster hate aside, that was fun to read. You have to admit, you were amused...

</comment><comment><USER54> The travel idea is fascinating to me. Lately I have been really interested in taking a month off work and hitting the Andean countries in South America. Start in Colombia, hit Ecuador, Peru, Bolivia, Paraguay, Chile, and Argentina. Brazil and Uruguay if there is time. Adding this to it would give me much more flexibility and encourage me to be spontaneous. I probably wouldn't go as far as they do with no stuff though. I'd bring clothes and my MacBook Air at least.

</comment><comment><USER55> Reminded me of this: [https://www.youtube.com/watch?v=YHO391xTO-s](https://www.youtube.com/watch?v=YHO391xTO-s)

</comment><comment><USER56> If I was going to write an article after visiting 8 countries in Eastern Europe I hope I'd be able to find a better subject than myself.

</comment><comment><USER57> I don't believe the story, for the simple reason that they should stink a lot after some time in the same clothes.

<comment><USER55> Despite the photos, maybe they are Korean: [http://shotgunkorea.wordpress.com/tag/korean-lack-of-body- od...](http://shotgunkorea.wordpress.com/tag/korean-lack-of-body-odor/)

</comment></comment><comment><USER58> Nails every OkCupid cliche.

Not HN material though.

<comment><USER54> I thought the same at first. An OkCupid date isn't something I would expect to find here. The travel plan of buying a flight to one country and a flight back from another with no plans between, however, was fascinating and the type of thing I do enjoy finding on HN.

<comment><USER55> _The travel plan of buying a flight to one country and a flight back from another with no plans between, however, was fascinating_

Actually, if you're in the backpacking mindset, that is completely standard. Unfortunately that mindset is much less common in the US than in other Western countries.

<comment><USER54> I've known people who bought one way flights and came back when they wanted to. But making it a journey from one place to another seems really interesting.

</comment></comment></comment></comment><comment><USER59> Did they carry a pdf copy of the lonely planet(s) on their ipad mini? How about the hitchhiker's guide, by D. Adams? Just for the mise en abyme, I'm sure there was no time to read...

</comment><comment><USER60> Well, don't they say that the litmus test for romantic relationships is travel? Man, they learned how to swim in the deep end.

</comment><comment><USER61> Dude should've brought a condom.</comment>


Ivy: iOS app written in Go - <AUTHOR> https://itunes.apple.com/us/app/ivy-big-number-calculator/id1012116478?mt=8 <comment><USER2> Rob Pike tweeted about it (the Android version) recently [1]. I ported [2] the app to the web within a few hours. The port involves ~70 lines of Go, 22 lines of HTML, and 24 lines of CSS [3].

[1]: [https://twitter.com/rob_pike/status/619995629566058496](https://twitter.com/rob_pike/status/619995629566058496)

[2]: [https://twitter.com/shurcooL/status/620084337401171968](https://twitter.com/shurcooL/status/620084337401171968)

[3]: [https://twitter.com/shurcooL/status/620343011671609344](https://twitter.com/shurcooL/status/620343011671609344)

<comment><USER3> Python seems faster than this gopherjs solution. I thought they'd be about equal or the JS being faster since JS is supposed to be really fast at math.

I ran 2 __123456 in both and Python was quite fast, Ivy on gohperjs quite slow

<comment><USER4> Unfortunately, if you write

      2[star][star]123456

in a HN comment, the HN software will decide that this means a 2, then an _emphasized_ empty string, then 123456, and the results will be indistinguishable to readers from the much smaller number 2123456.

</comment></comment></comment><comment><USER5> Rob Pike's Ivy: [https://github.com/robpike/ivy](https://github.com/robpike/ivy)

Video about it (Nov 2014): "Implementing a bignum calculator" [https://www.youtube.com/watch?v=PXoG0WX0r_E](https://www.youtube.com/watch?v=PXoG0WX0r_E)

</comment><comment><USER6> Worth to mention, only the logic part is shared[1], for UI, both on Android and iOS native tools are used.

[1]: [https://www.reddit.com/r/golang/comments/3d0stz/ivy_first_an...](https://www.reddit.com/r/golang/comments/3d0stz/ivy_first_android_app_in_100_golang_on_google/ct0rcdj)

</comment><comment><USER7> This is awesome. Ignoring the fact that it is written in Go, the iOS calculator only goes up to 100,000,000 and it is super annoying. Free ones have obnoxious advertisements.

Now, I want to learn to write iOS apps in Go as well.. Super neat and a great app to start with

<comment><USER8> I could possibly see the point of this if Swift didn't exist (ObjC is my second least-favorite language, right behind C ), but otherwise it seems like little more than an interesting POC.

<comment><USER9> The point is to demonstrate that Go runs on iOS, regardless of what other languages also run on iOS.

<comment><USER10> That's not news, Apple allows a lot of languages to run on their OS now.

What matters is: how extensive is the support for this language on iOS? As far as this app shows, the support for Go looks very primitive and not really applicable to anything but toy apps.

</comment></comment></comment></comment><comment><USER11> A friend of mine was recently at gophercon and sent me this link: [https://sourcegraph.com/blog/live/gophercon2015/123653512740](https://sourcegraph.com/blog/live/gophercon2015/123653512740)

Writing a single shared library for different platforms makes sense. I think Google do this currently with java & then convert the java to objc, but if go provides an alternative it might finally be time for me to learn it...

<comment><USER12> > Writing a single shared library for different platforms makes sense

i've always taken this approach... like since the 90s, although not necessarily a library, but shared code. there has always been a way to do this thanks to the ubiquity of C - its just been that Google has been reluctant to allow 3rd parties to do on android what they do internally for reasons I really don't know...

<comment><USER13> Huh? You can use C libraries on Android with JNI & the NDK. In fact it's how most games do it.

<comment><USER12> i never said you can't. i just said you could...

</comment></comment></comment></comment><comment><USER14> anyone care to explain the technical how-to that made this possible.

<comment><USER15> This work is the extension of the Go on mobile experiment for Android, which was originally proposed here: [http://golang.org/s/go14android](http://golang.org/s/go14android).

Over the past several months, several open source contributors (most notably minux) and I have been working on darwin/arm and darwin/arm64 support for Go 1.5. We can build binaries, and we can build Go packages as C archives that can be compiled into an ObjC program.

At the same time Hana has been extending gobind ([http://golang.org/s/gobind](http://golang.org/s/gobind)) with ObjC support, and came up with the idea of turning Rob's Ivy into an app. Hana built the Android app, I did the iOS app.

This is a few hundred lines of ObjC/UIKit for the UI, calling into a Go function:

        func Exec(line string) (string, error)

With the bulk of the app being the actual Ivy implementation in Go.

It will be open source when I find the hours in the next week.

<comment><USER16> Just wanted to thank you and acknowledge your work - Go on iOS represents a significant opportunity. Thanks!

</comment></comment></comment><comment><USER17> previous discussion:

[https://news.ycombinator.com/item?id=9866152](https://news.ycombinator.com/item?id=9866152)

</comment><comment><USER18> Cool stuff!

I'm curious why they chose to have expressions evaluated in right-associative order.... Basically why is operator precedence equivalent?

Was it done because it was easier to code? Don't understand why this would be of significant difficulty.

Won't this complete diversion from accepted notation hinder adoption?(not intending to imply they are aiming for widespread adoption)

Could anyone who would use the app for an actual purpose chime in here?

Totally understand this is a pet-project/example btw. Just wondering.

Cool shit googlers :)

<comment><USER19> Operators in APL had the same associativity and precedence semantics. On his github page, Rob Pike describes Ivy as "an interpreter for an APL-like language", so it makes sense.

</comment></comment><comment><USER16> I recently ported IPFS ([http://ipfs.io](http://ipfs.io)) to iOS and have been running it on my iPhone for the last few months .. I was very pleasantly surprised how little fuss was required to get Go compiling for the iOS platform, and reminded once again that underneath all the garden trimmings, iOS is really just a little Unix workstation.

(BTW, IPFS on iOS: not ready for primetime, but .. what a world it will be when it is!)

</comment><comment><USER20> I wish Go had a proper way to do graphics and GUI. It would be great to make Go desktop and mobile apps without all the messy interop or launching a web browser locally.

<comment><USER21> You'll probably be interested in [https://github.com/google/gxui](https://github.com/google/gxui), targets desktop, mobile and web.

</comment></comment><comment><USER22> I strongly feel that once Swift makes it to be open sourced the path from iOS native to Android (cross) will become much simpler then (go:logic, java:android UI, objc:iOS UI).

<comment><USER23> I think Google is more interested in Dart as a cross platform language.

See the Sky project [https://github.com/domokit/sky_sdk/](https://github.com/domokit/sky_sdk/) which uses Dart as the UI framework. Currently runs on Android- but I believe the intent is to have it run on iOS as well.

From my perspective, Dart makes a lot more sense as an _application_ language when compared to Go.

</comment></comment><comment><USER24> Fun little app to mess with and I'm glad Go's branching out. That said, I was very disappointed when the app didn't include the ability to clear the screen.

<comment><USER15> Thanks. Screen clearing and state saving are on my todo list. It's just a big list. I'd like to get the source code published first, and that means landing some toolchain cleanups first. (The android app is a bit ahead, it has a clear button.)

</comment></comment><comment><USER12> very good of apple to not reject it for the terrible ui... well done though its good to see new tech making its way into the walled garden of the app store.

</comment><comment><USER25> Doesn't this break the policy of Apple? As I know, Apple allows apps only made of some restricted languages from when Adobe tried to make iOS apps with Flash.

<comment><USER26> No, Apple does not allow JIT. It does not dictate language use.

<comment><USER16> I'm using LuaJIT on iOS just fine, and experienced no restrictions from Apple about using it.

<comment><USER27> LuaJIT for iOS, confusingly, does not do JITing. Normal apps on iOS are unable to mark pages as executable, so it's impossible to JIT; it's not just an app store review-enforces restriction.

<comment><USER16> Alas, you are right and I have learned something new today. It seems that Safari is the only JIT'able process we developers can gain access to ..

</comment></comment></comment></comment></comment><comment><USER28> What's the point? Swift is a much nicer language to work in, it's more performent and iOS supports it...

<comment><USER6> The same Go code works on Android and desktop too.

<comment><USER29> and web.</comment></comment></comment>


Is WebAssembly the Return of Java Applets and Flash? - <AUTHOR> https://words.steveklabnik.com/is-webassembly-the-return-of-java-applets-flash <comment><USER2> The thing about Flash was that it was pretty WYSIWYG and a lot of creative people flocked to it because it had strong multimedia capabilities. Personally I kind of missed the part where you could build really nice looking stuff without much technical expertise, nowadays you need to know all about CSS, Polyfills and JS quirks so there's always this limitation where you have to understand pretty technical stuff early on to get something done.

Flash was more like using Premiere where you just edited your timeline with a bit of interactivity sprinkled over it, no movie editor ever had to get his hands dirty with some kind of scripting language or low level file formats just to edit a movie.

I had a lot of "oh wow" moments at the end of the 90's and beginning of the 00's with Flash. It was like the web was warped into the future. Nowadays you can achieve the same but not as elegant. It kind of reminds me of how PC's had to catch up with the Amiga for years. Perhaps starting with Wing Commander things were really on par or better, almost 8 years later.

<comment><USER3> To me, flash was like the past, or a warped vision of the distant future. The interfaces people created had visual appeal, but that's all they had. It lacked all of the usability that I was used to finding on webpages, and therefore made for a very frustrating experience. No bookmarking, no back and forward, no right clicking to open a new tab, frequent superfluous sound, major security holes, long loading times. I would hardly call any of this elegant. As a user, I was thrilled when people stopped using flash.

Flash was like using poor quality native apps, which was a step backwards from a browser.

<comment><USER4> To me, JavaScript is like the past, or a warped vision of the distant future. The interfaces people created had visual appeal, but that's all they had. It lacked all of the usability that I was used to finding on webpages, and therefore made for a very frustrating experience. No bookmarking, no back and forward, no right clicking to open a new tab, frequent superfluous sound, major security holes, long loading times. I would hardly call any of this elegant. As a user, I was thrilled when people stopped using JavaScript.

<comment><USER5> There are some bad JS websites, but most of them do have proper bookmarking since pretty much every web framework supports adding multiple pages including forward and back navigation. Browsers are also good enough to handle #links as well within a SPA app. Also, they tend to have faster than typical loading times for navigation within the site.

Flash didn't have any of that, and was much slower to load than modern JS websites.

<comment><USER6> Just no. I'm on latest chrome on android 6 and when I browse search results on YouTube, then click a video and hit back I expect that the scroll position within the results is restored. Instead when I hit back I only see the red top bar and a loading spinner and a moment later the results show up again and I'm at the top of them. Because we don't have nice paged results anymore, but this hip and ubercool dynamically extending page of results and everything.

And this is not some student's first approach at modern web technologies, its fucking YouTube from google. They can't get their shit working on their own browser. I have yet to see an SPA with a convincing UX that's more than just some wannabe webdev's "about" page.

<comment><USER7> > _this is not some student 's first approach at modern web technologies, its > fucking YouTube from google_

It's sad that Google is revered by the developer community as a role model for software engineering because their frontend web work has—at least for the last ~10+ years—always been terrible and a really great example of worst practice.

Gmail's early HTML version is possibly the last faded memory of a quality frontend product coming from Google. Everything they've created since the advent of GWT has been aggressively anti-user and anti-interop. Gmail took a long time to get full browser support and a longer time to play will with back buttons, etc.—meanwhile the Gmail interface has slowed and bloated with each iteration; the latest bordering on unusability on my very new midrange laptop. Wave never worked in anything but Chrome, the same is true of the early iterations of most of their large newly released products over the years. The Google homepage provides a totally inconsistent experience across browsers—on mobile I see three different results views in three different browsers, two are Blink-based! Why doesn't search by image work on mobile? We're thankfully no longer lumped with the distaster desktop experience the was Google Instant Search.

Similarly, Microsoft and Apple don't have great histories here. When looking for good development practices, you should always look at the example set by companies that _need to compete_. Monopolies don't need usability.

<comment><USER8> Ironically google landed its initial success with (and maybe partly because of) an ultra minimalist website focused to the task. They seem to have forgotten that and now they have bloat everywhere. Instead of reducing it they put a lot of resources into developing technologies to deliver that bloat more efficiently.

<comment><USER7> > _Instead of reducing it they put a lot of resources into developing > technologies to deliver that bloat more efficiently._

Efficiency has a lot of different definitions depending on whom the efficiency is "for". I would say Google put a lot of resources into increasing the bloat (adding abstractions) in order to automate the creation and maintenance of their services. They are the pioneers of removing humans from the equation: they're using ML to create their maps, instead of the previous focus on humans driving around with cameras, they have a notorious lack of human-intervention customer service for most of their paid services, even GWT which I mentioned above removed human JavaScript devs (admittedly in order to allow Java devs to write it, but unlike other transpilers—e.g. Typescript/Coffeescript—which produce a relatively readable direct JS equivalents, GWT is heavily abstracted and the output isn't in any way representative of what a human would create).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> > If you built an applet in one of these technologies, you didn't really build > a web application. You had a web page with a chunk cut out of it, and your > applet worked within that frame. You lost all of the benefits of other web > technologies; you lost HTML, you lost CSS, you lost the accessibility built > into the web.

But that's also true of an application which relies on WebAssembly (or JavaScript): it loses all the benefits of the web, because in a very real sense it's no longer a _web site_ , but is instead a program running _in a web page_.

WebAssembly or JavaScript, neither is document-oriented; neither is linkable; neither is cacheable. It's Flash, all over again — except at least with Flash one could disable it and sites were okay. with WebAssembly & JavaScript, every site uses them for everything, meaning we get to choose between allowing a site to execute code on our CPUs, or seeing naught but a 'This page requires JavaScript' notice.

It _is_ the return of Flash, and that's a bad thing. We thought we'd won the war, but really we just won a battle.

<comment><USER10> I envision horrible "all WASM" websites, just like the old "all Flash" websites, that won't have accessibility, won't be able to be linked to, etc. Worse, I envision this as being another step in the ad blocker arms race. Inevitably there are going to be websites that package an entire WASM-based browser that will need to be used to access the site, nullifying client-side ad and script blockers. I can see the pitch now-- "Keep your existing website but add our tools to prevent ad blockers!"

(Edit: Typos. I should know better than to post from my phone by now. Grrr...)

<comment><USER11> This is a criticism that would be more suited to the Canvas API than the WASM API. WASM is still meant to drive the DOM API which is still as introspectable as before.

[EDIT]: Steve is right of course, and I misspoke here, "WASM is still _able_ to drive the DOM" is closer to what I meant to say.

<comment><USER12> I agree with your first sentence, but not your second: wasm is meant to access all platform APIs, not just the DOM ones. Canvas is part of the platform as well.

<comment><USER13> I think we will start to see a lot of all-in-one frameworks that use wasm for constraint based layouts so people don't have to learn CSS. I hope I'm wrong but I can definitely imagine something like this coming from the enterprise java/.net types.

<comment><USER14> I sure hope we do. CSS has had 20 years and is still the most error-prone way of doing layout I've ever seen.

</comment></comment></comment></comment></comment></comment><comment><USER15> The OP is really spot on.

For the commenters that seem to have some underlying fear that WASM apps will be another incarnation of a "window in a window" or some horrible bitmapped graphics pane that does not fit into the web model:

WASM is just a CPU. It's a bytecode format for expressing low-level, high- performance programs. It comes "batteries not included"\--intentionally. By batteries, I mean APIs. WebAssembly modules must import everything they need from the outside. When embedded in JS and the Web, the first and still primary use case of WASM, that means modules can import functionality from both JS and the Web, and call literally _anything that JS can call_. That means WASM can (though still somewhat clunkily) manipulate the DOM, WebGL, audio, service events, etc, through all of the same APIs that JS can do. There is nothing that prevents a WASM app from looking and feeling exactly like something written in JS.

To reiterate: WASM does not require you to drop down to canvas or render fonts yourself. You can call out to JS or direct to WebAPIs! (again, it just happens to be clunky to do this from C++.) But other languages are working on bindings that make this much nicer. Rust anyone? :)

What WASM gives the web is a proper _layer_ for expressing computation. The APIs and paradigms that build on top of WASM are independent, swappable, interposable, by design. Because it's a layer for computation, and a low-level one, it is by nature language-independent. As Steve mentioned, adding languages to the web one by one does not scale. Thus WASM.

<comment><USER16> > _To reiterate: WASM does not require you to drop down to canvas or render > fonts yourself._

The fear isn't that it _requires_ that. The fear is that it _enables_ that.

The web is, and has been over the past two decades, in the constant state of war over control between publishers and consumers. People - and especially businesses - making pages would like to have 100% control over how the webpage/app looks and is being used. But the users would like to have _some_ control over what they're viewing too[0].

The most widely known battle in this war is the battle for ad-blocking. The publishers want you to view lots of ads. You want just the content, without any of the ads. So far, the technology (and economics) favors the user, but it's not a given.

The balance of control on the web was always maintained by the technologies on which the web standardized on. Pure HTML, or even HTML+CSS, strongly favours the user. JavaScript tilts the balance significantly towards the publishers, as now they can (and do) generate content with code, which renders the page difficult to interpret and modify on the user end. One of the biggest complaints about Flash was how shitty the pure-Flash/mostly-Flash webpages were. That's _not_ an intrinsic problem of Flash - this happened, because Flash gave the publishers _too much control_. And publishers (again, especially businesses) will use (and abuse) any control they're given.

The fear here is, that WASM against tilts the control in favour of publishing, which will lead to abuse and web becoming a much worse place for the consumers. If WASM will, by virtue of efficiency, enable publishers to embed a browser they control within the page, the publishers will use this, because this would single-handedly eliminate most ad-blocking, userscripting and scrapping efforts.

\--

[0] - and the power users, like myself, would like to have 100% of that control - think of how much better the web would be if the data was always published in machine-readable format, without tons of bullshit paginations and stylistic choices to scroll and click through. For instance, when looking for current weather, I want to input my location and a time span, and get weather data. I want to be able to script that. I _don 't_ want to waste time looking at ads, pretty pictures, non-relevant text and links.

<comment><USER17> > For instance, when looking for current weather, I want to input my location > and a time span, and get weather data. I want to be able to script that. I > don't want to waste time looking at ads, pretty pictures, non-relevant text > and links.

I feel the same way. But those ads are there because that's the entire business model of people putting weather data out there for free. On most free sites, ads aren't just a sideshow, they're the driving engine. Take away the ads, and there goes the business model.

What we need is some other way to pay for the weather data. Maybe this could be a service provided by your ISP, like NTP or DNS. Or some third party subscription service. Or maybe even taxpayer funded. But if you're using a service that relies on ads as their revenue model, then expect to put up with ads. They're part of the deal.

<comment><USER16> That's a fair point, and a prelude to a much larger discussion about business models on the web. Suffice it to say, I'd happily accept some deal for compensating the data provider - be it ads, micropayments, or even regular subscriptions - if the resulting data was available in a) machine-readable form, and b) decluttered form on the webpage, so that I could read it efficiently (possibly with support of userscripts/userstyles). As a bonus, such sensible data display will save the provider's bandwidth costs, as on the typical site, 90+% of transferred bytes are not part of the content.

</comment></comment></comment></comment><comment><USER18> I'm typically sharply critical of the web, but I think this comparison is kind of silly. The biggest problem with Java Applets and Flash is the security issues, which were largely caused by giving web pages access to a second, less secure sandbox. WASM stays in the same sandbox as the rest of the web. Flash also had the problem of being proprietary and non-standardized with only one implementation, something WASM does not suffer from.

For those worried about the "all WASM" pages looking like the old "all Flash" pages of yore, consider that Flash and Java applets had their own UI stack and WASM does not. The closest WASM has to that is OpenGL, but you've been able to make all-OpenGL apps with pure JavaScript for some time and it hasn't taken over the web with terrible sites yet. WASM code can interact with the DOM. I guess we could worry about native C/C++ GUI toolkits being ported to WASM, but the web community gets what you deserve for making Electron a thing.

I don't like JavaScript in general but I don't see how WASM is any worse, and if anything it's quite a bit better.

<comment><USER19> Flash player had a open access spec and there was more than just the Adobe Flash Player as implementations.

Pretty much every AAA video game of a certain period would have been using scaleforms Flashplayer for their user interface.

<comment><USER20> > Flash player had a open access spec and there was more than just the Adobe > Flash Player as implementations.

No, the compiler maybe, Action Script maybe, but not the player. The player is entirely closed source and there is no open spec for the player. Or you need to show it to me.

> there was more than just the Adobe Flash Player as implementations.

Only Adobe's implementation could run all swf files. Scaleform was not an alternative flash player. Any attempt at creating an alternative and feature complete flash player failed.

Flash the tech is not open, at all.

<comment><USER19> The player is closed source but the SWF spec is open.

[https://www.adobe.com/devnet/swf.html](https://www.adobe.com/devnet/swf.html)

</comment></comment></comment></comment><comment><USER21> WASM itself isn't Java, Flash, or Silverlight, but isnt it another step in the ongoing multiyear process of replicating the features of those technologies in a way that they tried to accomplish: compile to one format and run it on multiple platforms?

I think so, and the managers at Adobe and Sun must be kicking themselves for not somehow getting their runtime more open, modular, and standardized now that we see write once run anywhere with a few system hooks is all we need.

Then again... It was a different world in the mid 2000s. The web standardization process? Ha, what was that?

On a side note, I'm seeing more articles pointing out that WASM runs in the JS VM. Doesn't negate the whole advantage of speed for WASM?

<comment><USER22> I think it's a step forward in that it's more integrated into the platform. Remember when TCP/IP used to be an add-on for an operating system?

 _> managers at Adobe and Sun must be kicking themselves_

Both tried. As I recall Sun were blocked by Microsoft, and Flash was bundled as standard with Netscape from about 2001 onwards. Steve Jobs killed that stone-dead when he point-blank refused to support it on iDevices.

<comment><USER23> Some companies have all the right ideas and for whatever reason still can't execute.

Adobe AIR beat things like Electron and PhoneGap to market by years. IMHO the issue with Adobe is this insistence on 'open' still having various vary opinionated elements. Adobe Air for example had a lot of good ideas but still attempted to evangelize Flash and ActionScript. I _think_ MS is trying to pivot of that grave now with .NET Core. Time will tell if the Mono-to-Wasm or .NET Core Native projects have legs.

I was so very excited about Adobe Air and wrote a production application with it in 2009.

I _think_ a sweet spot for WASM data processing. The data visualization space should explode once I can with data in the browser at near native speed.

[https://en.wikipedia.org/wiki/Adobe_AIR](https://en.wikipedia.org/wiki/Adobe_AIR)

<comment><USER21> Remember when Adobe AIR was going to come to Android? That would have been an amazing write once run anywhere experience.

<comment><USER24> You can build Android apps (and iOS too!) with Adobe AIR today. In fact, it's been possible since about 2010.

</comment></comment></comment></comment></comment><comment><USER25> Seems very premature to say the Wasm has "won" when it's only just come out. People were saying Flash had "won" when all the browsers had it embedded by default a decade ago.

Browsers removed Flash support, they might end up rendering Wasm useless by putting it behind loads of permission warnings.

There's also the chance it'll end up lacking as it is and it'll end up being a useless appendage that gets killed off.

<comment><USER26> Wasm doesn't need permission warnings since by default the sandbox is very restrictive.

I think the reason Browser removed Flash was more because it was an absolute security nightmare for the Browser vendors and they had to fully rely on Adobe to patch the worst of it.

Wasm on the other hand leverages the Javascript VM so browsers don't have that problem. And they don't depend on an external vendor either.

<comment><USER27> "...Wasm doesn't need permission warnings since by default the sandbox is very restrictive.."

Upcoming changes to WASM include threading and shared memory. Unless browser makers implement those features in a manner that slows the machine to a crawl, WASM certainly will be getting some security warnings. Either because security minded organizations will disable it, or because browser makers will be honest and up front about the risks with those features. (There will be either security implications, or performance implications because they implemented the new features in a secure fashion.)

<comment><USER28> How is threading or cross thread shared memory a security risk?

<comment><USER29> Rowhammer/specter

<comment><USER26> Rowhammer doesn't need either shared memory or spectre and spectre is largely eliminated by browsers running as much as possible in different threads and then relying on OS protections, there isn't much remaining risk

<comment><USER27> "...spectre is largely eliminated by browsers running as much as possible in different threads and then relying on OS protections..."

???

Do you mean Meltdown?

Spectre is the evasive one. New variants are being found even up to today. SpectreRSB is a rather nasty one that was found 3 or 4 days ago. (Or rather, they _told_ us about it 3 or 4 days ago for instance.)

Anyway, point is, there _are no_ OS protections against variants of Spectre. I'm not sure how there even _could_ be, some of these variants have been known publicly for 3 or 4 days as I said. So right now trying to patch Spectre is a lot like playing Whack-a-Mole. Personally, I think we'll end up having to live with CPU side channel attacks for the foreseeable future. People will just learn, probably the hard way, not to download untrusted executable code.

Of course, that tendency to say "no" on the part of consumers will probably impact WASM. But that should be expected.

</comment></comment></comment></comment></comment></comment></comment><comment><USER30> > Wasm has a really strong sandboxing and verification story that others > simply did not.

Eh, (P)NaCL had a very strong sandboxing and verification story.

Wasm is, basically, NaCL in a form that Mozilla and the non-googles etc could accept. There are small implementation differences but the details are all non-important. It was all political. If they had accepted NaCL we'd have had what we have with wasm only we'd have had it years ago.

<comment><USER22> As did Java ...

EDIT "does" \- and of course it's flawed but the "story" is pretty great :-D

<comment><USER30> the Java and Flash approach was software-implemented security contexts and managers, running the VM in the same process as the browser.

People used to say that you couldn't do strong process isolation because it would be unworkably slow.

And then Google Chrome demonstrated that was a falacy. People actually flocked to chrome because it was faster, despite it using multiple processes and isolating plugins.

NaCL built on that - it's security model was strong process isolation and verification that the code run in that isolated process couldn't 'escape'.

Mozilla is still kinda in denial re process isolation.

<comment><USER31> > Mozilla is still kinda in denial re process isolation.

Isn't that exactly what Electrolysis[0] was for?

[0]: [https://wiki.mozilla.org/Electrolysis](https://wiki.mozilla.org/Electrolysis)

</comment></comment></comment></comment><comment><USER32> Isn't the answer really, "no, because WASM doesn't allow you to do anything you couldn't already do with JavaScript"? I don't think anyone would complain about Applets or Flash if the only way they could interact with the web page was through the DOM.

WASM enables nothing. It just makes a particular subset of JavaScript slightly faster.

EDIT: I'm not talking about Canvas. That isn't part of WASM.

<comment><USER33> Not sure if I agree. I would still say that WASM enables new types of applications. Of course you could have compiled all that new WASM applications to asm.js or even JS as well. But it would've been slower: maybe even unusable slow. That's why I think WASM enables new types of applications. It's the same as in the past where faster JS engines enabled richer web applications like GMail, etc. Now we get games in the browser and large native applications like AutoCAD.

<comment><USER32> I don't doubt the claim that a Java Applet can be faster than JavaScript, but I haven't ever seen a modern high-performance web application written as a Java Applet. The CAD stuff, games, etc., are always Flash (EDIT: when they aren't JavaScript). So the comparison is really Flash vs. JavaScript.

And… comparing Flash to V8? I'm having trouble finding modern benchmarks, but Flash is based on ActionScript, which is related to JavaScript. JavaScript has V8, which is a world-class JIT with Google's engineering talent behind it. I'd be very surprised if Flash's JIT was competitive with V8. At least as of 2011 it wasn't [1].

[1] [https://habr.com/post/121997/](https://habr.com/post/121997/)

<comment><USER33> My answer was in reply to "WASM enables nothing". I argue that WASM is faster than JS, therefore it enables new applications.

I didn't make any claims about Java Applets or Flash performance.

<comment><USER32> Ah sorry I thought you were replying to "no-one would complain about Flash or Java Applets".

I don't disagree that WASM is faster than JS; in fact I make that point myself in several comments. My point is that WASM's speed does not enable it to be abused like Flash in a way that JavaScript cannot be, because JavaScript is _already_ as fast as (in fact faster than) Flash thanks to modern JITs like V8. The reasons that WASM is not the "new Flash" must therefore be the same reasons that V8 + Canvas are not.

</comment></comment></comment></comment></comment><comment><USER34> I also worry that WASM will just bring another era of non-standard Flash and Java Applet like UI design. Just check this QT demo:

[http://example.qt.io/qt- webassembly/SensorTagDemo/SensorTagD...](http://example.qt.io/qt- webassembly/SensorTagDemo/SensorTagDemo.html)

Then there is this gallery demo:

[http://example.qt.io/qt- webassembly/quickcontrols2/gallery/g...](http://example.qt.io/qt- webassembly/quickcontrols2/gallery/gallery.html)

The right sidebar right now doesn't scroll with standard mouse wheel. I had to scroll it using mouse drag.

<comment><USER35> This is actually terrible.

</comment></comment><comment><USER36> Discussion on the blog post to which this is a follow-up:

[https://news.ycombinator.com/item?id=17525858](https://news.ycombinator.com/item?id=17525858)

</comment><comment><USER37> WebAssembly is yet another approach to withhold the source of programs from the ones that interact with it.

By just sending part of the necessary binary logic to the user, it is ensured they can't easily be independent of the provider or create their own solution.

If someone doesn't see what I'm talking about, then read about the AGPL; it exists to prevent what I'm talking about.

Superficially, it is a shame Mozilla is working on this technology. However, it's official goal is to advance "The Web"©® which uses above mentioned effects to lead to centralization and lack of freedom for users.

WebAssembly and some other modern browser features are the basis for the massive centralized providers we have today. That "The Web" leads to decentralization is a lie.

<comment><USER38> This is a pretty ridiculous response. There have been compiled languages way before interpreter/jit ones and these didn't halt the advancement of programming and programming communities, especially the sharing code and ideas part.

Also you shouldn't need access to code to create your own solution. Many people have been reverse engineering or borrowing from ideas in the compiled world. When I copy something I like I don't typically look at their code, I focus on the functionality and break down what its doing so i can reimplement it.

The fact you are focusing on centralization is basically saying "i can't steal someone eases code". The web promised to be free and open and that had nothing to do with whether or not you could read the javascript.

Most modern javascript on site is rather unreadable due to being transpiled anyways. There is still an option to use plain javascript instead of WASM. Just like now you can use plain javascript instead of transpiling it.

<comment><USER37> There are people that lobby for closed source and distribute closed source, and there are people that lobby for floss and libre software. And then there are hypocrites.

Mozilla is bathing itself in it's image of standing for a free and open world. The truth is that it's business in "The Web" is creating the groundwork for a closed and non-free world. This hypocrisy cries out deafening.

<comment><AUTHOR> Mozilla is also realising that the web needs to compete with native apps as well. Note that it's even easier to hide the source of native apps.

(Furthermore, many apps that would use WASM probably have a significant server-side part as well that is not necessarily open source.)

<comment><USER39> At least native applications are something static you can verify. With web 'apps' like, say, anything based on electron, the end user has no control about what code is run. Instead the 'app' just pulls down and runs whatever the company/etc wants you to run dynamically and differently every time with the permissions you gave originally.

<comment><AUTHOR> Your mention of Electron is the perfect example of why this is no different for native apps. Of course, on mobile this is usually mitigated through app stores, but there is no reason similar mechanisms could be introduced for the web if this really turns out to be problematic.

<comment><USER39> Electron is not a native app. Electron is a browser web app marketed as a native application.

<comment><USER20> Chrome browser is only 50% of Electron. The other 50% is a complete nodejs distribution which allows access to the OS filesystem, network, anything Java or .NET can do on a desktop... So no, it's not just a browser web app. Electron is absolutely native to the OS is runs on.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER40> No, not by a long shot. Remember how much time it took for an elaborate Flash animation to load? Sometimes you had to wait for more than a minute before anything even rendered on the page. And Java applets.. were a joke. A Frankenstein approach to embedding applications in the browser. By contrast, Wasm IS Javascript, even if the source code might be from another language, it's a target for compilation. It will only be able to do whatever the browser allows it to do, ie access Web APIs, work with the DOM or just do computations that don't output anything UI-wise. This is not the return of badly executed and badly thought-out plugins, this is "native applications in the browser" done right.

</comment><comment><USER41> Would it be possible to run the flash plguin/runtime in wasm to get the benefits of flash (easy to produce, a lot of legacy content) with the sandbox of wasm?

<comment><USER12> In theory, yup! I haven't seen anyone try it though.

<comment><USER42> That is only up to Adobe or the developers of that other OSS flash runtime/reimplementation.

<comment><USER43> Not too sure. You can probably lift it to LLVM bitcode, e.g. with [0], and compile back to WASM. But yes, not sure of the specific the DLL calls.

0 - [https://github.com/trailofbits/mcsema](https://github.com/trailofbits/mcsema)

</comment></comment></comment></comment><comment><USER44> > That being said, the web standards process is healthier than its ever been

Some disagree: [https://www.eff.org/deeplinks/2017/09/open- letter-w3c-direct...](https://www.eff.org/deeplinks/2017/09/open- letter-w3c-director-ceo-team-and-membership)

Obviously it's better in aggregate than the web of applet and flash times, though.

<comment><USER12> One failure does not mean the whole process is bankrupt.

<comment><USER44> Agreed, and I realize that your point was (I assume) more about the historic hot mess.

<comment><USER12> That's also true. :)

</comment></comment></comment></comment><comment><USER45> Wasm follows flash, java (applets) , jvm and even Javascript in the sense of being one codebase that will run on multiple platforms and potentially delivering on promises of the past.

Still, Wasm seems unique in a few ways :

\- languages like rust have emerged to help address the browser issues of the past in other technologies

\- wasm can exist in the front or back end, in variety of languages but complies to one bytecode like the jvm.

\- wasm appears increasingly capable for both front-end or backend development, while not insisting on either.

\- wasm is the first standard I can remember where all the browsers (Chrome, Microsoft, Firefox, Apple etc) agreed on a baseline. This is much different than one company building flash, java, etc.

Java applets and flash existed at a time when the html standard wasn't capable of rich frontend experiences, or deep backend.

It's quietly an increasingly promising time, and my hope is the progress continues to gain momentum.

</comment><comment><USER46> Everybody who complained about JS the only language of the web should be extremely happy about WASM.

<comment><USER47> For most high level languages, JS is for the foreseeable future a much better compilation target than WASM.

</comment></comment><comment><USER48> Remember when restaurant menus were in flash and you couldn't open them on your phone!

<comment><USER49> You could run flash on android.

<comment><USER50> Not all of us used Android when Flash was available for it

</comment></comment></comment><comment><USER51> WebAssembly is only the payback of any low level programming languages to JavaScript. Truth is, there should be opening positions so they could eat some pieces of the big pie too cause all those JavaScript kids became rock stars for no reason.

</comment><comment><USER52> If anyone wants to take a quick look at running a WASM app to take your understanding from theoretical to applied look no further than Fabrice Bellard's excellent BPG Image format and the JS decoders which build for asm.js and wasm.

</comment><comment><USER53> > But implementers are important; they control the web.

I'd argue users are an even more important part of the equation. If the UX sucks, no one will use it and you'll have implemented an empty spec.

</comment><comment><USER54> Klabnik makes a strong case for WASM here, and one I haven't really seen anywhere else.

Now the question is, who will make the first major framework on top of WASM, and for which language?

<comment><USER12> Thank you!

I bet you know which language I'm betting on ;)

That said, I don't think a framework is really the thing; I think JavaScript users using wasm in libraries is a much bigger growth area for wasm, at least in the short term.

</comment></comment><comment><USER55> Wonder what its effect on the popularity of Javascript will be, given that it can be used as a compilation target for pretty much any language (?).

<comment><USER12> I'd look to the server side; JavaScript is still quite popular there even though you can use any language.

<comment><USER55> Isn't that just a side effect of frontend devs being able to use their existing JS knowledge serverside?

I'd expect the reverse to happen as well to some degree since currently backend devs are somewhat "forced" to take on JS if they want to do any frontend work. Or does that seem less likely to you?

<comment><USER12> By that logic, they will also stick to JS instead of using WebAssembly. So, same result.

I think the "backend dev migrates" case is less likely, in a purely math sense. The number of backend devs forced to do front end is smaller than the number of frontend devs.

</comment></comment></comment></comment><comment><USER56> Java Applets were before their time. It took JS/HTML the good part of a decade to catch up functionality and performance-wise

</comment><comment><USER57> In a way yes. However there is other tech like WebGL, Canvas, web audio, web video etc, even apps, that make up good portions of what Flash brought, where WebAssembly is the compilation part of that and brings other languages into the mix as the source for the outputted wasm/asm. It also brings faster native runtime and hardware rendering capabilities when combined with other tech. Flash and Java never had native nor good hardware rendering support, the latter which was what ultimately killed Flash and the transition to mobile.

Flash (and Shockwave director the first web 3d platform) actually were Java applets when they first came out then they switched to ActiveX plugins which really did have a good run of innovation on the web. Microsoft jumped on that to push ActiveX and Flash timing was just right as Microsoft was doing everything possible to kill off Java applets in as well as other platforms like Quicktime and Real Player.

We owe lots of web interactivity to plugins and mostly Flash. I think with Chrome killing plugins there is a slight gap in platforms like Flash that push innovation, Java Applets never really took hold and were hampered by Microsoft as well as being slow. Microsoft even tried to make their own Flash in Liquid Motion in late 90s and again in 2005ish with Silverlight, just before mobile took off which changed everything. Mobile killed off plugins as much as Chrome did.

Flash did lots of good things well or the best. Vector animation is one, SVG is pretty good now but Flash was still better. Flash for gaming and video was the best on the web for a long time. Flash was great for hitting web services/remoting before AJAX was as solid. Flash pushed using JSON data over XML though it could do both before javascript well. Flash was the original web sockets. Flash revolutionized interactivity, games and video. Flash made Youtube possible. Flash had display list and DisplayObjects that were like an early virtual dom. Flash was a market standard that the main goal was pushing interactivity forward and needed to to survive, Java applets did not keep up and it is harder to do with standards as they are slow.

WebAssembly may be another Flash/Java Applet go round but plugins and now wasm can help push things forward as plugins did for many years. wasm may help that missing piece on mobile since it is just javascript in the end.

Flash was a great interactive platform when under Macromedia and some under Adobe but Macromedia was really better at managing the development/technology platform that it was. Microsoft was going to buy them once before Adobe got them. Adobe let Flash languish a bit and they lost the hold.

Flash is actually partly responsible for pushing web standards forward in html5, video, webGL, canvas, SVG even JSON and AJAX because they were all innovated on in Flash then brought to the browser. Flash with ActionScript3 even pushed forward javascript ECMA standards. AS3 was based on ES4 which Microsoft, Yahoo and others teamed up to kill, I think it was a solid ECMA version and quite fun and very readable and much like TypeScript [1].

I am a bit sad Flash is gone and wasn't looked after correctly by Adobe, if Macromedia stayed around it may have gone different and WASM would be Flash. However Flash ended up stuck in software rendering land for too long and buggy with security holes that didn't keep up on desktop nor was it ready for mobile. Adobe essentially sent both Director and Flash out to pasture (and Freehand/Fireworks which were good), but we still need something pushing innovation and standards are slow to do that, apps have somewhat become that in place of plugins like Flash today and wasm may help.

[1] [https://www.reddit.com/r/javascript/comments/34ps9z/why_was_...](https://www.reddit.com/r/javascript/comments/34ps9z/why_was_es_4_skipped_but_typescript_is_taking_all/)

<comment><USER58> Let's not forget that Flash-the-creation-studio-application was hugely successful with amateur animators, which provided content for sites like Newgrounds et al. Such artists were enabled to produce animations without dabbling with programming.

For those remembering the web in the early 2000s, the Flash-only designer- based websites were the norm for restaurants, luxury brands; it was a designer wet dream, to allow him to design animation enabled and pixel perfect "web sites" without dabbling with HTML and JS code

<comment><USER57> Yeah Flash was amazing at attracting both developers and designers and led to awesome games and some really innovative interactive experiences.

The web is a better place due to Flash and Macromedia did a killer job, I wish Adobe had kept it going better. Originally I was attracted to Flash 3/4 for making cartoons, Flash was where I launched my first game (and hundreds more) and got lots of fun game/interactive/video work from it. I probably work in games/dev today due to Flash (mainly Unity now, another Flash inspired tool). I loved AS3 as well, great iteration of javascript and only ES4 implementation that was kicked to the curb unfortunately. Flash was awesome all the way to the 2007ish Papervision 3d days (Three.js by mr. doob [1], part of Papervision team along with great designers like Carlos Ulloa [2] and people that work at Unity now like Ralph Hauwert [3], takes Papervision's place) but then Adobe let Flash languish in lacking hardware rendering support and eventually mobile and apps killed it due to native/hardware rendering support, Chrome put the final punch in by changing plugin support. Though HTML5, Canvas, WebGL, SVG, web video, web audio and even wasm is a direct result of the innovation from Flash. Flash even got big in entertainment like video, games and lots of web cartoons still use Flash today for animation (Adobe Animate now) [4] though many use ToonBoom/USAnimation (also inspired by Flash) [5][6].

Sites like joe cartoon, newgrounds, praystation, thefwa etc were all part of it and Youtube jumped on Flash video, big parts of internet history are due to Flash.

Flash was one of those rare tools that attracts interactive/creative designers and interactive/creative developers. I don't know that there is another tool/platform that was as attractive to design and development. Adobe Animate is still around but the Flash community was awesome and attracted all types of creative people.

Flash was so much more than a buggy plugin in the end, it was a great interactive, vector based entertainment and content creating system overall end to end. Flash/Animate is still out there today but not as integrated. Adobe Animate is the same but can export to apps and html5/canvas/webgl. There are also open source tools that can do flash like but not as integrated as well for designers in OpenFL [7], Haxe [8] and lime [9].

[1] [https://threejs.org/](https://threejs.org/)

[2] [https://helloenjoy.com/](https://helloenjoy.com/)

[3] [http://www.marketwired.com/press-release/flash-3d-vet- ralph-...](http://www.marketwired.com/press-release/flash-3d-vet-ralph- hauwert-joins-unity-technologies-1544586.htm)

[4] [https://en.wikipedia.org/wiki/List_of_Flash_animated_televis...](https://en.wikipedia.org/wiki/List_of_Flash_animated_television_series)

[5] [https://www.toonboom.com/company/customer- productions](https://www.toonboom.com/company/customer-productions)

[6] [https://en.wikipedia.org/wiki/USAnimation](https://en.wikipedia.org/wiki/USAnimation)

[7] [http://www.openfl.org/](http://www.openfl.org/) \+ [https://github.com/openfl/openfl](https://github.com/openfl/openfl)

[8] [https://haxe.org/](https://haxe.org/)

[9] [https://github.com/openfl/lime](https://github.com/openfl/lime)

</comment></comment></comment><comment><USER15> Thanks again, Steve, for a very clear and sober explanation of this. It's like you're inside our heads! You grok.

<comment><USER12> You're very welcome!

</comment></comment><comment><USER20> TLDR; no, because WebAssembly use browser API, when Flash and Applets do not. There is nothing that can be done in WASM that cannot be done with Javascript API wise, whereas Flash was able to do socket programming 10 years before webosockets and peer-to-peer 15 years before WebRTC.

</comment><comment><USER59> One can only hope.

</comment><comment><USER60> Yes.

</comment><comment><USER61> No.

</comment><comment><USER62> you could technically rasterise your ui/video/content to a canvas at 60 fps.

so flash-like maybe and probably a step in the right direction, you can then code in sdl/qt/gtk/etc.

<comment><USER46> Which is precisely the reason it be used as utility libraries. Most CRUD apps should remain JS/DOM based.

For games I would say it makes sense to code the UI as well in WASM.

I don't have an illusion though, it will be abused by devs heavily in the near future who dislike CSS/JS/DOM.

<comment><USER62> i'd love to write markup that uses actually ui element names, even maybe no markup but also allow css for theming purposes.

then js is to bind components to each other.

<comment><USER46> A bit late, but React is your perfect match then :)

</comment></comment></comment></comment><comment><USER63> Is this article's title clickbait?

<comment><USER12> I had a conversation with someone about this on Reddit yesterday [https://www.reddit.com/r/programming/comments/91s3pa/is_weba...](https://www.reddit.com/r/programming/comments/91s3pa/is_webassembly_the_return_of_java_applets_flash/e30ns6d/)

<comment><AUTHOR> Perhaps an alternative that is more reflective of the actual content would be: Why WebAssembly is not the return of Java Applets and Flash.

</comment></comment></comment><comment><USER64> Yes, absolutely. The only significant difference is that it isn't a plugin.

<comment><USER65> One other big difference is that it's not owned by a single private company. Adobe tried to monetize certain flash 3d features at some point, but was rebuked so they withdrew their plans.

<comment><USER64> Alright, I'll give them that. However, I think this will, like it has with the rest of the web, lead to differences in how each browser handles the spec, various browser-specific extensions, etc. In that way, it's actually worse than having one company behind it.

<comment><USER45> Wasm is the first major thing I can remember all the browsers agreeing on in a very long time, or ever.

Agreeing of course, after trying to do it on their own and then realizing they were thinking a lot of the same things.

<comment><USER66> >Wasm is the first major thing I can remember all the browsers agreeing on in a very long time, or ever.

Uh, flexbox, grid, fetch, service workers, even shadow DOM...? The cooperation between browser vendors has been exceptional over the last five years.

<comment><USER45> Are any of those as large and potentially as broad as wasm?

<comment><USER66> For frontend devs, sure.

</comment></comment></comment></comment></comment></comment></comment><comment><USER67> >Other technologies were owned by companies

>Java was owned by Sun Microsystems, Flash was owned by Adobe. But why does this matter?

This is the reason corporate sponsors of WASM banish flash and, while at the same time, promote WASM.</comment>