A story of a designer learning math - grey-area https://blog.framer.com/a-story-of-a-designer-conquering-mathematics-d0fd4585f0ba#.jb7sl9qku <comment><AUTHOR> I'm a self-taught Software Engineer who struggled with basic Math. It's my goal now to go back and learn Mathematics on a deeper level. I'm reading the Book "A Mind for Numbers" by Barbara Oakley. In one of the chapters she goes into detail about how using your minds visual senses can help with grasping abstract mathematical concepts on a deeper level. Your experimentation with Math and Design, to me, is a perfect example of what Barbara was talking about.

<comment><USER2> > a self-taught Software Engineer

Not to diminish your accomplishments, and I applaud your efforts to educate yourself. I was just thinking how odd it would sound if someone were to say that they were a self taught civil engineer or a self taught chemical engineer. This is just because I'm used to the word "engineer" being regulated, as it is in the countries I have lived in.

<comment><USER3> There have been and are plenty of "self-taught" civil engineers. We can start with, say, Archimedes, Vitruvius, Simon Stevin, Leonardo da Vinci, or Bucky Fuller.

There are (for good reasons) particular modern jobs which require licensure, but plenty of production engineering work of all types, even today, is done by folks who don't have a history of school study or certifications in the field.

It's not like college lecture halls are the uniquely best learning environment in the world.

<comment><USER4> Some countries, such as Canada, regulate the usage of the term as jordigh mentioned. If you have not passed the rigors of educational requirements and licensure you cannot call yourself that. It is similar to claiming to be an MD in the US.

<comment><AUTHOR> A quick search turned up multiple job postings with Engineering titles (Software, Test, QA) in Canada. These companies list requirements being a CS/Engineering degree or equivalent experience. Apparently, these companies value production over title semantics.

I'm interested in knowing what you consider the meaning of Engineer to be.

<comment><USER4> I'm not Canadian, upon looking up the actual rules it is provincial laws. The most well know restriction is in Ontaria and is restricted to the title of "professional engineer". They still frown on it and actually fought Microsoft over their certification titles.

Top result when searching was Quora [1].

My personal view, is it doesn't matter much. I often choose to refer to myself as a Developer, just because of the confusing discussions Canadian Engineers have presented in the past.

Ifind software titles to be unnecessarily inflated, both in seniority and position. The title of Developer or Programmer would be fine in many cases, unless your looking for Architectural roles (can also have similar titular restricitions). Also, many roles could easily drop Senior, often it is just used for mid-level roles requiring some degree of experience over junior roles.

The whole of title structure in the industry is very ego-driven rather than role driven. I often break my titles down to specify my focus area, e.g. Lead API Developer, which includes everything from speccing to infrastructure and tooling (which some generally use as claims of engineering).

