skysight-inc/HackerNews huggingface dataset:
Scala transcends the static vs dynamic typing debate via it's duck typing. Because of it's implementation of implicits, you get static type checking along with the flexibility of a language like JavaScript or Python. IMO This puts Scala head and shoulders above the rest of the programming world in terms of language design.
It's also interesting to note you can run into pure cultural issues as well.

In one situation, we had one incredible "junior" Indian programmer who was working under another Indian senior developer. The senior developer did not have nearly the experience or expertise the younger, "junior" developer had.

Simply because of cultural norms surrounding age and seniority in Indian cultural, the more senior developer took pride in pushing the younger more experienced developer around. Telling him he didn't know what he was doing, telling him his code was all wrong, and generally threatening him with firing if he didn't follow what he was doing. This lead to many a heated argument and the younger developer having to let other American counterparts argue his case for him.

It made for a crazy environment. My manager confided in my that it was like living in high school all over again where the senior QB was getting pushed by the younger freshman QB who was bucking for his starting spot. Eventually the senior developer was let go and things got back to normal, but it showed even cultural norms can interfere with the quality of work getting done.
I quite like Kotlin at first sight but I currently use Eclipse... (looks much better on Linux than IDEA) I'm also looking forward to Ceylon.
The author gives "P.R. Officer" as an example of one profession typically dominated by women. When I studied public relations in college, I was one of the few guys in my classes, and I began to pose this question to others in the field.

I think part of the reason is that many guys mistakenly associate PR with publicity and event planning — activities which they view as being "for women." In reality, modern public relations is deeply intertwined with management. It's about managing a company's relationships and persuading important audiences to take action.

Publicity and event planning are tools in modern PR. To say that they're the substance of the field is like saying that computer science is about keyboards and typing.

So, what's interesting here is that the field of public relations has evolved to encompass some things that are perceived as traditionally male, including business management, strategy and law. However, many men perceive the field as it was decades ago.

To answer the OP's question, maybe men don't push for men to break into traditionally female fields because, once those fields are branded as being "for women," they cease trying to understand how the fields evolve over time.
"He'd likely be a free man if he were in Croatia or Kazakhstan."

You think so? One of my college professors was jailed in Kazakhstan because he neglected to bribe one of the customs workers on his way out of the country. That professor had grown up in Kazakhstan and still managed to get screwed over by the government there -- even after he was released, he could not get his money back, as the authorities had "lost" it.

The reality is that there are benefits to living in a developed country, even the USA. I can understand why he would not have wanted to leave even though he was running SR, even with the risks of being caught.
You're right: All these restrictions and taxes should be abolished for both AirBnB and Hotels. Problem solved.
Yep, that's the goal!
Qt and MFC are quite a bit older than 2001/2002. It makes sense to avoid std::string in the early or mid 90s. By 2001, though...
Allow me to disagree with you here.

Good people, who are starting out, often undercut their rates to ensure they stay competitive with the plethora of options available to the buyer in the market.

Suppose, I value my work at $30 an hour and I don't have too many projects to show for it but someone else is offering the same skills at $15 an hour but they have a whole portfolio of (somewhat-)shoddily done jobs, 99 times out of hundred, I will lose my contract to the $15-an-hour competitor.

My only option: Quote $15 or less an hour and build up my portfolio. Unfortunately, once you 'sell' yourself for $15 an hour, no one will want to pay you more than that for subsequent projects. Sadly, what no one understands is that $15 an hour only buys you my time; it doesn't buy you my motivation to apply myself to the job. :(
I think it is a better way to phrase it anyway. If you say you are an awesome programmer and since you are awesome your decision to use static typing to get you better compile errors and help your development is right, then people can just argue that you suck. But if you say you suck and static typing allows you to suck less, what are they going to say?

It's pretty widely admitted that languages need to help developers suck less to succeed, see Java removing multiple inheritance, operator overloading, etc. and becoming the premier business language. These were power features that made it easy to shoot yourself (and team members) in the foot.
My heuristic for choosing Inidan programmers (I am an Indian)
1) Choose from top colleges. Apart from the well know ones, each state in India has a something called NITs. Apart from this, each state has one "top" college. Then, each major metro has 3-4 colleges which produce good programmers. I generally stick to these coleges. It comes to about 50-60 colleges, so not a bad number

2) Look at good 10th class marks...I find that it is a good indicator compared to engineering marks.

3) Look at quality of english in terms of grammar. Almost all of us were educated in English medium. If they didn't pick up good grammar for whatever reason, you know they are bad.

