Real ninjas don’t tell you they’re ninjas.
March 18, 2016 6:47 PM   Subscribe

 
Related: Stack Overflow’s developer survey analysis hurts women

And Stack Overflow's response, in which they promptly responded and fixed some of the more problematic statements.
posted by zachlipton at 6:51 PM on March 18, 2016 [15 favorites]


Mostly 20-29 years old, predominant technologies are JavaScript and related frameworks, most self-identify as "full stack web developer".

So like Hacker News in Q&A format, then?
posted by indubitable at 6:52 PM on March 18, 2016 [10 favorites]


My favorite part of this survey was seeing someone try and make fun of the responding cohort for having Notepad as the most common dev environment. (Hint: it's actually Notepad++, and if you can't read the difference then even waving your vim credentials around won't make you look smart).
posted by the agents of KAOS at 7:07 PM on March 18, 2016 [9 favorites]


Surely you mean emacs credentials.
posted by benzenedream at 7:21 PM on March 18, 2016 [12 favorites]


the agents of KAOS: "My favorite part of this survey was seeing someone try and make fun of the responding cohort for having Notepad as the most common dev environment."

Honestly, I'd be pretty impressed and/or horrified to see someone writing code in Notepad. Meanwhile, in the great emacs vs. vi wars, it seems that vi(m) has emerged victorious.
posted by mhum at 7:37 PM on March 18, 2016 [1 favorite]


I would say that the primary victor was "eh, whatever, use what feels right for you", and thank god for that.
posted by protocoach at 7:42 PM on March 18, 2016 [7 favorites]


I do SQL for my day job; I was honestly surprised to see how high it ranked. I mean, I know god and everybody wants a javascript web developer, but SQL? Hmm.

And I use notepad++ and SSMS, so I was pretty happy to see that ranking pretty high as well.

I guess no matter how pretty the front end is, you're still going to need to get at the data.
posted by Mooski at 7:42 PM on March 18, 2016 [4 favorites]


I liked the part where surveyed the site moderators and found they all had the -pedantic-errors and -wikipedian flags set and that they all thought that questions should be statically typed and precompiled.
posted by srboisvert at 7:52 PM on March 18, 2016 [4 favorites]


Executives are comfortable using more languages and frameworks than any other developer occupation.
Heeheeheeheeheeheehee...
posted by yaymukund at 8:02 PM on March 18, 2016 [17 favorites]


I liked the part where surveyed the site moderators and found they all had the -pedantic-errors and -wikipedian flags set and that they all thought that questions should be statically typed and precompiled.

Indeed, it's my experience that, throughout the Stack Exchange Network, an alarming proportion of users would rather rules-lawyer questions into closure rather than just answer them.

This kind of thing is especially targeted toward new users and those for whom English is not a great strength, which makes the site incredibly unwelcoming to anybody who doesn't immediately conform to house style. I certainly get that asking questions in all caps is annoying, but there are ways to deal with that situation without putting people down.

Personally, I'd love to see the reputation system somehow used to gamify better community-minded behavior. Is there a way you could somehow gain rep for welcoming and helping a new user? How about extra points for cleaning up and salvaging a poor-quality question instead of closing it? It might be hard to design and open to misuse, but the nitpicking and rules-lawyering is very much offputting, and it's most offputting to the people who need these kinds of resources the most.
posted by zachlipton at 8:07 PM on March 18, 2016 [25 favorites]


JavaScript's doing really well there.

Both pleased and a little surprised by this. Pleased because it's the language I work in the most and I like to see it do well, surprised because though it's really taken off lately of lately those are some crazy high numbers.

A little worried too because where there's a boom there's a bust.
posted by Artw at 8:09 PM on March 18, 2016 [1 favorite]


I do SQL for my day job; I was honestly surprised to see how high it ranked. I mean, I know god and everybody wants a javascript web developer, but SQL? Hmm.

For a lot of developers, "I know how to write a basic JOIN statement but have not the faintest clue about how to optimize a query or any of the million pitfalls of the obvious solutions that occur to me" is self-interpreted as "I have experience with SQL". For whatever reason, it's always the skill that people seem to maximally over-estimate how much they know anything about -- and I say that as someone who is honestly not super awesome at SQL, and who is happy to collaborate with actual experts when needing to accomplish really complex shit in it.
posted by tocts at 8:23 PM on March 18, 2016 [22 favorites]


Meanwhile, in the great emacs vs. vi wars, it seems that vi(m) has emerged victorious.

My gut feeling is that emacs people mostly migrated to full IDEs, and new people who would be emacs people start with IDEs and stay there.

It might be my gut feeling because the former describes me. I can't imagine developing against a decently sized code base without an IDE (which isn't to say people who do are wrong in some way).
posted by flaterik at 8:29 PM on March 18, 2016


