We Pay You to Learn to Code - <AUTHOR> https://modernlabor.com/ <comment><USER2> Way down at the end of the page an "oh, by the way..." disclosure:

      After the program graduates pay 15% of their income for 2 years if they are earning over $40,000, capped at $30,000 total paid back to Modern Labor.

There is also the implication that a potential starting salary is $91,476:

      $91,476 The salary of an entry-level front-end developer (Source: PayScale, 2019)

Assuming that was somehow true...

      %15 * $92K * 2yr - ($2K/mo * 5mo) = $17.6K total cost of tuition

Looking around, ~$11.4K is the average tuition for a coding school, so this proposition works out to be a rather high interest loan (that can't be paid off early):

      $17.6K - $11.4K = $6.2K in interest
      $6.2K / $17.6K / 2yr = 17.6% APR

<comment><USER3> The important difference being that with this program, you don't pay if it doesn't work out for you. The 17.6% APR is in case of a success - they just helped start your career. Seems well worth the greatly reduced risk!

<comment><USER4> > The 17.6% APR is in case of a success

If making $40k/year is "success". With your $6k payment on the $40k you made, your $34k is barely above the poverty line.

> Seems well worth the greatly reduced risk!

No, it doesn't. Just seems like a 300% repayment rate. I bet the number of software jobs starting under $40k is in the bottom 5%, maybe 1% of job listings. So, you're basically only mitigating risk if you can't find a job.

<comment><USER5> > So, you're basically only mitigating risk if you can't find a job.

Which is.. everyone starting a bootcamp!! Lol.

Who are you looking out for? You seem really concerned about the biblical application of usury laws. Do you know anyone who has zero technical skill and would _LOVE_ to make 40k? I have a feeling you live in a very, very small bubble.

<comment><USER4> Just because you think someone is so poor they should be grateful for a 3x loan doesn't make it legal or right. That's the definition of loansharking. It's been a pervasive problem that increases economic inequality because only the poorest would accept a loan with those steep terms. Just because it's related to something positive like teaching people to code doesn't make the 3x payback and less burdensome.

I'm not so worried about this company in particular, but if this business model works, imagine desparate people signing up for a $100k loan and having to pay back $300k, or getting $300k for a house and having to pay back $900k.

It's the payback rate that's the problem.

I also don't think it's a bad thing to be concerned about other people in our community.

<comment><USER6> (I didn't downvote you FWIW)

The difference here is that the incentives of workers and this company are aligned. Either workers start making some serious wages and the company gets their money back (with interest), or both lose - worker their time, company their investment. Given the risk I don't think this is even close to usury. In fact, I would assume they are getting paid by the companies too, for privilege of getting the suitable candidates (which is not a problem in my eyes, if true).

Edit: and if they ever move their operations to EU I know a few people who would probably grab such a chance with both hands.

</comment></comment></comment></comment></comment></comment><comment><USER7> > 100% remote - work from wherever you want

> $91,476 - The salary of an entry-level front-end developer

These two things should not be next to each other. It's exceptionally rare to get $90k a year remotely with no prior work experience.

<comment><USER8> It's disingenuous to place this figure there without specifying the location. Even in places with high COL, 91k as an entry-level front end dev is unrealistic if they have no prior experience. And if this is assuming you'd be remote, that's even more ridiculous. 91k off the bat with 0 prior experience in the industry working from wherever you want sounds like a fantasy.

<comment><USER9> > Even in places with high COL, 91k as an entry-level front end dev is > unrealistic if they have no prior experience.

In the metro Boston area, fresh college grads are getting $100K+bonus typically, with upside from there. I think $91K is not at all unrealistic.

<comment><USER10> 130k plus is the typical salary with a college grad in a top company. We are a startup in Seattle, not a unicorn, you've probably not heard of us, and we pay 135k + options for new college hires. We are told our comp is too low by people.

<comment><USER11> I mean those are your cream of the crop type candidates i'm assuming not a person who just got pumped out of a 12 week bootcamp. I would assume < 10% of people with no experience entering the field get 100k+. Even 10% might be a large number.

<comment><USER10> They are very good bachelors. I don't think someone with 12 weeks in bootcamp can pass the interview bar. We ask about multithreaded programming in C++, a series of programming challenges, and about theory of computer science, software engineering principals. Nothing that I wouldn't expect from my previous experience with fang like companies.

<comment><USER12> Why would a frontend dev need to know multithreaded programming in C++, knowledge which a tiny percentage of startups need?

FAANG are recruiting high-level programmers, not people hooking up forms to APIs.

<comment><USER10> I think I missed something - my startup needs backend devs, not frontend.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Can you remove people from the program midway through, if it seems like they're not doing well? If so, what are the rules around this?

In some ways this seems like a very selective program, since you pay people to do something whereas your competitors charge people. But selective programs would want to get the very best students — and here there's actually an adverse selection problem. That is, people who think they will be rock stars and get high-paying jobs will not want to enroll with you since they would expect the longer payback period (at their presumed high salary) would be less favorable than doing a typical program with a payback period that is half as long.

</comment><comment><USER14> They really expect to have someone from zero coding to full stack in only 12 weeks? 3 months is barely enough to get started on modern front end, assuming you already have programming experience.

Either they have found some revolutionary new way of injecting data into the brain Matrix style, or the people coming out of that program won't be even close to ready and will probably have a mess in their heads.

Also 90K for an entry level remote position? I have 20 years of experience, where do I have to sign for that? I'd gladly take an entry level position with zero responsibilities for that kind of money.

</comment><comment><USER15> This is a really great idea.

I could easily see variants of this happening. For example, companies could fund the students and get to pick first.

I can think of at least 5 people I know that has the potential to become competent developers, but their problem is exactly what this solves: they already have jobs and mortgages.

</comment><comment><USER16> Who is the target audience specifically? There are lots of organizations who work with state unemployment agencies around the country to try to place people with training, and then help find them jobs. This seems perfectly placed for that.

Assuming I could find 10 formerly convicted felons who live on unemployment/welfare and dropped out of high school and got them to apply to this program, would they get accepted? If _" The most important thing we care about is evidence of grit"_ is true, I think these individuals should qualify.

</comment><comment><USER17> I am surprised that nobody has raised the question of whether this is 15% of gross pay, pre-tax or 15% of net pay, post-witholding (well assuming W2 positions)? Those are very different things, especially in states like CA/NY where I imagine many candidates might end up being placed. In those contexts 15% of gross might be more like a 25-30% effective share of the developer's net income (?)

</comment><comment><USER18> I'll be the competitor.

We will pay you to learn to code, then place you on projects for real clients. They will then have the option to hire you within 6 months. It's outsourcing cross training. (We'll have a few senior devs to mentor the teams, and we'll hire an exec or three involved in government contracting to give ourselves multiple options.)

Who wants to fund? _laughs_

</comment><comment><USER19> This smells too much of Unbounded Solutions/BrighterBrain style scumbaggery -- a wooden nickel I would advise anyone not to take. Want to learn programming on the cheap? Take or audit courses at your local community college or state university, or learn on your own.

</comment><comment><USER20> What alarms me is that students are tying up a large portion of their future income to self-teach from MOOCs and other freely available online sources. If I have the gumption to learn on my own, is a little bit of cash really what's holding me back?

</comment><comment><USER21> Off topic am I the only one fascinated that Eliezer commented in the other discussion? I am just excited that this guy is still using hacker news for 10 years now (he mentioned in 2009 q&a that).

27 days ago (my favorite non fiction writer of all time): [https://news.ycombinator.com/user?id=Eliezer](https://news.ycombinator.com/user?id=Eliezer)

His comment is this: [https://news.ycombinator.com/item?id=19231120](https://news.ycombinator.com/item?id=19231120)

</comment><comment><USER4> > After the program graduates pay 15% of their income for 2 years if they are > earning over $40,000, capped at $30,000 total paid back to Modern Labor.

Something about taking a cut of someone's salary doesn't feel right to me.

If you were to borrow the $10k that they give you, over a 2 year period at a 10% rate (maximum allowed by law in CA), you'd pay a little over $11k. Modern Labor will charge you up to $30k over that same 2 year period, for an interest rate north of 100%.

How is this initial $10k different from a loan? Just because it's coming out of your salary doesn't mean it's not usurious.

<comment><USER22> Because, what if they don't earn over $40,000?

It's a numbers game. Out of N graduates, some will pay back $30K, some will pay back $0, some will pay back something in between. For those who pay back $30K, it may be a bad deal... except they're the ones who made the most in salary, too.

I'm not sure whether that's a fair deal or not.

It seems to me, though, that the hotter I thought I was, the less I should be willing to take this deal, because the more I thought it would cost me...

<comment><USER4> Yeah, I get from the company perspective how the risk is spread across multiple candidates.

But from the individual perspective, it seems to be way higher than the max interest rates allow.

Now imagine colleges saying you can pay your $300k 4-year tuition up front or pay us 15% of your salary until you pay us $900k. Already wealthy kids will have an even bigger leg up in life because they'll pay their tuition up front. While those who had to choose between an aggressive loan or no education will have to pay an extra $600k.

Right now, with student loans capped at 5-7% it's still a huge disadvantage to those that need to borrow. I can't imagine if this lending model is extended to classical universities how much a 300% repayment rate will drag down those who are already struggling with 5-7%.

</comment></comment></comment><comment><USER23> How's this different from Lambda School?

<comment> gingerbread-man This is for people who would prefer to teach themselves.

<comment><USER24> Does anybody really prefer that?

<comment> gingerbread-man Speaking for myself, I generally prefer to learn at my own pace studying from books than from lectures and a standardized curriculum. But the issue here is value vs. risk: Lambda provides greater value (instructors, curriculum, etc...), but their income share amount is similar because it needn't account for the (presumably) higher risk of failure with self-study.

</comment></comment></comment></comment><comment><USER25> I know another company that has been doing something similar in the UK for a few years. In their model they pay for you to train and guarantee you a job at the end of it. The catch is that you have to repay your tuition if you leave that job within 1 or 2 years. They send you on crappy consultancy projects and pay you a relatively low wage while they rake in high consultancy fees.

The people I know who had trained through that could not wait to leave and didn't feel that it had been overall positive.

On the upside you get some work experience too.

</comment><comment><USER26> This page may be advertising an entirely legitimate program, but it's going out of its way to set off as many "shady business" alarms as possible. The cynic in me says this may even be intentional, for the same reason that Nigerian scammers keep saying they're from Nigeria: to filter out the suspicious.

</comment><comment><USER27> > Currently, you must have the right to work in the US in order to apply.

I wonder why, though? Is there a legal barrier that prevents them from introducing this to foreign students as well? Or is it just because US-based salaries are much higher than in many other parts of the world?

</comment><comment><USER28> Is it 15% of everything _above_ $40k or does it include the $40k as well?

<comment><USER29> You would think so, given the sibling comment about how people would be incentivized to make under $40k, but according to their Launch HN [1]:

"The $40,000 threshold is inclusive. So if their income is equal to our greater than $40,000, they owe 15%. If they ever dip below $40,000 payments stop until it goes back up to $40,000."

[1] [https://news.ycombinator.com/item?id=19227441](https://news.ycombinator.com/item?id=19227441)

<comment><USER28> Hey, thanks for the link! It seems odd to structure things this way but looking through that thread you linked to it seems they opted for simplicity. Not sure why this is simpler than 15% on the margin though.

</comment></comment></comment><comment><USER30> I feel like this might be solving the wrong problem. Are we at the point where we don't have enough experienced coders looking for work? Why not create a better way to find jobs for them first?

<comment><USER31> We definitely don't have enough _competent_ (which is most definitely distinct from "experienced") coders looking for work.

</comment></comment><comment><USER32> This is very similar to Lambda School, another YC backed startup that is doing very well. Lambda School went through the YC program just 1.5 years before YC decided to back a competitor. Not cool. Good VCs will bow out if they have a conflicting investment. YC sets a great example for many policies, but I think they got this one very wrong.

Now, if I am applying to YC I'm going to have to consider that they will have access to sensitive plans, strategies, strengths, and weaknesses of my startup, and that they might inadvertently share that with a competitor in a later batch.

I'm sure they'll say they have a Chinese wall and don't share information, but YC as a company now has a conflict of interest.

Really makes you think twice.

<comment><USER33> where does YC state they will only fund a single company per vertical?

<comment><USER32> They don't. That's my point. Most VCs won't invest in a competitor, but YC does. I think that's bad for founders.

</comment></comment></comment><comment><USER34> Their Launch HN: [https://news.ycombinator.com/item?id=19227441](https://news.ycombinator.com/item?id=19227441)

</comment><comment><USER35> Dupe of [https://news.ycombinator.com/item?id=19227441](https://news.ycombinator.com/item?id=19227441) ?

</comment><comment><USER36> Is there anything for similar for Europeans? 42 is tuition free and now age agnostic but that's it as far as I know...

</comment><comment><USER33> This is exactly the LAMBDASCHOOL model.

I fully support more attempts to spread this out! Competition is good!

</comment><comment><USER37> What about outside US?

</comment><comment><USER38> Wow, this is significantly more than what I make in Eastern Europe. Sign me up!

<comment><USER39> Yeah, except about this:

> (you must have the right to work in the US)

So you and I, both out.

</comment></comment><comment><USER40> I don't seem to be understanding the finances behind it.

The agreement is by completing the program, you pay 15% of your salary for 2 years as long as you're receiving more than $40,000. However, it also says it's capped at $30,000 total over that period.

If you pay someone a $2,000 a month salary for 21 weeks, that's already $42,000. Where's the extra $12,000 coming from?

I'm just trying to understand since if I agree to quit my "current job" and rely on another company to help pay for me, I'm relying on that company to not pull the rug out from under me when I'm half-way through the program. How do I know this is a reliable and sustainable program?

Interesting concept! That's just the first question that comes to mind for me.

<comment><USER29> > If you pay someone a $2,000 a month salary for 21 weeks, that's already > $42,000

It's $2,000 a month for 5 months, so $10,000 total.

<comment><USER40> That's true but they wrote a maximum of $30,000 total.

Is that total the monthly max cap or total net "payment" back to the organization? If it's 2000 a month salary for 21 weeks then yeah that's fine, but I guess it's the semantics that I failed to understand.

<comment><USER41> $30,000 is the max that you will pay back, calculated as a percentage of your salary once you are hired. $10,000 is what you will receive over the course of 5 months of training.

<comment><USER40> I just realized I totally misread it. Now it makes sense.

I just can't do math apparently.</comment></comment></comment></comment></comment>


Ask YC: Do we need to increase C.S. participation in high school by making curriculum broader? - <AUTHOR> http://www.edtechmag.com/k12/issues/august-september-2008/three-ways-to-fix-ap-computer-science.html

<comment><USER2> Making the curriculum broader and "focusing on synergies" is worthless. The real problem is that most high school programming classes suck. It is rare to find someone who's a good programmer, and also a high school teacher, for the obvious reason that high schools can't pay programmer salaries. So you end up learning stuff like "define a private variable... what does 'constant' mean... what is an object" rather than an understanding of how to write real programs.

Maybe a class where you actually build something would be better. The AP curriculum, though, is pretty worthless.</comment>


Show HN: A Rust macro that parses Java-like syntax and runs it as a Rust program - <AUTHOR> https://gitlab.com/jD91mZM2/jrust <comment> dan-robertson There are a few things that are annoying about writing macros* (in particular when I last checked there was no way to break the hygiene which is something that is occasionally useful for eg making lots of functions that follow a similar template) in Rust but in general I think they strike a really nice balance for a language with complex syntax:

1\. Macros only happen in certain points and don't need to be known to be parsed so parsers can be made which don't need to understand macro syntax (or know which macros are in scope before parsing). I think this is better than e.g. ocamlp4 (writing a plugin for an alternative compiler frontend) or perl6 (subclassing the grammar of the language and adding your own rules which is a bit nice but also a bit crazy. Perl has the advantage of being so dynamic that any kind of analysis tools are not written to parse the code but to introspect it).

2\. Macros don't require any code to be compiled and then run at compile time. This also means that macros are not programs that have to understand the type of the ast and operate on it, something that would be particularly painful in rust for writing something simple. Languages where macros are not like this are ocaml with ppx, Rust, and Julia (where the ast is super vaguely defined and hard to work with, especially in the way it magically deals with module scoping and quoting, quaisiquoting, and "hygiene")

3\. The input to a macro is not a parse tree but rather a "token tree" which is essentially a sequence of tokens where delimiters are matched and converted into "tokens," something that feels vaguely like TeX. the only other macro system that works at all like this is Lisp but that's because the language (and ast) _is_ sequences of tokens with parenthesised bits grouped into single tokens so it doesn't really count.

4\. Macros are based on rewrite rules. These make it quite hard to write macros but I think they're the best we have for not needing to invent a huge language just to write macros in, and for having macros be hygienic. Scheme macros are also rewrite based but it is easier to understand how they work because the shape of their input it more obvious

One thing that makes me sad about rust macros is having to specify the "type" of things that are matched against, e.g. "expr". I can see why it's needed but it does feel somewhat limiting. Another thing is that macro invocations look different from the rest of the syntax so a macro feels like it's tacked on rather than a part of the language.

* by macro I mean the kind made of rewrite rules and not compiler plugins

<comment><AUTHOR> I gotta say what I really like about macros are that ( and )s are matched. If you say:

      while ($($cond:tt)*) {

You'll actually match both

      while (true) {

and

      while (5 * (2 + 3)) {

. It counts the parenthesis :D

<comment><USER2> Even C preprocessor macros count parenthesis.

       MAC((here, have one argument), and then this second one)

</comment></comment></comment><comment><USER3> Reminds me of this cool hack: a 6502 assembler as a rust macro.

[https://github.com/jonas-schievink/rustasm6502](https://github.com/jonas- schievink/rustasm6502)

</comment><comment><USER4> Cool. On the other hand, projects like these suggest to me that Macro systems like Rust's are a bit too powerful.

Not that I know how to make it just enough less powerful.

<comment><USER5> Rust's macro system is actually quite limited (I don't know if it's Turing- complete, but the artificial recursion limit is low enough that even if it is, it's not going to be all that abusable); macros are mostly just good for getting rid of repetitive boilerplate, and community norms (and implementation papercuts) discourage people from reaching for macros willy-nilly.

<comment><USER6> They are Turing complete, see [https://github.com/durka/brainmunch](https://github.com/durka/brainmunch)

<comment><USER7> Not that "Turing complete" matters much. Raw text find-and-replace is Turing complete.

<comment><USER8> Like the language /// ? ([https://esolangs.org/wiki////](https://esolangs.org/wiki////))

<comment><USER7> Interesting, but my thoughts were along a simpler route of making a literal Turing machine out of text.

Represent your tape with digits, and your head with a letter. Have an arrow from the letter to the active cell.

      [ 0 0 0 1 1 A->2 2 2 ]

Then the text replacements look like this

      A->2 becomes 1 A->

      2<-A becomes 1 A->

      B->2 becomes <-D 3

      2<-B becomes <-D 3

So two text replacements for every state/symbol combo. And the halt state has no replacements. Easy!

(Plus a replacement from [<\- to [0<\- and from ->] to ->0] to make the tape infinite.)

</comment></comment></comment></comment></comment></comment><comment><USER9> I don't know what I would do with this yet, but this is certainly a cool feat!

</comment><comment><USER10> I was actually just toying with a similar thing myself. I'm experimenting with a system that generates abilities for a game within certain design parameters, then tests the games' balance by running lots of example games. I figured compiling a DSL via macro compiled down would be worth the upfront cost given how much testing I planned on giving each generated variant. Thanks for laying some groundwork in this part!

</comment><comment><USER11> Perhaps I don't understand something? (I've only done a very small amount of Rust.)

What exactly does this do? Let you write Java-style code in Rust? Why would I use this? (Is it because writing code like this is easier than straight rust?)

<comment><USER12> > Let you write Java-style code in Rust?

Yep

> Why would I use this?

You wouldn't. It's a toy

</comment></comment><comment><USER13> Would it be possible to write a compiler from Java to Rust? C# to rust? The goal then would be to get fast(er) execution times.

<comment><USER12> > Would it be possible to write a compiler from Java to Rust? C# to rust?

It's possible to write a compiler from any Turing-complete language to any other Turing-complete language

> The goal then would be to get fast(er) execution times.

You'd improve startup times from not having to warm up the JIT, but otherwise it would very unlikely you'd get a noticeable performance improvement. The speed of a language is at least as dependent on its execution model and idioms as its compiler. Not to mention that the JVM already does plenty of optimizations

<comment><USER14> I'm not sure the statement "It's possible to write a compiler from any Turing- complete language to any other Turing-complete language" is really accurate, other than in a strict cs sense. If you have a language that only allows printing to the screen as output and reading from the keyboard as input then you can't write anything that requires low level hardware access in it.

<comment><USER15> Thats more a symptom of the environmemt/compiler, but not the language itself. Theres no reason printing to the screen would stop you from printing binary, and feeding that into your processor as normal. Theres also no reason why the language can't have another implementation that does allow more standard outputs.

Language-wise, theres nothing stopping you from parsing java, and producing equivalent semantics. There's nothing stopping you from producing equivalent jvm bytecode.

The interesting part of racket/perl6/this project is that this compilation step is being done without having to parsing "another language", by using macros. Parsing is still done ofc, but it could also be said that you're really just parsing the rust language, which happens to look like java, and producing rust code. The macro system itself is operating as the compiler, and since macros are "rust", then whats the difference?

</comment></comment></comment></comment><comment><USER16> How well do LSP implementations cope with complex macros like this?

<comment><USER17> In short they don't, neither does the compiler.

I wrote a rather large macro to auto-generate a Java-Ops parser. The I spent the next 4 days re-writing it so I didn't have to give the Rust compiler 4GiB of stack just to compile.

Deeply recursive structures (boardering on 1mil+ recursion depth gets rough)

</comment></comment><comment><USER18> But the issue with Rust ins't the syntax, it's where you need to change your entire thought model to match what Rust expects.

Well, ok, the syntax can be pretty horrific at times, but going to something Java-like doesn't seem like much improvement.

<comment><USER19> This isn't really intended to be used for any actual code, it's just a fun exercise.</comment></comment>


Consulting Cofounder - <AUTHOR>

I'm planning to start a startup with a cofounder in January. However, he's considering a consulting offer from his current company: 8h/week + fly abroad to their HQ every 2 months for 8 12+ hour days (excl. travel time of 12h + jetlag), all while working on our own startup. He's citing as pros: money for our startup ($2500+/month) + contacts + we get to keep the stuff he develops + the company is working on interesting stuff. I'm weighing the pros and cons, but I'm gravitating towards 'no': it takes too much time, it will be a distraction, and it's unsettling that he'll have responsiblities to another company than our own. What do you guys think? <comment><USER2> If you total up those hours, you're getting 160 hrs per 2 months = ~20 hours a week. So

a) that's a pretty large time investment

b) $2500/mo for 80 hours of consulting is pretty poor pay -- $30 an hour?! That's $60k/yr with no benefits...

Seems like a pretty poor deal to me.

<comment><AUTHOR> I was netting it after taxes, the deal is about $50/hour. Plus his options keep on vesting.

</comment></comment><comment><USER3> Given the lack of other data (what would be his role in your startup, how good is he at multitaskig, what are you building, how much time will it take, can you augment his absence with another person, is this Forever or For a While), it's really hard to make any good recommendations.

Some people will tell you they did this and it worked out fine, others will tell you it was the cause of their demise.

I don't mean to attack your question, it just seems that you're asking for an answer to a multi-variable problem, and you've only given 1 constant.

Also, what would happen to that $2500? Is it to pay his bills, or fund your venture?

<comment><AUTHOR> The money would be completely for the startup. Of course there are many variables to consider in this dilemma, but I didn't want to make the post too long.

As for our roles in the startup, he is a web developer, I'm a mathematician/developer, so we complement each other. Just the two of us, at least for the coming couple of months. The idea that I'm getting, already in this phase of preparing for the startup, is this: in a startup, there's always work to be done and you get bonus points if you iterate fast. So that kind of mitigates the factor if somebody is a good multitasker or not (I'm more of a believer in focus).

</comment></comment><comment><USER4> completely depends on your roles in this startup and what you're planning to make,

it's going to be one of those things where you have to decide what's best on your own, because you are the one with insight as to what needs to happen.</comment>


Slingshot by Facebook - <AUTHOR> https://itunes.apple.com/my/app/id878681557?mt=8

<comment><USER2> Why does this link just take me to the iTunes download webpage? This is bait- and-switch web design if nothing else.

<comment><AUTHOR> What? The link is for "[https://itunes.apple.com/my/app/id878681557?mt=8"](https://itunes.apple.com/my/app/id878681557?mt=8"), why would you expect it to take you to anything other than an iTunes page?

</comment></comment><comment><USER3> oh look it's snapchat</comment>


Zoltan Istvan, presidential candidate of the Transhumanist Party - <AUTHOR> http://www.theverge.com/a/transhumanism-2015?mod=e2this <comment><USER2> His name had me very, very confused. Wikipedia says his full name is Zoltan Istvan Gyurko. That makes a lot more sense. I don't think there's an English common name that is the equivalent of Zoltán (It comes from the word sultan), István is Steven. So if we just pick another common English name, calling him Zoltan Istvan is a lot like someone having the name Robert Steven. Gyurkó on the other hand is a normal Hungarian family name.

<comment><USER3> Actually, family names that can also be first names are quite common in Hungarian. There are even people who have the same first and family name, such as István István.

Edit: Heh, case in point: [https://hu.wikipedia.org/wiki/Istv%C3%A1n_Istv%C3%A1n](https://hu.wikipedia.org/wiki/Istv%C3%A1n_Istv%C3%A1n)

<comment><USER2> Huh - in the 4 years I've lived in Hungary I've yet to come across this. Of course that isn't that long - but enough that seeing Zoltan Istvan messed me up. Thanks for pointing that out - it's interesting.

<comment><USER4> It's only from Napoleon, that there are names you are familiar with: and only in territories he occupied (much like SI, house numbering etc.).

The places he didn't invade would keep names like "Bush House, London", or names like "Richardson" ...son of Richard. Zoltan Istvan is for Zoltan's son Istvan and he presumably would be from somewhere like Transylvania, where Napoleon (~ administration) never got a foothold.

</comment></comment></comment></comment><comment><USER5> I listened to an interview with him recently on the Singularity podcast, discussing this campaign among other topics, quite interesting: [https://www.singularityweblog.com/transhumanist-zoltan- istva...](https://www.singularityweblog.com/transhumanist-zoltan-istvan-on- his-presidential-campaign/)

</comment><comment><USER6> This is the only sane guy among all the candidates.

</comment><comment><USER7> Zoltan Istvan is a character, and an outspoken transhumanist in a time when it is becoming perhaps a trifle unfashionable to refer to oneself as a transhumanist. Of course we are all transhumanists together here, reading this post while hoping and planning for a future in which fundamental limits of the human condition will be overcome through technological progress. Istvan has been publishing and speaking relentlessly on the topic of transhumanism for years now, and of late has settled upon the forthcoming presidential race as one of the few opportunities for an activist to make use of the US political system to promote a cause. In Europe starting single issue parties is a viable approach, but not in the US. So Istvan is touring, attracting attention, and giving interviews.

Here is something to consider: in the matter of changing the world, is it better to fund research into the technological progress you desire or is it better to fund publicity efforts for that same technological progress? I suspect that both are needed, striking some sort of balance between (a) science that is within striking distance but effectively invisible to the world and large funding sources, which has been the state for SENS rejuvenation research for quite some time, and (b) advocacy that is so far ahead of technological plausibility that the snake-oil salesmen sneak in and corrupt an entire generation with their nonsense, which is the story of the last quarter of the last century with respect to progress towards the treatment of aging. An argument for the "fund research" side is that meaningful progress in science tends to generate its own news. An argument for the "more publicity efforts" side is that there are plenty of historical examples of important scientific progress languishing at the verge of completion for a lifetime or longer. Personally, I'm in favor of funding the research at this time, and one of my main reasons for that is that early stage research has become very cheap over the course of the modern biotechnology revolution, while publicity remains stubbornly expensive. Yes, it is far easier to send your message out into the world, but there is now such a sea of content that making yourself heard is harder than ever.

<comment><USER8> > we are all transhumanists together here

You assume rather a lot, don't you?

<comment><USER9> See, I'm all in favour of cautious experiments with human body enhancement, but I've always seen people that choose to identify as transhumanists (and other forms of singularity believers) as the materialist equivalent of religious millennialists, believing that [near]immortality on earth will come before the end of their natural life - if only people will listen to them - with a keen desperation. Zoltan Istvan's an interesting guy though.</comment></comment></comment>


Instantaneous long-distance communication, via snails - <AUTHOR> http://en.wikipedia.org/wiki/Pasilalinic-sympathetic_compass

<comment><USER2> Lovely wiki find and a pure gem on many levels. Still best conversation you could ever have about snail mail, even if it did not work out.</comment>


Ask HN: hacker ways of fighting anxiety? - <AUTHOR> Last summer I developed a nasty anxiety disorder. I'm now trying to work on a startup project but I'm finding it very hard to concentrate. It's the typical GAD stuff: constantly worried about health, hard to sleep, fatigued, sometimes feel short of breath and minor chest tightness. Etc. The thing that sucks is I don't remember feeling like this until last summer, and I'd really like to feel normal so I can get some work done.
Was wondering if any other hacker / entrepreneurs have this problem and what you do to fix it.
My apologies if this is too off-topic, but the dedicated web forums for this are a bit sensational and a "hacker" approach seems like it would suit me the best (ala the "Hacker's Diet"). <comment><USER2> Exercise helps you feel always refreshed and improves your sleeping considerably. I have finally managed to fit jogging as a daily activity and it has helped me wonders.

But the key thing is marijuana. There's no better aid to concentration than getting high. Of course you can't over do it, but getting the /right high/ will make you code like there's no tomorrow.

It completely relieves you of any pressure and stress and makes any problem interesting to work on. It's the only thing that will make me stare 3 hours non-stop at code without being affected by distractions and without getting tired while also actually producing and being creative. I'm not ashamed of admitting it and I'm most definitely sure I'm not alone being a stoner coder :)

<comment><USER3> This may work for marathon coding sessions (be sure you're following TDD practices), but it can be counterproductive for people dealing with GAD. It can actually be a cause of GAD.

</comment></comment><comment><USER4> Exercise is what always saves me, specifically running, soccer (before hurting knee), and yoga (since hurting knee).

<comment><USER5> Seconded. Key for exercise: Find something that doesn't bore you to death. If most kinds of exercise do, you're not alone. Me, I get immensely bored of any generic cardio pretty quickly. I found the solution by chance: Bring a book while doing exercise bike. I can only read at about 60-70% of normal speed, and can only go 50-70% intensity, but I can do a couple hours of light/medium cardio while reading a good book. Weighttraining, martial arts, fencing, ultimate frisbee, golf, snowboarding, scubadiving, and occasionally pickup games of whatever in the snow have appealed to me. That might sound like a lot of activities, but I've tried dozens more and had them "not do it for me" and was bored or didn't enjoy them.

Eventually I found what works for me: things where I can think about tactics as I play or are played in really beautiful nature. Weight training also surprised me in how much I liked it once I got into it. Things without tactics or nature usually don't do it for me, but everyone's different and get into different things. Some people like to turn their mind off during exercise, some people like being really stimulated or distracted. Trial and error, plus not being discouraged if you dislike the first x kinds of exercise you try is the way.

<comment><USER4> Another way to make exercise interesting is to do something interesting while doing it. I ran into a friend recently who had lost a lot of weight. He said it was simply from using an elliptical machine while he read email. This seemed a very clever way to take advantage of the excessive amount of time one ends up spending on email.

</comment></comment></comment><comment><USER6> I had the exact same problem a while back. It was while working full time and creating a startup on the side. The stress of every thing resulted in the same symptoms. Every day I needed to resist the urge to go to the emergency room because I thought I was going to die of a heart attack. This lasted for about 7 months and I didn't tell anyone until eventually I couldn't take it and one night drove myself to the hospital. After a series of unpleasant tests, it was just to much stress.

So what did I do to fix it?

1.) Realized the deadlines and pressure I was putting on myself were self imposed and definitely didn't need to be that aggressive. One thing I have learned, all time lines and deadlines are made up (know one really knows, its just a best guess), unless there is a contract attached. Doesn't mean be lazy and slack off.

2.) Better time management, context switching in life is aa expensive as it is on a computer, Set aside time for each thing.

3.) Task lists, every day create a list of tasks you want to complete and cross items off when done. The sense of accomplishment creates a good feeling. Tomorrow create a new task list, don't add to the old one, this is a good way to clear the list of all the shit that doesn't matter or has changed. You are going to be behind schedule, the goals is to make progress and create milestones that can be reached.

3.) Balance your life, being heads down can only last for so long. Enjoy family, friends, people on the street, talk about what you are doing, get ideas and feedback. Get a way for a weekend, see #1 shit can wait a weekend.

4.) As soon as possible find someone that can start to use the software and give you feedback. It is amazing how one person giving feedback will help energize you. They will think the progress you are making is far better than you. This is because what you are doing will hopefully help them in some way.

5.) Started exercising, eating better and stopped drinking Coke. Caffeine increases heart rate and only added to the problem, but I was drinking Coke to cope with the sleeping issues. Exercise is always positive, don't need to run a marathon just get out and walk around, enjoy the sun.

6.) Massages, I made my wife start giving me massages and that worked really well. No wife, no worries, you can pay money for a professional.

<comment><AUTHOR> Wow, that is very similar to my story. Almost exactly, with the hospital visit and everything! In my case, I had switched startups and the 2nd one was a big mistake, with a sociopathic boss, unworkable deadlines, working until 5 am every day for weeks, etc.

Thanks for the tips! I've already found that avoiding caffeine is very helpful.

</comment></comment><comment><USER7> Treat your anxiety like you would any coding problem:

Consider your anxiety's symptoms as problems in an issue tracker. For every thing that makes you anxious, stop and think: Is this a true, valid, legitimate [health] concern? If so, address it. But if not -- if it's merely a product of your worry -- then mark that issue as "resolved", "notabug", etc.

It's a logical approach: If there isn't anything medically wrong and you're just anxious about it, then take a moment and tell yourself that it's just a needless worry, and worrying about a bug doesn't fix it.

The more you can allow yourself to focus on other things (i.e. becoming engrossed in a project), the easier it will be to put your anxiety aside.

[I am not a doctor, etc.]

</comment><comment><USER8> I had no idea that this was wide spread among hackers. Although, thinking about it, it makes a lot of sense. Working in an abstract rational world and in an almost always stressful environment tends to bring this stuff out. Also, i found that people to tend to be "deep thinkers" always have these problems. Wonder why....

Some great tips here. I had a similar problem, although mine was a clinical depression induced by malaria medication i had to take while on a trip to Africa. What i did was to rest for a while and then start coding whenever i feel like it. In a couple of weeks, i found that i was coding for more than 10hrs a day. That was 3 years ago.

</comment><comment><USER9> Exercise is great.

Sleep is great. I've figured out that if I don't get enough sleep, I usually end up wasting more time than I would have got sleeping.

That said, you definitely need some time off from work. I'd suggest taking off a full day (24 hr) a week from work. Do what ever you want, sleep, watch tv, play a sport, just don't do work. Tell yourself to think about work later. It's a good time to catch up on any lost sleep and de-stress.

</comment><comment><USER10> Try not worrying about falling asleep at specific times -- such worry is itself a source of anxiety.

When you are tired enough, you will sleep.

</comment><comment><USER11> I would absolutely see a therapist. You could try out a psychologist just to "talk things out with" and he/she can recommend a psychiatrist if medication is needed. It can help. I have ADD and occasionally have anxiety symptoms as well, and I've been to a few therapists so I know that therapy can really help.

</comment><comment><USER12> There are a couple of things I do to get away from stress. Remember you need to get away from stress, not problems. You need to solve problems, but get them out of your mind until they are needed.

1) Pick up a fun sport. Sport gets the endorphins going, gets your body working, makes you think better, feel more self-confident, etc. I take Karate for fun (hell I've been white belt for 6mo since I didnt take test) but it made me so much happier that I can't even compare myself now and 6 mo ago (don't go to the stuff like Tiger Sholmans, they are all crap, go to the cheap dojos, try a few out. Ask friends if they go.) Or play some soccer, football, basketball, just make sure to push your body just hard enough to get a good workout, definately past the "oh I'm out of breath I'm sitting this one out" play till you can't move the feet. :) Just know your limits.

2) Go out with friends, even if you are married, go do something completely useless with a friend.

3) Just sit down and clear your mind. Know that all the problems are always there until you solve them (or until you get help) but treat yourself to 5-10 minutes of complete ignorance and tranquility. Do this as often as you need it. If you need to do 30 min of work and 10 min of R&R do it! If your boss complains then tell him calmly that if he has a better way to get some stress relief you are all for it. As a human being he will understand anxiety.