Again, this is a heuristic
Can someone explain why the author refers to the nodejs layer as "front-end?"

It is a UI-layer, but is it not still back-end?
For anyone it's a matter of working your strengths, and there is nothing a young employee can do against very deep specialist knowledge in a senior employee.

Maybe the problem with the senior workers, is that they are too generalist for the pay they expect. And maybe in too many cases, the expectations to the products produced are not high enough to warrant the pay of a senior developer, which there is nothing to do about, other than raising expectations.
I think you missed the point of that line.

Type annotations let you get the shape of the data structure out of your head and into code. The compiler can then ensure that you're using the data structure properly.

Whereas if you're using a dynamic language without type annotations, you need to keep the shape of the data in mind; after that array index, hash lookup, function call, you need to know what kind of thing it is you've got in hand, and what you can do with it. Sure, you write tests to exercise the code and flush out the mistakes, but that isn't as tight an iteration cycle as a compiler - if living in an IDE, the cycle may be as low as a few milliseconds.

And this is the point of the "not a great programmer" comment. Making progress even though you don't have the entire map of the whole program's data structures in your mind all at once.

Having said that, I think this ability to deal with a lot of complexity in working memory can be detrimental to good code, even in typed languages. I've worked with some talented programmers that had an enormous capacity for complexity, but that very complexity made them less inclined to abstract their code. In fact, because they had less need for abstraction, their abstraction skills overall were poorer.
Yes, C# as a language is without question better than Java but in terms of the whole ecosystem, it's not that clear...
Qt does it because the library predates common availability of std::string across multiple compilers. It's been a while since I looked but there is a lot of funky stuff in Qt that would look saner if they had the benefit of starting with a recent standard.
I'm learning Go right now by writing a small part of my current project in it. I like it quite a lot (mostly for its concurrency features) but it is actually a surprisingly verbose language compared to Java.

First of all you have this on about every second line:

if err != nil {
return err
}

Method signatures are convoluted because you have to repeat the receiver type for every single method and add (actualReturnType, error) at the end.

Go:

func (MyType* mt) myMethod(s string, i int) (string, error)

Java:

String myMethod(String s, int i)

For functions you want to use in expressions you need a second one that calls the first one and panics instead of returning err.

You can't specify default values for structs, so you often need an extra function that constructs a default instance of the struct and initializes its fields.

And the lack of generics means you have to write a lot of things several times for different types.

Lambdas are very verbose as well. You get no type inference even in contexts where it would be simple to do:

Go:

filter(func(s string, n int) { return len(s) < n })

Java 8 (Scala is similar):

filter((s, n) -> s.length < n)

Function names often have to be longer because there is no function overloading.

Go's simplicity is a double edged sword. Lack of verbosity is definitely not its strength.

Obviously there are many counter examples where Java is more verbose than Go. But they are very well known by now so I'm not going to repeat them here.
The editor in Juce apparently features C++ live-editing/hot-reloading http://youtu.be/imkVkRg-geI
One solution requires the economy to stall, the other does not. Take your best guess as to which one will have better public support.
There are so many problems with Scala, that the question of static vs. dynamic typing becomes secondary. Static typing could well be downright awesome, but Scala is still a mess.

I'm repeating the same line for the third time today, but I find that Scala is for people who find Haskell too simple, and want to add mutability, inheritance and macros on top of it, while dropping safety, purity, and much of the type inference (and I'm certainly not a Haskell fan, but Scala makes Haskell seem like Logo).

For the life of me I can't understand what the language designers want, or how they think software should be written. It seems like they're finding it a fun challenge to see how many features from different languages can fit in a single compiler, and they justify each feature as necessary to solve some arcane problem.

I think it's the complete opposite of languages like Clojure and Erlang (or Java, even), whose designers started by pondering the major issues of software development, and tried to come up with a coherent solution, rather than pile on features, each plugs a specific hole, without any fundamental organizing principle.
The Never-Ending Narrative of Architecture
What's hilarious is that this is so uniquely cultural. My mom, who was raised with an English tutor in Bangladesh, remarked about my elementary school experience that she didn't like how all the teachers were women, because men made far more effective teachers. That is the sexism on that side of the pond--that women aren't suitable for a role that involves inculcating the knowledge and practices and morals of society.
Experience will also make you much smarter in knowing what you should (not) spend energy on.