Hold up. The most popular back end language is javascript?

I feel like a lot people are defining front and back end differently than I do.
posted by flaterik at 8:32 PM on March 18, 2016 [3 favorites]


I've been using emacs for over 20 years and have no desire to migrate to an IDE (tried it a few times, and actually Visual Studio was nice when I was doing Windows dev which was the only time I seriously used an IDE, but otherwise I haven't seen much point --- I can do all that in emacs :) )

I know plenty of devs my age using emacs, but not many that are early in the careers.
posted by thefoxgod at 8:35 PM on March 18, 2016 [1 favorite]


I like the part where for the first time in eight years I'm back to making big city bucks and I don't have to use this survey as an argument for an equitable salary.
posted by furtive at 8:35 PM on March 18, 2016 [1 favorite]


I feel like a lot people are defining front and back end differently than I do.

Back-end: server-side code. Think Express, Sails, Meteor, Hapi.
posted by protocoach at 8:38 PM on March 18, 2016 [2 favorites]


Node is super fun, I thoroughly recommend giving it a go. Most fun I've had coding for ages.
posted by Artw at 8:42 PM on March 18, 2016 [5 favorites]


Probably it will be talking to some kind of API written in Java or whatevs, but mostly you don't have to care about that.
posted by Artw at 8:43 PM on March 18, 2016


back in my day, we compiled from the command line like God intended
posted by trunk muffins at 8:53 PM on March 18, 2016 [7 favorites]


Anybody notice that enterprise apps were largely missing from those surveys? Was that just not an option?
posted by panama joe at 9:04 PM on March 18, 2016


JavaScript's doing really well there...where there's a boom there's a bust

JavaScript is a great language. TBH, these full-stack kids aren't writing JavaScript so much as taping together jQuery, Dojo, and React invocations.

But the reason *why* the frameworks are doing well? Generally, I see objects written with entirely public state. And lots of tight-coupling across boundaries. And the typing, well, you know. And being acted on by 1000s of lines of procedural dreck.

Just think, for every line of greenfield code, there's gonna be about million years of legacy maintenance. So there's that.
posted by j_curiouser at 9:05 PM on March 18, 2016 [1 favorite]


Maybe everyone working on them died from suck?

I mean, fair play, it's a way to make a living, but my god is anything "enterprise" a living death.
posted by Artw at 9:06 PM on March 18, 2016 [1 favorite]


Typed code is for old people. Live on the edge man, woohoo!
posted by Artw at 9:07 PM on March 18, 2016 [4 favorites]


> rules-lawyer questions into closure rather than just answer them.

I was a semi-involved SE question-answerer and previously a semi-involved wikipedian. It is my opinion that wikipedia has a bit too high of quality thresholds (ie lots of subculturally noteworthy subjects being deleted due to lack of mainstream press) while SE has much much much too low quality thresholds.

I definitely understand that the experience of a user who "just wants to know the answer" and finds their question on SE deleted will be upset or feel excluded. But question-answerers are drowning in a sea of shit. It's much much much much much much easier to ask a bad/incomplete/internally inconsistent/unformatted question than it is to produce answers which will be useful to both the asker and others.

The correct answer to bad questions, imho, is to nuke them ASAP. Let the asker try again, up to a reasonable point, but the burden must be on the people who are asking for help, especially since they outnumber the answerers 1000:1.

Were I in control of SE, at least for stack overflow, users with (say) >5K rep would be able to immediately and unilaterally nuke a question. 5 close votes is just a way of keeping shitty things around.
posted by beerbajay at 9:08 PM on March 18, 2016 [3 favorites]


(Also once everything is in packages and modules and microservuces and whatnot making a gigantic monolith to last the ages starts seeming a lot less important.)
posted by Artw at 9:09 PM on March 18, 2016


Meh. I still like the monolith. But I am also grumpy from months of working on a poorly designed pseudo-microservice architecture for an enterprise app with limited traffic that could have done fine with a basic Rails/Django app.
posted by protocoach at 9:12 PM on March 18, 2016


Microservices are the new big data: plenty of organizations far too small to merit the approach are convinced that it will solve all their problems, when in fact everything they need to do could be done on a mid-range laptop with headroom to spare.
posted by invitapriore at 9:15 PM on March 18, 2016 [8 favorites]