[1] : [https://www.quora.com/Only-Professional-Engineers-can-be- cal...](https://www.quora.com/Only-Professional-Engineers-can-be-called- Engineer-in-Canada-What-other-title-can-we-use-for-them)

</comment></comment></comment></comment></comment></comment><comment><USER5> Maker of Framer ([http://framer.com](http://framer.com)) here. Cool to see this popping up on HN. We are a code based interactive design tool, and see many designers use/learn code to experiment with math, real data and physics.

<comment><USER6> Kudos to Koen and to the whole Framer Team. They are a passionate and outstandingly competent and available crew, which is constantly giving back to the design/coding/makers community. ps> I use your open source tool cactus on a daily basis: [https://github.com/eudicots/Cactus](https://github.com/eudicots/Cactus)!

<comment><USER5> Thanks! You're welcome!

PS. I recently rewrote Cactus as a Gulp script. It's called Moonbase: [https://github.com/motif/moonbase](https://github.com/motif/moonbase)

</comment></comment></comment><comment><USER7> I used to think that being a software engineer meant you were intelligent, and worked hard to earn the title, but after working in the industry for 6 years, I decided that, large-scale software project management problems aside, industrial computing just isn't that hard relative to math and the sciences.

Once you know a dozen languages and understand the running themes of computing, it's all sort of old-hat. Ironically, as the field has been flooded with young, inexperienced devs to satisfy market demand, the titles of "software developer" or "nerd" have become social badges to indicate one's intelligence and cutting-edge-ness. We use 50-year-old operating systems and call ourselves innovators.

Maybe, like Groucho Marx, I just don't want to belong to any club that would accept me as a member, but I think that if you're looking to level-up intellectually, studying math and science, but especially math, is the way to do it. I was never good at math, but I've spent the past year teaching myself calculus and the struggle has been well worth the expansion in my world-view.

<comment><USER8> I'm mildly surprised you didn't know calculus before becoming a software engineer. I suddenly realized that I falsely assumed calculus would be common knowledge to all programmers and now I'm wondering what else would not be that I've been assuming.

<comment><USER9> I taught myself programming after graduating from art school. I never took calculus or trigonometry even in high school, so my math skills are as basic as you can get as an adult.

Still, I'm currently trying to teach myself math because it seems like it will help me improve as a developer. It's very hard, though, to learn this stuff when you're 32.

<comment><USER10> Why is it any harder at 32 than at 22?

<comment><USER11> It could be age related cognitive decline, real or imagined, but it could also be prioritizing any of the following over learning largely irrelevant mathematics: children and family, exercise, bills/finances/health care, social obligations, politics.

Plus, it's much more likely for a 22 year old to be able to go to college / grad school and be required to learn math.

</comment></comment></comment></comment></comment><comment><USER12> Geometry and art are definitely related, and you need to know the equations to generate the drawings. It's amazing how much possibilities are open once you know some basic high school math (see my book [https://gum.co/noBSmath](https://gum.co/noBSmath)).

This article is also a nice example of just-in-time learning: learning new material is so much more fun when you have a concrete goal in mind, rather than relying on a "you'll use this later"-promise.

<comment><USER13> Love your book, it was a very concise, to the point refresher of mathematics for me.

Also, the progression of topics felt very comfortable to me, almost like my school experience back in the Soviet days (and I mean it in a very positive way).

What I'd love and would gladly pay for is an additional exercise book with answers to accompany your book, just like in the spirit of the old textbooks.

<comment><USER12> I hear you. What would you call that, решебник/сборник? I'm planning to make an exercise generator framework with print(.tex) and web(.html) backends. The early khan-academy exercise framework was pretty awesome since it could generate random problem instances.

BTW, which edition of the book do you have? I've been adding exercises and problem sets progressively over the years. Currently there are 55 exercises (mostly Chapter 1) and 284 problems:

        ~/P/M/M/problems> grep "\\\begin{exercise}" *tex | wc
              55     112    2768
        ~/P/M/M/problems> grep "\\\begin{problem}" *tex | wc
             284     579   12065

In the meantime, you can email me and I can send you the latest version of the book or a standalone document with just the exercises and problem sets.

<comment><USER13> I'd just call it Exercise Book (Сборник упражнений с ответами) - nothing fancy and to the point.

I have a dead tree version of the book, purchased from Canadian Amazon. Not sure which printing (if you had multiple), it's at home now and I'm in the office.

Thank you for the offer - will email you in a moment.

</comment></comment></comment></comment><comment><USER14> It took me a while to get over "math" meaning "understanding geometry", but I appreciate the main theme of the article anyway. Some of my art friends could use a little bit of "math" as well.

</comment><comment><USER15> Hi all', I am graduated in mathematics. I studied a lot and also teached sometimes, but I am working as a programmer, I am not a teached, I teached to gain some money while I was studying.

I love math and I Can explain It to everyoneishappy, I have this superpotere I Can male people under stand also deeply advanced mathematics.

I noticed that a lot of people "hates" math but they like It, they have a bad Memory about Who teached them when they were young, so they say "i hate math" but they actually hate their first teacher.

As soon as somebody explain them math with Joy and without humiliation if they don't know, they really like It.

The point is that even the highest mathematician does not know, cause in math there Will Always bè misteriose.

</comment><comment><USER16> Pls checkout - [https://betterexplained.com/](https://betterexplained.com/)

<comment><USER17> this is a fantastic resource !

</comment></comment><comment><USER18> I'm an artist and professor of digital art so I know right where this writer is coming from. You can't underestimate the importance of Processing in forging this pathway for artists and designers to connect with computer science and mathematics. By sandboxing full featured languages into development environments geared for immediate visual output you open up the possibilities of computation to a whole new class of people.

When teaching I can appeal to their experiences in High School math, but now ideas that were very abstract and remote have an immediate, visual presence. It really works. Trig is usually the first big break through (because who wants the animations to just move in a straight line?) but most eventually get to simple linear algebra as they merge and combine elements from multiple arrays of pixel data. It's empowering.

In my teaching I've moved from Processing (which is Java-based) to p5js and other tools (like framer) based on html5 and open web standards. I've recently introduced aframe. We'll see what new math skills emerge in art students from working with real-time 3d engines.

(edit=fixed typos)

<comment><USER19> That's really cool. Your comment reminded me a bit of how kids can go from disinterest to total fixation if something involves minecraft. (and I mean that in the best way possible).

</comment></comment><comment><USER20> Reminds me of making my TI-83 draw a bunch of patterns in high school with TI- BASIC. It had functions to lines, circles, and some others. Some pretty interesting shapes emerged from just trying out various combinations of LINE TAN(X),SIN(X),COS(X),ABS(X) and such, with X being a variable that I'd make the main loop increment between 0 and 359, or sometimes multiple variables, or it being incremented differently than linearly. I wish I'd have cataloged them.

<comment><USER21> I played around with my graphing calculator in the same way, just trying out different equations to see what they looked like, and even made some simple games out of them. I kind of miss that, because I had a much better idea of what different functions looked like on a graph than I do now, when I could actually use them for animations in games (I mostly just use sines and cosines for oscillating animations and log functions for easing).

</comment></comment><comment><USER22> Why do the links on this page redirect through Facebook?

<comment><USER23> Presumably they were "right click > copy link"'d by the author, who didn't realize facebook was inserting themselves before the destination URL.

</comment></comment><comment><USER24> When does one consider math learned ?

<comment><USER25> When you can write a proof for every mathematical statement that is true.

<comment><USER24> What about finding creative approaches to unproven statements ?

<comment><USER26> beachbum8029 is being silly because the Godel incompleteness theorem stats that is you cannot prove all true statements.

<comment><USER27> or you can prove some false statements

</comment></comment></comment></comment></comment><comment><USER28> Reminds me of doodles I made when I was around 9. I had a ruler, a compass, and a pen; no computer.

</comment><comment><USER16> Any thoughts about M.C. Escher?</comment>


Facebook Home – What Can Go Wrong - <AUTHOR> http://www.andrewmunsell.com/blog/facebook-home-gone-wrong/

<comment><USER3> _Your Facebook Home experience, like the website itself, is solely determined by your freinds' activity._

Term: Facebook IQ

Definition: The floor function of the IQ of the set containing all of your Facebook "friends"... and all of _their_ friends.

In plain terms, on Facebook you can never be any smarter than the stupidest of your friends (to the second degree).

<comment><USER4> _In plain terms, on Facebook you can never be any smarter than the stupidest of your friends (to the second degree)._

Do you think that is invariably true? I learn a lot from a lot of my Facebook friends. One of those friends calls my wall the "PBS of Facebook" (a reference to the public television network in the United States) because we mostly discuss links (some of which I see first here on HN) and have thoughtful discussions of research and policy issues. Sure, once in a while one of us passes around a photoshopped picture with a silly caption, but most of the time we keep things intellectually engaging and civil, much like HN at its best. (Just a few of my Facebook friends are also members of the HN community.) I think the atmosphere of a group of Facebook friends can be shaped by example, just like any other local culture.

<comment><USER5> >> _Do you think that is invariably true? Do you think that is invariably true?_

I guess he is not referring to an entire time-line of incidents and taking an average out of that. But the isolated lows and highs. Minimums and maximums. Read it as a friend posting an image with a sensational and stupid caption posing it as a video which leads to a link to a spam site, now imagine that friend doing it again again(marking it spam/hiding doesn't work - <USER2> gives you the option just to screw with you). Now, imagine a friend posting sth _not stupid_ , like an informative link or a question or s statement or his thoughts that sparks a very healthy discussion - this is extremely rare on Facebook, unlike HN and Quora(better still). You've got your high and low.

It's an entirely different aspect if you have a highly curated list of Facebook friends. Spam haters, privacy aficionados(can't think why they would be on Fb), thinkers, minimalists etc etc. Or simply your (all, without even curating the friend list) friends are just what I have mentioned above. You are lucky because mine aren't and I don't know anyone whose are.

</comment></comment></comment><comment><USER6> You guys know that you can unfollow people while staying friends on FB, right? I personally enjoy 90-100% of the updates on my wall thanks to unfollowing everyone who regularly post rubbish. I wish Twitter would allow it too!

<comment><USER7> What would be the purpose of "following" someone on Twitter if you don't want to read what they say? Genuinely curious; i'm not a Twitter user, but AFAIK the "following" relation there is unidirectional (i.e. you don't have to follow people that follow you).

<comment><USER6> I like to have my friends on Twitter so I can shoot them @ messages but as soon as the number of people I follow goes above around 100 the signal to noise ratio turns me off. I don't have the time or the interest to read all of that to find couple of good tweets. I'm a light Twitter user due to this; I assume creating lists can help.

<comment><USER8> If only there were any other ways of messaging people on the internet

<comment><USER9> So? Why do you even need the Internet? You could just SMS them? or why do you even need SMS? Why not just send them snail mail letters or see them in person?

There are certain pros and cons -- differeing levels of convenience being one of them -- of every communications medium and your response completely ignores that.

</comment></comment></comment></comment></comment><comment><USER10> Isn't this just due to the fact that your friends are clowns and not the fact that Facebook Home can _go wrong_?

<comment><USER11> None of your friends clown around on FB? I don't have a FB account, but I figured it'd be full of things like that

<comment><USER12> I don't remember ever seeing poop on my Facebook (N=sufficient). Maybe it's an age thing.

<comment><USER11> Fair; but, what about other things you wouldn't want your boss, or your mom, or anyone you know to see?

Your friend completely trashed with markings on him? His friend like that?

</comment></comment></comment></comment><comment><USER13> Hard mode: make it take pictures from reddit.com/r/FiftyFifty.

</comment><comment><USER14> This sort of thing is why I want some form of account switching on my phone. Ideally with a guest account that allows basic web browsing and phone functionality but all my personal stuff requires authentication of some kind.

I had a situation like this where I was away on business, and ended up at a bar with a guy I worked with. He asked to borrow my phone for a minute to check something online.

So I give him the phone without thinking, I would feel like a bit of a dick saying no.

When he hands me the phone back and I go to the homescreen I find I have a new message, turns out it's a colourful message from a lady friend.

Then it suddenly hits me that whenever I receive a new message it automatically scrolls across the top of the screen..

</comment><comment><USER15> Looks like another chicken and egg problem. Your friends won't learn to behave unless they see a reason for it. Knowing that you use Facebook Home might become that reason if they also start using it and see other crap (pun intended) on the screen.

<comment><USER16> Right, so drunk people at 3AM are going to say "Oh wait, what if one of my friends has Facebook Home?"? Not likely.

</comment></comment><comment><USER17> Great, now my entire phone can be monopolized by the bored spouses of my friends.

</comment><comment><USER18> I don't know about you guys, but there is a lot of gore on facebook. When i was a regular user i constantly had to flag some content. So yeah, have fun with that on your phone screen.

<comment><USER19> Never seen gore on Facebook, was it by your friends or shared?

<comment><USER18> it was shared. and i happened to have many friends in Egypt, so think about the situation in Egypt and the kind of pictures that go through my feed.

These of course is not the case for everyone, but everyone has different experience, but most of the time we don't want to see what our friends post on our homepage. Either people will get used to it, like Timeline, or the app will be a failure.

</comment></comment></comment><comment><USER20> Sounds to me like you need to have a discussion with your friends or pare down your friends list. If you are old enough to have a boss and a schedule, your friends should be old enough to not post a photo of their morning accomplishment. Problem solved.

<comment><USER21> The problem is that the weakest link in the chain is the problem. Also, alcohol.

</comment></comment><comment><USER22> It would be pretty easy for Facebook to filter out inappropriate content.

<comment><USER23> Define "pretty easy". How is FB supposed to know if something is inappropriate for you?

<comment><USER24> It's pretty easy to state that on Hacker News. It just takes a few keypresses.

</comment></comment></comment><comment><USER25> You have a typo 'freinds' in the third paragraph

<comment><AUTHOR> Thanks, pushing a fix.</comment></comment>


Best Jobs in America 2010, #1 Software Architect - <AUTHOR> http://money.cnn.com/magazines/moneymag/bestjobs/2010/snapshots/1.html <comment><USER2> Benefit to society - C ? I don't understand, software architects are one of the most important persons in software projects, and many of those software systems are of great benefit to society, so why C?

</comment><comment><USER3> Obviously if he's coding, he's not a TRUE architect. :)</comment>


88 'high-risk' security defects found in Android kernel - <AUTHOR> http://www.zdnet.com/blog/security/88-high-risk-security-defects-found-in-android-kernel/7629

<comment><USER2> Bad headline: the 'high-risk' defects include resource leaks and other problems that could cause crashes or data loss but are not necessarily exploitable.

And, of course, this is assuming either Coverity manually checked and confirmed each of these problems (possible, but not mentioned in the article) or that Coverity's scanner has a 0% false positive rate (highly unlikely to the point of patently absurd; my experience with static analyzers is false positives being 50 to 80% of the total though it's been a couple of years since I used Coverity specifically).</comment>


Gamers - <AUTHOR> http://mattgemmell.com/gamers/ <comment><USER2> As usual, a discussion of bullying which makes no attempt to understand the bullies beyond broad suppositions of demography. Approximately 16 billion words have been written about how bullies are terrible people, etc. etc., yet your condemnations seem to have little effect - what was Einstein's definition of insanity? Try something new.

When you want to harass someone - and let's be honest, you, dear reader, have indeed wanted to harass someone at some point in your life - what do you do? You pick something you believe they will be sensitive to and remind them of it in a mean-spirited way. So, if the bully can tell you're a girl in a male- dominated space, that's what he's going to pick. You may (and problably do) _receive_ this as worse harassment than I receive being called a faggot ("Lol another guy calling me a faggot"), but the bully doesn't need to be a worse person in order to choose to harass you in that way. Both times, it's the exact same guy, and both times, he's just reaching into his insult grab bag. What's he's not doing (necessarily, anyways) by calling you a "stupid slut" is revealing his deep-seated mistrust of women. If you're coming to that conclusion, you're overrating the complexity of the thought process that goes into online harassment. Which is to say, the problem is not _what_ he thinks - it's that he's not.

<comment><USER3> Would you agree that there's a difference in severity between telling a man "I'm going to come to your house and rape you, you stupid faggot" and telling a woman "I'm going to come to your house and rape you, you stupid whore"? The latter has much more weight, as at least 1 in 5 women in America will be raped in their lifetime. (edit: 1 in 6 is more accurate [http://www.rainn.org/get- information/statistics/sexual-assau...](http://www.rainn.org/get- information/statistics/sexual-assault-victims)) It's not an unrealistic threat, and it's much more likely to bring up trauma.

<comment><USER4> > Would you agree that there's a difference in severity between telling a man > "I'm going to come to your house and rape you, you stupid faggot" and > telling a woman "I'm going to come to your house and rape you, you stupid > whore"? The latter has much more weight, as at least 1 in 5 women in America > will be raped in their lifetime.

Granting, for the sake of argument, the basic premise that the latter statement would have greater weight if the proportion of women who would be raped in their lifetime was greater than the proportion of men for whom that is true [1], and granting the assertion about the lower bound on the prevalence of rape victimization for women [2], you would need to also provide [3] an upper bound on the prevalence of rape victimization for men that was lower than that lower bound for women for this to work.

[1] Which I would not grant except for the sake of argument, without additional argument for it, because there are a number of problems I see with that premise on its face, but they are secondary to the more glaring problem of the missing comparison.

[2] Which really should be supported by something.

[3] And, as in [2], support.

<comment><USER3> You're really going to argue that more men are raped than women in America?

<comment><USER4> > You're really going to argue that more men are raped than women in America?

No, I'm going to argue that if you choose to make an argument implicitly premised on the different rape victimization by sex, you can't support it with just an unsupported statistic for one sex.

<comment><USER3> [http://www.rainn.org/get-information/statistics/sexual- assau...](http://www.rainn.org/get-information/statistics/sexual-assault- victims)

> About 3% of American men — or 1 in 33 — have experienced an attempted or > completed rape in their lifetime.1

> In 2003, 1 in every ten rape victims were male.2

<comment><USER5> Male rape is highly stigmatized, my uncle was raped and never reported it. Reported != Actual.

<comment><USER3> That's a great point, and I completely agree that reported stats are not equal to the actual stats. I would still say that there are more women raped in America than men.

<comment><USER6> You would be lying if you did that.

[http://betweenletters.quora.com/More-Men-Are-Raped-In-the- US...](http://betweenletters.quora.com/More-Men-Are-Raped-In-the-US-Than- Women)

<comment><USER7> That article didn't cite any of its data, and it even conflates reported rapes with rape estimates.

<comment><USER6> It's US Justice Department figures.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Sometimes sexual harassment is just harassment.

Many male dominated institutions (the army) are hotbeds of sexual harassment that has nothing to do with desire on anybody's part. It's just an effective way to rattle somebody.

The primary sexism is that any male victim to speak out will be ostracized or further harassed. Thus the bad behavior continues until a woman, empowered to speak out by her gender, becomes a target.

<comment><USER9> Actually no. This is a specious argument that make men the victim. He specifically called out three instances where women were "empowered to speak out by her gender" and had the roiling mass of manchildren strike back, specifically with more sexual harassment (as well as some of the more mundane harassment).

A guy who tells a girl he's going to do some sexual act to her over an XBox Live chat isn't doing it to rattle his opponent. He's doing it to drive her away.

<comment><USER5> I think hes saying people who are lashing out are trying to choose the most effective tool at their disposal, I have received many xbox live taunts, "you are gay", "fagget" etc. Because that is what they believe to be the best way to hurt my feelings, it isnt an inherit desire to be homophobic, or in the case of women sexist, but the desire to be hurtful in a way tailored for the intended target.

<comment><USER10> > "you are gay", "fagget" etc.

> Because that is what they believe to be the best way to hurt my feelings

TLDR: These people probably aren't trying to hurt your feelings, their language -- while shocking to you -- is a product of a different culture.

I think this is a cultural difference between you and them. You must realize that much of HN -- I'm assuming this includes you -- lives in a bubble of left-leaning people from left-leaning urban areas.

Growing up in a different time and place, in middle and high school I always thought calling someone "faggot" or "gay" was roughly the same as "idiot", "jerk" or "asshole" \-- a generic insult not meant to be taken literally. And in the context of a multiplayer game, especially online, such a word is typically used to express momentary anger at the in-game situation, not trying to attack you personally.

It was quite a culture shock to me when I got to college and discovered that most people on campus viewed insulting someone by calling them a "faggot" to be political incorrectness of the same order as calling someone a "nigger" or "retard".

<comment><USER5> I understand what you are saying but I can assure you this isnt delivered in the same way you are describing, its not hard to misinterpret the intent of someone sending you all caps messages and screaming down their mic.

</comment></comment></comment></comment></comment><comment><USER3> I agree with this article but disagree with the authors choice to not call himself a gamer. Be the change you want to see in the world. Own the label and be "one of the good ones" and eventually you can be proud to call yourself a gamer. At least, that's what I'm going to do.

</comment><comment><USER11> Oh come on. I can't talk about the others, but Dina Karam had no business being within ten metric AUs of Mighty No.9

She was hired, BY HER OWN ADMISSION, because her bf works for Comcept. The only bit of art she posted was a godawful female version of Beck (the main character) with a lip piercing and lipstick like a companion-for-hire after a busy night. Much better versions were made by fans later, btw. The outcry is because she's completely unqualified at her job. Here's a youtube video summarising the first few days of the disaster [https://www.youtube.com/watch?v=FXDSfUJBCj0](https://www.youtube.com/watch?v=FXDSfUJBCj0) .

It's like hiring a dudebro who has only played Madden on the team for a spiritual successor for Ico.

There have been MegaMan games with female protagonists, btw. Of the newer ones ZX springs to mind.

Sorry for the hasty post, I didn't back that kickstarter and it still makes me mad. I went and backed Shantae. At least the designer on that team is a sane woman who knows her craft.

<comment><USER11> You know what, here's a few representative snapshots from the backer forums. [http://imgur.com/a/oUd1p](http://imgur.com/a/oUd1p) There may be duplicates.

</comment></comment><comment><USER12> Lots of broad generalizations without any stats. I have gamed in the past in guilds with female members, and none of them have been treated particularly poorly.

The anonymity of the internet will always bring out the worst in some, and that is a much more powerful factor than being a gamer.

<comment><USER13> I think the majority of the trash talking happens with anonymously matched competitions where voice chat is enabled.

</comment></comment><comment><USER14> I've been thinking about this lately, and I wonder how much of the problem is a result of the games themselves. A majority of games, and almost all "real games" (as categorized by people who identify themselves as gamers), are not only violent, but portray violence as the most straight forward way to resolve conflict.

If someone is truly engrossed in a medium where the default interpersonal resolution method is to "defeat" the opposing party by whatever rules are deemed legal by the system, it's not hard to see why every time that person is provided with an alternate viewpoint it would be met with toxic hostility.

If the only tool you have is a gun or sword, everything looks like a target or monster.

<comment><USER15> As a side note, I've been finding puzzle and adventure games much more appealing as of late because it's not all about killing other people.

I get that a lot of games aren't about such things, even if weapons and shooting are their medium; but it seems like a few choice games recently have been about that and it's really awkward. The new Killzone is about two racist factions where you basically play the bad guys, for example.

On the other hand, games like League of Legends and Counter Strike may have death, but they have about as much impact as getting shot with a paintball round. It's a way to say 'tag' in an effective way (Counter Strike) , or to push someone out so you can complete your objective (League of Legends), and those are just normal sporting activities.

I don't know. Pardon me while I wave my cane and yell loudly to get off my lawn, but I agree with you about these sorts of issues in recent games.

<comment><USER14> I see it less being an issue of violence, and more of an issue of conflict being the only means of resolution. It's become so pervasive, that a game where you don't fight or compete against SOMETHING is considered very weird.

As for puzzle and adventure games, have you tried Antichamber or Gone Home? Those two are among my favorite games to have come out this year.

<comment><USER15> I'm working through Gone Home right now. I had no idea what the story was going to be about when I bought it. I thought it was a horror game. It's good so far, to say the least.

I shall continue playing it in the coming days / weeks.

</comment></comment></comment></comment><comment><USER16> It's not a "gamer" problem, it's societal problem, issues with children/teenagers who tend to gravitate towards games and then have an anonymous mask to hide under. Social norms push men towards, and women away, just as blue is for boys, pink for girls. Obviously the social context for video games is changing, and with that doesn't not come full cultural acceptance, in fact the opposite. With anonymity to hide behind, people will voice their opinions more openly, and without consequence.

The Depression Quest story is not one of misogyny, rather the state of Steam Greenlight, who's "community" has a strong opposition to experimental games, and personal attacks against Quinnzel were simply called misogyny. This is why people dislike the movement. Misogyny and any personal attack on women are not the same. Anything that can remotely offend a woman is not misogyny. Things like the PyCon incident, and ideas like this further damage the movement.

Side Note: The holier than thou attitude through out the whole article is really off-putting. It's extremely prevalent throughout (game/tech industry at least, can't say I read too many other feminist material) feminist articles, and it only hurts the cause. Sarkeesian is the worst offender.

<comment><USER13> I agree that the "gamers" as defined by the author are a rowdy bunch (for lack of a better term) but I have a hard time understanding the author's motive. Is the article trying to bring a feminist perspective to gaming?

While it would be nice if we could all be respectful of race and gender while shooting at the pixel versions of each other, what problem does it solve? Do we want more female gamers? Is this behavior of immature people anonymously venting or raging harmful to society or to the individual's development?

Games are really one of the few outlets for aggressive behavior in the modern world with zero risk of physical harm. It satisfies competitive urges and requires a variety of mental and physical coordination skills (that may or may not be domain specific). Even if you cleaned up the language used there's always going to be trash talk and new "leet speak" or euphemisms to get around censorship.

It just reads like a half-baked article that lobs a blanket insult at male gamers without any real substance.

</comment></comment><comment><USER17> You can see a nice list of the costs of gaming consoles with inflation here, [http://www.ign.com/articles/2013/10/15/the-real-cost-of- gami...](http://www.ign.com/articles/2013/10/15/the-real-cost-of-gaming- inflation-time-and-purchasing-power). Add in the cost of games at around $50 to $60.

You can do the math, but based of this statement " I've owned most of the consoles and handhelds, and I've played games on various computers too" I'm going to say he is several grand in, conservatively. I only point this out because it seems to me that gaming is something he actively pursues, if not in time then financially.

I get called a faggot multiple times a game pretty much every time I play online. Usually it's a kid that I'm beating. I don't particularly enjoy that, so I mute the person and talk to friends. It is what it is. I still proudly consider myself a gamer though.

I play all types of games. I do find the harassment tends to come from first person shooters, but it's an aggressive idea to virtually kill someone. For me it's a nice thirty minute way to blow off steam after a long day.

I would like to add that when I hear someone talking to a female player in a sexually degrading way I say something. Others do to. People also get called out for using racial slurs.

There is this odd overlap of adolescence and adults in the gaming world. Kids shouldn't be playing some of these games, but they are, and they act like kids act. Stupid.

Adolescent boys have a long history of doing and saying repulsive things. It's not ok, but it isn't new. My experience is that this behavior is getting better. Especially as we dialogue about it.

I appreciate that he wants to discuss this topic, but the entire piece rubbed me the wrong way.

<comment><USER13> I think the crux of it is despite being a gamer, the author wants to distance himself while criticizing said "gamers" from his high horse. Also, the author admits to avoiding multiplayer so it's mostly his opinion on secondhand information from female gamers (selected from a pool of the most offensive stuff).

Not saying that etiquette isn't an issue but this article doesn't really advance the cause. However, the way you call out the behavior and setting an example is really the only viable solution.

</comment></comment><comment><USER13> As an opinion piece I think it does more of a disservice than anything not just with the blanket statements but the author basically does the very thing he's criticizing only in more civilized language, essentially calling "gamers" (of which he conveniently disassociates himself from) a bunch of socially- stunted basement dwellers.

</comment><comment><USER18> It's great to be aware of social issues, but I find myself disagreeing with the foundation of this article. While online gaming is a very easy way to expose yourself to the harsh realities of prejudice in the world, I don't believe there is a relevant relationship between sexism and games as a medium. Considering the differences between Call of Duty players and Animal Crossing players, I think the studious will quickly recognize that the same differences are identifiable between firing range patrons and a members of a gardening club. Proof-reading that last sentence gives me one thought "well, that's just a no-brainer!" as it should. The gaming community comprises hundreds of niches that have their own personalities and behavior, just as the "television- watching community" does. To draw conclusions about the whole based on behavior of the relative few is offensive to me as a gamer.

<comment><USER5> I do agree with his sentiment that aggressive games breed aggressive behavior. I am not entirely sure this is bad per say but its pretty obvious? Cant we all be nice and civil to each other while we run around trying to murder each other. I personally do not understand this long running commentary about sexism in games, isnt it just a function of those types of games? If its not sexism, its homophobia or its racism anything to bring your opponent down, Call of Duty is not the sport of gentlemen, its mock warfare.

<comment><USER19> Is it really the "violence" ??

Have you ever played "Mortal Kombat" at a house party? As super-violent as it is, people generally are pretty chill about winning and losing... as long as its person-to-person.

On the other hand, I've played a game of Chess online once, and after making one or two good moves, I've been called homophobic names before the guy rage- quit on me.

You can take the least stressful activities, and if they're online, you WILL find people screaming death-threats at each other for some insane reason.

I think the online environment makes people somehow susceptible to stress and anger. At least, I personally go online to relax after the day... but with that relaxation... my inhibitions are released as well. I'm an introvert by nature, when I'm in public, I'm keeping tabs on my own behavior, watching what I say and trying to not be an asshole.

But when I'm at home and just browsing the internet, I'm not going to be holding back my words or thinking about other people's feelings. I'm completely tired of doing that all day. Plus, I'm at home, and (mostly) anonymous online. Why should I care about how I look or about other people's feelings?

I know it is lazy, but I'm just trying to be honest. And if anyone disagrees, please tell me about your experience with "Online Chess" vs "In-Person games of Mortal Kombat". I can almost guarantee you, the behavior of online-chess players is probably worse.

<comment><USER5> I agree with you 100%, the anonymity gives people incredible courage, but face to face people are more likely to be civil. But I think that is because the threat of physical violence is high if you said such hurtful things to other people.

<comment><USER19> As an introvert, I disagree. Simply being around more than 2 people stresses me out... and part of that stress means that I'm quieter and more reserved. But that stress does not apply to me online, perhaps its the lack of face-to- face contact.

Besides, the whole Youtube experiment has proven that "anonymity" means absolutely nothing to your typical troll. Forcing people to display their names has only made the system worse.

<comment><USER5> You could argue that Youtube's experiment didnt actually stop anonymity.

</comment></comment></comment></comment></comment></comment><comment><USER20> _The gaming world is a cesspit of maladjusted, comically aggressive, emotionally (and maybe actually) adolescent males who have a deep fear and distrust of women._

The thing is, if you forget about the _abusiveness_ towards women in online games (most people aren't even aware it happens), this is still the prevailing societal view of 'gamers.' Losers who don't get any girls. _That 's_ why many don't like to call themselves 'gamers,' or admit to a new group of people that video games are one of their hobbies.

</comment><comment><USER21> I think it is always a huge mistake to assume people mean the literal meaning of words they use. Im not even sure people using such words in a sort of banter (Im sure I could have chosen a better word there...) environment even think of them as words, more like they are sounds, like a contemporary growl or bearing of teeth replacement.

I mean, when someone says "fuck you", should I take them up on the offer?

<comment><USER5> Context and delivery is everything.

</comment></comment><comment><USER22> _> The gaming world is a cesspit of maladjusted, comically aggressive, emotionally (and maybe actually) adolescent males who have a deep fear and distrust of women. The problematic gamers are, naturally, almost exclusively male – and no doubt skew towards the young side. No-one's surprised by that. I'm not surprised._

Well thanks. Man, I don't even know where to start.

I'm male, 30+, and have been cursed at too. Sure, they didn't tailor their insults towards me being female (because I'm not) but that's just it; online, it's just words. Ignore them. That's what you do.

I've met my girlfriend online, and we've been together for about 5 years now. I've been active in the unreal tournament community, counterstrike, world of warcraft, Utopia, etc. Many, varied.

Sure there are some rotten apples, just like in real life.

Just ignore them, just like you ignore that drunk guy at the cafe that keeps getting close. If you can ignore the beggar on the street, or the street- marketeer, or the adds messing with your movie experience, you can ignore idiots on the web too.

.edit: okay, let me stress that YES this is an issue, but;

1) I take offense to calling the entire gaming world a cesspit of maladjusted, comically aggressive, emotionally adolescent males. I'm a gamer. Calling me the above doesn't put me in a great mood.

2) The site linked in that post has whole posts dedicated to getting the middle finger + the word "bitch". _Learn to ignore them damnit_.

3) _> The problematic gamers are, naturally, almost exclusively male_

\- well sure, you're female. Females aren't going to do this because, well, they'd be insulting their own sex?

\- well yeah, they're in the majority. In most communities I've been active 90% is male, so chances are 9 in 10 off of sheer numbers alone.

\- well of course, females won't approach you in a sexual context because most people are straight.

\- well obviously, if there is any discrimination, it'll be practiced by the larger part of the community, vs the smaller part. It just doesn't happen the other way around.

None of these make me respect the writers opinion.

If the point of this article is to piss off the good guys, it's working. Now get the hell off my internet, because you're just as bad as the people sending you nasty messages.

<comment><USER3> > it's just words. Ignore them.

This advice is pretty hollow coming from someone who doesn't have to put up with constant sexual harassment, who doesn't have to deal with cat calls and the fear of being raped that comes with them, and who can use their real voice on game chat without getting rape threats. Check your privilege.

<comment><USER5> You dont think being called a fagget is sexual harassment?

<comment><USER3> It is, but unless you actually are gay in real life and have had to deal with being called a faggot in real life, I'm going to have more sympathy for females who have to deal with sexual harassment online. They're both terrible behavior that we (as a gaming community) should object to when we hear it.

<comment><USER5> I have sympathy for everyone who is harassed online, I do not think anyone is actually being singled out for harassment because of who or what they are. If people really wanted to fix it they need to admit that this fact is true first, because treating this as a sexism problem is disingenuous.

<comment><USER3> Women get way way way more shit online than men. Ignoring that is disingenuous.

<comment><USER5> You seem to be making a lot of assertions of fact without anything to back it up. I would say that is disingenuous.

<comment><USER3> Fair enough, I just assumed people would accept the premise that women get more harassment online than men without me having to cite a study. It seems pretty obvious to me.

<comment><USER5> Lets think about it for a second though, if gaming is male dominated and incredibly hostile and full of harassment wouldn't the victim of the harassment be predominately male?

<comment><USER3> > the premise that women get more harassment online than men

If you are a woman, online, than you'll be harassed more than if you were a man, online.

If you want to go by ratio, then yeah, but that has nothing to do with the argument. The point is that the gaming community is driving away women with this behavior.

<comment><USER23> The "community" has no obligation to keep people in, it is the individual's choice what to do and how to deal with anything resulting from that choice.

As for women vs men, we all take our daily abuse, and in an anonymous online community the level of abuse is just that much higher. We learn to deal with the adolescent abuse because that's the only remedy.

Bullies will be bullies, they hone in on (perceived) weaknesses, when a woman feels harassed in an online community, it's not the fault of the community at large, it's just a fact of the world we live in.

I no longer play games, but I used to play a lot online, the abuse was daily. I and men I know receive non-violent abuse daily in real life well, not to mention the physical threats flying around; know that as a man anyone anywhere has the "right" to threaten you just for being a man. (Check your female privilege.)

Female harassment is a sham, it's just general harassment. Difference is women are allowed to complain and make a fuzz. Ideally we'd all be allowed to do so.

<comment><USER3> You're assuming I'm female.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> "The problematic gamers are, naturally, almost exclusively male" \- Source? If 50% of gamers are women I find this hard to believe.

</comment><comment><USER6> > Show me an angry man who spews hatred towards someone he perceives as > different or a threat to him,

I'm sorry, but this describes you.

And your screed is nothing but unadulterated hate speech.

How is this shit even allowed on this site?</comment>


What unemployment? Nothing like that in United States of Software - <AUTHOR> http://college2startup.tumblr.com/post/9878209155/what-unemployment-nothing-like-that-in-united-states <comment><USER3> To become a software developer (especially the kind with a CS related degree), you need:

-A highly analytical mindset

-The ability to handle tough math

-The ability to read dense material and process it quickly

-The mindset to persevere, test, investigate, and find obscure problems in complex systems

-The ability to see a project through to its finish

-The ability to explain complex logic and design, verbally and in writing

It also helps immensely to have

\- The ability to work well in a team, and good general social skills (the notion that this isn't important in software development is a silly myth, it's incredibly important)

\- The ability to complete lengthy and difficult academic programs, without veering off into less demanding majors that give you more time to party.

\- A family or other benefactor that can fund and support you through these academic programs (I knew a dude who tried to major in CS while working 25hrs a week in retail. Extraordinary people can do this, but it's very difficult to carry physics, math, cs, and a humanities elective under these circumstances. Many smart people fail even when school is their only "job").

It makes absolutely no sense to compare a person like this to the national average. The general unemployment rate has nothing to do with the unemployment rate for people like this.

So is the unemployment rate actually low for software developers, or is it simply low for all people with the traits listed above, regardless of field? You could reasonably argue that jobs go begging in software largely because the field is not competitive with the other professions/trades that people with these traits have available to them.

<comment><USER4> Disagree on "tough math". Strongly disagree.

Be analytical, practical and tenacious. Know how to abstract, design, program. Know tools, know platforms. Know how to triage and actually ship stuff. Be good to work with. Keep learning, constantly. Read tons of code.

But "tough math"? Honestly, haven't needed anything more than simple statistics for most problems.

"Tough math" seems more like an ego thing. I'd watch out for that.

<comment><USER5> You're correct for general problem solving in computer science. However, in order to get a degree from most universities you have to have taken 3 courses in calculus, a course in linear algebra and a course in differential equations. To most people those courses are "tough math".

<comment><USER6> If you are seeking a masters in CS most universities are only looking for programming languages, computer architecture, data structures and one algorithms course. These are the prerequisites for most courses.

<comment><USER5> That's true I'm just speaking from experience of looking at many undergraduate computer science programs in the United States. They all generally require some "tough math", and I think they should because that sort of analytic thinking in solving complex mathematical problems applies directly to computer science.

</comment></comment></comment></comment></comment><comment><USER7> _Don't mention this in the software industry especially startups, the situation is almost the complete opposite with demand for qualified engineers more than twice the supply._

At the price startups are willing to pay, naturally. I imagine demand exceeds supply for doctors willing to work for $30k + equity + copious free beer, too.

I know a lot of people feel that $80k or $120k for developers is quite generous. It may well be generous, but if you can't hire someone for it, it is _by definition_ below market. You know all those articles we've read about structural change? Here's another structural change: the market clearing price for engineers may soon durably transition to that of e.g. management consultants or lawyers rather than that of e.g. HR clerks or marketing directors.

<comment><USER8> I hope so, but the problem I see is that new grads (I include myself here) are willing to work for 80k, while it's not that much of a stretch to say that the best graduates will be almost as productive in a few years as they will be in 7 or 8 years. That doesn't, however, automatically mean a commensurate salary increase, so developer salaries are kept perpetually lower than they should be. How can employers and employees adapt to this bifurcated market?

<comment><USER9> In 1994, when I first entered the job market, $80k/year was a ridiculous number, reserved for people with unattainable-sounding skills like "PowerBuilder". Point being: look at the trend line, not the spot price. New grads today will accept $80k. Five years from now, if the market retains this level of heat, will they continue to do so?

<comment><USER10> To be clear, $80k in 1994 is roughly $116k today with inflation - <USER2> still on the very high end of entry level.

<comment><USER9> Entry level? $80k was for a spectacularly senior position. $35k sounds about right for degreed entry level dev jobs in '94.

<comment><USER11> It's not quite equivalent, but in '98, I was thrilled when I got a job as a network engineer for 40k (in Boston). At the time it seemed like more money than I knew what to do with (I very quickly became much more imaginative).

<comment><USER12> Boston area tends to have relatively low salaries, both compared to competing areas (like the Silicon Valley, NYC, and Washington-Baltimore corridor) and relative to the cost of living (real estate, primarily). The difference is not trivial.

<comment><USER11> My experiences haven't found it to be that cut-and-dry:

I moved from Boston to Silicon Valley in '99, and found it was significantly more expensive with only marginally better salary (which I was happy to accept as we would leave at lunch and go surfing, which for me was a worthwhile tradeoff).

I moved from SV to Washington DC in '01, and found the cost of living slightly less, but salaries approximately the same.

I'm now in the process of moving to NYC, and the cost of living and salaries both are a little higher (I don't really care about money though, so I'll admit that it hasn't been a factor in my moving decision).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> In Germany there is the word "Schweinezyklus". Pig cycle. It's mostly prevalent in engineering. It works like this: 1\. Companies complain about not having enough qualified engineers

2\. Everybody gets told to get into engineering in college

3\. Boom crashes. Companies lay off engineers. The new engineering graduates don't get hired and are unemployed

4\. Everybody flees engineering

5\. Back to step 1.

I think we are at the end of step 1 and 2. -

<comment><USER14> I don't think this quite captures the situation. Companies aren't complaining about a lack of _credentialed_ developers; they're complaining about a lack of _competent_ developers.

In 2000 there were far more people graduating with computing degrees than in 1995; but the average quality was far far lower. The people who suddenly found that they couldn't get jobs when the dot-com bubble burst? Most of them didn't belong in the industry in the first place.

<comment><USER15> I finished undergrad in 2002, and _no one_ was hiring then, even for Stanford CS grads. No one wanted people fresh out of school because there were so many unemployed engineers with 5+ years of experience that there was no incentive to take someone straight out of school.

</comment></comment></comment><comment><USER16> It's pretty region and skill specific.

If you live somewhere outside of about 4 or 5 locations in the USA, getting a programming job can be hard. Also, skills that are hot in a place like NYC or Silicon Valley are often next to useless in other areas. (learning this the hard way)

<comment><USER17> Would you mind expanding on your last sentence. What was your personal experience? I'm guessing you have Rails/NoSQL experience while the jobs at your current market tend to be Java/Oracle type?

<comment><USER16> Yes, that is pretty much exactly what I meant.

</comment></comment></comment><comment><USER18> A demand for workers is not the same thing as no unemployment. Plenty of people out there with outdated skillsets.

<comment><USER19> But that's their point. When you have people with no jobs, that counts for the unemployment. But even I know how difficult it is to find people to hire for our company as I do HR for a technology firm. There is a high demand, just shortage of people to fill the positions.

<comment><USER13> I see an increasing unwillingness of companies to train people who don't have EXACTLY the right skillset. This used be different in the 90s.

<comment><USER20> Which, as far as I can see, has led to a vicious circle where developers will often refuse/bitch/complain about working on something that doesn't increase their immediate employability prospects. Not to mention CVs that quite often have a half a page or so of solid acronyms to increase the chances of being found by simplistic recruiting company search engines.

</comment></comment></comment></comment><comment><USER21> I'm sure if the economy continues its downward spiral, these software jobs will evaporate just like many of the others.

<comment><USER22> That reminds me of how people use to think that games were recession-proof before 2008 or so. Then the numbers came in. Quite a reality check when your sales drop by a third in a very short amount of time. All the big publishers took note.

</comment></comment><comment><USER23> I'm observing some people trying to break into technology. Yes, there are online tools available. Yes, many of them are free. One of the complaints I hear is that the target platform you choose moves so fast.

Generalized, it means software -- the technology and the economy -- runs at a higher tempo. In order to step into the stream, you have to first match the new tempo.

I suspect that the rest of the economy stays in a slump because they are out- of-phase tempo-wise with software technology ... or that the tools that drive up the tempo of innovation in software has not made it out to the mainstream yet. (And even if it did, it will leave people behind simply because there are people who will refuse to impedance match).</comment>


Value-Oriented Programming (2018) - <AUTHOR> https://matt.diephouse.com/2018/08/value-oriented-programming/ <comment><USER2> I don't get this. Aren't protocols basically interfaces? So the argument is "Start writing an interface, not a class?" Isn't this common knowledge? This is stuff you learn in programming 101. (I'm not trying to come off as snarky; I'm genuinely curious.)

<comment><USER3> There are 2 general approaches for design when doing something that is vaguely object oriented. One is to decompose you data into structures, figure out the entity-relationships (often with a diagram) and then finally decide which operations should live on which object. When I first started out in the 80's this was pretty much "the way". You would frequently write descriptions of the domain, circle all of your nouns and underline your verbs. Then you would make data structures with the nouns and make methods with the verbs.

A lot of this stuff came out of the Simula branch of OOP. It's the kind of stuff that C++, Java, C#, etc was modelled around. Objects are an encapsulation of data along with their operations.

The other way to go is more where the Smalltalk guys went. In this branch of OOP, what's important are the messages. Data is abstracted out and your goal is to refer to it as little as possible. Instead messages are passed around between objects and the objects are responsible for dealing with the messy business of handling the actual data. When you are designing you look for the message flow and then build objects that handle the messages.

When one says "Start writing an interface, not a class", I think what is meant is that you should concentrate on the messages that the objects need to react to, not the data within the classes. So you are designing a protocol, not an E-R diagram.

There are people who are adamant that only one of these two approaches will result in "good code". Often there is a considerable amount of derision for someone who believes in the opposite approach. The truth probably lies somewhere in between IMHO. There are advantages and disadvantages. When doing a data centric approach, it's very easy to understand the state that you are capturing. But it's also very easy to let the details of the data dominate and to create unnecessarily complex code dealing with that data. Often you end up with god objects and poor decomposition of behaviour. On the other hand, if you go for the protocol approach, often you get designs where the state is almost impossible to figure out and where you have "big bags of functions" because it is convenient. It is difficult to maintain the data abstractions and often the data details leak out, pretty much destroying your design.

Design is super difficult and requires a lot of experience of doing it. Different schools of thought and descriptions of approaches are helpful to a certain degree, but the best is to write a lot of code and get feedback from people with experience. My biggest piece of advice for people who are near the beginning of their career (i.e. first 10 years or so) is to try to work on an project (likely your own side project) for at least 5 to 10 years so that you can see it implode under its own weight. The biggest mistake I see developers make is assuming that things that appear to work for a year or two will continue to work as the code base ages. Especially I find people who have formulaic approaches to design often break the design badly in the long term (there are some 3 letter abbreviations that I could splash out if I wanted to pick a fight ;-) ) Unfortunately, these people rarely work on a project for more than a year or two, so you get what I call "drive by designings" \-- just shoot it to pieces and drive on.

<comment><USER4> Would a summary of the two approaches being whether you focus first on what the object does vs what the object knows?

Drawing a Class Diagram of data fields was indeed the only way we learned ~20 years ago. But now that you mention it I find myself slipping into the other model a lot more lately. It's an especially natural fit for APIs.

<comment><USER3> Ha ha! I've tried to answer this question a few times tonight, but alas I find that I am not able to do so :-) It's a good question and I think the answer is much more deep than it appears. Maybe one day I'll be able to answer it.

</comment></comment></comment></comment><comment><USER5> You've also now gone from an immediate-mode renderer to a retained-mode renderer (allowing future transformations on rendered segments, etc.) "for free". But you're also adding potentially millions of new GC objects on the heap that weren't there before, so not so free.

<comment><USER6> How do you figure? He's not using any reference types, and he's using a language that doesn't even have a GC.

It's likely the Set<Path> will use heap allocation internally (there isn't really a way around that), but it's only holding a small value type.

Besides, this wasn't a streaming interface before this change, either. In the first version, all elements were held in an array already.

<comment><USER5> AFAIK Swift supports GC, though only simple ref-counting at the moment. Yes, it's the Set<Path>s that I'm talking about.

</comment></comment></comment><comment><USER7> I think this is usually called "functional programming". See for example [https://prog21.dadgum.com/26.html](https://prog21.dadgum.com/26.html).

<comment><USER8> While most statically-typed functional programming offer some approach to composition similar to Swift prototols, the concept goes above and beyond the idea described in the article you posted, which relates more to the idea of programming with immutable data.

So similar compositional techniques to Swift protocols would be typeclasses in Haskell, traits in Scala, module interfaces in ML languages (which have to be used at the module-level via functors instead of at the value-level like the other examples), etc.

Edit: I should have read to the end. I stopped after reading a few paragraphs of what looked like a basic interface vs inheritance discussion. Turns out, at the mid-point, he introduces an "alternative" to that approach, which is indeed more or less functional programming. As much as I like functional programming, (his "Value-Oriented-Programming"), interfaces are often quite useful when programming in the large.

<comment><USER7> The article doesn't seem to be promoting using the Swift protocol approach to composition — at least, that's not what it uses the "Value-Oriented Programming" name to refer to. Instead, it's saying that _instead_ of using the Swift protocol approach to composition, you should return a complicated _value_ of some concrete data type from your function.

<comment><USER8> Oh, my apologies. I read a few paragraphs and it looked like a basic tutorial about Swift protocols and inheritance vs composite, so I stopped. I'll read the whole thing.

Edit: Yeah, you're right. I read to the end and that's pretty much functional programming as you suggested. I'm not convinced it's always better than using interfaces. Like most things, I think it depends. For example, particularly when programming "in-the-large", I think being able to package up different contexts (like a TestRenderer) into different protocol implementations is often an _advantage_ of that approach, not a weakness, as he seems to imply.

<comment><USER7> Yeah, I'm not sure he's right that one technique is clearly better than the other. They're only separated by a transformation to explicit CPS and a doesNotUnderstand: override, but that isn't in itself an argument that the distinction is unimportant.

</comment></comment></comment></comment></comment><comment><USER9> Discussed at the time: [https://news.ycombinator.com/item?id=17881197](https://news.ycombinator.com/item?id=17881197)

</comment><comment><USER10> So functional programming + type classes?

</comment><comment><USER11> Um, he "invented" a command design pattern [https://en.wikipedia.org/wiki/Command_pattern](https://en.wikipedia.org/wiki/Command_pattern)

</comment><comment><USER6> He doesn't use the term, but this looks exactly like an embedded domain- specific language. It's a nice improvement on the original sample program.

</comment><comment><USER12> I was trying to use more values and protocols but then they made SwiftUI where your model has to be class (ObservableObject).

</comment><comment><USER13> The article seems to be overly preoccupied with nouns.

</comment><comment><USER14> Love the simple demonstration of a pretty profound concept</comment>