Thanks for Submitting Your Résumé to This Black Hole - <AUTHOR> https://www.nytimes.com/2017/03/25/opinion/sunday/thanks-for-submitting-your-resume-to-this-black-hole.html <comment><USER2> Whenever this subject comes up, predictably the answer here is always Blah blah blah network network network. For a demographic always looking for the scalable solution to a problem, HN seems pretty attached to the least scalable option. The numbers just don't make sense to me.

Let's generously assume that you meet and have excellent working relationships with 100 people at each of the 4 jobs you've had. Of those 400 people, say, conservatively, 50% think so highly of you that they'd be willing to stick their neck out help you with your next job search. Out of those 200 people, 50% are no longer working for that company. Out of those 100 people, let's optimistically assume you actively kept in touch with all of them over the years. Now, maybe 50% are working for a company where you'd actually like to apply. Out of those 50 companies, 20% actually have a job opening that fits your background. Out of those 10, maybe 2 actually know and can put you in touch with the hiring manager for that opening. And your success chance through the interview pipeline has got to be worse than 50%.

Tweak my numbers up or down a little, but I think it's a pipe dream for most workers: You have to have an enormous address book full of high-power contacts in order to end up at the end of the funnel with one or two who are both willing and able to successfully help you get a job. And once you've exhausted that network (all it takes is to blow a few interviews), then what?

<comment><USER3> Meh...working in the opposite direction, I just took two companies that, off the top of my head, would seem like attractive places to work (Stripe and AirBnB). Both have listed openings of the somewhat rare position that I'd be looking for (Engineering Manager). I went to LinkedIn and searched for each company and looked at just recruiting profiles. I found 12 and 8 mutual contacts, respectively, that I could easily ask to pocket a referral bonus in exchange for forwarding my resume along with a small recommendation note.

Granted, I make the effort to network, especially with people who I have enough of a working relationship with that they'd recommend me. But it seems just based on my quick sanity check, that networking could easily work well enough to find a job should I decide I need one. And that's not even counting the 4-5 unsolicited contacts per month that come in from recruiters that I was referred to them by someone I know.

Sample size of 1 and perhaps I distinguish myself more than others, but I can say with certainty that the effort I've put into networking means I won't have problems getting an interview in the current market. If the market tanks, the story might be different.

<comment><USER4> What do you understand as "Engineering Manager"? In software an engineer that upgraded to managing other engineers seems to be common practice.

<comment><USER3> Yes, it's common practice. It's how I originally became a manager. That's why it's somewhat rare to see job openings for those management positions. Most companies would rather promote from within than hire an someone from outside the company. Managers are often most effective when the people being managed believe they understand the work being done intimately and the easiest way to show that is to have done that work prior to becoming a manager.

But management is also a discipline apart from the work being done by the team. I made a ton of mistakes early in my time as a manager. I was also fortunate enough to work for a company that had a management training program that was hugely helpful. And I'm also fortunate to have a parent that teaches interpersonal dynamics in a business school, so I've had a lot of exposure to the theory behind the practice. I feel this has made me a lot better manager now than I was when I first started, despite the fact that my actual abilities to write code have suffered somewhat from lack of practice.

<comment><USER4> Yeah, alright. That makes sense.

</comment></comment></comment></comment></comment><comment><USER5> In my job search, I've been surprised by how often you submit a resume online, and then you don't even get a rejection email. It's a true "black hole" in that you never hear back, not even with a "no thanks". I think it's disrespectful of candidates to ask them to spend time filling out an application, and then leave them hanging because you're (presumably) too lazy to read it.

<comment><USER6> Part of the reason is that rejected candidates tend to ask why they were rejected, which is a massive time sink. The logic goes that it's better to black hole than it is to be inundated with requests for reasons.

<comment><USER7> When recruiting, I chose to reject thousands of people.

For obvious rejections, I sent an auto generated email that looked like it could be from a human. If someone asked why they'd been rejected, I'd simply say the hiring manager chose to focus on more obvious matches for the position, and that was the end of it. Maybe 1 in 100 asked for feedback, but I didn't keep stats.

For a few candidates who were unlikely to be a fit, I'd reject them, and say why I didn't think it'd a match. Usually if I heard back, it was simply to say thank you for acknowledging them. For one position, I was recruiting a CTO. I rejected one Craigslist sourced applicant, and gave him reasons why he didn't fit the CEO's list of filtering bullet points. He responded with information that flipped him from a no to a yes, he got the interview, and eventually got the job!

<comment><USER8> >For a few candidates who were unlikely to be a fit, I'd reject them, and say why I didn't think it'd a match.

I read that a lot of people don't do this because they are afraid of $RANDOM lawsuit.

<comment><USER9> I always assume this is just an excuse - they don't give you a reason because there is no reason for them to give you a reason. If there was some benefit for them to giving you a reason they would not fear the lawsuits. Maybe some people from Europe can talk about whether companies give them reasons, I suspect even in Europe companies don't tell applicants why they didn't hire them.

<comment><USER7> If you're rejecting someone for because they'd never get the job, it's not worth explaining why. Reasons include the candidate wasting their time to impress you in a way they will never work, getting sucked into a sob story about how they really need a job, and the candidate starting an argument, etc.

Here's an extreme example. I rejected a candidate, and felt bad for him. I gave a specific reason why he'd never get the job. A few hours later, he showed up in the lobby of our office building, coked out of his mind (that's what it looked and felt like, but he was probably just intensely upset). He started demanding to see HR. Shit went from chill to super uncomfortable in 0 seconds flat. I walked up to him, suggested he leave, at which point he realized I'm twice his size, and he departed. Yikes!

I stopped giving invalid rejection explanations after that. It's just not worth it, and that's part of living in the world that sucks more than I'd like it to.

</comment></comment></comment></comment></comment></comment><comment><USER10> The worst is when you have to fill out countless repetitive and exhaustive applications for ONE job because they don't have enough a proper interface to indeed/LinkedIn/etc

I probably spent 7 hours on application paperwork for my current job. Complete with detailed personal history that had to be 100% accurate going back 10 years.

I had 3 other offers expire before I got my offer from my current employer. Then once I accepted it was another month before I knew if I passed the background checks. That wanted me to start a few days after I finally knew without giving proper notice to my current employer too!

Thankfully this only had one 3 hour casual interview and it was more a waiting game than endless hours poured into interviews for a job I might not get. I knew this would be a better choice than the other offers and I'm glad I did what I did.

<comment><USER11> I accepted an offer at a subcontractor at Gulfstream once. Crazy process, including them demanding I send all kinds of crazy info including SSN via email unencrypted.

Anyway, I spent several weeks asking them over and over when my start date was supposed to be, because eventually my soon-to-be employer's contract with GD was going to expire and I also wanted to give my current employer notice.

After a couple of months of this, I got fed up on a Friday and wrote an email telling them that I'm rescinding my offer and they went crazy and then kept calling me through the weekend and telling me I could start on Monday begging me to start...telling me I should just walk away from my current employer with no notice.

Walked away from that situation and never looked back. Glad I did it. My background check cost them nearly $500 and I imagine it hurt their relationship with General Dynamics. First clue should have been the fact their entire HR department was offshored.

<comment><USER10> The only thing that kept me going on this was excellent communication with both my new manager and HR. They guided me through the process and were very honest about where we stood and how I should answer ambiguous questions in the application. I was certain I would pass the background check but nonetheless it felt unnerving to let those other offers expire for something that was not really a sure thing.

Also some of the background checks can cost quite a bit more than $500. The preliminary ones are fast but the thorough federal one I'm undergoing now takes around 6 months.

I passed a similar one a few years ago which cost the employer more than 30k and took more than a year to compete.

<comment><USER12> What kind of background check costs $30k? Were they looking at past finances?

<comment><USER13> Six months and $30,000 sounds about right or maybe even a little low for a US secret clearance. There's a reason they're estimated to be worth about $10,000 a year. Insanely expensive and time consuming to get.

(OP has mentioned in another thread that this was not a secret clearance, but very similar.)

<comment><USER14> Probably a level 5 or 6 certification of public trust.

</comment></comment></comment></comment></comment></comment><comment><USER15> Minus the dog learning to type at the end, sounds like my experience applying for jobs: submit application online to several places, get a "resume received" email, some automated email a few days later to get one's hopes up, and then get that denial email.

I don't want to hear some euphemistic email detailing how I was a very strong candidate but among a large qualified pool of applicants or how the team was impressed with my resume but _unable to move forward at this time_... just tell me I didn't get the job already and cut out all the flowery soup.

<comment><USER16> > ... just tell me I didn't get the job already and cut out all the flowery > soup.

Amen to that. Recently I submitted five applications and four of them ended up as duds. What really annoys me is that I had to chase the recruiters to find out for myself that either the job is too senior or they forgot to take down the advert. The best one so far is when a recruiter claimed they never received my application when I got a _confirmation email_ earlier.

Please guys, don't be lazy! Don't play games! Don't make _me_ look desperate, geez.

<comment><USER17> After I've sent out an application I don't give it any more thought. I don't wonder if it's been read or if they'll ask for an interview or how long it will take them. I look for the next job to apply to.

As far as I am concerned, a rejection wastes both of our time. Unless they want an interview, why bother communicating any further?

<comment><USER16> Not when I was deeply interested in those jobs, and took my time tailoring the applications to them. I don't usually mass-send my CV, I prefer to shortlist jobs and focus on them. See, I would appreciate at least a note about the outcomes. But it's either no contact or it drags on for ages until they somehow realise that the position is no longer available. It's a bit unbelievable, and I'm starting to doubt myself.

These days too I notice that recruiters have become more mechanical and not very interested in finding out more about you as a person. It's like they forgot that they've got two clients, the organisation and the applicant.

Sigh. To be honest I've never had this experience before so it's a bit demoralising. But hey let's keep carrying on.

<comment><USER17> I would honestly question why you are spending a long time tailoring an application, or pinning hopes on any one application. I wouldn't say I mass send CVs - but I try not to spend over an hour because I don't see it as a good time investment.

Anyway I'm hardly an expert, but this attitude and process has helped me.

<comment><USER18> Why? Because there are two extremes here:

1) Selectively applying only for positions in companies where you truly care about the specifics of the role and the overall purpose of the company, because you want a specialised role and/or professional progression.

