Expensify CEO On 'Why We Won't Hire .NET Developers'
TheGrapeApe writes "The CEO of San Francisco-based, VC-backed startup Expensify wrote a post on the company's blog about why he considers .NET experience on a resume a general liability, saying that it will 'definitely raise questions' when screening for developers in his shop. Quoting: '.NET is a dandy language. It's modern, it's fancy, it's got all the bells and whistles. And if you're doing Windows Mobile 7 apps (which the stats suggest you aren't), it's your only choice. But choosing .NET is a choice, and whenever anybody does it, I can't help but ask "why?"' Does he have a point? Or is it counterproductive to screen devs out based on what platforms or languages they have used in the past?"
But choosing .NET is a choice, and whenever anybody does it, I can't help but ask "why?"
I do .NET because that's where the money is. Next question please!
I've been using C# at work for some time now as a co-op, not because it was my first choice, but because that was what we were told to use. I know other languages, and I'm quite good with them.
It's just as well. Anyone who thinks .NET itself is a *language* isn't someone I want to work for.
Only known ONE .NET programmer, and he was damned fine, thing is, he was a damned-fine C++ programmer too, so ...
I don't know the meaning of the word 'don't' - J
However, if you need to make a 1.7 oz burger, you simply can’t. There’s no button for it.
$50 says this idiot has never programmed anything in his life.
I'll make sure not to hire Expensify. Why? Well if they have a language-zealot mentality, then I'm not going to like what I get. That is the sign of code hacks, not developers. Real developers can develop in more or less any language. They'll have their favourites, of course, and use different ones for different jobs, but they won't write off a given language for ideological reasons.
I can totally understand and support not hiring .NET only developers, particularly if your market is non-Windows. I mean someone who only does .NET may well be the aforementioned "code hack" and of course is little use if you are doing Android development. but that you'd count it against someone that they have done it? That just speaks of ideological zealotry, not anything practical.
One of my coworkers is our UNIX and Linux lead. He runs those servers and so so well. He has hacked many a script to make Linux work well in our unique environment. He does back end development on our website, which is LAMP. However can can truthfully put .NET development on his resume. He has done some .NET stuff for the Windows side, and also does it as a consultant. It is not the only thing he does, but it is one of his many tools and I'd expect him to list it.
He's a very skilled individual and to exclude him because he has additional knowledge of MS development would be really stupid.
So to me, this CEO has proclaimed "Don't hire my company. We are zealots who will insist in coding in a certain language, even if your project would be better served by something else."
Thanks for the warning bud.
I'm mainly learning .NET because it's a requirement as part of my university degree in management information systems. I wanted to learn regular C++ or Java as those have tons of applications, but .NET, and more specifically C# is required for pretty much any computer related degree these days. Whether this is due to lobbying by MS or due to many businesses using it, I don't have any idea, just it's that the university requires it.
Careful with names containing L slashdot.org/~AiphaWolf_HK slashdot.org/~AlphaWoif_HK slashdot.org/~AiphaWoif_HK
.NET (like Java and old versions of Visual Basic) lets stupid programmers who usually wouldn't be able to do anything at all, do a bad job of something. So I can see where it gets it's bad reputation from.
However, for intelligent and talented programmers, .NET increases the speed that they can write code greatly. Unless you are someone like Amazon, Google or Oracle then developer time is much more expensive than CPU and RAM costs. Desktop computers have been faster than we need them for years.
.NET is also simultaneously lower level than Java (it supports pointers and pointer arithmetic), and higher level (LINQ, extension methods, better generic support, F#, TPL), so I can't see why you could pick on .NET devs and not on Java devs.
You can't claim .NET is Microsoft only either, Mono runs on *nix and works absolutely fine for server code and most windows forms code.
I dream of a nation where a man is not judged by his skin color but by an number assigned by a credit rating agency.
Dear Slashdot,
Thank you for propagating this non-news publicity stunt in true Slashbot form. You never disappoint.
Love, Expensify
Who the fuck are Expensify? What, if any, notable things have they accomplished?
I agree that the person who wrote the piece this article is about has a point. I don't think I'd go so far as he does, but I can definitely see why .NET would be a negative, as well as having a Java-only resume.
In truth, I've always been mystified as to why anybody would invest the time or energy in learning so much about Microsoft's platforms. It's not like that knowledge would do you much good if Microsoft were to simply vanish from the planet.
On the other hand, all the stuff I've learned about computing outside the Microsoft world will do me a whole ton of good even if several major vendors leave the planet. If RedHat dies, for example, it's not like my Linux knowledge is useless. If the FSF dies, my knowledge of C++ gleaned by using g++ isn't useless. If Oracle goes up in a puff of smoke, my knowledge of Java will not go to waste.
But if Microsoft were to utterly disappear, we'd have about 5-10 years of useful programming that could be done before all the other platforms outpaced your aging, no-longer-maintained platform so far that a good 60% of your knowledge was useless. It's a dead end because you've inextricably tied yourself to one, and only one vendor.
And recognizing this trap for what it is goes a long way in my evaluation of a candidate.
Need a Python, C++, Unix, Linux develop
The dude doesn't understand the first thing about .NET
It is not different from everything else out there.
WTF? This dude is on crack.
Why did this even get posted on /.
Some pointy haired moron goes on a rant (that will likely be accepted on face value by a plurality of /. readers), why is this newsworthy. Why would anybody want to work for this twit. This story should be moderated flamebait and troll.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
Here, let me help. Perl was, is, and always will be better than Python at everything forever.
Motorcycles, Robots, Space Gossip and More!
but I kept running out of wire.
Klingon, and preferably they can recite Hamlet in its entirety.
It just shows me how reliable they are. As in no interest in an outside life, and won't notice when we look them up.
Yes, it typically takes longer to achieve proficiency in C++ (meaning able to be trusted to do unsupervised check-ins into a large codebase) than in C#. But, having .NET on your resume means you're someone looking for shortcuts? Maybe it's the best tool for the job in certain situations, such as writing Windows desktop apps for in-house use. Maybe people learn .NET because they are professionally curious.
I would NOT apply to Expensify as long as this talk radio style idiot is in charge. That's a good way to suffer random career damage.
This CEO has chosen an unfortunate way to be an attention whore. .NET may not be his cup of tea, but to say the experience is a liability is plain stupid. I'd suggest he spend more time generating some positive attention instead of making customers think Expensify is run by a moron.
I thought Windows Phone 7 apps were coded in Silverlight and XNA?
Silverlight and XNA are APIs/libraries that sit on top of the .NET framework.
DxBlog - It's where you want to be
If you think you've identified an easy way to judge a job applicant, you're probably wrong. A programmer can be good in any language, you need to test his aptitude for logical thinking and learning new things - requires more effort but is more likely to do justice to both you and the applicant.
Isn't there a new release of vi or emacs?
I am TheRaven on Soylent News
this argument is just stupid.
My highschool was a trade school where I "majored" in a computer science curriculum. Half of the curriculum was about networking and systems administration, and the other half of the program taught programming fundamentals. During my programming lectures we used a variety of languages. My freshman year we started with web development that included HTML, CSS and scripting with js and php. My first step into programming was with COBOL. I then used learned to use Visual Studio which included lessons in Visual Basic and Visual C++ From my sophomore year onward we used java almost exclusively. I also took a course in C++ as a substitute for my senior year's math course.
I have a basic understanding of programming concepts. I am in no way prepared to make it a day job. However, if i did pursue a career in the field and I brushed up on one of the high-level language this fool wouldnt hire me? So....I have experience with Visual Studio. That doesnt necessarily disqualify me from becoming an excellent Java programmer or C++ or maybe even plain old C *shudder*
As the Java reference has already been well established, as somebody who does .NET daily in both C# and VB flavors, I cannot name a faster way of making the programs I need to do stuff. The frameworks just save us from having to remake and reuse tons of code that somebody already did. Why do more work than you have to?
For those who seek perfection there can be no rest on this side of the grave.
... that this article is flame bait and that it is stupid to identify "bad" programmers by .NET resume experience.
That being said, if you read the actual post, the guy clarifies that what he is talking about is .NET programmers at startups. .NET takes away all the "hard" stuff about programming and automates it, and startups need the type of coders who know how to do solve certain problems without the automatic processing .NET offers.
Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
Let's try to stay civil this time.
THAT'S JUST WHAT I'D EXPECT FROM YOU! SHIT COCK!
The filter says I use caps too much, well this wouldn't make much sense if I didn't, it would come off with the wrong tone, so consider this entire sentence a way of me correcting the ratio. Fucking retarded Slashdot.
This is my footer. There are many like it, but this one is mine.
Every CIO makes choices for the technologies used inside their companies. They also make choices for technologies to be avoided for a variety of reasons.
I'm a CIO and to be certain my company isn't stuck with single platform solutions or poor library choices,
a) all our software runs on Solaris, AIX, HP-UX, Linux, Mac and Windows
b) The Linux client cannot use Mono (my choice). PERIOD. We don't allow those libraries on Linux at all.
c) The Windows client cannot have divergent capabilities from the other systems and needs to look and feel like other platforms.
d) We prefer BSD, MIT, Apache licensed FLOSS over GPL or LGPL. I have to sign-off on GPL/LGPL stuff. Commercial stuff needs my sign-off too, obviously.
I agree that this CIO may be going too far, but I do not disagree that .NET programmers have to work harder to write cross-platform. All parts of the world are churning out .NET programmers with that a single skill. THOSE are the developers I want to avoid on my teams. Cross-platform developers who happen to know .NET are not a liability unless they enjoy .NET programming too much.
OTOH, we do have clients that force .NET development for specific projects due to 3rd party mandated tools - ArcGIS, for example. My dev team hates working on that software, so we charge 30% higher rates for that work. ArcGIS is a specialized skill and easily supports the higher costs.
If I were running a Windows-only shop, then I wouldn't make the same decisions. Thank your-favorite-deity that I'm not.
His rant about backslashes in path names strikes a cord with me. The 8.3 file name size restriction too. It looked like they introduced blanks in the path names specifically to break my cygwin scripts. But these are minor gripes, and as such would not impact my hiring decisions.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
Emacs maybe but not vi, vi sucks. I would never hire anybody who used vi by choice, sure sometimes you're forced to use it but mostly it's a choice.
People normally don't flamewar over common knowledge, sorry.
I'm not trolling, but his analogy on McDonalds kitchen sounds like Drupal and other CMS out there. Creating a 1.7oz burger is hard on those frameworks too, even though that's where the money on web development is.
Even if you list it it wouldn't likely cause any problems. What the article was talking about was .net being hard to unlearn, and that too much investment in it might be harmful to ones career, outside the .net world. It doesn't sound to me like he refuses to hire those people just for having it on their resume, but that it does raise something that will be addressed in the interview.
To an extent he does have a point, that anybody that can't be trained or learn the tools that are in use at a given place of employment isn't qualified to work there. I just think that he perhaps phrased somethings rather poorly.
I can't personally speak to the merits of unlearning .net as I've never learned it to begin with. The bigger issue he's citing is the ability to retrain for work in a start up environment. Probably not much of a problem if you're a skilled programmer, but if you're a hack that started out with .net because it was the newest thing, you might be screwing yourself.
Its a great way to screen candidates. If you program in .NET you're probably less sophisticated and skilled than if you programmed in C or Java on Linux.
Do you have any idea how much better a language C# is compared to Java?
Do you have any idea how much better C or C++ are compared to C#?
It is critical, absolutely critical, to hire the very best people you can find. The output difference in going from a bad to competent to good to great in a developer is exponential, but the difference in cost is merely logarithmic. Only a fool lets his personal prejudices stand in the way of finding talent, whether that prejudice is about race, religion, sexual orientation ... even development languages and platforms.
Maybe the candidate developed in dotNet because that's what he was asked to do by his boss. Maybe he thought C# was interesting, or would get him the job he wanted. Maybe he just *thinks* differently than you do, and so prefers dotNet to Java, Python, Ruby or whatever rings *your* bell.
What you are looking for is somebody whose talent ideally transcends languages and platforms. Somebody you could ask to write something in x86 assembler, and he'd learn it and turn out something pretty good, maybe not as fast as the average assembler programmer could, but the second time around he'd be on par in getting the job done and by the third he'd leave the average programmer in the dust. You want a creative problem solver, a deep thinker, a team player who knows when to take initiative, somebody with real grit and dedication to the success of the project.
What you want is all of that. But you'll never get it. That means *right from the get-go* you're talking about compromises. And this guy's thinking about blackballing applicants because they have experience he doesn't? Jackass.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
A framework and language are a means to an end. Having a religious or emotional attachment to either is sheer stupidity.
Please do not read this sig. Thank you.
He either never had, or no longer trusts, his own programming knowledge and skills. He, therefore, can't make informed decisions about programmers and programming and so comes up with arbitrary criteria to make his decisions for him.
It's not .NET's fault. It's the people he's been looking at.
The deal is, if you're a commercial software company, the thing you really want to keep is control over as much of the stack as possible. Why? Because when you've got a hairy performance problem you don't want to find out that it's because of code generated by some "easy to use" wizard. That is now deeply intertwined in 1/10th of your classes.
The sort of developer you want is someone who has been severely burned by wizards in the past and is now a devoted follower of the KISS principle. Someone who walks out of product demos when the salesdroid says "And look! I didn't have to write *any* code at all!"
Chip H.
You must be new here. :p
Quo usque tandem abutere, Nimbus, patientia nostra?
Isn't this just a modern-day variant of "goto considered harmful"?
Isn't this a classic example of a CEO trolling for attention ?
1. Make baseless, provocative statement
2. Epic traffic and attention
3. ???
4. VENTURE FUNDING!
5. Cash out before the VCs realize you're an imbecile
-Billco, Fnarg.com
Its a great way to screen candidates. If you program in .NET you're probably less sophisticated and skilled than if you programmed in C or Java on Linux.
Do you have any idea how much better a language C# is compared to Java?
Do you have any idea how much better C or C++ are compared to C#?
Actually I do; well, that is to say, I know that they're not really directly comparable most of the time. C is great for low level stuff. I wrote a small C-subset compiler in it once. C++ is great for mid-level development. I had a lot of fun writing games in C++ in high school. Both of these languages are great when you need them, but they are not the same type of tool that Java and C# are. If you need to write maintainable business apps (which is what 90% of us have to do to put food on the table), you're going to use a managed environment with reflection capabilities and good standard APIs. You'd be crazy to write an accounting program in C, just as you'd be crazy to write an OS in C#.
Just poor analogies and baseless statements. Another idiot that thinks .NET magically does everything for you. If it could it would be even more popular that it is today. C# is more or less an improved Java. Does he have a hamburger analogy for Java as well? PHBs should never, ever write about programming languages or platforms.
A couple years ago a venture capitalist friend told me about a new startup he was involved with. It sounded promising. But the next time I talked to him, he said they'd decided to build their software on Windows NT, and had just hired a very experienced NT developer to be their chief technical officer. When I heard this, I thought, these guys are doomed. One, the CTO couldn't be a first rate hacker, because to become an eminent NT developer he would have had to use NT voluntarily, multiple times, and I couldn't imagine a great hacker doing that; and two, even if he was good, he'd have a hard time hiring anyone good to work for him if the project had to be built on NT.
from Great Hackers by Paul Graham.
As the island of our knowledge grows, so does the shore of our ignorance.
Now stick your head back in your ass.
Alright, time for some standards: "Why do you feel that Python is so bad? What do you find wrong with it?"
Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
FTA: ". Big things, like obscuring the networking stack under so many countless layers of abstraction that it’s virtually impossible to even imagine what bytes are actually going over the wire"
using System.Net.Sockets ...
IPEndPoint _p = new IPEndPoint (127.0.0.1, 80);
Socket _s = new Socket(_p, SocketType.Stream, ProtocolType.Tcp);
_s.Connect(_p);
_s.Send(...bytestream...);
Boy howdy, that's just buried in layers.
My Other Computer Is A Data General Nova III.
"It's modern, it's fancy, it's got all the bells and whistles"
I'd say that's a good reason to choose a framework, dumbass. If you're issue is with using frameworks that run on non-Windows boxes, you should take that up with the CTO or whoever makes those decisions. And he'd probably use your own quote to defend his decision, something akin to "frameworks that are modern, fancy, and that have bells and whistles attract developers."
Download free e-books, lectures, and tutorials at bookgoldmine.com
If he can find elite level people who want to work for some one with meaningless pet peaves then it's okay. But, this approach will bite him soon enough. r/ jim
.NET Developer on "Why I won't take a job at Expensify" "Their CEO sounds like a real shwanz."
thank you for summing up the economy of the United States, circa 2000-2010
I think this CEO is pretty far off the mark. There are good reasons for scrutinizing .Net developers during a hiring process. It is very easy to write software without knowing anything about the task at hand in MS's environment. That does contribute to a large amount of developers out there who say they can program, but couldn't even tell you what a linked list is. It's a serious problem. I'm hiring for a .Net shop and confront it over and over again.
The CEO however goes off and makes a comparison between .Net and McDonalds, saying you can't write good code in it. That's simply not true. You can do anything with it you can do with any other OO/VM platform, but you don't HAVE to. You literally can get away without writing good code. Doesn't mean you can't write good code with it.
I tried it, I broke it! (or it was broken to be more accurate)
Started coding at a young age (8 years old, check) .net
Tried everything.... yep including
programmed pretty much everything, from pic micro controllers and calculators to the microwave and washing machine...
written drivers, databases, graphics, AI, E-commerce systems yada yada... check.
got pissed off with immutable types and borked compiler and ...well.... things closing fucking streams that don't even belong to them!!!!!!!.. check.
(You can always write the stuff in a different language and wrap it up so .net can use it.... is that real cheese not the plastic type?)
thank God the internet isn't a human right.
I can only see it as a nice marketing trick from Microsoft.
Yup that's all .NET is; a marketing trick to get ".NET" onto people's resumes.
(I have a hunch that the Three Gorges Dam is also a marketing trick by China.. Heaven forbid they would see beyond their damned resumes..)
// MD_Update(&m,buf,j);
Judging by the comments on the article, Java is the same.
New things are always on the horizon
Someone who does C and OpenGL will naturally adapt to OpenCL and Objective-C.
It's not like every job I've ever had I was thinking "what will this make my resume look like, in the event I run into some language snob in the future?"
I'm in it to get paid. If there was money in it, I'd write COBOL apps to run on mainframes that are beowulf clusters of iPads. I have a family to feed and a mortgage to pay so I don't wind up homeless. I don't give a rats ass about much else. Pay me and I write code - that's it.
Weaselmancer
rediculous.
Questioning the use of the .Net framework when doing Windows development is like questioning the use of the J2EE framework for web interface development. Why in the world would you want someone who doesn't know the fundamental frameworks of the environment they're deploying to?
The days of simple APIs is long gone. Every major product or project I've worked on for the past 10-15 years has started with the choice of a framework, followed by the choice of reusable add-ons for that framework. Only the "leftover" custom functionality actually gets programmed by hand.
Doing otherwise is not only foolish, it's a sign of criminal negligence and incompetence.
I do not fail; I succeed at finding out what does not work.
This idiot obviously has no understanding of what "Turing complete" means, nor the fact that .NET qualifies as such. So why does his opinion matter in the slightest?
God invented whiskey so the Irish would not rule the world.
Well, it's Slashdot, so you're going to have flamewars either way. Unless it's creationism or scientology, when it's more like a ritual burning.
But I think that flamewar over PLs beats flamewar over politics or economics or religion. At least it's more "for nerds", even when it's not strictly speaking news.
A programming language is a tool. Some programming languages have a bigger tool kit than others, but in the end it's all about understanding what you're making and knowing how to do that.
The "fancy" parts of the tool kit, for the things I develop, is only required for a small part of the solution, but that probably depends on the field you're working in.
And to question #4. Once I'm working somewhere and I'm happy there I'll be more than glad to help recruit more people. Until that time I'll be more than glad to bill for the recruiting that I do for you.
Privacy is terrorism.
It's just a toolset. If you're smart, you can fit more than one language or platform up in your noggin and be able to move back and forth. That said, it's a tremendously powerful framework. If I may say so, as someone who goes back and forth between C++ and .NET, I find C++ to be akin to a wrench, hammer, and screwdriver. .NET feels like a compression wrench, a jackhammer, and a power screwdriver. Sometimes, it's a little too much, but generally for most things, I get more done quicker with fewer lines of code, enabling me to spend a lot more time polishing the edges and handing off a more polished product to my customers than I can with C++ or even Java (in some circumstances).
.NET developers out there, they're going to rewrite it for .NET anyway. And they're going to curse your existence the whole time. How does one such as I know? Because I've been on both sides of that mess. I've written code in goofball languages when I was younger, and I've been tasked to replace projects written in goofball, non-widely supported languages plenty of times over the past several years.
.NET because frankly, Microsoft put forth the effort to make that really quite simple to do. I don't like wasting time unhooking my business logic from my web service and hooking it up to my presentation layer just to run a debug, and if I'm not getting a good stack trace, then the toolset I've been given is crap.
The reason I do it, though, is because far more CEOs than some random, obviously big-headed CEO of some startup pay me to write code in that language. And I don't just do "Windows Mobile" for god's sake. I write a lot of web services, and the majority of customers don't care what's running on the server...they couldn't care if you wrote that service in C#, C++, Java...using SOAP, REST, whatever. They just want data when they click a button, and they want it to be up to date. There might be a few nerds who have the opinion that they might get their data a tad faster if they used one or the other, but frankly, over time the more maintainable project will always be the one that works the best...because developers will want to work on it, refactor it, keep it up to date. If you write it in some obscure fad language that has shaky support, guess what developers will do to it once you get another job? They will throw your work away and rewrite it from scratch. And I guarantee that, with the abundance of
And then there's the last thing. I put my support behind a framework or company that provides powerful tools to developers. It's sort of my activist side coming through. If a company could care less about providing powerful, open, extensible tools and frameworks for developers, that's a sign that a company simply doesn't care about the quality of third party products for their platform...and a company that most likely would use their internal tools to trump any project that I'd put substantial effort into that managed to become popular with users. For example, if I were to make a killer cloud service app for iPhone, and Apple saw a substantial potential revenue stream in it, they could easily use their own internal use tools and APIs and put me totally out of business...which is a big reason I don't do iPhone development anymore. And it's also a reason I am highly tentative about doing Android development either, because for all the tools Google puts out, I know they've got better ones behind the scenes and I've seen them kill startups plenty of times by releasing slightly better (or even inferior) services for "free". And when I say all that, I'm also saying that I want platforms that aren't just open and follow standards well, but I want a platform and toolset that is well integrated. I want to drop a breakpoint in my presentation layer code, drop one in my service code, and drop one in my business logic layer code, and I want to debug through each layer to find a problem. I can do that with
While I'm cer
C#/.net is Java without the 80s retro feel, and WPF is the best GUI toolkit I've ever used. I enjoy working with them. Their only significant flaw is that they are Microsoft platform centric.
To be fair, there are plenty of developers who use the click and code features of Visual Studio to create spaghetti. Heck, they may even be the rule rather than the exception. But, still you need to look a little deeper at a resume before you toss it, or you're going to miss some great talent.
The dude can hire whomever he wants. I agree with his point that cookie cutter coders are useless and I can understand his desire to only hire people who can really code. But there are things I don't believe he has considered. >>1. Real kitchens may have better food and better cooks than MacDonalds, but MacDonalds serves a lot more customers. For a startup or small company to grow, at some point they will have to choose a framework or write their own to handle all the customer requests and needs. If they develop their own framework, then it will be niche and likely only used internally. I don't see where being familiar with a niche framework would be a resume enhancer. >>2. Real programmers aren't stuck when frameworks don't have the controls or functions quite what they want--they just write new functions or controls or whatever they need. Real programmers know how to program and so aren't stuck on a particular language or framework. >>3. Since Expensify has dumped on .NET and also Java, I don't see that any experience from them would be a resume enhancer. The world is ruled by .NET and Java. My own priorities are to keep up the with the world rulers to keep my job opportunities optimized. This is why I don't spend much time on niche languages or frameworks. I haven't spent any time on Ruby or Drupal or Coldfusion because they are niche. In the course of work and school I have learned Perl and Python and like them, but they are also niche. I have seen what happens to organizations that get stuck on niche products and stay insular in their development processes--they don't prosper and eventually get outcompeted. And then the niche programmers have a tough time finding new employment.
Hard to believe something this stupid got posted.
"But choosing .NET is a choice, and whenever anybody does it, I canâ(TM)t help but ask âoewhy?â"
I dunno... some of us don't go into job interviews and try to dictate what language and platform the entire organization will be using going forward. We call that the "real world". In the "real world", an individual programmer won't be deciding what to work in. It'll be determined by standards, contracts, policies, and in general a bunch of stuff that can be summed up easily: management.
A good programmer is going to be able to deal with that and in some cases will "choose" to work in .net becuase that "choice" is REALLY the choice between having a job or not having a job.
The rest of his post was either flamebait, stereotypical nonsense, or in the case of DirectX just flat out wrong (as commenters on his site were so nice to point out). Other then demonstrating that he likes to blather on his company website about stuff he doesn't seem to know very much about, I'm not sure what he was trying to accomplish.
-- "So they told me that using the download page to download something was not something they anticipated." - Bill Gates
I've never been happy to let whitespace mean something in a program - it just seems wrong.
That's all I've got against it.
Most startups don't target Windows, so .NET is irrelevant. They'll be looking at some mix of php/perl/python, c/c++, java, whatever ... and they won't be using Windows., because startups can't afford people who get lost when they're outside their area of experience and there's no clicky to click.
Not only does the author not know what he's talking about, he's deliberately trolling to get attention from the type of programmers he's looking for. Free publicity from a flame war targeted squarely at /.
Oh and read the job description - ...An incredibly hard worker, even when it's not so fun. There is a ton of work to do, and a lot of it downright sucks..."
"Who We Need...
It's a running joke among experienced developers about the startup that bleeds the very life out of you in exchange for empty promises.
Been there, done that. Fuck that.
Nothing to see here, move along...
Hiring former Expensify CEOs clearly a liability.
I don't care much for .NET, but C# is the most useful language I've ever had the pleasure of writing code in. It sucks, however, that, ignoring Mono, C# is tied to Windows and Visual Studio, both of which are less useful than two liters of spittle.
Microsoft almost always fails at developing and releasing technology, but every now and then they stumble and bumble their way into a quite decent product. C# is the best thing ever to come out of Redmond; Excel isn't terrible; and, um... well if I thought about it for a while I could probably come up with another example.
d'you ever asked carpenter if he had experience with hammers? LabView is a hammer for all that do not need/want programming but need to orchestrate repeating measurements.
4wdloop
I think I see what he's saying, even if it was a terrible and flamebait way to say it. I would assume that if a developer came to him and was working with .NET, but said "and at home I've also tried Python and Ruby for web development, I've looked into some Android development..." then they would take that person on.
But if you say "I did Java at university then .NET ever since for my job" and nothing else, it shows no passion for programming or exploring alternative tools for solving problems. You just work with what you're given.
I've often called Microsoft Windows McWindows because I constantly heard people explaining their choice of platform and software because it was popular. This guy doesn't like MS .NET developers because they picked a platform and SDK which is locked down and dictates too many things which you'll have a tough time doing differently. I was blown away in the 90s when there were all these Windows CE clamshell devices and Palm blew them away with a portrait format device( even though the screen was square(160x160) ) and they all closed shop until Microsoft came out with new version of Windows CE which had a different screen resolution designed for portrait layout instead of landscape. I thought WTF, Microsoft was dictating the display format.
So that's the deal, the guy doesn't want developers who pick a platform that'll get them stuff on their screen fast but when the hard stuff shows up, the stuff outside the box, their platform restricts what they can do or how they approach the solution. That's what I got out of it. And it was fun seeing the McDonalds reference. That "everyone else is using it" shit always pissed me off when other technologies were far far better at solving the task and I've even quit a couple of jobs over it. Both those project failed because the lowest common denominator is not often the choice that you'll succeed with. But money just gets wasted and nobody gets fired for picking Microsoft. You just move onto another project and say thanks for the 1, 2, or 3 years of salary. To some, it's more about building it right, building it to last, building it with just a bit if pride. IMO.
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
I'm a (largely) .NET developer and I have to say I agree. Statistically I think there are way more bad .NET developers than say Java developers. People don't generally get into Java unless they are actually interested in programming and agnostic to different languages and tools. Unfortunately a lot of .NET developers would never think of using or learning any non-Microsoft piece of technology.
For example:
- An external contractor chose LINQ to SQL (ORM for dummies) over NHibernate for a complex web application - When asked what the best way was to add CMS functionality to new websites, my fellow developer immediately recommended sharepoint (which he has no experience in, but there are no other Microsoft choices). When really, something lightweight like N2 would make a lot more sense for us.
Plus ASP.NET web forms is a horrible piece of technology. It's amazing how little you can know about the web and still be able to cobble together working (crappy) web apps. (ASP.NET MVC is good though)
Having worked extensively with both NHibernate and LINQ to SQL, I think if given a choice I would often (over 50% of the time) go with LINQ to SQL. NHibernate is a good solid framework, and is much more flexible in its mapping capabilities; on the other hand, LINQ to SQL is more natural to code with, and often easier to extend. Both have their strengths and weaknesses. I will say though that Sharepoint is a steaming pile of crap.
Seriously. I'll do it.
I RTFA expecting, like most of you, to want to rip this guy a new one, but here's the thing.
He didn't say he won't hire .net developers. He said he considers it a liability and will want to know why you chose to learn it. He never said there were no good reasons. Hell, a lot of you have posted some. I don't know .net, but if it's what I had to learn to get something done that my client needed, it's what I would do.
So, dearest editors, how about not massively misrepresenting what people are saying? That, or let someone else do it.
What is with the obsession with getting onboard a startup? Most startups fail spectacularly, and the only way I'd ever be willing to be involved in on is if I (or someone I considered more capable than myself) was calling most of the shots. Even then, I can't see why I would spend a ton of time working long hours for almost no pay, just for that 0.00001% chance that the company will make it big -- big enough that I can sell my stock and live off it the rest of my life.
So is the CLR.
This article is one of the stupidest things I've read in a while.
"Just press the right button and follow the beeping lights, and you can churn out flawless 1.6 oz burgers faster than anybody else on the planet. However, if you need to make a 1.7 oz burger, you simply can’t."
I assume by this, he means there's something you can't do in it, because all of the shit is built in.
What he seems to forget is that .NET and native code are not mutually exclusive. If you need a 1.7 oz burger, and .NET can only make 1.6 oz burgers...then you should P/Invoke into a native library that makes your 1.7 oz burger. Problem solved.
:(){
Microsoft .NET is not a language. It's a platform.
Does he really not know the difference?
Kriston
I wouldn't hire anyone with majority Windows experience in general. It speaks to their judgement. You decided to use Windows instead of a Mac or other UNIX? In this century? In San Francisco and Silicon Valley? I'm not impressed, because you are not going to know how to do the real version of a task. You're missing key tools. You're hobbled by Microsoft's involvement, not enabled.
For example, when interviewing Photoshop pros, I'm always looking for Wacom Tablet experience (it is amazing that people think they are "using Photoshop" with a mouse) and rarely does someone with Windows experience actually know how to use a tablet. I'm always looking for Photoshop automation experience, because there is a lot of grunt work in graphics, you can make it all go away with a little AppleScript. Rarely does a Windows user know how to automate Photoshop, because it is 1000 times harder on Windows. Further, Windows users don't know color management, which is a bolt-on for Windows, but built-into the Mac. Then a guy or gal comes in who knows Photoshop, the Mac, the Tablet, AppleScript, and ColorSync, and they can sit down and be immediately productive all day. And they won't need I-T help all day, either.
So I get what this guy is saying.
I have a chef friend who told me the most important lesson a chef can learn is to use great ingredients. She said a chef with organic, grass-fed beef and organic vegetables and a little olive oil and fresh oregano and garlic is going to out-cook a more-skilled chef who has to use typical mediocre supermarket ingredients. The great ingredients already have flavor from the start, and the mediocre ones lack flavor from the start. So she said when she is hiring people, the first thing she looks for is their attention to ingredients, because that means they are paying attention to the big picture, they are going to make more flavorful food no matter what circumstance you put them into, what kitchen, what challenge you set for them. I took her advice and even with my very limited cooking skills, I suddenly make great-tasting food because I start with great-tasting ingredients.
The equivalent advice I give people who ask me how can they make digital art or applications as good as mine is "get a Mac." Start with good ingredients like ColorSync, AppleScript, QuickTime, WebKit, Apache, PHP, Python, Perl, Ruby. People come back to me a month or two later and thank me for making them into better artists with that one bit of advice in the same way I thanked my chef friend for dramatically improving my cooking by opening my eyes to the importance of ingredients.
Somebody who chooses to use a Windows machine in the 21st century is not paying attention to the big picture. They may be able to cook you a meal, they may know how to bake and broil, but they will not make you any great tasting food.
And if you are talking about mobile applications specifically, then somebody who went through 2008-2011 and did not get into Xcode? You have to wonder is their passion mobile apps? There is a whole PC replacement cycle between 2008-2011 and they didn't buy a Mac, on which you can also run Windows, so that they could make an iPhone or iPad app? Even with my limited Windows experience, if Microsoft had done iPhone in 2007 and iPad in 2010 instead of Apple, I would have a copy of Windows 7 and Visual Studio and would have made apps for those devices. So someone who spent 2008-2011 doing .NET is not part of the mobile game. You have to be suspicious of that person at an interview. You want somebody who makes mobile apps, not Microsoft apps.
Managed code.
Why? Managed code is not tied to an architecture, thats one advantage Windows 8 ARM will have over previous attempts to expand to PPC and Alpha.
This sig has been distributed under the Creative Commons license.
CS and Software eng hiring is much more driven by business guys who, ask questions like.. I kid you not "Do you know HTML"
I'm a skilled reverse engineer who works in C++ and obviously assembly language, yet I don't know all but the simplest HTML.
That said, your point stands; I could learn HTML very quickly, artistic techniques aside.
"Screw Sun, cross-platform will never work. Let's move on and steal the Java language." - Visual J++ Product Manager
Microsoft has attempted to hide the Internet behind a layer of proprietary abstractions. Whether you were developing an application for the Internet or for old-school client/server technologies was supposedly irrelevant. Given time, this spec slipped away, but it's idiosyncrasies remained.
Consequently when you write a .NET application for the Internet, not a single term in your vocabulary is the same as that of a Perl, Python or Ruby programmer. WWW standards are rarely, if at all, referenced.
Should you place a .NET programmer in front of a Perl web developer, they won't be able to communicate initially, if at all. Their initial (frustrating) dialog will consist of probing attempts to pin down each other's terminology and formulate a common "pidgin" vocabulary.
Astonishingly, this problem did not exist with Microsoft's older pre-.NET developers, who used the ASP framework and the lighter and simpler language VBScript to do web development. Those technologies were consistent with that of WWW standards(ASP was a CGI-like framework). Those developers quickly move to Perl, PHP, Python, and other languages and frameworks without a hitch. In contrast .NET programmers have to be taught everything from scratch, beginning with HTML.
allow me to translate. quotes FTA:
...we have an army of recruiters out scouring the globe, leaving no resume unturned. Taken all together, this creates a lot of resumes. So many that we don’t look at them, because resumes — let’s be honest — are totally worthless.
we use the shotgun approach for the initial round of hiring so it looks like tonnes of people are trying to get in the door. this makes it looks like the position is in high demand. we expect the candidate is absolute grateful for the oppotunity to work with us by the time they get to the final round so we can negotiate lower than usual pay. after all:
experience is cheap
so really the kind of person we're looking for is:
The right sort of person is so passionate about coding, they can’t be stopped from doing it. They typically started before high school — sometimes before middle school — and never looked back. They write everything from assembly to jQuery, on PCs to mobile phones, doing hard core computer graphics to high level social networking. They’ve tried everything.
we expect them to almost be a machine cranking out quality code (now that years of fine tuning has been applied). they should work very long hours and it should all come out clean. after all they said they enjoy doing it, so regardless of how mundane the code writing phase is they should be happy at what they're doing. if they're not it's their own fault and our company then has absolutely no responsibility in the matter.
Programming with .NET is like cooking in a McDonalds kitchen. It is full of amazing tools that automate absolutely everything. Just press the right button and follow the beeping lights, and you can churn out flawless 1.6 oz burgers faster than anybody else on the planet.
However, if you need to make a 1.7 oz burger, you simply can’t. There’s no button for it. The patties are pre-formed in the wrong size. They start out frozen so they can’t be smushed up and reformed, and the thawing machine is so tightly integrated with the cooking machine that there’s no way to intercept it between the two. A McDonalds kitchen makes exactly what’s on the McDonalds menu — and does so in an absolutely foolproof fashion. But it can’t go off the menu, and any attempt to bend the machine to your will just breaks it such that it needs to be sent back to the factory for repairs.
we want to be able to change anything at anytime in our system. there is no such thing as coding standards. there is no such thing as sticking to one platform. we love the use of buzzwords when we sell to clients, so if we can throw in that our system is using the brand spanking new 'psueso' language, the coder damn well better be able to adapt and have it all running.
* note: i've been in a mcdonalds kitchen in the last year. these days they're a fair bit more adaptable. sure there are certain things they still can't do (buns are buns, are buns. no way in hell you're getting thicker fries). but at least with the example he gave, you can get a fatter burger. just involves breaking up the meat from different patty, then squishing it on top of a standard one. after that, they simply over pick ingredients from the various trays available.
See, Microsoft very intentionally (and very successfully) created .NET to be as different as possible from everything else out there, keeping the programmer far away from the details such that they’re wholly and utterly dependent on Microsoft’s truly amazing suite of programming tools to do all the thinking for them. Microsoft started down this path when they were the only game in town, explicitly to maintain their monopoly by making it as hard as possible to either port Windows apps to non-Windows platforms, or to even
It's amazing that something so invisible can be such a strong sticking point, but I'm with you 100% on this. Even Fortran and TCL are more forgiving on this count.
Program Intellivision!
I've been in IT over 15 years and have several software-specific certifications on my resume. My certifications cover both proprietary and FOSS, and none of them are from Microsoft. I've put in a lot of hard work of over the years to study, learn, and earn those certifications. Why do I bother?
1) To improve my chances of continuing to earn a good living.
2) Because each time I take on a new vendor certification, I use the vendor's outline of what they think I need to know to get organized and create a study plan outline for myself. And then I use my evenings and weekends studying EVERYTHING on my outline, including whatever as many hands-on exercises as I need to become grounded in that technology. So when I take a certification test, it's to make sure I learned the concepts and the nuances that vendor thinks are important. But I always end up learning quite a bit of extra stuff along the way, and all of this always makes me better at what I do.
My 2 bits.
I work for a competitor of Expensify that built their system on the .NET platform. So there....
Coderz 4 Life
Expensify CEO on why he thinks Startups, startup programmers, and generally anyone in the YCombinator scene are better than you.
Most of the application is GUI and the "business logic." None of that requires those last 5% of performance; it won't even see it. But what it does require is the speed of development (there is a lot of business logic) and reliability. That means that explicitly called destructors, along with pointers that live their own life, are a bad idea. In C# you still need to be aware of the lifecycle of your objects, of course, but it's much easier than in C++ where you must employ very rigid coding standards to be sure who owns what and when the pointers to objects become invalid.
So that was about C#. The .NET, which is somewhat orthogonal to the language, is something that you practically must use if you code for Windows. And most people use Windows. I have a decent experience with Qt, but it is nowhere as good as .NET simply because it is bound by its cross-platformeness. Such simple things as saving of window size and position become complex because size of decorations differs.
Of course WPF is not easy. You need to know most of it to write anything useful. You can't start with stdio.h and later progress to io.h or something. In WPF you must know it all - or at least most of it; binding is the first and the largest obstacle that you must conquer. Once you do that, though, many things become automatic.
I don't know why knowledge of something - especially of a library that is mandatory for anyone who claims to code for Windows - might be detrimental on a resume. I would rather think that voicing such a viewpoint is telling too much about whoever said it.
Bad for startups? You mean, like Unity, who based their product on Mono, and now has a game engine stack for like 5 different platforms, including Android?
This guy is an idiot. Most *good* .NET developers I know have a strong background in C, C++, and other lower level things. Most love tools like reflector, because they *are* concerned with things like how the network stack works, or the time complexity of the built in collections. He's just pissed that those same developers can whip up simple internal tools complete with GUI and multithreading by the time his C developers figure out why libXXXX isn't linking.
Because when you've got a hairy performance problem you don't want to find out that it's because of code generated by some "easy to use" wizard.
There are no wizards in .NET, outside of the creation of a new, blank project when you ask for it. The WPF code is as KISS as possible already. Everything that you have is expressed as code - there are no hidden databases of properties that manifest themselves only at compile time. If you want you can write WPF applications in Notepad, and they will compile to exactly the same binary as an IDE would make.
I don't mind some .net stuff on a resume but if it is heavy MS technology then I would surely pass. Then again we are strictly a LAMP shop.
Got Code?
back in 2009, shortly after the economy went down the drain, i spent six months at home, benched by my resourcing agency, because people just werent hiring, never mind hiring external people. At the end of the six months, i got two possible assignments, neither of them in my field fo focus (java), but you dont tell the guy who's been paying your salary for the past six months of doing nothing, that you'd rather stay home another six months then take those jobs.
I ended up taking one of the assignments, and getting a perm contract by that company, because i didnt want to go back to sitting on the bench. I ended up with a 2 year hole in my java experience and 1.5 years of intersystems cache (search the daily wtf for "a case of the mumps" for some insight). I'd rather spend the rest of my career working in vb.net then going back to that crap.
Right now i'm back at working in java, got a job at a large company with a large java group, and i love it
People, what a bunch of bastards
Yeah, I don't know where this myth of .NET being some cookie-cutter code generator. Possibly from the fact that MS was early and successful in bringing WYSIWYG GUI development tools to the masses. Still, it's just untrue and silly. Even WF (Workflow Foundation), which is supposed to be the "drag and drop programming language", is not trivial and is far beyond the ability of an entry level programmer to develop a non-trivial application in. In addition, it still all just boils down to code - either in XML or in plain old C#.
Some of the hardest core developers you will ever meet are .NET developers, and many of them big into open source. Go tell the NHibernate guys about how cookie cutter and silly their platform of choice is. Or go tell some of the enterprise developers who make $200k a year designing scalable corporation wide applications about how lame and unused .NET is.
If I have to hear one more system admin cum Perl coder at some shitty startup pontificate to the world on how much of a failure .NET is and how nobody uses it, I'm going to vomit into my mouth...just a little bit.
Pretending .NET isn't a valid platform for many types of applications is as silly as claiming it's the perfect platform for every application.
More of the same nonsense. MacOS is 5% of the market, and holding stable, sometimes a little up, sometimes a little down. It's a silly dead end, it's funny to me you think Microsoft is losing ground there.
Mobile - you may be right. Microsoft is way behind at this point, and it's unclear if they can catch up. It's silly, however, to think that someone with their money, and occasional will, is completely out of the picture.
Apache/PGP is running a lot of sites, just not very important ones. As usual, people on Slashdot tend to frequently display that they have no idea of what's going on in the corporate world and think whatever small company they tend to work for, or their local ISP, or some shitty little hosting company they use is indicative of the real world.
And yes, limiting yourself to one platform is silly. I prefer .NET as a platform because the tools are superior and there's nothing really close for someone developing enterprise automation. But I'd go slumming and do some Java or old school C++ if I needed to.
I tend to learn programming languages/environments as i need them (and i am willing to invest my free time for that). I am not picky in that point. So in the eyes of the guy i am lucky that i did not need .net. But probably he would find other critical points (like TCL, LISP and postscript).
As far as i understand flexibility and the will to learn are now not valuable to modern companies, and as far as i understand the guy said: Sorry, if a customer asks us to develop a windows mobile client, tthen we just tell him: Sorry, we dont hire people undertsanding that for the sake of principle.
My opinion is: if there enough money/opprtunity for something then i should caclulate the expected gains vs the cost of learning what needed to do it.
That comment alone gives me the image of a clueless Dilbert-esque pointy-haired boss who has no business leading anything. Whoever is funding the start-up, needs to fire him and get someone else.
If he's going to make broad (and stupid) decisions based on something like this, he should at least be able to distinguish between a framework and a programming language. And even then, he's STILL an idiot...
'The unexamined life is not worth living' - Socrates
Some people use Windows, others Mac, some others Linux and they probably end up trashing the other bunch based on their choice. It's the same with programming and this guy. Employers have the money and they can decide how to hire people based on very subjective reasons. I remember stories of people trying to be smart-asses by asking prospective employees if they knew by asking if they knew about some random fact and discarding people who either didn't knew or didn't agree with their views. I have had to deal with companies who would discard you right away if you didn't live in the place where they do business, that is even if you tell them that you can start working the next day and are willing to relocate and cover all expenses. This in general would make you think twice about working in a place where they judge people based on a whim, but if you don't have a job, then by all means get rid of .NET in the resume you send to Expensify. That way everybody is happy and you might be on your way to land a job. When there aren't many options people have to deal with a lot of crap, including stuff like this.
I use Unity3D and program in Javascript and C#, with Mono and in the iPhone case somehow eventually Objective-C as the end target. I don't think of the few .NET frameworks that I use as any particularly revealing "choice" I'm making. It's just a tool in the chain. To prejudice against it would be like prejudicing against Windows vs Linux for Qt developers. Dandy? Like the 18th century term? Oh dear.
What you and so many others forget is that their are countless startups and only a few successful ones. What seperates the two? The latter keep costs from exploding before their is an income.
Let me put it another way. If you say you want an 800 dollar chair at your interview for a startup, should they hire you? Surely expensive chairs are part of the whole startup, vc-backed, bubble economy? Yes, the failed ones. The successful ones run linux of commodity hardware coded on cheapo chair picked up at a 2nd hand sale with the office cleaned by one of the girlfriends... oh okay... sisters.
Adapt? There is no time. Startups don't have the resources to train or re-educate people. You got to hit the ground running on bare feet with nobody sweeping the floor.
I have seen the .NET aprroach tried and they wasted several salaries on a server park complete with licenses and someone to keep track of them before they had even a proof of concept up and running. Solaris was the .NET of the last bubble. Sure, 100.000 on a couple of servers and 50.000 on an Oracle license when you haven't had a single penny of revenue. Why not and 1000 dollar chairs for everyone!
Most startup's have a fixed capital and no income until the product launches. This means ANY costs, no matter how trivial is reducing the time you have to produce a working product. And we all know software products rarely are finished on time. Even 400 bucks can be the difference between a developer having no choice but to work elsewhere or having just enough money to pay the rent to buy the startup a month to finish. I seen attempts fail simply because they no longer had the budget to ship goods to customers at a webshop launch.
What the .NET defenders just don't get is that he is not questioning their coding skills or the usefullness of the development environement but their attitude towards cost vs benefits. He is even polite enough to ask the .NET developers why they think the cost of .NET is worth the benefits.
So far not a single .NET developer has answered his question.
I think that is telling.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
It means something to the human reading the code. There's a whole class of misleading-indentation bugs that simply can't exist in python, where what the computer sees matches what the programmer sees.
I am trolling
It also happens to be a conglomeration of languages.
I must admit, I was wondering, when I read the summary, whether he meant one specific .net language, the underlying run time which shines (murkily) through all the .net languages, or the dev environment (No, don't waste your breath on that quibble, the environment is, mathematically, a language.), the implicit glue language(s) which hold the framework together, the framework, or what. I read the friendly article, and it's clear he means all the above.
I wouldn't want to work with him, I'm guessing, because my family means something to me. I'm passionate about coding, But I can hold concentration without sacrificing my sleep and my family, and I don't do arbitrarily short deadlines just to pull some VC backer's back side out of the fire.
VC is a matter of luck, not some innate virtue. I don't like to see people suffer, but market windows are, in the end, almost always self-induced mirages. The deserve what they get when they do that.
Guys who put arbitrary deadlines on schedules are precisely the sort of people who got companies like Microsoft started, and if they succeed, they tend to go down the same path toward mediocrity.
Meaningless competition is precisely the reason the world is heating up.
That said, these days, I spend more of my time coding in natural languages, and my target systems are a bit softer and wetter than the systems that run the languages either you or this David Barrett guy are talking about.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Since when is .NET a language? It's a virtual machine with associated libraries. It is mostly programmed in the language C# (which is only available for .NET, but which is not .NET; indeed I guess the only reason why it isn't available apart from .NET is that nobody considers it worthwhile to port it to another platform), but .NET programs can also be written with VisualBasic.NET (which from what I hear is quite different from previous languages named "VisualBasic" and is also exclusively compiled to .NET) or C++/CLI (which, despite the name and what MS might tell you is a separate language based on C++, not just C++ with "language bindings" to .NET). There might also be other languages targetting .NET as well.
The Tao of math: The numbers you can count are not the real numbers.
Do you mean that if you suck up enough to "successful" companies by being a good sucker and making your company dependent on their products, their success will rub onto you? YESSS! I have a great idea! From now on, you should only have dinner at McDonald's!
Contrary to the popular belief, there indeed is no God.
I would screen out someone who makes such statements without any arguments.
The CEO is not complaining about the *language* (C#, F#, MSIL, whatever), he's complaining about the *framework*. Because he is part of a startup, he wants to create something that is different to what is out there and so does not want to be constrained by the framework choices. He wants someone who can think for themselves and create solutions to problems instead of following predefined patterns without understanding what they do. Take the phone market, if you are releasing yet another Windows Mobile Phone 7 it is going to be hard to compete -- the platform constrains you. As a startup, you want differentiators to stand out from the rest.
Maybe, but it works the other way around too. Just some weeks ago I was sent some Haskell code (has the same indentation is significant philosophy as Python) but in the copy & paste the indentation had gone completely off.... there was no way I could decipher the code anymore. With most other languages you can either still read it without problems or restore (your personal favorite) indentation without any problems.
but anyone who's ever been involved in a hiring process - particularly one where there's no HR department to throw away blatantly useless applications - will know what I mean.
Hiring people is easy. Seriously, I can put out an advert tomorrow and I'll be buried in CVs (.uk doesn't use the term "resume") by the end of the week. I've seen CVs for entry-level positions advertised in the local newspaper come in from the other side of the world.
Hiring decent people - people who'll fit in with the team, people who can do the job, people who won't give up at the first hurdle but instead dig around to enhance their understanding to solve a problem, people who, when faced with what should be a simple problem (someone earlier mentioned opening a file, writing a string to it and closing it in ASP.NET) that winds up being two hours of work and 50 lines of code doesn't sit back and think "There. Done it." but instead thinks "That's ludicrous. There must be a better way...". Hiring people like this is surprisingly hard.
So when you've got one opening and a hundred CVs (which is entirely possible in the current economy) - you probably only have time for about 5-8 interviews. You develop shortcuts allowing you to eliminate candidates before you even speak to them. Some of those shortcuts will be similar no matter what company you're applying to: Advert said "Write to Mr. Brown", covering letter says "Dear Sir/Madam" - bin. If they can't be bothered to read the advert properly, they don't get an interview.
Other shortcuts - particularly if the person doing the screening has developed experience which suggests that by and large, a particular trait is a big minus point - are inevitable. It sounds like this guy has done exactly this - he's interviewed one too many people who's spent years doing nothing but business applications in Visual <Language> and can't think outside the framework that imposes.
1. you can buy cheap PCs with windows for less than $300.
2. Visual Studio Express is free.
3. previous generation books are virtually free in bargain bins.
4. If they are so cheap they cant afford windows, they cant afford to pay for the coke the stupid fuckers drink.
I have personally programmed in assembly in the old days on >2 cpus, C on >5 platforms, Guis on >4 OSs, and ofcourse tonnes of C++/JS/perl/php/.net too lately.
And you know what... its all the same shit, the same shit apis, the same buggy behaviours, the same crappy func names or struct names or error names. .Net if you're code is just too slow, you can use a C DLL , but hell 90% of all code could be written in Bash scripts with DLL calls.
At least in
and about OO? it all goes obsolete too fast to be useful really, oh yeah that lib from 1998 is so useful now, NOT. And too many change too often that its darn stupid. If you have to break compatibility , then that just prooves how show shit your code is that you didnt do it right in the first place really. Write some wrappers for god sake.
Its all the same shit, its all ascii, its all files, its all english, its all 90% loops and func calls and IFs galore.
Liberty freedom are no1, not dicks in suits.
I would have expected to find this on TheDailyWTF.com
I agree, wholeheartedly. Microsoft embraces innovation (as long as it is theirs) Like I was once told about (pre Obama) General Motors....Microsoft is a Bank that happens to sell Software. Every innovation they have was either bought, co-opted, or outright stolen from someone else. While elements of their technology do have merit, I would be content to see their cor products function without nearly daily "security updates" (truly an indicator that the cor product ins flawed). Open source is the wave of the future. Microsoft is big now, but it is a staggering giant, too encumbered by corporate infrastructure, dividends, and shareholders.
"Any sufficiently advanced technology is indistinguishable from magic." - Arthur C. Clarke
Just got a new Mac and I'm slowly re-building my dev environment on it, I need to send this CEO a note of thanks for reminding me to get Mono installed so I can play with .NET/Mono at home.
Sig is on vacation
If I had the choice I would go for Python, Java, C, C++ or a combination of those, simply because they are cross platform.
Ever heard of Mono? C# is the new Java.
He is completely unable to understand that it runs only on Windows and produces applications that only run on Windows. Both of which carry a license fee.
.NET. You don't have to use Visual Studio, you don't have to use SQL Server. You don't have to use Windows. Look, no licensing fees at all.
.NET": because it's a tool that lets us get our job done faster, with less bugs, and higher maintainability. And like any tool, sometimes it's the right tool, and sometimes it isn't.
Mono.
Again, there is no fee to use
As for "why
Alright, time for some standards: "Why do you feel that Python is so bad? What do you find wrong with it?"
Python is a fine language, except for its future.
When a language changes the fundamental way a mathematics operator works from one version to the other, you cannot invest your time working on that language.
I don't want to go carefully over all the code I ever wrote to make sure that every '/' is changed to '//' wherever I want '5/2' to mean 2 and not 2.5. I have more important things to do.
he expects applicants to be smart enough to research their prospective employers and trim their resume's appropriately, just drop the references to .NET from your resume, there is no law that says you have to list everything on a resume, and generally you shouldn't except on your master copy that gets trimmed before submitting based on the position you are applying for. cover your last 2-5 years of employers, and a "best of" from anything older than that. Bring a full employment history with you to the interview.
for skills include anything relevant to the job and anything that might be an "extra" such as knowledge of one or more foreign languages or hardware experience
Snowden and Manning are heroes.
the .NET languages (C#, F#, etc.) are some of the cleanest, most usable languages I've programmed in, and they're all integrated into one virtual machine -- which is incredibly useful. The problem with .NET languages is, as the article suggests, they hide a lot of functionality from the programmer. If I have an odd problem I want to solve in .NET, I either have to jump through hoops to implement a solution myself, or use standard .NET features in a way in which they weren't designed. That said, the features .NET languages do have are often so extensive that most problems can be solved with a couple of lines of code.
So yes, I have .NET on my resume, but I also have C, C++, Python, Ocaml, Perl, ObjectiveC and Actionscript. Is it a crime that I actually LIKE the .NET languages?
What I find interesting is that this guy is talking all about startups. The company blog goes back to 2008 though. If Expensify still is looking at themselves as a startup, maybe they're the ones who are stuck in a certain paradigm and can't get out of it. There's a difference between "startup" and small business. At a certain point you're not a startup anymore. There's the possibility that this guy is just looking to develop his product to a point he can sell the whole shebang to a huge company. He will think of his company as a "startup" until he's rid of it, and in that case, I wouldn't want to work there as a developer. It's been nearly 3 years, you are either a viable company or not, you may still be small and growing, but I feel that's different than startup. I could be totally wrong about what people mean by startup though. I worked in small business my entire life (though not "tech") and if you're around for this long I don't see how you're still starting up.
Not all life is cyber. Extra Income
And if you are an investor, what he's saying to you is that he's going to waste your money re-inventing the wheel...building things from scratch.
This. This is the crux of the argument.
We recently evaluated a software package that has a custom XML driven GUI, and a custom ORM. Their package was originally developed in the time before Microsoft released WPF and LINQ. Their architects and developers are really smart people: they saw these gaps in what Microsoft was offering at the time, and wrote layers to do exactly what they needed. Their architecture is solid. Their design and execution are solid. And we won't be buying their package.
Why not? Because they have no plans to replace their custom layers with Microsoft's technology. Everything we would do with this product we would have to struggle with funky vendor-provided tools that do almost-but-not-quite the same things that the supported Microsoft tools do. They won't be updating their not-quite-Blend tool the way Microsoft will be updating Blend. I can't go out and hire a graphics designer who has experience with their not-quite-Blend tool, but I can hire a hundred who just went to school and learned Blend.
So if this guy is really that stuck on his own staff's ability, fine, he can do that, but he's cutting himself out of a very large market.
John
My company recently outsourced all development to an Indian firm that talks a great line about .NET. That sat well with the highly-placed idiots that undertook to do this, but the results have been a disaster. Why? Because none of the stuff being outsourced was written in .NET, duh? Much as the owners of this company want to sell their souls to Microsoft, they don't have a code base that lends itself to .NET'ification. The code works, and has strengths of its own, but square peg; round hole. And by the way, these outsourcers are not particularly good programmers in the first place. Nor are they good at (or even encouraged in) thinking creatively. And this is one of the biggest outsourcing outfits.
So, sure, if you've got VB code you want to 'modernize', .NET's probably the best route. If you have anything else, .NET expertise is mostly irrelevant, and to the extent that .NET promises management the ability to clone coding drones at will and move them among different projects as needed, the dynamic of buying into that 'promise' is IMO a recipe for failure. At our company, they're already talking about throwing away the existing code base and starting over in .NET. Not because it's a good idea, but because they've dug a hole with no other exit. Better to survive a few more years dangling the prospect of a shiny new .NET app in front of the investors. Never mind that the (huge, vertical market) app will never materialize in time to be relevant in the market.
Posted from my Android phone. Oh, I can change this? There, that's better...
Please note that he doesn't actually give a list of what he can't do with .NET.
I think the lesson to learn here is that writing blog posts like this when you are looking for programmers is a rookie mistake. I suppose thats why they call it a start up.
I was crazy back when being crazy really meant something. (Charles Manson)
Seriously. It's no more restrictive than any other framework I've used, and in some cases it's better since functions for instance expect a String object rather than a QtString and so you don't have to write an explicit conversion between the two back and forth. Is that a large issue? not really, it's a mild annoyance at worst, it's just I can't think of any where .NET is the more restrictive one so unless he's railing against any and all frameworks (naming him candidate for idiot of the year), this is merely anti-Microsoft zealotry, plain and simple.
No problem is insoluble in all conceivable circumstances.
All his diatribe says is that the Expensify CEO is a pointy haired boss who reasons by McDonalds analogies. Given Expensify's dull and obvious product (useful though it is), perhaps that shouldn't be surprising.
sorry that you think that, mightbe that I’m just a slow learner, I never did enough work in the MS environment to get the hang of it. Somebody else said it much better that i can : .NET lets you make stuff even when you are an horrid programmer.
I might be such a horrid programmer, but it never bothered me, or the functioning when I was using Delphi, and as the stuff still works....
but what am I arguing an abusive AC for ?
95% of technology startups are really just service organizations with the false belief that they need to invent knew technology to be successful. Sadly, most of these firms will high low level "engineers" to build essentially a website with application like features. Those engineers, working with a focus on either 1) recoding something they did previously but so horribly they were fired for it 2) select technologies and solutions which will improve their marketability at the expense or producing a usable site 3) solve scaling/performance technical issues their employer may never see, 4) ignore massive quantity of quality third party open source projects / solutions / toolkits / services because they only see the coding effort and wholly ignore operations/testing/code maintenance. Although my education was in C on Unix, I find developing marketable, scalable, significant products on Microsoft .NET, when accounting for the cost of engineering, operations, licensing, maintenance (on shore and off) favors .NET when the organization / staff is primarily Microsoft centric. (Duh).
We used to say ... it's faster to go from 0 to 60 with Microsoft, but if you want to get to 100, you need to be on *nix. I still believe it's true. But that said, 95% of the shops out there won't ever need to go 60 mph ...
GM
Sorry, i seem to have given the wrong impression. The trap part is to lock developers and by extension users into the Windows environment. Someone else said it better: You can get away with some horrid stuff in .NET and it still looks like you made a nice program.
It comes with the my nephew made our website kind of thinking. Programming, like all other creative processes, is part skill, part Art. The tools can sometimes hide or compensate a lack of skill. But at the end it comes down to the Art.
For some reason I can not get my head fully around Microsofts programming platform. I like the small tools approach, creating independent (more monolithic) stuff that rests only on the Win32 API. This approach makes it work for all Win32 platforms. The stuff i made from scratch with .NET are not working any more, but my old Delphi stuff is still going.
It sounds like this twits beef with .NET is that it dumbs down Windows programming.
.NET.
.NET would be a bad language to choose. However, I doubt that. The vast majority of app development is mainstream stuff to run on the mainstream platform. And that's going to be way more than 50%.
He'd be right about that. Here's the real newsflash: 50% of all programmers are below average. If you need to think twice about that statement, you're one of them.
For the programmers who are not the elite, they can produce reasonably high quality Windows apps very fast and very cheap using
Now, you may be building a cooling control system for a nuclear reactor, and
So, expensify can go off and hire the 'very expensive' coders who are 'very skilled', and pay them lots of money, and charge their customers lots of money for the privilege. And assuming that those are the contracts he wants, Expensify's CEO is doing the right thing to get them.
If those are not the contracts he's chasing, well then, he's probably just demonstrated that he's in the bottom 50%.
I do .NET because that was the natural extension of classic ASP, which everything was done in at my first programming job.
Technoli
This guy doesn't need the "best programmers in the world". He's doing a feature-heavy payment card system that integrates with business expense reports. That's nice for people who travel too much, but it's not rocket science.
He's not doing cutting-edge technology, like machine learning, or autonomous robotics, or game engines for really big seamless shared worlds with intelligent NPCs, or modern high-end CAD. He needs competent people, but not people who are breaking new ground.
For what he's doing, ".NET" might not be a bad choice. They might have launched sooner.
Not because he may be wrong about .Net developers, but because its not his job to determine the best qualified software developers in his company. Its his CIO/COO's job to determine what kind of software developers the company should acquire. Do you want your CEO picking the programmers he's never going to supervise or interact with? Or focusing on getting investment capital and increasing the value of the company?
In any case, a trivial issue. Less .Net programmers for his startup, more .Net programmers for companies that care more about the quality of the employee.
There is no America. There is no democracy. There is only IBM and AT&T and DuPont, Dow, General Electric, and Exxon
He wants someone who can think for themselves and create solutions to problems instead of following predefined patterns without understanding what they do.
PHP programmers are exactly what he needs.
Karma: Poor (Mostly affected by lame karma-joke sigs)
Who the fuck are Expensify? What, if any, notable things have they accomplished?
Judging by your tone, I'm guessing that you don't actually want to know the answer, but Expensify is a browser-based expense reporting workflow tool. It allows employees to create expense reports easily from their credit card statements, and it keeps track of receipts. Employees can submit these expense reports electronically and managers approve electronically.
Optionally, the suite can even hook into quickbooks to save on data entry, and into paypal to pay the reimbursement.
For small business owners like myself, it's actually a pretty slick product (I use it at my company, if you couldn't tell). Employees like the ease of use, and I like that I can easily locate, approve, print out, etc., any expense report at any time, complete with receipts. If the IRS comes a-knockin' to do an audit, I can hand them a well-organized stack of reports with expenses, categories, and receipts.
There are other similar products out there, but this one seems to do what I want it to do and it's not too expensive.
They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
"But choosing .NET is a choice, and whenever anybody does it, I can't help but ask "why?"
Of course its a choice, but whose? Not all companies think to ask every developer which language they'd like to build a project in... sometimes you have to work with an established codebase. And if you do manage to make a silk purse out of that sows ear, don't you deserve extra credit for that?
I don't blame the guy for asking why, but you kinda hope that he's listening to the answer, instead of just writing the candidate off.
choosing .NET is a choice
I beg to differ! .net. Later, after graduating from grad school, the only reason I was hired was because of my previous experience with .net. And guess what! They wanted me to do more .net stuff. I did not get to choose to use Python or Ruby or C.
When I was looking for a summer internship after my second year at uni I did not get to choose where I would work or what development environment I would use. If I wanted to work I had to use
and the 'cdo managers' and banking industry types who profited from all the securitization of the mortgages.
in EConned, as well as The Big Short, a CDO manager is basically described as essentially '[two guys with a bloomberg terminal]'. i.e. they dont really contribute much to the 'product', they are basically just there to sit on a pile of money for appearances sake.
nowdays in China they have 'rent a white guy' businesses.
this sort of thing was going on all over the higher echelons of the financial industry.
in other words... when you get above a certain level in the financial food chain, the tech bubble of late 90's was "just another bubble" that the finance gurus could ride the wave of, like riding the surf.
in "Devil Take the Hindmost" you can even find predecessors of this type of behavior, back to the 1600s, tulip-o-mania, the south-seas bubble, the patent business bubble, etc etc.
1. A Colossal Failure of Common Sense, Larry McDonald
2. The Sellout, Charles Gasparino
3. The Zeroes, Randall Lane
4. Running Money, Andy Kessler
5. And Then the Roof Caved In, David Faber
6. House of Cards, William D Cohan
7. Too Big to Fail, Andrew Ross Sorkin
8. On the Brink, Henry Paulson
9. Confidence Game, Christine S Richard
10. Structured Finance and Collateralized Debt Obligations, Janet Tavakoli
11. The Big Short, Michael Lewis
12. EConned, Yves Smith
13. Devil's Casino, Vicky Ward
14. Street Fighters, Kate Kelly
15. When Genius Failed, Roger Lowenstein
16. Devil take the Hindmost, Edward Chancellor
17. Crash of the Titans, Stephen Ferrell
18. Age of Turbulence, Alan Greenspan
19. In Fed We Trust, David Wessel
20. Diary of a Very Bad Year, by Anonymous Hedge Fund Manager & Keith Gessen
21. Blood on the Street, Charles Gasparino
22. The Two Trillion Dollar Meltdown, Charles R Morris
23. various articles in the WSJ by Carrick Mollenkamp, Serena Ng, etc
24. NYTimes, Louise Story and Gretchen Morgenstern
25. the ProPublica article on Magnetar Capital
26. Fool's Gold, by Gillian Tett (saved the best for last, perhaps)
etc etc etc.
i.e. i do not believe that i have necessarily made anything up or exagerated my points from the actual events of the past 10-20 years in high finance, please respond with specific complaints about my writing if you have a concern that i have misstated something. thank you.
i realize i tend to wander and ramble and meander with crazy talk sometimes, but i try very hard to stick to reality and not go off and have a chalkboard moment. oh well.
I was being completely serious. He's the only person on TV who pays for a small staff to really dig into and uncover and expose what the commies in America and the world are up to. It's an invaluable service and there needs to be one about the hyper-capitalists as well, as they're just as damaging.
I can take the data presented by a source without necessarily accepting the presenter's spin. Standing where I stand, I would prolly take less of your opinion than I do his, but I would take the set of (necessarily selective) evidence presented on your topic under just as serious consideration.
I wish there were "boring" facts and history TV show hosts with obsessions for bringing to light Islamic fascism, and Climate Change, and anything else that might be a *significant* threat to the American middle class way of life.
Attention zealots and haters: 00100 00100