4) Don't bottle it in. Talk to a spouse, a family member, a friend, a co- worker, anyone. Sometimes just letting it out can make you feel so much better. (had this happen recently, been dwelling on something for many many hrs, could not sleep, a 2 minute conversation with a co-worker just letting my feelings be known made me feel better, and in the end I just stressed over nothing. But it helped. Was not directed at the co-worker.)

5) I noticed crap food also adds to stress. Eat better. I drink water and juice (rarely), eat fruits vs candy, no fast-food like mcdonalds, burger king, subeway, anything like that, eat some cooked vegetables (for flavor). I noticed diet definitely helps. And it improves your health as a bonus.

6) STOP WORKING. You can't have your brain on full power 24/7. At some point it just crashes and if you keep pushing you will get bad results. Its why I can't drive for extended periods of time without rests, too much attention, too much brain power used, eventually I just start shutting down. Same with programming. I take breaks, read news, talk to co workers, get lots of work done, go home, see family. Do anything to shut your brain down for a small time. If you are working till 5am and you can quit (if you are good this economy means you have a chance to find a job) then quit. No crap job is worth your life.

<comment><USER12> I just realized. What you can do is write down a list of all the things you can't do anything about at the moment. Every day change the list to see if anything can be taken off.

Every time you stress out look at the list. If its there remind yourself that there is nothing you can currently do, so let it be. Whatever happens will happen, but since you can't change it don't kill yourself over it.</comment></comment>


