80% of the users ended up only filling in their street address, not their postal/zip code, city and state/province, even though they're from countries where (most?) addresses satisfy that format.
We ended up reverting to the previous form where we explicitly asked for postal/zip code etc.
This is the one that I've run afoul of -- not because I live in a brand-new building, or a houseboat, or 30 miles from anywhere on an unnamed road; it's just that there is no door-to-door delivery for houses within a 2-block radius of the local post office, so we have a PO box.
The trouble happens when a business that needs my street address uses the USPS database for address verification. One example is online stores that don't ship to PO boxes. Some of these sites have a form with a sort of "Are you sure" prompt when my street address isn't recognized; others just refuse to accept it.
Even worse was when the local company that picked up my trash was bought by one of the larger regional "waste management" operations, and all the drivers' routes were re-planned for "efficiency" (evidently using software that hit some USPS database); the upshot was that everyone on my street had their address removed from the pickup routes.
That people have addresses at all, or can describe their residence in an unambiguous or clear way (even using GPS coordinates).
I used to live in a place I couldn't even remotely give directions to. It was deep within a neighborhood of a poorer country, none of the streets had names, none of the buildings are numbered. I lived in an building where none of the apartments had numbers or names.
If I wanted something delivered, I would go to a local shop for the company delivering it, and show my ID, and they would have it routed there if it wasn't in the building already.
If you wanted a billing address for, I don't know, tracking me down, initiating lawsuits, something like that? I honestly just assume that's impossible.
Also, since it brought up naval vessels, here's the addresses of all US Navy ships: http://www.navy.mil/navydata/ships/lists/ship-fpo.asp
Anyways, the post office does a wonderful job delivering mail considering how complex addresses can be and how people can have messy handwriting.
Also - You can have an address that doesn't map to a physical location that totally looks like it should (not just PO boxes). Consider RPIs address.
"Correspondence to and from Rensselaer Polytechnic Institute uses the official address of 110 Eighth Street, Troy, NY 12180. This address serves as a mailing address only; you will not find a building with that number on 8th Street."
I remember once we had to remove validation from names because some countries don't even have last names, and others have real names with two or even one characters.
- The free and open global address collection : http://openaddresses.io/
------ "OpenAddresses Hits 100 Million" https://www.mapbox.com/blog/openaddresses-100m/
- OpenStreetMap "addr:housenumber" FREQhttp://taginfo.openstreetmap.org/keys/addr%3Ahousenumber#val... [ more "14" than "13" ]
- OpenStreetMap "addr:street" FREQhttp://taginfo.openstreetmap.org/keys/addr%3Astreet#values
- OpenStreetMap "addr:postcode" FREQhttp://taginfo.openstreetmap.org/keys/addr%3Apostcode#values
- Derek Sivers: "Japanese addresses: No street names. Block numbers." http://sivers.org/jadr
- Wikipedia : "Address (geography)" http://en.wikipedia.org/wiki/Address_(geography)
It would be nice to come up with some sort of conclusion or recommendation. Should addresses just be used as one big blob of text, and never parsed at all? should there be individual per-country libraries for parsing them? should we just address everything by coordinates (which doesn't solve the houseboat problem)? How about a unique identifier for every person on the planet, plus a gps tracking system that guarantees big brother can deliver to you whenever, wherever?
Now that the average piece of post is a prig package that needs signing for, rather than a small letter that can just go through the letterbox, I quite like the idea of centralised pigeon-hole buildings, that have existed in many towns as the only method of delivery, but are now being born everywhere thanks to amazon, etc. That's quite a different problem, though :-)
When actually using all the addresses you stored for shipping stuff, it is almost guaranteed that the shipping company will cut off or drop lines from labels, and of course every shipping company is going to have its own quirks. Maybe just because not every address is going to fit onto a fixed label area in a fixed font size.
I have in fact lost several shipments to my address(es) due to every single kind of the above caveats.
This one's particularly common in Edinburgh. In fact in the example they use - "Regent Road" connects to Princes Street, which becomes Shandwick Place, then Atholl Place. At this point the main fork becomes Dalry Road which then becomes Gorgie Road which becomes Stenhouse Road and then Calder Road - all of which are roughly a straight line:
I live on a road that has two sets of numbers, both identical (but several hundred meters removed from each other) in two different towns but with the same name. Getting mail and packages delivered here is for want of a better word a challenge.
From Portland's Wikipedia page:
> On the west side, the RiverPlace, John's Landing and South Waterfront Districts lie in a "sixth quadrant" where addresses go higher from west to east toward the river ... East-West addresses in this area are denoted with a leading zero (instead of a minus sign). This means 0246 SW California St. is not the same as 246 SW California St. Many mapping programs are unable to distinguish between the two.
We can issue addresses to computers, many of which cannot be considered to be in a fixed place, yet somehow we can't issue a permanent, unique address to something that's not likely to move around much.
When you're training developers remember that you're not training demigods.
The linked C++ project was the result of an initial year of working on it, which culminated in a winning entry to LIVE 2013 contest  and me switching to working on a version of it written completely in Go . I no longer work actively on the C++ version, but I do on the Go one .
Primarily, it has been an extremely insightful learning experience. I had a lot of ideas and I wanted to try them, and by building Conception I found out the reasons why certain things that are commonly desired do not actually work well in practice, and why our seemingly outdated practices of writing code no different than decades ago are still so predominant and effective.
It's really interesting to go back to my old notes and goals and, with hindsight, truly understand _why_ they didn't work out, and what it would take to make them work.
The Go version is go-gettable and working  despite having lots of dependences (as proven by the green Travis build). This is one of the benefits of using Go and not the case for C++ version. You can easily try it, but at this point the UI is so far from finished, it's not really fit for general use. If you're interested, I highly recommend watching the repo so you'll see further development. :)
Give a bit of padding to your text blocks
Identify clearly the input from output
And adding syntax colouring will give it 300% sweetness.
But I can't do the clicking and dragging. If the layout was automatic and controllable via keyboard, I'd give this a serious look.
What a spaghetti. Is that the author or the language?
I've wised up to this tactic and will buy extra when the price is low enough to make it a better deal than buying at the grocery store.
The raw .md file doesn't seem to work and bookmarking the rendered github preview just leads to the projects main repo.
I'm not a party to any of this. I've done nothing wrong, I've never been suspected of doing anything wrong, and I don't know anyone who has done anything wrong. I don't even mean that in the sense of "I pissed off the wrong people but technically haven't been charged." I mean that I am a vanilla, average, 9-5 working man of no interest to anybody. My geographical location is an accident of my birth. Even still, I wasn't accidentally born in a high-conflict area, and my government is not at war. I'm a sysadmin at a legitimate ISP and my job is to keep the internet up and running smoothly.
This agency has stalked me in my personal life, undermined my ability to trust my friends attempting to connect with me on LinkedIn, and infected my family's computer. They did this because they wanted to bypass legal channels and spy on a customer who pays for services from my employer. Wait, no, they wanted the ability to potentially spy on future customers. Actually, that is still not accurate - they wanted to spy on everybody in case there was a potentially bad person interacting with a customer.
After seeing their complete disregard for anybody else, their immense resources, and their extremely sophisticated exploits and backdoors - knowing they will stop at nothing, and knowing that I was personally targeted - I'll be damned if I can ever trust any electronic device I own ever again.
You all rationalize this by telling me that it "isn't surprising", and that I don't live in the [USA,UK] and therefore I have no rights.
I just have one question.
Are you people even human?
Edit: I should add that my suspicion came from noticing that the vast majority of the comments when this was first posted seemed aligned in favor of the NSA's mission.
It wasn't the presence of pro-NSA comments that was interesting but rather that these opinions were the overwhelming majority. This is, of course, how astroturfing becomes effective, it is not the rhetoric that is important but the cognitive bias imparted by the facade of so many people falling to one side of an issue.
This is of course, only a suspicion, but it seemed worth noting.
And the reality is when it comes to cyber conflicts [...], we have more to lose.
We spend more on research and development than these other countries, so we shouldnt be making the internet a more hostile, a more aggressive territory. We should be cooling down the tensions, making it a more trusted environment, making it a more secure environment, making it a more reliable environment, because thats the foundation of our economy and our future.
The concept there is that theres not much value to us attacking Chinese systems. We might take a few computers offline. We might take a factory offline. We might steal secrets from a university research programs, and even something high-tech. But how much more does the United States spend on research and development than China does? Defending ourselves from internet-based attacks, internet-originated attacks, is much, much more important than our ability to launch attacks against similar targets in foreign countries [...].
When you look at the problem of the U.S. prioritizing offense over defense, imagine you have two bank vaults, the United States bank vault and the Bank of China. But the U.S. bank vault is completely full. It goes all the way up to the sky. And the Chinese bank vault or the Russian bank vault of the African bank vault or whoever the adversary of the day is, theirs is only half full or a quarter full or a tenth full.
But the U.S. wants to get into their bank vault. So what they do is they build backdoors into every bank vault in the world. But the problem is their vault, the U.S. bank vault, has the same backdoor. So while were sneaking over to China and taking things out of their vault, theyre also sneaking over to the United States and taking things out of our vault. And the problem is, because our vault is full, we have so much more to lose. So in relative terms, we gain much less from breaking into the vaults of others than we do from having others break into our vaults.
This persistent confusion between legitimate NSA operations such as preparing to intercept communications of foreign governments and illegitimate such as mass slurping of everyone's email merely serves to discredit the entire privacy defending position, and in the long run will just play into the hands of those that want to read everyone's email for nefarious purposes.
Buffer overflows in trusted code have to go. This means getting rid of the languages with buffer overflow problems. Mostly C and C++. Fortunately we have Go and Rust, plus all the semi-interpreted languages, now, and can do it.
We need something that runs Docker-like containers and, all the way down the bare metal, has no unsafe code. We need dumber server boards, with BIOS and NIC code that's simpler and well-understood. The big cloud companies, Amazon, Facebook, and Google are already doing their own server boards.
Companies which put in "backdoors" should face felony criminal prosecution. That doesn't happen by accident.
Latest CERT advisory: "Vulnerability Note VU#936356 Ceragon FiberAir IP-10 Microwave Bridge contains a hard-coded root password ... Ceragon FiberAir IP-10 Microwave Bridges contain an undocumented default root password. The root account can be accessed through ssh, telnet, command line interface, or via HTTP. ... CERT/CC has attempted to contact the vendor prior to publication without success."
All Ceragon customers should demand their money back, and their products should be seized at US customs as supporting terrorism.
- Mass surveillance of all humans is objectionable on human rights terms.
- Attacks on civilian infrastructure. The NSA is executing military operations against civilian infrastructure even in NATO countries.
It isn't conventional foreign policy or warfare for a military agency to be actively and continuously attack the civilian cultural and economic infrastructure in preparation for war.
From a military perspective, surveillance of the Internet is merely "Phase 0" in the US digital war strategy.
This enables them to "control/destroy critical systems & networks at will through pre-positioned accesses (laid in Phase 0)." Critical infrastructure is considered by the agency to be anything that is important in keeping a society running: energy, communications and transportation. The internal documents state that the ultimate goal is "real time controlled escalation".
This isn't about fighting terrorism. It's also not about the usual warfare it's more like the infrastructure or a set of tools to control nearly every other country or the planet or at least make sure that the US will always be able to keep them from disagreeing.
First to USG has made a concerted and successful attempts to place secret digital strongholds and black sites across the globe, including some 'behind the enemy lines' so to speak. In the physical world these are the equivalent to CIA black sites and safe houses, from which you can attack and spy on the enemy, feed in extra weaponry to partisans and rebels (similar to the CIA Benghazi compound, sorry 'consulate', sorry 'embassy'.
The NSA has all these smart dangerous and arguably immoral minds employed to defend the digital borders of the US. But in truth these minds are busier establishing secret pathways through the digital trenchlines in order to have a definive and effective advantage when the cyberwar comes (which of course they are actively encouraging to validate their position, historical actions and future funding).
At the same time they are making a concerted effort to make sure that the security protocols everyone uses are undermined and backdoored. In effect they are making sure that the digital nuclear weapons held by their enemies aren't going to get in the air when the time comes.
Through strong encryption we could make sure that we have the digital equivalent of mutually assured security, but as ever the US isn't interested in this, because the reality is that the military industrial compound aims to make billions of dollars from the industry.
In a world where all communications and hardware devices were secure, they wouldn't make any money. A secure, stable and safe world just isn't profitable.
Is this such a problem? In a world where exploits are used to break infrastructure, isn't the best solution simply to build increasingly more secure code? If that won't solve the problem I don't know if legislation will. Right now a determined hacker can harm a company via the internet (e.g. Sony). Are laws really going to stop that from happening?
If not, please correct me. I know little about cyber warfare and would love to know more.
A computer system has many services, programs and tasks running on it. Only one of these needs to contain a flaw for a system to be vulnerable, obviously this means that on a secure system everything must be perfect, for 1 flaw compromises everything.
Therefore I don't find it strange that the NSA allocates the resources it does to research and expand it's offensive capabilities, since trying to defend the systems of the US is probably a lost cause. The question remains if this is ethical and/or legitimate. Being a non us-citizen I'm certainly opposed to the practises of weakening standards and harvesting/exploiting services on the internet.
I also find the double-speak of the US government deplorable, on the one hand we have the government declaring that in many ways a cyber-attack will, and can, be reacted upon as if it were a conventional attack. And on the other hand we have the US government attacking and targeting civilians (Belgacom Sysadmins). I fail to see how attacks against the US can be labelled as a conventional attack, but that attacks from the US against civilians are apparently OK.
I don't blame the NSA for trying to be ready to fight a cyberwar. Other nations probably wouldn't stop their programs even if the US did. Our culture isn't the only one infected with a sense of Manifest Destiny.
Where we might consider drawing the line begins with necessity. Deciding which actions are necessary and which are gratuitous might prove difficult, assuming we even know, which is why I find it hard to fault Snowden for leaking this information.
As fearsome as the NSA sounds, certainly they have some limits. For instance, why don't they just clean out everyone's bank accounts? Might pay their bills for a few days anyway. But why haven't they gone after certain criminals? Many shady operations keep their money in jurisdictions that probably can't compete with our cyberwar capabilities. Maybe these operations enjoy the protection of a powerful entity but probably not all of them do. And probably many operations still use cash and couriers but the US and others seem to have gotten better at tracking movements of people so it's doubtful such tactics will remain viable forever.
Maybe in the end we have to somehow conquer the notion of distrust. Not sure how it can be done except through telepathy and even then the transition to a telepathic society will probably be full of misery.
The preservatives, anti-caking agents, food colorings and other profit-enhancing additives are basically used with an "innocent until proven guilty" mindset.
As usual, you need only follow the money; who profits from adding these things to our food? Pretty much everyone.
There's much less profit motivation for pure food, so it simply won't happen until there's conclusive proof that the additives are bad.
And who's going to pay for that proof -- enough that those profiting from them can't squash it?
Kuhn is almost always referred to as a philosopher because he left physics to be a "philosopher of science".
In a nutshell I see an article about a scientist who worships a philosopher, believes she's the leader of the third major revolution in understanding human illness, and has a theory that's plausible yet difficult to test. Doesn't make the idea wrong, but these are not good signs.
In her defense she's published a few times on the subject* still something about the article's rubbing me the wrong way.
* - http://scholar.google.com/scholar?hl=en&q=claudia+miller
This doesn't really sound that crazy to me. People working with industrial chemicals need protection. This is a widely known and accepted fact. It doesn't point to the entire population getting sick from small doses of chemicals in their day to day lives, like the flame-retardants in their mattresses, as the article opens up claiming.
Any scientist who claims to have produced a paradigm shift hasn't.
You're welcome to call it Monochr Law of Paradigms.
Even the "good" ones tend to be hit or miss, or not call out BS when it is so obvious. The Economist seems to be one of few publications that I can consistently read without getting frustrated by emotional journalism or poor logic.
In terms of pollution and the presence of bad chemicals, it's nothing new. Burning any organic matter releases thousands of chemicals, and for all the romance around wood fires and stoves, those are much more polluting than most industrial processes today.
This isn't to invalidate the core concept of the article, which I can't really evaluate. It seems likely that some of the irritating illnesses people get are due to hypersensitivity to certain chemical agents that, in low doses, most people can tolerate. I just doubt that this is a new problem, given that we've always lived in somewhat of a chemical stew and our air and water have always harbored things that can kill us.
A related post worth reading is "Getting an A+ on Qualy's SSL Labs Tester" - https://sethvargo.com/getting-an-a-plus-on-qualys-ssl-labs-t...
Previous HN discussion: https://news.ycombinator.com/item?id=8749931
In many cases, the CA (or company you got your certificate from) will include this root cert in the chain. With most web servers it is perfectly fine to simply remove it, but I have seen applications where you cannot (VMware, which wants a complete chain ending with a self-signed cert) and where you'll have to ignore the SSL Labs warning.
This script looks very useful, thanks :)
Using concrete names, people, chocolates rather than abstractions usually helps a lot in teaching, because it leverages existing mental models and reduces the cognitive burden of tracking abstract tokens and behaviours. In this case, the alligators and their eggs behave so differently from anything familiar (egg hatching to whatever the parent ate?!) that I find the cognitive burden increases to the point of giving up. IMHO, for adults, a straight-up explanation with abstract symbols would actually be easier to comprehend.
Wait I'll start again...
Is this an art project satirising computer science?
Related: "To Dissect a Mockingbird" http://dkeenan.com/Lambda/index.htm
(also previously discussed on HN: https://news.ycombinator.com/item?id=7684210)
Something about pure lack of self-criticism perhaps.
; some code that sets CY on error jc some_error ... ; more code that sets CY on error some_error: jc some_error1 ... ; etc. some_error1: jc some_error2 ... some_error2: jc some_error3 ... some_errorN: ; error handling code goes here
I spent the last 5 years trying to get i18n working in a protocol:
The working group came to the same conclusion. Whatever crap the client puts in the packet is inviolate. Don't change it. You're not smart enough to do that.
Instead, if you need to do comparisons, compare on the normalized strings. You create a "normalized" version of the string, and then use that for comparisons.
I wish the IETF precis working group had a "recommendations" document. It would make everyone's lives much simpler.
For reference, if you're "multi-table grinding" as a poker player you may average 750-1,000 hands per hour. At 750 hands/hr that's about 1 hand per 5 seconds. That's a single task repeated over 10,000 times a day.
As with everything, balance seems to be the key.
 - http://www.cardplayer.com/poker-news/15033-dusty-schmidt-thi...
My take is optimistic. Charlie Munger uses mental models to handle his business decisions. Maybe we just better mental models to handle high frequency information digestion and distribution.
My first experience with Uber was to order a ride for my wife and daughter. As they were en route, it occurred to me: I had unwittingly accepted the job of dispatcher, and was paying for the pleasure.
I think I've read that the courts have ruled that dissemination and use of strong crypto algorithms is protected by the First Amendment, but I'm not sure of that.
A telecommunications carrier shall not be responsible for decrypting, or ensuring the governments ability to decrypt, any communication encrypted by a subscriber or customer, unless the encryption was provided by the carrier and the carrier possesses the information necessary to decrypt the communication."
"18 U.S. Code 2703 - Required disclosure of customer communications or records
(a) Contents of Wire or Electronic Communications in Electronic Storage. A governmental entity may require the disclosure by a provider of electronic communication service of the contents of a wire or electronic communication, that is in electronic storage in an electronic communications system for one hundred and eighty days or less, only pursuant to a warrant issued using the procedures described in the Federal Rules of Criminal Procedure (or, in the case of a State court, issued using State warrant procedures) by a court of competent jurisdiction. A governmental entity may require the disclosure by a provider of electronic communications services of the contents of a wire or electronic communication that has been in electronic storage in an electronic communications system for more than one hundred and eighty days by the means available under subsection (b) of this section.
(b) Contents of Wire or Electronic Communications in a Remote Computing Service.
(c) Records Concerning Electronic Communication Service or Remote Computing Service.
At some point we have to choose: Natural Freedom or Societal Freedom, but we cannot have both.
I for one believe that we should TRULY consider recording every message we send/receive.
We should have a very high threshold for using these communications against people, and making sure they can only be used for matters of the people's security.
I then tweaked the CAN bus parameters a bit -- making the VIN number match the VIN of my current vehicle, and replaying that a few times during the trip so that it would seem like I'm a very patient, slow driver, who drives less than 5 miles a day at 8:30 and at 5:15, monday through Friday, and then sent it back to Progressive at the end of my 30 day trial.
Progressive quoted me an insanely small number for my auto insurance -- probably around $22/month -- which is about half of what Nationwide charges me for the same insurance.
It's my understanding that Progressive now is collecting GPS data with their snapshot tool, so I'm not sure that the same attack/replay would work for their system.
Much hilarity and havoc could be wrought if you can get the modemworking outside of the snapshot device. Would you like to be the poorsysadmin at Progressive who notices that one Snapshot enabled car keepstrolling Homeland Security and downloading hermaphrodite dwarf porn?
There's something about the phrasing of PR statement that really added credibility to the Thuen's claim. Highlighting that it's a seven year old system, or that you "routinely monitor the security of the device" doesn't have anything to do with the actual security of the system.
"Routine monitoring" sounds worthless, because they probably don't mean "routinely dumping the firmware, physically, from the device".
In any event, we'll see soon whether this is a legitimate CANbus bridge, and if so, all the previously-released exploits come into play.
There is no way for the carmakers to secure the applications that use these vehicle networks. Most of them are large enterprises with thousands of sites and some contractors are global enterprises too. Not only do service tools (diagnosis/firmware) get widely leaked, but manufacturing and development tools too: huge enterprises will get their vpn's hacked and their employees will be subject to laptop theft. Since the industry cannot keep a secret, it will never be able to provide security.
I pay them a fee (not willingly either - it's required by state law) to provide coverage for me in case of an accident. I tell them how much coverage I want and pay the amount required for that.
Seems to me that should be the end of it, as with any service.
I really miss doing that it's been I get 20 years since I've developed any film it's amazing how time flies. Digital photography just doesn't have the soul of actual film photography it's missing the physical connection. Although I don't miss the stink of the fixer.
It's 120 rollfim too for medium a format camera which would give a nice image since it quite a bit larger and has more surface area than a 35mm negative.
For such old film I figured this would have been done in a lab not in a kitchen I'd be concerned with water temperature with such old film. Maybe even soak the film in water to let it hydrate a bit maybe since he indicate they rolls may stick they've been rolled up for so long.
I do wish I had a better method to scan my old negatives and skip the printing part I did try it without much success in the mid 1990s with my first flatbed scanner.
Interesting stuff! It makes me want to pick up the old cameras again.
What I like about them is they are obviously taken by an amateur (I don't profess to be any good myself!). Things like wonky horizon lines stand out to me and help bring a bit more or a human connection to these photos and events depicted I otherwise feel quite disconnected from.
They remind me of photos for example my family and friends take on holiday, and make me realise it's just pure luck that it wasn't me, my family or friends who found ourselves in those difficult years.
As someone else mentioned, these images were basically stolen from http://www.rescuedfilm.com/ , where they can be viewed at higher quality.
Also: "Copyright of All Images On This Website is Owned By The Rescued Film Project."
I have doubts about this statement. Can someone with more expertise in this matter explain? It seems to me that the photographer holds the copyright unless the copyright was properly transferred. Simple discovering the film and processing it does not a copyright holder make.
EDIT: there form for donating unprocessed film contains the following: "By donating your rescued film to The Rescued Film Project  you agree to release full print and publish copyright of all images recovered from the film to The Rescued Film Project and its proprietor(s)."
This suggests to me that someone else may have obtained and donated the film to TRFP.
Only a single slide deals with "contributing" the changes made.
And I'm happier with the actual slides than the ones the title implies.
"what he really liked was solving problems. The text of each chapter was just some advice about solving them. He said that as soon as he got a new textbook he'd immediately work out all the problemsto the slight annoyance of his teacher, since the class was supposed to work through the book gradually."
is literally me. I did that. Every year at my school I did exactly that. Once I actually turned in my solutions and my math teacher was quite upset because she didn't know what I'd do for the rest of the year in her class. She thought I was being arrogant and I should take in the material slowly, not swallow it all like a whale. But I wasn't arrogant or anything, because unfortunately this skill didn't transfer to the rest of my classes. I wasn't particularly good at history or physics or anything else, only math. Even now, I have tons of Schaums at my home. Like this one - http://www.amazon.com/Schaums-000-Solved-Problems-Calculus/d... I work problems in it just because it is a craving - I simply have to solve it. Sadly, society doesn't pay for this sort of addiction. I have been a professional programmer for the past 2 decades to pay the bills, but I secretly hate programming, debugging, programmers, git, the whole enterprise - just seems so stupid & futile. But hey, atleast I can spend my salary on Schaums.
However, I think the only reason I was able to enjoy learning programming was because of how adept I already was with computers as a "power user", because it gave me the physical skills and conceptual underpinnings required to appreciate the field.
To me, this raises an important question.
If you lack the physical skills or are a novice in a field, it can be frustrating or intimidating to learn even if you would otherwise enjoy being competent. For example, learning to draw: should one accept their dislike of basic beginning drawing practice to imply that drawing is not an appropriate vocation for them? Difficult question; probably depends on the person. The only way to know if you love drawing at a competent level is to reach that level. In a sense it begs the question: how can you tell if you will enjoy doing something until you have the ability to actually do it?
I don't think there is an easy way to solve this problem; you simply have to put the effort into practicing new things even if you don't enjoy the practice. That's where you get into willpower, commitment, etc. My experience of the world is that you simply cannot expect to be successful by only doing things that don't feel like work; sometimes, you have to actually do the work.
There are plenty of activities I can enjoy, and some, quite a few of them in fact, are profitable.
Once you shoe-horn them into the power dynamic situation of a traditional job (with the bureaucracy that entails unless you're dealing with Actual People as opposed to corporations), suddenly a lot of the luster disappears.
As a ridiculous example - I enjoy reading. It's not really work at all, right?
Ask me to read 9am-5pm and I'd start to find it frustrating. Or add in a commute, or very low pay.
The actual job itself is very rarely the issue for me. It's what you miss out on, and also the fact that it invariably involves submission, acceptance of being subordinate, etc.
edit: To be clear here; I'm not talking about work ethic in the sense of 'pushing through something you find difficult'.
More the general idea of not wanting to be a part of a machine, a construct that you don't agree with. Large corporations and their 'policy documents', for example. I don't want to work for a company in which my boss doesn't have the autonomy to speak to me as a human being - this stands regardless of whether my job is backbreaking labour or eating chocolate bars.
I wish there were a way for startup founders to do what they love doing, and not what the VC/fundraising cycle tells them they should do.
If someone can solve that problem I'd be really really happy.
I have a friend who will program all day. He spends all his time on Project Euler. He loves studying algorithms to understand them completely and trying to devise better algorithms. This is what he does in his free time. He does it all the time because he hasn't had a job in years. My friend is probably a much better programmer than I am but I have steady well paying work because sometimes I like programming and sometimes I like talking to people and the second part helps me work with clients and co-workers. My friend the obsessive programmer for whom it is always a hobby can't hold down a job for the life of him. I hope for his sake he finds something that can support him as well as fulfill him. But the advice pg presents in this article is so trite as to be useless.
Some programmers are engineers: they deal with the world as it is -- messy, inconsistent, evolved. They are good at debugging, because they are in tune with how things actually work (not how people SAY they work.) They like trying things before reading about them.
Some programmers are philosophers and mathematicians: they like to consider things from first principles, read a lot, and build up systems in their head. They make huge breakthroughs because they question fundamental assumptions. But sometimes they over-model things and ignore how the world actually works, in favor of "elegant" ideas. They may not like debugging because it is often dealing with other people's broken assumptions (i.e. legacy code), and not any real fundamental idea.
So PG clearly seems to have the philosophical bent and has made breakthroughs. But if he really likes debugging, then that means he comes at programming from BOTH the engineering and philosophical traditions, which probably explains why he's a great programmer. (I just stumbled across a copy of ANSI Common Lisp at work -- looking forward to seeing his style more closely.)
I think to be really good at something, you have to understand it in two different ways. Same goes for being able to write code from scratch (maker perspective) and being able to hack into it (breaker perspective).
Although, I have to say, there is a big difference between debugging your OWN code and other people's code. Not sure if anyone likes debugging typical enterprise code. :)
For me, I can get frustrated when I'm coding and can't figure out a bug right away. But on the other hand there's nothing I enjoy more than spending N time trying to understand what's going on, solving the problem, and feeling a spurt of elation at succeeding at my task. I'm not sure how people who don't see it the same way could handle that kind of work.
With that said, I do think there are areas where even if you don't initially enjoy the activity, you can come to appreciate it and eventually enjoy it.
"When I was in college I used to write papers for my friends. It was quite interesting to write a paper for a class I wasn't taking. Plus they were always so relieved."
I discovered early in my life that by changing the perspective of a problem you could transform something dull and tedious into something exciting and highly interesting.
For example , when I learned to visualize mathematical problems I become much better at solving them.
Mindmaps, and memory tools can make someone who struggle(and suffers as for example when he does not pass an exam) in something to fly around it.
I had a history teacher that went to wars in his youth as a news reporter, learned languages and traveled the world, studied history by correspondence(from a distance University), went back and settled with a young lady as a teacher.
History for us (the class he teached) changed forever. It was not about words on paper, but about real people, real places, interest and fights, and winners and losses, consequences. We saw photographs of the victims of the wars, some of them taked by him,the stories on how politics and decisions affected their lives and their families', other pics taken by his friends.
After that course, even with completely different teachers History was so easy to study, to remember.
About debugging. I believe the best programmer is the one who hates so much debugging that is able to work terribly hard in automating it and not have to debug EVER again.
People who loves debugging is a problem for me. I want things so well documented and well designed that debugging becomes almost non necessary.
The fact that people believe it is ok to have crappy documentation, crappy design, and spend months trying to catch problems(because they enjoy it) is a misfortune.
Oh, and trading I love trading. All kinds of trading. I've spent many many nights trading items in various games. Oh, and programming a bitcoin arbitrage trading bot was super fun.
Hmm, it was good thinking these things over I guess.
For example, I always loved theatre and plays but I was told in young age that it's very hard to support comfortable life as a thespian (unless you are breakout success); so best not to take that as a career even though it may really work out for you.
I don't mind writing. I don't mind public speaking. I don't mind grappling with tough problems. I don't mind working alone. I don't mind being indoors.
I do mind physical labor. I do mind cold calling. I do mind having to worry a lot about people's feelings.
If you have different preferences from mine, then you probably should also be in a different line work.
Building mechanisms of course implies some core problem (i.e. how to model what you need to solve and how to compute the result) and interfacing (how to run that thing at all in a physical computing environment and how to talk to all the other), but those don't raise up as major appeals. One or both can even be trivial and I don't get bored yet.
The play of ideas and experience and using those to build something that works is highly enticing. So, the more I gain experience, the more rewarding programming has become, which in turn gives me more ideas that I try out or problems that I try to solve, which accumulates the experience, and so on.
The most boring part of programming is often interfacing. This means anything from negotiating with other people/teams to learning obscure one-off APIs just to get the juicy bits running.
The actual problem (think in terms of maths or CS) can sometimes be interesting but not necessarily per se. Rather, a tricky problem can serve as an excuse to build a very complex or advanced mechanism.
Debugging is just pure fun. It's like trying to find out that slightly loose part in the transmission of a car that sometimes makes the 2nd gear a bit difficult to engage. Debugging happens when the mechanism is mostly built but not yet completed. You can almost see it working, sans a few problems that you know are there. It's hard to imagine sources of greater motivation and mental satisfaction than debugging.
I built electronic parts for Westinghouse's Nuclear Reactor Simulators (near Monroeville PA) in the mid 1980's. There were a ton of intelligent people working there and since every reactor built had to have an identical training simulator, there was quite a bit of knowledge required to make the systems realistic. Sometimes simulating the required behavior of a nuclear reactor was more complex than what occurred in the real reactor (simulating the pulse shape and randomness of a Geiger counter or driving a synchroscope with hopped up audio amplifiers).
In any case, those guys provided a lot of on-the-job education for a young engineer ... thank your dad for me as I might not have interacted with him, but surely some other "youngster" did.
If you do know of something which doesn't feel like work to you, but does feel like work to everybody else, there's indeed probably something there. But if you don't, it may be possible to create such a something...
What if acting doesn't feel like work? Playing soccer? Hiking? It's extremely difficult to make money doing these things. "Follow your folly" career advice can work, or it can just make people feel terrible because they realize they're doing things they don't love because they can't make money doing the things they do love.
One of them for example: if I like a song in a foreign language I'm learning, I will look up the lyrics and try to translate it by carefully analyzing each sentence and using lots of dictionaries and Google searches (sometimes asking on Forums or asking native speakers in person). It takes anywhere from hours to days. It might seem to most people that this requires discipline and tenacity, but when I do it I just do it for fun.
I'm not so sure though that I would enjoy it the same way if I had to do that kind of work for a living.
Sorry, did Paul just say that he helped people cheat in their college classes? Or did the professors know he was writing others' papers?
to be honest i think i only enjoy writing software about as much as the next person! can we be honest that it's an absurdly good job currently?
When I was an undergraduate, a lot of my peers who didn't have a similar CS background struggled. I experienced this myself when I transferred into the mathematics program. I never had a serious engagement with mathematics until I was in university.
I think reaching the stage where an activity becomes natural requires a serious personal engagement. That is, you have understand the questions which guide the activity (your interests have to align) and you have to have the freedom to ask and answer your own questions (being able to solve your own problems). The activity has to become personal in some sense.
I also really enjoy the process of understanding things in general - figuring out the important/disparate parts, determining how they link together, exploring connections, etc. Once I understand something all of the possibilities hidden in that topic are open to me and my creativity.
But I'm terrible at taking time to create things. Once I have the solution it is very difficult to find the drive to actually continue and build on it. It's always a slog, as if I were a kid being forced to eat vegetables. I think I'm slowly improving, though.
People hate programming when they do it with 1000 other colleagues. The same programming is rewarding when they do it alone - since, that lets them do things that no one in the world is doing.
That may be true for startups in general. Doing startups seem cool since only a handful (<10%) of total population is doing it. If everyone starts doing it, it may not be as cool.
For example- I knew from an early age that I liked tinkering around on computers. However when I got to college, I found programming monotonous and boring. When I worked as a software engineer for a large boring company I hated it even more. To the point that I actually quit and switched careers.
Then, a few years later I discovered Ruby on Rails and development on a new Mac. These seemingly small changes to a new environment rekindled my love of computers to a point that I spent nearly every weekend for three years teaching myself Rails. I remember one weekend I flew to a bachelor party in New Orleans and all the way there I read a book on Rails. It wasn't work anymore, but a hobby that I truly loved.
This is not to say that everyone is cut out to be or will enjoy being a programmer with just the right tools. However I think a lot of people take a first glance at something and give up on it without having a comprehensive understanding of the reality of doing the work in an ideal environment. To this day it annoys the hell out of me when non-technical friends ask me questions about coding as if it is some awful task that has to be done- "Why would you ever want to do that?" These people never actually have tried it so they don't know what is actually involved or whether they might actually enjoy it.
Recently I thought, I have to do something with this and I started a Drupal system for searching locally cultured vegetables for sale. It was fun in the beginning but my wife is a designer and pretty soon I was editing CSS all the time and I completely lost interest. It felt like work. I left it in an ugly, unusable state.
Still, I keep setting up servers with the occasional blog with some articles if my attention span allows it. Who knows what I might do with it some time. I have this vague vision of setting up a web services company with CMSs for sportsclubs but that will come with paper work and I know I will regret it. I have a nice job as a biophysicist by the way and I get to play with large Linux clusters from time to time and I try to take those chances as much as possible.
Some things just start feeling like work as soon as they become work, as soon as there are any milestones to catch or things to finish. To me things feel like work if I can't just quite half way into a "project".
Even the artificial deadlines can be fun, though there is a definite cost to working an 80 hour week.
Most days are like playing, really. Sometimes you have to come into work and push a pencil, but hopefully those are rare.
Further, working with others who are passionate about what they do produces one of the most wonderful pleasures in life, as it blends deep community/social bonds while plugging into life!
Completely agree. I came across similar thing 5 or 6 years back. When one-of my co-worker called me to debug/show a problem with his website-download module to export data as spreadsheet. The data came as some junk characters,even though site-page shows proper data and db-records are fine too.
I clearly remember the following conversion.When I tried, I also got spreadsheet with unreadable chars, and I said, "nice,that's interesting!!" and my co-worker laughed and responded "what? is this interesting???"
How do you separate hobby from a potential work/job?
Creating useful things, or something that is fun to do.
Making something come to life, a product, a character, a moment, that people use or enjoy experiencing.
It could be in programming, art, a system, a product, something digital, something physical, anything useful that removes part of the monotony of life, reduces drag, and improves the thrust of life.
To me a comic strip, a rocket ship, a new game, a system that takes away boring tedious parts of life, quality of life improvements, and anything helpful to make the day more of an adventure, are all on the same plane.
When I was 9 or 10 years old, someone (may be my cousin or my fathers' uncle) gave me a book on simple electronics (it was in my native language). That was the first time I read about P-Type & N-Type materials and some other physics. It was so fascinated to me that I used to read it all the time to understand. The book also included about very simple digital logic design and concepts like NAND Gate etc.
I didn't understood at all what it is all about. But It developed my interest in Physics and Electronics.
By the age of 13 or 14 I learned myself about soldering, creating very simple chips and some LEDs on-off work. I never learned any math or could develop any mental model about true electronics but all that work created an infinite desire to know about the nature of "materials" & physics behind everything.
My parents put me in school which was 12 KM from my village, I used to bike every day 24 KM two way with some other friends no matter if it was summer with 43 degrees or winter with -2 degrees. And I was just 9 years old young kid. I started skipping school and start searching more books like that great Electronics books. I bought many but couldn't understand the foundations at all.
That same book had chapters how you can create a sequence of LEDs which keep going on & off one after other and make some interesting visual. I opened every electronic device at home and tried to understand its chips but couldn't get at all what is going on.
None of my friends studies beyond class 8 but I kept going. I started studying physics at the age of 15 at school but it was all so bookish and memorisation that I never liked school at all.
But I studied Physics, Biology & Chemistry myself and enjoyed every single moment of that time. That was the only time I studied Sciences and developed an intuition about the scientific world.
My parents took loan and sent me to a bigger city for my Bachelors degree. But the education was so artificial that I couldn't learn anything more at all. Every single book was in English (which is not my native or national language) I feel so empty & everything useless. At the same time my parents were sending me more money than they could afford.
I went into depression & at some point in my Bachelors' degree I found out about Internet & "Software". I started learning about Web Site development. I learned HTML, Adobe Dreamweaver & Fireworks. Then I learned a bit of C++ & C#. (I remember I started learning about C# in April 2002).
I got a job as a programmer in an off-shore office of a USA company. I then saved some money and escaped from that country and came to Sweden because of free education.
I studied Computer Science & developed an intense love with Mathematics (even though I'm not good in maths) & Programming Languages. Now I'm working as a Software Engineer but I have deep love with Electronics & Physics. And that all goes back to the days when I was reading that simple electronics book.
Odd. I barely do any debugging at all. If it compiles, it's usually right, and when it's not, I just kick back and think. Thinking takes a lot more of my time than writing or debugging. Perhaps that's because I work largely by myself on those components - there is no one else's intent to grasp.
Not sure where this is going, but imagine something like the first public musician. Or the first ever commissioned artist. It must've been valuable, because someone funded them to make it happen.
Getting paid for it is difficult. Arguably one has to become extremely good at a particular skill which is in demand and be able to promote himself.
But thinking of it after reading the last part of the article i realized that i actually find that debugging is quite fun, i have never really thought of it until now.
I hate debugging (and more generally "diagnostic reasoning" in general... also went through med school long time ago), that I've actually become a "language geek", researching language after language and programming pattern after pattern in order to find strategies to reduce as much as possible the debugging work that I have to do. I've learned Lisp. I've started learning Haskell. Rust is on my "to learn" list now too. And my absolute hate for debugging work makes me research new things every day in the search for that nirvana where code that compiles always works and where you don't have to work 5x as hard to please the compiler either...
I suspect, that it almost never works that way. Learning programming or hacking as a child is all about figuring it out on your own, doing something, what your parents or your teachers can not understand, defining your own identity.
That is why I doubt that all the programs in the US, which try to teach children programming, will work. They might teach some concepts, but in the end i fear, that they will hinder the children to aspire a career in the field. I see a bad parallel to beauty contests, were parents try to live their dreams through their children.
Of course it is never black and white, but I think you have to be ultra careful with stuff like this. I think naturally interesting, open platforms are a better way to get children to dig deeper. Minecraft is a perfect example.
Don't understand this part, what's the obvious thing about math he was late in admitting?Were the Bell labs people right in his opinion or not?
Might be some good wisdom in there but that is the most convoluted, badly written several paragraphs I've seen in a while. Maybe they're taken out of context or something or assume some knowledge that is missing?
I intuitively knew as a child that there were parts of programming and using computers which "weren't work" for me, but also very much ones that were, and I foresaw the probability that I might cease to enjoy the "not work" parts after being ground down by too much work.
As I come back to it now, I still think that. Increasingly I think it really, genuinely, depends on the style and language of programming you take up, and what you do with it. When I code in something like Lisp or Haskell, it doesn't feel like "work," it feels like problem solving. I tend to focus on CS topics as well; I built a VM, and a couple of programming languages, because they too were fun to think about, not work.
For me, I have progressively gravitated to more and more expressive languages, while moving away from more imperative ones which descend into repetitive "design patterns". I burned out quickly on the world of web programming, which inherently seems to require a whole lot of tedious yak shaving if you're flying solo.
Of course, the flipside which anyone bothering to read this may already be hastening to chastise me with is that none of this is likely to necessarily lead to actual employment.
That resonates deeply with me. Until my early 20s, I was terrible at absorbing any form of wisdom from anyone. I just went ahead forward into whatever interested me, with no regard for what anyone would have to say about it. I was fortunate enough to be born with a brain that worked fairly well and allowed me to get away with this behavior for the longest time.
It is for this reason that I consider my time in grad school as mostly a failure - I joined at 19 as a PhD student and left 2 years later with a Master's degree, leaving the PhD for startups, and in those 2 years I didn't achieve anything that I'd consider interesting work (completely by my own fault). Even worse, my immaturity resulted in me making very little of the absolutely brilliant advisor I had (the perfect combo: a researcher whose early work pioneered a new field and gave him enormous peer recognition, but who was still early enough in his career that he had plenty of time to devote to his students), who had high hopes for me that ended up completely unfulfilled.
It was only after a few years of working in the real world with some very smart (and some very dumb) people, getting yelled at, seeing friends get fired (I never got fired myself although I came close a few times), and a few other similar experiences that I realized that indeed my life would be much improved if I stopped and recognized that some people do have words of wisdom that hold value for me. Psychedelics and traveling the world+meeting people who had it way worse than me yet achieved way more with what they had also contributed significantly to my maturing - the rewards of it being that I now am starting to enjoy an amount of success, clarity, and reward in my work that would have been unconceivable 6 years ago (although it still feels like most of the road is ahead, as it should).
For those reasons, it feels like advice such as the one given by PG is lost: the people who need it most won't really get the importance of what he means, and the people who will get it can do so because they've already internalized it.
All that being said, I look forward to 5 years from now, when I will say things about my mid-20s similar to what I just said about my early 20s :)
Right now, I'm going with the path that not only makes more money(and thusly induces less stress), but also has a higher probability of making people's lives better, through the kinds of things I want to put my time and effort into being focused around enabling people to create their own jobs.
Yet I know extremely well what I want to do, what makes me happy. It will make some others happy, but a significantly smaller number. It certainly won't change lives for the better. But doing it would make it so the things I think about in the margins of my mind, all day and night, for as long as I can remember, are what I spend my life working on.
In essence: I can't tell if it's a better idea to do what makes me happy, or what makes others' lives better.
I started on Perl 4 in the mid-1990s. It was fantastic! I started replacing thousand-line C programs with hundred-line Perl programs that were more robust and worked better, and replacing shell scripts made of awkward sed/awk pipelines with neat, tight Perl. Arrays and hashes as first class data structures? Marvelous!
Then Perl 5 ruined it all. The ridiculous, bloated "object oriented" syntax rendered it basically unreadable, without adding much useful functionality. The layers of syntax options forced teamwork-driven Perl (I wrote about 10k lines of it) to pay close attention to coding standards, closer than more consistent languages, just to not step on each other or have fights.
Then along came Python and Ruby, which shared most of the benefits of Perl (scripting, mostly), but added very clean, elegant OO syntax. Everyone who actually cared about writing decent OO scripts switched. Plus Python had much better math libs, and Ruby soon had Rails.
And Perl 6? Fourteen years and nothing to show for it, and it'll have to be backwards compatible to all the things violently wrong with Perl 5. There's no use case that isn't already covered by Python and Ruby. Unless some new technology comes along and Perl jumps in firstest with mostest (like Ruby did with Rails), no one will really care.
The average age of Perl programmers has been increasing by about one year per year since 2002 or so. I don't see that changing anytime soon.
Yes, I'm talking about Java. It's easy to hate now, but Java back then replaced all the server-side Perl programming that I did in the space of about 3 years, from 1994 where CGI programming was king to 1995 and the applets craze to 1999 when I was still regularly having conversations with people about the benefits of Java vs Perl to 2001 when you were actively hurting your career by not learning Java (not least because it seemed like the only people hiring were doing enterprise Java with horrible things like EJB and CMP/BMP).
Why did Java beat Perl? Well, there's a lot to that -- but at least part of it has to do with that fact that Java was simpler and didn't have nearly as many tricks up its sleeves (also known as the write-only problem). This is similar to the argument people today make when picking Go over other options like Scala. I also don't think it hurt that Java came out of Sun, which on the one hand was extremely influential because they sold the hardware everyone with money used, but on the other wasn't influential at all because they were "big iron" to the web's "why would I buy a Sparcstation when I can just put a PC under my desk?"
Fundamentally, though, Java was very successful at becoming the language you wrote code in if you wanted to be taken seriously as a software engineer building web applications and you didn't already have 5+ years of C++ experience. Perl programmers didn't get the same respect, and so Perl died.
> The implications for a programming language are difficult to prove conclusively, but simple to explain: an ecosystem focused more on maintaining existing projects than creating new projects will be less attractive for new projects.
Ruby/Rails provides an interesting example here. The ruby and rails community ecosystem (the author is right it's about "ecosystem" more than the language) -- has, in general, done it's best to focus as much as possible on innovation over stability. That is, has tried to choose focus on creating new projects over support for existing projects.
Much to the frustration of some in the ruby ecosystem with existing projects to support.
(Rails, of course, from one perspective is an existing project; from another is a framework, which has generally over it's history cared more about new projects that will be created with Rails than existing projects built on Rails that need to be supported).
Of course, there still are existing projects, and there are still developers participating in the ecosystem who need to support those existing projects. So you can only go so far.
What has this done for ruby/rails ecosystem? Hard to say. Overall it's been successful, but it still can't make the ecosystem as greenfield as a true greenfield ecosystem, which is perhaps why some are leaving ruby/rails for greener pastures -- more than any qualities of ruby as a language, it's just the opportunity to be in a greenfield ecosystem that is attractive, perhaps.
That's not to say Perl 6 wasn't needed. Among programming languages Perl was probably my first love, especially the linguistics tie-ins with $ @ % etc, but write-only was a real problem, and people were moving to Python on the one hand and Java on the other. Maybe PHP killed Perl for low-end cheap hosting, but for larger projects, among people who would never have considered PHP, it lost because picking it seemed irresponsible.
My employer produced an amazingly popular perl-based web application, using flat files for data storage because so few shared hosts had DBI and DBD::mysql installed. It's some gloriously horrible code. They did a ground-up rewrite and then hired me to maintain it, right as PHP was becoming popular.
They refused to do a PHP version until it was too late. Someone else translated our code into PHP, then rewrote it a few times before releasing it. Over just a year or two, our marketshare plummeted, and now the UBB is a distant memory. We couldn't deliver a competing product.
Even if perl hadn't lost the deployability battle, the perl 6 fiasco was what let python and company eat away at the mindshare that wasn't concerned with just web applications.
Maybe it didn't win because the language syntax was just a mess, and same variables just in different contexts could mean like 3 different things depending on what way you pass them, what you you return them and what kind of random character is in front of them.
Don't take this personally, just ranting out my feelings for the Perl programming language, and glad that it isn't one of the things I have to know anymore! Good riddance!
When I converted a perl script to python and saved 50% LOC I didn't know which version of which I was using. Am only vaguely aware of the Python 2.x vs. 3 issues. Never was aware of Perl 5 vs. 6.
When Python and Ruby fade, I look forward to the hand wringing about how version whatever didn't get pushed out fast enough. But that won't be the reason.
I've come to realize years after that Perl is simply difficult to learn, lots of little things to memorize. Its community took pride in language arcana. Things that are now simple in other languages are unbelievably difficult in Perl, like "hashes of arrays of hashes" and things like that.
On top of that, it's also difficult to read. No wonder Perl is losing, and to me the faster the world is cleanup from that, the better.
I can't help but think that we'll eventually be seeing "Why Python3 Didn't Win". Perl and Python both foolishly abdicated the throne.While shots are fired, I think Python3 could still recover with more compromises from its 'leadership'.
This is the way I see it. Perl5 is still being actively developed, perl6 is coming along nicely, cpan more awesome than ever, and there's still work for a perl dev.
If everyone was using the same language, then we'd all suffer because no one would be getting the new ideas.
Competition keeps things healthy.
while I don't do anything with it today, I do know Perl/6 would be in contention for my 'deserted island' language of choice.
yet another dph
Allison Randal wrote on the death of Perl a while back and had some observations worth nothing to understand how it fell:http://allisonrandal.com/2013/03/31/mythbusters-why-i-still-...
I really liked working with Modern Perl, but rarely do anymore mostly since "nobody uses Perl" kills any suggestion even when it might be the right tool for the job. Ruby has become Perl 6 for me.
> They're going to merge Perl 5.12 and Perl 6
in "mid-2001" to:
> There's a Perl 5.8 on the way
in 2002. ^_~
That said, I think that anyone doing serious Perl 5.x work has long since abandoned the idea that Perl 6 has anything to do with Perl 5.x other than sharing the "Perl" name and Larry Wall. Maybe this is confusing to "outsiders" and the branding needs to change? It's not like the Perl 5.x line is not being maintained. Since Perl 5.10, there were some significant improvements, with consistent point releases coming out.
I feel Perl does not deserve to be mentioned in a hero's tale. There's been too much rankling and nincompoopery out of perl's characters given the size of that community. Far, FAR too much griping. Perl is a bummer, and that is why it did not win.
My philosophy is: live the life of a champion - overcome and be a shining light for others. Your war stories should be mostly glorious victories, no matter how mundane the battles or battlefields were.
PHP, on the other hand, handled the PHP 6 "failure" relatively gracefully. There was a bit of stagnation in the days of PHP 5.2 when the devs devoted too much energy to PHP 6 and not enough on improving the current version. But soon, PHP 6 was put on hold and some of its better parts began to be ported to PHP 5. Thanks to this decision, PHP has improved by leaps and bounds since 5.3. Also thanks to the lessons learned, nobody is particularly worried about any breaking changes in PHP for the foreseeable future. Everyone knows that any script that works in PHP 5.6 will probably work just fine in 7.0, so new projects continue to be written in PHP. This peace of mind is very important for languages that carry a lot of legacy baggage.
If there's anything for other languages to learn from PHP, it would be their graceful handling of PHP 6 -> 5.3~5.6. The syntax is still terrible, and the default behavior remains borderline insane, but PHP since 2009 has been an exemplar of how a widely used scripting language should handle new versions.
Even better if at the top of code I could just put:
Use OpenData (BarnesHutt BubbleSort SVD)
If only these people would tie in with the Computer Language Benchmarks Game so that you would have a feedback mechanism to improve All algorithms (not just the CBG subset) and a natural way to meta rate algorithm implementations vs one another as well as task groups (like "sorting") or languages as a whole.
Totally worth the read!