2) Indiscriminately applying for anything which vaguely seems like you might be able to do, even if it's not a good match and you care little about it.

I've not done a huge amount of interviewing, but last time I did so it was painfully obvious which categories the CVs fell into. All the (2) applicants were immediately rejected on the grounds of not meeting the required job criteria or were ranked much lower than the (1) candidates for not having relevant experience in the area or zero demonstrated interest in the area or specific position either on paper or in the interview.

You must tailor both the CV and cover letter to make a good impression. That's the careers advice I was given, and it's good advice. Not taking the time to do so makes it much more likely your application will be rejected outright, or be ranked below better applications. If your application doesn't demonstrate any clear interest or specific aptitude for the position, it's going to naturally make you appear less desirable than candidates with the same skills which do. The CV is selling you to the people reading it, and if no effort is made to market your skills and experience for the position on offer, then you're selling yourself short.

Last time I had to apply for a job, I spent a lot of time looking over job listings, and submitted four applications to four places, all tailored bar one. I got four interviews and three job offers. The hours spent tailoring each application paid off in terms of the response. And I got a job in a field I cared about, rather than something random. The one I didn't get an offer for was with Google, and that was mostly untailored because they weren't hiring for a specific role; I wouldn't have accepted an offer in any event, so no loss for that one!

<comment><USER17> Where are you finding these jobs? I am talking about the context of online job boards. The descriptions are often quite vague or written by someone non- technical. I have no idea if the place would be a good place to work at just by reading them. So I really don't feel it's worth a lot of time to do a lot of research.

I like my current job and I can't even remember what the job description said. Anyway maybe your technique works for your area and your skillset - but I'd fall flat on my face if I tried it here.

<comment><USER18> It was a combination of company websites and academic job boards. In my case, this was ARM, jobs.ac.uk and a couple of others. I ended up in an academic software developer position, doing scientific image processing.

In the past, I have trawled through sites like Monster, Reed and other big generic sites, and generally been unsatisfied. I've had my share of generic and fairly boring positions from this route. You essentially have to take the best of all the rubbish that's on offer in an area that's practical to be. You're right that the descriptions are rubbish and next to useless, and I think in most cases this route should be avoided if at all possible.

But if you decide up front exactly which field you really want to work in, and then proactively look for companies working in that area which are hiring, or might be hiring, you can get something you really want and raise the chances of being hired as well. Particularly if you proactively reach out to groups which you want to work with; several people on my current team got hired after working for groups in other organisations doing related stuff--just being known helps, and being known to be doing good stuff helps even more.

<comment><USER17> Sounds like you have more education in a specific field (image processing). You know the industry you want to be in and the kind of companies that have those positions. Similarly, those companies have strong ideas on the kind of people they want and you're a good match.

FWIW, 2/3 jobs I've found on job hunt boards have been pretty good. I'm much more interested in what the team are like and the environment than I am the specific problem domain.

You are probably right that networking is better though. I read somewhere that the time to start networking is not when you want a job - that comes across as being needy. I'm trying to do it more now, at a time where I'm comfortable in my role. I'm hoping it works both ways - I'll also find talented people I'll be able to recommend to employers or work with.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> I have almost 10 years of experience and I've been looking for a job for the last year. I've sent applications to some companies, carefully selected and for which I'm 100% enthusiast about. I've sent custom cover letters, I've been studied the product and provided feedback and improvements. And still I don't deserve even an email saying that I've been rejected.

With some companies I was exchanging email, providing all the info, and then suddenly I never received any further reply.

I think that it's good for the company to filter out candidates, but something must change, as candidates we expect at least a rejection email, especially when your life depends on it.

<comment><USER20> You don't depend on them. They depend on you. Always remember that wherever you work: they are renting your time, you are always working to better yourself.

Keep staying positive and know there is an opportunity out there for you. Don't get discouraged!

<comment><USER21> IT workers are losing leverage in the US. Many have been offshored, and most remaining positions are being centralized to a handful of tech hubs in the country. It's good to not lose hope, but don't think as an IT worker, your have infinite leverage.

</comment></comment></comment><comment><USER22> I'm more and more convinced that being a cog in some corporate machine is coming to an end. We've collectively refined corporate processes to the point that it no longer requires human ingenuity or creativity. This has all happened under the guise of making things more efficient so that a stock ticker will be less volatile and will consistently move up and to the right. The candidate tracking software that this article parodies is one example of such an automated and "efficient" system. One gets the sense that the recruiters are almost secondary. Soon a "dog" will really be able to screen candidates for a job.

I don't think I'm saying anything new here. The mechanization of such work has been happening for a while now and the smart move is to start planning for that inevitability. Anything that requires basic pattern matching and procedures is pretty much gone. My retirement account I think is currently managed by a "robo advisor". Hiring humans to do such mechanical tasks will start getting more and more expensive relative to tweaking some parameters in some neural network coupled maybe with some domain specific policy/optimization framework.

Personally I don't think this is such a bad state of affairs. Why should societal optimization tasks be handled with heroic human effort when we can just do it with math?

<comment><USER23> While math can be used to optimize some function(s) (for "societal optimization"), math is silent about the question of what to optimize. There's no general agreement about that. (For example, should there be regulations to reduce river pollution?)

<comment><USER22> Sure but what do you trust more, a properly designed control system with various safeguards to allow for the right amount of river pollution, or politicians arguing about which of their buddies should get the rights to polluting that river the most?

In the future I imagine your question about the river pollution is almost nonsensical. That is if we manage to actually get there. Going by current news about the future of earth's ecology we might not actually make it much further. Gotta admit though heroic human optimizations seemed like they got us pretty far but the lag time in reacting to things is a bit too long when humans are in the loop. So the sooner they are out of that critical loop the better.