I'm curious about:
How many men identified as designers?
Why were so many designers were participating on Stack Overflow and responding to the survey?
What answers did the designers put for the rest of the questions?
What kind of designers are they talking about? I'm going to guess UX designers?
Why is it that the "Design" answer only shows up when talking about women and "Who is looking for a job?"
I am a woman UX designer and I have gone on Stack Overflow to ask questions to get some stuff done that I have had to get done so to me this is kind of like a TV news reporter going "Reports are coming in that a mysterious creature called "Design-er" has been spotted in the Pacific Northwest... no details are available at this time... the public is advised to shelter in place" and they have a blurry picture of me on the screen.
posted by bleep at 9:17 PM on March 18, 2016 [17 favorites]


Although maybe even the microservice cargo cult craze is getting long in the tooth, with the bleeding edge fetishists moving on to container orchestration as their career-making incantation du jour.
posted by invitapriore at 9:20 PM on March 18, 2016 [2 favorites]


I'm also curious about correlating responses who identified as women with what they described as challenges on the job ("Trying to be nice") and being able to learn on the job.
posted by bleep at 9:26 PM on March 18, 2016


Well, containers are pretty great for microservuces TBH.
posted by Artw at 9:38 PM on March 18, 2016


back in my day, we compiled from the command line like God intended

Some years ago I got sick and tired of the IDE screwing up the build so I set out to create a powerful Makefile to solve all my problems, and it did, but I had to use four(4) dollar signs - $$$$ - all over the place, and I ain't know what God thinks about that.
posted by save alive nothing that breatheth at 10:00 PM on March 18, 2016 [5 favorites]


Sounds like a job for autotools, though that be the Devil's domain.
posted by invitapriore at 11:07 PM on March 18, 2016


> > Although maybe even the microservice cargo cult craze is getting long in the tooth, with the bleeding edge fetishists moving on to container orchestration as their career-making incantation du jour.

> Well, containers are pretty great for microservuces TBH.

obligatory

My other contribution to the microservices semi derail is that I feel like transitioning from monolith to microservices transition is not unlike cultivating a beard or a new haircut. You start with curiosity and a sense that this might be a good idea. There's an intermediate period where it's super awkward and seem like the worst idea in the world. And then you stick with it, and it becomes great and normal, and now everybody would be shocked and disoriented if you cut it all off.

Except sometimes that awkward period means your app fails or just dies stillborn.
posted by bl1nk at 11:15 PM on March 18, 2016 [9 favorites]


The new toolset wars make vi/emacs seem quaint. Grunt or gulp? Sass or LESS? I know, let's do bower and node and bourbon and Compass and CoffeeScript and...

Sorry, I have two days of fucking around with dev environments before I can make a webpage. What do you want it to say again?
posted by fifteen schnitzengruben is my limit at 11:17 PM on March 18, 2016 [9 favorites]


Except sometimes that awkward period means your app fails or just dies stillborn.

That's kind of my point...if this is a real risk, you're not in the position to be making the transition.
posted by invitapriore at 11:57 PM on March 18, 2016


I vi only when made to. That being said, it's not so bad for config stuff. I've tried both intellij and eclipse- both suck donkey balls but eclipse has better support. I am a woman, and most definitely not a designer.

When I read this, I hear that Stack Overflow doesn’t believe that I exist.


I don't give a F*&*(&*&* that SO doesn't think I exist. I care that the people who sign my paycheck get my name right.
posted by LuckyMonkey21 at 12:11 AM on March 19, 2016 [2 favorites]


Back-end: server-side code. Think Express, Sails, Meteor, Hapi.

Wow, I've never heard of ANY of those. And I am a back end developer. I write almost exclusively in Scala, and see no reason to change that at the moment, but I should probably become aware of what they are just so I don't ossify too quickly.

Node is super fun, I thoroughly recommend giving it a go. Most fun I've had coding for ages.

You know the noping that happens whenever there's a spider thread? This is my version of that. Every time I interact with javascript I want to run screaming back into my strongly typed far back end cave.

I'm glad you enjoy it though! The fun is how I feel about data structure manipulation in scala.
I understand that I am weird.

Probably it will be talking to some kind of API written in Java or whatevs, but mostly you don't have to care about that.

I am (very happily) in a niche, but I'm the sort that writes the APIs for everyone else in the company to use. I do recognize that my view is very narrow and I appreciate hearing how javascript makes sense for others as a back end language!

I can do all that in emacs