Startups don't die from producing too little code; they die from not writing enough code that really matters to the end user.
The "we're changing the world" mentality is a bit annoying to me, as well. When I think about changing the world, I think about discoveries in medicine and science, people dedicating their lives to improving humanity, etc. To me, it's just a popular catch-phrase for 'the pitch' and relatively devoid of meaning in most cases.
Hey, the price was going up like nuts until recently. If you had bought in or mined early, you'd be rich. Now that everyone sees they can be confiscated just like real currency, though, the price is half what it was. Would have been good to have a short position for this.
This is an insultingly simple rendering of some pretty complex topics.
Think of Odersky's line in the same vein as bwk's "debugging is twice as hard..." line, about not using all your smarts in the code you write.
I wonder how much of the bad Indian programmer experience could just be bad management. How many of these places just fill up an office with warm bodies and throw everything they can bring in the door to anyone regardless of expertise?

If you go look through a site like Elance you will see some of these places just applying to everything. Some of the worst jobs I have see were largely because the developers put on the job didn't know the platform, so they had to spend a lot of time doing research and produced something which looked like as ugly as anyone's first crack at something.

Developers who charge relatively high rates (solo developers, not full service agencies) are most likely working a specific niche or platform which they are expert at. With huge Indian shop which takes on everything and claims expertise in everything, who knows what you are going to get.

And do these places ever kick something back? Do they ever say no? How much of a pain do you have to be to get an Indian dev shop to fire you as a client?
...and we have a winner...

This is pretty much the sad truth of it.
I actually suspect the joke is on "The Internet"

By now the FBI should be pretty savvy about these things.
Yeah, I've used jarjar before for this.
I am surprised that so many of the comments seem to be ignoring the obvious: more experience generally means higher wage in the tech industry. It's a money issue.

I've personally worked with older programmers, and there has been little noticeable difference in capabilities (and often added benefits of organizational know-how). The issue is the pay.

Incidentally, it's the same reason why big companies are championing H1B visas by saying "there aren't enough US nationals to fill the roles" (even though the numbers don't bear the statement out): companies want to pay less for somewhat equivalent skills. Who wouldn't?
As mentioned, the main reason for this is that for an average Indian, software industry seems job promising. So they take it as their course in colleges. But the problem arises when after 2 or 3 years in college they realize their mistake. But there is no turning back. So either they opt to be in IT industry, or they take management path.

So really the problem is motivation. They opt IT because of job security, and not interest. When I had to choose between different streams of engineering, at that time recession was going on. Everybody suggested me to take anything but IT. They said IT will fall so don't take it. But it was my interest and passion for computers that I chose Computer Science. And after 4 years, I am more than happy with my decision and looking for a job at a place with more passionate people like me.

I have many friends who just took IT but aren't happy with it. So after 4 years, they are looking for other fields like management and army. So as you can see, the problem is motivation. they are not motivated towards a particular interest. They had just followed the herd.

I'm gonna quote steve here :

"You've got to find what you love. And that is as true for your work as it is for your lovers. Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven't found it yet, keep looking. Don't settle. As with all matters of the heart, you'll know when you find it. And, like any great relationship, it just gets better and better as the years roll on. So keep looking until you find it. Don't settle..."
Yay! I got my application in before someone posted it to Hacker News. I might actually have a chance now.
All the absolutes in here make it very hard to get on board. Americans are not Marxist automatons any more than American culture is something so well-defined that you can reason about it reliably with generalizations like this.

I'm not a cultural anthropologist, so I'm not going to bother suggesting this Marxist origin theory is wrong or even not a large contributor, but I will certainly point out that you're reducing something very large and very complex involving a whole lot of vastly different people with different motivations, backgrounds, and goals to a simple, homogeneous, no-moving-parts summary that's so burdened with subjective assumptions as to be unsupportable.
Weird pricing plan. At even the most expensive plan (of 15$/mo) only 50 'mummies' a month. Seems like an arbitrarily low number
These are all very subjective statements, things like "I choose ... because". If you asked 20 programmers why they like statically typed languages, I am willing to bet you will get quite the variety of answers. Personally, I think statically typed languages scratch an itch that is different from programmer to programmer.
A study that was just released found lower values for the amount of methane that escapes than the 2011 study.

http://www.pnas.org/content/early/2013/09/10/1304880110.abst...

Not saying this should end the debate, but it's another data point.
No offence but if you have to use PHP or Wordpress for a university level engineering course then that is a major indictment of the school. You could get a better education from MIT OCW and Coursera. Also I don't see a problem with requiring an interest/aptitude in math to get into a CS program since CS is applied mathematical logic, although physics and chemistry are less relevant unless you want to work with applied scientists.
quantum crypto is going to be available to governments first and to civilians later, if at all, ever. we should be be making plans on how to protect ourselves from the cracking powers of quantum computers with our traditional computers instead: http://www.pqcrypto.org/
> what we do now looks nothing like what those of us who were around then were doing