Speaking of which: [http://www.sciencealert.com/photos-reveal-more- than-200-brig...](http://www.sciencealert.com/photos-reveal-more- than-200-bright-blue-arctic-lakes-have-started-bubbling-with-methane-gas)

<comment><USER23> My example was one many _human_ questions where "math" provides no objective answer, because not every question has an objective answer, particularly some questions of morality, fairness, or personal taste.

Some more examples:

* Is it okay to jaywalk with children across a busy street?

* Is it fair to give the bigger piece of chicken to the boy, rather than the girl, because "he's a boy"?

* Which is better-tasting, peaches or plums?

(I'm not arguing for moral relativism. There are some moral questions where everyone agrees on the answer.)

</comment></comment></comment></comment><comment><USER24> The best way to avoid the "black hole" is to not throw your resume into it in the first place.

Instead, use your professional networks and friends. Reach out to actual human beings. Find any way you can to bypass the bullshit online job application systems and HR departments.

When people (or programs) go through a stack of resumes, it's all about finding reasons to eliminate as many as possible as quickly as possible using the flimsiest of criteria. Of course it's going to create hard feelings but what should one expect when putting oneself into a giant horde of applicants?

<comment><USER25> So you're screwed if you didn't invest in contacts early in your career even if you have the needed experience and skills?

Having a good professional network is not something you can just "turn on" at will.

<comment><USER26> You would be surprised. With a few months of investment attending local meetups, you can meet a lot of people. If you take the extra step and, say, volunteer for speaking engagements, you can establish yourself as an authority in your area of expertise fairly quickly. You won't become a DHH overnight, but you'll still be miles ahead of those who still play the resume game.

<comment><USER27> What to do if you don't have resources to do that? (Example: me. No friends, negative net worth, zero income, no car, no bicycle, no bus money, most clothes have holes in them)

<comment><USER28> Get a job at a temp agency and start networking from within whatever shitty placement they give you. I literally started my career in a mail room working with developmentally disabled people and ex convicts. Now I'm a senior software engineer.

</comment></comment></comment></comment></comment><comment><USER29> I've been so thoroughly broken by naming schemes like "Gravity" or "Flaming Biscuit" or whatever, that I've basically trained myself (at least here) to read things like "Black Hole" as a project name. Imagine my brief consternation when I thought, "Who in their right mind would name a resume hosting service 'Black Hole'?!"... then saw the source and felt incredibly stupid.

Beyond that, let me just add my voice to the multitude shouting, "Holy shit, yes, and it's terrible!"

<comment><USER30> I recently deleted an issue in redmine while meaning to delete a comment. It had a confirmation popup saying "do you really want to delete this issue?". I thought "sure, in Redmine they probably call comments issues."

</comment></comment><comment><USER31> In my experience in searching for a job, companies invite for 3 interviews and a coding test, then decide the position isn't clearly defined, so they restart the entire process and ask you to re-apply. Then you go through 3 more interviews and another coding test, and then one more interview, then you never hear from the company again. Since the whole process took 4-months, you are now broke and homeless.

</comment><comment><USER32> I've literally never gotten a job by sending out resumes. Every single job I've had I got through some connection or another.

I actually refused to send my current job a resume. The conversation went like this:

Can you send them a resume?

No- here's my LinkedIn.

But can you send them a resume?

No- here's my LinkedIn.

OK, can you come in for an interview?

Interview.

A month passes.

Can you come in for another interview?

Interview.

Hired.

<comment><USER33> Counter point, I have gotten two job offers by just submitting resumes online. But I work in a state without tons of competing talent, so that could help.

<comment><USER34> What state if you don't mind me asking? I really want to just move out to the midwest or somewhere where there aren't a lot of programmers.

<comment><USER32> New England (not a state, but let's not get too specific here,) but off the beaten track. Small town with a big University. There are really only about four companies around here who could credibly offer me offer me a job doing something I want to do at a rate I want to do it for.

That's a double-edged sword. On one hand I have to be pretty careful not to burn bridges or hop jobs, cause if I want to stay around here I'll run out of both quickly. On the other hand established developers around here all know each other, pretty much, so the network effect is very, very strong.

And that even means easy intros to people who work remotely for interesting companies elsewhere (which seems to be more and more a thing.) Just in the last month I've met people, through my local network, who work for places like Trello, Circle, etc.

The Circle guy in particular- well, he came up to introduce himself after a talk I gave, and some of what he's doing for Circle is very much up my alley, so if I wanted a different job or a remote job (I don't at the moment) I might hit him up.

</comment></comment></comment></comment><comment><USER35> This is the finest account of the resume/employer process I have ever laid eyes on.

</comment><comment><USER36> For how ever many weeks you might wish to collect unemployment checks, you have to show that you're looking actively, in my jurisdiction. One might have a network of contacts but it's going to take some time for that network to lead to the kind of events that count as evidence that you're looking for work. On the other hand the black holes can lead to lots of events of that nature. So worst case, the black holes actually generate something (is Hawking radiation the right term?) that you can use to keep those checks coming.

</comment><comment><USER37> I don't get why referral is counted for so much especially when there are referral bonuses which would encourage employees to refer basically anybody they know.

With all these companies having massive HR departments, I also don't understand how a resume goes unread or un-responded to when it takes maybe 10 minutes max to go through a resume thoroughly.

<comment><USER38> You grossly over-estimate the time it takes to read a resume. It's way below 30 seconds per resume. Probably on average closer to 10.

Try it for yourself: set up a timer, open your resume. How quickly can you figure out how much experience you have, do the job titles match more or less the position, any description that lists similar stacks to the one your group uses? 10 seconds.

<comment><USER37> It takes 10 seconds to read a resume? So you just throw out the resume if you don't immediately see "similar stacks"?

I wrote "thoroughly" meaning reading the whole thing, and possibly looking at their links, or doing some small research about something on their resume.

</comment></comment></comment><comment><USER39> I have actually had really good experiences as both a job seeker and a hiring manager with Hired. Their platform makes it easier to keep track of candidates and makes it less likely they will fall through the cracks.

My experience with hiring in the past is that startups that do it completely internally with no HR or recruiter support are likely to get overwhelmed and drop the ball. Recruiters drive the process along but they are motivated to put any ass in the seat and are not usually completely trustworthy from either the job seeker or the client side. A marketplace solution like Hired, Vettery, etc makes the process lot more transparent and has a rhythm that helps keep hiring managers on task.

Of course I'm a programmer and I'm in NYC and what works for me, here doesn't work for everybody, everywhere.

</comment><comment><USER40> Have been toying around with an idea of recruitment and job application service which would try to turn the tables and show candidates who's interested in them. So instead of applying, the first step would be a question from candidate to company saying "tell me more about this job". The company would then need to actively get back to the candidate. The advantage to the company would be a much larger pool of candidate contacts, although they would also need to work those contacts more.

It might not be a solution for jobs and company types described in this thread, but in many industries, company types and countries the lack of candidates is a much bigger problem than too many candidates.

<comment><USER41> > the first step would be a question from candidate to company saying "tell me > more about this job". The company would then need to actively get back to > the candidate.

Such a service exists. It's called Retained Search, an old-school, high-touch, high-feel service reserved for executive level, mission-critical roles. It's also expensive, 25-33% of first year target compensation. Naturally, companies are incentivized to use cheaper approaches first.

</comment></comment><comment><USER42> I've had a recruiter writing me to thank me for my application, but unfortunately blah blah résumé blah blah position blah blah. The thing is I had never applied to anything at her company nor sent her a résumé, I had just asked her a question once. Which she had never answered...

</comment><comment><USER43> That's why it's best to just directly contact a recruiter.

</comment><comment><USER44> WTF I just read?

<comment><USER40> Humour (or humor in American English) is the tendency of particular cognitive experiences to provoke laughter and provide amusement. The term derives from the humoral medicine of the ancient Greeks, which taught that the balance of fluids in the human body, known as humours (Latin: humor, "body fluid"), controlled human health and emotion.

</comment></comment><comment><USER45> No way all this happens in a mere two months. It'd get dragged out for four, at least.

</comment><comment><USER46> +1 for entrepreneurship

</comment><comment><USER47> You would not believe me how many applications I wrote. I know the black hole.

There are a few rules.

Never apply to a job that uses Taleo, SAP or any other "application" interface. A real job requires to send or upload a resume and an _OPTIONAL_ cover letter. Ignore everything else.

Never apply for a job that requires anything unusual (only non-smokers, hand written resume, time of birth for astrological evaluation, hard copy of application etc.). I am even skeptical about "motivational" letters. All these are signs that your future boss is nuts.

Be very open to create "sample" work, like a 10 page marketing plan or an "investment analysis of 5 companies". Just be very clear that this will be billed at your consulting rate too.

Remember the second most stupid people work in HR (with the most stupid people working in real estate). This does not mean the every HR person is an idiot - in fact I am sure there are brilliant people -, it is just a reflection of the entry requirements for these jobs.

I never really found a decent job after my PhD and I was desperate for years. The funny thing is: Now I get sometimes offered two jobs a day by just meeting people. I don't even engage in the conversation. They wouldn't be able to offer any salary that would make me even considering taking a job. And if I look at my former peer, never getting a job in the past may be the best thing that ever happened to me.

</comment><comment><USER48> what a waste of my life reading that stupid page..

</comment><comment><USER49> As a counter example, I got a great job from one of those black holes.

<comment><USER50> What makes it a black hole if you got a reply?

<comment><USER51> Black holes emit radiation from their edge, when incoming material is disintegrated.

</comment></comment></comment><comment><USER32> The issue here is that it's very, very difficult to figure out if someone can code, at all, from a resume. You might have a masters in CS and still be hopeless when it comes to actually writing even very simple things. You'd be surprised at how often that is the case...

So, when I hire, I do so through through connections. I ask friends "Do you know anyone who can actually code who is looking for a job?"

And if it's just me, that's the end of it, but... let's say I'm hiring for a venture-backed firm, or for a department in a bank or something. In that case, I have a fiduciary duty to put a job ad out there, and I have to be able to show that I received a lot of resumes and "looked them over." By which I mean unceremoniously threw away. Who has the time to look over 1,000 resumes, most of which are complete bullshit?

I was going to hire my friend's friend anyway, but I had to solicit your resume along with many others to provide some cover. I threw your resume away without glancing past the education section (if you had gone to an Ivy I might have looked twice.) Capisce?

<comment><USER52> Sounds like you waste a lot of people's time to lie to higher-ups.

<comment><USER32> Yep- don't hate the player, hate the game. I'm legally obligated to do so in some cases. That's what fiduciary means.

<comment><USER53> You keep using that word. I do not think it means what you think it means.

<comment><USER32> Except that is what it means. The term is used mainly in certain contexts these days, so you might have gotten the impression that it only applies in those contexts, but 'fiduciary' has a broader meaning.

To quote from Wiki (I know): "[t]he distinguishing or overriding duty of a fiduciary is the obligation of undivided loyalty" and I'd argue that taking on capital imposes just such an obligation, such that trying to hire the people most likely to maximize your investors return is indeed a fiduciary duty, one that implies other duties.</comment></comment></comment></comment></comment>


NYC mayor: SUV found in Times Square had 'bomb-making material' - <AUTHOR> http://edition.cnn.com/2010/CRIME/05/02/times.square.closure/index.html <comment><USER2> Doesn't exactly sound like a well thought out plot assuming it even was a plot.

"Inside the vehicle, police found three propane tanks, two filled five-gallon gas containers, two clocks with batteries, consumer-grade fireworks and a locked metal box that resembled a gun locker."

A few gas tanks, fireworks and clocks does not a bomb make. And mentioning that the box resembled a gun locker just sounds like the journalist trying very hard to make this more dramatic than it is.

"the Nissan Pathfinder with its engine running and hazard lights flashing"

Surely if you're going to the trouble of setting a bomb you're not going to go out of your way to make the vehicle stand out.

Assuming there isn't an innocent explanation it sounds like a lone mentally unwell individual rather than anyone with any kind of bomb making know how.

Time will tell I guess.

<comment><AUTHOR> I'm paranoid enough that I thought it might be a decoy.

<comment><USER2> That's an interesting suggestion I hadn't considered. Its an interesting possibility although historically most bombers don't want a decoy to draw authorities away from them. They seem to favour one bomb to draw in police, ambulance workers etc then a second probably bigger bomb to kill those coming to the aid of the wounded :( It's a brutally efficient method that's been used over and over.

</comment></comment></comment><comment><AUTHOR> Definitely not hacker news but keep your eyes out today folks...</comment>


Mapping Anything with BSicons - <AUTHOR> https://chriszetter.com/blog/2020/06/25/mapping-anything-with-bsicons/ <comment><USER2> As every BSicon has a specific purpose, especially some of the rarer ones, I wonder how difficult it would be to encode that information into a simulation?

There's a couple of train simulators I enjoy playing with on my downtime, and this seems like it might be an easier path towards making a highly complicated engine for something like that.

<comment><USER3> The BSicons are similar to the network tiles used in SimCity 4. The main work of transit modders there (Network Addon Mod) is to create additional tiles for different types of transit intersections.

It would be very interesting to see one of the OSS city builders pick up BSicons as a subset of their schema.

</comment></comment><comment><USER4> The code doesn't look so pretty. I was hoping for something more semantic. First layout the tracks, then the location of the stations (on the track), then characteristics of each station, etc.</comment>


iStock SG - <AUTHOR> https://itunes.apple.com/sg/app/istock-sg/id945394609?mt=8

<comment><AUTHOR> I have been regularly checking iPhone6 and iPhone6 plus stock availability before I went to that particular shop, it really save much of my time on traveling to different shop.

and... I got my iPhone6 finally!!!</comment>


Ask HN: How would you relearn programming? - <AUTHOR> If you were to start again from scratch after losing all your programming knowledge, what would your plan look like? <comment><USER2> Two questions:

Do I get my youth back? I've been programming for 40 years and have easily logged 100K hours learning. I don't have the lifespan to do that again, so I'd just try to gain some superficial understanding that could be picked up in 10 years and 20K hours.

Do I start over with 2018 technology or 1978 technology? If the latter, I'd probably just repeat what I did, maybe spend more time on functional programming and language design early on. Languages: Lisp family, Fortran, Basic, APL, C, early C++, Perl, Python, Haskell, Rust. I'd skip PL/1\. (-: Problem domains: OS, compilers, scientific programming, realtime, graphics, networks & distributed systems. Do more web development after Javascript is invented.

So, if I get another 40 years (and counting) starting in 2018, it would go like this. These would overlap, but would be semi-chronological.

1\. Functional programming. Lisp (probably Clojure) and Haskell. Make parsers, pattern matchers, symbolic math, the kind of stuff in the Lisp textbooks.

2\. OOP. Python and Smalltalk. Build systems with big taxonomies like GUIs. Study design patterns. Take Squeak Smalltalk apart down to the atoms and reimplement it from the bottom up. That might best be done in C or Rust; see below.

3\. System-level programming: C and Rust. C because it's ubiquitous, and Rust because programming in memory-unsafe languages is not sustainable. Projects: reimplement any Unix utilities -- many of them are easy 1-2 day exercises. Implement Forth. Write an OS or two. Reimplement L4. Write robust distributed systems. Build real time applications on microcontrollers.

4\. AI. Machine learning and also the not-currently-trendy techniques. No tool recommendations yet because I'm still a noob here.

4\. Hardware. KiCad and VHDL. Make simple PCBs to interface simple things. Implement CPUs with nontraditional architectures (e.g., dataflow, associative memory, Forth machines) just to understand computing at its most deconstructed.

5\. Web technologies. I'm also a noob here, but it's a skillset I regret that I haven't learned.

And I would _NOT_ use Emacs again. It's wonderfully powerful but it's past its prime. I've locked myself in. I should have changed editors/IDEs every couple of years.

<comment><USER3> > And I would NOT use Emacs again. It's wonderfully powerful but it's past its > prime

This is an interesting note. To everyone who picked up their prime IDE in the last say, 10 years: Which editor or IDE do you use, and why?

<comment><USER4> Vim. And I say to the grandparent, what makes you say emacs is past its prime? And if it is, why should that mean you shouldn't use it? If it's powerful enough for you to do what you want to do and do it effeciently then what does it matter even if there are 5 other people using it (and there are a lot more than that!).

<comment><USER2> Emacs has a different way of doing just about everything than the rest of the desktop environment. Kill ring vs clipboard. Emacs windows/frames vs GUI tabs/windows. Subshells vs ⌘Tab to Terminal. C-X C-C vs ⌘Q. Actually, all the default keybindings are gratuitously different from other text applications.

Most of these are different because Emacs invented them for non-GUI terminals before any conventions existed. But now it's just cognitive overhead to have two ways to do everything, depending on which app is active.

It's powerful, but I believe I'm stuck on a suboptimal local maximum. A similarly powerful IDE better integrated with the rest of the system would be better, but unlearning and relearning is more effort than I'm willing to invest at any time.

The size of the community matters if you want third-party add-ons.

<comment><USER4> > A similarly powerful IDE better integrated with the rest of the system would > be better

Does one exist? (I'd preach vim to you but I don't want to perpetuate editor wars.

<comment><USER2> Heck if I know. Atom seems to have mindshare.

<comment><USER4> It has mindshare, sure, but in comparison with something like emacs, does it have _power_? I've heard good things about jetbrains IDEs, maybe try those? Beyond that, idk.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> I learned how to program in college ~2008 by reading Java books page by page, then typing each exercise up by hand and running it, checking out the results, making slight tweaks for curiosity, re-running, etc. It sounds like a lot of work, and it is, but it's rote work not hard work, and for learning a language that's heavy on syntax boilerplate like Java, it made sense to me. This was the best way to build up momentum.

If I could go back today, I still think that's the right way to start. Maybe the medium has changed slightly — today it might be an "X the hard way" course that's more focused on a final outcome that snowballs over time across challenges vs many discrete exercises.

I think combining something like that with a programming puzzle site like Codewars, HackerRank, Exercism.io, etc is a good combo for growth and reinforcement.

That said, I don't think people should learn to program just for the sake of learning to program. I really think the only way to do it is having a meaningful problem in mind and solving that problem, whether that's for work, a side project, puzzle, etc. I think it's very powerful to learn by writing code that solves your own problems.

</comment><comment><USER6> Let me turn that question around a little bit. If I were just learning, I wouldn't know what I didn't know. How would I mentor someone new to programming? Learn Bootstrap and then HTML and CSS.

Learn Javascript well, it's the only language natively supported by the browser. Learn it for the browser, then Node. Learn how prototypes work.

Learn Mongo, I don't have a religious attachment to Mongo but it's easy to learn and it feels like it goes well with Javascript.

Read Clean Code, design patterns, You Don't Know JS.

Javascript isn't my favorite language, but given today's market, it is the most versatile. It can be used on the front end for web and mobile, the backend and serves as query language for Mongo.

Now I would tell them to branch out to a statically typed OO language. More than likely Typescript. It would build on their JS knowledge. Learn best practices for OO.

Learn an MV* framework (Express? I'm not a Node guy), to create any dummy API to support the next phase - more front end development. Learn s SPA framework and how to integrate it with an API.

Then branch out to a statically typed language. I prefer C#/.Net Core but Java is fine. You might as well stick to one of the two most marketable ones.

Learn an RDMS and how to use it properly.

Learn some soft skills - 7 Habits of Highly Affective People, the 48 laws of Power (but take it with a grain of salt), Throwing the Elephant, etc.

</comment><comment><USER7> Start with a lisp like Clojure or Racket and focus on functional programming. Ignore OOP except as needed to make money. KISS.

</comment><comment><USER3> First, I would start with a much more detailed curriculum of probability and statistics with applications. I'd also go much further in linear algebra, vector calculus, field theory.

Then I think I would probably hit computer architecture broadly with an eye both toward concepts as well as a sense of scale(s) - how long does an operation take under these circumstances, etc.

Last I'd look at actual languages. Functional programming to teach the power and techniques of abstraction while learning the structure of computer science. Whatever the market enjoys today to gain commercially viable skills. That would probably be Javascript, Python, Java or C#, C ( _not_ C++, not worth the cognitive overhead), and maybe one other. SQL and data wrangling as an addition. Numerical computing if I want to be working in the engineering and scientific world.

</comment><comment><USER8> The main thing I would do differently is get lots and lots of tutoring, pair programming, whatever. I had precious little of it; thankfully I also had loads and loads of time because I was a teenager with no financial constraints.

Tackle large projects early on, release them to other people, get feedback (both on code and usability). I never got much momentum, in fact I'd say I probably never wrote a codebase over 10k LoC myself until maybe a decade in.

</comment><comment><USER9> Start with something I'm interested in. Don't worry about the theory; just focus on solving the problem. Solve the problem; start broadening my focus from there.

</comment><comment><USER10> I would do Computer Science again because background (defined as a toolbox you can dig into opportunistically) is so important. But I never had anyone to teach me how to program: how to structure a problem and break it down into manageable units. I would work far harder to get intimate technical contact with peers and mentors.

</comment><comment><USER11> I will not start with programming but will focus on:

1\. Learn how to build a good understanding on a subject. As I am growing old, I feel I am in hurry to grasp more rather than deeply learning stuff

2\. Second important area for me will be how to effectively communicate my point point of view and listen to other.

In short, I will work on my soft skills more.

</comment><comment><USER12> It's an amazing thought - I've considered wishing I had learnt languages in a certain order. For example, learning a language similar to that of C# where you can clearly differentiate minor differences such as declaration and instatisation of structures and variables, as opposed to say Python. But then again, from an educational point of view would it be too much of a struggle as a teacher to get a younger age group to understand these wider concepts used in more syntactically advanced languages?

</comment><comment><USER13> Great answers so far! Somewhere between Computation Architectures and AI / ML. I think getting a solid foundation in Distributed Systems really pays off. There are plenty of grad level courses online. That read and discuss papers on BigTable, Spanner, MapReduce.

But a more practical example would be to watch some of the AWS:Ignite videos on the Netflix stack. And try to implement a basic clone of Netflix. Thereby getting hands on experience with routing, load balancing, ec2, s3, red shift, solr, lamdba, and so on.

Good luck!

</comment><comment><USER14> I would probably start with "computer architecture" and "design of programming languages" courses, after that I would ready to learn assembly (x86_64, arm, MIPS - ATT/Intel) and C.

After learning perfectly how a computer works "under the hood" I could dedicate myself to refining my knowledge.

</comment><comment><USER15> Understand pointers, program counter and some aspects of the hardware

\- build an emulator for a fake CPU

Learn Basic OOP

\- build a game in C++ and OpenGL

Learn Basic Functional Programming

\- Elixir or Haskell

Learn Prolog

\- it will change the way you think about programming.

\- implement A* and solve a problem

Learn Python or Ruby

\- build a basic bug tracker in Django or Rails

Learn SQL

\- note the similarities and differences between the other languages you have used

Or just find a university that covers the above!

</comment><comment><USER16> This is a great question. Thanks for asking.

I would hate to lose everything I've learned, but thinking about what plan I would take to learn everything again makes things interesting! It's also a challenging question, because I think the way things turned out was a lot because of my interests and the opportunities that were available at the time. Obviously, this is probably the same with everyone else. But, let's assume I don't need to worry about that, and for the sake of simplicity, I'm just following a plan and have all the motivation and discipline I need.

Disclaimer: People might not agree with this way of doing it. It's just an opinion, just for fun! there's no "one" right way. That's the real answer. But, let's continue!

1\. I would probably start with C. I would read through the K&R book, and then get proficient enough at C to have a solid understanding of the main concepts that everything else builds off of. From simple things like variables, to pointers, to building complex data structures and algorithms by hand in C. I would also try to complete a few projects in C, like creating a small language / lisp, building a tool or game, etc.

1b. This is more of an idea- but something I would be sure of is to pick something and stick with it. I've moved around too much from getting excited about wanting to learn everything, and then I end up missing out and learning next to nothing. You don't want to stick on something for too long, unless that's what you want to do for the rest of your life, but, yeah. Finish projects. Ship stuff. Actually get stuff done. COMPLETE things, and get feedback. If you don't wanna keep working on it, fine. But get it to a predefined goal / finish line. Then you can decide what you wanna do.

2\. After C, and understanding the base, I would probably move on to trying different languages in different areas. For example, set a goal that for 3 months, I'll look at Javascript, with the end goal being to build a front end website or spa or xyz, and actually have a finished project. Or, go to C++, and do game dev, without Unity or another tool that does a lot for me. Then for the next 3 months Python, then Java/C#, then Swift, etc.

The main reason for this would be to touch a lot of things, and then, decide what area of software engineering I want to focus on.

3\. Finally, I would pick a technology that I like, and an area I want to dive into. Again, predefined goals, finish lines, etc, so that I finish what I say I will. This might be focusing on backend development, a lot of what I do now. So, maybe studying Go or Javascript or Python or Ruby or whatever. But picking something and diving into it, getting good enough that I could work as a swe full time.

These are just some ideas. Also, I can't sleep, but also can't think straight b/c it's late. So, yeah. Please excuse my weirdness of choosing C. Basically, the plan would be go from the bottom up (though C really isn't the bottom, but whatever).

Just have fun. The biggest thing I'm working on now is finishing. When I start something, sticking with it, and finishing.

Let us know what you do!

</comment><comment><USER17> first, i'd get better at math. i'd be more interested in hardware and assembly. then i'd start with SICP and then move to haskell or ocaml.

</comment><comment><USER18> You didn't say whether the goal is fundamental knowledge or employability. :-)

Splitting the difference, I'd say:

1) A Lisp or Lisp-like language. Either Racket or Clojure would be an excellent choice here; Racket is especially designed for teaching, and there is a lot of top-quality educational material for it. Clojure is probably more employable but isn't specifically designed for beginners. Recommended book: How to Design Programs, by Felleisen, et al (free online). If you want to go old-school, try Structure and Interpretation of Computer Programs by Abelson, Sussman, and Sussman. The video lectures for that one are also quite valuable.

2) C. K&R is short and information-dense. If you're going to use C professionally, you'll want more, but K&R is definitely enough for a good overview. Recommended book: The C Programming Language, by Kernighan and Ritchie (reasonably priced).

3) _Maybe_ an assembly language. Or maybe not. If the goal is to understand computers at the most fundamental level, you might as well study the theory of computation rather than learning the quirks of a particular machine's instruction set. Recommended book: Elements of the Theory of Computation, Lewis and Papadimitriou (spendy).

4) The Javascript/HTML/CSS hodgepodge. Not anyone's choice for the greatest language ecosystem in the world, but probably the most employable one. Recommended book: sorry, I've never seen one that's completely satisfactory. On the other hand, there's probably more free educational material on the web for this than for anything else. On the gripping hand, a lot of it sucks.