Huh. Admittedly I haven't used emacs to develop anything other than extremely basic html since college (year <= 2001) but even the "not nearly as good as visual studio" IDEA does stuff I've never seen emacs do (which doesn't mean I think it can't do it, it just never occurred to me that it could) - Go-to-definition, go-to-implementation/declaration for interface members, auto-complete, auto-decompile, rules inspections and automatically applied fixes, etc etc etc. I knew how to play towers of hanoi on emacs, but not any of that stuff.
posted by flaterik at 1:12 AM on March 19, 2016 [1 favorite]


Related: Stack Overflow’s developer survey analysis hurts women

"Industry representation for 2016 according to NCWIT is more like 25%."


IMO this number should be treated as an upper bound, not trotted out as an average. The usual citation for this is a survey of 4 year degree holders, but here they've used BLS data for computer and mathematical occupations, which lumps in actuaries, statisticians and operations research analysts in, which are much closer to gender parity. Even within what we generally consider industry positions relevant to stack overflow's community, there's substantial variation. If you assume 'web developers' are frontend engineers and 'Software developers, applications and systems software' are backend engineers, thats 17 vs 34 percent -- nearly double! As far as I know, the BLS doesn't have a 'project manager' occupation. Which might explain how 'computer systems analyst' is so high on gender parity, because, at least based on personal experience, project management is where organizations place their women in IT.

By bringing this up, I don't mean I deny women in IT exist. I simply contend that there's more work left to be done than that number would have us believe. Worse, when you choose to wield the highest number you can find to shame others, you not only risk the people who most need to hear you dismissing your argument as cherry picking, you also risk drawing the wrong conclusions and make the opposite recommendations from what a more reasonable pick might be, and actually harm to the cause being advocated for. Fortunately SO is so far off the better average that this particular risk is low.

So what can SO do to make itself more inviting to women? It could probably hire a few more women to do something other than sales or recruiting. Of course, they probably won't be able to use Stack Overflow Careers to meet that objective.
posted by pwnguin at 2:06 AM on March 19, 2016 [1 favorite]


The new toolset wars make vi/emacs seem quaint. Grunt or gulp? Sass or LESS? I know, let's do bower and node and bourbon and Compass and CoffeeScript and...

A lot of the churn seems to have settled down in JavaScriptland recently - NPM has won out over grunt and gulp, SAAS/SCSS has won out over LESS, and CoffeeScript and TypeScript seem to be losing their shine compared to ES6.
posted by Artw at 4:27 AM on March 19, 2016


I agree with what you wrote except "NPM has won out over grunt and gulp". I've not seen that anywhere.

CoffeeScript is interesting because I remember devs going bananas about it when it was released. Companies are still hiring people with CS experience in London - I suspect because they made completely the wrong decision and wrote all their code with it and are now discovering how much technical debt they've brought on themselves. CS is a black hole and one of the reasons I steered clear of it. IIRC one of the main reasons Discourse reverted their OS CS code base to vanilla JS was due to the smaller number of developers adding pull requests to the repo.
posted by urbanwhaleshark at 4:51 AM on March 19, 2016


WebAssembly is around the corner. Brush off your parens, s-expressions seem to be prefered for text representation prototypes for the binary format. Compiling C/C++ to get something that's readable only in a Lisp? Things are going to get weird and much more diverse in terms of languages and tools for the web.
posted by Mister Cheese at 5:21 AM on March 19, 2016




Yeah, if anything's going to kill Javascript at this point, it's going to be WebAssembly, not because people will be writing WebAssembly, but because it's going to become an efficient enough compile target for most applications that you can just write your frontend logic in whatever language you want and compile it down to WebAssembly.
posted by firechicago at 5:47 AM on March 19, 2016


My favorite development environment for MS-DOS was Turbo Pascal, with assembler for the low level stuff. For windows it was Delphi, with SQL type stuff for databases. For the web, I wrote things in Notepad, then Notepad++, with whatever active server pages / sql stuff was required.

So, I want to write an app that runs in a browser, and can save files to the local system, or a server somewhere... what do I use now?
posted by MikeWarot at 6:23 AM on March 19, 2016


Just think, for every line of greenfield code, there's gonna be about million years of legacy maintenance. So there's that.

...that maintenance, I hope, starts with burning their code in a fire. Well, assuming that you can't unravel any of the business logic from their convoluted mess. Apparently my former co-workers have thrown out my carefully assembled Java-based back-end with a complete re-write in C# - with added functionality, which is now due in about 4 months - and it took about 9 months to build the existing service. So... those maintenance tasks can sometimes be performed by less-than-stellar software engineers.

