11 ms·
Signaling in tech is some fucked up shit (2016)
- munchbunny 8y agoI know this is a bit off topic, but I'm curious what stack you're using for your blog. I like the minimalism of it, and I've been looking for a lower-effort way to maintain something like that. RE: your actual post, I've also personally noticed this, and a similar concept that when you reveal that the bulk of your experience is on a "dinosaur" language, you are automatically lumped into the set of less competent programmers. It pretty explicitly informed my choice of programming language for interviews. Fortunately, I've found that there's a fairly direct correlation between people you would want to work with and learn from and how much this signalling affects them. Many of the programmers I respect most openly don't care what your language background is, just that you can wrestle your tech stack into good software. That's been my experience too: the good ones can ship great software on pretty much any (reasonable) stack. The okay ones ship okay software on pretty much any stack.
- RexM 8y agohttps://github.com/daiyi/blog https://github.com/daiyi/blog
- deleted 8y ago[deleted]
- SCdF 8y ago> when I told other software people I’m a web developer, I got treated like shit. I was a lower class of coder because I wasn’t “solving cool problems” because making web sites is easy. Of all the stupid arrogant awfulness in tech that has crossed my path this one is definitely high on the list of the most baffling. Web dev is the hardest and most intimidating dev work I've ever done, by a country mile. (Whether that complexity is 'justified' is an entirely different discussion that, while no doubt interesting, has nothing to do with this person's post)
- axlee 8y agoWhoever says web is "easy" never had to build or maintain a large web application. The ecosystem is incredibly deep and constantly evolving, to the point where best practices change every six months.
- Zelphyr 8y agoNot to mention; web developers are constantly having to context switch between HTML, CSS, and JavaScript. Old school days they also had a backend language like PHP or Perl. Many still do. Then there was/is SQL. By my count, that's at least five different languages to know all at once.
- shawn 8y ago“Look at how many plates I can juggle at once!” “Aren’t you just trying to walk to the store?” “Look! I added a fifth! Everyone do this now!”
- pault 8y agoI don't understand your analogy. What is walking to the store without juggling any plates in web development? I'm not aware of any stack that allows you to write styles, markup, business logic, and database queries in a single language.
- Zelphyr 8y agoI don't understand the analogy either but I do know that when I'm doing iOS development it's almost always all in Swift. Sometimes some C or Objective-C or even C++ smattered in but that actually kinda proves my point because when I have to deal with one of those languages in a Swift project I slow down.
- shawn 8y agoArc does, fwiw. And that’s an important design goal. There is a lot of progress left to be made in this space.
- pmichaud 8y agoThis was entertaining to read, I like your style. I also find the webdev low status pretty unjustified. It's true that it's less mathy than other disciplines, but at scale, "webdev" is every bit as architecturally challenging as anything else, and in some cases moreso because of the sheer number of different technologies and stacks you have to be fluent in to make it all work together.
- fermienrico 8y agoI presume the hatred comes from the purists looking down on the entire mess of web stack: PHP gets a bad rep, JavaScript is at the butt of every joke from an embedded C developer, and the front end of the stack is a total nightmare - CSS, w3c and all. Web Dev is hard __precisely__ because of this mess!
- sverige 8y agoI think it's the fact that it's a mess that makes people who strive to write correct code and keep it all neat and tidy look down on webdev. It's sort of a variation of the "clean" vs. "messy" roommate conflict. Messy loses status in an industry that aspires to be "scientific." Not that it should be that way, just my take on similar observations.
- d3sandoval 8y agoYou're definitely onto something here. "Messy" makes money. An obsession with "correctness" can kill a business, especially in its early stages. Fail early and fail often. Web dev has very low (technical) overhead and aligns with "startup" mentality. The good news is that the customer has different expectations every 6 months so it's not the worst thing in the world to have a slightly different set of technologies to meet those needs.
- fhrow4484 8y ago> It’s fucked up that being interested in this random programming language, not even for the reasons the fangirls love it I'd argue that the real signaling here is the op showed genuine curiosity. This is hard to fake, and the "fangirls" in this example could be people pretending to like Clojure because that's the hip language/framework of the day. Maybe people respect you more for being genuine.
- zaptheimpaler 8y agoI was (am maybe.) one of those douches that looked down on webdevs. I was so, so wrong. It came from fetishizing complexity and "smartness". Even setting aside the issue of complexity, from a business perspective, web dev is immensely valuable and only becoming more so. And as for complexity, I always thought I could learn it easily because its "not real CS" but man its a huge, complex, ever-changing ecosystem and not at all easy. And it takes a much broader set of skills (both technical and non-technical) than pure backend programming or whatever. Mad respect to all web devs, and all devs. The sooner we get rid of the caste system within software the better.
- Zelphyr 8y agoThere's also something to be said for us working hard at getting rid of the complexity in web development.
- sethammons 8y agoA number of years ago, one of the co-founders at work asked various people, "how would you feel if I said you looked like a $LANGUAGE programmer?" And he substituted Perl, Ruby, Python, and PHP for $LANGUAGE. We often mock up in our minds what it means to work in a language or framework and bucket people based on these poor signals.
- bastijn 8y agoI think the negative comments on webdev come from the php era where websites were not much more than information portals. Nowadays webdev is more about web apps, considerably harder to create and maintain. In addition the usage expanded so scale became a thing. Over time it is more that the apps traditionally seen as "true programming" moved to the web but the stigma is only starting to fade. On the writing style; hope you are more fun over lunch talks :). Hope it is a jokingly written article because the dark writing style can easily be confused with a negative attitude for people who can only judge by the article. Cheer up! P.s. the fangirl comment is a little out of place in an article on signaling written in this tone. It's like you think less of people who love the language for reasons that qualify them as "fangirl" in your eyes. Just saying.
- MusaTheRedGuard 8y agoThe writing style is a stylistic choice. I like it
- DoreenMichele 8y agoThe author seems to be female, so "fangirl" maybe isn't so out of place.
- bastijn 8y agoEven so, fanboys, fangirls, it is all said in demeaning manner in this context. I don’t think anybody would feel proud to be categorized in that group of the authors collection.
- jobobgo 8y agoJust drop a line about "my startup" and put wage slaves to shame. If you are in front of other startup founders, and they know you also have a startup, then drop the line that you own multiple income producing real estate properties. If you are with real estate investors, who know you also have a mini real estate empire, then drop the line that you own a tech company. If you meet someone who has a successful startup, has multiple real estate properties.... then flex your arm and chest muscles at random to show them who's boss. If you meet another guy that has the same things as you, then go out for a beer with him and be narcissistic assholes together to slay chicks. Works every time
- jxub 8y ago(2016) Nice article, the self-deprecating/funny tone is rather sparingly found in tech blogs (well, apart from Julia Evans).
- endorphone 8y agoOften when people perceive signalling it is a confirmation bias -- they feel something and think it exists in the behaviors of others. e.g. I'm doing something I think is cool, therefore positive interactions are because of it. I'm insecure therefore everyone is dismissive of me. Having said that, I don't know what timeframe this person is referring to but web development went from extraordinarily hackish and ill considered (the WebForm/php/intermixed render blocks era) to being a quite disciplined portion of the industry. I remember when the overwhelming bulk of web developers wouldn't grok that JavaScript had closures, and they didn't have to use globals to store state during an event handler.
- reificator 8y agoRewriting your frontend every six months using the current trend isn't my idea of disciplined.
- dev_dull 8y ago> ack in the day (as in a couple years ago) when I told other software people I’m a web developer, I got treated like shit. I see this a lot in our field unfortunately. "You program in X? A real programmer would program in Y because...".
- iwangulenko 8y agoAs someone running a technical recruitment agency, I can assure you that it is true that someone having built stuff in Clojure is more likely to be considered as a good engineer than someone who did JQuery all the time. Recruiters use an intuitive approach to conditional probability. Given only the info alone (if someone did JQuery or Clojure) exposes you to two bell curves, with the X-axis being "programming ability". The first bell curve that has all JQuery people is more on "the left" and the one having all Clojurians is more on the right. The Clojure bell curve has shitty engineers and some really good people are part of the JQuery one. Prejudice is sort of rational. If a recruiter looks at one datapoint, it's unlikely that it is at the tails of the bell curve, so the Clojurian applicant will get more attention. If you are treated unfairly because of the group you "belong to", I am sorry - but this is reality.
- throwawaymath 8y ago> As someone running a technical recruitment agency, I can assure you that - statistically speaking - it is true that someone having built stuff in Clojure is more likely to be a good engineer than someone who did JQuery all the time. Would you care to share those statistics? While we're at it let's also be sure to define "good engineer."
- parrellel 8y agoHe just said it was holistic.
- throwawaymath 8y agoThe commenter said "statistically speaking" to justify part of their point. I am directly challenging their assertion and requesting evidence that they have 1) actually quantified something in more than a hand wavey manner, and 2) found the (falsifiable) conclusion they stated, based on that analysis. I'm deeply skeptical. People like to throw around percentages and references to statistics to justify their biases, but I don't think the commenter has done nearly enough to motivate the conclusion that the modal Clojure developer is more likely to be a "good engineer" than the modal JavaScript developer.
- EngineerBetter 8y agoMaybe it's my age, and a youth of grunge, metal, hardcore and punk, but whatever happened to doing what you love and not giving a shit what naysayers think?
- nine_k 8y agoWhat happened: the need to earn subsistence.
- trentmb 8y agoBecause in a capitalist dystopia or an anarchist commune, I need other people to want to help me.
- tmh88j 8y ago>but whatever happened to doing what you love and not giving a shit what naysayers think? I'm in my 30's and have used a lot of different languages and have worked in a lot of different aspects of software development. As long as I'm being compensated at my skill level, I couldn't care less what language I'm using. I'm currently a web dev and the company I work for primarily uses PHP. To make a long story short, a good friend of mine works for a huge university and if I hang out with him during the week, I'm inevitably going to be around some college kids. The typical icebreaker conversations of "what are you studying" often times leads to chats with CS students. The amount of trash talking I get from kids who haven't even graduated and have no professional experience once they find out I primarily use PHP is astounding. Golang and Python seem to be cool amongst college students, so once they find out I also have more experience with those languages than they do with programming in any language, I suddenly become cool and worth their time.
- portal_narlish 8y agoThis type of signaling is very real and present in functional programming languages specifically. Java programmers feel insecure because they're not writing Scala, the Scala people wish they were as functional as the Haskell people, the Haskell people wish they were as advanced as the academic Idris people. It's a never ending comparison contest. And despite functional programming having an objectively higher barrier to entry, it is entirely possible to write absolute garbage code in an FP language as well.
- Tade0 8y agoit is entirely possible to write absolute garbage code in an FP language as well. I can attest to that as I in college had a course on functional programming with Haskell and the way I did my assignment was awful to say the least.
- freetime2 8y agoThis article was written in 2016. A couple years later in 2018, the last couple times I've heard Clojure mentioned it was it was to sarcastically mock the trendiness of the industry. E.g. "My side project is a social media platform that leverages big data, machine learning, and blockchain... and it's written in Clojure". Has Clojure already lost its cool mystique in the 2 years since this was written? If so I think that further proves the point that assuming good/bad things about a person's talents based on the tools they have used in the past is foolish.
- js2 8y agoWhere are these horrible places that people work and hang out? I’ve worked at places as small as a tiny ISP where I was basically the only tech employee, startups with a dozen employees to companies as large as HP and everything in between. I’ve worked on the east coast and west coast. I’ve worked for private companies and public ones. Ive been on small teams and large. Ive had dozens of managers. I’ve been an SA and a programmer and sometimes the jack of all trades who’s responsible for IT and the web farm. I’ve racked and stacked gear. I’ve punched down Ethernet. I’ve got a CS degree from a state school. I’ve coded in Basic, assembly, C, C++, scheme, Perl 4 and 5, python 1, 2 and 3, Java, JavaScript, PHP, Shell, TCL, Pascal, Fortran, Lua, and on and on. I’ve contributed to open source small (chpasswd) and large (Apache, git). I don’t ever recall running into someone who would treat me badly based on what I do. I’m not arguing it doesn’t exist. I certainly believe the author. I just haven’t experienced it myself. Have I just been lucky?
- freetime2 8y agoI think the author was exaggerating a bit, or perhaps is more sensitive to other peoples' opinions than most (e.g. the bit about crying in the bathroom). In the past I have definitely worked at companies where "web developer" was a completely different job title than "software engineer" (back-end developer), and paid less money. Definitely second-class citizens. The industry seems to have turned a corner with the advent of single page app frameworks, npm, etc, and everyone these days seems to be "full stack", but I'm sure there are still plenty of companies out there still doing it this way. Also, from what I can tell people in academia and certain open source circles are brutal to each other (e.g. Linus Torvalds). I'm sure they would shit on the work I do every day... but I'm too busy to care.
- js2 8y agoWeird (to me). I don’t care what a coworker makes or what their title is. I don’t even care what my own title is. When a former employer let me choose the title for my business card I went with “problem solver.” All I really care about is having competent coworkers with integrity who are respectful to each other. It’s not my job to judge the value of a coworker’s work.
- nine_k 8y agoA general advice: don't be, or position yourself, as a "programmer in ${language}". Your value proposition as an engineer is ability to comprehend and solve problems. Learn enough concepts from a few different schools of thought to be able to make sense of a language in a reasonable time. Master a few, eventually. An ability to use a semi-obscure language to solve a problem, and an ability to explain why it is superior for the task is indeed an important signal of the above-mentioned abilities, and a costly one. Costly also for the employer (in terms of your negotiated salary).
- dizzystar 8y agoAs a Clojure dev, I find this attitude absolutely baffling as well. I can assure you that nothing at all about Clojure makes you a good dev. Nothing about any language makes you a good dev. Want to fast-track a new project into a convoluted legacy codebase few humans can grok? Hire a bad dev and have them write in any language, it doesn't matter. I've seen Clojure code bases passed through a dozen hands that no one could figure out.
- idontpost 8y agoI think the attitude comes from the fact that Clojure is almost never someone's first language, and someone that went out of their way to learn it probably learned it to solve some problem they had with another platform. Those two factors right there weed out a certain bottom percentile of developers.
- nodesocket 8y agoThe same is mostly true of two candidates one with go experience and one with Node. The one with go will either get the position, or recieve a higher offer. The exception might be demand based. PHP for example is generally sneered and looked down upon, but if a successful startup is built using PHP (there are lot's) then demand will be high for that specific expertise.
- draw_down 8y agoAlmost everything about our industry is weird and fucked up.
- jstewartmobile 8y agoComing from embedded, the web is such an awful platform. No versioning. Polyfills everywhere! XML (satan's markup). Javascript... Every line of code is a rabbit trail into "can I use" BS. Web devs didn't make it that way. They're just the ones who have to live with it. We should be buying them lunch and thanking them for their service, not crapping on them.
- h4b4n3r0 8y agoEmbedded has plenty of its own ugliness, though. It just doesn't change at such a rapid clip. In fact, once you ship a thing, it's unlikely to change at all. I appreciate this "do once and forget about it" approach, but at the same time the tooling for embedded can be ugly AF as well.
- jstewartmobile 8y agoDepends on your chipset. Last project I worked on was for the Z80 (only a few months ago, strangely). Like buttah.
- h4b4n3r0 8y agoZ80 was like a brief breath of fresh air in late 80s: hands down the most intuitive assembly syntax I have ever experienced. I bet I could whip up something decent in it even now, in a couple of days. What would one use to compile assembly for it on Linux?
- jstewartmobile 8y agoI used Zilog Developer Studio and C for that particular project, and there was very little inline assembly required. I don't think I've had to write anything 100% in assembly in 20 years, so no idea what you'd use on Linux.
- dokem 8y agoIt's really not that complicated. Technical people recognize technical ability. Throwing together a CRUD site in some framework is really not that complicated and can be achieved without really understanding what's going on. When you started learning Clojure you got a little more respect because you were broadening you're horizons. It's not some conspiracy systems programmers have against web-only devs: The web dev learning curve really is not that steep.
- GijsjanB 8y agoWhy are you assuming s/he is putting up a "CRUD website in some framework"? I work with HTML, CSS and JS, but it does not tell you anything about what I'm building or how I'm building, so you should not "recognize my technical ability" based on your false assumption.
- jordanlev 8y ago"Throwing together" anything using anything is not really that hard, but understanding the problem, making trade-offs with limited time and budget, writing maintainable and well-tested code, making something easy to use, accessible, efficient... these are all very difficult to pull off regardless of whether you're building a CRUD site or not. I would also disagree that the web dev learning curve is not that steep... sure to get something to "compile" (well, show up on the screen) is stupid easy (<p>Hello world</p>)... but to actually make a functional, usable, performant, efficient, accessible, beautiful site or app requires managing a lot of complexity across a bewildering amount of environments and tools.
- dokem 8y agoI'm not saying all web software is simple and all web devs suck. The fact is that most web apps are CRUD, and not well designed or 'beautiful' and written by devs that really don't care about SWE or broadening their skill set - just collecting a pay check - and that's fine. The ecosystem of operating system, compilers, distributed systems, embedded etc is a bit more rigorous because the bar to entry is higher.
- johngalt 8y agoAs a sysadmin at the bottom of the signaling hierarchy, I find this hilarious. Am I managing a complex integration and operations task? Nah, clearly I'm just someone who clicks through installers in windows.
- SauciestGNU 8y agoI've worked as a sysadmin in the past. When I moved from a linux shop to the first windows environment I administered I found that a lot of the windows admins were "next next install" types. I'm sure that's not the case everywhere, but as long as those people are called sysadmins they're going to dilute the value of actual professionals.
- ChrisCinelli 8y agoFor me this is another lesson about biases and ambiguity. 1 - Learn to recognize biases. 2 - Scrutinize your thoughts to limit the influence of your biases. 3 - Work on processes to limit unconscious biases. 4 - Since you cannot eliminate biases, use biases to your advantage.
- Tade0 8y agoThe other day I was (lightheartedly, but still) asked: "what went wrong?" that I had chosen front-end development even though I graduated from university - because apparently these two things are related somehow. I've found that while I can't change peoples' biases, waving the flag of "I do stuff in Rust in my spare time" is enough to scare off at least the Java folk. There's an interesting power struggle I've been caught in more than once: Back-end devs describe their work as very hard so that they're left in peace, and the easiest way to strengthen that is to describe someone else's work - front-end developers' in this case - as easy. This way whenever a change in requirements occurs there's pressure to avoid doing changes on the back-end in favor of changing things on the front-end. At the same time interesting and "hard" things are meant to be done on the back-end even though nowadays it's possible and sometimes easier to do them on the front-end. The fact that back-end devs are paid approximately 20% more naturally only worsens this.
- d0m 8y agoIt's just probabilistic.. someone who's really into SICP and clojure is showing signs of being interested in more than your typical minimum 9-5 job requirements. It's not "THE" sign, just one of many. SICP teaches many things, such as how to write compilers, how to think about abstractions or the benefits of immutability. Is it so weird to think that someone's willingness to get better and learn more is more likely to get more job offers?! Here's one way to look at it, considering everything else equal, if you were an employer, would you pick someone who knows X (where X is jquery or whatever requirements you need) or someone who knows X + Y (where Y is some interesting technology that may eventually turns out to be useful)?
- casion 8y agoWhat does "signalling" mean in this context? I tried to look it up and failed to find a definition that made sense.
- cuddlybacon 8y agoThis is signalling in the economics sense: https://en.wikipedia.org/wiki/Signalling_(economics) https://en.wikipedia.org/wiki/Signalling_(economics)
- casion 8y agoThank you
- Ologn 8y ago> I instantly get elevated to a respect-worthy status for free...Coming upon the Correct Signal by accident I have worked at companies with open positions, and I have had to sort through a lot of resumes. I also get an informal Bayesian probability heuristic in seeing the resume and then seeing the person who wrote the resume. People who are on the ball, who are the standard deviation above the rest, know what to put on their resumes which looks impressive. People who are a standard deviation below the rest not only don't know how to put together an impressive resume that stands out, they don't even know how to put together a median, average resume. If I was hiring programmers with little experience, and everyone has the same skillset - Javascript, ES7(8,9...), V8, Javascript framework du jour (React, Angular, Vue, Node.js) - they all look the same. If someone has Clojure on their resume as well, it sends a certain signal out. You still want to talk to that person, and verify that they are a standard deviation above the rest, but it sets you out from the pack. If we don't go by such signals from resumes and the like, I don't know where to go from. The OP is correct though, once you send up a signal you are a standard deviation above, then you have to follow through and you start feeling compelled to be able to produce at a level a standard deviation above.
- GijsjanB 8y agoI think everybody who writes HTML, CSS and JS for a living experiences this. For me it's the never ending jokes about "JS was written in 9 days" and remarks on how easy it is to fix a problem, because "it's just CSS". I compare it too subtle discrimination. I am a white male and I won't pretend to know how it feels to be discriminated, but I do know how it feels too fight the uphill battle of condescending remarks. And I also play my part. I downplay what I do ("I build websites"), because I don't want to hear myself pounding my chest.
- gameswithgo 8y agoJavascript being sub optimal makes what you do harder, which implies you are smarter. You aren't being made fun of, the language is. And CSS is harder than programming!
- GijsjanB 8y agoI think the assumption is: he's willing to code in a suboptimal language, so he must be a suboptimal engineer. PS. I use TypeScript, love it and don't believe it to be suboptimal.
- RandomInteger4 8y agoCan you elaborate on how javascript is sub-optimal?
- drawkbox 8y agoThe deeper tech you know the more underground and probably experienced you are. The more languages you know, you are probably better in all of them because knowing multiple languages is better to see core parts like standards, systems and patterns. If you know a functional programming language that also probably means you have more experience in the deeper end, doesn't mean you are better but you have been around and devs that have been around probably are better. It is the same with any subject, music and movies also has this, the more underground music/movies and more original/classic movies you have seen the more you appear to know. It is snobby but it is a signal that you probabilistically are more experienced. Even the OP posted how he came into programming with javascript and webdev, then tried Clojure and went into SICP. The latter two aren't gateway languages/areas. The gateway languages are javascript, java, C, C++, .NET, Ruby maybe Python now are usually the first languages people know, learning Clojure meant it was at least your second language, rarely do people start with Clojure, so it signals you have gone deeper in knowledge and have somewhat leveled-up even though day to day you seem the same self.
- neonate 8y agoNot a he.
- epberry 8y agoWell, this person "missed computer science" and picked up SICP to scratch that itch. Then he did the examples in clojure instead of scheme! It would seem to me that his colleague's signaling was correct. Would your average frontend engineer engage in either of those two activities?
- jancsika 8y agoThere was an apocryphal meme reddit where a carrier apparently sent a text asking how the user would rate the reliability of the network on a scale from 1 to 10. The user replied, "9." The user was notified that there was an error and the text didn't get delivered properly, to which the user replied, "8." Signaling of the kind the author describes is information. If it truly is as widespread as the author suggests it is valuable-- just take note of the few people not signaling in this manner and then try to forge relationships with them.
- h4b4n3r0 8y agoI was a hiring manager once. The mere mention of "off the beaten path" languages on the candidate's resume signaled one thing to me: that the guy is willing to put in the effort and learn something new. That gives you a leg up over the horde of other folks who, all other things being somewhat equal, don't really give a shit about their craft.
- ankurdhama 8y agoModern software engineering is a cult.
- dang 8y agoMaybe so, but please don't post unsubstantive comments to HN.
- ankurdhama 8y agoThere any many such unsubstantive comments in this thread, but thanks for pointing out that.
- bbeonx 8y agoI dunno, to me the whole 'abc coders are xyz' is a heuristic. I value curiosity and I find that devs that are solid at a wide variety of paradigms often get there through curiosity. So if someone tells me they are learning Clojure/Haskell/Scheme/Racket/OCaml/Brnfuck/Scala/Smalltalk/etc I'll think that's interesting and wonder what made them decide to learn the language. Without further information it's a safe guess that they are curious and enjoy learning new things/challenging themselves, things that I think are cool to do. And people who do cool things are often times cool people. But Daiyi's main point isn't that abc coders aren't xyz, but rather that other people are also xyz, and that if an efg coder becomes an abc coder and are found to be xyz then they were probably xyz back when they were efg before becoming abc coders. And this point should be well taken. There is a common trend that analytic subjects contribute more value than artistic subjects. This, in part, is due to the phenomenon that analytic subjects have values that are easier to calculate (...analytically, whence this is somewhat circular) while artistic subjects have effects that must be evaluated more subjectively. A coder works for a week and adds a new feature which increases marketability. A painter works for a week and produces a painting that may eventually sell for $500 in a couple years. But this undervalues the painter---the effect of arts on a society is more than their retail value. I think this in part describes why web devs/front end engineers are socially valued less than coders in the development community. Their contributions are harder to quantify and the problems that they solve are more diffuse and subjective. This leads to "it's hard to quantify an efg coder's contribution" being conflated with "efg coders contribute less". But this is BS---I have yet to come across anything that isn't both an art and a science if done correctly. In fact, this thought lead me to my own answer to one of the great philosophical questions of the ages: "what is art?": I contend that art is anything done well. And as a computer scientist with a prior life as a musician I can assure you that there is plenty of 'calculation' that goes into the arts. Sometimes this is explicit. For instance, say that I have a closed voicing CFA (closed voicing means everything is close together) and they are moving to B?G that will then move to CEG. What do I want to replace `?` with? Well we don't want F to move down (we try to avoid parallel motion, this can be thought of as a sort of axiom) so F must either remain fixed (oblique motion) or go up (contrary motion). We also don't want voices to cross (while voice crossing is less taboo than parallel motion it is still often avoided, and our adherence to this restriction makes our problem much easier). Since we are working with a closed voice we have two (diatonic) choices: we can double the G or stay fixed on F. Doubling the G is boring but staying on F creates dissonance (B to F is a b5 and F to G is a M2). Luckily this dissonance is nicely resolved by the subsequent voicing and we win music! Yay! Notice something? This is just a constraint system! But rather than solving a SAT formula we are adding in some subjective data to consider as well. I like to phrase this as "In math, `1 + 2 + 3 = 6` while in music, `C + E + G = happy`". These calculations can also be done implicitly: say I'm taking a break over some jazz tune and I'm hitting a turn around, a ii-V7-i. I have a vague notion that I want to hit the "Billie Holiday special" (https://youtu.be/KUCyjDOlnPU?t=2m59s https://youtu.be/KUCyjDOlnPU?t=2m59s) at the end of my break (a melodic 5-2-1 with a slight scoop up to the 2 which falls back to the 1). I'm in the key of Bb and I want to play this around the tonic at the 8th fret of my D string. Right now I'm in the upper area of the neck and about to change to the ii chord which holds for two beats. I want to leave a pause over the V chord to make the tag more interesting, so I have exactly two beats to get from where I am to where I want to go, and I have to quickly 'calculate' this transition in real time. This is, of course, very natural since I've been playing for most of my life, and the 'calculation' is more of a feeling than an explicit mental exercise. But underneath the hood there is a shitload of precomputation that I did, practicing similar harmonic and melodic situations, honing my instincts, expanding my ear, studying theory, etc. I have just, in real time, solved a complicated constraint problem in front of a room full of people. And they are all cheering for me! See? People love math! I'm sure I don't have to argue the reverse direction on this site (namely that coding/engineering/mathematics/etc are all forms of art) so I'll omit this. All this is to say that the distinction between the artists and scientists is very blurry. I won't go so far as to argue that it doesn't exist since it clearly does. But when I try to figure out what that distinction is I find a number of qualitative differences but nothing quantitative.
- fiatjaf 8y agoWait until you see all other markets. Seriously, what's your experience out of "tech"? "tech" is the best signaling environment ever created.
- bradknowles 8y agoIn this context, the word “signaling” means ... what? You know, sometimes I wish HN would do a bit more editorializing/subtitling and less slavishly copying the damn stupidest subject lines that the original author thought would be cool....