5) An algorithms text. Many would recommend Introduction to Algorithms by Cormen, et al (often called "CLR" or "CLRS" for recent editions, but that can be tough sledding for a beginner. I would instead recommend any of the Algorithms in "X" books by Robert Sedgewick (where "X" is some programming language, such as C, Java, etc.). Having concrete code examples can be useful for a beginner, IMO. Once you have a handle on the basic ideas, The Art of Computer Programming by Donald Knuth is a reference you can return to time and again for the rest of your career.

5) Enough database theory and SQL to feel comfortable writing basic queries. Maybe Database System Concepts by Silberschatz, et al for the theory and one of the "SQL cookbook" texts for practical applications. Make sure that whatever cookbook you use covers things like SQL injection and that you _fully understand_ that coverage. :-)

6) Prolog. The classic here is Programming in Prolog, by Clocksin and Mellish. However, I haven't been keeping up with Prolog for a long time. Someone else may have a better suggestion.

7) Machine learning and neural nets. No suggestion here -- it's not my field and it's been advancing very rapidly of late. Again, someone else may have a better suggestion.

8) Graphics. I like Computer Animation: Algorithms and Techniques by Rick Parent. Also, Computer Graphics: Principles and Practice by some combination of Hughes, Foley, van Dam, et al. This is a more in-depth text (actually, it's a good reference book). In either case, you'll need a good background in linear algebra and probably some calculus before tackling this. Owning both of these would be good if you're going to get into graphics in a serious way.

9) Erlang. Programming Erlang by Joe Armstrong.</comment>