TBH, these full-stack kids aren't writing JavaScript so much as taping together jQuery, Dojo, and React invocations.

I am fairly certain that I would throw out any resume that used the term 'full-stack' as it's just a quick way of saying "I write terrible JavaScript for front- and back-end systems", although I also assume anyone who uses that phrase un-ironically is a pretentious ass.

The mapgie developers have a habit of making a mess of everything they touch. I have worked with some who think my Java-based web-services are antiquated, who don't understand my condescension towards Spring and Spring Boot. I'll be cleaning up their messes for decades. And Angular. ugh, the mess it generates on the user interface side (seriously, the generated HTML of a typical Angular app now looks far worse and is less accessible than that produced by JSF; if any of them knew what JSF was, they would be sad).

Ah Web Assembly - Brendan Eich, is, I assume, involved in some sort of multi-decade performance art piece or epic troll. I can't wait for people to try to port this back to the server side. Oh wait, someone has. Well, there's always a mid-life career switch. Maybe landscape architect; that doesn't involve writing software...
posted by combinatorial explosion at 7:16 AM on March 19, 2016 [3 favorites]



I am fairly certain that I would throw out any resume that used the term 'full-stack' as it's just a quick way of saying "I write terrible JavaScript for front- and back-end systems", although I also assume anyone who uses that phrase un-ironically is a pretentious ass.


I use that phrase unironically, because on multiple projects I have in fact been responsible for every level of the stack. Nice to know you think I'm a pretentious ass, I suppose.

