415 karma · joined June 1, 2015
We have to understand that, much like it's a military's responsibility (and desire) to go to war, it is the goal of spy agencies to gather all the intelligence it possible can. In both cases it is up to law making bodies comprised of "the people" to check these agencies' ambitions.
Most articles like this have a big ol' elephant in the room that only the bravest dare to approach.
Cool stuff though. I'm not a hater, just seems like overkill to me.
We have a tendency to misconstrue, willfully misinterpret, or altogether ignore the law when it comes to prosecuting individuals who we believe to be standing on much lower moral ground. We do so because we want so badly to punish the accused that we are willing to reduce or eliminate greater good that some privacy laws are aiming to provide (i.e. Trumps silly travel ban which is based on his hatred of Muslims built upon imaginary news stories and personal exaggerations of particular recent events -- all laws out the window)
I think this is all because of years of brain-washing by programming media personalities who tell you what is best. What is best is getting your program to work! Yes, keep an eye on maintainability, readability, unit test your stuff and so forth but as the article suggests don't over-engineer. After all the idea is to get the thing to work and to be able to easily get it out to people (CI/CD).
Sometimes I think the sixteen year old me would be too bored to come to work -- he would be scared off by the fact that he has been working for six days and only manged to get a charting library working with react in a way that wouldn't fire up the local Bob Martin wannabe.
In short programmers need to get over themselves. Just because your job requires reading (Rails tutorials) doesn't make you a genius that deserves $170,000/yr salary. Its funny because this haughtiness and ego of the average programmer is what sometimes makes otherwise wonderful work environments miserable places to work. I can't tell you how many job offers I've turned down because I encounter the 26 year old who introduces himself as the "Lead architect" of a simple monolithic rails application but now I digress.
In reality and to follow the articles misguided analogy, most top universities curve (inflate) student grades much like the United States' overly capitalist system has established what is akin to corporate well-fair. In fact the U.S has gotten to the point where the only entities with rights are businesses and the wealthy - if you want rights and well-fair in the U.S. start a business its the only way. This is evidenced by the fact that only 2% of civilian legal issues in the U.S. ever see trial or legal mediation while the majority of all business legal situation get the full attention of the judiciary system.
More social programs in the U.S. in the U.S. apply to businesses not people.
Hi John,
Are you familiar with Jackson Structured Programming?
https://en.wikipedia.org/wiki/Jackson_structured_programming
Notice how the focus in on using control flows that are derived from the structure of the data being processed and the processed data. Notice how the JSP derived solution in the Wikipedia example lack if-statements.
Pattern matching allows ones to map control flow to the structure of data. What are your thoughts on that? I think inversion of control has other benefits but I don't think it has much to do with elimination of `if` conditionals, the pattern matching does that.
Also, I noticed one thing:
In the article you mention `doX :: State -> IO ()` as being called for its value and suggest that if you ignore the value the function call has no effect. Isn't it the case that a function of that type usually denotes that one is calling the function for its effect and not for any return value? Its value is just an unevaluated `IO ()`.