Jack Vance, in memoriam: 1916 - 2013 - <AUTHOR> http://www.jackvance.com/jackvance_05262013/

<comment><USER2> Gone to the great Rumfuddle in the sky. RIP.

96 isn't a bad innings all told.</comment>


Ask HN: Is Twitter phasing out DMs? - <AUTHOR>

I used to access my incoming DMs with https://mobile.twitter.com/inbox but that is now no longer working.  In fact, I can't find any way to access my incoming DMs on Twitter.<p>It's been suggested that they are deliberately being made harder to access because Twitter wants to phase them out.  Does anyone have any knowledge or insight to offer? <comment><USER2> Why do you say that ?

<comment><AUTHOR> With the change to the mobile web site all my bookmarks are broken, several facilities have been difficult to find, and it has seemed that DMs were significantly more difficult to get to than before. Someone else made the comment and it started me thinking, so I thought I'd ask here.

I've now managed to reconstruct most of what Twitter workflow I have, but it still seems that DMs are less convenient than they were. I have no specific concrete evidence, just a vague sense that DMs haven't got the love that other facilities have.

Probably nothing, probably just the fact that their UI change has cost me a few hours of trying to figure out where everything has moved to.</comment></comment>


Improving MapReduce Performance - <AUTHOR> http://www.cloudera.com/blog/2009/12/17/7-tips-for-improving-mapreduce-performance/ <comment><USER2> Great article Todd,

One key thing to highlight is the importance of compression and using a streaming compression algorithm. Compression means there's less data to transfer (across the network and -- even more importantly -- from disk), which means the transfers will complete faster.

Not only does it allow your compressed files to be splittable (not possible with a conventional compression algorithm which requires all compressed data to have its own Huffman tree), it runs very quickly and easily adopts to a _stream_ (rather than a monolithic chunk) of data.

We've just added support for LZF (a similar arithmetic/streaming compression codec) into Voldemort and performance results have been great:

[http://groups.google.com/group/project- voldemort/browse_thre...](http://groups.google.com/group/project- voldemort/browse_thread/thread/cb366257d3714da3)

Here's some background: <http://en.wikipedia.org/wiki/Arithmetic_coding> <http://en.wikipedia.org/wiki/Lempel_Ziv>

(I had the good fortune to take an information theory class during undergrad)

</comment><comment><USER3> Liked the post!

Interesting point about allocating too many Writables. This problem is an indication that *Writable classes are poorly designed. Instead of having public constructors, they should each have some sort of static method, akin to that of a factory class, that implements some sort of intelligent pooling and reuse.

Also, NullWritable is awesome! I don't think you mentioned it. Very useful for counters!

<comment><AUTHOR> The issue with intelligent pooling is that you (a) might end up with a lot of bookkeeping, or (b) people will forget to return things to the pool. It's way easier to do that kind of design in C++ where you can use scope and copy constructors to automatically refcount and then return back.

NullWritable is pretty useful sometimes, but what's wrong with Counter objects for counters?

<comment><USER3> Here's an example of improving the design of your interfaces to improve the problem...

The mapper function now receives two extra arguments, one Writable of key type and one Writable of value type.

The emit method now has zero arguments. When called, it emits the key-value pair represented by the Writables passed in to the mapper function.

Now, you are forced to use and reuse the Writable objects passed in to your mapper. Sure, you can allocate new ones, but they would be worthless since you can't do anything with them. This would, hopefully, stop programmers from allocating them.

No need to explicitly return things to any pools.

</comment></comment></comment><comment><USER4> Has any non-Googler here actually used Hadoop or any of the other public MapReduce solutions?

<comment><USER2> We use it _extensively_ at LinkedIn. Many of them data-driven features you see on the site are powered by it. It's greatly improved not only the speed at which the data can be built but most importantly what can be done.

I've also introduced it to a start-up I worked for 1.5-2 years ago. I essentially did much of the optimization Todd described "in the dark"; this was before Cloudera was formed and when #hadoop on FreeNode only had a handful of Yahoo, Facebook and Rapleaf people.

Despite the amount of work involved (including introducing Java-based project to a LAMP-based start-up which was very ambivalent towards Java), it was a great productivity boost (over the mix of ad-hoc shell/Perl/PHP scripts a MySQL datawarehouse we started with).

MapReduce isn't just about scalability and performance. You don't need to have a "scalability crisis" to benefit from it. It's also about being able to do a great deal more by applying parallelizable algorithms (see for example, the Mahout or Katta projects).

</comment></comment><comment><USER5> On the topic of MapReduce, does anyone have pointers to articles detailing different implementations of the shuffle phase?</comment>


What I learned about Conversion Rate after losing thousands of dollars - <AUTHOR> http://startupsthatrock.com/startupmarketing/conversion-rate/

<comment><AUTHOR> Hey guys how are you?

Here is a post where I write about 9 Conversion Optimization Hacks that you never hear of...

Reading this post you will learn how to make a Landing Page that gives Gold to you ;)</comment>


Chinese cops are now using facial recognition sunglasses to track citizens - <AUTHOR> https://www.theverge.com/2018/2/8/16990030/china-facial-recognition-sunglasses-surveillance <comment><USER2> Well that's downright horrifying. An article from somewhere else notes some categories beyond not only criminals, but ethnic profiling for potential separatist groups, etc.

This is some straight up Minority Report business.

</comment><comment><USER3> Can someone link the original I can't find it.</comment>


Why I Take Fake Pills - <AUTHOR> http://www.smithsonianmag.com/science-nature/why-i-take-fake-pills-180962765/?no-ist <comment><USER2> Really interesting article!</comment>


Flutter Release Preview 2 - <AUTHOR> https://developers.googleblog.com/2018/09/flutter-release-preview-2-pixel-perfect.html <comment><USER2> I spent quite a few months comparing this with React Native.

Flutter has done cross-platform right. And it's somewhat sad and counter- intuitive but pretending to be native is a lot better than actually being native. iOS and Android are just too dissimilar in areas to provide a common layer on top of. In particular routing which is a mess with React Native.

Flutter also has the best development experience period. Nothing comes close. Compilation is fast. The reload cycle is instant. The tooling is excellent. It is really polished.

I just wish it had not come from Google because you always get that niggling feeling like it's going to abandoned. Which would be a real shame.