(Also I've never written a line of back-end JavaScript.)
posted by asterix at 7:33 AM on March 19, 2016 [1 favorite]


> Yeah, if anything's going to kill Javascript at this point, it's going to be WebAssembly, not because people will be writing WebAssembly, but because it's going to become an efficient enough compile target for most applications that you can just write your frontend logic in whatever language you want and compile it down to WebAssembly.

I don't see that happening.

We've had a couple eras of frameworks that compile down to Javascript. Back in the day, when Java was something like the only real language of enterprise (read: A generation of developers who were in college when Java was new had finally been in the profession for long enough to be the architects now), the only Right Way To Do Browser Apps was to treat backend code and frontend code as components of the same stack, transpiling the front-end down on the fly. The best of that breed might've been GWT, a genetic hybrid of a train wreck and pair of clown shoes. Even Google (the "G" in GWT) has literally disowned it, cast it off to a GitHub repository and announced to the remaining true believers, "You want it? It's yours."

In all cases the executable is unmaintainable, because backtracing browser idiosyncracies to an isolated task within Javascript is hard enough, but when that task is the product of a compiled abstraction, good fucking luck with that. And somebody still has to write the raw HTML and CSS and since those are the things backend developers save for last because it's the part the most dread doing, it's badness that inherently fulfills the disdain cast on it.

Currently there's Typescript, which transpiles down to Javascript, and has been around for a few years, and is a pretty great language if you hate Javascript with the intensity of a thousand supernovas but you are under orders to touch the front end. It must be cool because Angular 2.0 is being written in it and the team strongly recommends its developer community also adopt it, since it can transpile into whichever level of scripting that your development version of Chrome can barely choke on at the moment. Otherwise it is mostly a warmup for the eventuality of ECMANext, through which the Javafication of Javascript will some day be fulfilled, application logic will reside fully on the front end, relieving the backend servers of any effort greater than security and data management, and the Eschaton will be Immanentized.

Or, basically, the web world will continue plodding apace, with an ever-growing hierarchical and technical gap between enterprise, small-corporate, and cottage-industry web development.
posted by ardgedee at 7:42 AM on March 19, 2016 [6 favorites]


GWT, a genetic hybrid of a train wreck and pair of clown shoes.

Yeah, that thing is garbage.

therwise it is mostly a warmup for the eventuality of ECMANext, through which the Javafication of Javascript will some day be fulfilled, application logic will reside fully on the front end, relieving the backend servers of any effort greater than security and data management, and the Eschaton

Mainly what I'm seeing is the middle tier getting thinner, becoming mostly a data pass-through, the front end becoming a much more capable environment for UI and more and more business logic living up in the services, which is arguably where it should be.
posted by Artw at 7:47 AM on March 19, 2016 [1 favorite]


State of the Art JavaScript in 2016

Thanks, that was informative to me. I have to admit that this proliferation of perkily named frameworks seems ominously reminiscent of Enterprise Java......."convention over configuration" and DSLs are swell until you need to use a dozen different ones to make a fart app
posted by thelonius at 8:41 AM on March 19, 2016 [2 favorites]


Wow. So if I wanted to pick up JavaScript today in 2016, is Crockford's book still a good place to start, or do I need to wade into framework buzzword hell?
posted by indubitable at 8:53 AM on March 19, 2016


I would say that if you get a good grounding in JavaScript you're going to be in a way better position to deal with Framework hell than you would just wading in - in fact you might even decide you don't even need a framework.
posted by Artw at 9:00 AM on March 19, 2016 [4 favorites]


Personally I would start with Eloquent JavaScript to get a good understanding of ES2015 first, and perhaps read some of Eric Elliott's posts. Then I'd head to Axel Rauchmayer's Understanding ES6 for good introduction to the new language features. His blog is also very interesting but can be quite technical.

There's a bunch of other free reading material on this site but their quality will vary.
posted by urbanwhaleshark at 9:04 AM on March 19, 2016 [10 favorites]


do I need to wade into framework buzzword hell?

Start with the framework that supersedes them all.
posted by flabdablet at 9:28 AM on March 19, 2016 [6 favorites]


I have in fact been responsible for every level of the stack.

By every level do I understand that in addition to designing the graphical color scheme of the web page you also wrote socket code in native C, tweaked the networking drivers, optimized a database, and added a bit of assembly to the kernel for some optimization?

I know I barely grasp the amazingly sophisticated layers of software on any of the systems, just walking through the details of the execution a single "ls" command (unix) is mind boggling. The idea that "full stack" means a bit of javascript running in the browser interpreter that makes (a mostly hidden/abstracted) network connection to a simple program on a server is just two elements of many layers of "the stack".

(sorry not trying to attack you personally but "full" stack makes me a bit wacky sometimes)
posted by sammyo at 9:30 AM on March 19, 2016 [4 favorites]


in fact you might even decide you don't even need a framework.

I'm not deep into any framework and some of the rather arbitrary (but almost religious) conventions can be annoying but I do gotta say that skipping the direct coding XMLHttpRequest and setTimeout is really a pleasure.
posted by sammyo at 9:36 AM on March 19, 2016


> So if I wanted to pick up JavaScript today in 2016, is Crockford's book still a good place to start

Crockford is kind of the Strunk and White of Javascript, in more than one sense. First, this means it's not a beginner's reader, it's a grammar guide. You can (kind of) learn English from reading Strunk and White, but you're better off starting with texts intended for the purpose. Second, it dictates a relatively restrictive coding style. This is good, because if you don't have some uniformity in your work the result is a shambolic, hard-to-read and hard-to-maintain mess. But it's also bad because there are other ways to write uniform, rigorous code that happen to contradict Crockford. And third, it's an old book now. The Javascript language is on the brink of adding in all kinds of features and parameters that turns many of The Bad Parts into Good Parts. For example, ECMA 6 will bring let to selectively impose block scoping on variables; you won't have to worry about the iterator in your for loop being unavoidably hoisted to the top of the function any more.

Mind, by saying this, I'm still pretty much in Crockford's camp; covering all options for all things would have muddled his fundamental message of keeping things simple and straightforward. But, like Strunk & White enthusiasts might assert that there may be no allowance for ending a sentence in a preposition, a Crockford enthusiast might always prefer casting anonymous functions to variables (var bar = function() {}) rather than naming them (function bar() {};). Except that anonymous functions makes code harder to trace in debugger (foo.bar = bar;), a consideration that wasn't overly relevant when he was writing his book in 2007-08, when we had the Firebug plugin in Firefox and precious little else for inspecting our work.

So, as a non-answer to your question: It's an excellent book, and its influence is still felt across a zillion wannabe rockstar frameworks, but it shouldn't be your primary reference.
posted by ardgedee at 9:58 AM on March 19, 2016 [3 favorites]


Eloquent JavaScript might be the more fitting book.
posted by Artw at 10:48 AM on March 19, 2016 [1 favorite]


A bunch of free books.
posted by Artw at 10:50 AM on March 19, 2016 [1 favorite]


I would also recommend the Air BnB JavaScript Style Guide.
posted by Artw at 10:52 AM on March 19, 2016 [3 favorites]


(sorry not trying to attack you personally but "full" stack makes me a bit wacky sometimes)

Maybe you should take that wacky feeling and log off for a minute instead of just steaming ahead with the personal attack based on your own prescriptivist angst?
posted by the agents of KAOS at 12:18 PM on March 19, 2016 [2 favorites]


sorry, really was not personal.
posted by sammyo at 12:52 PM on March 19, 2016


By every level do I understand that in addition to designing the graphical color scheme of the web page you also wrote socket code in native C, tweaked the networking drivers, optimized a database, and added a bit of assembly to the kernel for some optimization?

Well, no, I'm not a moron, so I didn't write the socket code myself, but I've installed and administered the base OS; chosen, deployed, and adminstered the webserver; designed or redesigned the DB schema; installed and administered the DB itself; written all of the back-end code; and designed and implemented the front end. In addition to working as the product manager.

But you're right, I shouldn't call myself a full-stack developer.
posted by asterix at 1:15 PM on March 19, 2016 [1 favorite]


I actually do think it's an obnoxious phrase but use on a resume is driven by people looking for a "full-stack developer."

(Actually I did start out programming with low-level C and a bit of ASM, and now I'm writing JS. But obviously I would not presume to be an expert on everything or anything in between.)
posted by atoxyl at 1:28 PM on March 19, 2016


What's obnoxious about it?
posted by asterix at 1:38 PM on March 19, 2016


If hiring managers just like saying "full-stack developer" because it gives them that "I haven't wasted my life , I work with technology" feeling, then, as far as I care, the spice must flow, and, well, I'm a "full-stack developer" now. Who wants to endorse me on LinkedIn?

Obnoxious like that?
posted by thelonius at 2:17 PM on March 19, 2016 [2 favorites]


Crockford is still The Man, IMHO. cf this video. All the videos are terrific. Too bad about yui never really getting off the ground.
posted by j_curiouser at 2:25 PM on March 19, 2016


Two of my favourite Crockford quotes:

On the complaint that his change to JSLint broke many user's code:
"Your sadly pathetic bleatings are harshing my mellow."
On JSHint:
"There are many stupid people in this world, and now there is a tool for them."
posted by urbanwhaleshark at 2:50 PM on March 19, 2016


Amused to see that the only place that Perl ranks beyond "Most Feared" is in Highest Earnings. I guess perl folks are old, and need to maintain the stuff behind the back-ends.

But whoa, CoffeeScript. That must be the fastest language crash ever, from vogue to zero in a couple of years.
posted by scruss at 3:09 PM on March 19, 2016 [1 favorite]


Interesting that job satisfaction by industry is highest in Gaming. I've been nudging my nephew away from thinking about a career as a video game programmer, since I'm familiar with the "EA widow" and "death march" horror stories, but maybe I should reconsider.
posted by clawsoon at 5:53 PM on March 19, 2016


Artw: State of the Art JavaScript in 2016

I was curious, so here's the best-guess introduction dates for the article best practices:
react - 2011
redux - June 2015
babel - 2014
eslint - June 2013
npm - 2011
webpack - April 2013
mocha - October 2011
lodash - late 2009
sass - 2006
graphql - 2012
electron - 2013

I have socks older than all of these. (SmartWools for the sass. Don't judge me.)

The ecosystems surrounding them (code, not socks) hasn't had a chance to mature, and it will not mature, since that's boring, tedious, unglamorous, difficult work, when you can just hop to the next miracle cure.

Look, at some point, we're going to have to admit that we're not making things better, we're just making trade-offs of where we want the inevitable complexity to fall. And the price that we're paying by hopping tech every year is that these things are sitting in production, with gods-alone-know how many latent bugs triggering every day, and a generation of maintenance coders coming up that will know where we live.
posted by underflow at 6:28 PM on March 19, 2016 [1 favorite]


For me personally, "full stack developer" is obnoxious because when I've seen it used, it's either as a totally meaningless buzzword in a job description written by someone who has no idea what skills the position they're hiring needs, or alternately it is used as a enormous warning flag that's screaming "WE WOULD LIKE YOU TO DO 2.5-3 JOBS WORTH OF WORK, BUT ARE ONLY PREPARED TO PAY 1 SALARY".

That could just be me, though.
posted by tocts at 6:47 PM on March 19, 2016 [4 favorites]


This kind of argument is why I bill myself as a "Full Guru Ninja."
posted by davejh at 7:31 PM on March 19, 2016 [5 favorites]


“Full-stack” doesn’t bother me as much. I don’t use the term when I hire, but I interpret it in reference to the early phases of a company or project, where it’s not yet obvious what kind of development is required and so a generalist person makes sense. I have found that self-described full-stack developers tend to be Javascript-biased, and often miss opportunities to skip a lot of front-end effort and debugging through smarter use of back-end optimizations.
posted by migurski at 7:48 PM on March 19, 2016


I've always interpreted "full stack developer" to mean "we believe the cloud can replace a sysadmin team, if we can just find a developer who can write nginx configs."
posted by pwnguin at 9:25 PM on March 19, 2016 [2 favorites]


I'm going to stop using "Full Stack" in relation to my gigs, since I'm teh olds, and for me "Full Stack" means starting from the bare metal, or spinning up a VPS instance, with operating system and basic services, and a profile that set -o vi, configuring a database for the backend, and then reverse proxies, webservers, and then the application stack for the backend, and then the client side code.

I don't want to cause confusion with the 'app client AND backend' == full stack advocates.

I'll go back to "I'm a systems-programmer who is also a senior sysadmin and does application development and support, too." ( I'm used to filling a set of roles, whether I like it or not. )
posted by mikelieman at 11:16 PM on March 19, 2016


There are only two problems with "Full stack":
1. It can mean anything. Per the StackOverflow survey, how many of that 28% of respondents who are "full stack" have only ever edited HTML, CSS, jQuery, WordPress templates and added a user entry to a MySQL config? Because that's certainly the range of skills I've seen in some "full stack" developer's resumes.
2. It's a popular and buzzwordy term that bubbled upward from the tech community, so recruiters and nontechnical managers hang on to it with the assumption it means whatever particular skillset that fulfills their wishes, which exacerbates point one.
posted by ardgedee at 6:20 AM on March 20, 2016 [1 favorite]


Why do Windows Phone developers in particular identify as ninjas? Was this the result of some Ballmeresque in-house marketing campaign?
posted by ardgedee at 9:07 AM on March 20, 2016


Maybe it's because they're invisible.
posted by Artw at 9:09 AM on March 20, 2016 [8 favorites]


Amused to see that the only place that Perl ranks beyond "Most Feared" is in Highest Earnings. I guess perl folks are old, and need to maintain the stuff behind the back-ends.

Perl maintainer reporting in! I'm only in my 30s, but all the devs we have of my generation seem to have come onto the scene in a ruby/php era and now lean heavily on js. Meanwhile our perl backend is a good decade old and keeps on trucking. I'll be leading an effort to replace it with something more modern later this year, but I'll be sad to set down my perl+regex magic wand.
posted by boubelium at 12:54 PM on March 20, 2016


If you want a modern framework, without giving up Perl Goodness, look at Mojolicious.
posted by mikelieman at 1:15 PM on March 20, 2016


I'll be leading an effort to replace it with something more modern later this year

Irritate your local hipsters by choosing Perl 6.
posted by flabdablet at 11:17 PM on March 20, 2016 [1 favorite]


while SE has much much much too low quality thresholds.

I definitely understand that the experience of a user who "just wants to know the answer" and finds their question on SE deleted will be upset or feel excluded. But question-answerers are drowning in a sea of shit. It's much much much much much much easier to ask a bad/incomplete/internally inconsistent/unformatted question than it is to produce answers which will be useful to both the asker and others.


Stack Overflow sort of has both problems: they have a lot of low-value dreck they need to clean up, but they also over-police and nuke popular questions with good answers and demonstrated value. It's not unusual for me to find an old questions that tell me exactly what I wanted to know and have tons of favorites, but were closed by the SO moderators as "not constructive."
posted by cosmic.osmo at 8:37 AM on March 21, 2016 [1 favorite]


Irritate your local hipsters by choosing Perl 6.

I think just showing them that Perl 6 butterfly logo would be enough to make everyone quit on the spot.
posted by boubelium at 6:48 PM on March 21, 2016


If you ever need a clear example of how badly it goes when an expert in one field assumes they can be an expert in another, just go look at any logo designed by/for any open source project.
posted by tocts at 4:51 AM on March 23, 2016 [1 favorite]


go look at any logo designed by/for any open source project.

Lets review my laptop stickers:

Inkscape
Firefox
Ubuntu
LibreOffice
Docker
HTML5
Jenkins
Fedora
Tux penguin

There's very little stopping designers from contributing a logo design to a project. The bigger problem is the marketing landscape in which they reside, and their naming. GIMP. GNUCash. CentOS. OSGEO. They'd probably be happy to accept an expert's logo design, but not sane expert would limit their expertise to just the logo.

But really, I just wish I could find the logo design tool joke site about containers ecosystems or big data or something that generated a couple of random polygon tiles and paint them with a couple of colors that mesh well.
posted by pwnguin at 7:17 PM on March 24, 2016


« Older Get ready, on Monday   |   From Assult to Ziel Newer »


This thread has been archived and is closed to new comments