Ask HN: How long is the road from web dev to game dev - <AUTHOR> I've been creating web stuff for almost 10 years now but these days I fell really drained of doing the same stuff all over again on almost every projects. So I started looking around for alternatives and since I've always dreamed of creating video games (but somehow always assumed that it was out of reach to make a living out of it), I am considering diving into this.<p>I am a fairly experienced programmer and I have some experience in 3D modeling / rendering as hobby but I am a complete ignorant in game design / programming.
Is it realistic to think about a career change at this point ? If it is, any tips ? Can I be hireable in gaming industry in a decent amount of time? <comment><USER2> They'll hire you, exploit you, and then fire you when the funding dries up. Your "customers" will whine endlessly about every change you make, and every change you don't, and then cry out at having to pay more than nothing for your game. The industry mostly only has big publishing houses and captive studios left, and has _bar none_ the very worst sort of customers you'll ever get-- just go read through the user feedback on the Steam store.

Importantly this:

[http://www.puppygames.net/blog/?p=1574](http://www.puppygames.net/blog/?p=1574)

And this:

[http://www.fdg2013.org/program/papers/paper06_zagal_etal.pdf](http://www.fdg2013.org/program/papers/paper06_zagal_etal.pdf)

And this:

[http://www.developereconomics.com/mobile-gaming-dirty- secret...](http://www.developereconomics.com/mobile-gaming-dirty-secret/)

I would never in a million years recommend anybody entering the industry at this point unless they are making an independent game by themselves--and even then, only as a hobby.

If you want to learn something, keep it as a hobby. It'll be a lot of fun, you'll learn a lot, and maybe you'll even get to sell your project. But don't don't _don 't_ try to make a living from it.

<comment><AUTHOR> Thanks for the cold hard truth. Seems to make lot of sense. Will take it as a hobby for now and see where it leads me.

</comment></comment><comment><USER3> I would recommend participating in some game jams to get you started and see if it's something that you want to pursue. There are several notable ones every year. The next big one is Global Game Jam[0] at the end of January and then there is Ludum Dare[1] three times a year (April, August, December). These will help you grow as a game developer and learn a little bit about everything that is involved with creating a game.

After participating in some game jams I would suggest doing some research into what the work/life balance is for game developers (spoiler, there's not much of one) and decide if that's something that you can live with.

Finally if you're looking for things to learn to more easily get a job in the industry I would suggest mastering Unity 3D[2]. It's quickly becoming a ubiquitous tool that game companies use to at least prototype games in and showing mastery should at least get you in the door for an interview.

[0][http://www.globalgamejam.org/](http://www.globalgamejam.org/) [1][http://ludumdare.com/compo/](http://ludumdare.com/compo/) [2][http://unity3d.com](http://unity3d.com)

</comment><comment><USER4> It is not a very long road. You need to understand how an event loop works (versus web transitions, which are usually async) and learn the math. If you get into a lower level position, you'll need to learn how to interface with the GPU and a bit of memory management, etc.

In my experience, 90%+ of the learning was the mathematical transforms and learning how to translate something that happens over seconds or minutes into a function that spits out transformations over ticks.

</comment><comment><USER5> Since you are familiar with web languages already, you should go check out impactjs. Very cool little javascript game engine with a lot of flexibility. Has been used for small and big projects, one person even recently produced an infinite-sandbox mmo with it! Unfortunately, it does cost $99.

[http://www.impactjs.com/](http://www.impactjs.com/)

<comment><USER6> There are many no-cost, open source JavaScript game engines today. Other than the level editor (which does look pretty cool) what advantages does ImpactJS have to justify the price and, more importantly, committing to a proprietary technology?

</comment></comment><comment><USER7> You have thousands of people doing game development for free as part time projects. Unless you are finding yourself doing this type of work you really don't stand a chance. No one is going to put you into a position to gain the right experience unless you have demonstrated you are worth the investment.

<comment><AUTHOR> I'd be OK to do some free work to get started. Any ideas about where I could find these types of gigs ?

<comment><USER8> 0 A.D.[0] is a cool open source RTS. They are looking for developers to help out.

[0] [http://play0ad.com/](http://play0ad.com/)

</comment></comment></comment><comment><USER9> I think road might not be long instead its a U-turn u need to take</comment>


Show HN: DuoQuiz: Android trivia game I've been working on after work - <AUTHOR>

I've spent the past 4-5 months working on this Android trivia game in my spare time. Would love some feedback, thanks!<p>Google Play link: https://play.google.com/store/apps/details?id=com.versuslabs.duoquiz <comment><USER2> may I ask why? It looks like an attempt to clone QuizUp that went wrong (sorry). Was it a personal challenge?

<comment><AUTHOR> Hi! One of my first real apps I ever developed for Android (back in 2011) was an online trivia game very similar to the trivia games you see nowadays (asynchronous gameplay, 4 options per questions, 5 questions per turn, etc).

When I look back to it, it was very weak at the technical level. I developed the Android client and the API while learning stuff at the same time. So, 4 years go by, and I decided to have another shot at it. So, in a sense, you're right, it did start off as a personal challenge to see just how much different the end product would be, given that I've now been working full time on Android for the past 4 years.

But other than that, it's actually quite different than QuizUp since this game is real-time and seems to have steered heavily away from what a normal trivia game is like. With their latest releases, they've sort of created a sort of massive social network around the questions/answers genre.

I wanted to make an app that went back to the basics. Something you can use here and there while killing time..open the app, have fun answering a few questions, and done.

<comment><USER2> very cool man. I wish you the best of luck :).

<comment><AUTHOR> thanks!</comment></comment></comment></comment>


Learn to Program Ethereum Smart Contracts and Distributed Apps - <AUTHOR> www.newline.co <comment><USER2> Dapps are not "Distributed Apps", they are Decentralized Apps. Anyway, this is a great resource!</comment>


Short array syntax finally in PHP 5.4 - <AUTHOR> http://svn.php.net/viewvc?view=revision&revision=313641

<comment><USER2> My big complaint about arrays wasn't declaring them. It was the endless array functions you have to use afterwards.

array_push

array_pop

array_slice

array_shift

array_unshift

array_map

array_key_exists

It kind of feels like they missed the point, saving 5 characters when you declare the array once, ignoring all of the other operations you do afterwards.

And this RFC, simple as it is, took 3.5 years to come to fruition.

<comment><USER3> Hard to say that it is simple unless you know the internals.

<comment><USER4> 2 lines in the parser: [http://svn.php.net/viewvc/php/php- src/trunk/Zend/zend_langua...](http://svn.php.net/viewvc/php/php- src/trunk/Zend/zend_language_parser.y?r1=313094&r2=313641)

The RFC (<https://wiki.php.net/rfc/shortsyntaxforarrays>) was actually rejected by the developers, I think it's only really been put in to appease large userland pressure. Find it rather amusing that a 2 change to the parser for an alias would be rejected on 'maintainability' grounds.

<comment><USER5> The voting results on the RFC page is from 2008 when it was rejected. The recent vote that decided its inclusion was here: <https://wiki.php.net/todo/php54/vote>. I think it had pretty solid support from core developers as well as userland people this time around.

</comment></comment></comment></comment><comment><USER6> With the removal of bad legacy features like register_globals, magic_quotes_gpc, and safe_mode combined with new features like array de- referencing and traits, I'm really excited for PHP 5.4. :)

For anyone who's curious, here's a list of the changes in 5.4 alpha 1: <http://www.php.net/releases/NEWS_5_4_0_alpha1.txt>

</comment><comment><USER7> Now if only when a function returns an array we needn't a variable...

      function boo(){
      return array(1,2,3)
      }

      echo boo()[1];

<comment><USER6> [http://svn.php.net/viewvc?view=revision&revision=300266](http://svn.php.net/viewvc?view=revision&revision=300266)

<http://www.php.net/archive/2011.php#id2011-06-28-1>

It's in PHP 5.4 alpha as well ;)

<comment><USER7> Thanks!

</comment></comment></comment><comment><USER8> Just looked through the RFCs... and I'm a bit surprised noone proposed unification of types yet. It seems a bit silly that the resources, objects, arrays, strings are different types at the language level. They could throw out / reorganise a lot of the randomly named functions this way. Just add the proper methods to the actual types and sort out the (haystack, needle) order, underscores or lack of them, etc.

<comment><USER9> Right, but wouldn't that make PHP code too good looking? The core devs wouldn't allow it ;)

My only wish is that they implement something that evaluates {} to (object)array(). It would come in handy when used with anonymous functions.

Anyway, I am pleased with the new syntax, but sadly, I have to use 5.2 as most of the time I'm working on WordPress projects...

</comment></comment><comment><USER10> That's great news, finally we can do

      $a = [1, 2, 3];

and it also will make function calls with named parameters much more readable.

Sadly, it will be years before the majority of hosting providers adopt 5.4...

<comment><USER11> Also arrays of arrays have a much more compact syntax:

      $a = [1 => [4, 5, 6], 2 => [7, 8, 9], 3 => [10, 11, 12]];

      $a = array(1 => array(4, 5, 6), 2 => array(7, 8, 9), 3 => array(10, 11, 12));

<comment><USER12> Uh, why wouldn't

      [[4, 5, 6], [7, 8, 9], [10, 11, 12]]

work?

I know PHP has a weird history of rebelling against its C-family-syntax heritage, but requiring the syntax in your example would seem specifically calculated just to make developers' lives harder.

<comment><USER13> Your example would work, but there's a reason you might want different keys. My company's current web app is written in CakePHP, which has a love for arrays. Some of my queries look like this:

      $booking = $this->Booking->find('first', array('conditions' => array('Booking.booking_id' => $id), 'contain' => array('Review', 'Desk' => array('fields' =>
     array('provider_id', 'category_id'), 'Provider' => array('city', 'name'), 'ProviderCategory' => array('fields'   => array('provider_id', 'category_id'), 'DeskCategory' => 'name')))));

It's essentially not readable, but with [] it would work much better, and I still want to give keys to arrays.

<comment><USER14> As an FYI, you might want to look into custom find methods if you haven't already: [https://github.com/josegonzalez/documentation/blob/master/03...](https://github.com/josegonzalez/documentation/blob/master/03-good- cake/01-models.textile)

</comment></comment></comment></comment></comment><comment><USER15> Still strikes me as a useless bit of syntactic sugar. Is it _really_ that much work to write array('foo' => 'bar')? As far as I can tell, writing ['foo' => 'bar'] isn't that much shorter in the first place.

 _sigh_ Can the PHP devs focus on the real problems now? _cough_ Unicode anyone? Ridiculously inconsistent naming of string and array functions? The woefully incomplete and useless STL? The lack of OO in arrays and strings?

<comment><USER16> Hey, I've been complaining about PHP's lack of Unicode support forever. Every time I do, though, an apologist comes out of the woodwork to tell me about the mb_*() functions. Apparently the PHP community is quite comfortable not caring about non-ASCII characters.

<comment><USER17> [http://www.slideshare.net/andreizm/the-good-the-bad-and- the-...](http://www.slideshare.net/andreizm/the-good-the-bad-and-the-ugly- what-happened-to-unicode-and-php-6)

Andrei Zmievski has been giving this presentation on what happened to Unicode in PHP. A huge amount of work went into making it happen but it eventually could not continue due to several reasons, including design decisions, lack of contributors & interest in the project.

</comment></comment></comment><comment><USER18> My complaint about arrays in PHP is warnings for reading a array member that may not exist, such as when reading a form input that might not be there.

        $foo = $_POST["foo"];

Undefined array key! Oh, no! Tragedy! A crime has been committed! Are you kidding? Just set $foo to undefined and let me deal with the consequences, please?

<comment><USER19> You really wouldn't like Python or even stricter languages such as Scala or java, then. In Python, an attempt to access a nonexistent dictionary key will throw an exception which halts execution if not caught. (similar to calling a nonexistent method or function in PHP, but since PHP doesn't have a well- thought out exception system/std. lib as Python does, you can't catch anything in that situation in PHP).

<comment><USER20> In Python, if you're expecting a potentially missing key, you can just use dict.get('key') rather than dict['key']. The equivalent in PHP would be something like:

      $val = array_key_exists('key', $dict) ? $dict['key'] : NULL;

Being able to say "I expect a potentially nil value (and am okay with that)" via get() rather than array index is both semantically useful, and far more beautiful than the PHP equivalent.

<comment><USER19> Sure, or you can catch a KeyError and do something else entirely. I'm aware of all this, just pointing out some differences to the person to whom I replied.

Python's dict.get is a bit like the getOrElse found in Scala. It's quite handy and can be seen as advanced conceptually.

I actually added some code like that to a recent post about PHP here: <http://news.ycombinator.com/item?id=2771304>

</comment></comment></comment></comment><comment><USER21> That's good to see, but like many have said, I'd really like to see proper OO stuff like $myArray->pop();

What about short object declaration syntax:

$obj = { param:'blah' };

PHP already has stdClass, so I doubt it would take much of a parser change to implement that.

</comment><comment><USER22> While I don't use PHP any more, this is still a massive improvement for those that do. Next on the list: Array and String literals as proper objects!

</comment><comment><USER23> "Perfection is achieved not when there is nothing more to add, but when there is nothing more to cut off."

Adding fancy syntax does not magically transform that crapware to something almost perfect like python3 or ruby (in its way) where these syntactic forms are among foundations of the language and are supported through all basic idioms. ^_^

</comment><comment><USER24> Looks like they decided NOT to include the scalar type hint. <https://wiki.php.net/todo/php54>

Even better would be bool/float/int/string/func ref type hinting...

</comment><comment><USER25> What's the release roadmap and dates for 5.4?

<comment><USER6> <https://wiki.php.net/todo/php54>

</comment></comment><comment><USER26> $I $wish $they $would $get $rid $of $prefixing $every $variable $with $a $dollar $sign.

</comment><comment><USER27> So does => quote the lhs, like Perl? Otherwise, what's the point?

<comment><USER28> I take it you don't know anything about PHP?

</comment></comment><comment><USER29> But PHP isn't a transmitted language like javascript, why even bother? It will only make the parser slower?

<comment><USER30> They're trying to be nicer to the humans. (Though IMO, any human who wanted to be kind to himself would just not use PHP to begin wtih.)

<comment><USER31> Right now those humans would not choose to start a project in php, but a few years ago there were not too much alternatives. It's not for nothing that the world's second biggest website is written in php.

<comment><USER19> Do you mean Facebook? They only use PHP for templating and legacy purposes, as far as I understand. Much of their newer code is written in a variety of languages, including C++, Python and Erlang.</comment></comment></comment></comment>