<comment><AUTHOR> Thanks for the kind comments! I'm one of the product managers on the Flutter team, so you're welcome to apply suitable skepticism to anything I might say in response to your last point, but I will say that Flutter is already being used in many strategic projects here at Google, as well as for many customer apps, some of which already have tens of millions of users. For example, Alibaba are using it to build one of their big apps: [https://www.youtube.com/watch?v=jtYk3gWRSw0](https://www.youtube.com/watch?v=jtYk3gWRSw0)

I don't know if this is helpful in assuaging your concerns?

<comment><USER3> Hey, thanks for the data point. I'm actually fairly interested in Flutter, but I have no interest at all in Dart since I find it severely lacking compared to modern, more popular production languages for mobile development such as TypeScript or Kotlin (which have features such as algebraic data types which have become an absolute must-have for me and my team), to the point it completely deters me from adopting it.

Is there any chance that the Flutter core could get bindings to another language in the future? Regardless, thank you for your work on Flutter; if not Flutter, at least it has paved the way for demonstrating a "native-imitation" makes a lot of sense with regards to developer productivity and performance, something that sorely needed more buy-in from the mobile community.

<comment><USER4> The great development experience is largely tied into Dart and it's toolchain, not to mention all of the underlying Dart code in the project. However, you can get the same kind of control flow out of Dart albeit with a little less static checking ([https://github.com/dart- lang/sdk/issues/33079](https://github.com/dart-lang/sdk/issues/33079)) so from a pragmatic standpoint this really shouldn't be something that's holding you back. The cost of not having ADTs is much lower than the cost of maintaining two separate iOS and Android apps (or even dealing with the downsides of other cross platform approaches IMO).

<comment><USER3> Hi. Thanks for the workaround, it's fairly similar to how it's handled in TS, except more verbose (which TS is already very much so when compared to something like Elm). That isn't a problem for me since I have some experience with functional programming, but that'll likely be a serious disincentive for other devs (TS itself has been a problem already). Maybe I'm off the mark and that is idiomatic and a very common Dart pattern, and can be assimilated through familiarity?

On another note, is there any workaround to have true non-nullable types?

As far as the cost of having one codebase goes, right now it's somewhat of a worse is better approach; we're looking into something that heavily improves things and is worth rewriting our apps into. RN hasn't been it due to its FFI/bridge problems not making us comfortable and Flutter is something we've been looking into but the language has been a deterrant, so it's hard for us to argue "yes it's better on every metric and worth the effort".

<comment><USER4> Dart has had some null-aware operators for awhile ([https://news.dartlang.org/2015/08/dart-112-released-with- nul...](https://news.dartlang.org/2015/08/dart-112-released-with-null- aware.html)) otherwise you'll need to explicitly do null checks. It's certainly not perfect, but it's still "good enough" to make handling null relatively concise. In my experience code review can do a good enough job at promoting good practices around null handling that non-nullable types are really just a "nice to have".

</comment></comment></comment></comment></comment></comment><comment> nevi-me EDIT: formatting

Almost everyone here talks about abandonment. It's become a sad Google reality, but I'd hazard that some people are posting from Google Chrome, which would defeat the point about worrying.

I use Flutter, I've released an app that's been in prod for about 5 months now. Flutter runs on Dart, which is a Google-bred language. From my little knowledge, most/some of the people working on Dart are the team in Aarhus that work(ed) on V8. Our Vyacheslav Egorov (mraleph) being first that comes to mind.

Is Google going to abandon Flutter, what about Dart? Should I not learn Go because they'll also abandon it? Heck, should I not develop for Android because they'll abandon it too?

The fearmongering is a bit excessive. I'd think Google has a better track record with software platforms. I separate Google into:

\- Products - come for free, can be abandoned any time

\- APIs - come for free, don't build your business around them in case MapsGate price surges come your way. Or, if you rely on them out of being "free", always have contingency plans to switch. After all, if they build a market then destroy it, it's a good space for smaller players to join in.

\- Software & Platform Tools - feels safer, unless very experimental.

___

Flutter allowed me to do in a few days what Java/Kotlin was taking me weeks. Why? It makes developing UIs much easier. As one can see from the RP2 announcement, background execution looks hairy, app size is improved but the build process still lacks what native has (e.g. updates to an app result in user downloading whole apk).

Will I have to rewrite my app again when Flutter is abandoned? Sure, but it won't be an overnight rewrite. I'll probably be able to get away with a 1-2 year window (if I need one) before the last supported Google Play Services becomes obsolete.

For me, I'm willing to take that upfront benefit. Yes, downside's learning yet another new language. I learnt Dart, and it was about 80% similar to the langs that I already know.

<comment><USER5> > but I'd hazard that some people are posting from Google Chrome, which would > defeat the point about worrying.

Uhhh, how do you draw that conclusion? There are lots of browsers and they take literally zero time to learn. Comparing a browser to programming language or framework is apples and oranges.

> Is Google going to abandon Flutter, what about Dart? Should I not learn Go > because they'll also abandon it? Heck, should I not develop for Android > because they'll abandon it too?

I have been a strict Android user for years. Google has effectively abandoned it with the way they've managed the project. I am moving to iOS for a variety of reasons, one of which is that I know where they (Apple) stand with the platform.

I wouldn't learn Go or Kotlin either, honestly, as there are arguably lots of languages that do the same with less separation anxiety.

My only mobile apps are Android only and regret it. I was a big android advocate and now I am not. I have been excited too many times and let down too many times to really care at this point. Google really wasted a lot of my time in retrospect. They announced projects like they are the second coming only to kill them once you have invested countless hours of time learning. I still have the OG Android ADK from I/o 2011...

<comment><USER6> Same here.

Java and C++ for my hobby coding on the platform.

Both skills much more useful on contexts outside Android development.

If I would need to write cross platform mobile apps production code, I would rather go C++ for business logic with native views, Qt, Xamarin or if performance requirements aren't tight, PWAs.

Dart makes it unattractive to learn Flutter, given its past history.

And Kotlin it remains to be seen how well it will faire in the actual Java world, outside Android, where we can make use of the latest versions slowly picking features from the alternative languages.

</comment></comment></comment><comment><USER7> I first started developing with Flutter about a year ago.

One thing that has really impressed me is how responsive the Flutter team is to developers. Often when I posted a question on Stack Overflow it would be answered perfectly within 24 hours by a member of the Flutter team.

Contrast this with React Native where Facebook's attitude seems to be to develop what they need themselves then 'throw it over the wall' to for others to improve.

The Flutter team is like a dog that really wants you to be happy. The React Native team is like a cat that doesn't really care about you as long as she gets fed.

<comment><USER8> This has also been my experience thus far.

The devs in the dart[1] and flutter[2] gitter chatrooms are even faster at responding to questions, in my experience.

1\. [https://gitter.im/dart-lang/home](https://gitter.im/dart-lang/home)

2\. [https://gitter.im/flutter/flutter](https://gitter.im/flutter/flutter)

</comment></comment><comment><USER9> There is also an effort to bring flutter on the desktop.

I dabbled (briefly) in it, got flutter app running on windows + linux, though certain integration factors (smooth window resizing, stability, mouse wheel support, etc.) were not there yet.

For some of them (mouse wheel, keyboard, tabbing) there might be more work needed (and maybe not seen as important), but it could bring a real "electron" killer, where my slack, teams or whatever else "electron" app does not spawn 5 processes, and take GB of memory (granted, flutter still takes a lot, compared to leaner Qt, and much much leaner write directly using Win32), but then there are some sensible limits, and going below these (for the sake of perfection) doesn't buy you much nowadays (I no longer have to run QuarterDeck QEMM to shuffle my 640kb DOS+EMS memory efficiently around :))

<comment><USER10> (Disclosure: I'm the Eng. Mgr for the Flutter project at Google.)

I've seen Flutter run in _lots_ of places, including desktops. Desktop isn't something my team is actively developing at this time (we're very focused on making mobile awesome), but we're definitely not stopping others from doing so. There is even another team at Google experimenting with the idea:

[https://github.com/google/flutter-desktop- embedding](https://github.com/google/flutter-desktop-embedding)

<comment><USER9> Thank you so much for the work on the language/platform. I used to work for Google (LAX), and our team was using GWT, hopefully they have transitioned to Dart + Angular (by now). I fell in love with Flutter right away, but it was in no way connected to what I did back there.

</comment></comment></comment><comment><USER11> Another big fan of Flutter here...

We're using it to replace our native iOS and Android apps enabling us to have a single code base. This is critical for a team as small as ours (2 devs covering web and mobile).

I can't sing its praises strongly enough, you can check out the code for our app here:

[https://github.com/invoiceninja/flutter- mobile/](https://github.com/invoiceninja/flutter-mobile/)

Edit: grammar is hard

</comment><comment><USER5> I am moving away from Google as fast as I can in most areas. Every time I bird-dog one of their products I am ultimately let down. There is no way I can trust anything they build at this point. I wish it were different as they have some really good ideas, they are just the worst when it comes to follow through for the long haul.

<comment><USER12> Google products and Google technologies are historically managed very differently, especially if the tech is open source.

</comment></comment><comment><USER13> Are you frustrated with the way Android apps are developed? Tired of amount of time to get simple list working? Writing lot of boiler plate code only to update list from a dialog box? Ever got scared of implementing a navigation drawer or a fragment? Did you left Android development because the time and code to implement it was way greater than expected? Tired of handling life cycles?

Sorry for being dramatic but if you answered yes to any of those give a try to Flutter! You will be surprised of how fast you can develop an app for mobile with descent UI. Thank me later!

<comment><USER6> I rather use Qt and Xamarin for that purpose.

More mature, may target desktop OSes and use languages that are actually relevant in the market during the last 20 years.

<comment><USER14> Flutter's edge over these technologies is faster development cycles (very fast build times, sub-second reloading without losing state, very rapid ability to update code/GUI after deployment to a testing device, and very fast render times).

Xamarin and Qt are fine products, and I know Xamarin has been working on some improvements over deploy times, but it still can't touch what Flutter does there. And if you know C++ and C# already, Dart is a breeze.

<comment><USER6> A programming language is more than just semantics, Dart eco-system is a tiny dot when compared against C++ and C#.

Flutter deployment times aren't worthwhile enough to bother with a language with uncertain future.

<comment><USER15> Doesn't Dart interop with JavaScript libraries?

<comment><USER6> It does, given its history.

However that is very little against C# and C++, which can also be compiled to JavaScript/WebAssembly.

Additionally there are TypeScript, ReasonML, and a myriad of other languages with JavaScript interop.

</comment></comment></comment></comment></comment></comment><comment><USER16> Why do they want me to learn a new language to make use of a gui runtime+lib? Seriously. What makes that language that revolutionary so that nothing else, no other tried & tested & loathed language, could have been used instead? I don't see it.

<comment><USER17> We get this a lot. To the point that my colleague wrote this: [https://hackernoon.com/why-flutter-uses-dart- dd635a054ebf](https://hackernoon.com/why-flutter-uses-dart-dd635a054ebf)

It's not easy to explain in a HN comment. Technical decisions like these never are. In this particular case, there is no single "Dart can do X and nothing else can". That's not true for any feature. It's the combination that mattered.

All in all, Dart was a really, really, really good choice. Not from a marketing perspective, obviously, but that's not everything.

<comment><USER16> So, the argument basically boils down to: It's a bad thing to use a dsl or similar only for gui. It's a good thing to use a whole new language you have to port all your code to and that has only a small ecosystem so you can also write all these libraries yourself.

Don't get me wrong. Flutter may well be a formidable piece of software. Dart either. I just don't get how flutter is marketed around the fact that dart was there first with no convincing use case and that people only then started looking for a raison d'etre.

<comment><USER18> Hey I've been following Dartlang's up and downs over the years, here are some ramblings about Flutter.

When the chrome guys started the Sky experiment, now the flutter project, they started with javascript. I don't know why they dropped javascript, but they looked at several languages before trying Dart. Here is a floss weekly episode with one of the co-founders, talks about flutter's hotreload, an idea that came from the Dart team.

[https://youtu.be/2C-2-tU6LLY?t=22m19s](https://youtu.be/2C-2-tU6LLY?t=22m19s)

If swift was opensource back then they may have gone with it and if they started today they may have gone with kotlin native.

Flutter's hotreload feature, something that they didn't know they wanted, was created after they decided to give Dart a go. While the Dart team had missed the boat on getting the Dart VM into chrome, they still had their internal customers using Dart2JS. The Dart team also had their own experiments in IOT and running on IOS.

Maybe Sky/Flutter guys saw Dart solving their problems that Javascript couldn't and they also saw that the Dart team has the expertise to help them in advancing their experiment to where it is today.

<comment><USER16> Thanks for the background info. I was wrong then.

</comment></comment></comment></comment></comment><comment><USER19> Flutter might be a cool project, but what's the status of integrating native controls?

Mobile apps are not only CRUD clients and do lots of stuff that needs tight OS integration. The last time I checked, flutter couldn't do Maps, GeoLocations, AR (ArKit/ARCore), Encryption, audio/video, file storage etc activities that are outside the normal purview of a CRUD TableView App.

Since flutter team seems to be active here, could anyone from the team shed light on these aspects?

<comment><USER10> (Disclosure: I'm the Eng. Mgr for the Flutter project at Google.)

In general Flutter takes the position that Flutter should not limit your choices and your apps should be able to do anything the phone can do. Flutter apps are just iOS or Android apps, you can always open up the ios or android sub-folders and write as much Obj-C/Swift or Java/Kotlin code as you like.

Flutter's core engine/framework are all about providing portable UI, and leave everything else up to "plugins" (the opposite of say the Web were everything is baked into the core platform). Lots of plugins exist today, but there are always more to write: [https://pub.dartlang.org/flutter](https://pub.dartlang.org/flutter) [https://flutter.io/developing-packages/](https://flutter.io/developing- packages/) [https://flutter.io/using-packages/](https://flutter.io/using- packages/)

Responses to your specific asks:

Showing arbitrary native views inline with other Flutter content is actively in progress: [https://github.com/flutter/flutter/issues/19030](https://github.com/flutter/flutter/issues/19030) (already possible to show views to the side of/on-top-of a FlutterView of course).

Full inline Google Maps is similarly in progress: [https://github.com/flutter/flutter/issues/73](https://github.com/flutter/flutter/issues/73)

There are several community authored plugins for geolocation e.g. [https://pub.dartlang.org/packages/geolocator](https://pub.dartlang.org/packages/geolocator).

AR is not something I've seen any work on yet, but it's always possible to throw up a full-screen ARKit/ARCore view using ObjC/Java your otherwise- Flutter-built app.

Flutter includes BoringSSL as part of it's runtime, some encryption APIs are exposed, there is probably more for us to do here. There is also pure-Dart crypto, e.g. [https://pub.dartlang.org/packages/crypto](https://pub.dartlang.org/packages/crypto) and of course always possible to write your own wrappers around iOS/Android APIs (which someone may already have done too).

Audio/Video plugins exist today, e.g. [https://pub.dartlang.org/packages/video_player](https://pub.dartlang.org/packages/video_player)

Some storage plugins exist (e.g. [https://pub.dartlang.org/packages/sqflite](https://pub.dartlang.org/packages/sqflite)), definitely more to write here.

Always more to do. If there is something specific you believe my team should help provide, please let us know: flutter.io/support. Hope that helps!

<comment><USER19> Thanks for response, I have high hopes from Flutter, however having spend years in cross-platform mobile development, I just want to avoid the most common pitfalls. I hope this comment doesn't come out as snarky, I just wanted to give an honest opinion.

Not having first-class Maps is a deal breaker for many apps, and having only Google Maps support is not what most developers want. I would like to port my current app, but without proper maps support Flutter feels like a cousin of Ionic.

What's the FFI story of Flutter? Could you please point me to the direction of using ARkit view using ObjC/Java FFI? From what I've seen we've to wire an OpenGL View to achieve AR capabilities, but I might be wrong.

While the crypto package is a good start, I was more interested in having access to the Trusted Execution Environment (TEE) on iOS/Android. Do you have any work being done in that area? Lots of apps (e.g. Fintech) have security audits and these things could be a deal breaker.

A cursory look the Audio plugins show that it's a wrapper around AVFoundation etc. and they are capable of playing audio/video, I would love to see an official plugin with 1-to-1 feature parity with iOS/Android AV API.

Flutter is a great project, but it seems to be plagued by the same issues that React Native, and Xamarin has.

</comment></comment></comment><comment><USER20> Are there any apps in the wild that I can install which use flutter? I'm curious to know how it feels from a user perspective.

Stats and benchmarks are neat but I'd really want to try it firsthand to know that it's "Fast".

<comment><AUTHOR> Here's a great demo if you want to see pure speed: [https://medium.com/2dimensions/showcasing-the-power-of- flutt...](https://medium.com/2dimensions/showcasing-the-power-of-flutter- using-2dimensions-animation-tools-c87f0a89723a)

Another new example of Flutter in action is Reflectly, which was recently featured on the Apple appstore: [https://medium.com/reflectly- engineering/reflectly-from-reac...](https://medium.com/reflectly- engineering/reflectly-from-react-native-to-flutter-2e3dffced2ea).

</comment></comment><comment><USER21> Are those SO popularity comparison numbers real? If they are, I feel they were somehow artificially inflated. I have nothing against Flutter, but I don't think at this point it's as widely used as Xamarin and React Native. For Angular numbers should be even higher.

<comment><USER7> I don't know where they got those numbers. This graph seems more realistic to me [edit: maybe not - see subcomments]:

[http://sotagtrends.com/?tags=[ionic-framework,react- native,f...](http://sotagtrends.com/?tags=\[ionic-framework,react- native,flutter,xamarin\]&relative=true)

That is, Flutter is shooting up and overtaking Xamarin but still only half the popularity of React Native. This also roughly correlates with mentions on Google Trends:

[https://g.co/trends/y9Z8q](https://g.co/trends/y9Z8q)

On job websites React Native is way ahead - which you would expect given React Native's headstart. For example, www.jobstreet.co.id currently has 43 jobs for "React Native" but only 5 for "Flutter".

<comment><AUTHOR> Hi there, the source for these numbers is the StackOverflow API. Just to clarify, the chart we have in the blog is showing question _views_, not questions tagged. There are more questions for other frameworks still (since they're more mature technologies), but we're seeing lots of views of questions tagged with Flutter.

<comment><USER7> Thanks for the clarification. Using 'number of views' would seem to be a valid metric, so now I'm not so sure about which graph is more realistic.

</comment></comment></comment></comment><comment><USER22> How confident can anyone be basing a core product on flutter given Google's history of abandonment?

<comment><USER23> I am especially nervous about Flutter since they don't even have to abandon it. If they don't keep pace with new OS releases, there is no great way to recoup your investment in Flutter. You are just stuck without an outdated looking app or forced to do a full rewrite in the native frameworks.

<comment><USER24> Keep in mind that Flutter is an open-source project with an active community. There's nothing particularly special about the built-in widgets that the Flutter framework provides; other developers can make and publish their own widgets easily enough if the built-in widgets are insufficient.

</comment></comment></comment><comment><USER15> Google is making a smart move by showcasing Flutter's capability to make iOS apps. Cross-platform SDKs have a tendency of favoring one (iOS with React Native) or neither. By showing that devs can easily make quality apps on iOS, they show the promise of Flutter.

</comment><comment><USER25> It's really sad how Google can possibly (I won't bother wasting my time to find out) make something really truly awesome, and it just doesn't matter at all. Their brand has a stink to it that won't wear off any time soon, if ever.

They chose an evil path of manipulating users into giving up privacy. Talking out both sides of their mouth with politics and freedom of speech and other things. Creating and dumping tech like hot potatoes. Attempts at mass manipulation of the internet (AMP, messing with the location bar). The list goes on...

Google is schizophrenic, and I don't know if they can come back from this in the long term. I won't even bother looking at any of their tech anymore, there are plenty of great alternatives to every service they offer without all the Google baggage.

<comment><USER4> There really isn't an alternative for what Flutter does, which is high quality cross platform apps that don't require separate UI code. Xamarin has Forms, but the UX is not nearly at the level of what you get from Flutter, and it would require some serious rework of how they render their widgets for that to change. Other solutions like Qt are just lagging behind, as much as I wish that weren't the case. Ultimately I think Google has the ability to make Flutter the primary platform for developing mobile apps in the future, if they emphasize it as the preferred way of making new Android apps and especially if they make it relatively easy to integrate Flutter into existing native apps. If it were possible to easily drop one screen into an iOS and Android app with Flutter, this would start getting immediate adoption because of how much time and money it can save. Ultimately that matters a lot more than "Google baggage" that only a small fraction of developers really care about.

<comment><USER25> At one point there wasn't an alternative to Angular either, look what we have now. Not only that, there's still native. Which means anyone can easily hold out that is on the fence for who knows what comes in the future.

Principles matter at some level, which is why many businesses abandoned Godaddy a few years back. But also there's simple budget considerations. Google has cost us tons of money over the years adjusting to their services. Now we don't have to anymore, and it's a relief.

If I am forced to spend money I'd rather spend it on something competition than to bolstering a belligerent monopoly and also support a system that will still be around, or at the very least, give two craps about our situation.

Maybe you are too young to remember the bad old days with Microsoft was the mean kid on the block. Google is getting worse than Microsoft ever was. And that is really bad.

(edit:React confusion)

<comment><USER4> I'd argue people left GoDaddy because their services suck. At least, that's been my experience with them. And at the same time, what they were doing wasn't unique, you have nearly unlimited alternatives in that space. I hope you're right with the Angular comparison though, I would love to see other projects move in a direction that truly competes with what Flutter is doing. As for native...you're right, I'll continue to tolerate it because none of the cross platform solutions are really "there" yet, Flutter included at the moment. It's interesting from a technical perspective, but I wouldn't bet on it for a serious project until it at least hits 1.0

<comment><USER25> The specific instance related to Godaddy that was the straw that broke things was the SOPA fiasco. Google has done many similar things, it could be argued even far worse things, and it's somehow survived so far. But to think it's any better of a company is to be myopic.

Well, I am in no hurry with Flutter, we will see how things turn out in the next few years.

</comment></comment></comment></comment></comment><comment><USER26> Looking at the new Cupertino stuff.... since Google is reimplementing all iOS animations for navigation, bounce, etc., is that not infringing on Apple's patents?

</comment><comment><USER27> Nevercode is proud to join Flutter revolution! The day Flutter announces Release Preview 2 Nevercode CI/CD supports Flutter apps out-of-the-box. Building beautiful iOS & Android apps using a single code base just got better! Check our doc: [https://developer.nevercode.io/docs/building-flutter- apps](https://developer.nevercode.io/docs/building-flutter-apps)

</comment><comment><USER28> Is Flutter using native controls here, or are they drawing a copy of them by hand? I didn't see a scroll bar in that demo, so I'm not sure. The rest of the stuff looked pretty good, though of course I'd need to actually physically try it to give it a final opinion rather than just rely on a GIF of someone interacting with it.

<comment><USER14> Flutter takes full control of the rendering pipeline directly on both platforms - all the controls your seeing are written in Dart for Flutter, but designed to mimic the best of what the platform offers.

In particular, this means that if you're running an Android app on an older device, it can still show the latest Material design widgets (and similarly for iOS, showing the latest Cupertino styled widgets, or Material).

<comment><USER28> > Flutter takes full control of the rendering pipeline directly on both > platforms - all the controls your seeing are written in Dart for Flutter, > but designed to mimic the best of what the platform offers.

You see, this is rarely what I want. I've seen time and time again people trying to emulate controls and it just doesn't work. Apple has a whole team that's spent _years_ making the iOS UI look just the way it is, and I don't trust any other team to be able to copy this without serious effort. Sure, it might look pretty similar, but something always doesn't work: the control behaves differently, isn't accessible, animates incorrectly, etc.

<comment><USER29> (Flutter TL here)

I encourage you to compare our iOS ("cupertino") widgets with the UiKit ones. We've still got many to implement, but I think we have the fidelity pretty high for the ones we've implemented. If you disagree please do file bugs, we care very much about fidelity.

<comment><USER28> Do you have a widget catalog somewhere that I could try out on my device?

<comment><USER30> If you have an android device you can use Flutter Gallery [1], it has the Cupertino (iOS) widgets.

[1] [https://play.google.com/store/apps/details?id=io.flutter.dem...](https://play.google.com/store/apps/details?id=io.flutter.demo.gallery)

<comment><USER28> Does this actually emulate OS-specific interactions such as gestures?

</comment></comment></comment></comment></comment></comment></comment><comment><USER31> Any word on the testing situation? Currently, my inaugural app has a bunch of tests which won't run as a) you can't use plugins in unit tests, and b) integration tests (via flutter drive) won't work with platform channels, as it has a dependency on dart:ui.

</comment><comment><USER32> I was looking at this last week. The lack of native <XML> tree representation, similar to JSX would make this ideal.

</comment><comment><USER33> Do not use it for any serious project. It is Google, they will probably abandon it. Google has ADHD.

</comment><comment><USER34> Wait, Dart is still a thing? Can I write Flutter apps in any other language? I've had a look at a few pages to understand which language Flutter uses, but it hasn't mentioned Dart yet (apart from the .dart extension in the Getting Started example).

Sorry, yes it does - 'Dart language and core libs'.</comment>