How can we as a development community rationally expect to grow the open source ecosystem and encourage people with this type of snobbery?
There's one lesson that I'm personally taking from this, after unsolicited ridicule, one sincere apology, one bullshit non-apology, and one arrogant I have nothing to apologize for! If I build a small thing to scratch my own itch (which I often do) I'm going to think twice about sharing it with the world at large. Or, more succinctly, I've become yet more of a misanthrope.
Let's face it, there seems to be nothing anyone can share on the Internet without someone else demonstrating John Gabriel's Greater Internet Fuckwad Theory [1]. I'm not saying everyone should always just let it slide, but try not to let it get to you, either.
I thought about that site, which is terrible. It feels a little different in that it seems to be fueled by insecure pro photogs who want to instill fear of hiring second-rate hacks.
Maybe I should be, but I am generally unafraid of sharing my photos.
I've suffered pretty severe depression and anxiety for most of my adult life. While the idea that we should all just grow a thicker skin and 'just deal with it' is both understandable and practical given the nature of the internet - it just wont happen for me. I know myself well enough to have recognized that even a tiny drop of vitriol could have me questioning my every decision and shatter my self confidence for days or even weeks. So I simply write code and keep it to myself, and I'm sure there are plenty of others like me.
The idea of open sourcing our work is truly admirable however there are some of us out there who just can't stand the hate and Alpha-nerd jockeying, so we opt out. I don't think the world is missing out on much by my own lack of contribution but who knows how many truly brilliant yet fragile minds are self selecting out of the open source community because they just cannot cope?
please email tarballs to rektide+anongit@voodoowarez.com if you have code you have no aspirations for but wouldn't mind kicking out into the wild. i will eliminate author headers from the code and seed over p2p and make available. thank you for any sympathy you might have towards this request to let us syndicate your work.
I actually think that a strong emotional reaction to unsolicited ridicule by high-profile people is a typical human response, not a weakness that needs to be beaten out of people.
Regardless, my point is that I don't think I'm able to grow a thick enough skin to be indifferent in the face of such cruelty, so I'm not going to extend myself. Other people may feel differently, and that's great for them.
Actually, this makes me think... I don't think I've ever given feedback on an open source project.
Maybe I, as someone horrified by Heather Arthur's story, have some sort of ethical obligation to provide constructive and helpful feedback to people. I'm not a great programmer, but I've been at this for long enough to have some useful opinions.
Open invitation for my fellow HN community members: point me at a repo and I'll try to say something actually helpful.
You could do something similar (or those guys could do it) where you provide feedback on other people's repositories in exchange for feedback on your repository. Sort of a community code review process.
a wire protocol for named context patches: you'd do better not writing your own wire serialization format, and instead adopting an existing transport: websockets, stomp, and MQTT all strike me as sufficiently stupid simple & end to end enough, or anything from thrift to zmq to flume for transport would be slightly more inter-linkable than your "length/json-payload" ad-hocracy.
it's JS but you might enjoy node-webworker, which uses websockets to implement inter-Node.js message passing: your specific case is debugger being an outbound messaging port, emitting context programmatically.
she chose to read it. it's not like someone rubbed it in her face. well someone told her about it.
just like she chose to read the good things, she chose to read the bad things. SHE CHOSE.
people seem to ignore that little fact, instead they result to writing meaningless essays, on how to apply their opinion as a universal standard to life. nothx
ok, see you're entitled to your opinion. you think i'm an idiot, and I think you're an idiot. but that's kinda besides the point. the thing with opinions is that's a little bit like taking a dump. everyone takes one, but it kinda is a reflection of what's in your digestive system.
noone personally shoved it down her throat. it's new to me that you get personal messages for someone talking about your github repo somewhere.
the blame the victim talk is like saying getting personally assaulted is the same as someone getting his car destroyed after parking your car in front of central park in new york. sure you could argue that they did it solely, because they knew the person, but this is clearly not the case here.
I don't think you're an idiot, I just think that saying it is all her fault because she chose to read the horrible things that high-profile people were broadcasting about her work is not a very good analysis of the situation.
It doesn't take long to read a tweet, and you can't exactly un-read it if you find it to be deplorable.
Thinking about code in terms of "good" and "bad" is not very useful. Don't worry about what developers on the internet think about the quality of your code unless they offer specific suggestions in a constructive and instructive manner. If someone offers specific and thoughtful suggestions or criticism, learn everything you can from them.
Let me clear up the "basic decency" question for you; bad intentions should be "called out", skill level only needs to be commented on when someone is more less requiring that you to put with their skills. You should encourage people to higher skill levels only after they've asked for the help. Otherwise, they live in their world and if makes them happy, leave them there.
If someone is offering something to the world at large that you don't feel is a very skilled offering, you should shut the fuck up unless you want to seem like an asshole. The reason is both that they aren't hurting you in the least and that if you aren't interacting with them, your ability to judge their skills is going to be limited. Unless they're giving out poisoned candy or something, people who give should be congratulated.
If someone is somehow intentionally annoying, hurting, offending someone else, then it is entirely OK to tell them to stop. Bonuses for being clear and uninflammatory yourself, mandatory if you aren't an involved party.
Calling someone's writings "bullshit" is pretty much the same as calling someone's code "eye-bleeding" -> "your product is of such low value it's worthless"
Those that claim the genesis of this whole issue is offensive should take equal offense to the "bullshit" line.
I assume that "rubbish" or "bullshit" refer to what the other person said, so when you expand that paraphrase it turns out like this:
"What you said is rubbish. I don't agree with you and here is a list of reasons why."
Now, can you tell me what value there is in the "What you said is rubbish" part? Let's go one step further: what do you lose by omitting that part?
Mind, I'm just as sick as the next guy of the whole "we must never be negative", politically correct thought police that has been taking politeness to unrecognizable and unreasonable extremes. Sometimes there are good reasons to be aggressive or less than polite, but "sometimes" is not the same as "always" or "most of the time" or "as often as I feel like it".
Sure, there are many ways the OP could have phrased his response.
Personally, I don't think the approach use to attack someone else's point of view is that important, provided the attack is aimed at the message and not the messenger.
In this case I don't think the OP said anything about the messenger.
I agree with you: "rubbish" is the same as "bullshit". It's still saying "what you've said is worthless".
I don't have a problem with it, but it is the same semantics as what started this whole issue - though he does expand into a list of reasons (which isn't possible on twitter).
For what it's worth, I think most of the commentors are reading far too much into "this is an eye-bleeding script*.
I've seen people hurt by having what they've said called 'bullshit' by someone they respect; it's capable of emotional harm as well. That being said, let's not walk on eggshells.
This, a million times this. Criticizing other people's code is a good idea if you have been asked for input, or if the developer is encouraging the public at large to use their code. Otherwise, it's just unwarranted negativity which has the net effect of discouraging other members of the community from sharing code which might be useful to someone. I have plenty of code that I'm not proud of but would push to Github anyway for the sake of an extra backup/convenience.
No and yes. No, she did not ask anyone to post snarky comments on Twitter about her code. Yes, after said snarky comments were posted, she asked those posting the comments for constructive feedback. (I don't believe any of them actually gave her any constructive feedback, though.)
That is the weird thing about github though. On the one hand you have big important apps there such as Linux and Rails which have quality standards and where developers at large should take a look and make their voices known if they can find things that suck.
The argument I guess is, at what point does it become fair game for criticism?
OTOH it is also a place for your crappy bash scripts.
I've got plenty of hacky scripts that I would consider putting on github, just as a backup as much as anything else. I honestly wouldn't care what criticism they got, though criticism with accompanying pull requests would be vastly superior.
My main hesitation though would be if a prospective employer goes and looks through it and goes "oh, this guy's code sucks".
Which is why I put my shitty scripts in gist (in fact I am such a shitty programmer, I practically have an empty github public profile), I share them in my blog, and last week, I was actually horrified that someone used my shitty scripts and shitty methods that I outlined in my blog (http://blog.chewxy.com/2012/11/16/random-documents-from-couc...), I removed my gist.
I don't want people to use my shitty methods or shitty code, I just want somewhere to put my thoughts.
That doesn't preclude constructive criticism. I put my stuff on Github for review. Granted, I wouldn't like malicious comments but I sure as hell would like to know if I did something wrong.
> Why in the hell should I have to feel that every piece of code I put up there 'must' adhere to 'your' standards or anyone else's?
You don't have to feel that way if somebody points out your code has flaws. The issue in heathers case was (1) the code wasn't bad (2) the criticism was malicious.
Translation: before calling out "bad code" (with or without scare quotes), run a quick cost-benefit analysis of what might cost you to speak your mind vs chuckling to yourself or sharing in private with someone. So much for claiming the moral high ground.
In any case, the first three are most likely false in this case and the fourth is just silly. Do you appropriately, discretely and professionally inform the author of every tweet, blog, or page that is wrong on the internet?
I guess it all comes down to how you present it (and yes, I'm ignoring the "replace" issue for the moment). I honestly don't think everything under the sun should be made publicly available just because you can or because it's easy. The reason being primarily because these sorts of things tend to be copied and re-used all over the place. So, a quick hack on a project you don't care much about can end up in many other projects. This is amplified by whatever your clout is.
Having said that, a reasonable disclaimer about what your project really is more than assuages that concern for me. Or if it's small enough, rolling it up into a gist might be an option for proof-of-concept stuff.
This entire forum exists for the purpose of sharing fact and opinion alike. If you don't want people to share opinions (or is it just the ones that don't align with your world view?), fine, but you don't need to be an ass about it.
Although part of me wonders if this is a joke, given the parallels to the situation at hand. Primarily, you clearly don't think all comments should be made public and felt the need to unhelpfully criticize mine. If so, well-played.
Whether that makes the world worse is highly subjective. I don't believe things are objectively any more valuable just because they're public.
I have, however, seen a lot of bad patterns and code snippets copied and work their way into many codebases because one of the easiest ways to learn is to copy another source. I have seen people completely disown or neglect projects because it's "public", so what more do you want? I don't buy that these sorts of repositories are doing the world a favor and they increase the level of noise, helping drown out the good stuff.
But, hey, like I said if you add a pretty reasonable disclaimer to your README so the expectations are at least framed properly, I can get on board with that.
I think adding "Does this code represent a risk to others in some way" to that is also valid. Especially in the security realm, but even in day to day stuff. If code is going to cause other people headaches, help them avoid that.
Maybe I'm an outsider, maybe I came from a different background, but I don't see how calling out bad code instantly becomes a type of snobbery. The author to me is leaning towards constructive criticism of code, which isn't what we all need from time to time? I don't mind, call out all the bad projects or bad code in my github repo
Yes, the author came off as an Agile snob. Might be helpful to LivingSocial's plans (which lead nowhere BTW) but this attitude is toxic to the development community at large.
I see a lot of people saying you're going to keep personal projects to yourself (instead of putting them on GitHub or similar) because of this fracas.
Please don't. The Twitter snark isn't normal, it's an exceptional case. It wouldn't be on the front page of HN if that kind of behavior were the norm. And it's the jerks on Twitter who came out looking bad here, not the author of the code.
I really like how GitHub has encouraged people to err on the side of releasing their personal experiments. I was doing it myself in pre-GitHub days by publishing Darcs repo URLs on my website, but it didn't have the social aspect and Darcs never caught on like Git has. It's lovely to see the idea of "share all your code, by default" so validated as it is on GitHub.
Whether or not you release your code, assholes will still exist and they'll still find a way to be assholes. So don't let them ruin a good thing.
The Twitter snark isn't normal, it's an exceptional case.
No, this isn't true. It's completely normal. It's been normal since long before Twitter. In exactly the same way high school bullying is normal, this is most definitely (a) prevalent, and (b) a problem. But it won't change, because people tolerate it.
You want me to open up my personal projects? It's not going to happen. It won't happen because we live in an ecosystem where the top dog is the one who barks the loudest, not the one who's most productive. People pay attention to what other people say. And there is nothing anyone could say about personal projects except "Pretty cool" or "Damn, what a steaming pile". The first is nice, but I'll get by without it. The second serves only to lower me and my ideas. I don't want my capabilities (ideas) to be constrained by others' lack of imagination.
Exactly. And before GitHub. And before open source. And because haters will hate no matter what, we shouldn't let them stop us from sharing what we build and learn.
the second is ignorable, so you should just make it public.
I wish it were that easy. Other people'e negativity just... gets to you.
The only way I've found to deal with it is to run away from it until I have a project I truly feel will help the world (even in some small way). Then I'll happily face the negativity.
You can visit Twitter periodically for a week and see this happening everywhere, programming and dev hash tags included (heck, a lot of the trending topics on Twitter are hugely racist or sexist).
This is why I recently left Twitter; it's just a breeding ground for smartass one-liners in hopes of retweets rather than intelligent conversation. I don't buy the idea that "this is just the medium" because it's easier to be mean than it is to be nice. If you want to have an argument with someone, write it out somewhere else and tweet the link to them.
Even if you're only following prominent people in your industry, you see some really embarrassing back-and-forths. I didn't want to get myself involved in the ones dealing with my friends and people I enjoyed because I have no idea who I will run into throughout my career, so I deleted my account.
That might be, actually! I do make a habit of unfollowing anyone on social media who's consistently negative (esp. in unconstructive ways). I recommend it.
This is getting way off topic of the original project, but as an older (40) programmer, I've learned that even if code is objectively bad you generally shouldn't call it out unless you have the full context of how it got that way.
I write code every day, some of it is great, most of it is good, some of it is shit (working shit, but shit nonetheless). The reason some of it is shit varies: time constraints don't allow for the proper solution, working around a crappy abstraction that I can't control, etc, but if you decide to focus on some snippit of the shitty code I wrote and extrapolate that to assess my skill as a programmer I reserve the right to extrapolate that your experience doing real world programming is pretty limited, because otherwise you wouldn't be so naive.
exactly. I am in the same era as you and unfortunately haven't managed to hook facebook or google to hire me so my day consists of making the most out of the shit I am served each and every day. You know that 3 line shell script that accounts only needed to run once a year ? Yes that migrated into an 20,000 line perl module that HAS TO run every night without fail but nooooo do they want to (pay to) re-engineer it ? No. Because the customer would not benefit.
The most fun I have at work now is "try to get the most audacious python module through the firewall and then get it approved by the project manager as they have absolutely no clue about what I do".
Sorry kids but unless you make it (and make it big)... that's you in ten years time.
If I am honest, I have got over the "OMG what's it written in?" stage. If it works and if the (time saving per run * the times I need to run it ) > time it would take to write it myself, then .. that's a success. Then.. move onto the next issue to get some project tasks done, contract renewed, kids fed, mortgage paid etc etc etc.
I stopped worrying much about so-called bad code a long time ago. Reading eye-watering, mind-numbing code is practically a pre-requisite for working on any non-trivial enterprise system at a business of any reasonable size. In many ways, you come to enjoy the challenge of it. I've had to read code written in an almost obfuscated manner in languages I'd never previously worked with before. You get used to it. You learn to read and grok just about anything.
On the topic of massive Perl scripts, I once worked on implementing a system that was an unholy maze of Perl, Pro-C, Pro-COBOL, Oracle Forms, Java, and PL/SQL. It was the first time I'd ever had to read and write Perl and Pro-C. I even remember reading Pro-COBOL at one point to debug a problem. Good times.
Since the above is somewhat tongue-in-cheek, I'll clarify that I certainly think we should strive to write excellent code and constructively help each other to that end. We should probably be very slow to dispense judgement but quick to share carefully considered, contextually relevant advice. You really do need to understand the context under which something was written to make any useful statements about goodness or badness (which is still probably not that helpful a measure). Something that looks bad at first may be fantastic work considering the circumstances under which it was written.
I was very surprised by the quality of the code in the replace.js repo given the vitriol that surrounded it. I'm not a big contributor to open source, but I've recently made some modifications (improvements?) to a Haskell library I use and was planning to make a pull request soon. This event gave me pause. As someone who couldn't tell what was so eye-bleedingly bad about the replace.js code, I was nervous that I would endure a similar fate.
Likewise, I've been meaning to convert my local projects at some point and post them to one of the newfangled online git repos. I was going to use GitHub or Bitbucket to avoid saddling my crap on the git hosting I have available from the open source project I develop for, but now I'm not so sure GitHub is the best place for that.
I don't mind the code being publically-accessible as the price for free hosting but I have no interest in being hounded about my personal scratch code either.
Bitbucket offers unlimited private repos, so you can stash your personal stuff there without fear of roaming assholes. They only start charging once you have more than 5 contributors.
The way I see it, writing command-line utilities in Node is really no different than writing command-line utilities in Python. Both offer a nice scripting environment, and while Node is more web-oriented, there's still quite a bit of libraries out there to do stuff with, making it potentially perfectly suitable for writing an utility for doing X. Hell, I personally even consider it somewhat more attractive than Python in this regard because Node has no equivalent to the 2.X/3.X compatibility mess that Python has. (Python wins in having more "general purpose" libraries, though, making it potentially more suitable for not-directly-web-related-development in nature.)
And while this was mentioned a few times in the previous thread, it bears repeating again: There are quite a lot of people out there using Windows, which includes developers. Node is a first-class citizen on Windows, and grep, sed and friends won't be there out of the box for you. A properly done Node command-line utility is generally more cross-platform than a shell script using grep and sed would. And there's quite a bit of command-line utilities made with Node out there (most revolve around web development, such as build tools like grunt and things like CoffeeScript/TypeScript/etc compilers), so it's not like this one is unique in that regard either.
Heather Arthur day: On this special day we post useful code that we might otherwise be unwilling to post because of what other people might think of it. Because some people have the courage to do this anyway and when they do, it makes the world a better place.
If just a few people do this, they might be considered crazy and laughed at, but if all of us do it, why then we'd have a movement.
That's why you pick one particular incident and then use it as an anchor point for all the other bad incidents to refer to. This is how all other solidarity days work.
I agree, but the common problem there is you get people spouting all the "stop reinventing the wheel!", "looks like NIH syndrome" or "it has no tests so it's irresponsible to release" type lines. This sort of disdain is frequently done politely and seemingly accepted by the community at large even here on HN.
I see many comments from people saying that they are more hesitant about participating in open source after this. That they have been working on some code and will now think twice before they put it out in the open. It makes me sad.
Please don't let this deter you! I know how it feels. I was literally shaking when I put my first project on GitHub. Literally. The second time too. And the third. Still am. Still scared of making a fool of myself, but I know what a great learning experience it is and that it benefits my career, so I force myself to do it. Add to that the fact that it is a ton of fun, and every single star a project of mine gets (and the stars are few) makes me proud.
I write software because I enjoy it, not to advance my career. I enjoy interacting with real users of my software, solving their real problems. Contributing to open source is not enjoyable because many of the people you have to interact with are so obnoxious, so I rarely do it. Not everybody is trying to pimp their CV.
For example today I found a memory leak in a popular open source library. There's a good chance it is installed on the computer you are using right now. It never even occurred to me to submit a bug report or patch because when I have submitted patches to this project before one was completely ignored (somebody else fixed the issue 6 months later) and the second time I got flamed (that crash causing bug still exists as far as I know).
I have about half a dozen local copies of projects related to things I'm interested in that have various improvements or fixes that will probably never be submitted back to the project, and I don't think I'm unusual in that. Most of the issues are fairly obvious and tend to get fixed eventually anyway.
I haven't made any source code public, probably a lot for these reasons. I'm been thinking lately about working on getting a QA management tool open sourced. I believe that the community will be better off if we continue to participate together as a community rather than withholding because we're afraid of getting our feelings hurt.
I experienced when I first started out as a developer, my co-workers were just like this. They'd rip apart sites left and right, people's apps and anything else they could set their sites on. I was hazed on a regular basis for the code I was writing, simply because I was considered a "junior" developer.
It wasn't until after I left there I realized how incredibly myopic and arrogant these people really were. This was one of many lessons I had to learn. There is no one way to do anything in development. Sure there are certain things you should and shouldn't do - but one way to do everything? Hardly.
After I left said company I really gained more respect for how people write and maintain code. As such, I now just keep my eyes and ears open for best practices. Unless it's going to be constructive, I never hack on anybody else's code. I know the feeling of thinking you've done something wrong. When in fact, it might just be a different approach to reach the same conclusion.
I'd still like to know how these jerks even came across Heather's code in the first place. I suppose I should be grateful for obscurity. I even have a command-line utility written in C to count from 1 to 10. (Well it does a little more than that, but that's the general idea.) I'd hate to hear what they think of it. I'm not really a C coder so I'm sure it's fairly ugly, and I suppose they'd say it "shouldn't exist at all." In fact I've got all kinds of silly/pointless projects stashed up there--even a few that I'd say shouldn't exist. Heaven forbid I ever become famous enough for people to take a look! These guys seem to have all the maturity of kids egging someone's house. Who asked for their opinion anyway?
I use the standard Unix utility "seq" almost daily as part of shell one-liners. Lots of things are named with a sequential component. Sometimes iterating over those is easily done with a shell glob, but sometimes it's just simpler to do "for i in $(seq 1 8); do restart foo-$i; done".
It's very useful, but basically impossible to discover except by happening to see somebody else use it. So I really don't wonder that somebody would end up unknowingly reimplementing it.
I think this is a matter of poor critism. There is a strong suspicion that the code isn't all that useful. It ignores the tools that are available. Its great that the person wrote it, but there are certainly better options out there. Oh well.. good on them for releasing it. Its a learning experience.
On the otherhand I think this is stating to reveal the less than stellar aspect of open community based/social projects. Not everyone agrees with you, and/or has the same opinions as you. Also, its not all free love and drugs as it was promoted to be.
> I won’t claim to be great at this, but it’s something I spend time on trying to improve, even if it’s at the cost of learning some new language or framework. It’s an ongoing process, and this blog post is part of that process.
This basically means that he could have been one of the guys who called out the badness of the replace code and just took the opportunity to get some attention by posting about a hot topic.
I agree, the responses are much worse that was originally said. There's also the expectation that you'll suck it up and deal with it which betrays the purpose for reacting against what you said in the first place.
Oh, you missed the tweet, in the screenshot, where he wishes you get cancer and that he calls you a cunt :)
Yet some of the people singled out as the snarks in this article are people active in the community as teachers, participate to user groups, spend a lot of their free time on maintaining beginner-oriented software. Life is best seen in shades of grey and I'm sure they sincerely regret having reacted that way.
The more general issue is that Internet has become a place of competition and EXTREME negativity, just read any article on Hacker News if you need convincing. Some dude will spend months or years working on some shit, only to be greeted with cheers and claps like "wow, that sucks", "How is that useful?", "Your code is bad and you should feel bad", "LOL, you handled security like my 2-year old handles the TV remote". So no, it's not even a problem of calling out code when it's bad, it's just a simple matter of recognizing that those people you so hastily call out are in fact human beings. And NO ONE likes to be humiliated.
A person who looks at a piece of art and says, "Eh. I could do that," isn't a critic. He's just another asshat with an opinion.
Criticism is the highest aspiration of non-fiction writers. Zinsser says so in On Writing Well so it must be true. Even if it's not, what he says about most people sucking at it, certainly is. Negative criticism is easy, positive criticism isn't. Lead with an insult, and the internet pays attention. But it is hard work to criticize something productively - to point out the value and the areas for improvement. Writing a lead for that criticism is even harder.
Most people, including myself, are not in the habit of spending the time to do it right. The article takes the time to get it right. It does so by looking at why Heather did what she did. It compares what she did to the common alternatives. The author tells what he did when faced with similar situations. That's what makes it good criticism.
It relies on the fact that you can provide javascripts String#replace a "replace function" (1). The author just evals the contents of a command line provided file into a variable called `replaceFunc`.
Beside that, there's not a lot that can be pointed out as "bad", at least by just reading it lightly (5-10 mins).
As VMG writes, it's one of a few places where 'eval' is the right tool for the job. In this case you either have to drop the feature (of providing replacement function), implement your own language/DSL that compiles down to JS function or just use eval.
There is only 2 people who can call out said code.
They are:
1) Their Employer. Then you can ask them to refactor the code.
2) Them.
Additionally, your mother was right. If you don't have anything nice to say you shouldn't say anything at all.
Just because you were born on this planet and survived past birth; does not give you the right or the excuse to harm another person or cause harm to said person's "Value of Life".
Man there sure are some sensitive sallies in the dev community lately over this whole debacle. Part of this industry is handling criticism. Not everyone is going to be a fan. That's part of being a developer. Devs were getting their pants torched long before me on the Internet and I don't see that ever ending. A lot of it is opinion. So treat it as such.
Another issue in the "is Node right for this" is that it's very very portable, significantly more so that shell scripts (Mac uses BSD utilities, windows has nothing unless you have cygwin), and even slightly more portable than python.
Not sure I follow. OS X comes with the Bash shell and I have plenty of shell scripts (bash and perl) for automating my dev environment and numerous other tasks that run fine on both Ubuntu and OS X. OS X using FreeBSD as its Unix layer doesn't preclude it from interoperability with other *nix like systems.
If you've ever seriously written shell scripts you'll know that they're not 100% portable. You always have to go through hoops to make them work properly across operating systems systems. BSD and OS X come with the BSD userland tools, with the exception of bash being default on OS X. Linux comes with the GNU userland. A few differences from the top of my head:
- BSD utilities do not accept any -options after filenames, GNU utilities do.
- The situation is reversed for BSD find. It insists on accepting a directory name as the first parameter.
- BSD sed doesn't support the -i option in the same way as GNU sed does.
- Even different versions of GNU utilities are not necessarily compatible. A few years ago I ran into compatibility problems with 'head', 'tail' and even 'free' across different Linux distros. I can't remember the exact issues though.
So I agree with the grandparent, Node and Python are a lot more portable than shell scripts.
There are differences between BSD and GNU utilities that manifest a lot. ps uses different syntax. find has a different output style. grep doesn't support -P.
I don't have any great experience with Node, but my understanding is that its built around libuv, which is really good at abstracting this stuff. From my experience of writing python scripts, it looks like you'll occasionally see things like "this doesnt work on Windows". Only occasionally though, hence "slightly".
I pull people up for similar things on here, if you're going to call something out explain why you think it's bad. You don't need to provide a rewrite to it, you just need to not drive by snark it.
Unless I increased my speaking rate to prevent the awkward situation of requiring the comma... or perhaps there never was a pause there (eg "eats shoots...")
I think that one of many problems with our industry is that even many good engineers can't really tell good code from bad. (Bad engineers are already hopeless.) That's why there are so many flamewars over cosmetic bullshit like tabs-vs.-spaces. Most code flamewars are over style, not substance. But it's substance (overuse of inheritance, lack of interface integrity, inappropriate technical choices) that kills projects.
who is Heather Arthur, and why they hell does she have 3 posts up on here about some people's opinion on her project. get over yourself, and move on, seriously.
Bullshit, sorry.
Questions to ask yourself before "calling out bad code".
1. Does this code belong to someone on your team?
2. Does your code rely on this code?
3. Does the code represent a risk to you or your business in some way?
4. Do you have the direct contact info for the developer so you can appropriately, discretely and professionally inform them about their code?
Github == "Developer Playground/Experimentation Lab".
Why in the hell should I have to feel that every piece of code I put up there 'must' adhere to 'your' standards or anyone else's?
How can we as a development community rationally expect to grow the open source ecosystem and encourage people with this type of snobbery?