I Love the U.N., but It Is Failing - <AUTHOR> http://www.nytimes.com/2016/03/20/opinion/sunday/i-love-the-un-but-it-is-failing.html <comment><USER4> Related article: Don't be a UN Intern

 _First thing's first. You should understand the objectives of the organization you're trying to join. There are three primary objectives of the UN system today. The first one is to pay the salaries and the perks of its employees. The second is to give them a microcosm in which they can walk around in suits, look important, use buzzwords, and basically find some, however contrived, meaning. The third one is to make it seem like there is an international political system out there, a framework of rules that everyone respects. This last one is increasingly optional in the post-Cold War geopolitical climate.

...

Your globetrotting, world-saving dream job doesn't exist. It hasn't existed for a while. The world has been explored – it no longer needs explorers, and especially doesn't need faceless bureaucrats. It needs people who do things. Even if, through blackmail, magic rituals or blind luck, you land a UN job somehow, you will not be part of the world elite – far, far from it. You will push paper watching your years go by; your sole obsession will be sucking up to your neurotic supervisor in the hope of seeing your grade increase by a small notch five years down the road; you will wake up at 55 wondering where your professional life has gone. And that's even discounting the remote possibility that the funding countries come along and say "Ok guys, the show's been great, now pack it up and go home, you're not needed anymore."_

