Slashdot Mirror


Why Apple and Google Made Their Own Programming Languages

Gamoid writes: This Business Insider article looks into the state of Google Go and Apple Swift, highlighting what the two languages have in common — and why tech companies would bother involving themselves in the programming language holy wars. From the article: "One fringe benefit for Google and Apple is that making your own programming language makes recruitment easier — for instance, since it builds a lot of its own server applications in Go, Google is more likely to hire a developer who's already proficient in the language since she would need less training."

155 of 260 comments (clear)

  1. Huh? by Anonymous Coward · · Score: 1

    So... how does creating another programming language help recruitment?

    1. Re:Huh? by istartedi · · Score: 5, Insightful

      It weeds out the people who aren't fan-boy enough to become proficient in your proprietary language before you even interview them. TFA cites a lot of other reasons they wrote these languages. This one got crab-apple picked for some reason.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    2. Re:Huh? by Grishnakh · · Score: 4, Insightful

      Exactly, this doesn't make sense at all for recruiting, it's actually backwards: using your own programming language makes it far more difficult to recruit, because very few people from outside your organization will have any expertise in the language.

    3. Re:Huh? by istartedi · · Score: 4, Insightful

      But they don't have a shortage of applicants. They actually want to narrow the field. If that were not the case, Google wouldn't have had (perhaps they still do) such a notoriously difficult interview process.

      Economies of scale are critical here. Only a handful of companies are that big, and that desirable as places to work. So for these behemoths the usual logic is inverted. For them, narrowing the field really does "help recruitment"--the semantics of that phrase are inverted when dealing with relativistic money.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    4. Re:Huh? by MillionthMonkey · · Score: 4, Insightful

      OTOH, it's easier to retain employees who only know "your" language.

    5. Re:Huh? by g01d4 · · Score: 1

      using your own programming language makes it far more difficult to recruit

      That's somewhat the point. I'd guess that these companies are swamped with more job applications per opening than they'd like. This way, as suggested above, they cull the fanboi wheat from the chaff. Can't blame the companies giving preference to someone willing to learn their in-house language on their own.

    6. Re:Huh? by konohitowa · · Score: 1

      This one got crab-apple picked for some reason.

      Most likely as an excuse to toss in "she" to help enlighten the sausage-fest here...

    7. Re:Huh? by meerling · · Score: 1

      Only in the aspect that you have a whole lot LESS applicants to interview.
      On the other hand, there are a LOT of far more capable programmers out there that are excluded because they haven't wasted time learning your internal language that's pretty much only applicable if you already work for them.

      In other news, NASA has developed a new language this year to make communicating with Martians easier. If you'd like to submit an application, please be aware that they require fluency in their new language along with 6 years usage with actual Martians. :P

    8. Re:Huh? by srmalloy · · Score: 1

      Exactly, this doesn't make sense at all for recruiting, it's actually backwards: using your own programming language makes it far more difficult to recruit, because very few people from outside your organization will have any expertise in the language.

      And it's made even more difficult by the industry-standard HR practice of, a year after the language is developed, advertising for entry-level programming positions where the candidates have to have five years experience with the language.

    9. Re: Huh? by Anonymous Coward · · Score: 5, Insightful

      Plenty. All of your criteria have little to do with the language and much more to do with the developer. Any properly defined/debugged program is "safe". Any properly optimized program is "performant". "Clear" is just about source code, which means that it's entirely up to the developer.

      ISO 9899:2011.
      ISO 14882:2014E.
      ECMA 334.

      Swift is a "lookalike" to all of these in several ways, especially as that list goes on. The list of languages that aren't ancestral to Swift but that have standards could go on for quite a while longer.

    10. Re:Huh? by jrumney · · Score: 3, Insightful

      It reduces the pool of resumes that you have to sort through into just previous employees and liars. Since you know that the previous employees are either no good or have a grudge against the company, you can filter them out and hire the rest for sales.

    11. Re:Huh? by Jeeeb · · Score: 4, Insightful

      Economies of scale are critical here. Only a handful of companies are that big, and that desirable as places to work. So for these behemoths the usual logic is inverted. For them, narrowing the field really does "help recruitment"--the semantics of that phrase are inverted when dealing with relativistic money.

      A filter is only useful though if it removes the bad applicants and leaves the good applicants. Filtering by language (/framework) although common is also a very good way to exclude a significant amount of programming talent on the basis that you don't want to give them a few weeks to get productive in your pet language/framework. I've never interviewed (or applied) at either but both Google and Apple seem to have more farsighted hiring practices than that.

    12. Re:Huh? by Noah+Haders · · Score: 2

      *fewer

    13. Re:Huh? by Grishnakh · · Score: 1

      The problem with this, as I see it, is that I don't think you're necessarily as likely to get quality people, in fact you may very well get worse people because they're sycophants/fanboys. An organization should do better with employees with more diverse opinions, not a bunch of yes-men.

      And considering the lack of quality we've seen in a lot of the products from Apple, Google, and MS over the years, I think my opinion has merit here. Google, for instance, used to be famous for great products, but in more recent years it seems like they've been flagging a lot. Apple too; their stuff used to "just work" but now all I hear from the iDevice owners is how many problems they're having. Just hiring a bunch of fanboys seems like it might have that effect.

    14. Re: Huh? by rjstanford · · Score: 2

      If you won't acknowledge that the language can guide users to make the correct choices then I think you're missing the point. By your definition ASM is safe and clear. Personally I prefer to have projects coded in a language that encourages expressiveness and convention, but that's mainly because most of my time is spent on systems that are designed to live for 15-20 years. Reducing or eliminating maintenance time is more valuable to me than pure wire-level performance. Others may have different trade-offs. You should know your project's goals and choose accordingly.

      --
      You're special forces then? That's great! I just love your olympics!
    15. Re: Huh? by Pseudonym · · Score: 1

      Is there an industry standard language out there that does the same thing as Swift (is safe, performant, and clear)?

      The fact that your sig is written in Haskell strongly suggests that you already know the answer to that question. And yes, I'm well aware that the previous sentence is highly ambiguous.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    16. Re: Huh? by Pseudonym · · Score: 1

      [...] that's mainly because most of my time is spent on systems that are designed to live for 15-20 years.

      I would have thought that was an excellent reason not to roll your own language.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    17. Re:Huh? by robcozzens · · Score: 1

      They must have meant *releasing to the public* their internal programming language helps with recruiting.

    18. Re:Huh? by farble1670 · · Score: 1

      For them, narrowing the field really does "help recruitment"

      define "help recruitment". if you think it means picking some arbitrary skill that has no bearing on a candidate's ability to perform in the workplace, then yeah i agree it helps.

    19. Re:Huh? by Pherdnut · · Score: 1

      You're assuming they're smart and reasonable. They are a large organization. They have smart and reasonable people here and there I'm sure but as an entity they are no longer either of those. The people calling the shots want their problems solved. They don't care about getting them solved well. They just want their to-do items crossed off.

    20. Re:Huh? by StikyPad · · Score: 1

      I wish that were true, but "less" is used interchangeably and, in language, common use trumps abstract rules. It's not entirely incorrect either -- less has been used with countables for as long as modern English has existed, and only later did someone try to create a distinction.

      http://itre.cis.upenn.edu/~myl...

    21. Re:Huh? by Noah+Haders · · Score: 1

      It is not used interchangeably. In informed debate, the proper usage dwarfs the improper usage. I'm merely doing my part to keep /. a place for informed debate :)

    22. Re:Huh? by StikyPad · · Score: 1

      Haha. :) Well then, this irony shan't be lost on you: "...the now-standard pedantry about less/fewer is in fact one of the many false 'rules' that have recently precipitated out of the over-saturated solution of linguistic ignorance where most usage advice is brewed."

      "As far as we have been able to discover, the received rule originated in 1770 as a comment on less:

      This Word is most commonly used in speaking of a Number; where I shoudl think Fewer would do better. No Fewer than a Hundred appears to me not only more elegant than No less than a Hundred, but strictly proper. --Baker 1770

      Baker's remarks about fewer express clearly and modestly -- "I should think," "appears to me" -- his own taste and preference. [...]"

      The OED shows that less has been used of countables since the time of King Alfred the Great -- he used it that way in one of his own translations from Latin -- more than a thousand years ago (in about 888). So essentially less has been used of countables in English for just about as long as there has been a written English language. After about 900 years Robert Baker opined that fewer might be more elegant and proper. Almost every usage writer since Baker has followed Baker's lead, and generations of English teachers have swelled the chorus. The result seems to be a fairly large number of people who now believe less used of countables to be wrong, though its standardness is easily demonstrated.

      (Quotes from the article previously linked.)

  2. Because CS by Carewolf · · Score: 1

    Because they studied Computer Science. If it was easier to do, we would also have people making new CPU architectures and operating systems, just because.

  3. Because they're scared of standards based web apps by Boss,+Pointy+Haired · · Score: 1

    being the future?

  4. Re:That last sentence makes no sense by should_be_linear · · Score: 4, Funny

    That sentence is actually valid in Brainfuck language.

    --
    839*929
  5. BI == Business Idiots by sribe · · Score: 4, Insightful

    Really. That last sentence proves it. They have no fucking idea what different languages are good for, or not.

    1. Re:BI == Business Idiots by TheRaven64 · · Score: 5, Interesting

      Right. Apple created Swift because Objective-C was a nice language for the requirements of '90s computing, but is starting to be limited by its C heritage. They needed a more modern language that interoperates very well with Objective-C (because they have a lot of legacy Objective-C code that isn't going away any time soon) and this required making a new language because there weren't any good contenders available. MacRuby is the closest, but falls short in a number of areas.

      Google didn't create Go as the result of some corporate masterplan, a small team at Google created it and managed to get buy-in from some other groups at Google. It's still far from the most widely used language for new projects inside Google, but it does have some advantages (though is slightly let down by Rob Pike's refusal to accept that some people who are not Rob Pike have had good ideas in the last 30 years).

      The recruiting thing can't really work. It would only really make sense if people would learn a cool language and then discover that there are very few places where they can work and use it. This is sort-of true for something like Erlang or Smalltalk, but Swift is fairly widely used by people developing for iOS and OS X (and would probably not be worth Apple's effort in developing it if it weren't). If the language is successful enough that enough people are learning it to significantly affect the pool of potential applicants for a company the size of Apple or Google, then enough other companies are likely to be using it that it isn't a significant benefit.

      --
      I am TheRaven on Soylent News
    2. Re: BI == Business Idiots by Aighearach · · Score: 2

      If you're targeting C++/Java developers with a new language, then if you're successful you do indeed get less interest over time from that group. Those who agreed left and joined you; those that stayed will like your offering less than average; the remaining non-converts become less receptive to you over time. This is true even assuming nobody ever changes their opinion; they either liked the new thing when they saw it, or not.

      The case where interest "increases" is where they are saying, "awwww, how cute... but don't expect me to use it." They don't hate it, they're willing to talk reasonably about the shortcomings, but they're also probably never go to use it seriously. These people can be persuaded to agree it is less bad after making changes to be more like them, but they're not going to actually switch anyways.

      You don't do much better on your technical complaints. Are exceptions a thing that is the same between languages now? No? No. The semantics are often quite different. You can't just assume it works the same in a new language as the old one. It is not predictable based on the naming. You have re-learn and memorize the semantics for every language. Naming a new set of semantics something different, that isn't already overloaded, increases jargon quality within their language, both for new people, and for people who use multiple languages. And it doesn't change the amount you have to learn; the familiar language doesn't mean you can skip parts because you know how it works in another language.

      As for user-defined types, that is a specific feature that has advantages and disadvantages either way. There are real reasons to make the choices they did for the niche their language intends to serve. You don't attempt to make any case that their choice is somehow undesirable for that niche.

      You really seem to not understand coding practices. Things like DRY, as an old-timer I can say yeah, I don't understand it either. We already had the teaching that code re-use is good. DRY just seems to take the lesson, adopt a pithy cliche phrasing of it, and then throw out the actual lessons and substitute a rule of thumb. Do you always want to avoid repetition? No, only the vast majority of the time. There are times when it is bad. How would a youngster who only grew up with DRY reconcile that? There is no provision in the way it is taught to determine when it is applicable. Easy to remember, sure. But if you can't remember you want to maximize code re-use, cliches aren't going to save you. The only way to use these sorts of modern ideas is to ignore them whenever they don't look useful, which actually means you can ignore them before you start, and just follow traditional best practices instead. Those will lead you to ask how much code re-use you want, and then implement it. Usually that prevent repetition, except where it wasn't desired. ;)

    3. Re: BI == Business Idiots by Anonymous Coward · · Score: 3, Interesting

      Pike being a dick about what GO is, is analogous to Torvalds being the kernels gate keeper.

      And if Pike had the general credibility and design sense of Torvalds then there'd be no issue, of course. In fairness, Torvalds' job is easier because cloning a UNIX kernel is the least interesting design space imaginable: you just do what was done before, but better. Designing a new language is harder.

      Still, the problem remains, that Pike is no Torvalds. Yes he did some good stuff a long time ago. But Go sucks.

      Go sucks because (in no real order)

      1. There is no debugger that is worth a damn. GDB is barely functional. Pike's view is that this is unlikely to ever change because gdb would need to understand the Go runtime and the Go guys don't seem to be building their own debugger.

      2. The compiler is only fast because it doesn't do a lot of things modern compilers are expected to do.

      3. You can't write generic code, but because this is such a stupid limitation, the built in functions are generic. So you can write them as long as you are Rob Pike, essentially.

      4. Go code doesn't use exceptions. It uses error codes instead. This makes lots of code into a giant clusterfuck of "if err != nil" type checks that nest horribly, are incredibly verbose, are easy to miss out and which destroy any chance of getting useful stack traces when something goes wrong.

      5. Go does not seem to know who it is for. Pike has claimed Google needs it because Googlers are idiots who "are not capable of understanding a brilliant language". No shit he really said this - I guess that didn't do much for his popularity inside the googleplex. Originally he said it was a "systems language" and then tried to retcon it as "by systems we mean web servers at Google", a definition of systems that nobody else uses.

      6. Go has no versioning system: you import packages by referring to github paths and it just grabs whatever is at git master (ya rly)

      7. CPU profiling is a joke. It doesn't work at all on MacOS.

      8. It's basically reinventing Java and the JVM but very slowly, and whilst loudly proclaiming it's totes different because static linking! Except now they're adding dynamic linking too.

      9. The GC is a decade or so behind the cutting edge

      10. The Go Gopher is creepy

    4. Re: BI == Business Idiots by Anonymous Coward · · Score: 1

      i was interested in this post until i saw this one

      5. Go does not seem to know who it is for. Pike has claimed Google needs it because Googlers are idiots who "are not capable of understanding a brilliant language". No shit he really said this - I guess that didn't do much for his popularity inside the googleplex. Originally he said it was a "systems language" and then tried to retcon it as "by systems we mean web servers at Google", a definition of systems that nobody else uses.

      sorry, [citation needed]. and this one is simply incorrect about jvm

      8. It's basically reinventing Java and the JVM but very slowly, and whilst loudly proclaiming it's totes different because static linking! Except now they're adding dynamic linking too.

      since there is no virtual machine abstraction at all.

    5. Re: BI == Business Idiots by zbobet2012 · · Score: 3
      Man how did an AC manage to get this posted upvoted?

      1. There is a custom debugger for go: https://github.com/derekparker.... Also worrying this much about debuggers is kind of sad, what will happen when you literally can't use one or it doesn't help? Oh you have never done embedded or distributed work I see.

      2. Nope (also [citation needed]). The go compiler is fast because it doesn't use modules/header files. See the C++ working group on the subject to understand why it is so slow: http://llvm.org/devmtg/2012-11...

      3. "Built in functions". The built in "generics" are not functions, they are data types. And no you probably don't need them.

      4. I'm sorry you don't catch your exceptions. Your coworkers are too.

      5. A definition of systems that tons of people use.

      6. Godeps. Or like 30 other ones. Java and C++ don't come with a version system either, but you probably assumed Maven was part of the core. 7. Guys CPU profiling for a server side language doesn't work on OSX (except it does).

      8. Go doesn't have a virtual (byte code interpreted) runtime, so its nothing like the JVM. And yes every language has a runtime. I mean literally what?

      9. Nothing of value here folks.

      10. Or here.

      There are things wrong with Go, but none of these are them. In fact this post shows such a stunning lack of understanding about programming languages it worries me.

    6. Re: BI == Business Idiots by OrangeTide · · Score: 2, Insightful

      There are things wrong with Go, but none of these are them. In fact this post shows such a stunning lack of understanding about programming languages it worries me.

      Sadly, this is typical in the industry.

      I'm a C kernel guy who has to wrestle with a lot of application developers who assume I don't know anything about "the cutting edge" because C lacks pretty much every feature they claim to depend upon.

      I embraced Go recently, but I got there through Erlang. so my idea on what it's really good at and how to use it is going to be different than someone who is trying to use Go as a replacement for Java or Python.

      --
      “Common sense is not so common.” — Voltaire
    7. Re: BI == Business Idiots by TheRaven64 · · Score: 1

      Nope (also [citation needed]). The go compiler is fast because it doesn't use modules/header files.

      There are three compilers for Go, one based on the Plan 9 stuff, one a GCC front end, and one an LLVM front end. True, none of them use header files, but this is really something that doesn't affect C-family languages if you use precompiled headers. The Plan 9 implementation is fast because it does a tiny subset of the optimisations that GCC or LLVM would do.

      The GCC and LLVM-based compilers are have similar compile-time performance to C or Objective-C. They're only faster in comparison to C++ because they don't do any compile-time specialisation (which, by the way, something like a .NET CLR or JVM will do in the JIT, but which Go never does). In C++, you pay a price in compile time for better run time[1] if you use templates or pay it at run time if you use virtual functions, in Go you pay the price at run time and have no alternative. Unless you're the person implementing the generic Map type (though the Map can't be usefully parameterised, so you often end up paying it as a user of this type too).

      Go does a lot of nice things (channels, interfaces, and so on), but it is frustrating when a new language includes problems that other languages fixed decades ago. Share via communicating is a sensible pattern, but a new language for parallelism that doesn't make it trivial to enforce shared xor mutable is embarrassing. Erlang had this right from the start and Pony does it in a very nice way.

      [1] Unless you end up blowing away your i-cache. It's true that a lot of C++ programmers will overuse templates and end up sacrificing compile time for no measurable run-time benefit, but at least when you actually want to retain most of the source flexibility of dynamic dispatch without the run-time overhead then you can.

      --
      I am TheRaven on Soylent News
    8. Re: BI == Business Idiots by Pseudonym · · Score: 1

      Still, the problem remains, that Pike is no Torvalds.

      Well, they've both had only two truly brilliant ideas in their respective careers and both have severe attitude problems. The only substantive difference between the two is that Pike is older, so his brilliance per unit time rating is lower.

      Don't worry, Linus' day will come.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    9. Re: BI == Business Idiots by zbobet2012 · · Score: 1

      There are three compilers for Go, one based on the Plan 9 stuff, one a GCC front end, and one an LLVM front end. True, none of them use header files, but this is really something that doesn't affect C-family languages if you use precompiled headers. The Plan 9 implementation is fast because it does a tiny subset of the optimisations that GCC or LLVM would do.

      This really isn't true. Watch the video I linked. Despite your claim today gccgo is slower than gc in compiled performance. Indeed Go 1.4 has begun to approach Java in microbenchmarks. Most of the C++ slowness comes from the amount of data the compiler has to process due to header files. The reason for this slowness is a well known thing. Try GCC's precompiled headers and be blown away by the difference.

      As far as mutability goes, it is extremely easy to enforce... just use an interface. I mean being a clojure programmer I understand your objection, but its never really seemed that much of a problem to me.

  6. Re:Multiplatform is king - and Go is multiplatform by ncw · · Score: 5, Informative

    From wikipedia

    Go's "gc" compiler targets the Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, Plan 9, and Microsoft Windows operating systems and the i386, amd64, ARM and IBM POWER processor architectures/ A second compiler, gccgo, is a GCC frontend.

    So there are two major compilers for Go already, one of which is gcc based which targets just about every platform under the sun. I'm not saying go will run everywhere gcc will compile code because the runtime also needs porting, but it is very cross platform.

    I developed one of my command line apps in Go http://rclone.org/ and I release binaries for it which run on Windows, OS X, Linux, *BSD and even Plan 9 all cross compiled from my Linux workstation.

    --
    Every man for himself, all in favour say "I"
  7. Review of TFA by Matchstick · · Score: 4, Insightful

    This is a bad article; and the submitter, editor, and readers should all feel bad.

    1. Re:Review of TFA by Afty0r · · Score: 1

      I was coming here to post exactly this. It is badly-written, ill-thought-out and generally just incorrect. Even a little critical thinking would have prevented this tripe from ever seeing the light of day.

    2. Re:Review of TFA by Tablizer · · Score: 1

      I can picture you as a boss whacking your employees with a rolled-up newspaper: "Bad employee, bad bad bad employee!"

  8. Re:Multiplatform is king by Octorian · · Score: 1

    And Apple's been doing this for longer. Even though Objective-C is technically not a platform-exclusive language, it currently is for all practical purposes. That's why I never bothered to spend any time learning it.

    I have done C#, but only when someone was paying me to do it. Haven't really done it on my own time. (Even if it is also technically cross-platform, its still 99% a Microsoft-universe language. At least its similar enough to other languages that it wasn't much trouble to pick up.)

    Given the choice, its generally been C, C++, or Java. My selection between those tends to depend more on the application/platform that arbitrary preference.

  9. Clueless by u19925 · · Score: 1

    "Google is more likely to hire a developer who's already proficient in the language since she would need less training."

    This is the worst argument I have ever seen and is a total recipe of disaster. Imagine MS only hiring VB people, Oracle hiring PL/SQL and SAP hiring ADABAS and IBM hiring FORTRAN/COBOL people, where would they be today?

    1. Re:Clueless by vux984 · · Score: 2

      Its not even logical. If the goal is to hire developers who need the least language training, having your own in-house language is the worst way to go. Clearly google and apple should pick the most popular language if that's what they want.

      On the other hand, an in house language probably reduces developer mobility -- they can't go to work for another company if they don't work with common languages.

    2. Re:Clueless by CustomSolvers2 · · Score: 1

      Fully agree. Additionally, what kind of programmers could you force to use your framework? Any experienced enough developer wouldn't accept such a thing. When companies want to attract programmers, they create a similar-enough language with some additional features (e.g., what the .NET Framework did with C# for C-based programmers; and with Visual C++). Big companies create their own (different-enough) languages for other reasons and always by bearing in mind that convincing programmers to use the new language will be the most problematic part.

      --
      Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
    3. Re:Clueless by Anonymous Coward · · Score: 1

      Because learning and using an in-house language means you don't know anything else??

      WTF

      There are some seriously idiotic morons on /. these days.

      If I am hiring for a Java job, I don't look for Java programmers.

      If I am hiring for a Ruby job, I don't look for Ruby programmers

      etc etc

      I look for properly-educated, highly-skilled polyglots. If someone only knows one or two languages, they really aren't a programmer, they are API monkeys and not worth hiring

    4. Re:Clueless by jonhorvath · · Score: 1

      In my experience, it goes like this

      If I am hiring for a Java job, I'll prefer a developer who has Java experience.

      If I am hiring for a Ruby job, I'll prefer a developer who has Ruby experience.

      Not having experience in the company's standard program language is a handicap during the interview process.

    5. Re:Clueless by vux984 · · Score: 1

      Because learning and using an in-house language means you don't know anything else??

      What are you on about? Nobody said that.

      There are some seriously idiotic morons on /. these days.

      One only has to look in a mirror right?

      If someone only knows one or two languages, they really aren't a programmer, they are API monkeys and not worth hiring

      Yes, its hard to really be a programmer and only have exposure know one or two languages; but its not hard at all to be a programmer who only professionally works with one or two on a daily basis at their current job. And while the general programming skills that separate good programmers from code monkeys are entirely transferable to any language the deep language and API knowledge that comes from working with a given language is invaluable too.

      I look for properly-educated, highly-skilled polyglots.

      Nobody looks for 'code monkeys'.

      But what you really want is a "properly-educated, highly-skilled polyglot" PLUS 5+ years experience doing professional development in the languages and tools your company uses. And you want to pay them code-monkey wages yet have them be totally committed and loyal; happy and productive.

      If they have perfect health, a charming personality, and can ride a non-polluting unicorn to work even better.

      Meanwhile, in reality, you look for the best person for the job from a continuum of applicants and balance your requirements and budget against their skills and wage expectations. And if your looking for a team of programmers for a java project, you'll probably hire someone who is adequately educated, adequately well rounded, who has a solid grasp of programming in general, who has several years Java experience, where you can match your budget to their expectations.

      You might hire ONE highly educated polyglot with extensive experience in 5 fields, who knows 14 programming languages, even though he's never worked with Java because you think he'll be a valuable addition to the team due to his other skills. But he's going to cost a bundle so may you won't. And there is no way in hell you'll hire 10 of them to work on a java project.

      There are LOTS of educated well rounded competent and professional java programmers out there.

  10. Re:Multiplatform is king by CastrTroy · · Score: 1

    There's already solutions like Xamarin that get C# working on quite a few platforms, and Microsoft is pushing to make it work on all platforms as well. I hope they guan get visual studio working on other platforms and make something that allows me to write code once and have it run anywhere, even if I have to tweak the UI for different platforms. C#, Visual Studio, and the .Net runtime is one of the best programming environments there is. Windows app development is so much less painful than Android. If they can make C# easy to run across all devices, they'll attract a lot of developers and (as I'm sure is their plan), bring a lot more apps to the Windows desktop and phone app stores.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  11. Because no one else does by Alomex · · Score: 4, Interesting

    The reason why companies develop new languages is because the ones coming from academia are focused on the wrong things. Product development requires an industrial strength, strongly typed (for the most part) fast language.

    Projects coming from academia are interpreted, JVM based, functional, obsessed with (im)mutability, closures, and lambda functions.

    This is not to say those things are not nice, however they are not central to a programming language as used in large scale industrial systems.

    1. Re:Because no one else does by DetriusXii · · Score: 1

      What programming language features are essential to a large scale industrial system?

    2. Re:Because no one else does by Rockoon · · Score: 1

      ADA

      --
      "His name was James Damore."
    3. Re:Because no one else does by Wrath0fb0b · · Score: 2

      Closures and lambdas are definitely compatible with strongly typed performant code. C++11 has both and is still very performant (std::function is lightweight enough to toss around, doubly so with reference/move semantics) and as an added bonus with C++14's "auto-goes-everywhere" you get output that's strongly typed without the hassle of naming it. Purists can still opt to explicitly type everything if they prefer of course.

      Similarly, Apple's block extension to C has all of those and is still reasonably performant. Their implementation is a bit slower (all variables captured are ref-counted on the heap) but still very reasonable. Function-objects themselves need to be manually managed/copied around, but that's the legacy of C shining through...

      Totally agree about VMs and the obsession with functional languages though :-)

    4. Re:Because no one else does by radish · · Score: 4, Interesting

      As someone who works on such large scale systems, I disagree. When you need to deal with extremely high concurrency the functional paradigm with immutable structures is a really nice way to reason about problems - I'd say it contributes significantly to reliability over standard threaded imperative code.

      "Fast" is such a vague term as to be meaningless - but I can say that we typically hit the performance limits of something external (network, disk, DB) before the fact that we're in a JVM makes any difference. If your problem is purely compute then maybe it's worth looking at C or golang, but the vast majority of stuff I work on is network services, and compute is not the bottleneck.

      I do 100% agree with the strongly typed bit though :)

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

    5. Re:Because no one else does by Alomex · · Score: 1

      "Fast" is such a vague term as to be meaningless

      If only someone could invent an objective measure of speed of execution, using a newly developed unit which we shall call "microseconds" and use that to compare the performance.

      On a more serious note, I agree that for many applications time is not that important, but there are many others for which it is. The rendering engine in the browser is one. Any app running in a battery constrained phone is another.

    6. Re:Because no one else does by Alomex · · Score: 1

      Nothing you said there contradicts what are said.

    7. Re:Because no one else does by IamTheRealMike · · Score: 2

      The reason why companies develop new languages is because the ones coming from academia are focused on the wrong things. Product development requires an industrial strength, strongly typed (for the most part) fast language.

      Projects coming from academia are interpreted, JVM based, functional, obsessed with (im)mutability, closures, and lambda functions

      Whilst I don't disagree that academic languages rarely get used directly in industry, one of the world's most successful industrial programming languages is Java, and Java is interpreted, JVM based, and in version 8 got things like functional streams and lambda functions. Still no help with immutability, but value types will partly address that.

      So choosing these features as examples of stuff that's irrelevant to large scale industrial systems seems particularly perverse.

    8. Re:Because no one else does by hendrikboom · · Score: 1

      It that's what industry needed, Modula 3 could have been a great hit. Object-oriented, statically typed, run-time secure, and compiles to efficient machine code as well.

      But the truth is that language popularity is largely a question of fashion, not of technical merits at all.

    9. Re:Because no one else does by Alomex · · Score: 1

      ..and do you know why is interpreted? because it was supposed to run in countless cable boxes which never did. I know, because I was heard the language design and spec in the pre-WWW days.

    10. Re:Because no one else does by Alomex · · Score: 1

      It's a combination of fashion, libraries, how big is the improvement over the nearest commonly used competitor, commercial backing, luck, and yes technical merit.

      For example, Perl is a language that succeeded on the basis of its powerful string manipulation primitives, which is technical merit, and in spite of its many other technical deficiencies.

    11. Re:Because no one else does by Daniel+Hoffmann · · Score: 1

      Those things are central to some large scale industrial systems, but to your average software sweat shop, not so much. The reason academia pushes these things though is because they know their own languages will not go forward, but their ideas will live on on languages created by big companies.

      Also in my opinion immutability, closures and lambda functions are awesome and make me more productive. Performance is a secondary concern in 80% of the code most people write. It is still pretty important though so a language must offer features that allows the programmers to optimize the times those things get in the way.

    12. Re:Because no one else does by Alomex · · Score: 1

      Lambda functions are awesome? were you seriously being held back by having to name the function before passing it on as a parameter?

      Immutability makes you more productive? in what way?

      curious mind wants to know.

    13. Re:Because no one else does by Daniel+Hoffmann · · Score: 2

      immutability makes me more productive when dealing with concurrent code because I don't need to keep track of any locks on data structures. Anonymous functions make me more productive because I don't need to keep track of a bunch of names for things that I will use only once.

      Really any time I need to "keep track" of something it is draining attention that could be focused on solving the problem instead. The less stuff the language makes me need to remember the better, garbage collection allows me to not keep track of deallocating memory for a comparison. Surely needing to name anonymous functions is a less blatant example compared to deallocating memory but it is the same problem.

    14. Re:Because no one else does by DetriusXii · · Score: 1

      With lambda functions, my lines of code is shorter. I'm write now having to debug my predecessor's code and he wasn't aware of lambdas in C#. Everything becomes a jump point into another awkward function with the intent obfuscated. Rather than just using Linq and Expression trees, he made his own collection classes with tailored search functions on each function. Not every function needs a name and the intent can be inferred by just reading the function definition from the body of the function.

    15. Re:Because no one else does by thsths · · Score: 2

      > were you seriously being held back by having to name the function before passing it on as a parameter?

      The point of Lambda-functions is not to avoid a name, but to include the function definition inline in another function call. it makes much shorter code that is much easier to read.

    16. Re:Because no one else does by whh3 · · Score: 1

      The reason why companies develop new languages is because the ones coming from academia are focused on the wrong things. Product development requires an industrial strength, strongly typed (for the most part) fast language.

      Projects coming from academia are interpreted, JVM based, functional, obsessed with (im)mutability, closures, and lambda functions.

      This is not to say those things are not nice, however they are not central to a programming language as used in large scale industrial systems.

      "academia projects" that have "(im)mutability, closures, and lambda functions" are often very strongly typed. In fact, I would argue that the features of those academic projects are exactly what would make a language industrial strength. If we could convince developers to take the time to learn those tools they would produce industrial applications that didn't, you know, kill people (or less drastically, suck).

      --
      remove nospam. to email!
    17. Re:Because no one else does by StikyPad · · Score: 1

      I have no idea what "industrial strength," means in your context, but Swift is not strongly typed. It was developed to be approachable, allegedly without sacrificing performance. How well it succeeds in that goal remains to be seen, of course.

    18. Re:Because no one else does by StikyPad · · Score: 1

      String immutability in Java is a "feature, not a bug," and it will never change. Java references strings with cached hash codes, and if they were mutabile, then the hash code would have to be calculated every time to check for changes, which would be a huge performance hit. If you need mutability, use a StringBuilder.

    19. Re:Because no one else does by Alomex · · Score: 1

      Huh?

      Swift is a strongly typed language, though it uses type inference to reduce the amount of characters typed by the developer. Types can be provided explicitly, and for numeric types, specific sized elements such as UInt8 or Int32 can be used.The type engine also provides for Optional valued types; an optional value can be dereferenced with a ? or ! depending on whether the value is expected to exist. The collections in Swift provide literal support for both arrays (with []) and dictionaries/maps (with [:]) and can include generic types.

      and

      Swift is a strongly-typed language by default; however, it also uses type inference which again reduces code length for developers. The strong type attribute is always in place unless specified by special keyword weak.

    20. Re:Because no one else does by StikyPad · · Score: 1

      Strongly typed languages do not support weakly typed variables at all. They will either refuse to compile or throw an error at runtime. OTOH, implicit type conversion is the hallmark of weak typing, so despite the first few words in those two quotes, Swift is NOT strongly typed. Of course, a type *must* be defined under the hood, because... computers, but if it's not a mandate for the programmer to define, then it's not strongly typed.

    21. Re:Because no one else does by Tablizer · · Score: 1

      When you need to deal with extremely high concurrency the functional paradigm with immutable structures is a really nice way to reason about problems

      Practical example? And what % of applications need such "tight" concurrency beyond the over-used example of online interactive texting?

  12. Taylor Swift by Theovon · · Score: 1, Funny

    Someone at Apple just has the hots for that blonde singer.

    I don't blame them. :)

  13. Because walled gardens need bricks by Anonymous Coward · · Score: 1

    Both languages are expensive API filth, off with their heads!!!

  14. Re:Dumb argument by TheRaven64 · · Score: 4, Insightful

    Add to that, Go and Swift are pretty small languages. Learning either is something that a moderately competent programmer ought to be able to do in a few weeks. Neither is sufficiently different to other languages that there's a big cognitive jump. The difficult thing is always learning new libraries and frameworks, not learning a new language (well, unless the new language is C++, where after a decade of daily use developers are still not surprised to come across a language feature that they've never seen before).

    --
    I am TheRaven on Soylent News
  15. better language? by Anonymous Coward · · Score: 5, Insightful

    is it really impossible for anyone to believe that a language and toolchain can actually
    make an organization more productive?

    it seems like everyone is so lost in technical marketing that they've forgotten
    about actually programming computers

  16. Re:Because they're scared of standards based web a by Anonymous Coward · · Score: 1

    Everyone should be scared of Web based apps. Because web based apps suck.

  17. Re:Multiplatform is king - and Go is multiplatform by Grishnakh · · Score: 3, Insightful

    It doesn't matter how many platforms Go compiles for; what matters is how much demand there is for Go programmers. Outside of Google, the answer is approximately zero, so it's a bad choice if you're worried about your continuing employability. C++, on the other hand, is used all over the place, so it's a very safe bet.

  18. Re:Fringe benefit by BenJeremy · · Score: 1

    Yeah, those "benefits" make no sense.

    C#, a relatively new language, has a massive library of solutions created for it, tons of open source code out there to leverage for everything from server applications to mobile games. Go and Swift? I'd be surprised if there is a tenth of a percent of the open source code out there as there is for C#, which is further dwarfed by C++ and again, by an order of magnitude by C code.

    Of course, C# has a much larger ecosystem, which is also kind of the point.

    As for hires who "know" Go or Swift... WTF? Why is it any sort of advantage to make your potential hiring pool smaller? That only means there will be far fewer competent candidates to hire for a job.

  19. Re:That last sentence makes no sense by jcr · · Score: 5, Informative

    Anyone who is proficient in Swift has hundreds or thousands of companies outside of Apple looking to hire them. Apple has to compete with every iOS software development shop in the world for those people.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  20. Here we go again by Billly+Gates · · Score: 1

    More change for the sake of change

  21. Re:Multiplatform is king by ATMAvatar · · Score: 2

    I hope they guan get visual studio working on other platforms

    To that end, you could try out Visual Studio Code, which was introduced at the build conference this year.

    --
    "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
  22. Typical Business Insider Conspiracy Theory. by engineerErrant · · Score: 2

    The makers of this article clearly have no background in computing, or journalism either for that matter. I'm surprised I didn't see a reference to the Illuminati in there somewhere. Bizarrely, the article doesn't even mention Dart, which is no doubt due to the two-minute Bing search that I'd imagine formed the entirety of their background research.

    When considered against the status quo for their purposes and eras, all of these languages show significant, useful advances in programming. And if we're going to declare all languages that are created by a for-profit corporation invalid, say goodbye to Java, C#, C++, and C. Hell, even the Jacquard Loom was meant to make money.

    1. Re:Typical Business Insider Conspiracy Theory. by randolph · · Score: 1

      Dart is in fact mentioned, but it's way down in the article.

  23. Swift has no place by FithisUX · · Score: 1

    with D serving as an advanced alternative. I view SWIFT as an Apple way to say that its platform is closed in every possible sense.

  24. Re:Multiplatform is king - and Go is multiplatform by Anonymous Coward · · Score: 2, Interesting

    It took me less than a week to learn go. I still don't know all of C++ after two years. Learning Go was not a bad investment: the perspective I learned from it helped me write better C++ and C# code from both a OOP design perspective and threading perspectives, and is also a nice thing for my resume (Maybe is helped me get my option to work for Google, I don't know).

  25. Re:Multiplatform is king by CustomSolvers2 · · Score: 1

    VIsual Studio Code is a simple code editor (although with quite a few enhancements). It does have nothing to do with Visual Studio. For example: it cannot compile C# code of any kind (Winforms, WPF, ASP.NET). On the other hand, I do recognise that Visual Studio Code is a pretty good editor; I am already using it as partial replacement of NotePad++ (when writing PHP, for example). Although I hope that MS will be improving quite a few things within the short term.

    --
    Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
  26. Not recruitment, retention by John+Jorsett · · Score: 3, Insightful

    If you've made your own language, you're more likely to keep your experienced employees because there are fewer places for them to go to if they jump ship. Sure, there will be companies that use the language because they have to develop software for Google or Apple, but the employees are going to be a lot more locked-in than if they were experienced in something more widely used such as C or Python.

    1. Re:Not recruitment, retention by UnknowingFool · · Score: 3, Insightful

      As someone pointed out, that doesn't make sense for retention as Swift is the language that most 3rd party iOS app developers will learn. Apple makes maybe a dozen iOS apps and half of them are free. As for OS X, I can see the same pattern; third party developers are going to outnumber Apple ones.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    2. Re:Not recruitment, retention by gbjbaanb · · Score: 1

      the opposite is probably true - the experienced employees will look at their skillsets and start to think how unemployable they are becoming, and jump ship while they still can.

      I've seen it happen with a company that used a DSL, people gained skills in various systems (eg DBs, SQL etc) and then jumped when they could. All the remaining devs were either then ones making the DSL or were new kids who were just happy to have a job.. until they too realised their skills were not up to much.

    3. Re:Not recruitment, retention by JanneM · · Score: 1

      No, it's the same mechanism; just think of the third-party developers as "your" employees (share-cropping is quite an apt comparison). If they write their cool apps in a language only your platform uses, they are much less likely to port it to other platforms. You get more "exclusive" content, and your share-croppers/valuable partners are less able to leave for better terms elsewhere.

      --
      Trust the Computer. The Computer is your friend.
    4. Re:Not recruitment, retention by gweihir · · Score: 1

      That is a far more valid explanation. Of course, it is highly immoral, so the PR types do want to avoid it. But it makes a lot of sense.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    5. Re:Not recruitment, retention by UnknowingFool · · Score: 1

      And when have developers been able to port easily to other platforms? Almost never. Wiring an app for WinMobile was never going to be easy to port to Blackberry or Symbian. And that's even if you wrote in C++.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    6. Re:Not recruitment, retention by StikyPad · · Score: 1

      Exactly.. Additionally, any developer worth his salt is multilingual when it comes to programming languages. And it's almost impossible to avoid learning SQL these days, which is a portable skill.

  27. There is a minor recruiting benefit, only to "go". by tlambert · · Score: 3, Insightful

    There is a minor recruiting benefit, only to "go".

    WHY SWIFT IS NOT BENEFICIAL:

    Internally, Apple doesn't write a lot of Apps; they might, eventually, convert some of their existing large applications, like Pages or Mail.App, over to Swift; these will largely end up being rewrites. So while knowing Swift might make you better able to get a job at a software house targeting Apple's platforms, it's unlikely to be meaningful in getting a job at Apple.

    On the other hand, one benefit to Apple is that if Swift is not strongly used internally, the demand for App developers is unlikely to hire away Apple engineers out from under Apple, which was a big issue with the Objective C "brain drain" when iPhone and other apps took off. One of the things that Apple did, for example, was not let registered developers who were also Apple employees, take App programming classes held by Apple, for a period of six months after they started offering them to non-Apple employees. So there is an "anti-recruiting away of Apple employees" benefit to Apple.

    WHY GO IS BENEFICIAL:

    The recruiting benefit of "go" is clearer, although even with gccgo, go is not very portable to non-Linux platforms, despite its claimed platform support (for example, the standard libraries *still* have some serious compatibility issues on Mac OS X, despite the fact that almost every Google employee has an Apple laptop).

    One thing that companies like to hire is young people; on the theory that "you can't teach an old dog new tricks", someone who knows "go" is a lot more likely to be younger, rather than older. It's not valid due to the theory, but it is nevertheless valid enough that you can pretty much use it as something of an age filter, and legally get away with doing do.

    Another thing it means is that you're willing to learn new things; a surprising number of people aren't. If you got into software engineering for the money, and you are just using it as a "paycheck continuation program", instead of actually being passionate about it, it's unlikely that you've bothered to take the time to learn "go".

    These are relatively minor benefits, since it doesn't take that long to learn a new language well enough to work in it pretty extensively; so training is not really a benefit, as the article claims.

  28. Re:Subtle.. by Just+Some+Guy · · Score: 1

    *eye ball roll*

    Why. It's not criminally PC to use either singular pronoun when referring to a hypothetical person. I think the fact that you felt it necessary to comment on it says more about you than the author.

    --
    Dewey, what part of this looks like authorities should be involved?
  29. Re:Subtle.. by Anonymous Coward · · Score: 1

    Why single one group out at all? Why not use "he or she" or simple rephrase it.

    Google is more likely to hire a developer who's already proficient in the language.

    Google is more likely to hire a developer who's already proficient in the language due to lower training costs.

    Google is more likely to hire a developer who's already proficient in the language reducing operating costs.

    I implore you to drop out of this conversation.

  30. Re:Subtle.. by radish · · Score: 1

    What bias? A bias against assuming all programmers are men? Guilty.

    How does using "she" differ from using "he"? Why is "he" an acceptable default but "she" not?

    --

    ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

  31. Logic Fail by Art3x · · Score: 3, Insightful
    From the article:

    One fringe benefit for Google and Apple is that making your own programming language makes recruitment easier --- for instance, since it builds a lot of its own server applications in Go, Google is more likely to hire a developer who's already proficient in the language since she would need less training.

    And had Google used C, it would be more likely to hire someone who's good with C, since they would need less training.

  32. Re:Fringe benefit by Jeremi · · Score: 3, Informative

    Of course, C# has a much larger ecosystem, which is also kind of the point.

    Of course, C# is also Microsoft's baby, which is enough to disqualify it from use inside Apple and Google all by itself. Nobody at either of those companies is going to risk relying on Microsoft's intellectual property for anything mission-critical.

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.
  33. How stupid is this argument... by kenh · · Score: 3, Insightful

    "One fringe benefit for Google and Apple is that making your own programming language makes recruitment easier â" for instance, since it builds a lot of its own server applications in Go, Google is more likely to hire a developer who's already proficient in the language since she would need less training."

    Because if they used, for example, Java, when they hired an experienced Java developer they would need MORE training?

    Approximately how large is the pool of 'experienced' Go/Swift programmers outside of Google/Apple?

    --
    Ken
  34. Re:That last sentence makes no sense by Applehu+Akbar · · Score: 3, Informative

    "I'm still scratching my head over the use of "she" instead of "they" in that sentence."

    It's Corpspeak. You have to use a precisely equal number of male and female pronouns, even when that means shifting gender confusingly back and forth throughout your Powerpoint presentation. But if your presentation contains a example of bad procedure, you have to use a male pronoun at that point ("If the nurse were to stick his finger in the 220V socket during Step 5...")

  35. Re:Subtle.. by ncc74656 · · Score: 1, Funny

    ...and now the SJWs have weighed in. :-P

    --
    20 January 2017: the End of an Error.
  36. Google vs Apple? by darkain · · Score: 1

    The media is so fixated on these two companies that they're leaving out other competitors that don't come to mind in this exact same sector.

    Facebook now has their own language: Hack. It runs on their own interpreter: HHVM.

    This is similar in mind to the jump from C to C++, wherein existing PHP code mostly runs on HHVM unmodified, but switching to Hack adds a couple restrictions (fixing long standing issues with the PHP language), while adding countless new features (such as type safety and parallel I/O)

    But Facebook is just "those other guys", right? They're not a tech company at all, they're just some web thingiemajigger.

  37. Re:Multiplatform is king - and Go is multiplatform by gbjbaanb · · Score: 3, Insightful

    He means "I tinkered with this new thing and it seemed pretty easy enough, so that was enough - I never needed to use it, so I never found out all the edge cases I know about in the mainstream languages I use every day".

    Its why many people like new languages and things, they think they're simple because they only have to scratch the surface for some simple example and think that's all there is to it.

  38. Re:Multiplatform is king - and Go is multiplatform by west · · Score: 2

    I'd define 'learn' as be able to read 90% of the code that's out there. And yes, I can easily see C++ taking years by that standard.

    "Yes, our code *does* overload the 'space' character, I thought you said you knew C++!" :-).

  39. Utter rubbish by Hognoxious · · Score: 1

    making your own programming language makes recruitment easier â" for instance, since it builds a lot of its own server applications in Go, Google is more likely to hire a developer who's already proficient in the language since she would need less training

    Choosing to do all internal communication in your own language makes recruitment easier -- for instance, since it builds a lot of its own body of literature, WePretendToBeDwarfsOutOfTolkien Inc is more likely to hire a developer who's already proficient in the language since she would need less training.

    Can't you see how utterly, completely, truly madly and deeply retarded this logic is?

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  40. Re:Fringe benefit by gbjbaanb · · Score: 1

    sure, but then they could just stick with C++, and focus their energies on making good quality libraries and tools to work with it and let the good developers learn how to use it properly.

    Its not as hard as many people think, but maybe they're confused by the possibilities the language affords, many of which nobody uses for day-to-day programming tasks.

  41. Hey, C was created in Bell Labs to develop UNIX by iamacat · · Score: 1

    It's no surprise that big programming organizations develop new languages to better suite their own needs. If you are running a large server farm, a language that helps you have 25% fewer memory corruption crashes without sacrificing speed is a huge thing. Outside adoption may vary, but over time some will succeed and supplant C/Java as default choices for new projects.

    Personally I am hoping for something that unifies memory and external resource management without leaks, crashes or perceptible GC pauses. This may be unsolvable in theoretical general case, but a language and runtime can provide many patterns for common practical needs. Even having reliably destroyed local instances that can not be returned out of the method in Java would be a huge thing for helping people remember to close files.

  42. Re:Multiplatform is king by Aighearach · · Score: 1

    Objective-C is very, very, very usable on any *nix platform. If you think it is only useful in Apple proprietary environments, that says a lot about you and nothing about Objective-C.

    The only time there is any Apple-specific constraint is when you're using their libraries. That may be most often the case, but there is no reason that it needs to be on your own projects. Serious projects don't just glom onto whatever the nearest proprietary library is, they actually have to evaluate options and make choices. You can absolutely choose non-Apple libraries whenever you want.

    A truer statement would have been: "Objective-C is mostly used on 1 platform for entirely social reasons."

  43. Re:That last sentence makes no sense by Applehu+Akbar · · Score: 3, Funny

    Welcome! We're always glad to see representatives of HR visit us on Slashdot. Next week as you write a requirement for five years of Swift into that new job posting, you can thank us for having inspired you in your quest for offense-free skill categories.

  44. Everybody has their own languages by javacowboy · · Score: 1

    Red Hat has Ceylon. Mozilla has Rust. Google has Go and Dart. Apple has Swift. Typesafe has Scala. SpringSource has Groovy. Oracle has Java. Microsoft has C#. Etc, etc, etc.

    Ceylon caught a lot of flack initially from some members of the Scala community (and I guess some Java people) for "doing unnecessary work", "not listening to the community" and "not complying with standards. Apple caught the same flack for Swift with the same nonsensical arguments. Go has similarly been criticized for being weird.

    The fact of the matter is that each one of these companies has their own requirements, requirements that "standard" languages like Java and C++ don't meet.

    Also, which each new language comes a potential set of new innovations for new or existing languages to build upon. With Ceylon it's union types and null variables handled by built-in Optional types. With go, it's interfaces that are not explicitly implemented. Etc, etc, etc.

    Bottom line: This is a good thing.

    --
    This space left intentionally blank.
    1. Re:Everybody has their own languages by javacowboy · · Score: 1

      One important omission from my list: Facebook and Hack.

      --
      This space left intentionally blank.
    2. Re:Everybody has their own languages by cfalcon · · Score: 1

      Why on earth did you put standard in quotes? Java and C++ are absolutely standard languages. They are everywhere. C++ will remain that way for... ever?.. and Java's big risk is that Oracle might win in court, but even with that it will be standard for a decade or two.

      And I'm really not convinced that these companies have "requirements" that standard languages don't meet. At least, not technical requirements. Technical lockin is the go-to explanation for any in house language in this day and age. Deviant languages won't replace anything, won't become the next thing, won't result in amazing new machine capabilities...

    3. Re: Everybody has their own languages by javacowboy · · Score: 1

      Right, because nobody can possibly come up with a new idea. They've all already been invented. Also, all of the languages I mentioned are open source.

      I put Java as a "standard" because Oracle controls the language. I guess nobody owns C++ so it's more true in that case.

      --
      This space left intentionally blank.
    4. Re: Everybody has their own languages by cfalcon · · Score: 1

      I think the lawsuit will determine how Java goes. If you can't reimplement any more, only fully open languages will be taken seriously by anyone. But even then, Java will be a real factor for quite some time.

    5. Re: Everybody has their own languages by msobkow · · Score: 1

      Nobody except Android app developers really gives a rat's fat ass what happens to Google's bastardization of Java. Do you really think all those line of business and corporate web applications written with Java and JEE are going to go away because Google gets kicked to the curb?

      --
      I do not fail; I succeed at finding out what does not work.
    6. Re: Everybody has their own languages by javacowboy · · Score: 1

      Well, even if Google loses, there's also the question of how far the fair use exemption goes if API's can be copyrighted. I doubt the courts will let somebody copyright Integer add(Integer first, Integer second), for instance.

      I'm not saying I agree with Oracle (I don't), I'm just hopeful that cooler heads prevail and civilization isn't finished if the courts decide that APIs are copyrightable.

      --
      This space left intentionally blank.
  45. Re:How could an article be so wrong? by cheesybagel · · Score: 1

    C has been around since 1972.

  46. Re:That last sentence makes no sense by wassomeyob · · Score: 1

    Or when the military decided they needed their own language: Ada. How did that work out?

  47. Re:That last sentence makes no sense by Anonymous Coward · · Score: 4, Informative

    Masculine pronouns can be used in the gender neutral sense in English. Feminine pronouns cannot. Posting as AC because I don't want saying obvious fucking truths archived on my slashdot account, thanks to the witch hunts political shitfucks will inevitably engage in.

  48. Re:Multiplatform is king - and Go is multiplatform by Anonymous Coward · · Score: 2, Informative

    He means "I tinkered with this new thing and it seemed pretty easy enough, so that was enough - I never needed to use it, so I never found out all the edge cases I know about in the mainstream languages I use every day".

    No, that's not what I meant. After spending a week learning Go, I wrote a couple of applications in it, but after the first week I was not learning Go, I was learning libraries and patterns.

    Read the Go spec: these is almost nothing to it. The language has ridiculously few features. The main design goal of the language was to make code very readable and maintainable which means all devs basically know the entire language spec.

    Don't read the C++ spec. You don't have time for that and it keeps growing. C++ has lots of features, which is both a good and a bad thing, but not all languages are like that.

  49. Wouldn't want to work at either place. by kuzb · · Score: 1

    The thing about companies of that magnitude is that unless you're a rockstar programmer (most of us aren't) you're just signing up for some bullshit lord of the flies atmosphere where the job is so internally competitive that it becomes overly stressful and completely unenjoyable. Yes the pay is probably good, however the environment is anything but healthy.

    --
    BeauHD. Worst editor since kdawson.
  50. You're not a real programmer by msobkow · · Score: 1

    You're not a "real" programmer until you've rolled your own framework or language. Sooner or later, everyone worth their salt gets some "bright ideas" and gives it a try. :)

    --
    I do not fail; I succeed at finding out what does not work.
  51. What demands by jonr · · Score: 1

    "Similarly, Go was designed to make it easier to build complex systems. The old workhorses of the networked software programming industry, C++ and Python, just couldn't keep up with the demands that Google was placing on it."

    Is there an explanation of what those demands could be? C++ and Python are very different languages in every way

  52. Re: That last sentence makes no sense by Anonymous Coward · · Score: 2, Informative

    Very well, actually. ADA is very good at what it does well, which is creating deterministic code that can be procedurally validated. It was created for a design environment that is the exact, deliberate opposite of Agile. If you think you should build once a day or week, then ADA is not for you. If you can not simulate your live environment because it's a thousand miles up in orbit and a bug costs half a billion dollars and 2 years to the next launch window, ADA is for you. If virtually memory machines are a pointless risk and dynamic memory allocation is anthema, then go for ADA. If not, stay the fuck away, because it will make you a grey beard, one way or another.

  53. Following in MS footsteps by codefungus · · Score: 1

    It's the same old story as MS right? I mean, you feel like you dominate a market so you start throwing your weight around. You want programmers to be MS programmers. That was their strategies, go after the coders as they are the ones who make the decisions. For every big software shop that dictates the technology, there are a hundred one man shows where the coder is selecting his own stack. Whether its putting out and steering people to your own language or own browser or whatever, its a move that betrays your sense of dominance and power. What's nutty is that it just doesn't work. Google is not evil until they are in the driver seat and screw everybody.

    --
    -- A cat is no trade for integrity!
  54. Language learning is only a factor at the low end by gweihir · · Score: 1

    People that are actually good at developing software will be so in any language after a short time. People that are at the low end of the skill range will learn these languages like Go in order to have some skill at all. They will still produce code that sucks though. Or said differently: Preselecting candidates based on whether they know a specific language is usually a hugely expensive mistake in the long run. Not that other companies are routinely making this basic mistake all the times. Just shows that there is not good reason to work at Google or apple these days and they are better avoided.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  55. why isn't everyone just coding in javascript? by fredness · · Score: 1

    Seriously.

    1. Re:why isn't everyone just coding in javascript? by cfalcon · · Score: 1

      Err... what?

  56. Re:That last sentence makes no sense by Anonymous Coward · · Score: 1, Insightful

    Masculine pronouns can be used in the gender neutral sense in English

    Exactly. Yet this is something the man-haters would like to redefine.

    Some feminists are truly interested in equality.
    However a large portion of them are man-haters who are using their platform to gain PRIVILEGE for women.

    A campaign has re-strengthened in Australia to remove the 10% GST (Goods and Services Tax / VAT) from tampons. See here
    They use emotional slogans such as "stop taxing my periods".

    However, I'd like to know why the Australian government won't also consider removing the GST from men's grooming products (razors, shaving cream, etc). Facial hair growth is a natural bodily function for men. And at least one GOVERNMENT department sends men home if they turn-up to work unshaven ... even though facial hair has no bearing on their ability to perform their duties! (Imagine the uproar if they sent women home for not shaving their legs. And why is the Sex Discrimination Commissioner remaining silent in defending these male citizens?)

    To say nothing about why there is a GST on toilet-paper ... isn't going to the loo a natural bodily function as well?

  57. Re:That last sentence makes no sense by hercludes · · Score: 1

    Ouch. Someone being offended on the lack of their gender (or not their gender) being in an article sounds sexist to me. Either way, the people who would get offended because something like "he" is used or that "maid" was used or that "fireman" was used should probably spend more time focusing on the subject of what the author is talking about and worry less about semantics and how "nice" someone is trying to appeal.

  58. Re:That last sentence makes no sense by jcr · · Score: 1

    Apple can review all the app code written.

    Outside developers don't submit their source code to Apple.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  59. Re:That last sentence makes no sense by RabidReindeer · · Score: 1

    Hire well-trained polyglots.

    When was the last time that you saw a recruitment ad for a polyglot?

    They all demand specific (and often unrealistic) experience in a specific language or small set of languages. Usually paired with specific platform.

    Companies don't want flexible people, they demand cheap easily-replaceable cogs. And what they often get are people willing to lie about their experience, since the "must-have" list is so long an inflexible that maybe 3 people on the planet will fit and all of them are undoubtedly already making more than was offered.

  60. Re:That last sentence makes no sense by RabidReindeer · · Score: 1

    Aparently the use of the word "they" as gender/number fuzz dates back a long way. Long enough that it's considered no less correct that a lot of other rule-breaking exceptions to the supposedly logical structure of the English language.

    Maybe I'm showing my age and upbringing, but use of "she" in a document mentally throws my gender-neutral/faceless person reading out of whack in a way that "he" does not. I can live with "they" if other people have the same reaction to "he". It's less grating then (sic) when people with a gender agenda think that they have free reign (sic) to make me tow (sic) the line. If I'm trying to interpret a technical document, I really don't need to be simultaneously wasting energy thinking about it as a gender manifesto.

  61. When you are as big as Google or Apple... by GuB-42 · · Score: 1

    You won't create a new language if you just need to develop a small app, however, when things become big, creating a new language to fit what you are trying to build may become a worthwhile investment.
    Good programmers can pick up a language very quickly anyways.

  62. Google didn't create their own language by OrangeTide · · Score: 1

    They hired Rob Pike.

    --
    “Common sense is not so common.” — Voltaire
  63. I know why Swift exists. by jcr · · Score: 4, Interesting

    ...and it had nothing at all to do with recruitment.

    When Apple came up with the LLVM static analyzer, they became much more aware of just what kind of coding mistakes were costing them the most time and money, and Swift addresses those issues.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  64. Re:That last sentence makes no sense by Livius · · Score: 5, Funny

    Yes, it's very unfair to men that they don't have their own pronouns.

  65. MSFT set the standard by itomato · · Score: 1

    Easy; recruit the students who wrote thesis in *your* language.

    Push it into the Universities (stray Dollars help), drive curriculum, ensure adoption.

  66. Re:Subtle.. by MechaStreisand · · Score: 2

    Have you not noticed that almost all programmers are men? That means that when you use the word "she", you're saying it only to make a political statement, not because you think it actually describes the situation.

    --
    Disclaimer: IANAL. This post is, however, legal advice, and creates an attorney-client relationship.
  67. Re:Because they're scared of standards based web a by narcc · · Score: 1

    Universally and without exception?

    Don't be stupid. Some web apps sucks, many others don't. Just like applications written for every platform over the entire history of the electronic digital computer.

    They don't tend to suck more or less than apps for Windows, Android, iOS, QNX, MacOS, Linux,OS/2, or any other platform -- developed in any language.

    Want to see an absurd number of really crummy apps? Look no further than Google Play or the Apple App Store. Do we then confirm that Android and iOS apps suck, and that everyone should be frightened by them? Of course not. (To that one misguided mod: Blind ideology isn't informative.)

  68. Re:Because they're scared of standards based web a by narcc · · Score: 1

    they're afraid of standards-based web apps

    Obviously. Why do you think they developed Dart?

  69. Re:Subtle.. by narcc · · Score: 1

    Why single one group out at all? Why not use "he or she"

    Because it's awkward. Apparently, not many people know how to use 'they' as third-person singular pronoun.

    (Inexplicably, they don't seem to have any trouble using 'their' that way. e.g. "One of the editors left their brain at home." I weep for the future...)

  70. Re:That last sentence makes no sense by Hognoxious · · Score: 1

    Doesn't always work. Sometimes it just looks wrong if it's clear that only one person is involved.

    [Opens can of worms] Of course there's always the singular "they" ...

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  71. Re:That last sentence makes no sense by mSparks43 · · Score: 1

    It makes recruitment easier because no one else will employ them. Making them cheap and dedicated.

  72. Re:Fringe benefit by Richard_at_work · · Score: 1

    Except that Google is developing AngularJS 2 in TypeScript, which is also Microsofts "baby".

  73. Power? Control? by jjn1056 · · Score: 1

    I just assumed it was about controlling even more of the stack, and helping to bring about the time when they control it all..

    As an older programer sometimes I am cynical and assume they created a new language that no one knows so they can hire the cheapest, youngest labor (since only young people not currently working or paying a mortgage have time to master a language).

    That being said, Go is not too bad (although I find I have a hard time with the dependency management tools). Swift feels like a language aimed at broadening the programmer base. Cognitively I feel reminded of Python when I play with it, which is a bit of a barrier since I never liked python much myself.

    --
    Peace, or Not?
  74. The STEM equivalent of Pullman by RogueWarrior65 · · Score: 1

    If you're proficient in an internal language, you're more likely to remain working there. Eventually, you'll be paid in Google bucks or Apple dollars, which are not legal tender anywhere else in the world.

    1. Re:The STEM equivalent of Pullman by SuiteSisterMary · · Score: 1

      If you're proficient in an internal language, you're more likely to remain working there. Eventually, you'll be paid in Google bucks or Apple dollars, which are not legal tender anywhere else in the world.

      The Shiawase Decision granted multinational corporations extraterritoriality status on their corporate holdings. Suddenly entering, say, a Renraku facility meant entering an entirely new country.

      --
      Vintage computer games and RPG books available. Email me if you're interested.
  75. article skipped the elepahnat: C# by peter303 · · Score: 1

    MicroSoft liked a Java-like languge, but found it too slow or rebuffed in suggesting changes to Sun. So htye basically made a hJava-like language themselves. For most of its history its only run in the MicroSoft ecosystem, although there are feeble attempts to make it multiplatform.

  76. Labor retention and wage suppression. by AllergicToMilk · · Score: 1

    In a nutshell, if the only tools you know how to use well are the tools specific to your current and no other possible employer, then you are stuck and screwed if they no longer need you. Your negotiating position is shot. That is some hyperbole but quite a bit of truth.

    --
    There are only 6,863,795,529 types of people in the world.
  77. A bad joke and a licensing note by randolph · · Score: 1

    Swift == (Objective-C)++

    One perhaps significant fact: the Go compiler is licensed under a BSD license, Swift has started as proprietary, but may be going over to something open this year.

  78. Not enough innovation by descubes · · Score: 1

    While Go and Swift are interesting incremental improvements, they are not taking into account what we learned about programming languages. In many ways, these two languages seem firmly stuck in the 1980s. For example, Go has no generics, and as far as I can tell, Swift still does not have the kind of true generic types I introduced in XL in 2000, i.e. the possibility to call "ordered" all types that have a less than, and then define functions with "ordered" instead of having to use <T> all over the place just like in C++ (and please, could we stop using angle brackets?)

    More generally, there was a lot to be learned from more dynamic languages deriving from Lisp. Being able to treat code as data (homoiconicity) completely changes things. It means your language can be extended in itself, just like Lisp integrated object-oriented capabilities effortlessly. It means you can do metaprogramming, introspection, reflection, dynamic code generation, in a natural way rather than with specialised ad-hoc features. All things that Go or Swift spectacularly fail to do.

    A real language redesign does not bring you incremental benefits, it should bring orders of magnitude on many tasks. I speak from experience. In XL, I can do complex arithmetic in 11 lines of code. What about Swift or Go? Ask yourself why Go can't offer complex arithmetic as a library package? Similarly, in Tao3D, I can do things HTML5 just can't, in a much less verbose, much higher-level language, and simple animations take 30 times less code than in JavaScript. The 30x factor tells me that I invented something new. Many others can demonstrate similar innovation.

    I fail to see benefits of a similar order of magnitude with Swift or Go, and it annoys me. Companies like Apple and Google have the means, if only the financial ones, to make bigger things happen, in particular when smaller teams like ours already did a lot of investigative work.

    --
    -- Did you try Tao3D? http://tao3d.sourceforge.net
  79. Re: Multiplatform is king by DrVxD · · Score: 1

    For exactly the same reason as I give a flying fsck about your opinion.

    --
    Not everything that can be measured matters; Not everything that matters can be measured.
  80. Re:That last sentence makes no sense by Aighearach · · Score: 1

    You must be using beta, if you're going to try to give me introductions kiddo. You joined a couple decades too late for that.

  81. Re:That last sentence makes no sense by Aighearach · · Score: 1

    Use of "they" being disallowed by the popular style guides is exactly the point I was making in mentioning style guides. Thank you for taking the time to understand what you're responding too before commenting. You added so very much to the discourse.