Slashdot Mirror


Why Apple, Google, and FB Have Their Own Programming Languages

An anonymous reader writes: Scott Rosenberg, author of Dreaming in Code dissects Apple's Swift, Google's Go, and other new languages — why they were created, what makes them different, and what they bring (or not) to programmers. "In very specific ways, both Go and Swift exemplify and embody the essences of the companies that built them: the server farm vs. the personal device; the open Web vs. the App Store; a cross-platform world vs. a company town. Of all the divides that distinguish programming languages—compiled or interpreted? static vs. dynamic variable typing? memory-managed/garbage-collected or not?—these might be the ones that matter most today."

161 comments

  1. Unreadable crap websites by Anonymous Coward · · Score: 0

    Now by anonymous submission.

    1. Re:Unreadable crap websites by epyT-R · · Score: 1

      Yeah really. Why is the text set to 18 point? What's with the ugly graphics that just get in the way? I used a firefox plugin to disable CSS and scrolled down til I found the text. At least it was readable without resorting to a full screen browser (why do people work like that nowadays??!)

    2. Re:Unreadable crap websites by Anonymous Coward · · Score: 0

      New trend in website design is to pander to mobile devices. Have you seen hackaday.com recently?

      Personally I use mobile devices to view a mediocre version of websites I enjoy on my laptop. I don't use my laptop to view an oversized version of mobile sites.

  2. Naming by Anonymous Coward · · Score: 3, Interesting

    So Apple named a language "Swift", Google named a language "Go", and Facebook named a language "Hack"?
    Obviously it's not just the dirty FLOSS hippies who can't come up with decent software names.

    1. Re:Naming by VGPowerlord · · Score: 5, Funny

      Well, I heard* that the name Go was decided upon when an executive at Google needed to think up a name and was looking around his office.

      On his computer at the time was a Chrome browser with the Google homepage open, but a Solitaire window was open in front of it obscuring the right half the page.

      Now, if the Solitaire window was on the other side, we might have the ogle programming language instead!

      * and by "heard" I mean "just made up"

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    2. Re:Naming by phantomfive · · Score: 1

      Hack is like PHP but with improvements.

      There is no name that could be more accurate.

      --
      "First they came for the slanderers and i said nothing."
    3. Re:Naming by Anonymous Coward · · Score: 0

      >* and by "heard" I mean "just made up"

      You cheeky cunt

    4. Re:Naming by rthille · · Score: 1

      I read that somewhere.

      I wrote it down, then I read it.

      --
      Awesome furniture, accessories and cabinetry in Santa Rosa, CA: http://humanity-home.com/
    5. Re:Naming by Anonymous Coward · · Score: 0

      Bodge?

    6. Re:Naming by Anonymous Coward · · Score: 0

      Clusterfuck? A new scalable language.

    7. Re:Naming by DulcetTone · · Score: 3, Insightful

      Some of these are actually good names, e.g. Swift

      --
      tone
    8. Re:Naming by K.+S.+Kyosuke · · Score: 1

      Except for creating confusion with Forth, Inc. products?

      --
      Ezekiel 23:20
    9. Re:Naming by Anonymous Coward · · Score: 0

      Fanbois gonna fan.

    10. Re:Naming by davester666 · · Score: 1

      PHP's original name.

      --
      Sleep your way to a whiter smile...date a dentist!
    11. Re:Naming by Glock27 · · Score: 1

      Except for creating confusion with Forth, Inc. products*?

      * That just about no one had ever heard of...

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
  3. The real conspiracy... by __aaclcg7560 · · Score: 1, Offtopic

    New programming languages props up the publishing industry by producing dead-tree door-stoppers that detail the new programming language. I stopped buying dead-tree door-stoppers years ago, cleared off the bookshelves and get the ebook version.

    1. Re:The real conspiracy... by RyuuzakiTetsuya · · Score: 2

      All of Go and Swift's documentation is available as free PDFs.

      --
      Non impediti ratione cogitationus.
    2. Re:The real conspiracy... by sconeu · · Score: 3, Insightful

      I don't think it's really that. I think it's more the divide specified.

      Some of us do NOT like using ebooks for reference manuals. We like having dog-eared tomes with tons of bookmarks or post-it tabs. The ability to flip back and forth between multiple pages in an ad-hoc manner is also useful.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    3. Re:The real conspiracy... by Anonymous Coward · · Score: 0

      Of course, to be able to read that "ecological" ebook, you just need to extract and rape the planet of non-renewable rare metals so you can manufacture the various device display and electronics components, then produce planetary killing batteries that you can't recycle(hint: those "recycle" box for batteries, they are just so they can bury them all in the same spot), and of course you need to produce electricity forever to power it all, which is mostly produced by coal, gaz, and pretroleum.

      Much better than cutting a tree, that you replace, and printing a book, right?

    4. Re:The real conspiracy... by __aaclcg7560 · · Score: 1

      Much better than cutting a tree, that you replace, and printing a book, right?

      Unless the publisher is using a manual hand press to produce the book, printing, storing and shipping the books still requires energy. I find programming ebooks more convenient as they don't take up physical space and are easier to search through. Physical books, however, are still useful as firewood if civilization ever goes to hell in a handbasket.

    5. Re:The real conspiracy... by Anonymous Coward · · Score: 0

      I don't think it's really that. I think it's more the divide specified.

      Some of us do NOT like using ebooks for reference manuals. We like having dog-eared tomes with tons of bookmarks or post-it tabs. The ability to flip back and forth between multiple pages in an ad-hoc manner is also useful.

      So learn to the same thing digitally? There's many ways to take notes, tab, etc with digital media.

    6. Re:The real conspiracy... by Anonymous Coward · · Score: 1

      There may be many ways to do it with digital media, but for those of us used to doing it with physical books, it's not necessarily an improvement, or even a desirable substitute.

    7. Re:The real conspiracy... by __aaclcg7560 · · Score: 1

      I bought many programming door-stoppers in the 1990's and 2000's. Most were tossed as the technicial information became obsolete over time. This is especially true for new programming languages that are still maturing at a rapid pace. The only reference books I still have are for C/C++, Python 2.6 and data structures from ten years ago.

    8. Re:The real conspiracy... by slapout · · Score: 4, Informative

      It's hard to flip thru an ebook the same way you do a paperback.

      --
      Coder's Stone: The programming language quick ref for iPad
    9. Re:The real conspiracy... by sconeu · · Score: 1

      I don't necessarily want to make permanent bookmarks... I'll stick a finger on a page, flip to another page, stick a second finger there, go to a third page... I just want ad hoc access.

      I also find *reading* an E-book harder than reading a dead tree. Also, if I want to consult multiple books at once, I can have them open on my desk at the same time. If I'm using an e-book reader, I can't do that.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    10. Re:The real conspiracy... by rjstanford · · Score: 1

      Of course, to be able to read that "ecological" ebook, you just need to extract and rape the planet of non-renewable rare metals so you can manufacture the various device display and electronics components...

      Its a crying shame that most software developers don't use computers. Then we'd be able to solve that problem "for free" as they say. Oh, well...

      --
      You're special forces then? That's great! I just love your olympics!
    11. Re:The real conspiracy... by Anonymous Coward · · Score: 0

      They would also be very useful as books if civilization ever goes to hell in a handbasket, because by then all those fancy ebook readers will have run out of power or self-destructed.

    12. Re:The real conspiracy... by Anonymous Coward · · Score: 0

      Good luck with Ctrl-F

    13. Re:The real conspiracy... by K.+S.+Kyosuke · · Score: 1

      "Rare metals?" Not that I think that print publishing is bad, but this argument seems ludicrous. If the exact materials that are being used today were inaccessible, why assume that no different solution would be engineered?

      --
      Ezekiel 23:20
    14. Re:The real conspiracy... by K.+S.+Kyosuke · · Score: 1

      Yes, because if that ever happens, having paper copies of books on programming languages available would make me feel so much more provided with useful information. :-p

      --
      Ezekiel 23:20
    15. Re:The real conspiracy... by __aaclcg7560 · · Score: 1

      10 print "Goodbye, World!"
      20 goto 10

    16. Re:The real conspiracy... by kwbauer · · Score: 1

      "bury them all in the same spot" we call that "pre-cycling" as they are just holding on to them until recycling actually does become economically viable.

    17. Re:The real conspiracy... by hjf · · Score: 1

      I have Programming Perl. Bought 15 years ago, and I used to consult it a lot.

      Now I just google the information. Easier to find than on the book...

      Books are nice and have a romantic feeling about them. But e-docs are oh god so much more convenient.

    18. Re: The real conspiracy... by Applehu+Akbar · · Score: 1

      I read e-books exclusively now, EXCEPT for coding manuals. These require more back and forth lookup than works of any other genre.

    19. Re: The real conspiracy... by Anonymous Coward · · Score: 0

      haha thanks for the chuckle

  4. So they only have to support one language by Anonymous Coward · · Score: 0

    Duh. This was a dumb article and whoever approved it should feel ashamed.

  5. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  6. Re:HACK FACEBOOK by Anonymous Coward · · Score: 0

    Why? /. = hacked (and is stopping submissions of it too) http://www.theregister.co.uk/2...

  7. Algorithms by Anonymous Coward · · Score: 5, Interesting

    If I give you an algorithm, throw a dart at a page of programming languages to select one and if you cannot implement that algorithm in that language then you are nothing but a code monkey.

    A computer scientist can implement any algorithm in any language.

    Why are these companies using their own languages?

    Coder lockin. That is the only reason to have your own language.

    Work a few years at XYZ company working on their proprietary algorithms in their ABC programming language?

    Good luck getting another job.

    See, they learned the hard way with their stuff in Javascript - common language and coders - uh, I mean Javascript engineers - left for greener pastures because so many other companies were using that language.

    1. Re:Algorithms by SQLGuru · · Score: 1, Interesting

      I disagree with your coder lock-in statement. But I agree with your "throw a dart" metaphor.

      Just because you CAN code an algorithm in a language doesn't mean it's the best option. Just because I can drive a screw into a 2x4 with the heel of my shoe doesn't mean I should.

      Languages are developed to make certain problem domains easier. If they are flexible enough, people will adopt them for other problem domains as well. If they aren't flexible enough, they might stick around in their problem domain, but they'll stay on the outskirts. That's it.

    2. Re:Algorithms by Anonymous Coward · · Score: 0

      > if you cannot implement that algorithm in that language then you are nothing but a code monkey.

      If the algorithm has a performance metric, you will be sorely disappointed to find that many languages do specific things very very badly.

      > Coder lockin. That is the only reason to have your own language.

      This a wrong-headed paranoia.

      Swift was made because Objective-C is objectively poor (like many functional languages). Something being possible has another important metric. How many random people can and how fast, will features be implemented in a language matters. It has an effect on the bottom line. Go is better than Erlang in this respect, Swift is better than Objective-C (so they stay with their Obj-C tooling but also make it available to a wider audience), Hack is better than waiting for Zend to make their own use-case improvements when there are obvious improvements waiting. Nothing about these languages is a lock-in (like C# or Silverlight or Java). They are pragmatic.

      > Work a few years at XYZ company working on their proprietary algorithms in their ABC programming language?
      > Good luck getting another job.

      You just contradicted you original premise. Please take this trolling somewhere else.

    3. Re:Algorithms by ShanghaiBill · · Score: 1

      A computer scientist can implement any algorithm in any language.

      Sure, but that doesn't mean you can use any language to write large scale, reliable, and maintainable software. To do that, you need encapsulation, strong typing, static and dynamic analysis tools, etc. Many large teams have written projects with ten million lines of code, using languages with these attributes, such as C++ or Java. Good luck trying to do that with PHP or JavaScript.

    4. Re:Algorithms by tlambert · · Score: 5, Interesting

      If I give you an algorithm, throw a dart at a page of programming languages to select one and if you cannot implement that algorithm in that language then you are nothing but a code monkey.

      A computer scientist can implement any algorithm in any language.

      The "D" language used in writing DTrace scripts does not have loop constructs or recursion, and is not Turing complete. While I can do some pretty astonishing things in "D" that would make your jaw drop, even without looping constructs and recursion, it's pretty easy to come up with things which are impossible to implement in "D".

      So I would say your page of programming languages would, at a minimum, need to be Turing complete programming languages.

    5. Re:Algorithms by Anonymous Coward · · Score: 0

      A computer scientist can implement any algorithm in any language.

      I was going to challenge you with INTERCAL, but INTERCAL is Turing-complete.

      So I challenge you with SQL instead. (Plain SQL; not the PL/SQL or T-SQL extensions that make SQL Turing-complete.)

    6. Re:Algorithms by HiThere · · Score: 0

      So you claim you could implement a B+Tree in Whitespace? BrainFuck?

      Sorry, but different languages have different strengths, otherwise we'd all be programming in TML (Turing Machine Language). I could have said assembler, or machine language, but both of those are easier to use.

      OTOH, I'll admit that I tend to flit from language to language more than is necessary, and I've still skipped some, like Haskell and CaML. Sometimes a language doesn't look like it would make anything I'm doing easier.

      OTOH, I once did list processing in Fortran IV. You can do nearly anything in any common language...but some things are easier to do in some languages than in others. I'd never even try to write a B+Tree in Snobol. You could do it (though the interpreter might choke), but it's obviously the wrong tool for the job.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    7. Re:Algorithms by Anonymous Coward · · Score: 0

      Provided that Whitespace and BrainFuck are turing complete, yes, I could implement a B+Tree in them.

      Though, I would probably do it by writing my own precompiler that converts some actual readable script into the syntax of those languages. Some may call that cheating, but I call it "computer science."

    8. Re:Algorithms by Anonymous Coward · · Score: 0

      Turing complete, so the dart hits XSLT Good luck writing a FPS in that. No one's even manged Tetris yet.

    9. Re:Algorithms by jbolden · · Score: 0

      A computer scientist can implement any algorithm in any language.

      That's been proven false by computer scientists. Qi about 15 years ago did some tests where they took some Qi routines and asked people (professors and graduates in computer science) to implement in LISP, C, Prolog, Java and a few others that escape me. Only the LISP team were able to get through the list and their code was dreadfully complex.

    10. Re:Algorithms by MikeBabcock · · Score: 0

      You can write network code in Java, certainly a lot of people do, but its lack of unsigned types makes simple network address/mask calculations much more complicated than necessary.

      You can implement a 3D game in Python, but its interpreter and memory management is going to make it much less efficient than the same game in C++.

      You certainly could write a gene sequencing package entirely in ARM assembly language, but it would be hell to debug and would take a lot longer than necessary.

      Just because every Turing complete language is functional doesn't make them equivalently suitable for specific uses.

      --
      - Michael T. Babcock (Yes, I blog)
    11. Re:Algorithms by K.+S.+Kyosuke · · Score: 1

      Coder lockin. That is the only reason to have your own language.

      Perhaps that was the case with Apple, but Google people just wanted to have something more reasonable for writing servers, and C++ prove itself to be a major PITA.

      --
      Ezekiel 23:20
    12. Re:Algorithms by Anonymous Coward · · Score: 0

      That's exactly backwards.

      A code monkey can implement any algorithm in any language. It's all just code to him.

      A computer scientist can't implement an algorithm in _any_ language.

    13. Re: Algorithms by Anonymous Coward · · Score: 0

      Professors and graduates may be better than your average taxi driver at designing algorithms.
      I am not aware of any professor(people coming from the industry don't count) being particularly praised for his source code implementations. Most paper code I've seen would fail the most lenient review and usually leaks memory and dumps core on unexpected input.
      Give the algorithms to a pro-grammer and try again.

    14. Re:Algorithms by theshowmecanuck · · Score: 1

      I worked at companies where this happened. I was lucky in that I worked on R&D code and didn't have to use the company's specialized constructs. Others who didn't have this luxury had hard times finding work when major projects finished because employers in the area knew these people didn't have readily transferable skills. It is the same policy of opening shops up in remote areas where they company is the only horse in a one horse town. If they leave, no one is employed so everyone has to eat the shit they are fed. And the latter is not limited to IT companies, it is used by many. It is why Walgrens and Walmart locate their shipping centres in the middle of nowhere. So that they have leverage over the employees.

      --
      -- I ignore anonymous replies to my comments and postings.
    15. Re: Algorithms by jbolden · · Score: 1

      The original claim was computer scientists. Professional programmers are even better documented on their productivity since the 1950s. Essentially the old rule that lines of code are constant so higher level languages result in vastly more productivity in exchange for worse runtime performance. There also is no question that the built in abstraction makes an even bigger difference both in what is eventually produced.

    16. Re:Algorithms by caseih · · Score: 3, Informative

      And of course this "D" language is not to be confused with the other "D" language, which is Turing complete.

    17. Re:Algorithms by Lando · · Score: 1

      Challenge accepted.

      --
      /* TODO: Spawn child process, interest child in technology, have child write a new sig */
    18. Re:Algorithms by Anonymous Coward · · Score: 0

      Been there done that. Had to learn a miserable internal scripting language, surprise, surprise no pay increase for 10 years.

    19. Re:Algorithms by kramulous · · Score: 1

      Hi,

          I'm Australian. So as far as you possibly can get from technology and innovation.

          I can understand the need for a specific language from a technology giant. When you build the hardware platform as complex as these guys probably have, with the type, and volume (in space and time), of data they have from customers hitting various services, it makes sense to have an internal language that understands how the data is stored and when wanting to run queries you want them to be run in an efficient manner. And I'm not talking about efficient as in fast. I'm also talking about the thousands of other people who also want to run queries. I'd want a language that natively understands queuing, scheduling and load balancing so not to disrupt the normal operations. If you don't, you can bring hardware to its knees very quickly.

          I get it. I'd do the same thing. The wrong type of generic programming could potentially be very bad for a company whose job it is to deliver consistent service.

      --
      .
    20. Re:Algorithms by TeknoHog · · Score: 1

      You can implement a 3D game in Python, but its interpreter and memory management is going to make it much less efficient than the same game in C++.

      IMHO that is a rather unfortunate example. I'm sure people have written 3D games in Python with not so bad results, because the 3D heavylifting is done on a GPU anyway (via PyOpenGL).

      --
      Escher was the first MC and Giger invented the HR department.
    21. Re:Algorithms by Anonymous Coward · · Score: 0

      Coder lockin. That is the only reason to have your own language.

      And a fine "computer scientist" you are. Smells more like you're one of those who use arrogance to attempt to hide their own shortcomings, and just hope nobody exposes them. That's why they typically work in small "boutique" jobs where they can surround themselves with "code monkeys" so no one is the wiser.

    22. Re:Algorithms by Bogtha · · Score: 1

      A computer scientist can implement any algorithm in any language.

      Just because it's possible, it doesn't mean it's effective. Developers could write applications with Brainfuck or Whitespace, but they'd take far longer, have a lot more bugs, and be incredibly unhappy.

      There's a lot of variation between programming languages, and it makes a big difference in how productive programmers are. Better programming languages are valuable.

      Why are these companies using their own languages?

      Because they saw an opportunity to provide better tools for their developers. Take a look at the bridges between Objective-C and other languages. They are pretty clumsy. Apple designed Swift with Objective-C interoperability in mind, and this means using the system libraries is easier with Swift than other languages.

      Work a few years at XYZ company working on their proprietary algorithms in their ABC programming language?

      Good luck getting another job.

      All of the decent developers I know can make those kinds of leaps without a problem. There are always transferrable skills and there are always non-transferrable skills. Using one language doesn't lock developers into that language in the future, and using a common language doesn't avoid lock in. If iOS developers used Java, they'd still struggle with Android development at first because the majority of the knowledge you need relates to the platform, not the language. And likewise, just because iOS developers work with Objective-C, it doesn't mean they can't make the leap to Android.

      --
      Bogtha Bogtha Bogtha
    23. Re:Algorithms by Anonymous Coward · · Score: 0

      Compilations that took 45 minutes? Yes, nobody ever needs something else.

    24. Re:Algorithms by MikeBabcock · · Score: 1

      People have also written 3D games in LISP; that doesn't make it optimal.

      --
      - Michael T. Babcock (Yes, I blog)
  8. Why? by Spy+Handler · · Score: 1

    real men have their own programming language, that's why!

    Like how they used to say in the chip business, real men have their own fab.

    1. Re:Why? by jellomizer · · Score: 1

      You would also want your language to work best with the services you offer.
      Why was VB so popular for Windows Development? Well it was designed to make Windows Apps. Other languages could do this as well, but they were often a bit more cumbersome to achieve similar tasks.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    2. Re:Why? by dubbayu_d_40 · · Score: 1

      Yep, this. It all boils down to a really smart guy who's still trying to get respect by proving how big his academic dick is.

    3. Re:Why? by tlambert · · Score: 1

      Why was VB so popular for Windows Development? Well it was designed to make Windows Apps. Other languages could do this as well, but they were often a bit more cumbersome to achieve similar tasks.

      Actually, VB was popular because it lowered the bar on *who* could make Windows programs. It wasn't so much that it was better at making those programs, it was that vastly more people were capable of building working programs using it as a tool than using any other of the available tools. In terms of computer language learning curves, BASIC is still pretty hard to beat. In fact, I'd argue that no one has beat it yet.

    4. Re:Why? by Actually,+I+do+RTFA · · Score: 3, Insightful

      real men have their own programming language

      If I was in charge of a huge budget, and the ability to foist my language on the public, I would invent my own language. heck, every programmer wishes they could design the language everyone uses.

      --
      Your ad here. Ask me how!
    5. Re:Why? by Anonymous Coward · · Score: 0

      It has many advantages. You are in complete control of the language, the features and its future direction. You have full access to the source code and can find out exactly what's going on to fix any "showstopper" bugs. No one else will be able to maintain your systems, and if you're sold out or there is a "hostile takeover" many of your employees will keep their job because they are the only experts in your language.

    6. Re:Why? by narcc · · Score: 1

      Careful. On this site, that's flamebait. So is this:

      The reason we use programming languages is to make it easier to write programs. A good programming language, then, can be judged on how much easier it is to use than other languages. What does that tell us about BASIC?

    7. Re:Why? by caseih · · Score: 1

      The only problem with BASIC is that each compiler is its own non-standard dialect these days, many of which are proprietary, old-school non-FOSS institutions. FreeBASIC is very good, though, and open source. Modern dialects of BASIC (dunno about Visual Basic) are very structured and support a wide variety of programming paradigms from object-oriented to event-driven to procedural. Some dialects do enforce strong typing. So while you or I might not have reason to use BASIC as we have other languages we are equally at ease in, others might be right at home in BASIC and be able to write good code. For now I'm sticking to Python.

  9. Re:HACK FACEBOOK by Anonymous Coward · · Score: 0

    Bigshot online identity providers LinkedIn and Amazon were vulnerable to a novel attack that allowed ID fraudsters potential access to top websites – including Slashdot, NASDAQ.com and Crowdfunder – an IBM security duo have revealed.

    Really?

  10. Missing the Point by Capt.Albatross · · Score: 2, Informative

    While Mr Rosenberg claims that Go is distinguished by its approach to concurrency, his section 'The Essence of Go' is almost entirely devoted to the trivia of braces and semicolons. Yo won't learn anything about Go's approach to concurrency here.

    1. Re:Missing the Point by phantomfive · · Score: 1

      his section 'The Essence of Go' is almost entirely devoted to the trivia of braces and semicolons.

      Good point. You have succinctly captured why I feel like I learned nothing from that article.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:Missing the Point by iluvcapra · · Score: 1

      The whole article is sortof an exercise in textual essentialism.

      What does style tell us about what these things mean? It's a literary crit technique that might be applicable here, but he clearly either doesn't know what he's talking about or he's a dilettente who has absorbed the surface features of computer languages without groking the underlying concepts.

      --
      Don't blame me, I voted for Baltar.
  11. NIH by hawguy · · Score: 2

    I assumed it was a case a Not Invented Here Syndrome.

    1. Re:NIH by Anonymous Coward · · Score: 0

      This. It's pure fucking ego with a sprinkling of lock-in masturbatory fantasy (in Apple's case, particularly). There's a reason it took a long time for all the well-used languages to evolve, while these new languages won't go far beyond their founding workplace: despite what all the antisocial hero coders think, shit that stands the test of time has been designed with the input of the many, whereas crap that's here today and gone tomorrow has been designed by a handful of megalomaniacs.

      I spent time creating "better" languages at school, thinking I was hot shit, then I spent a few more years in the workplace understanding why the extra purity isn't worth a complete loss of pragmatism, experience, bug-tested libraries, general usability, etc. This is why multi-paradigm languages like Mathematica which frankly are pretty fucking ace in theory don't really spread beyond their original niches: it's not about how beautiful they are, but how useful they are.

    2. Re:NIH by Cassini2 · · Score: 1

      The Google vs. Oracle lawsuit made a business case for not-invented-here syndrome. I think every major platform vendor will have there own programming languages in the future. Custom APIs and programming languages stops entire classes of patent/copyright lawsuits dead. It stops developers from moving between eco-systems. It even prevents your employees from stealing top-secret software and moving to a competitors. (And if they do steal the software, it becomes really obvious when law-enforcement shows up.)

      I do agree from a portability/programmer perspective, NIH programming sucks. However, the legal perspective - it's great!

      Also, the funny thing with lawsuits - even if you win, you still lose.

    3. Re:NIH by hawguy · · Score: 1

      The Google vs. Oracle lawsuit made a business case for not-invented-here syndrome. I think every major platform vendor will have there own programming languages in the future. Custom APIs and programming languages stops entire classes of patent/copyright lawsuits dead. It stops developers from moving between eco-systems. It even prevents your employees from stealing top-secret software and moving to a competitors. (And if they do steal the software, it becomes really obvious when law-enforcement shows up.)

      I do agree from a portability/programmer perspective, NIH programming sucks. However, the legal perspective - it's great!

      Also, the funny thing with lawsuits - even if you win, you still lose.

      Given the permissive BSD style license that both Google and Facebook use for their respective languages, I don't think that they created these languages for any of these reasons.

      It seems that detecting stolen software would be easier if the code was stolen and used as-is. If someone steals secret Go language code from Google and moves to Facebook and rewrites it in Hack (after all, the the actual coding is the easy part of any software project so rewriting it is much easier than creating the project from scratch), it's going to harder to prove it's stolen than if someone steals secret Python code and moves to Facebook and runs it there. They *could* rewrite the python code, but they don't have to, whereas they'd *have* to rewrite software that's written in some proprietary language.

    4. Re:NIH by 0100010001010011 · · Score: 1

      This is a good thing.

      It means that schools will start teaching actual programming again instead of 'coaching to a language'. Colleges are cranking out Python/Javascript coders like they used to turn out Java coders. If every company is different maybe they'll teach the logic so that people can learn any language.

  12. Are these things catching on? by Marginal+Coward · · Score: 2

    Outside of their respective organizations, I'm not sure these things are really catching on. Adoption of Go seems to have come to a standstill. Uptake of Swift has been kindda slow. And Hack seems to been ignored even by dedicated underground computer hobbyists. As well as lumberjacks.

    1. Re:Are these things catching on? by Anonymous Coward · · Score: 1

      except for rocket, docker, coreOS, rackspace, and others that are rolling out more tools and services written in Go every day.

    2. Re:Are these things catching on? by Karlt1 · · Score: 1

      Uptake of Swift has been kindda slow.

      It's been out less than a year. Objective-C is the third most popular. Why wouldn't you believe that Objective-C developers wouldn't move over to Swift?

      http://www.tiobe.com/index.php...

    3. Re:Are these things catching on? by Marginal+Coward · · Score: 1

      Darn, I'd put that the thing about "lumberjacks" in, hoping that everybody who hadn't gotten it yet would finally C my Objective. ;-)

    4. Re:Are these things catching on? by Aighearach · · Score: 1

      Go isn't supposed to be widely used, just well supported on Google's cloud.

  13. Re:HACK FACEBOOK by Anonymous Coward · · Score: 0

    The name alone is a reason to never touch that language?
    A: What do u do? B: I'm a hack programmer!
    *A runs away*
    I'd give it to Apple for being most responsible of the 3 (we really don't don't need Go, or Dart or Hack, but Objective C is too verbose. Enter Swift. You could add SAP ABAP or Salesforce APEX as well of course but they're even more irrelevant I guess.
    I have higher hopes for Mozilla's Rust than any of the above.

  14. Re:HACK FACEBOOK by Anonymous Coward · · Score: 0

    Looks that way from the article posted and what have you.

  15. If languages had mascots by ArcadeMan · · Score: 2, Funny

    Then Red Forman would be the mascot for Swift.

    As in, a swift kick in the ass. Dumbass.

  16. Nothing new by Anonymous Coward · · Score: 0

    This is nothing new AA had Sabretalk back in the 80s.

  17. Good reasons for Swift and Go by sideslash · · Score: 3, Interesting

    Swift needed to be created because Objective C stinks, and no other modern language would have fit smoothly into the Smalltalkish legacy of the Cocoa framework. I'm just glad that the Apple fanboys who constitute most of my fellow iOS developers are finally allowed to believe bad things about Objective C, at least now that there's a nice alternative. Made me a little sick before to hear people praising Obj-C while writing reams of ridiculously verbose code that nobody will want to maintain 5 years from now.

    Go is a fantastic language for server side development with concurrency that's not painful to wrap your head around, and is perfect for cloud development in Google's world.

    Won't comment on Facebook Hack, since it's not clear to me why Facebook itself needs to exist. But to each their own...

    1. Re:Good reasons for Swift and Go by Anonymous Coward · · Score: 2, Insightful

      Swift needed to be created because Objective C stinks, and no other modern language would have fit smoothly into the Smalltalkish legacy of the Cocoa framework. I'm just glad that the Apple fanboys who constitute most of my fellow iOS developers are finally allowed to believe bad things about Objective C, at least now that there's a nice alternative. Made me a little sick before to hear people praising Obj-C while writing reams of ridiculously verbose code that nobody will want to maintain 5 years from now.
       

      Objective-C is fine. The square brackets syntax just become second nature and disappear into the background after a couple of days. And personally I have no objection to methods with long names - it helps me understand what has been written when I return to a program after months (or a year) away. The long names actually make the code more readable and maintainable. I like Objective-C and have no bad things to say about it or the concepts behind it.

      What Swift does bring is enhancements that I would like to see in Objective-C - for instance return values with tuples. There are other enhancements as well. However, Swift is too new to really say if it will be successful.

    2. Re:Good reasons for Swift and Go by HiThere · · Score: 1

      The problem with Objective-C is its libraries. Nobody has put much work into the cross-platform ones for a decade, and it shows. And since I don't use Apple, Cocoa is of no interest to me, but all the documentation refers to it. So I ignore Objectve C.

      I find it a very interesting language that's hobbled by lack of usable documentation. (Even for cross-platform stuff I got redireected to the Apple site.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    3. Re:Good reasons for Swift and Go by sideslash · · Score: 1

      And personally I have no objection to methods with long names - it helps me understand what has been written when I return to a program after months (or a year) away. The long names actually make the code more readable and maintainable.

      No, in many cases the extra length is just ridiculous boilerplate. And even in cases where the extra length clarifies what's going on, you can do the same thing in other languages, i.e. every language supports use of meaningful names.

      Can you seriously argue that concatenating a string in Objective C is elegant?

      Be careful! You're repeating yesterday's Dogma of the Faithful. Apple fanboys now have corporate blessing to move to Swift, and you may find yourself left behind. /joke, joke

    4. Re:Good reasons for Swift and Go by Anonymous Coward · · Score: 0

      When I hear people complain about writing verbose code I imagine the horribly terse variable and function/method names that I come across. Abbreviations that only the original coder can decipher. I think they complain because they are working in a language that prods them to make their code meaningful to someone other than themselves.

      Also, is it just me or does anyone else think BASIC when they see 'let x =...'. It just makes my skin crawl. :-)

    5. Re:Good reasons for Swift and Go by sideslash · · Score: 1

      The problem isn't clear naming of variables. It's boilerplate in the library that you can't get away from. Talk about making your skin crawl, try doing very much with NSString's. Anyone who has worked in a high level language with a concatenation operator (typically "+" or "&" or ".") will feel bewildered at the ridiculous hoops Objective C makes you jump through.

      Check out: http://stackoverflow.com/questions/510269/shortcuts-in-objective-c-to-concatenate-nsstrings

      Every action that should be common, quick and simple requires forming a committee.

    6. Re: Good reasons for Swift and Go by Anonymous Coward · · Score: 0

      To my knowledge GNUStep is still under active development. Has there been some kind of change?

    7. Re:Good reasons for Swift and Go by Bogtha · · Score: 1

      You don't have to be a fanboy to like Objective-C. It's a great language for its age and use cases. Yes, it's verbose, but a lot of that verbosity actually aids readability and maintainability.

      --
      Bogtha Bogtha Bogtha
    8. Re:Good reasons for Swift and Go by Bogtha · · Score: 1

      even in cases where the extra length clarifies what's going on, you can do the same thing in other languages, i.e. every language supports use of meaningful names.

      But Objective-C is very unusual in that it interleaves method parameters with the method name. The best alternative to that is using named parameters, and hardly anybody uses those all the time, so developers end up having to memorise the arguments and their order for every method if they want to be able to read code quickly.

      Can you seriously argue that concatenating a string in Objective C is elegant?

      No, but it is consistent, and that's very important to readability and maintainability too. If you knew nothing about NSString, but you were familiar with the rest of Objective-C, then you could easily guess how to concatenate strings.

      The only substantial way of improving on string concatenation in Objective-C would be to introduce custom operators, and that brings its own set of issues. The other alternatives sacrifice consistency.

      --
      Bogtha Bogtha Bogtha
    9. Re:Good reasons for Swift and Go by sideslash · · Score: 1

      The only substantial way of improving on string concatenation in Objective-C would be to introduce custom operators, and that brings its own set of issues. The other alternatives sacrifice consistency.

      I think it's telling that the ultimate way Apple found to improve on Objective-C is to put it on a retirement path by introducing a replacement language. That's mostly all I'm saying here.

    10. Re:Good reasons for Swift and Go by Dog-Cow · · Score: 1

      That is an invalid complaint to lay at Objective-C's feet. Objective-C is designed, even now, to be a strict super-set of C. There is no way to overload operators in such a context and still maintain compatibility with C.

    11. Re: Good reasons for Swift and Go by HiThere · · Score: 1

      I haven't looked at it often, but it the last time I looked it still looked the same. However the real problem is the documentation.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    12. Re:Good reasons for Swift and Go by jeremyp · · Score: 2

      The only substantial way of improving on string concatenation in Objective-C would be to introduce custom operators, and that brings its own set of issues. The other alternatives sacrifice consistency.

      Actually, you could quite easily bring custom operators to Objective-C by adopting the Smalltalk approach. Simply allow symbols to be messages e.g.

              [@"foo" stringByAppendingString: @"bar];

      could be written as

              [@"foo" +: @"bar];

      Smalltalk allows you to drop the colon with binary operators so you could even have

            [@"foo" + @"bar];

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
  18. hammer, screwdriver, saw, nail gun by raymorris · · Score: 1

    >. A computer scientist can implement any algorithm in any language.

    ou CAN pound a nail with a screwdriver. You can even pound a nail with a saw. A hammer is a much better, more efficient tool for that job. If you need to install hundreds of nails, a nail gun is a much better tool.

    I COULD use VB to convert one type of XML to another, but I use xslt (true xslt, not loops) because it's a better tool for the job. I use several languages each day, selecting the one best suited for the task at hand.

    > if you cannot implement that algorithm in that language then you are nothing but a code monkey.

    If you DO implement all algorithms in your favorite language (JavaScript?!?!?) ... well, you're like the "contractor" who owns nothing but a hammer, and says "I can't do it with a hammer..."

    PS - generally there is one condition that decides whether JavaScript is the best choice . JS is the best choice if and only if that's the only possible option. For client-side logic in a web page that needs to work in multiple browsers, it's the best option because it's the only option. Anywhere else, there is probably a better tool for the job.

    1. Re:hammer, screwdriver, saw, nail gun by narcc · · Score: 1

      generally there is one condition that decides whether JavaScript is the best choice . JS is the best choice if and only if that's the only possible option.

      This opinion sounds uninformed.

  19. tired of dead tree books relevant only a year or 2 by CoderFool · · Score: 1

    safari books online.
    www.safaribooksonline.com
    imho certainly worth the money...

  20. Apple had the best reason of all for a new languag by SuperKendall · · Score: 0

    in Apple's case, particularly

    That is exactly backwards.

    Apple needed to go forward with a new language, but no other language offers the kind of interoperability that Swift does, nor would any existing language designers have been willing to bend to make that happen.

    In Apple's case they designed a modern language that you can use to the fullest, while at the same time having easy bridging to Objective-C so that developers (including Apple's developers!!) can chose a transition timeline that makes sense for what they are doing.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  21. This isn't carpentry. by Anonymous Coward · · Score: 0

    Just because you CAN code an algorithm in a language doesn't mean it's the best option. Just because I can drive a screw into a 2x4 with the heel of my shoe doesn't mean I should.

    Please, stop with the carpentry analogies. This isn't carpentry.

    Languages are developed to make certain problem domains easier.

    I agree somewhat. Yeah, writing an OS in Python would be a bitch and probably require some firmware written in 'C' and I find writing my Internet data scrapers and text parsers much easier in Python that it would be in 'C' - because those libraries are built into the language.

    IOTW, folks confuse language syntax with the libraries the language has.

    Python isn't a better language for manhandling web content than C; it's built-in libraries are simpler to use (i.e. it's seamless).

    But what get's me is that these companies can do quite well with using existing languages and just adding an API. Instead of spending all their time on developing a new language, why no just create an API and use Javascript, Python, C, C#, BASIC, Perl, R's ...whatever? ANY of those languages are more than capable of doing what they need.

    Why Another Fucking Language - WAFL?

    1. Re: This isn't carpentry. by tysonedwards · · Score: 1

      The NIH mentality and largely the spirit behind what open source is. Can some other tool do it with a new api or plugin and do 99.9% of what Hack, Go or Swift does? Probably. Does this concept of a new forked language or an entirely new solution prevent changes from going back upstream? Absolutely. But it enables those involved to take risks and to experiment with things that they may not have otherwise been willing to consider, and to spur ideas and innovation from others; maybe even helping to advance our state of technology a bit.

      --
      Thirty four characters live here.
    2. Re: This isn't carpentry. by Anonymous Coward · · Score: 0

      I have no idea what you said.

      But based on what I gathered - programming languages haven't improved since the 1980s.

      There have been some nice tweaks -like Python - but, nah.

      Things really haven't changed in 30 years - contrary to the marketing guys.

      Open Source is just rehashing proprietary shit.

    3. Re: This isn't carpentry. by TimMD909 · · Score: 1

      I agree carpentry is inappropriate. Should've been a car analogy.

    4. Re:This isn't carpentry. by jbolden · · Score: 1

      IOTW, folks confuse language syntax with the libraries the language has.

      Libraries aren't the issue, it is the choice of primitives. The reason shell scripting languages are so pleasant for system administration is because files are a primitive. cp /X1/X2/X2 /Y1/Y2 working is huge in simplifying the code conceptually. That's why DSL's exist, to allow programers to work with better primitives.

      In the case of Swift the primitives are Cocoa data structures. And there wasn't another high level language with those primitives.

    5. Re: This isn't carpentry. by Anonymous Coward · · Score: 0

      > Open Source is just rehashing proprietary shit.

      This. I'm an old timer. This is the truest statement I've read. I don't get very excited about open source that modern programmers think if so cooool! In the late 80s we had an in-house proprietary pub/sub message queuing guaranted delivery messaging system. We built our own memcached. We had in an memory db like Redis that persisted over reboots.. we had a proprietary lisp like language that was embedded in all our products and we shipped lisp objects on our pub sub bus whereas today the world has JSON and Javascipt. In the mid 90s we built these into web servers and created template languages to build fast web front ends that could read and display data from our pub/sub bus or pull data from our in memory db store. The best thing about being proprietary is that everything just worked together. There was only one standard. Using open source today on any project usually means 3 or 4 different language choices, equally 3 or 4 different databases online

      The most advances have been in the client side. We didn't have the client frameworks like Angular today. That new and

    6. Re: This isn't carpentry. by Anonymous Coward · · Score: 0

      Damn I had a heart attack while writing this

  22. Domain-Specfic is a more compelling case... by jtara · · Score: 5, Informative

    These all strike me as iffy use cases. What is more compelling is creating a language for some more-specific need. These are generally referred-to as Domain Specific Languages, or DSLs (not to be confused with trying to push high-speed internet over a twisted pair...)

    I designed one and implemented a compiler and interpreter for it in the early 1980's. It's not all that hard. I had had one compiler construction course in college. I used classic tools Yacc/Lex/Prep and wrote it in C.

    The language is (was? haven't followed) called VSL, or Variation Simulation Language.

    The problem was this: in the early 80's auto companies were experimenting with variation simulation. It's simulating the build of complex mechanical assemblies so that the effects of dimensional variations can be analyzed. The technique was developed at Willow Run Labs during WWII, as part of the solution to the awful-quality airplanes they were building for the war. They gathered experts to fix the problem, and they used this technique. At the time, it was done by a room full of woman working Friden mechanical calculators...

    So, in the early 80's there was some Fortran code written by a university professor that ran on a mainframe. I worked for a company that set out to commercialize it. My first task was to port it from the mainframe to IBM PC.

    Two problems: Models were written in Fortran, and then linked against a library. Fortran is painful, for anything. It's especially painful for manipulating representations of 3D objects. And compiling and linking Fortran on a PC was slow! Half-hour builds! And that's just to find you had a syntax error and then rinse and repeat.

    My boss wanted to build a "menu system" that engineers could design in. Keep in mind, we are talking 80's and this was just to be a scrolling text menu. Yes, there were graphics workstations, but this was a new untested product, and nobody was going to pop the $20,000 that they did for, say, finite element workstations. they wanted it to work on a PC so that we could more easily convince the auto companies to try it - make it an easier decision to give it a go.

    He wrote up the menu system, and presented it to us in the conference room. He rolled-out a roll of paper the length of the conference table, and then it hung over both ends! I convinced him that the time for this approach had not yet come.... Sure, point and click on graphics - but he couldn't afford either the time or money for that development. But not that silly long-ass text menu!

    The alternative was VSL. It was specifically-tailored to the task, it had "objects" of a sort - and by this I mean "3D objects". You could just pass a fender around in a function call, for example.

    It didn't compile to machine code, but generated bytecode. I wrote an interpreter in Fortran, and so eliminated the costly link step. The Fortran program just read the bytecode into an array and interpreted it. Was it slow? No, it was fast as heck! That's because almost all the work was done in well-optimized library functions written in Fortran or even assembly in some cases. (I also talked my boss into hiring an actual mathematician who fixed our broken edge cases, and knew the right heuristics to speed things up.)

    This made it much easier for engineers to create and use models. Now they wrote them in VSL, much more expressive to the task than Fortran. And in a minute they either knew they had a syntax error or were testing their model.

    In a couple years, we went from a couple of pilot projects to like 50. Every auto company took it up. Boeing used to help re-engineer the FA-18. Today probably every car, airplane, and hard drive was analyzed using VSL. (Siemens wound-up with the product eventually, after a few acquisitions.) I don't know if VSA is still under the hood, or if it really has any practical use today: the models are now written using point/click/drag/popup stuff on drawings. What my boss new we had to eventually get to, but couldn't at the time.

    Of the languages mention

    1. Re:Domain-Specfic is a more compelling case... by Anonymous Coward · · Score: 0

      "Fortran is painful, for anything. It's especially painful for manipulating representations of 3D objects."

      No and no. Fortran-77 is as simple as BASIC or C, and it excels and matrix manipulation via netlib, lapack, and NAG.

    2. Re:Domain-Specfic is a more compelling case... by Anonymous Coward · · Score: 0

      Bennett? Is that you?

    3. Re:Domain-Specfic is a more compelling case... by Anonymous Coward · · Score: 0

      Go is not a good language, but it does help C programmers make fewer mistakes. Really though, if you're adopting a garbage collected language like Go, then you should just adopt a good language like say Erlang.

  23. Go does not see significant use, even at Google. by tlambert · · Score: 3, Interesting

    Go does not see significant use, even at Google. It's one of the allowed implementation languages, along with Python, JavaScript, and C/C++, but it doesn't see a lot of uptake internally at Google.

  24. Re:Apple had the best reason of all for a new lang by Anonymous Coward · · Score: 1

    so that developers (including Apple's developers!!) can chose a transition timeline entirely at apples discretion to change everything yesterday and not tell you til next month.

  25. Proud tradition by Just+Some+Guy · · Score: 3, Interesting

    Like when Bell Labs developed C to write Unix? There's a long tradition of major companies coming up with new languages to scratch an itch. Thank God is hasn't died. How boring to live in a time when we'd decided that there was nothing left to innovate?

    --
    Dewey, what part of this looks like authorities should be involved?
    1. Re:Proud tradition by drjzzz · · Score: 2

      Bell Labs didn't develop C; in fact I think Bell Labs hardly knew what to do with it. Two (brilliant) people -- Keringhan and Ritchie -- working in Bell Labs wrote C and developed Unix so that they could do what they wanted, better and quicker, on the minicomputers around their labs. Their slim volume "The C Programming Language" is amazingly engaging, concise, and deeply instructive. Modern IDEs are great for many things but they also constitute a significant hurdle to actually coding, which K&R had you doing pronto in a succinct, introductory tutorial chapter.

      --
      to err is human, to forgive is divine, to forget is... umm...
    2. Re:Proud tradition by Anonymous Coward · · Score: 0

      If you think C wasn't developed by Bell Labs, you don't understand how Bell Labs worked. Letting brilliant people go do stuff with the flimsiest pretense of a relation to telephony was standard operating procedure. That's what made it so important, and why modern companies are bush league in comparison for true R&D.

    3. Re:Proud tradition by drjzzz · · Score: 1

      You credit the environment, which was certainly spectacularly nurturing at Bell Labs. But don't conflate that with the sort of corporate development that produced these new languages (Swift, Go, Hack). Corporate entities may produce invaluable Technical Journals etc. but rarely, if ever, elegant, inspiring ideas, products, or books like K&R.

      --
      to err is human, to forgive is divine, to forget is... umm...
    4. Re: Proud tradition by Anonymous Coward · · Score: 0

      I have to agree. I still have the original "the c programming language"

      you jump right in and program, good tutorials and great explanations of why things work the way they do.

  26. Where you gonna go? by Anonymous Coward · · Score: 0

    Perhaps it's done to discourage employees from changing jobs?
    If all you know is "Go", where you gonna go?

    1. Re:Where you gonna go? by gnupun · · Score: 1

      Go is an open language and was created because while Python was very useful to Google, it was also quite slow. Hence they wanted a faster and more parallel version of Python (which runs single threaded even on multi-core CPU platforms).

      Swift was baldly needed because the time taken to write an ios app in objective-c is too long. Also Apple does not want your iOS app to be easily portable to other mobile OSes (lock-in).

    2. Re:Where you gonna go? by Anonymous Coward · · Score: 0

      Exactly. This is a legal method of poaching-prevention unlike the non-poaching agreements.

    3. Re:Where you gonna go? by Karlt1 · · Score: 1

      Swift was baldly needed because the time taken to write an ios app in objective-c is too long. Also Apple does not want your iOS app to be easily portable to other mobile OSes (lock-in).

      If only there were some cross platform language that could interop with Swift that you could use to write the code you wanted to be portable.....

      How portable do you think an Android app is to any other mobile platform?

    4. Re:Where you gonna go? by gnupun · · Score: 1

      How portable do you think an Android app is to any other mobile platform?

      I'm guessing here, but you could port your java android app to a mobile windows .net app. The java and .net APIs may be different, but both languages are remarkably similar.

    5. Re:Where you gonna go? by Anonymous Coward · · Score: 0

      If only there were some cross platform language that could interop with Swift that you could use to write the code you wanted to be portable.....

      You can use Nimrod (http://nimrod-lang.org) to program mobile apps, iOS and Android. It's even better than Swift, so you can free yourself from the platform specific Swift and write for example backend code or web apps with it too (also compiles to JS).

  27. Real purpose is to restrict mobility. by Anonymous Coward · · Score: 0

    If you force your programmers to learn Go, it's less likely Apple will steal them as their programming experience will be in a language that is useless to them, and to any other company.

  28. Re:Go does not see significant use, even at Google by HiThere · · Score: 1

    Have you read the bit about "Concurrency is not MultiProcessing" (or something that means the same thing). Go is a single threaded language, which is concurrent but not multiprocessing. So there's basically no payoff in many cases from using it, and you've got to run it through an interpreter (unless you use the gcc version).

    So why bother?

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  29. Re:Slashdot got hacked (read all about it) by HiThere · · Score: 1

    Sounds more like linked-in got hacked, and this hack could be used to sign into Slashdot.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  30. Re:Apple had the best reason of all for a new lang by Anonymous Coward · · Score: 0

    Someone drank too much of the koolaid.

  31. How d'ya like "beta" now by Anonymous Coward · · Score: 0

    So how d'ya like "beta" now? Only a fool would've used the design /. did.

  32. Re:Apple had the best reason of all for a new lang by Anonymous Coward · · Score: 0

    You are right. The Nimrod programming language (http://nimrod-lang.org) is essentially a much better swift (macros for meta programming), cross platform, and I've been using it for a year with great pleasure. But it has a hard time to interact with objc, and that is Apple's inheritance. Pity, hopefully Swift 2.0 will catch up with Nimrod and provide macros too, they are really sweet.

  33. Re:HACK FACEBOOK by dgatwood · · Score: 1

    ... Objective C is too verbose.

    Other than a handful of obvious edge cases (the worst of which were fixed with fast enumeration and string and number constants), I'd argue that it mostly isn't Objective-C that is too verbose, but rather the Cocoa APIs themselves. And you'll be using those same ginormous scrubtheKitchenSink:withBrilloPad:andCleanser:byHand:usingExcessiveForce: methods in Swift, just with slightly different punctuation....

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

  34. Re:Apple had the best reason of all for a new lang by Anonymous Coward · · Score: 0

    I disagree. Dylan was very innovative at its time, but I can't see what's so great about Swift from the admittedly cursory look I've taken at it, although I can understand why someone who is used to Objective-C might like it.

    Apple could have done much better. Perhaps language marketing played a more important role than language design this time.

  35. Good reasons for Swift and Go by pak9rabid · · Score: 1

    Won't comment on Facebook Hack, since it's not clear to me why Facebook itself needs to exist. But to each their own...

    My understanding is that Facebook needed a more statically-typed language (while still preserving the familiar syntax of PHP) in order to exploit more performance advantages when compiling their code to the HHVM, which started off as a PHP compiler.

  36. Re:Go does not see significant use, even at Google by Anonymous Coward · · Score: 0

    Yes Go offers a simple lightweight single thread concurrency with asynchronous support.
    However, runtime.GOMAXPROCS(2) will give you 2 proc multithreading run in parallel, etc.

    Go is probably the most potentially useful language. But it doesn't have enough of a user and development base to replace C++. And while it may take 45 minutes to do a build on large C++ project, you do get a lot of control over the process and built-in optimisation so that the code will run faster. Go is pretty much Pike and Thompson latest concurrent toy (after Newsqueak, Alef & Limbo).

    Apple has always had custom environments, they will just eventually have Swift instead of Objective C at the heart of them. So not much change.

    The article is well written for a general audience but not very technical. It makes no mention of Dart, which is the one real attempt and an imperial takeover by a corporate giant. But all Dart does is allow Google's apps to run faster on Chrome. Other browser makers don't see any advantage in this, not enough to put a second language into them anyway, and in fact seem to think that Google's apps running slower than native Javascript on their browser is just fine.

  37. Re:Go does not see significant use, even at Google by Anonymous Coward · · Score: 0

    Go code is compiled, not interpreted.

  38. How was C any different? by Anonymous Coward · · Score: 0

    The author seems to believe C was born open sourced. Not only was it invented by a big company employee for a specific purpose, when Pascal already existed, it was so proprietary that hackers used to break into AT&T buildings to learn how to code in it.

  39. counter-example? by raymorris · · Score: 1

    I said it is the best choice for client-side processing on web pages, because it's the only plausible option. Where other options exist, the others are probably better suited to the task.

    If you disagree, can you come up with a counterexample, any scenario where you'd consider using something other than JavaScript, but decide JavaScript is better than the alternative? I'm curious what solutions could be worse than JavaScript. As stated in what you quoted, I do mean solutions - things that would work, but not work as well as JavaScript.

    1. Re:counter-example? by narcc · · Score: 1

      Where other options exist, the others are probably better suited to the task.

      I can't imagine what you'd think is better. Other languages have adopted features like first-class functions and closures as a direct result of influence from JavaScript. What does that indicate to you?

      Taking it further, the prototypal approach to OO that JS uses is, without question, superior to the classical approach. As there are vanishingly few examples of other languages that use prototypes instead of classes, just about any language you can offer as a substitute would be, necessarily, inferior. (A simple example for you, repeating a popular meme: Today, the 'best practice' is to favor composition over inheritance. JS naturally lends itself to composition; unlike Java, C#, and similar languages. Alternately: If you're a fan of the GoF book, for some reason, you'll immediately notice that many of the patterns described there are unnecessary in JS.)

      To cement the point, the feature of the language most criticized (its type system) is uniquely well-suited to its intended purpose, making it exceptionally well-fit for the web. (Other popular criticisms stem from pure, unadulterated, ignorance: The behavior of this, for example.)

      See, what you've done is adopt a popular (on slashdot anyway) opinion of a language that you don't understand. That makes you feel good when you're praised for making vague criticisms (like the one above) and validated when you read (equally uninformed) posts from others.

      I'm curious what solutions could be worse than JavaScript.

      Java and Python would be examples of popular languages that would clearly be worse than JS on the web, each for different reasons.

    2. Re:counter-example? by Jack9 · · Score: 1

      > Taking it further, the prototypal approach to OO that JS uses is, without question, superior to the classical approach

      Please point to the study that demonstrates this. I would argue the opposite.
      Runtime definition of types (modifications to a prototype has the same effect) has never been shown to be more productive than static typing, so I have to question assertions that it's obviously true.

      > Python would be examples of popular languages that would clearly be worse than JS on the web

      Java on a browser wouldn't be Java anymore than javascript is (they share some syntax!). Any modern scripting language is going to have to deal with a browser environment in similar ways, so we can just treat them the same. Why isn't a scripting language appropriate? Yes you would have to design a syntax for portability and make a browser vm, but so what? That's part of implementing a language in what we currently have as a browser client.

      --

      Often wrong but never in doubt.
      I am Jack9.
      Everyone knows me.
  40. Re:Go does not see significant use, even at Google by Anonymous Coward · · Score: 0

    It's "Concurrency is not Parallelism". However Go supports both just fine: I rote a multithreaded image processor in Go that got linear speed up with the number of CPU cores. That's simply not the only (or main) use of the concurrency primitives in go.

    Also the original/default Go compiler is not an interpreter. Its a real compiler. While its not great at optimizing, decently written code runs at speed somewhat close to C, and some code will run about as fast as C. It was compiled at the original public release and still is.

  41. Re:Go does not see significant use, even at Google by juanfgs · · Score: 1

    , and you've got to run it through an interpreter

    My god... did you... what?... Ok... this guy doesn't know shit about what he's talking about. Go is compiled.

  42. Re:Apple had the best reason of all for a new lang by SuperKendall · · Score: 1

    If Apple had moved to a whitespace-active language I seriously would have switched to Android development.

    Not even joking. I have used a lot of languages professionally and for fun, but I could not get past that aspect of Python and I can't see why such an insane design flaw would be any more tolerable in Nimrod.

    It has so many dangers in terms of correctness and overlooked bugs...

    There was one other language that bugged me in... Fortran... but at least there is only affected what was a comment, it didn't oversee control flow.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  43. iow no, not one counter-example by raymorris · · Score: 1

    You could have said the same thing with a lot less words had you phrased it as:

    No, I can't think of even one application where you'd consider two languages and decide JavaScript was better for that application.

    I didn't say JavaScript doesn't have a lot of features. It does have a large mishmash of features. I said it'll almost always be the worst choice, if you have any other option.

      > its intended purpose, making it exceptionally well-fit for the web.

    It's the ONLY choice for client-side web. As I said twice before, that's the one place nothing is worse or better - because you have no other choice.

    > Java

    Since neither iOS nor most Android devices run Java applets, that means MOST users today won't run them. A "solution" that won't run at all for most users isn't a solution. You can't say "Java and JavaScript would both work, but JavaScript would be better".

    If you're advocating JavaScript as a server-side language, well that's just silly. Learn any language designed for server-side and after you understand it tell me JavaScript is better suited.

    > (Other popular criticisms stem from pure, unadulterated, ignorance: The behavior of this, for example.)

    If a key component of the language behaves in unintuitive, surprising, and troublesome ways, that's a valid criticism. See "principle of least surprise".

    1. Re:iow no, not one counter-example by narcc · · Score: 1

      It's the ONLY choice for client-side web. As I said twice before, that's the one place nothing is worse or better - because you have no other choice.

      You seem to forget that, for many years, it was not the only choice. JS handily beat the competition. You may be too young to remember those early days, so I won't hold it against you.

      Since neither iOS nor most Android devices run Java applets, that means MOST users today won't run them. A "solution" that won't run at all for most users isn't a solution. You can't say "Java and JavaScript would both work, but JavaScript would be better".

      Again, you forget your history. Java in the browser was effectively dead long before iOS and Android hit the scene. It lost out for a reason, after all. Java had its chance, there was more than a little excitement surrounding it, and it still failed miserably.

      If you're advocating JavaScript as a server-side language, well that's just silly.

      I'm not advocating anything, just calling out your opinion as unsupported and uninformed. (You've never explained your reasoning. I assume that's because there is none and your just repeating a meme.) Still, you'll find that JS on the server is getting quite popular. Even sites like PayPal have adopted it. Call me crazy, but I'm pretty sure they're well-aware of the alternatives and selected JS anyway.

      If a key component of the language behaves in unintuitive, surprising, and troublesome ways, that's a valid criticism.

      In the case of this, it's only surprising if you know absolutely nothing about the language. If it behaved the same was that it does in a language like Java, it wouldn't make any sense at all. Once you understand the basics of the language, it behaves exactly as you would expect. As I said before, that criticism stems from pure, unadulterated, ignorance. For whatever reason, people seem to think that they don't need to learn the language before using it -- even though it's dramatically different from other languages.

  44. interesting points, link by raymorris · · Score: 1

    You've made some good points, and ones directly responsive to my statement this time. That is true, once upon time Java was a serious option on the client side and it did have the hype. So much so that Livescript was renamed JavaScript to take advantage of the Java hype. JavaScript won, against actual competition. Ps I WAS around during that time, and I've written ActiveX controls for use on public web pages. JavaScript beat both ActiveX and Java in the browser.

    The PayPal link is interesting as well. I was curious what their reasoning was, given the plethora of server-side languages, why choose one that's very much designed for a very different role in a very different environment, with very different constraints? They said the primary reason was so that there front-end Javascript developers could also author the matching server-side portion. That's interesting and a little surprising to me. Note one subtle distinction that may not be important except in the context of this thread - they did not say - JavaScript was best suited for the role of server-side development, they said that they wanted a particular team to do server-side and that team only knew JavaScript.

    It turned out that for PayPal, Javascript did the job just fine for them. So I'll revise my statement:

    If all you know is JavaScript, it might be enough to get the job done.
    If it's client side web browser code, JavaScript is the only workable option because it beat Java in this role.
    Otherwise, where you have a choice, JavaScript is NORMALLY not the best suited for any role other than client side web page code. Exceptions may exist.

    1. Re:interesting points, link by narcc · · Score: 1

      Otherwise, where you have a choice, JavaScript is NORMALLY not the best suited for any role other than client side web page code. Exceptions may exist.

      That's a bit more reasonable. Though I wonder why you limit its utility like that? Is there something intrinsic to the language that makes you think it's less suitable than, for example, Python in situations where that language is well-suited? For clarity: JS can't replace PHP where it works well for reasons independent of the languages themselves (that's in the differences between node.js and mod_php), yet JS obviously can't compete with C where C shines, for obvious reasons directly related to the languages.

    2. Re:interesting points, link by raymorris · · Score: 1

      I'm not well-versed enough in Python to to an indepth analysis, but I can say that Python appears to be ideally suited for roles that were once done by shell scripts. The Red Hat installer Anaconda seems like a perfect role for Python, with a lot of interaction with external binaries and very little real computation. The focus of JavaScript, the purpose for which it is created, is of course different.

      Further, I would say that unlike Perl or C++, a key constraint on the development of JavaScript was time. Technology moved fast in the early days of the web, and having a workable language now was much better than having a great language ten years later. That resulted in some goofiness like pairs of very similar functions that take their arguments in different, apparently random order. You can't change the argument order of strStr in the next version of the language, so some of that silliness remains. Java is the same in this respect, for the same reason. Java more than JavaScript due to it's very short development timeline. Perl, on the other hand, was slowly developed by a linguist. It's terse, but very consistent and logical.

      PHP suffers from a related problem - it was designed as a CMS, not a general purpose programming language, and it was written in Perl. The affects of that still linger, with many of the issues being resolved just recently.

      So I'd class JavaScript with Java as languages heavily influenced by schedule and business / marketing considerations of their parent companies, rather than designing a language best for users. C, C++, Perl, and even VB6 are more designed for usage as opposed to marketing of the languages themselves.

  45. Re:Go does not see significant use, even at Google by HiThere · · Score: 1

    I had assumed that:

    The linkers in the gc tool chain (5l, 6l, and 8l) do static linking. All Go binaries therefore include the Go run-time, along with the run-time type information necessary to support dynamic type checks, reflection, and even panic-time stack traces.

    A simple C "hello, world" program compiled and linked statically using gcc on Linux is around 750 kB, including an implementation of printf. An equivalent Go program using fmt.Printf is around 1.2 MB, but that includes more powerful run-time support.

    meant that the go compiler was basically a "byte-code compiler", and that this code was run through an interpreter.

    By "byte-code compiler" I actually mean it was used to generate a bunch of calls to library routines that did the actual work. I wasn't actually presuming that the op-codes were single bytes, as I consider that irrelevant.

    The claim that "it runs as fast as C" is one that I've heard most interpreted languages since Java make, so I pretty much ignored it. I did note that they considered the LLVM to be too slow, but I interpreted this as meaning they build a customized virtual machine.

    OTOH, the gcc version of go does compile to machine code, so there's nothing inherently improbable in it actually compiling to machine code. That's just not the way I read things. (I also think of Java as an interpreted language, and Python, and Ruby...though at least in the case of Java and Python the more technically correct phraseology is that they are compiled to a virtual machine.)

    For that matter one could say that UCSD Pascal was compiled to a virtual machine, but it was always called an interpreted language.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  46. Coder Lockin by DarthVain · · Score: 1

    Not only that, but I think it is more relevant to developer lock in to a particular platform. Just like C# and Apple, and say porting video games from Xbox to Playstation. They want exclusivity on applications developed for their particular platform. This is nothing new. It is just a way to exclude competition to their particular market, and to prevent or at least make it more difficult to get the same functionality from a competing service.

    As probably many people mentioned, any coder worth their salt can use or learn any new language without too much effort. Coders with multiple experience would of course have an edge.