[https://desertqueensarah.wordpress.com/2015/08/21/dont- be-a-...](https://desertqueensarah.wordpress.com/2015/08/21/dont-be-a-un- intern/)

<comment><USER5> >This last one is increasingly optional in the post-Cold War geopolitical climate.

Considering Russia and China are casually annexing territories, its pretty obvious this framework no longer exists. The UN made sense when the security council members had some incentive to use the UN system, but when their foreign policy is to circumvent international law at any opportunity, then its easy for them to sidestep it. Autocratic states ultimately can't work with democratic ones. Its unfair to expect one group to 'follow the rules' and another to go off willy-nilly when it serves them. There's no enforcer here, they're supposed to be voluntarily enforcing themselves and obviously that's not happening.

I won't even go into how easy it is for democratic nations to game the system either. Bush's run up to Iraq had all the hallmarks of the 'legitimate' UN: a debate, an airing of evidence, a vote, etc. Ultimately, it was just as hollow as an autocratic state annexing territory and telling everyone to piss off.

I suspect the UN has long fallen into pageantry and will never recover. It probably made sense to keep the US and the USSR from nuking each other, but today it lacks purpose and any real spirit of participation. It now exists to bully smaller nations who don't have a permanent seat in the security council, and because of that, it will never go away.

<comment><USER6> > Considering Russia and China are casually annexing territories, its pretty > obvious this framework no longer exists

A pretty big overstatement. The only cross-border war between nations I can think of is Russia and Ukraine. If perfection is our standard, then of course the UN and everything else is a failure. Otherwise, the UN is doing this job effectively.

> The UN made sense when the security council members had some incentive to > use the UN system, but when their foreign policy is to circumvent > international law at any opportunity, then its easy for them to sidestep it. > Autocratic states ultimately can't work with democratic ones. Its unfair to > expect one group to 'follow the rules' and another to go off willy-nilly > when it serves them. There's no enforcer here, they're supposed to be > voluntarily enforcing themselves and obviously that's not happening.

The golden age you imagine never existed. It's always been this way. This is the way the UN, and politics in general, works. I wish it were otherwise and we should work to improve it, but it does work, unless we measure it by the standards of ideals and perfection - and then what human institution (or human being) measures up?

<comment><USER7> >> Considering Russia and China are casually annexing territories, its pretty obvious this framework no longer exists

> A pretty big overstatement. The only cross-border war between nations I can > think of is Russia and Ukraine.

Russia is not at war with Ukraine. Russia is just running a covert action in Ukraine in an attempt to destabilize it's democratically elected government.

Russia has never like the fact Ukraine decided to leave the Soviet Union.

I suspect the reference to China refers to how China is unilaterally taking ownership of the South China Sea using it military strength, with total disregard to international law.

It might also be in reference to how China handles Tibet, or how they are trying to kill democracy in Hong Kong, or maybe how they have their eyes on Taiwan where they claim it is rightfully theirs.

> The golden age you imagine never existed. It's always been this way. This is > the way the UN, and politics in general, works. I wish it were otherwise and > we should work to improve it, but it does work

I suspect drzaiusapelord disagrees with you when you say it is working and I would say I tend to agree with him.

The modern day UN is nothing more than a very expensive bureaucracy that in reality achieves very little.

Maybe it has never worked?

<comment><USER6> > Russia is not at war with Ukraine. Russia is just running a covert action in > Ukraine in an attempt to destabilize it's democratically elected government.

Russian troops invaded Ukraine, killed thousands (more?) Ukrainians, conquered a large part of its territory and people, and organize, supply, train, and fight along side an open rebellion.

I'm not sure what else to call that but invasion and war. The Russian and Ukrainian goernments avoid that term right now because both want a cease fire.

<comment><USER7> I do realize that _Russian troops invaded Ukraine_ but they are not at war (i.e. war has not been declared).

Ask Putin are Russia soldiers in the Ukraine he will say no.

Ask him if Russia is supporting fighters in Ukraine with weapons he will say no.

Ask him is Russia at war with Ukraine he will say no.

That is exactly why the UN is so hopeless. Everyone knows the answer to those questions is YES and Russia is effectively at war with the Ukraine, but all he has to do is deny it.

Ukraine has even gone to the UN asking for help, but nothing is done, only because the UN is such a toothless tiger.

The big world players, USA, Russia and China do as they please, regardless of what the UN or the rest of the world thinks.

<comment><USER6> The UN Security Council is designed to reflect the actual, not the desired power in the world (as I understand it). For example, when the UN was established Stalin's Soviet Union was given the highest status, a permanent seat and a veto on the Security Council. It's a mechanism for the powers to resolve differences and act when possible. Whether we like them or not, China and Russia have the power to afffect the world, and we need a way to deal with them as peacefully and effectively as possible.

The UN represents the will of the world's powers, for good or ill. As Russia has the status of one of the five leading powers and another, China, does not oppose them in this matter, the will of the world's powers is not what we would like regarding Russia's invasion of Ukraine.

In other issues, the world's powers do agree. Two examples are Iran's and North Korea's nuclear programs. Another is the recent Ebola epidemic in West Africa.

BTW, you'll note that the Europeans and the U.S. also don't refer to it as war or invasion. I"m pretty sure it's because they don't want to escalate the situation, and neither does Ukraine. If it escalates, more innocents die, more is destroyed, and Ukraine loses even more than they already have.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> To a great degree, these complaints should be familiar to anyone in a large bureaucracy: Endless procedure, imcompetence that can't be fired, decisions made for political reasons, etc.

Now imagine a bureaucracy run by and accountable to all the national government bureaucracies in the world! And remember that the ones most HN readers live under are, despite our whining, the most efficient and least corrupt in the world - the others are often far worse.

That's the UN. If you are going to have an association of the world's governments, I think that's the way it's going to be.

Like democracy, it's horrible but better than all the alternatives. It's primary purpose, IIRC, is to prevent international war (i.e., wars between nations, as opposed to civil wars). After all the war of human history, after WWI and WWII occurring within a 31 year period (think of that: that's like 1985 until today!), international war has almost been put to an end. It's now a major exception when it happens, and that fact is really a miracle.

They also achieve many other very important things, though expensively and slowly.

Remember that the UN is no fuzzy-minded idealist's fantasy. It was built by the survivors of WWII and WWI, while the ashes were still smoldering. Those people knew far more of war and the realities of man's inhumanity than we can imagine.

<comment><USER8> I agree with most of what you said about the bureaucracy, but the Pax Americana was achieved the old fashioned way, the same way as the preceding Pax Brittanica and the Pax Romana, to put it crudely, "Peace through superior firepower."

The real question is, does the UN or anything like the UN have role going forward, or must we suffer further degradations till we may arrive to some Pax Sino.

I've often speculated in my head about the desirabilty of closing down the UN to replace it with a "United Democracies" based as much on the carrot of trade as much as on any cudgels, but I think that's just a fantasy, you're always going to run into problems like "should Turkey be in or out of the EU and/or NATO, which way are they headed", and when do you ever let Russia or China in.

<comment><USER9> Although the idea of a 'United Democracies' or whatever it gets called sounds appealing, it has many flaws.

One of which you highlighted regarding what constitutes a democracy - <USER2> could even argue that the Electoral College in the USA means it isn't a true democracy!

Others are what legitimacy it would have in relation to countries that aren't members. Why should those countries care or co-operate with the organisation? Likely it would end up with UD trying to impose its will by force, which is a backwards step.

Furthermore, just because a country is a democracy doesn't mean it is automatically superior to every respect and entitled to adopt the high ground. Many democratic countries around the world have engaged in human rights abuses, started wars and interfered with other sovereign countries to install leaders who push their interests over that of the citizens. There is the danger that said countries in the UD would end up turning a blind eye to each other abuses because they, by definition, "wouldn't do that sort of thing".

<comment><USER10> One of the more positive aspects of hereditary monarchies is that their rulers are invested in the long-term success of their kingdoms. Democratically elected rulers have no such incentive. Instead, they promise favors to donors and their electorate, start never-end wars (wars on drugs, wars on poverty, wars on hunger, wars on literacy) for which the costs are socialized and the profits privatized (particularly by companies in which they have interest). Democratically elected politicians remind me of people who strip the appliances and wiring out of their homes as they are being evicted.

</comment></comment></comment></comment><comment><USER11> The UN has a lot of problems beyond just its bureaucracy. I'm suspicious of it's ability to solve the problems it claims it exists to solve even if its bureaucracy was extremely efficient. It seems I read UN scandals on a monthly basis, to recall a few from the past few months:

Sexual abuse by it's peacekeepers ([http://www.washingtonpost.com/sf/world/2016/02/27/peacekeepe...](http://www.washingtonpost.com/sf/world/2016/02/27/peacekeepers/)). "Child sexual abuse by UN peacekeepers" even has its own wiki page ([https://en.wikipedia.org/wiki/Child_sexual_abuse_by_UN_peace...](https://en.wikipedia.org/wiki/Child_sexual_abuse_by_UN_peacekeepers))

Bribes are abound, even a story earlier today ([http://www.seattletimes.com/business/humanitarian-worker- cha...](http://www.seattletimes.com/business/humanitarian-worker-charged-in- united-nations-bribery-scheme/), [http://nypost.com/2015/10/06/former-general- assembly-preside...](http://nypost.com/2015/10/06/former-general-assembly- president-charged-in-un-corruption-scandal/)).

Saudi Arabia is on the human rights council ([http://www.thedailybeast.com/articles/2015/09/22/why-is- saud...](http://www.thedailybeast.com/articles/2015/09/22/why-is-saudi-arabia- heading-the-u-n-human-rights-council.html)). Not exactly a "scandal" but in the same vein.

It's ever-increasingly hard to take the organization seriously.

<comment><USER12> Its ability. It's is a contraction for it is or it has.

<comment><USER13> I have a feeling the parent commenter knows the rule, but didn't care to follow it. Your comment seems like someone who walks up to every smoker they see and says "Did you know smoking causes cancer?"

<comment><USER14> _I have a feeling the parent commenter knows the rule, but didn 't care to follow it._

I have that feeling as well. It's a truly horrible thought.

<comment><USER13> it's just grammar, not anything horrible

<comment><USER14> It's not the grammar that's horrible. It's the underlying attitude and its shortsightedness.

</comment></comment></comment></comment></comment></comment><comment><USER15> AIUI, the UN's mission is twofold:

* Stand up for the sovereignty of the world's nations.

* Defend human rights throughout the world.

These missions are in direct conflict. It's impossible to force states to play nice with human rights, while at the same time respect the sovereignty of these states.

What we're left with is just like the conflict in 2001's HAL-9000. Given two conflicting goals, bad things happen. Neither objective is fulfilled, and the system fails in all kinds of other ways too.

<comment><USER16> It is not a contradiction, it is a sham. To wit:

Universal Declaration of Human Rights, Article 29, section 3: "These rights and freedoms may in no case be exercised contrary to the purposes and principles of the United Nations." [1]

[1]: [http://www.ohchr.org/EN/UDHR/Documents/UDHR_Translations/eng...](http://www.ohchr.org/EN/UDHR/Documents/UDHR_Translations/eng.pdf)

</comment></comment><comment><USER17> The UN is a joke.

It breaks its own rules by refusing entry to a country with a vibrant democracy and a roughly comparable population and GDP as Australia—Taiwan. Why? Because China has a veto. Consequently, not only will the UN continue breaking its own guidelines and refusing Taiwan entry but it will also never condemn China's repeated threats of invasion.

Similar dynamics play out interests concerning other veto wielding countries such as the US or Russia.

<comment><USER6> > Why? Because China has a veto ... Similar dynamics play out interests > concerning other veto wielding countries such as the US or Russia.

Think of the UN as a mechnism for de facto powers to resolve conflicts and come to agreements _peacefully_ ; that's the UN's purpose, to prevent another major war.

Justice would be great, but at least the catastrophe of war is prevented. Remember of the incredible destruction of WWII and now imagine what modern technology would do - even without nuclear weapons.

Also, Taiwan's official policy is that they are not a separate country but a part of China, with a separate government. That is the agreement worked out between the US, China and Taiwan.

<comment><USER18> You need to be much more clear. The Republic of China's official policy is they are part of China, the geographical/historical/cultural entity. They have never said they are a part of the People's Republic of China. That is the agreement worked out between US, the PRC, and the ROC (note you said it was worked out between US, _China_ , and Taiwan, which is inaccurate).

This may seem overly pedantic, but _it is not_. This wording is the entire backbone of the delicate geopolitical dance that underlies the status quo we have today.

<comment><USER19> Clarifying, not disagreeing; The ROC constitution has historically insisted the territories of mainland China and Taiwan are administered by the ROC. The stance is exactly the same as the PRC.

</comment></comment></comment></comment><comment><USER20> Unrelated to the article: I like the "U" but not the "N". I'm hoping that if we get to ever have a world wide office of any kind, that it will represent "people" instead of "nations". Nations go to war. People are either (1) (ab)used to fight them in name of their nations, or (2) merely trying to protect themselves. The number 1 mostly happens while somehow convincing people of number 2.

Anyway I wish for a "UP", United People, to arise from the ashes of the "UN". Yes, a people movement.

<comment><USER10> So world government? Some of the most powerful people on the planet have been openly advocating for such a system for quite some time. If such a system is created, I certainly wouldn't expect it to be in the interest of "the people". Any time you consolidate such power, it is naturally co-opted by those who already have power. Perhaps advanced ledger technology can help keep things relatively democratic but this all sounds very dangerous.

<comment><USER20> I agree. But then I see problems on this planet that cannot be solved locally.

And.. How flawed it's implementations until now may have been, I still believe in democracy as the best possible option. The "ledger tech" you mention is what could be used to keep the democracy direct (instead of representative). The thought of a world wide digital referendum on some issue, with proper cryptographic underpinnings, this makes sense to me.

I think the UN is somehow a step towards a one-world-gov't as OK'ed by the "most powerful"; they like the nations as that where they have their power vested, so the UN will protect their interests in the end.

The "United People", as I proposed, should actually reduce their power and put in the hands of the people.

</comment></comment></comment><comment><USER21> I've coincidentally been on a couple trips with mid- and low-level UN bureaucrats, and when they got talking, this is exactly what they said - <USER3> organization is hidebound, sclerotic, and all-around useless.

God, the horror stories - even if they're only partially true, there's no reason whatsoever for the United States (or any other country) to be funding such a broken organization.

<comment><USER22> Get a view into the workings of the United States government at some point and let us know which is better or worse

<comment><USER23> With April 15 coming, it wouldn't be hard to convince me that there's no reason to fund THAT broken organization either.

<comment><USER24> This sort of glib disregard for the legitimate function of government plays into the hand of those who benefit directly from a dysfunctional government.

Put another way, it's YOUR government. When was the last time you engaged with it constructively as a citizen? Especially at the local and state levels where individuals can make a constructive difference without becoming full-time activists, lobbyists or politicians?

<comment><USER25> Alternately, 18F

</comment></comment></comment></comment></comment><comment><USER26> The key reason for it's failings according to this author is the bureaucracy.

One of the reasons the UN was created or transformed out of the league of nations was to prevent world war by providing an avenue of negotiation. By its founding purpose I think it has not done too badly.

There's a moral duty the UN seems to have, but this is an extra purpose to the UN. There are organisations that don't need the echo chambers of other nations that can do the same things, such as doctors without borders.

<comment><USER27> The author seems to have foreseen that response and gone to pains to point out _gratuitous_ bureaucracy, such as the requirement to wait almost a year to bring new medical staff on to combat the ebola epidemic.

<comment> k-mcgrady >> "the requirement to wait almost a year to bring new medical staff on to combat the ebola epidemic."

Are you getting this from another source because it doesn't seem to be mentioned in the article. It mentions taking several weeks to process the forms of a medical worker they needed to see at headquarters. The recruitment system that may take a year to hire someone seems to be a separate issue. I wish the author had went into more detail on that because it's very vague. What is the hiring process? Are two or three interview spread over a year? Do you have to interview several hundred people for a position? It's hard to place any importance on the statistic without more information.

</comment></comment></comment><comment><USER28> Bureaucracy of this sort begins with the belief that systems are designed _a priori_ by rules.

I am sure that most of the personnel policies that the author alludes to are well-meaning and intuitive. What is out of scope in such rule-making is the empirical outcome. The cost of delay (213 days to hire) is apparently not a factor in the rules.

They lose a lot of good people in a presumed attempt to ensure they hire good people. Such an outcome is only recognized _a posteriori_.

</comment><comment><USER29> This is an extremely biased article. Having been involved in numerous Hague Convention proceedings, UNCITRAL Arbitration proceedings, and witnessing the current treaty renegotiation efforts of my governments with regard to drug legalization[0][1], I see the United Nations succeeding.

The United States, and it's media arm (NYT being part of it), have been visibly anti-UN pretty much since Clinton left office. Take it from an expatriate: The UN is pretty awesome, once you're out of the confines of the Lower 48.

0\. [http://idpc.net/events/2016/02/ipu-un-parliamentary-event- ac...](http://idpc.net/events/2016/02/ipu-un-parliamentary-event-action-on- drugs)

1\. [http://idpc.net/policy-advocacy/the-un-general-assembly- spec...](http://idpc.net/policy-advocacy/the-un-general-assembly-special- session-on-drugs-ungass-2016)

</comment><comment><USER30> If all the member states would live up to the charter it would do a lot better than it does. Another big problem is veto power abuse in the security council.

<comment><USER31> If all the member states would live up to the charter, would you even need a charter?

<comment><USER32> The problem is the security council states (ie, the big 8) simply abuse their veto to prevent any repercussions of violations.

It's a system without any enforcement.

</comment></comment></comment><comment><USER33> Reading the UN declaration of 1948 helps to put things in perspective. It hangs on my wall.

<comment><USER34> I wish I were that idealistic. But I appreciate the sentiment. In a similar vein I had a Peters† Projection map on my wall for a very long time.

† [http://www.petersmap.com/](http://www.petersmap.com/) (the Mercartor Projection makes the political north look way larger than it actually is, the Peters Projection is an area accurate map. Specifically, Africa and Brazil are waaaay bigger than you'd think folks!)

Link to UN Declaration on Human Rights. Let's all be a little bit more idealistic :) [http://www.un.org/en/universal-declaration-human- rights/](http://www.un.org/en/universal-declaration-human-rights/)

</comment></comment><comment><USER35> You just have to count up how much time the UN spends focusing on Israel as opposed to _every other country in the world_ to realize that it not merely broken, but genuinely in the hands of the bad guys.

<comment><USER34> Rubbish. It is exactly _because_ the situation regarding Palestine and Israel is so atrocious, so unendingly violent, such a blight on the region that the issues keep resurfacing.

The UN doesn't focus on _every other country in the world_ because no other country in the world is occupying a territory it has no claim to and randomly destroys the infrastructure of the occupied territory and uses lethal force against its people.

source: I heard an ex-Israeli soldier who is proud of his country speak about this at length. [http://www.breakingthesilence.org.il/](http://www.breakingthesilence.org.il/)

<comment><USER36> You are clearly wrong. By any mean and comparable criteria, the situation in Israel is far less worse than in any other conflict in the world.

The most trivial comparable criteria is probably the number of casualties in the conflict. If you look at the number of the Palestinian casualties during the Israeli-Arab conflict, and compare it with the number of casualties in any other conflict in the world (such as US's war in Iraq, NATO's war in Kosovo, The war in Syria, The massacre in Sudan, and sadly many other places), you'll see that the Israeli-Arab conflict is far less deadly than those any other conflicts. If only the UN would have given all the other conflicts in the world as much attention as it gives the Israeli-Arab conflict, many people's lives would have been saved. But the UN doesn't. That's probably because the UN's committee of human rights is controlled by states that, let's just say, don't care too much about human rights.

By the way, the organization you linked to is considered biased and unreliable in Israel. This organization "collects" evidences about supposed crimes that Israeli soldiers supposedly committed, but mysteriously refuses to share those evidences with any authority in Israel, despite requests from the legal authorities for such evidences in order to open an investigation and put the soldiers to trial. This organization claims that it has evidences for supposed crimes, but instead of passing those evidences to enable the trial of those who committed the crime, the people of the organization prefer touring around the world telling fishy horror stories, while trying to generalize and present all the Israeli soldiers as criminals. Reasonably, this raises an eyebrow or two about the reliability of those stories.

</comment></comment></comment><comment><USER37> Funny. The ancester of UN (LN [https://en.wikipedia.org/wiki/League_of_Nations#General_weak...](https://en.wikipedia.org/wiki/League_of_Nations#General_weaknesses)) failed with the same symptoms.

Created after WWI to prevent another WW it was disbanded after failing to prevent WWII

So, is anyone here implying we go for WWIII ?

Let me guess.... Milgram experiment is about the submission to authority.... The biggest problems right now is about the impoverishment of the workers and the "rich getting richer", but at the opposite of the time between WWI and WWII no one is proposing to prevent what generated WWII. (Mussolini and Hitler were elected notably to break the unions to help the companies stop losing values on paying these greedy workers diminishing the dividends)

So .... you really want people to go in the streets and ask that one hour worked should be payed, that tax are equally applied and demand that government do what the people ask?

You want the revolution in China, Europa, USA, Canada, Africa .... everywhere except Buthan maybe?

Seriously. This world is fine. With a 300$ phone in your pocket and the right app you can solve everything.

</comment><comment><USER38> Are there any meaningful opportunities for human rights minded developers in organisations such as this? Put another way, should idealistic developers consider careers in such organisations? If so, which ones and how?

</comment><comment><USER39> I read this article with deep interest; it presents a pretty negative image of the United Nations as a bureaucratic giant unable to deliver due to a handful of incompetent staff and lack of proper management mechanisms. I am concerned about the negative impacts of such image can have to the wide public and those committed UN staff who are tirelessly working in non-family/hardship duty stations and reaching out to the most vulnerable.

I would like instead to share a brighter view, based on my working experience in various parts of the organization (including the Secretariat and other UN agencies)both at the Headquarters and in the field.

The UN is an immense political machinery, controlled by Members States, tasked with the most noble and difficult missions that an organization was ever mandated in the history. The UN is also comprised of myriads of different agencies, funds and programme with very different mandates, administrative capacities and organizational culture. It is too simplistic to lump together what is different.

Huge organizations, such as the UN, require rules and procedures to ensure transparency to its constituents. Bureaucracy creates these additional, more often cumbersome, layers. Bureaucracy is indeed a pain and, of course, processes can be simplified and streamlined. However, such changes do not come overnight as they require change of mind among the organization's staff, especially the "old guard".This does not mean that the work of the organization should stop or colleagues should quit. In fact there are ways to "play along with the "administrative vortexes"; for example, a deep knowledge of the rules and regulations, advance planning and proactive actions can accelerate processes. A staff member will not get frustrated or get his/her submission rejected if he/she knew exactly what are the steps required, what documents to submit etc. Yes, we should focus more on the substantive/programmatic work which we are responsible to deliver, but as we are all very knowledgeable and quick to process our salary reimbursement claims, we could also do the same for the required administrative processes that are being mentioned in the article.

Once I was asked during an interview how I would overcome bottlenecks caused by bureaucracy. I responded, knowing the procedures, acting on time, using the right templates, following up with the right people, being motivated and having a good dose of patience can help in accelerating the process, at least the part of it I am in control, and will eventually lead to faster results. I did get that job.

Recruitment processes take forever. Most of the time this is true and it takes even more time and efforts to deploy competent staff during an emergency. Again, some UN organizations do better than others. For example, some organizations such as UNICEF has "fast track" recruitment procedures for emergency recruitments allowing staff deployment within weeks. UNFPA maintains rosters of pre-vetted candidates that successfully passed 2 days intensive screening. DPKO also keeps roster of pre-screened candidates which enables the organization to deploy staff in 3 months rather than taking 9-12 months as per regular recruitment. It is possible, I have witnesses once my successor being deployed within 3 months from my transfer notification. Indeed there are ways for improvement, especially by learning from where things works better.

There is nothing more atrocious than peacekeepers committing abusive acts to the same people they are supposed to protect. This is a major challenge for the UN, as it casts discredits to the entire organization as a whole, including those that are risking their lives daily to create a better world. Therefore, there should be zero tolerance for such abuses and the perpetrators should be properly condemned. At the same time, it is disappointing that most of the media coverage focuses on UN misconduct, committed by a few, rather than on what we do right.

However I wish to point out that most of these abuses are carried out by military personnel serving in peacekeeping missions. The UN does not have a standing military force and depends on the willing of countries to deploy their national troops temporary (normally 6-12 months) to serve under the UN flag (and their own flag), and fight someone else's wars. Consequently, these soldiers are national citizens, who bring their own training and culture to the UN, and when they commit these abuses they should be considered as such too. I have witnessed cases when abuses committed by just one or two soldiers resulted in the entire company (hundred soldiers) repatriating.

The majority of peacekeepers perform a tremendous job by ensuring peace in war-torns parts of this planet, far from their families, risking their life daily to defend peace but still too often unnoticed. This is what I would like to emphasize.

In conclusion, the UN needs constant improvement. It is up to its staff. Those who have served for long can help taking stock of the best practices of the organization's legacy with an eye to future challenges. It is also up to the organization's newcomers, preferably more from the -outside- such as private sector, government secondment, to bring innovative ideas, enthusiasm and help the UN to keep up with the pace of a fast evolving world.

I believe this brighter view of the UN would be more beneficial to bring the necessary change to the United Nations.

</comment><comment><USER40> Kenneth Cain, a former UN human rights lawyer, wrote a piece in a similar vein: [http://www.theguardian.com/world/2005/apr/03/theobserver1](http://www.theguardian.com/world/2005/apr/03/theobserver1) It was written over a decade ago but some of the points mentioned still feel very familiar today.

</comment><comment><USER41> Interesting article about the political shenanigans surrounding the UN Commission on Narcotic Drugs, going on in Vienna at the moment:

[http://politics.co.uk/blogs/2016/03/15/the-un-fades-into- irr...](http://politics.co.uk/blogs/2016/03/15/the-un-fades-into-irrelevance- in-the-war-on-drugs)

<comment><USER42> That commission isn't just advisory like many (most?) UN bodies. It holds full power to schedule and deschedule controlled substances under the major drug treaties, and member nations (which include practically every country) are obligated to conform national law to the treaty schedules.

We'll see just how strong those treaties are. When the US led the drug war this was how we forced the rest of the world along. Can Russia, China, etc. do the same?

</comment></comment><comment><USER43> Do these problems with the top level UN organization extend to its specialized sub-organizations like the WHO or the ICAO? From what I can see those are less flashy but do a workmanlike job coordinating intergovernmental efforts in important fields.

<comment><USER44> I'm a contractor for another UN-organisation, and it's the same situation here. My contract was extended, but it took forever to get approval due to beuracracy, so I was out of work for a week. Another developer has been off for two weeks and is still waiting for his renewal. I work in the IT department, so maybe it's different in the field.

</comment></comment><comment><USER45> The UN and many similar organizations in the non-profit/non- governmental/humanitarian/development space simply lack the incentive structure to do the right thing. Add to this the administrative weight of large organizations and you have the perfect recipe for an unbelievable shit show.

I hope that more organization like Watsi [1] or ONE [2] emerge and take donations away from more traditional and established non-profits, but I won't be holding my breath for it.

At the end of the day, the private sector probably yields more positive impact.

[1]: [https://watsi.org/](https://watsi.org/)

[2]: [http://one.org](http://one.org)

</comment><comment><USER46> The UN is probably better described as "The WW2 Winning Team + associates". Please adjust expectations from here on out accordingly.

</comment><comment><USER47> 6-member permanent security council members with veto ensures that nothing related to their interests is passed. It also shows who governs U.N.

</comment><comment><USER48> what would you do if you were that assistsnt secretary to fix the un?

please i need an answer

</comment><comment><USER48> what would you do if you were that assistant secretary to fix the un?

please i need an answer

</comment><comment><USER49> The human species has a long way to go.</comment>


Software Rot and Classes of Rot Resistance - <AUTHOR> https://github.com/InductiveComputerScience/progsbase/wiki/Software-Rot-and-Classes-of-Rot-Resistance <comment><USER2> If I wanted to write a program that could be run for generations to come I would target a specific piece of hardware of significant historical importance such as the 6502 (for example.) Not only are there already many emulators for it, and not only is it fairly easy to write an new emulator for such a straight-forward system (unlike, say a PS3, which is very difficult to emulate), but because of its historical importance it is likely emulators will continue to be written and maintained for a very long time. Even if my program would not be of historical importance itself, but by targeting the same hardware it would piggyback on other preservation efforts.

</comment><comment><USER3> Is that just a commercial for this progsbase thing? I certainly like the assertion that that code won't rot for "centuries". Maybe a fizzbuzz implementation will survive this but even there I have my doubts.

<comment><USER4> There is already Haxe which is free and compiles to a lot of things.

<comment><AUTHOR> As I explained in another response, progsbase is very different from Haxe. Haxe is an independent language. If you use Haxe, then you depend on the Haxe compiler. Progsbase is completely in other languages, meaning the progsbase tools are only support tools which gives you certain benefits such as being able to translate. You code remains pure Java which you develop with Java tools.

<comment><USER4> You would still need the compiler to be written in progsbase too: is it? As I am not quite sure (and you cannot gamble on it) that Java and Java tooling is still there in 100 years. Which then brings you back to Haxe ; kind of the same gamble there but that is open source which makes it longer lived generally anyway.

A language for the ages would be a Forth imho; you can write the language on the back of a beermath and it takes mere hours to implement on whatever system.

<comment><AUTHOR> > You would still need the compiler to be written in progsbase too: is it?

Currently no, but the progsbase language is very simple and contains only well-known constructs. So creating a compiler is very simple, it would take only a few days. This is like the point you make about forth, except forth contains less well known constucts.

> open source

The progsbase specification is also open: [https://docs.progsbase.com/](https://docs.progsbase.com/)

</comment></comment></comment></comment></comment><comment><USER5> I find it pretty laughable to claim that software written in this (brand new?) language, progsbase, will last a "ballpark" of "centuries". The transistor isn't even a century old.

To my knowledge, nothing created by humans has lasted centuries with the equivalent of one day/year of maintenance work.

<comment><USER6> Not only that, but their chart makes it look like adopting older languages now will give you more bit rot resistance.

C2: C89 or Python 2 a few decades a developer week

C3: C or Python a decade a developer month

When it should read:

C2: C99 or Python 3 a few decades a developer week

C3: C89 or Python 2 a decade a developer month

If you start a project today with python 2, the bit rot will be far worse[1] than python 3 which is now stable and doesn't seem to have any plans for future compatibility breaking changes.

[1]: [https://lwn.net/Articles/750833/](https://lwn.net/Articles/750833/)

<comment><AUTHOR> C89, C99, Python 2, 3 were only examples as the table header says.

</comment></comment></comment><comment><USER7> "For example, when 64-bit Intel CPUs were launched, they no longer supported a list instructions. If these were used in a library, then the library no longer works."

Is this true. The only thing I can find is that the old x87 fpu instructions might not work on x64 arch.

<comment><USER8> This is both true and highly misleading. In X64 mode many instructions were gone. However you couldn't execute a 32-bit program directly in that mode anyway so it was the least of your problems.

Everything was still there in 32-bit mode. Nobody would have bought the processors if they didn't work with existing software.

<comment><AUTHOR> The removed instructions were binary-coded-decimal instructions, push / pop of CS/DS/ES/SS. These are minor instructions, but if your program used them, that alone means it no longer works, and that was the point.

<comment><USER8> BCD instructions are slower than emulating them with more traditional operations and were rarely used in 32-bit software (16-bit is a different story). Most people would recompile their software and never experience this as an issue.

The removal of the segment registers was the only one that really reduced capabilities - VMWare's original solution became impossible because of that. However they were replaced by hypervisor instruction sets which are much more capable. The proposed solution in this article would never have fixed this though - which again is why its true but misleading.

<comment><AUTHOR> The WMWare example is very interesting!

Let me just note that the article does not propose a solution to VMWare's problem. It only notes that when instructions are removed, code using it stops working.

<comment><USER8> Instructions were never removed from 32-bit mode though. You can run your 32-bit programs the same as before, even on today's most modern processor. You just won't get any of that 64-bit goodness.

</comment></comment></comment></comment></comment></comment><comment><USER9> Interesting, if a bit long perhaps. Also, I've never heard I/O instructions being referred to as "infrastructure instructions" before, can this be a mistranslation?

<comment><USER10> I/O is anything outside the program itself. All sorts of headaches happen this way. The problem is actually more complex than the article suggests. For example, say your app uses a database schema. What if the schema changes? Will your app break?

</comment></comment><comment><USER11> Software dependencies really are the worst part of programming. It's probably the root cause og 75% of developer burnout, with the remaining 25% split between path resolution errors(relative or absolute, training slash or not?) off-by-one array index errors, nulls and simple typographical errors that cause the loss of hours of compiler time.

      This is very common!

Common, but still total bullshit. It's THE barrier that repels most novice programmer who just get fed up, and reject programming as a passtime or livelihood.

<comment><USER4> > Software dependencies really are the worst part of programming

and yet we are making it worse instead of better and most people here tend to find that a good plan.</comment></comment>


Hashtables, a new Haskell library for fast mutable hash tables - <AUTHOR> http://gregorycollins.net/posts/2011/06/11/announcing-hashtables

<comment><USER2> mutability in Haskell? I thought Haskell was purely functional i.e. lazy and immutablility are foundational. Can someone clarify please?

<comment><USER3> That's the default. There are, however, many other interesting computational environments you might want to use, which Haskell let's you enable: controlled, strict evaluation (the use of seq and rnf); local mutable state (the `ST` monad); mutable state with transactions and rollbacks (the `STM` monad); arbitrary effects on the world (the `IO` monad); computations with backtracking (the `Logic` monad); deterministic parallelism with shared state (the `Par` monad) and so on.

Just remember: in Haskell, persistent and immutable is the default. You turn on other environments as you need them.

Why is it the default? So-called "purely functional" programming is a rich, safe, environment for most programming problems, and makes lots of nice things possible, such as trivial parallelization, automatic thread safety, proofs on code via simple equational reasoning, and powerful optimizations.

<comment><USER4> Too bad they made lazy the default.

<comment><USER5> care to elaborate?

<comment><USER4> Space leaks.

Also, unpredictable program behavior (which nearly destroys its usefulness in embedded beyond what perhaps Galois has been doing).

<comment><USER6> For what is worth, Edward Yang is writing an excellent series on space leaks in Haskell:

<http://blog.ezyang.com/2011/05/space-leak-zoo/>

The series require Haskell knowledge but this summary is fairly readable if you have a good grounding on programming language theory and implementation.</comment></comment></comment></comment></comment></comment>


Show HN: Using IBM Watson's Speech-To-Text API to Make Automated Supercuts - <AUTHOR> https://github.com/dannguyen/watson-word-watcher <comment><USER2> Absolutely amazing, I've always wanted to do something with syncing transcription and timestamps but was looking for some guidance. Thank you incredibly for making it open source.

Not sure why this isn't getting liked more, but maybe you could try some of the cheesy cuts like [https://www.youtube.com/watch?v=6zz- lTa1SAM](https://www.youtube.com/watch?v=6zz-lTa1SAM)

Either way, I'm sure the guys at comedy news shows will love this.

</comment><comment><USER3> Could you take this a step further and automatically run the transcripts created through the Watson Personality Insights?

<comment><AUTHOR> Oh yeah, there are a ton of possible combinations...with and within the Watson system. I haven't found much success with their currently available vision APIs, but have thought it'd be a cool idea to calculate facial expressions during given phrases, which is something that Microsoft Oxford and Faceplusplus offer...though that's probably not as relevant as calculating vocal tones.

</comment></comment><comment><USER4> good job</comment>


Deep Decarbonization: A Realistic Way Forward on Climate Change - <AUTHOR> https://e360.yale.edu/features/deep-decarbonization-a-realistic-way-forward-on-climate-change <comment><USER2> I don't get this kind way of thinking. We have a proven and tested way of producing electricity without any emission - nuclear power plants.

This article even mention it, obviously on the last place in a strange way "and to advanced nuclear plants with zero emissions". As if there were some non-advanced nuclear plants that have non-zero emission.

Solar and wind require energy storage that we don't have now and it does not seem we will without major technological leap. In addition, in large parts of the World they just does not make sense as there is not enough sunny/windy days.

For nuclear energy we have everything - knowledge, infrastructure, experience.

What makes people so blind to the simple solution of the problem we have now? Eco people fought vigorously nuclear energy for years and now we are where we are. Time to say that they've made a costly mistake and move on.

<comment><USER3> Like solar & wind, nuclear also needs supplementing with peaker plants. Nuclear can be used for peaking, but current designs cannot, and nobody is going to pay the crazy costs of nuclear just to have it idle 23 hours a day as a peaker.

And storage for renewables is a last resort. Instead of storage:

1\. build in areas with reliable winds (offshore trade winds)

2\. better interconnection ("the wind is always blowing somehwere")

3\. over-provisioning. If you build 3 times as much wind power as you need, it's still a lot cheaper than nuclear and you need a _lot_ less storage.

4\. storage. It's expensive, but if you did 1-3 correctly, you don't need much of it.

Nuclear is safe, but it's also crazy expensive and takes decades to build.

<comment><USER4> Scale is missing in your analytsis. For instance in New England, the peak demand goes from 15GWh (average) to 16.5GWh down to 10GWh. Solar and wind on the other hand, need supplemental for 100% of its installed capacity the day there is no wind...

In France, 70% of the electricity is nuclear, 15% is hydro, pumped by the excess nuclear power generated at during the night.

Now for your arguments:

1\. Wind goes from 0 to 50mph at sea. No reliable wind corridor exists. Even if Market Street in San Francisco makes me think otherwise frequently :)

2\. The concept of wind proliferation has been debunked, at least on the European level. We built a network between Denmark, Germany, Portugal and Italy. It doesn't work.

3\. If you don't have wind, putting 3 wind turbines won't help you more. Germany learned it the hard way where their CO2 emission flat lined since 2009 instead of going down despite their all in on the wind and solar energy. If you install 3 times more than what you need, you also have the side effect of making your renewable energy 3 times more carbone intensive. It kills solar as a viable, scalable option for instance.

4\. Yes that would be the required breakthough to change the game. Right now batteries production pollute way too much and cost too much to be climate efficient.

<comment><USER5> Great points. "The damage done by these wind installations is out of all proportion to the benefit," [https://www.ft.com/content/d8b9b0bc-04a6-11ea-a984-fbbacad9e...](https://www.ft.com/content/d8b9b0bc-04a6-11ea-a984-fbbacad9e7dd)

<comment><USER6> Heya,

Do you have either a non-paywall version of that article or an alternative article with a similar view? I'm curious what it says, but I can't read it with the paywall in place.

<comment><USER5> [https://docdro.id/SjaNeM6](https://docdro.id/SjaNeM6)

</comment></comment></comment></comment></comment></comment><comment><USER7> In terms of agriculture, we could use basic research into perennial staple crops. [1] It's a promising area, but still a ways off. The result, as mentioned in the article, is less soil disturbance and more long-term carbon sequestration.

From a policy perspective, Victory Gardens [2] were a successful strategy during WWII. It would be great to mobilize a similar effort to get people growing food in their own backyards again, and reduce the amount of monocrop farming and all the global transportation and chemical fertilizer production that goes along with it.

1: "The Carbon Farming Solution"

2: Victory Gardens: [https://en.m.wikipedia.org/wiki/Victory_garden](https://en.m.wikipedia.org/wiki/Victory_garden)

<comment><USER8> I don't know if you've ever tried growing food in your back yard to eat?

It's a fine hobby if you enjoy gardening and find satisfaction in the honest simplicity and hard work of digging over soil, weeding, and spreading manure.

But the truth is: supermarket food is incredibly cheap, and you'll be putting in 50 hours of labour to grow $20 worth of vegetables.

If you enjoy the process and don't mind not getting much output, by all means enjoy it as a hobby. But as a way to feed the nation? I'm skeptical.

<comment><USER7> Absolutely, but in the context of this conversation we're talking about moving away from annuals and all of the labor and inputs associated — towards perennials.

Therefore, I'm not saying we should copy the Victory Garden from WWII verbatim, but use it as a model for how every person can use their backyard to combat climate change.

The point is not to replace all of agriculture, but find ways that, collectively, individuals can make a dent in the problem. Even if it's as simple as planting more oak trees and fruit trees.

But, some of the comments here lack imagination (to speak kindly of the some of the negativity and snark in some of the other replies) in how we could take a 20th century idea and update it for today. We have more technology available, and more knowledge.

</comment></comment></comment><comment><USER3> As the article indicates, the basic problem is a international co-ordination problem.

Nordhaus won a Nobel Memorial Prize proposing a solution: [https://issues.org/climate-clubs-to-overcome-free- riding/](https://issues.org/climate-clubs-to-overcome-free-riding/)

To oversimplify: carbon tariffs on any country not doing their part.

</comment><comment><USER9> I always find it odd that atmospheric carbon capture isn't a greater part of the conversation on climate change. It's basically assumed that we'll need to be able to take carbon out of the system to meet our goals, but so few people are willing to mention it as part of the overall solution to transitioning to a net negative economy. It seems like a technology that still has a lot of runway left before we start hitting any sort of fundamental limits on efficiency.

<comment><USER10> I think air capture is an important part of the discussion when we talk about trying to get temps back down later this century, but I have serious doubts about it playing a large role in determining what the peak CO2 concentration will be around the middle of the century. Capture is orders of magnitude more expensive than emissions reductions, and will be for a long time. When you invest in capture, you get lower net emissions and that's it. When you invest in emissions cuts, at least while there's still a lot of low-hanging-fruit, you get the same net effect while also getting a productive asset like a power plant. Totally onboard with research budgets going way up for capture tech, we're 100% going to need it, but later rather than sooner I think.

</comment></comment><comment><USER11> Like so many other articles on this subject, the authors first identify the problem (a global scale prisoners' dilemma) and then pretend it can be solved at a local level by individual actors.

I actually find it terrifying that people think this way. It's the same intentional blindness that climate change deniers show, only with more steps and information.

The author even goes as far as parroting George W Bush's (now decade old and stupid even when it was fresh) vague hope that technology will just magically fix the problem. Of course, he is allowed to be bat shit insane because he is on "our side".

This problem is (geo-)political. It's not about technology or ideas or campaigning. It cannot be fixed by any local action (except maybe building flood defenses and watching everyone else drown?). Until people accept that they won't be able to fix this by composting more and hoping others take the bus, we will be doomed. Given that, a great article about how much Madrid could cut it's emissions is pointless and distracting.

<comment><USER12> Ok, it's a (geo-)political problem. So what do we do now? Besides posting HN comments that is.

<comment><USER11> You write to your representatives. You vote for greener parties. You donate to green peace etc.

None of those things are actually likely to work. But they're infinitely more likely to work that talking about local action and cutting back your meat intake.

Sorry if I wasn't clear, this problem is really hard. Likely unsolvably hard. But that doesn't make an impractical solution practical.

<comment><USER13> There are effective things you can do but they require coordination with your community. Mass protests and worker strikes can force the hands of governments and big business. There are many historical examples that this works and just look at how much success the French are having right now. But they need to happen at scale and very frequently. Voting only happens once every few years for a reason.

<comment><USER11> I have to really blunt, I'm sure you're a nice guy/girl/person, and we both would love to see this problem solved but...

No, there are no effective things my community can take. None.

Even my whole nation has zero actual power. That's the whole point here. I don't know why people keep saying that.

Im a limey brit. We have a huge economy, lots of cars and houses, all pouring out co2. But we only produce 1% of world emissions. So even if we cut our emissions to zero today, that would be only 1/8th of the global cut needed just for 2020. Given world co2 emissions are growing at 2.7%, the problem would still be getting worse.

Nothing the UK does matters in the face of this issue. And we're one of the bigger, more powerful, more polluting nations.

Before we can find an actual solution, we need to stop wasting time and effort pretending this can be solved by communities. It really really can't.

</comment></comment></comment></comment></comment><comment><USER14> I always wonder if we could heat large blocks of salt in the desert with mirrors and then make power at night extremely expensive. Cable it all up with huge direct power cables... once the infrastructure is built sure this becomes nearly free energy?

</comment><comment><USER15> What ever happened with Project Vesta?

[https://projectvesta.org/](https://projectvesta.org/)

<comment><USER16> Hi Jeff, Project Vesta is making great progress building out our scientific team and deployment plan! We have an update coming out very soon, our last poster in December was featured in the SF Chronicle under the titled "Could putting pebbles on beaches help solve climate change?" -> [https://www.sfchronicle.com/environment/article/Could- puttin...](https://www.sfchronicle.com/environment/article/Could-putting- pebbles-on-beaches-help-solve-14911295.php)

</comment></comment><comment><USER17> Hm. This article seems to wield several non-descriptive terms such as "deep decarbonization" or "green steel" while skipping discussing fossil fuels themselves.

One of the main reasons why we can't replace fossil fuels is because they are arguably the most efficient way of storing and transporting a huge potential of energy.

Think about it like this. It's easier to store a ton of coal for 50 years then it is to store the same amount of potential energy as electricity in a battery. It's more efficient to transport a ship filled with coal then it is to transport the same amount of energy as electricity through power lines.

Fossil fuels have a high energy yield per unit and they are abundant.

So, fossil fuels are far easier to scale towards diverse and large energy needs compared to clean energy sources.

The author hears the bells chime, but can't find them: he alludes to the higher price of "green steel" and how subsidies are a necessary to support these innovations. But he ultimately draws the wrong conclusion.

For one, he compares Denmark to China. Which represents 18% of the World's population. Sure, if China would switch to wind energy, the effects would be massive. But that's discounting vast economic differences between those countries.</comment>


Janet: a lightweight, expressive and modern Lisp - <AUTHOR> https://janet-lang.org <comment><USER2> This looks so awesome! It's got the best parts of a lot of languages. This is what sticks out to me:

\- Really simple lisp like scheme, but reminds me of lua (and not bloated like CL)

\- Has resumable fibers, no callcc like scheme

\- Not missing the lack of lists tbh

\- A module system that doesn't feel awkward like CL

\- A built-in package manager (unlike CL)

\- Good lua and C support

\- Threads have a shared-nothing approach with message passing (reminds me of Erlang actors)

\- Destructuring

\- Good PEG support, encourages it over regex

\- (Im)mutable versions of data structures (ie tuples vs arrays, structs vs tables) for maximum flexibility

\- Prototypal inheritance

\- Docs are clean and easy to read

I'll definitely have to try this out, it looks really cool.

Some stuff I'd like to see:

\- Pattern matching support (could be a library I guess)

\- Multimethods

\- Full numeric tower with arbitrary precision types

\- Javascript compilation -- I could see this language being really useful for web and game dev

Does it have good debugging support? I'm thinking of something like slime, swank, etc. Can I set up emacs and/or vim to work the same way I can use CL with slime + swank?

I'm also wondering about the stack traces -- one of the downsides to CL is sometimes the stack traces are nasty to read

<comment><USER3> I never thought I'd see a Lisp without lists. Oh wait, I didn't because this isn't a Lisp.

I know naming is hard, but this is getting out of hand. Don't say you're a Lisp when you're clearly not. Say Lisp-inspired. Don't use the term 'modern Lisp', 9/10 it's signaling the wrong thing.

<comment><USER4> From the examples:

# A simple fizz buzz example

(loop [i :range [1 101] :let [fizz (zero? (% i 3)) buzz (zero? (% i 5))]] (print (cond (and fizz buzz) "fizzbuzz" fizz "fizz" buzz "buzz" i)))

Is this not lisp?

<comment><USER5> I'm not clear on the exact reasons, but I think some people see it as "Python with S-expressions" rather than "Lisp". I think it's because Janet does not use lists implemented with cons cells and historically that's just what Lisp always used. (Janet uses arrays instead.) But by that logic Clojure isn't a Lisp, if has no cons cells...

Another criteria used is homoiconicity.

I think the argument is about if a language satisfies the historical definition of "Lisp" rathen than being a Lisp-inspired language with parens.

<comment><USER6> A good reason to regard this as "Python with parentheses" is because not only does it use arrays instead of cons cells, but there's no non-mutating `append` function. Instead, Janet has an `array/concat` function that behaves like a Python array's `.append` method, and that's it.

And no, Clojure isn't a Lisp. Perhaps it would be appropriate to say that Janet is "a Clojure".

</comment></comment></comment></comment></comment><comment><USER7> Okay, so when Clojure came along, it came with a strong underlying philosophy of what the language was supposed to be/do. Among them were design decisions such as, e.g.,:

      - VMs, not OSes, are the platforms of the future, so target the JVM
      - Object Orientation is overrated, but polymorphism is a good thing
      - Multi-core is here to stay, so use immutable data structures to greatly facilitate writing correct concurrent programs
      - Leverage the strengths of LISP but give it a modern overhaul (most notably, throw in different parenthesis)

Now, you may or may not subscribe to any of these but my question is just: how does Janet compete on that front? What is the problem it is trying to address specifically? I looked at the web page a bit but it's still not clear to me.

<comment><AUTHOR> What I like in Janet (I'm just a noob so take this comment with a grain of salt as it will sound superficial):

\- Easy to get started: one click install, great website and concise docs. No matter what some people say, getting started in Clojure is a nightmare.

\- Lightweight and fresh. No JVM, no Node.

\- Freedom and expressivity. Mutable or immutable data structures, ultimately is up to me. It might bite me down the road but for now it feels great.

<comment><USER8> I've posted this quote before, but it might help explain why making Clojure easier to get into maybe hasn't been a priority for Hickey et al.

 _So we need players. I would rant here, but I won 't. But look at this guitar player with blisters. A harpist has blisters, a base player with blisters. There's this barrier to overcome for every musician. Imagine if you downloaded something from GitHub and it gave you blisters._ \- Rich Hickey (Design, Composition and Performance)

Clojure seems more concerned with power, expressiveness, and reach, rather than ease of use. Does this alienate new users, sure, but the Clojure community seems OK with that as a trade-off.

<comment><USER9> I am full to my neckline with Clojure kool-aid: I love the language and programming experience. But the "getting started" your parent is referring to, IMO, is getting the tooling set up, getting the repls connected, figuring out what a full-stack app looks like with its 2 distinct repls and toolchains and lein config mashups, hooking up an editor... and then having it break the next day. After 5 years of Clojure I still get frustrated if I'm away for more than a month.

It's like you were getting blisters from _stringing_ your guitar. You buy a guitar, get home, and it takes three days to open the case. Then another week to figure out which strings go where. God help you when you realize you have to _tune_ the thing.

Two, five, seven days pass and you haven't played a note. I don't think that's what Hickey meant.

That said, it's worth it.

<comment><USER10> Spot on with your amusing guitar analogy. Getting to play notes seems like an afterthought, but when it does it plays for you as if it reads your mind to do so. The problem is the setup and that's the part that I dislike these days, the patience to to configure the tools is not there, a lot of the tools are like black boxes, something goes wrong and it isn't visible or or it is too complex to enjoy the process.

</comment></comment></comment></comment></comment><comment><USER11> I'd love to hear more from the author (can someone interview him for a podcast please? :-). He also has another programming language called Fennel [1] which compiles a lisp like language to Lua.

Both Fennel and Janet seem to orbit around Clojure ideas.... interestingly one of Fennel's main contributors [2] is also the author of Clojure's most popular build system, Leiningen.

1: [https://fennel-lang.org/](https://fennel-lang.org/)

2: [https://technomancy.us/186](https://technomancy.us/186)

<comment><USER12> I kept thinking that in the 'small scripting Lisp' category, a startup- time/performance comparison with Fennel would be apropos, as the latter is blazingly fast and thus well suited for scripting in interactive contexts.

</comment></comment><comment> phoe-krk

        janet:1:> (cons 1 2)
        compile error: unknown symbol cons on line 1, column 1 while compiling repl
        janet:2:> (list 1 2)
        compile error: unknown symbol list on line 2, column 1 while compiling repl
        janet:3:> (vector 1 2)
        compile error: unknown symbol vector on line 3, column 1 while compiling repl

I certainly need to learn the basic idioms of this dialect; it looks nothing like Common Lisp under the hood.

<comment><USER13> Is it really Lisp without cons?

<comment> phoe-krk Yes, it seems so. Try the REPL available at the website.

<comment><USER14> I wonder if his question was not rhetorical, as in: It is _really_ Lisp if it doesn't have cons?

<comment><USER15> Is it really Lisp without 'lists'?

[https://janet-lang.org/api/index.html](https://janet-lang.org/api/index.html)

that does not mention list in meaningful ways. It seems to prefer to work with other data structures (like arrays) - which is okay, but then I won't call it a List Processor dialect.

<comment><USER16> I don't understand why somebody downvoted you, I've seen a number of languages that look like Lisp, but are based on vectors or arrays, and that changes the language drastically. So I'm wondering, too. I was trying to find out whether Janet programs are lists or something else like arrays, but didn't find it in the docs.

<comment><USER17> This does change the language drastically - source code is represented as tuples usually, although all of the core data structures have literal forms. This means writing macros is still easy, although certain idioms like consing are usually replaced by splicing, which is like unquote-splicing in Common Lisp but more general.

<comment><USER18> as someone who dosen't know the theory what is the difference between list and array? consing and splicing?

is there a pratical difference in the way you write programs or is more of theory/implemetation detail?

<comment><USER17> A list refers to a singly-linked list, while tuples are implemented as immutable arrays. The former is flexible in that multiple lists can hare structure, and prepending to a list is an O(1) operation that does not change the original list (consing). This property allows all sorts of interesting data structures which at their core are simply lists of atoms and other lists.

Janet on the other hand just uses tuples, which are easier to pack densely into memory so usually have better cache performance on reads (clever lisp implementations can sometimes can make lists fit densely in memory, but usually they take about twice as much memory as a tuple).

splicing is the like the spread operator in JavaScript or the splat operator in Ruby. This turns out to be very useful in a language without cons for manipulating tuples in macros, even though it is not as efficient as a cons.

<comment><USER18> thank you!

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> 1) How is this different from other Lisps or Schemes?

2) When promoting a new programming language, _always_ provide a nontrivial example. Couple of pages of code. Mandelbrot generator, desk calculator, notekeeping app, that sort of thing.

<comment><USER19> And the motivation for designing the new language. What problems does it solve better than existing languages? How does it promote the creation of maintainable programs? Etc, etc.

<comment><USER20> > What problems does it solve better than existing languages? How does it > promote the creation of maintainable programs?

I broadly agree that widespread adoption probably requires answering some sort question like these.

But sometimes people create languages just because they are fun to create, and they think other people might enjoy using them.

<comment><USER21> Just taking into consideration that most engineering degrees have of some of compilers design course, there are thousands of programming languages born every year across the globe.

So it needs more than just _" grammar + semantics + basic library"_ to actually be relevant.

However that is how many nowadays mainstream languages have started, so luck also plays a big role.

</comment></comment></comment></comment><comment><USER22> Lisp languages should be great for embedding into games to implement game logic, instead of more straightforward solutions such as embedding Lua. I've always wanted to explore this for my iOS side-project game, which now uses an event-based system inspired by ReactiveX, implemented in Lua. This works pretty well but is very hard to debug.

The main thing holding me back to try to replace it with something Lisp-like is that I have zero experience in Lisp programming. I know some FP theory (in fact the Lua-based event system lends some concepts from it), but when I try to reason about common subproblems I really have no idea how to map them to something like Lisp. For example how to efficiently implement a message bus with observers that can register themselves, using state-based functions to execute when certain events are received, scheduling events, async/await to suspend processing until some event is received, etc.

Does anyone have pointers to books or websites to learn 'real-world' LISP programming? In other words not yet another introduction that shows the same old forced examples that just show you how to evaluate an expression or use higher-order functions to solve artificial toy problems, but resources that teach you how to be productive in a Lisp language?

<comment> phoe-krk > but when I try to reason about common subproblems I really have no idea how > to map them to something like Lisp. For example how to efficiently implement > a message bus with observers that can register for certain events.

I think that's a badly posed question. The main benefits of using Lisp are its introspection and interactivity. You can use the REPL to inspect your message bus at runtime, you can modify parts of it as it runs, you can interactively debug errors as they happen, but none of that is directly related to "how to _implement_ a message bus".

I think that is more of an ADS question that it is a Lisp question; an efficient message bus, no matter whether you implement it in Lisp or in C or in Haskell, needs some synchronization primitives from the programming language core that are likely backed by OS primitives, as well as some data structures that need to be cleverly designed to be fast. Neither of these is language-specific - only means of implementing and using those might be language-specific.

In other words: Lisp makes it possible to be more productive by means of dramatically reducing the time of feedback loop and by means of providing in- depth language introspection, but it doesn't solve the problem of actually needing to figure out how to design programs and data structures. That's why e.g. SICP is not a Scheme tutorial, despite using Scheme throughout the whole book.

<comment><USER13> This is a very classic Lisp answer in that "productivity" is considered in the pure abstract, and that the specific question of how to do a specific thing - the actual productive result - is uninteresting. Who would expect the classic book on Scheme to teach you how to write Scheme programs?

<comment> phoe-krk Regarding productivity, I don't consider it abstract. I feel a concrete efficiency boost from the two things I mentioned, which are interactive and incremental development with a very short feedback loop (no time wasted while waiting for the toolchain to do its work) and the ability to introspect and debug the live system (since I do not need to bother with external debugger and tooling).

What exactly do you mean by "uninteresting"?

<comment><USER13> The original post complains of not knowing how to solve their particular problem in Lisp, and gives an example:

> how to efficiently implement a message bus with observers

You say:

> I think that's a badly posed question

But it isn't! It's the specific thing that person is trying to do and is having trouble with, the act of translating structures and designs they understand from other languages into the Lisp language.

This is the barrier to Lisp adoption. You can cite iterative development and live debugging all you want, but they only benefit after you've actually written a program, which is the barrier the potential users are struggling at.

<comment> phoe-krk > but they only benefit after you've actually written a program, which is the > barrier the potential users are struggling at

No, you miss the point. There is little benefit in interactive and incremental development once a program is written. The very benefit that this such incrementality provides is noticeable during the _process_ of writing the program, not after it; when a program is written, it's written, and from some point it doesn't really matter if you've done it by mutating an image-based programming language or by linking together compiled C objects.

<comment><USER13> Programs are never finished. Most work is incremental modification and debugging of existing systems. The "getting started" bit of going from a blank editor to something that starts to be useful is a small part of the process. But it's the very beginning that is a surprisingly hard barrier to cross. The starting to write a program in the first place. Which is where the OP has got stuck. And is dismissed as irrelevant?

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> 2020: a programming language is named Janet; a child is named X Æ A-12. How did we come to this.

<comment><USER14> It's not really something new. Ada ([https://en.wikipedia.org/wiki/Ada_(programming_language)](https://en.wikipedia.org/wiki/Ada_\(programming_language\)) ) was created 40 years ago. Kids with crazy names is a long standing tradition, going back millenia :-)

<comment><USER24> Also Amos, Haskell, Idris, Joy, Miranda or Yorick. Arguably Dylan or Pascal.

I'm more confused by a name starting with a capital "J" not being associated with Java, as once was custom.

As for kid's names, definitely[1].

[1]: [https://www.youtube.com/watch?v=Jg9w0YSMLHY](https://www.youtube.com/watch?v=Jg9w0YSMLHY)

<comment><USER25> And don't forget Swift, named after the biggest philosopher of our time - Taylor Swift.

</comment></comment></comment></comment><comment><USER26> Not mentioned here: Hy (hylang.org), a Lisp that manipulates/converts to the Python AST and therefore is fully interoperable with the whole vast Python ecosystem.

Although the language is still somewhat short of 1.0, it has stopped changing (after a fairly dramatic turn circa 18) and I've been writing more Hy than straight Python for a while now. When I started using Streamlit (and then you can't have a main.hy function that it will recognize, although you can import arbitrary Hy modules) I started writing straight Python again for my weekend project and boy, do I regret it. I'm seriously considering pausing everything to port to Hy.

<comment><USER27> I certainly agree that if you need the Python ecosystem, then Hy makes development much more enjoyable, at least it does for me. I look at Hy in the same way as Armed Bear Common Lisp: as a great tool is I need the Java ecosystem.

</comment></comment><comment><USER28> Many people seem to be comparing Janet and Clojure here as if one had to choose to use only one or the other.

Most of my daily work is done in Clojure or ClojureScript and that will continue to be true. However, I am excited by what I've seen in Janet and I'm already thinking that I'd love to call this from bash scripts to do system tasks (devops for example) that don't need the JVM cranked up.

I'm choosing both :-)

</comment><comment><USER29> Please tell me this was somehow inspired by "The Good Place"...

<comment><USER30> Yep.

> Janet is named after the almost omniscient and friendly artificial being in > The Good Place.[0]

[0][https://github.com/janet-lang/janet#why-janet](https://github.com/janet- lang/janet#why-janet)

</comment></comment><comment><USER31> I'm not really clear why I would use this and not one of the small embedded Schemes that have srfi-18 support.

Chibi and S7 are both "drop some C into your project" levels of trivial to get running, and reasonably zippy.

And there's an upgrade path by using the standard: you can move to Chicken, Gambit, Guile, Racket or Chez and keep your code.

</comment><comment><USER32> I'm beginning to create a lisp webserver using sbcl for a personal project.

I find this interesting but i'd like to know if a webserver library exist for janet yet, and how does it perform compared to sbcl performance-wise (x2 to x5 does not bother me, anything beyond that would not be great).

I'd like to know if a slime/swank can be used with janet (although this is really not a requirement)

[edit] i just thought that creating a webserver would be a nice introduction to the language.

Also can you compile janet into wasm?

<comment><USER33> It's right on the bottom of the page my dude, just scroll down or C-f circlet

<comment><USER32> wow i stopped at "try it". thank you.

</comment></comment></comment><comment><USER34> I like it, and I am considering using it as a scripting language.

It was clear and easy how to build it for my Windows 10 box, and it is relatively small.

I have always like the small Lisps like PicoLisp, but PicoLisp is not Windows friendly; it's very POSIX-dependent. I haven't had great experiences with Cygwin. PicoLisp works on WSL/WSL2 though.

<comment><USER35> Have you seen [https://janet-shell.org](https://janet-shell.org) ?

<comment><USER34> I had, but it is for unixes, and I am primarily on Windows. I have a Linux box, WSL2, and an iMac, but all of my paying work is on Windows. I like them all, and I like Janet a lot!

</comment></comment></comment><comment><USER36> Janet is quite nice, and I was playing with it only the other day:

[https://taoofmac.com/space/blog/2020/05/10/1300](https://taoofmac.com/space/blog/2020/05/10/1300)

However, nobody here seems to have mentioned Joker, which is a Go interpreter/linter for Clojure:

[https://joker-lang.org/](https://joker-lang.org/)

I'm rather torn between Janet and Joker, but am considering using Joker instead (even though it is single-threaded and lacks SQLite support) because it's closer to Clojure syntax.

</comment><comment><USER37> This sounds awesome!

I was about to try and extend a software-product with graalvm to extend it live in clojure.

But Janet sounds like a couple less hoops to jump through.

Also, I won't have to deal with Oracle at all :D which is really the main reason I haven't begun work on this project yet.

</comment><comment><USER19> How does this language compare to, say Scheme?

</comment><comment><USER38> I looked at the first two libraries listed on the landing page, and they seem to be mostly implemented in C. (The same goes for the 3rd lib, but it's SQLite bindings, which makes sense.) This is a bit discouraging.

<comment><USER39> I have been looking at Nim, Go, and D lately, as a follow-on to Python. Good SQLite support is something I need for HashBackup (author).

Nim has a direct interface to SQLite's C API and a higher-level db_sqlite interface. The higher-level interface doesn't support prepared queries so Nim's SQLite performance on a small test is slower than Python using the sqlite3 API which automatically compiles and caches queries.

The Nim binding replaces all parameters, specified with ?, with quoted values. That means:

\- you can't have a null-valued parameter

\- numbers get inserted as text (I think)

\- blobs are string quoted and get changed to text instead of using SQLite's X'(hex)' blob notation

All returned values from db_sqlite are strings. If you want integers, you have to parseInt() the column.

I do like that Nim's db_sqlite interface is very simple so that you can still use the lower-level sqlite interface with the same db connection. So at least I could cache prepared queries if I wanted, but I have to do the work.

Checking out Go's SQLite interface, there are some issues posted on the repo (mattn/go-sqlite3) about performance problems because Go uses cgo for SQLite. Haven't test that yet.

Since the SQLite module was listed on the front page of Janet's site, I decided to check it out. It, like all the other C code I looked at in the project, is rather beautiful, and that's not a compliment you see very often about C code, my own included.

The SQLite interface handles multiple types, including nulls, blobs, and numbers (everything is a float, I'm guessing because that's how Janet implements all numbers).

It appears to not cache prepared statements (that would probably be a big performance boost), but does allow parameter substitution by name.

If you want to see some really nice C code, check out this project!

</comment></comment><comment><USER40> So, I do a lot of string manipulation using regular expressions, and Janet doesn't support that, in favor of PEGs, which I've never heard of. Does anyone know of a "PEGs for RegEx addicts" resource or something similar? :-)

What an interesting project! I'm sorely tempted to examine it more closely for one of my side projects I've been working on in Clojure.

<comment><USER40> While I'm asking for help.. does anyone know of any crypto bindings? I've been working with libsodium lately, and there is a Clojure library that binds to it.

</comment></comment><comment><USER41> For those who would prefer a more traditional albeit possibly less "lightweight" alternative there's always Embeddable Common Lisp.

<comment><USER42> Or, since Janet is a bytecode interpreter with a download size of <2MB, there's CLISP which also fits that criteria, while providing the full power of Common Lisp and a nice FFI with C.

</comment></comment><comment><USER43> There is already a JANET in the computing place, please rename your project:

[https://en.wikipedia.org/wiki/JANET](https://en.wikipedia.org/wiki/JANET)

Next time, actually Google your proposed name before you use it.

</comment><comment><USER44> Is it compiled or interpreted? If interpreted does it use existing interpreter? The description mentions Lua, does it use the Lua engine? Does it have JIT? If it is compiled is it based on LLVM?

<comment><USER45> I don't know much about Janet (all I've done is complain that create-fiber did not work the way the docs say it did), but I'm pretty sure it uses its own bytecode interpreter.

</comment></comment><comment><USER46> For what it's worth, the win x64 installer died on me at "creating desktop icons", not exactly the most confidence-inspiring start, but lets see again.

</comment><comment><USER47> Wow a lot of care was put into making a complete out of the box readable library but not including too much fat. Looking forward to my weekend.

</comment><comment><USER48> Wow, this is exactly what I've been looking for. Also, I'm not a C-programmer, but I think the source code is good-looking.

</comment><comment><USER49> How does this compare with Carp?

</comment><comment><USER50> Any tutorial about Janet?

<comment><USER51> The Janet documentation is sufficient to get going. It reads pretty much like a tutorial. At least if you have any lisp/scheme experience. [https://janet- lang.org/docs/index.html](https://janet-lang.org/docs/index.html)

I downloaded a couple weeks ago. I really wanted to build an executable, but I couldn't. It seemed all the docs on this aspect were out of date or my build was broken in this respect.

<comment><USER50> oh okay, freecodecamp course would be great :-D

</comment></comment></comment><comment><USER52> Can't find the tutorial or language manual.

<comment><USER53> I see no tutorial either, but did you try clicking the prominent link near the top labeled "Documentation"? The language manual seems to be all there. Once you're inside the documentation, there is a hamburger menu exposing a comprehensive table of contents.

<comment><USER52> I am an idiot. Somehow I went to the API documentation and examples instead on the github site. Thanks.

</comment></comment></comment><comment><USER54> Call me when you modernize parenthesis out. ;-)

<comment><USER54> Touchy subject. As expected, downvoted by the Brotherhood of Defenders of a Holy Round Bracket.

</comment></comment><comment><USER55> I don't use lisp languages, but one basic difference this has from other lisps is that functions accept multiple expressions, e.g.:

        (defn greet [firstname lastname]
          (def fullname (string firstname " " lastname))
          (string "Hello, " fullname))

In other lisps, you'd have the last expression nested inside a `let` block:

        (defn greet [firstname lastname]
          (let [fullname (string firstname " " lastname)]
            (string "Hello, " fullname)))

which makes the code hard to read and edit IMO. Languages like Haskell and OCaml suffer from a similar problem too.

<comment><USER56> > which makes the code hard to read and edit IMO. Languages like Haskell and > OCaml suffer from a similar problem too.

That's interesting, I've always really loved the "return last expression in a block" syntax. (Ruby and Rust can be added to your list as well.) That syntax just reads really naturally to me.

<comment><USER55> I like that too, but both Rust and Ruby allow multiple expressions/statements before the last expression. In Haskell and OCaml IIUC you need to use things like `let x = ... in <expr>` or `<expr> where x = ...`, so you still have a single expression in function bodies.</comment></comment></comment>


Show HN: New Startup BoodleUP- Play games to win free stuff from local stores - <AUTHOR> https://www.boodleup.com/

<comment><USER2> Interesting, but I'm not a fan of the UI style and annoying flash animations at all, and that really kills it.</comment>