20 years ago I learned some Objective-C. That's still fairly relevant. I recently used an obscure bit of Foundation knowledge no one else around me knew, so to some extent it was even valuable.

Design patterns from 20 years ago may be looking a little long in the tooth, but if you learned the principles as well as the pattern (i.e. what matters most is separation of concerns) that still serves you well today.
What about outsourcing from marketplaces that includes feedback about previous projects , does this work well ?
My personal experience in this discussion is as a freelance developer living in Canada. Being hired to clean up/review code written by a $10/hr shop in India makes up a sizeable segment of freelance work available in North America.

I saw mostly PHP written by these outsourced developers, and what I saw is mostly what you would see from any underpaid/undermotivated developer (who bills by the hour). The most illustrative habit I found was the tendency for what I call "Manual loop unrolling"; that is, writing by hand in the code something that I wouldn't expect any self-respecting programmer to fail to automate (or just use the language's built-in tools!):

$months = array(1 => "January", 2 => "February", 3 => "March"...);
$days = array(1 => "1", 2 => "2", ...);

The impression I get from reading accounts (disclaimer: this is where my words cease to have any authority) is that in India, "software developer" as a career is a household name; it carries at least some status and pays relatively well, and it seems to be a popular choice.

I'm not sure how long this will be true with the current "learn to code" movement, but in North America many people who are currently software developers found themselves here by accident; they discovered something cool they could do with a computer, and then discovered that people would pay them to do it.
The point is not whether it's wrong. The point is that a particular perspective dominates. And observation does seem to confirm that.

Also, when did simplification become a bad word? Simplification is great. Half of (university) physics is just a collection of really clever simplifications.
I find it disturbing and sad that you didn't even think to mention egalitarianism in either your male or female reasons to push for more females in tech.
Here is a link to Dropbox's application to get some idea,

http://www.businessinsider.in/This-Is-Drew-Houstons-2007-Y-C...
This article is horrible. I can't believe the shamelessness: (1) I'm offended -> (2) Here are my excuses.

Well, I'm offended by shitty code, whether it be from India or the US or anywhere else in the world. Sure, people need to write shitty code as part of the learning process. But most shitty code isn't the result of learning process but actually the result of people who don't write code well and never will. Why? Because they don't care, and never will care.

Is "caring" related to having a 3 hour commute and living in a shit hole? I imagine it does. Does it /practically/ matter to me as a consumer of software. Fuck no. On this level, your problems don't matter to me at all. Whining about being offended and then make excuses for your poor performance just makes you sound like the child you probably are. If you can't compete in the global market, don't lie to people, get business and then fuck it up.
Criminal Case Cheats
I'm founder of http://thetechblock.com. We're always happy to help too.
Yep. It's also not self-hosted. Other than the fact that these are both CMS's with modern design on their landing pages, I don't see the correlation. They're very different types of software.
Scala lets you spend lots of time typing incomprehensible type signatures and gives you less type safety than ML-family languages in exchange. Truly it is the pinnacle of PL design!
How was it decided that it will be part of core contrib?
Men are found at the very top and the very bottom of society, even in very even societies like the Scandinavian countries.

So if anything men are both the most oppressing and most oppressed class of society.

Furthermore woman normally marry upwards which makes it even harder for those already at the bottom to find a life companion and escape their situation.
There are a few other reasons these cross-continental relationships often sour and produce bad work:
* dialect differences
* time zone differences

Sometimes there's a simple 5 min question that needs answering before a programmer can proceed, if they have to wait for the other party to wake up, it can slow things down.

If the employer and employee speak different versions of English, there can be misunderstandings, and frustrations.
I'm not as interested in the social aspect, but oh my god have I been waiting for a recommendation engine for video games for a looooong time. It's especially a problem if you're running on an underpowered rig, where playing the latest titles isn't always an option. This will be great if they can somehow provide a netflix-esq 'play this next' based on your past playing stats. I've discovered some great games like Hearts of Iron II, Mount & Blade just through pure chance. Providing new (read:younger) gamers with a way to discover games made prior to ~2009 would be a big boost for all parties involved.
Well if you were to use a mix of encryption algorithms from the US and China while each may have a back door in their own they are most assuredly not going to share them with each other. So it you encrypted a message with say RSA and $random_chinesse_cipher neither government would be likely to have the ability to read it.