Slashdot Mirror


Programming Languages You'll Need Next Year (and Beyond)

Nerval's Lobster writes: Over at Dice, there's a breakdown of the programming languages that could prove most popular over the next year or two, including Apple's Swift, JavaScript, CSS3, and PHP. But perhaps the most interesting entry on the list is Erlang, an older language invented in 1986 by engineers at Ericsson. It was originally intended to be used specifically for telecommunications needs, but has since evolved into a general-purpose language, and found a home in cloud-based, high-performance computing when concurrency is needed. "There aren't a lot of Erlang jobs out there," writes developer Jeff Cogswell. "However, if you do master it (and I mean master it, not just learn a bit about it), then you'll probably land a really good job. That's the trade-off: You'll have to devote a lot of energy into it. But if you do, the payoffs could be high." And while the rest of the featured languages are no-brainers with regard to popularity, it's an open question how long it might take Swift to become popular, given how hard Apple will push it as the language for developing on iOS.

315 comments

  1. Over at Dice? by eldavojohn · · Score: 4, Insightful

    Over at Dice

    But we are at Dice, sir:

    [Querying whois.publicinterestregistry.net]
    [whois.publicinterestregistry.net]
    Domain Name:SLASHDOT.ORG
    Domain ID: D2289308-LROR
    Creation Date: 1997-10-05T04:00:00Z
    Updated Date: 2014-03-14T22:12:11Z
    Registry Expiry Date: 2015-10-04T04:00:00Z
    Sponsoring Registrar:Tucows Inc. (R11-LROR)
    Sponsoring Registrar IANA ID: 69
    WHOIS Server:

    Referral URL:
    Domain Status: clientTransferProhibited
    Domain Status: clientUpdateProhibited
    Registrant ID:tuE8gFbzWFO9qSj2
    Registrant Name:Host Master
    Registrant Organization:Dice Holdings, Inc.
    Registrant Street: 1040 Avenue of the Americas
    Registrant City:New York
    Registrant State/Province:NY
    Registrant Postal Code:10018
    Registrant Country:US
    Registrant Phone:+1.8557527436
    Registrant Phone Ext:
    Registrant Fax:
    Registrant Fax Ext:
    Registrant Email:hostmaster@slashdotmedia.com

    Pros: Today's article has more content than the usual Dice front page linkage. Great article if you're not a programmer but feel stymied by the wide assortment of languages out there. Although instead of hemming and hawing before making your first project you're better off listening to Winston Churchill and sticking your feet in the mud: "The maxim 'Nothing avails but perfection' may be spelt shorter -- 'Paralysis."

    Cons: It barely scratches the surface of an incredibly deep topic with unlimited facets. And when one is considering investing potential technical debt into a technology, this probably wouldn't even suffice as an introduction let alone table of contents. Words spent on anecdotes ("In 2004, a coworker of mine referred to it as a 'toy language.'" like, lol no way bro!) could have been better spent on things like Lambdas in Java 8. Most interesting on the list is Erlang? Seems to be more of a random addition that could just as easily been Scala, Ruby, Groovy, Clojure, Dart -- whatever the cool hip thing it is we're playing with today but doesn't seem to quite pan out on a massive scale ...

    --
    My work here is dung.
    1. Re:Over at Dice? by B33rNinj4 · · Score: 3, Funny

      It's catering to the hipster cloud-lovers.

    2. Re:Over at Dice? by Meshach · · Score: 4, Insightful

      There should at least be the obligatory disclaimer "Slashdot is owned by Dice" so that readers can prepare themselves. Presenting it as a neutral article seems deceptive.

      --
      "Maybe this world is another planet's hell"
      Aldous Huxley
    3. Re:Over at Dice? by Frosty+Piss · · Score: 3, Interesting

      There should at least be the obligatory disclaimer "Slashdot is owned by Dice" so that readers can prepare themselves. Presenting it as a neutral article seems deceptive.

      I seem to recall Timothy telling everyone that "sponsored" stories would be identified as such. Perhaps it's just a wild coincidence that this article just happens to be from Dice?

      Just because a substantial number of Nerval's Lobster's accepted submissions are from Dice or Dice properties doesn't mean he's a Dice shill...

      --
      If you want news from today, you have to come back tomorrow.
    4. Re:Over at Dice? by Anonymous Coward · · Score: 1

      Presenting it as a neutral article seems deceptive.

      Or just the usual bad editing.

    5. Re:Over at Dice? by Anonymous Coward · · Score: 0

      Not only that, but Nerval's Lobster is the screen name of Nick Kolakowski, a Dice / Slashdot employee who churns out content for just about anyone who pays

    6. Re:Over at Dice? by Anonymous Coward · · Score: 0

      Even if the submitter is not being paid by Dice (BIG IF), editors choose what makes the front page and what doesn't.

    7. Re:Over at Dice? by Anonymous Coward · · Score: 0

      You just looked up slashdot.org.

      Here's dice:
      http://who.is/whois/dice.com

      (whois.net was broken, so I used who.is)

  2. Repeat after me... by ArcadeNut · · Score: 4, Insightful

    CSS3 is not a programming language. No more then HTML is.

    --
    Visit the Arcade Restoration Workshop @ http://www.arcaderestoration.com
    1. Re:Repeat after me... by Anonymous Coward · · Score: 3, Insightful

      Any programmer can pick up enough CSS to create simple pages in a few minutes. And no programmer wants to be stuck fighting with that mess for any length of time.

    2. Re:Repeat after me... by Anonymous Coward · · Score: 5, Insightful

      I've been writing software for a good 18 years now and I've never been limited by not knowing CSS. However, if I reach that limit I'm pretty sure I can pick it up like every other programming or markup language that I've needed.

    3. Re:Repeat after me... by jstitch · · Score: 1

      Sure, but a programmer that doesn't know CSS is pretty limited!

      and that doesn't makes CSS a programming language, so...

    4. Re:Repeat after me... by Anonymous Coward · · Score: 1

      Limited to everything non-web.

      I've yet to touch CSS other than to tweak a phpbb-forum theme. I code control systems and hell VB6.0 is more useful to me than CSS at the end of the day (wish that was no the case however..)

    5. Re:Repeat after me... by bulled · · Score: 5, Informative

      Sure, but a programmer that doesn't know CSS is pretty limited!

      A _web developer_ maybe, but a _programmer_ surely isn't.

    6. Re:Repeat after me... by ZombieBraintrust · · Score: 1

      The ML in HTML is for markup language. I think you splitting hairs if you think programming language does not include markup langauge.

    7. Re:Repeat after me... by Anonymous Coward · · Score: 0

      CSS3 is not a programming language. No more then HTML is.

      As long as we're picking nits, "then" is not a conjunction.

    8. Re:Repeat after me... by Anonymous Coward · · Score: 0

      Maybe, but they're pretty good component libraries.

    9. Re:Repeat after me... by mrchaotica · · Score: 2

      You mean, limited to writing for any platform that uses something other than a web page as its UI (including embedded development, server-side development, regular PC applications, mobile, video games, etc.)? I think I can live with that limitation!

      (Actually, even if you do write things that use web pages for their UI, unless you're the "UI guy" you still might not have to know much CSS!)

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    10. Re:Repeat after me... by luis_a_espinal · · Score: 4, Insightful

      Sure, but a programmer that doesn't know CSS is pretty limited!

      The fact that you think not knowing CSS will make a programmer limited showcases that your programming experience is limited to front-end development. And that is sad.

    11. Re: Repeat after me... by Anonymous Coward · · Score: 0

      As long as we are picking nits, "then" IS a conjunction, just the wrong one for this context.

    12. Re:Repeat after me... by angel'o'sphere · · Score: 1

      No he is not splitting hairs.
      Make me an HTML page that calculates 1 + 1 ... and you will realize: you can not program in HTML, hence it is not a programming language, actually pointing out that ML means 'mark up language' already should made have that clear to you.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    13. Re:Repeat after me... by iguana · · Score: 2

      Obligatory Programmer Hierarchy image: http://lukewelling.com/wp-cont...

      From: http://lukewelling.com/2006/08...

    14. Re:Repeat after me... by chiefcrash · · Score: 2

      He's not splitting hairs...

      HTML doesn’t really “do” anything in the sense that a programming language does. HTML contains no programming logic. It doesn’t have common conditional statements such as If/Else. It can’t evaluate expressions or do any math. It doesn’t handle events or carry out tasks. You can’t declare variables and you can’t write functions. It doesn’t modify or manipulate data in any way. HTML can’t take input and produce output. Think of it this way: you can’t compute the sum of 2 + 2 in HTML; that’s not what it’s for. This is because HTML is not a programming language.

      --
      Show me on the 1st Amendment bobblehead where the moderator touched you...
    15. Re:Repeat after me... by mjwalshe · · Score: 1

      Fortran comes after Assembly and is not on a par with VB

    16. Re:Repeat after me... by Chris+Mattern · · Score: 2

      Of course programming language does not include markup language. They're two entirely different things with entirelly different purposes.

    17. Re:Repeat after me... by Noah+Haders · · Score: 2

      [html] [header] A page that calculates 1 + 1! [/header] [body] [center] 1 + 1 = 2 [br] [a href="goatse"]click for source[/a] [/center] [/body] [/html]

    18. Re:Repeat after me... by sribe · · Score: 1

      CSS3 is not a programming language. No more then HTML is.

      True. But for a non-programming language, it somehow manages to present an awful lot of thorny debugging problems ;-)

    19. Re:Repeat after me... by angel'o'sphere · · Score: 2

      ROFL,
      so you don't even know what 'calculate' means and you want to 'program'?
      First there was the void, then there was the word and then there was the light, and the word divided the skies from the earth ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    20. Re: Repeat after me... by Anonymous Coward · · Score: 0

      A programmer that doesn't know a bit of English is also very limited. Maybe it should be added to the list...

    21. Re:Repeat after me... by narcc · · Score: 4, Interesting

      HTML5 + CSS3 is Turing complete, which is the usual criteria.

      Picking nits...

    22. Re:Repeat after me... by narcc · · Score: 0

      There's a difference?

    23. Re:Repeat after me... by narcc · · Score: 1

      LOL, what?

      How does being familiar with CSS indicate that a persons programming experience is limited to "front-end development"?

      I can't rightly comprehend the confusion of ideas that would provoke such a statement!

    24. Re:Repeat after me... by pspahn · · Score: 1

      It isn't now, but in the future (which is the point, right) it very well could become a language one might call a "programming" language.

      Consider the rise of SASS and LESS. We have these now because they are needed modernizations of CSS. At someone point I wouldn't be surprised to see them become a core component.

      --
      Someone flopped a steamer in the gene pool.
    25. Re:Repeat after me... by glitch! · · Score: 1

      Okay, I get it. When you need HTML, you just pull it out of your ass. Well played, sir.

      --
      A dingo ate my sig...
    26. Re:Repeat after me... by Anonymous Coward · · Score: 2, Informative

      LOL, what?

      How does being familiar with CSS indicate that a persons programming experience is limited to "front-end development"?

      I can't rightly comprehend the confusion of ideas that would provoke such a statement!

      I think it is you who are confused. It's not that "being familiar with CSS" indicates that the programmer's experience is limited, it is the thinking that being unfamiliar with CSS limits a programmer that indicates that the programmer's experience is limited. Got that?

    27. Re:Repeat after me... by Anonymous Coward · · Score: 0

      Yes. Most web developers are programmers, but a web developer who does not write code in a programming language is not a programmer. Not all programmers are web developers. I'm a programmer; I write drivers. I lack CSS knowledge but am not "pretty limited".

    28. Re:Repeat after me... by Anonymous Coward · · Score: 0

      Read his post again.
      He said that thinking that not knowing CSS is limiting means that your programming experience is limited.
      Not everyone is writing web pages, and not everyone is writing device drivers or embedded code.
      I really doubt that knowing CSS would somehow improve my productivity when developing for experimental micro-controllers.

    29. Re:Repeat after me... by Anonymous Coward · · Score: 0

      I don't think many embedded or systems developers need to know a whole lot of CSS.

    30. Re:Repeat after me... by Anonymous Coward · · Score: 2, Insightful

      Speak for yourself. I know plenty of coders who would rather use CSS or HTML than a lot of "actual" programming languages. And they could code circles around either of us. The more pointlessly negative you are about HTML and CSS the more you're setting yourself back these days. Being an exceptional web programmer can be just as valuable as being an exceptional C++ programmer. It's just that lots of coders are mediocre web devs and choose to blame their tools instead of owning up to the fact that they're doing it to themselves at this point.

    31. Re:Repeat after me... by CODiNE · · Score: 1

      C++ programmers don't think they're superior to anyone??

      It's a super-set of C, so belief of it's superiority is natural.
      I'm gonna need some rationale for the humble C++ guys idea. It's just a dead-end on that chart.

      --
      Cwm, fjord-bank glyphs vext quiz
    32. Re:Repeat after me... by ultranova · · Score: 1

      A _web developer_ maybe, but a _programmer_ surely isn't.

      JavaFX insists on setting component attributes by feeding them Strings containing CSS fragments rather than using setter functions. True story.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    33. Re:Repeat after me... by Noah+Haders · · Score: 1

      dude, have a laugh. the goatse link didnt tip you off?

      actually, though, I could take this a step further. assume the html code above is saved in the file "1_1.html". Now, here is the calculator:

      [html]
      [header] addition in HTML! [/header]

      [body]
      Welcome to teh ausumzzz HTML addition machine!

      to add 1 and 1 [a href="1_1.html"]click here![/a]
      to add 2 and 1 [a href="2_1.html"]click here![/a]
      ... [/center] [/body] [/html] this performs the specified task from the GP: the user chooses two numbers and the calculator returns the sum of those numbers.

    34. Re:Repeat after me... by Anonymous Coward · · Score: 0

      C++ programmers don't think they're superior to anyone??

      It's a super-set of C, so belief of it's superiority is natural.
      I'm gonna need some rationale for the humble C++ guys idea. It's just a dead-end on that chart.

      Same reason as assembler. C is usually used for low level work, such as operating systems, drivers, embedded devices and so forth. Sometimes you'll see C++ used in embedded devices but it will be "C"-ish C++ (no templates, STL, or any other of that newfangled crap).

    35. Re:Repeat after me... by ultranova · · Score: 1

      CSS3 is not a programming language. No more then HTML is.

      Of course they are. They can be used to tell the computer to perform some task (render a logical structure with a particular formatting). They just aren't Turing complete.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    36. Re:Repeat after me... by narcc · · Score: 1

      Yes, you're right.

      The fact that you think not knowing CSS will make a programmer limited showcases that your programming experience is limited to front-end development.

      It's clear that he thinks that anyone who thinks that "not knowing CSS will make a programmer limited" somehow indicates that that person's "programming experience is limited to front-end development"

      It's far more irrational than I originally thought!

      One is (obviously) not an indicator of the other. You'd think will all the self-proclaimed "rationalists" on Slashdot that this sort of nonsense wouldn't be so prevalent.

    37. Re: Repeat after me... by Anonymous Coward · · Score: 0

      No English needed my friend. Come! See! Punjab writes many wonderful codes for you! Please to be doing the needful my friends!

    38. Re:Repeat after me... by angel'o'sphere · · Score: 1

      No it does not, it only displays text.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    39. Re:Repeat after me... by Anonymous Coward · · Score: 0

      HTML5 + CSS3 is turning complete.

    40. Re:Repeat after me... by KingMotley · · Score: 1

      No, but then you are limited to writing experimental micro-controllers, or desktop applications. Not knowing CSS does pretty much limit you from being able to write any web application, and most phone apps.

    41. Re:Repeat after me... by KingMotley · · Score: 1

      You mean like a router with a UI for configuring it? Plenty of system developers need a UI as well -- configuring, monitoring, reporting. I suppose you could code in some system specific front end tools, but why would you?

    42. Re:Repeat after me... by Anonymous Coward · · Score: 0

      Markup languages are non-logical, non-mathematical, and non-sequential (essentially not programmatic). It's more like hanging pictures on the wall, or in the case of XML, organizing the pictures so someone can hang them on a wall later.

    43. Re:Repeat after me... by Noah+Haders · · Score: 1

      u dont know how 2 read html? it's right there in the code.

    44. Re:Repeat after me... by Anonymous Coward · · Score: 1

      CSS is a document format. Excel is more of a programming language than CSS is.

      Designing CSS is on par with painting ASCII-art. It can be tricky in itself but no matter how you look at it the result isn't a program.

    45. Re:Repeat after me... by dacut · · Score: 1

      However, if I reach that limit I'm pretty sure I can pick it up like every other programming or markup language that I've needed.

      Unfortunately, this is only sort of true. The basic syntax is easily learnable and readable -- certainly easier than mentally parsing most regular expressions.

      But, oh god, does CSS have a ton of implicit modes. Are your sizes content box or border box? Is this div we're positioning being displayed as a block, inline, or inline-block element? Is there a float active? Has it been cleared? Did we duplicate the appropriate styles with -webkit- and -ms-? Why is it working in Firefox but not Chrome? ...

      Layouts that would be a simple command in Tk (button .foo; pack .foo -expand both -fill 1) end up being head scratchers.

      The purists then snootily point out, "Well, your problem is you're trying to build a GUI from a markup language." Fine, then: Give me a freaking proper GUI toolkit already. I'm reminded of Jamie Zawinski's quote (though he was referring to XWindows): Using these toolkits is like trying to make a bookshelf out of mashed potatoes.

    46. Re:Repeat after me... by serviscope_minor · · Score: 1

      It's not about the superiority of languages it's what the programmers who use it feel superior to.

      --
      SJW n. One who posts facts.
    47. Re:Repeat after me... by angel'o'sphere · · Score: 1

      There is no calculator ... there is no calculation ... there is no code, only mark up text.
      But good luck if you like to apply for a job as 'html programmer'.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    48. Re:Repeat after me... by TheRaven64 · · Score: 1

      I'm pretty sure Ada programmers feel superior to just about anyone, yet are way down that list. I doubt move VB programmers even know what Ada is...

      --
      I am TheRaven on Soylent News
    49. Re:Repeat after me... by i.r.id10t · · Score: 1

      Indeed. While I may know the technical details of how style sheets work, etc. I'd rather write the back end code and spit out HTML/CSS that a web designer has generated for me to format the text I'm generating. Works great - he doesn't need/want to learn PHP, I don't need/want to learn about design, and our web apps look good.

      --
      Don't blame me, I voted for Kodos
    50. Re:Repeat after me... by geminidomino · · Score: 1

      All of which may be true (or not, anecdotes suck that way), and still don't change the fact that they're not programming languages.

    51. Re:Repeat after me... by ArcadeMan · · Score: 1

      CSS is more like painting ASCII art in both ANSI and Avatar codes to get 16-color images while needing to stay compatible with both 40 and 80 columns and still look like an image even on monochrome displays. It still isn't "programming" but it's a hell of a lot more trouble than doing silly ASCII art.

    52. Re:Repeat after me... by Anonymous Coward · · Score: 0

      > The ML in HTML is for markup language. I think you splitting hairs if you think programming language does not include markup langauge.

      'Programming language' has a pretty specific definition, and HTML doesn't qualify... because you can't write programs in it.

      In short HTML is more like ncurses than it's like C. It's something you use WITH a programming language.

    53. Re:Repeat after me... by Anonymous Coward · · Score: 0

      They can be used to tell the computer to perform some task (render a logical structure with a particular formatting). They just aren't Turing complete.

      Well, if you want to get technical about it, it's the browser that tells the computer to perform the rendering task, and the browser is typically written in C++ or some such language. The HTML and CSS are just inputs to the browser.

    54. Re:Repeat after me... by Anonymous Coward · · Score: 0

      > CSS3 is not a programming language. No more then HTML is.

      I wouldn't call it a "programming language" exactly, but as several others have pointed out, is IS more of one than HTML.

    55. Re:Repeat after me... by mjwalshe · · Score: 1

      of course real programmers look down on everyone its like trufans look down of trekkies

    56. Re:Repeat after me... by luis_a_espinal · · Score: 1

      No, but then you are limited to writing experimental micro-controllers, or desktop applications. Not knowing CSS does pretty much limit you from being able to write any web application, and most phone apps.

      But the limitation of not knowing CSS is ridiculously trivial to overcome compared to not knowing how to program micro-controllers. It is so trivial that it is really not a concern to most competent people. AND THAT IS THE POINT!

      I personally know a guy who did nothing but micro-controller programming for over a decade, and in less than 4 months became a competent iOS developer with a successful company that churns kids-oriented apps and who is also working full-time (also as a iOS developer) for a large sports network.

      4 months, that's all that it took him. He spent more time learning Google AdSense, the iOS stack and the details of monetizing apps than on CSS. And he did the switch on a whim after seeing another guy (an electrical engineer) doing the same switch increasing his income by 25% on iOS development.

      I'm a back-end developer, and I've done a lot of Java EE work, on top of embedded development and even some mobile development (Windows 8). I've never cared to do front-end development and whenever I needed to do use CSS, I just google what I need...

      ... and then I forget about it. Because it is really that trivial when we take into account everything else that is needed to have a successful application.

      So yeah, not knowing CSS limits a developer to the degree that person is unable to use google or stackoverflow.

    57. Re:Repeat after me... by IwantToKeepAnon · · Score: 1

      Repeat after me...

      CSS3 is not a programming language. No more then HTML is.

      Not very catchy. :[

      --
      "Happy families are all alike; every unhappy family is unhappy in its own way." -- Anna Karenina by Leo Tolstoy
    58. Re:Repeat after me... by gstoddart · · Score: 1

      The ML in HTML is for markup language. I think you splitting hairs if you think programming language does not include markup langauge.

      If you could implement a Turing machine in it, it's a programming language. If you can't, it isn't.

      SGML, the precursor to HTML and eventually XML, was written by a lawyer to allow people to mark up documents for printing and layout.

      HTML most certainly is NOT a programming language in and of itself.

      There are variables, no control flow, no logical operators, and nothing which is actually programming in it. It's had a bunch of other things grafted onto it (Javascript, DOM, Ajax etc) which give you the ability to program against the HTML.

      But HTML is not, and never has been, a programming language.

      Could they extend it to make it a programming language? Sure they could. Is it currently a programming language? Nope, it isn't.

      --
      Lost at C:>. Found at C.
    59. Re:Repeat after me... by Wraithlyn · · Score: 1

      What's stupid is the author says "Technically, HTML5 isn’t a language". Um, yes it is. It is technically a Markup Language. That's kind've what the "ML" stands for.

      He is conflating "programming language" with "language".

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    60. Re:Repeat after me... by david_thornley · · Score: 1

      We're not actually superior. We just use a superior language, and that makes us look superior.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    61. Re:Repeat after me... by Tablizer · · Score: 1

      Where's the rule that says a language has to be Turing Complete to be a "programming" language?

    62. Re:Repeat after me... by angel'o'sphere · · Score: 1

      To be a programming language it needs to be a language in which you can program ...

      And, how are your relations and your anti design patterns and anti oo stance go?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    63. Re:Repeat after me... by ultranova · · Score: 1

      C++ needs to be interpreted or compiled prior to running. Does that mean that C++ is not a programming language, because it is just an input to a compiler or interpreter?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    64. Re:Repeat after me... by Flammon · · Score: 1

      Not so quick. CSS can be found outside the web now. GTK and QT for example.

    65. Re:Repeat after me... by Anonymous Coward · · Score: 0

      If a browser were simply a language interpreter, you might have a point - but it's also a rendering engine (plus numerous other things).

  3. Bah! by Anonymous Coward · · Score: 0

    Not even a mention of VB

    1. Re: Bah! by Anonymous Coward · · Score: 0

      I know! After a summary like that one, who couldn't go for a nice, cold Victoria Bitters!?

  4. We'll "need" Swift? by Anonymous Coward · · Score: 0

    Kill me now.

    1. Re:We'll "need" Swift? by UnknowingFool · · Score: 4, Insightful

      Need? No. You can still use Objective C if you want to code iOS/OS X. Want? Yes.

      And while the rest of the featured languages are no-brainers with regard to popularity, it's an open question how long it might take Swift to become popular, given how hard Apple will push it as the language for developing on iOS.

      Apple does not have to push very hard. After looking at it and Objective C, it doesn't take a genius to see why programmers would prefer it over Objective C.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    2. Re:We'll "need" Swift? by Dog-Cow · · Score: 1

      And trying to write anything non-trivial will have you cursing Apple 7 ways 'til Sunday. It's a still-evolving language with lots of warts and weird behaviors. It has a few cool ideas (for what is intended to be a common language), but very poor execution on many.

      Try creating an immutable array, for one.

    3. Re:We'll "need" Swift? by jvj24601 · · Score: 1
    4. Re:We'll "need" Swift? by AuMatar · · Score: 1

      A pretty trivial non-problem. Make a mutable one and just don't change anything in it.

      --
      I still have more fans than freaks. WTF is wrong with you people?
  5. Scala by Anonymous Coward · · Score: 0, Redundant

    I am surprised that Scala isn't mentioned.

    It is strongly typed, object-functional and compatible with java.

    Swift syntax is basically a cut and paste from Scala, which benefits from being more mature (and having access to all the Java libraries)
    Scala is also much faster than erlang, while also supporting the actor based model.

    http://www.scala-lang.org/

    1. Re:Scala by Anonymous Coward · · Score: 1

      And I'm surprised C isn't a language I'll need next year.

    2. Re:Scala by jbolden · · Score: 1

      Scala is interesting and clearly will be somewhere. Swift has the backing of a major platform vendor with a long history of being able to move their platform.

    3. Re:Scala by gweihir · · Score: 1

      Scala is too advanced for most of the mediocre crowd calling itself "programmers" these days.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    4. Re:Scala by HiThere · · Score: 2

      While there is a need for strongly typed languages, that doesn't imply that all languages should be strongly typed. More to the point, however, Scala appears to be staticly typed (I'm believing documentation here, I've no experience). Many problems are addressed only with difficulty via a staticly typed language.

      Compatible with Java. OK. So is Jython, so is JRuby. Object-functional? Not quite sure what you mean, but I would guess that so are Jython and JRuby. Also Groovy.

      This isn't really a response to the article, but rather to your comment. Unless you are in love with the Scala syntax, you don't seem to justify your point. Even Clojure would meet all the benefits that you list. (As well as several other languages.)

      Personally, I dislike intensely Java's 16-bit char system. I much prefer either utf-8 or utf-32. Perfferable either chosen as needed. Alternatively the Python3 opaque string type with conversions to the desired representation also has its benefits. (My real preference is uft-8, but then most of what I work with is ASCII, and I only need occasional double or triple byte characters. But for that to work the language MUST have appropriate library support. As Python, Vala, D, etc. have. Ruby has it via an add-in gem. Java doesn't seem to really have it, and as a result neither do any of the languages that are symbiotes. C and C++ are, admittedly, as bad as Java. You need a large and clumsy external library. Racket Scheme has this aspect handled well, but there are other reasons that it's less than desireable.)

      So. Which languages will you need in 10 years? It's one that isn't popular yet. Vala is a possibility. So is D. And prehaps there will be applications for which Swift is desireable. I'm really dubious about Java. C will probably still be necessary, but I'm not sure about C++. Some successor of the current Scheme versions would be desireable, but it MUST implement IPC much better than any current Scheme does. Some dataflow language would be highly desireable, but I don't know of any decent conderes. (The one's I'm aware of are too specialized...though one of them could grow out of that.)

      The language really needed hasn't yet been written. It will be designed to be easy to write multi-process programs in. And it will be easy for processes to submit messages to each other's read queues. Erlang is almost right, but it concentrates too much on immutability, which works quite well for a certain subset of problems, and is terrible for many others. The reall concept needed is isolated mutability, where mutability is all "thread confined" (except that I mean process confined). I don't think that it should be possible to pass pointers between processes, but perhaps it could be done if the pointer only pointed to totally immutable data and it's recursive equivalents.

      As I said, this language doesn't seem to exist yet, but various languages have implemented pieces of it, so I don't see any intrinsic difficulty in creating the language.

      --

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

      It's a pain in the ass to debug.

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

      Pardon me, am I on your lawn?

    7. Re:Scala by sribe · · Score: 1

      Scala is too advanced for most of the mediocre crowd calling itself "programmers" these days.

      Yeah, but so is Erlang...

    8. Re:Scala by Samantha+Wright · · Score: 1

      Scala lacks the webby web-web street cred that this list is laden with. Haskell is mentioned briefly in the article, but not considered worthy of Knowing. Meanwhile, Erlang is popular in certain buzzword compliance requirements considered key to trends in web development as of a year or two ago.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    9. Re:Scala by Anonymous Coward · · Score: 0

      Scala will rise slowly I think, as it will be the choice of startups that actually do something people want.

      I like it but probably won't pursue it much personally as those jobs will go to top notch programmers that look down on my "mediocre" skills.

    10. Re:Scala by Laz10 · · Score: 2

      Well a quick stat on indeed.com suggests that I am right in mentioning scala over what you suggest:
      http://www.indeed.com/jobtrend...

      Take a look at Akka. It mostly fits your description for the "language" you want. Scala is pretty extendable, so the libraries often end up looking more like language extensions than libraries.

      Scala allows both mutable and immutable objects, but it favours immutable.
      In Akka you have mutable state within your actors and pass immutable messages.

    11. Re:Scala by Laz10 · · Score: 1

      Well, it can be. But don't try to be too smart and chain everything into one big statement and you'll be ok.

      Listen to Odersky here:
      http://www.parleys.com/play/53...

    12. Re:Scala by Laz10 · · Score: 1

      I don't know about that. Scala is getting more and more popular in "Big Data", and it doesn't get more hip than that?

      Apache Spark which seems destined to replace Hadoop is written in Scala:
      https://spark.apache.org/

    13. Re:Scala by Bengie · · Score: 1

      Multiprocess means lots of threads and IPC, which are both horrible for scaling unless you're doing heavy work. Death by via thread scheduling.

    14. Re:Scala by gweihir · · Score: 1

      You will get no argument from me on that.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    15. Re:Scala by HiThere · · Score: 1

      Then you're dong it wrong. For the class of problems I'm interested in each process needs an input queue, and the ability to detect (somehow...there are several plausible means so I'm not choosing) what other processes are around and how to write to their input queues. And you need to be able to examine your input queue to tell whether there's a waiting message without blocking. All fairly straightforwards. You don't synchronize the processes, each one runs as far as it can with the inputs it has available and then waits for additional input. What is queued should be messages as short as possible, but that's true whenever you copy an array. And the queue should hold either a deep-copy of whatever is being exchanged or a reference to an immutable instance. No scheduling, per se, except that you might want to be able to adjust the priority at which the processes execute.

      FWIW, I'm currently implementing something that operates in this way, and most of the tools I'm using to do this are excessively slow BECAUSE they are capable of a lot more than I'm asking them to do. I'm only planning on having around 8-16 processes because I've only got about 8 processors. I expect that most of the processes will keep busy all the time without needing new inputs. The messages that I'm planning on passing all have the form (action, key, value), and for my purposes key will always be either a string or an integer, and value will be an array of stuff. The kind of stuff will vary depending on what kind of process is receiving the input and what action is to be preformed. (Which is why I really don't want a static type.) Generally, however, it will begin with a few numbers, then a few (usually 4) arrays of structures(without internal pointers) and then possibly a string. This kind of thing is quite simple to handle in a language with dynamic types, and a real pain in languages with static types.

      Do note that this means that most of the messages will be longer than is optimal, and that the length will not be consistent. It's the kind of thing that marshall, pickel, yaml, or json and handle trivially. No class serialization needed.

      This means that each process totally controlls it's internal synchronization without external conflicts. Thread synchronization is not a problem. Scaling is trivial. Efficiency...well, I'm not so sure of that. I need to set things up so that most processing happens without IPC, and I'm not sure how possible that will be. I may need to go all out and find or build an even simpler IPC mechanism. (I think what I'm currently planning on has TCP/IP sockets burried within the implementation. I'm using localhost, so that probably gets translated into UNIX domain sockets, but even that may not be as fast as possible. OTOH, I don't want the input queues to be bounded by a pre-determined amount of RAM unless I must.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  6. Swift maybe, Erlang, really? by Anonymous Coward · · Score: 1

    C#, Java, PHP and JS will continue to dominate, C# and Java being mutually exclusive in a web app. Swift? Maybe. It's a shot in the dark. Apple is apple but the iOS development market is dried up for most developers, unless you can get a job at some company that wants an iOS app. It really depends on how well the Apple/IBM partnership works out in dislodging Microsoft from business apps. It's a long uphill battle that I suspect will take a lot longer than 2 years.

    Erlang? Fuck off, Dice. How much did the one company that wants it pay you to write this garbage article?

    1. Re:Swift maybe, Erlang, really? by Anonymous Coward · · Score: 1

      I'm already being spammed with companies looking for people with five years of Apple Swift experience.

      So, it appears that Swift is in demand.

    2. Re:Swift maybe, Erlang, really? by Anonymous Coward · · Score: 0

      How much did the one company that wants it pay you to write this garbage article?

      The Collection Agency!

    3. Re:Swift maybe, Erlang, really? by ebh · · Score: 1

      I remember the same thing with Java--reqs demanding five years of Java three years after it first came out.

    4. Re:Swift maybe, Erlang, really? by Noah+Haders · · Score: 3, Insightful

      the iOS development market is dried up for most developers, unless you can get a job at some company that wants an iOS app.

      umm duh? i don't understand the point of this. the nurse market is pretty dried up except for some job in healthcare.

    5. Re:Swift maybe, Erlang, really? by billstewart · · Score: 1

      And the guy who wrote Swift acknowledged that problem; they're in pretty much the same position as the "Job Req demands 5 years of Java, but we can't get Gosling to come work for us" HR departments were back then.

      --

      Bill Stewart
      New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
    6. Re:Swift maybe, Erlang, really? by Anonymous Coward · · Score: 0

      Point being, there aren't that many iOS jobs. Only obscure jobs where some company wants an iOS app. Those tend to be short term and once the app is developed, don't require a lot of man hours to maintain. This is relative to businesses that require staff to build and maintain their internal apps.

      Indy iOS development is almost completely dried up.

      The chances that a company would hire an FTE for iOS development are much smaller than a company would contract out iOS development to a specialized iOS shop.

      iOS is popular because Apple products are popular, but compared to the popularity of Java, C#, it's a drop in the ocean.

    7. Re:Swift maybe, Erlang, really? by MooseMiester · · Score: 1

      Same thing happened with .net.... Had this conversation with a headhunter back when I was coding for a living:

      HeadHunter: The position requires five years of .net experience
      Me: No one on planet earth has five years .net experience, it's been 8 months since the PDC Tech Preview Edition, and 4 months since the first real version shipped.
      HeadHunter: Oh, so you're saying you don't meet the requirement?
      Me: NO ONE meets the requirement .net is only FOUR MONTHS OLD
      HeadHunter: OK, I won't submit your resume then

      --
      Murphy was an optimist
    8. Re:Swift maybe, Erlang, really? by MooseMiester · · Score: 1

      Please send all those unemployed iOS developers my way. Have the rates gone down?

      --
      Murphy was an optimist
  7. Scala by Laz10 · · Score: 2

    I am surprised that Scala isn't mentioned.

    It is strongly typed, object-functional and compatible with java.

    Swift syntax is basically a cut and paste from Scala, which benefits from being more mature (and having access to all the Java libraries)
    Scala is also much faster than erlang, while also supporting the actor based model.

    http://www.scala-lang.org/

  8. If you want to earn big bucks... by Viol8 · · Score: 4, Insightful

    Learn C++, Java or C# and get yourself a job at a big corporate.

    But hey, if you want to be a hipster coder and dick about all day doing "groovy" websites at some here today gone tommorow startup and earning fuck all by all means go down the web development route along with every other 14 year old school kid.

    Erlang? Nice language but too niche. Never really got momentum outside telecoms and its probably too late for it now.

    1. Re:If you want to earn big bucks... by Anonymous Coward · · Score: 0

      This.

      C++11 is coming around. Hint hint.

      We'll all be talking about C++14 in the coming months.

    2. Re:If you want to earn big bucks... by Just+Some+Guy · · Score: 4, Interesting

      That's terrible advice. If you want the big bucks, get into Python, Node.js, or Go and find a startup that just received VC and has tons of money to shove at developers. C++, Java, and C# are great for long-term "comfortable" jobs, but that's not where the seriously good money is.

      --
      Dewey, what part of this looks like authorities should be involved?
    3. Re:If you want to earn big bucks... by ZombieBraintrust · · Score: 1

      You can earn small bucks with Java being a code monkey for a corporation as well.

    4. Re:If you want to earn big bucks... by holostarr · · Score: 1

      I don't know what you think big corporations build, because aside from one job early in my career which involved C++, I have been using C# and Java to mainly build web sites for corporations. In fact I'm a software developer for a very large telecom and work on their corporate web site.

    5. Re:If you want to earn big bucks... by angel'o'sphere · · Score: 4, Informative

      Developers in start ups usually are bad paid and baited with stock options.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    6. Re:If you want to earn big bucks... by luis_a_espinal · · Score: 4, Informative

      That's terrible advice. If you want the big bucks, get into Python, Node.js, or Go and find a startup that just received VC and has tons of money to shove at developers. C++, Java, and C# are great for long-term "comfortable" jobs, but that's not where the seriously good money is.

      Terrible advice also. If you want the big bucks, know your shit in several domains, know how to deliver your shit and be good at analytic skills, troubleshooting, design, architecture and project management.

      The VC route is a high-stakes one. For each one that cashes it, there are droves that lick their wounds, specially outside of SV.

      Going back to languages, no language guarantees good income, not even comfortable jobs. Being able to deliver shit on time, and have deep expertise on something (say, Oracle Enterprise stack, or embedded development), that's where the sweet spot is, meaning, potential to make close to $200K or more, for years, if not decades. Long hours as a consultant, but the rewards are there, and are more predictable and solid than shooting at the VC/startup stars.

    7. Re:If you want to earn big bucks... by mark-t · · Score: 4, Insightful

      Not that I'm knocking "earning big bucks", but it always kinda pisses me off that people talk about compuer programming or a certain type of programming as being especially lucrative, as if that should be some sort of aspiration in life. It certainly pays better than a lot of other jobs that I've had, but how much money you can earn is a pretty shallow metric for success, if you ask me.

    8. Re:If you want to earn big bucks... by luciano.moretti · · Score: 3, Informative

      Any big company that makes an actual, physical device will use C or C++.

      Android? Under the hood it's C++. That Medical Device? C++. Your Water Softener? C++. Your thermostat? C. The industrial controller in roller coasters, factories, power plants, and locks? C++. Pretty much every military system out there? C++ (or Ada...). Pretty much every compiler and Virtual machine out there? Under the hood C or C++.

    9. Re:If you want to earn big bucks... by mjwalshe · · Score: 1

      get into big data and you can get £700-£800 per day in the UK and what does hadoop use *spit* Java

    10. Re:If you want to earn big bucks... by Anonymous Coward · · Score: 0

      Good advice if you like working long hours and playing the career lottery.

    11. Re:If you want to earn big bucks... by organgtool · · Score: 1

      Where do you live that startups pay ridiculously good money? Most of the startups I've seen pay mediocre at best and provide compensation in the forms of promises that you'll be rewarded when the company "makes it big". If you want great money, medium-sized businesses are the way to go right now. They're stable and they tend to focus on taking care of their employees. It used to be the case that large corporations offered the best compensation, but many are still feeling the effects of the market crash and continue to shrink as well as put the squeeze on benefits. Since medium-sized companies don't have as much overhead, many of them aren't feeling the effects of the crash as much and are able to take better care of their employees. Regardless of the size of the company you choose to work for, it's best to dabble in the new languages and technologies, but don't put all of your eggs in those baskets - many of them are fads that are sure to fail the test of time.

    12. Re:If you want to earn big bucks... by mjwalshe · · Score: 0

      Presumably you think we should stand at the end of the line (salary wise) of the other professions and say I know my place"

    13. Re:If you want to earn big bucks... by Concerned+Onlooker · · Score: 0

      "...and get yourself a job at a big corporate."

      Ugh. Well, I'm not a hipster, but I guess I'll have to buy some hipster clothing if that's the only other option. At least the hipsters are allowed to use their imaginations.

      --
      http://www.rootstrikers.org/
    14. Re:If you want to earn big bucks... by mark-t · · Score: 1

      What I think is that people shouldn't be focussing on how much money they can make doing such and such. Do what you love... do it well, and you will almost invariably find that there are people who will pay you to do it.

    15. Re:If you want to earn big bucks... by Anonymous Coward · · Score: 0

      Austin, TX has plenty of VCs with more cash than they know what to do with.

      Come to Texas. Make some money.

    16. Re:If you want to earn big bucks... by HiThere · · Score: 1

      The thing is, startups pay lousy money, but sometimes you get compensated in stock options, or even stock, and sometimes that stock turns out to be worth a lot later. Granted it's a crap shoot, but there's no safe way to make lots of money unless you already have lots of money, and even then it's not certain.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    17. Re:If you want to earn big bucks... by organgtool · · Score: 2

      Yeah, but then I'd have to live in Texas!

    18. Re:If you want to earn big bucks... by HiThere · · Score: 1

      IIUC, Android under the hood is largely C with some C++ on top of that. True, the part that makes Android different from Linux may be largely C++...

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    19. Re:If you want to earn big bucks... by organgtool · · Score: 1

      True, but approximately 90% of businesses fail within the first three years. Unfortunately, I can't pay my mortgage in stock that's worth less than toilet paper.

    20. Re:If you want to earn big bucks... by Noah+Haders · · Score: 1

      i earn £700-£800 per day visiting websites from home!

    21. Re:If you want to earn big bucks... by mjwalshe · · Score: 1

      The Q is what they pay you - there is no man with a big white beard that makes them pay you fairly.

    22. Re:If you want to earn big bucks... by shadowrat · · Score: 1

      Not that I'm knocking "earning big bucks", but it always kinda pisses me off that people talk about compuer programming or a certain type of programming as being especially lucrative, as if that should be some sort of aspiration in life. It certainly pays better than a lot of other jobs that I've had, but how much money you can earn is a pretty shallow metric for success, if you ask me.

      Sure, self actualization is probably what really makes people happy, but as far as metrics go it's crappy. Money is quantifiable, thus it's one of the best metrics.

    23. Re:If you want to earn big bucks... by pspahn · · Score: 1

      ... which is basically saying the same thing as "Yeah, but then I'd have to work a corporate job!"

      Some people like Texas, some people like other places. Some people like the start-up atmosphere, some people prefer being employee #499329.

      That said, if you work at a start-up that is already funded, there's no reason you shouldn't be compensated well.

      --
      Someone flopped a steamer in the gene pool.
    24. Re:If you want to earn big bucks... by narcc · · Score: 1

      Going back to languages, no language guarantees good income, not even comfortable jobs.

      Except COBOL.

    25. Re:If you want to earn big bucks... by mark-t · · Score: 1

      Money is quantifiable,

      So is time spent doing what you enjoy. And the only correlation between the two that can be made is by people who can't see past the notion that you need to have a lot of money to be happy.

      Plus of course, if you excel at what you enjoy doing, you can probably find people that will pay you for it.

    26. Re:If you want to earn big bucks... by Anonymous Coward · · Score: 0

      In my experience, C is quite a bit more common than C++. Especially in the embedded space.

    27. Re:If you want to earn big bucks... by holostarr · · Score: 2

      And why is doing C/C++ work more important or valuable than doing web development work? Just because your UI is built using HTML/CSS/Javascript it does not automatically become less challenging. Here is a short list of what is involved with the web development project I'm involved in:

      • Interfacing with the billing system using SOAP
      • Interfacing with Oracle EBS for inventory and logistics
      • Development in accordance to PCI guidelines for credit card handling
      • User tracking and analytics
      • Error handling and logging
      • Reporting
      • CMS integration
      • Front end development using: AngularJS, Bootstrap, less, Grunt, nodejs
      • Unit testing

      And this is just some of what is involved with this one project, so how is this less challenging than creating some application using C/C++? Just because C++ requires manual memory allocation or bounds checks it is somehow more challenging? I have worked as a C++ developer for several years on a very large commercial software and it had its own challenges, but it was no more challenging than building large enterprise applications geared towards the web.

    28. Re:If you want to earn big bucks... by Anonymous Coward · · Score: 0

      I love drinking beer. I've yet to find anybody that will pay me for that. Too few jobs, way too much competition.

    29. Re:If you want to earn big bucks... by Anonymous Coward · · Score: 0

      I know plenty of web devs who can code circles around their holier-than-thou systems counterparts. I know I would rather be a top-rate web dev than just another mediocre corporate coder; the job prospects are consistently good for both if you're in the top tier after all, and you're far more likely to stay on the bleeding edge of the field as a web dev than you are as a Java or C++ grunt. Hell, I know 40 year old web devs who are chomping at the bit to use WebRTC, but most of my 40 year old C++ code hack friends barely know a thing about C++0x.

    30. Re:If you want to earn big bucks... by russotto · · Score: 3, Funny

      My water softener is electromechanical. And the designer looks down on you all.

    31. Re: If you want to earn big bucks... by Anonymous Coward · · Score: 0

      It's C++11 mr. expert man. C++0x is little more than a legacy gcc -std flag.

    32. Re:If you want to earn big bucks... by thrillseeker · · Score: 1

      90% of businesses are equivalent to selling scented candles from a strip mall.

    33. Re:If you want to earn big bucks... by Algan · · Score: 3, Informative

      Been doing Erlang for the past 6 years. It is a small niche but the number of people who are really good is minuscule, much less than the demand. As a consequence, I get hit by recruiters for Erlang-related jobs every couple of weeks, with no advertising on my part other than my linked-in page. Looks like the biggest obstacle for the wider adoption of Erlang is the limited number of talent. Lots of companies would like to get into it, but are afraid they won't be able to attract people.

      --
      If con is the opposite of pro, is Congress the opposite of progress?
    34. Re:If you want to earn big bucks... by ChunderDownunder · · Score: 1

      So a decade ago I would have told you to learn php and apply for a job at facebook?

    35. Re:If you want to earn big bucks... by T.E.D. · · Score: 1

      people talk about compuer programming or a certain type of programming as being especially lucrative,

      The thing is, its not really. The degree programs for CS and engineering are relatively difficult. For that amount of work in college, stay a couple of extra years and get yourself a medical or law degree. Then for roughly the same amount of work in the real world, your earning potential is far greater. You get a lot more respect too.

      If money is what you are after, that is.

      Programming is really only a good choice for those who enjoy programming.

    36. Re:If you want to earn big bucks... by angel'o'sphere · · Score: 1

      I did not know that you need to 'learn PHP' nor do I believe you get payed particular good payed at Facebook :)
      But honestly I had rejected such a job offer, I do not develop in brain dead languages.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    37. Re:If you want to earn big bucks... by Alioth · · Score: 1

      Unfortunately I've not had more time than enough to just dabble in Erlang and the related OTP, but it struck me that you could do a lot of things very elegantly with Erlang. In particular the very light weight share nothing threading model, years ago at university we used Jackson Structured Design where everything was designed as if it had its own process all to itself (no matter how trivial), and it seems that in Erlang you can actually implement it that way rather than flattening the design out.

    38. Re:If you want to earn big bucks... by Anonymous Coward · · Score: 0

      Well, where do you live? I can't speak for startups, but most medium sized companies in my area (south-west Germany), are only out to fuck you over. It's basically a pump and dump with fresh grads or people with little experience that are caught by the name, taken in with real low ball salaries, chewed through with no chance to make it in the company or chance for a realistic salary for that matter. The usual life expectancy is two years tops. At the most you get brand recognition on your CV and that's it. The lifers there are usually too comfy to switch and got a somewhat decent salary after 10 years.

      The real money is usually in soul crushing jobs with some big company around here. And the odd VC funded startup, but again hearsay.

    39. Re:If you want to earn big bucks... by Anonymous Coward · · Score: 0

      Probably because C and C++ are generally used for high-performance computing and solving hard problems, while web development work just leads to yet another shitty website

    40. Re:If you want to earn big bucks... by Anonymous Coward · · Score: 0

      Obviously he wired it in C.

    41. Re:If you want to earn big bucks... by david_thornley · · Score: 1

      A decade ago, you'd probably have said to learn php and apply for a job at some company about three people currently remember, and not with fondness. I don't remember any particular reason to think Facebook would be a winner.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    42. Re:If you want to earn big bucks... by Anonymous Coward · · Score: 0

      > If you want great money, medium-sized businesses are the way to go right now.

      Businesses that have a track record of being able to sell products and services, you mean.

      Why not start your own business instead? Write and sell your own software. Sky's the limit.

  9. I don't... by bumba2014 · · Score: 2, Insightful

    Who cares about a fucking language. I know more that 20 different programming languages, I don't care about one more or less. What can it do, that I can't do already ? Can I program faster, or better? Or is it just an other syntax, for some obscure system ?

    1. Re:I don't... by jbolden · · Score: 1

      If you knew 20 languages you would know there are real differences between where they excel.

    2. Re:I don't... by Anonymous Coward · · Score: 0

      Who cares about a fucking language. I know more that 20 different programming languages, I don't care about one more or less. What can it do, that I can't do already ? Can I program faster, or better? Or is it just an other syntax, for some obscure system ?

      Agreed! Look another developer, with no imagination, but hes learning a new language, after-wards--still a drone. Meanwhile in Ops we do cool shit, party like its 95, and do the sex.

    3. Re:I don't... by DutchUncle · · Score: 2

      I would have said 15 languages. Yes, there are differences, but not enough to justify so many different languages. Everybody has to make up their own freakin' language because that's where the entertainment value is, and that's what they thought their computer science degree entitled them to do. If we had a few less languages and a few more well-designed libraries and/or extensions that worked consistently, then maybe we could make more progress with static analysis and optimization tools. And maybe we could convince more people to leave low-level C behind for once.

      I did my MSCS project in Snobol. I haven't seen a Snobol compiler since leaving academia, nor have any of my embedded systems needed it . . . until now, when it would be handy since we're serving web pages instead of just serving MODBUS records.

      Religious wars about processors have pretty much died down since ARM took the best of most and put them together, with enough horsepower that clarity can count for more than absolute efficiency. I would hope that religious wars about languages could go the same way. (except Dijkstra was right about COBOL)

  10. Swift Popular? by alexkaskasoli · · Score: 0

    How do we even know it's going to be popular in the first place? Does it solve any problem I can't do with C# or Python and/or on more platforms? It'll be a language for little hipsters who hope to be the next Steve Jobs by releasing yet another crappy useless iOS app. I don't know anyone who still bothers with iOS apps.

    1. Re:Swift Popular? by Anonymous Coward · · Score: 0

      Swift is going to be popular simply because it is a much better language than objective-c. There is really no reason to keep using objc when there is swift. It may not be more popular than objective-c, but that's not its objective.

      Here's hope that once swift gains some mass people will look for cross platform alternatives and will pick http://nimrod-lang.org which is very similar.

    2. Re:Swift Popular? by Anonymous Coward · · Score: 0

      >I don't know anyone who still bothers with iOS apps.

      I don't know anyone who lives in China, but there is strong evidence that many people do.

    3. Re:Swift Popular? by Anonymous Coward · · Score: 0

      Swift is pretty obviously superior to Objective C, so it'll be about as popular as development for Apple devices is.

      Since the iPhone is still the big market for mobile apps (Android users expect everything for free so they are generally worthless as customers), that's likely to warrant Swift a decent spot in the "languages worth knowing over the next 5 years" list, alongside the Windows staples like C#, and the web staples like Javascript.

    4. Re:Swift Popular? by UnknowingFool · · Score: 2

      How do we even know it's going to be popular in the first place? Does it solve any problem I can't do with C# or Python and/or on more platforms?

      Considering that you can't really use C# or Python for iOS or OS X development, I would say that's one major thing you can't do.

      It'll be a language for little hipsters who hope to be the next Steve Jobs by releasing yet another crappy useless iOS app. I don't know anyone who still bothers with iOS apps.

      Then you must not know anyone who uses an iPhone meaning you live in a rather small world.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    5. Re:Swift Popular? by angel'o'sphere · · Score: 1

      There are python development environments/libraries to write 'native' iOS Apps.
      Easy to google for ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    6. Re:Swift Popular? by Anonymous Coward · · Score: 1

      You're wrong. For one, it's clear from the docs that Swift will be adding overhead to C calls that Obj-C doesn't have. This is extremely important to me and many other developers, since C is what most real-time/high-performance apps out there (think audio/visual) and it. For two, Swift doesn't have any particular purpose behind its design -- it's just a collection of trendy features that they then shoe-horned into becoming a general purpose application language. Whatever Obj-C's faults, it clearly was designed with a purpose.
       
      Swift looks fine for most app developers, but for anyone doing high-performance work it looks like a step backwards.

    7. Re:Swift Popular? by turp182 · · Score: 1

      Xamarin allows for iPhone and Android development using C#.

      I'm waiting for the day that Microsoft buys them so I can get the premium Visual Studio integration via my MSDN subscription...

      --
      BlameBillCosby.com
  11. That is one article I don't need to read by Anonymous Coward · · Score: 0

    What's the point, dice? Further proof that recruiters and by extension recruiter-infested jobsites and everything around them are clueless nitwits? As if we didn't already know that.

    Note that the jobs on dice outside of the US typically require US government clearance, so the thing typically is entirely useless to the 95% of the world that isn't the US -- ./ is dice owned and (a shade too) US-centric, true, but has considerable non-US readership. To me dice are worse than useless in fact, since it presumably is their nitwit management that keeps on flogging that dead horse "beta".

  12. I like Swift pretty well by sideslash · · Score: 1

    Just from what I've seen (not a user yet) Swift seems like an intelligently put together language. But I'd like it a lot better if somebody ported it so it can be useful across multiple platforms. I'm a C# developer who uses Xamarin's platforms, and compiling my code for all the major mobile and desktop platforms is a really good feeling. (Paying Xamarin's licensing fees isn't, but you know how that goes.)

    1. Re:I like Swift pretty well by Anonymous Coward · · Score: 2, Interesting

      You might want to take a look at http://nimrod-lang.org, like a cross platform swift.

    2. Re:I like Swift pretty well by sideslash · · Score: 1

      Very nice -- like a marriage of Python and C#. Thanks for the link AC.

    3. Re:I like Swift pretty well by jbolden · · Score: 4, Interesting

      The whole point of Swift is its ability to abstract Cocoa. Lots of Swift's specifics make no sense without Cocoa. Given that Swift in practice is going to be loaded with calls to Cocoa, it is going to be as portable as Visual Basic or Bash.

    4. Re:I like Swift pretty well by jafac · · Score: 1

      what are you talking about? Visual Basic is totally portable!

      I can run it on Windows 95, Windows XP, Windows 2000, Windows CE, Windows 7, even Windows 8!

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    5. Re:I like Swift pretty well by dbIII · · Score: 1

      Jokes aside, I've still got a win2k machine hanging about for a legacy application because VB isn't portable (and it's not a virtual machine because the fucking idiot that wrote their abandonware in VB made sure it won't run without a parallel port dongle).
      It gets used rarely and the newer software that is to replace it is being written in python - the portability lesson has been learnt.

    6. Re:I like Swift pretty well by Anonymous Coward · · Score: 0

      The whole point of Swift is its ability to abstract Cocoa. Lots of Swift's specifics make no sense without Cocoa.

      I'm sorry, what the fuck are you talking about?

    7. Re:I like Swift pretty well by Anonymous Coward · · Score: 0

      I recently started playing around with Swift, and I see very little in the language that is in any way Cocoa-specific (well, the method argument naming is obviously there for Objective C compatibility).

      Now obviously the "standard" library is currently minimal, and most people would use Cocoa APIs for anything GUI-related, but few languages include GUI components as part of their base library, anyhow (and those that do usually suffer from severe limitations on many platforms).

      That said, there are quite a few things I don't like about Swift, some probably temporary (the implementation doesn't match the documentation in some ways) and some inherent (e.g. reference counting...I see the advantages, but there are also significant disadvantages for quite a few use cases).

    8. Re:I like Swift pretty well by CRC'99 · · Score: 1

      It gets used rarely and the newer software that is to replace it is being written in python - the portability lesson has been learnt.

      Python 2 or Python 3? They're not portable between the two versions. Who knows what Python 4 will bring.

      --
      Sendmail is like emacs: A nice operating system, but missing an editor and a MTA.
    9. Re:I like Swift pretty well by dbIII · · Score: 1

      The difference is that if either project is abandoned there's still the source code of the environment to work with so it can be tweaked to run indefinitely.
      With various VB versions or similar fully closed source environments you are stuck with whatever it ran on at the time of abandonment with zero chance of being able to run it on something newer - hence the Win2k. I've got other abandoned software of the same vintage running on the most recent Solaris because it was not written in fucking VB so is immune to the MS only problem of DLL hell (though it was written for sparc, so that is still limiting).

    10. Re:I like Swift pretty well by jbolden · · Score: 1

      I doubt you looked too closely. To quote my blog:

      For dictionaries, you get the behavior you would expect:
                      var ages = ["Peter": 23, "Wei": 35, "Anish": 65]
                      var copiedAges = ages

                          println(ages["Peter"]) // prints "23"
                      copiedAges["Peter"] = 24
                          println(ages["Peter"]) // still prints "23"
                          println(CopiedAges["Peter"]) // prints "24"

      However, for arrays, you get high-speed behavior where the copy is by reference:
                      var a = [1, 2, 3]
                      var b = a
                      println(a[0]) // 1
                      println(b[0]) // 1
                      a[0] = 42
                      println(a[0]) // 42
                      println(b[0]) // also 42 i.e. the b=a was by reference

      But this reference only holds until you break it, which, for example, happens if you change the length of an array.
              a.append(4)
              a[0] = 777
              println(a[0]) // 777
              println(b[0]) // 42

      Would anyone have designed a language like this if not tweaking it to work well with the underlying Objective-C / Cocoa?

  13. Erlang is overrated crap by Anonymous Coward · · Score: 5, Interesting

    Please, no more Erlang world domination news.

    I went through that 3 years ago already. We had a project that a fanatic asked us to rewrite in Erlang.
    it took 9 months with 2.5 people.

    Tons of issues, mostly with very lacking library support, tooling. Obnoxious stuck up community too.
    In one case, I had a guy tell me online "hire me as an Erlang consultant and then I will help you".

    In the end we set screw it (once the Erlang fanatic left).
    We rewrote this 9 months of Erlang development in 3 weeks (!) using one senior Java developer.

    it worked like a charm and still runs flawlessly in production today.

    Erlang = HYPE

    Everything is immutable is beautiful for fairy tales, but not for real-life software (trying building a DOM in a language which is 100% immutable).

    All modern languages have learned from Erlang's mistake. They do immutable by default, but allow mutable if there is a need for it (e.g. Ceylon, Rust, etc)

    1. Re:Erlang is overrated crap by bill_mcgonigle · · Score: 1, Insightful

      We rewrote this 9 months of Erlang development in 3 weeks (!) using one senior Java developer. it worked like a charm and still runs flawlessly in production today.

      Then your project was a very poor fit for Erlang in the first place.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    2. Re:Erlang is overrated crap by Anonymous Coward · · Score: 0

      All modern languages have learned from Erlang's mistake. They do immutable by default, but allow mutable if there is a need for it (e.g. Ceylon, Rust, etc)

      Haskell is pure but I agree that all these functional languages have to have some form of hand-waving around their purity. Haskell uses monads to do this in some ways, and probably does it in libraries too. All of this is hella confusing compared to other languages that flag the impurity with ! or something.

      So yeah, I generally agree. The real world is mutable. If you try to deny that, you just end up contorting your code when you try to model the real world.

    3. Re:Erlang is overrated crap by Anonymous Coward · · Score: 2, Informative

      That's the feeling I got form the original post to begin with. That the Erlang fanatic was basically applying this antipattern:

      Golden Hammer
      http://sourcemaking.com/antipa...

      Which is a problem rife within our industry...

    4. Re:Erlang is overrated crap by gweihir · · Score: 2, Informative

      Erlang is pretty cool for the intended application scenarios. It is not really a general-purpose language. If you need, for example, excellent crash-proofness, updates to running code and massive multi-threading, Erlang is what you want to use. (Ever tried to run 1000 threads in Java? I know people who did, for this Java is a completely unusable toy...)

      The second problem is that Erlang is decidedly experts-only. Real understanding of advanced programing concepts is mandatory. Don't even think about doing anything with Erlang unless you have top-notch people. (These people do not need to already know Erlang before though.) Of course, one top-notch coder is more productive than 10 of the typical mediocre ones.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    5. Re:Erlang is overrated crap by Anonymous Coward · · Score: 0

      hire me as an Erlang consultant and then I will help you...

    6. Re:Erlang is overrated crap by vux984 · · Score: 1

      Tons of issues, mostly with very lacking library support, tooling.

      Agreed -- not that I know about about Erlang in particular, but library availability, maturity, (and cost) while not a reflection of the language design itself are HUGE factors in whether or not a given project is practical in that language.

      In one case, I had a guy tell me online "hire me as an Erlang consultant and then I will help you".

      Pretty sure you can find an example of THAT guy in ANY community.

      We rewrote this 9 months of Erlang development in 3 weeks (!) using one senior Java developer.

      That can mean a lot of things really. For example, a rewrite hot off the tail of the original project benefits from the fact that all the requirements, data model, information flow, features etc are actually pinned down. You jump straight to the implementation phase, and can do it all in one programming iteration -- no meetings, no feature creep, no discovery of unspecified requirements, no backtracking...

      Essentially its the perfect project, a good developer is effectively handed a complete and accurate spec.

      Everything is immutable is beautiful for fairy tales, but not for real-life software (trying building a DOM in a language which is 100% immutable).

      Yeah, its a paradigm shift... but I'm skeptical that its really that difficult. As I said, I don't know Erlang ... but I recall the first time I dipped my hand into lisp and it was like trying to make water run uphill until it just clicked and I was correctly thinking in terms of recursion and things that seemed mind bogglingly complicated to do in lisp suddenly became simple.

    7. Re:Erlang is overrated crap by Algan · · Score: 1

      Interestingly though, this "hype" language is kicking ass when used in its intended domain, with people that know what the hell they are doing. In your case it was probably neither.

      --
      If con is the opposite of pro, is Congress the opposite of progress?
    8. Re:Erlang is overrated crap by hibiki_r · · Score: 1

      You'd be surprised if you looked at the real productivity of some of those people that have very real understanding of advanced programming concepts. I've worked, and seen code, from people who build well known functional libraries. Speak in conferences, write papers... all that stuff. But when you hand them a real life problem, they end up going for an extremely convoluted, mathematically correct solution that, when put on a real system, does not work, because some assumptions are wrong.

      That doesn't mean that you can't be a good coder if you have a firm understanding of free monads. Understanding of complex, impressive CS stuff and being productive writing reliable, easy to maintain code that does what it's supposed toorthogonal to each other. Do not assume that being good at one makes you good at the other.

    9. Re: Erlang is overrated crap by Anonymous Coward · · Score: 0

      Charlie Sheen, is that you?

    10. Re:Erlang is overrated crap by Anonymous Coward · · Score: 0

      Ever thought why you need 1000 threads in the first place? what is this new movement to create more threads than really needed? who invented that paradigm that every task needs its own thread?!

      If you have 1000 threads, you're most likely have 950 too many.

      If we're talking about CPU, context switching has a price, a very high price and unless your threads are sleeping, they are taking some of that juicy context switching, if they are sleeping, you don't really need them, use an event queue, async libraries, etc'

      If we're talking about GPU, then threads are not really threads anyway and java will perform as well as any jitted language, use C/++.

    11. Re:Erlang is overrated crap by Anonymous Coward · · Score: 0

      Erlang = HYPE

      itym "HIPE".

    12. Re:Erlang is overrated crap by gweihir · · Score: 1

      Sorry, for the person I have this observation from, 1000 was actually on the lower end of what he needed. And yes, that was the right approach to the problem. He then found Java was a toy pretending to be a professional tool.

      He ended up using processes and shared memory, which was a lot more complicated but did not suffer from extreme slowdown above a few hundred threads. Erlang would have been a viable alternative.

      I also did say that this capability of Erlang was "special purpose". So what do you complain about?

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    13. Re:Erlang is overrated crap by Anonymous Coward · · Score: 0

      Yes, true.

      Erlang is a horrible fit for MOST projects.

      it is great for Ericssion network switches and that is about it
      For any regular business app, Perl would do a better job.

  14. Web = Garbage by Suiggy · · Score: 5, Insightful

    Next year, the languages you'll need will still be C, C++ and Java. Maybe some C#, Python or Bash. The year after that, you'll still be using C, C++, and Java. Maybe some C#, Python or Bash.

    By 2020, the main difference is that you'll be working with machine-learning DSLs and libraries to program/train memristor based devices. But you'll still be using C, C++, and Java. Maybe some C#, Python or Bash.

    1. Re:Web = Garbage by Forever+Wondering · · Score: 1

      And maybe perl. They forgot to mention that slashdot uses it [IIRC]. And TIOBE to compile the stats [IIRC].
      http://developers.slashdot.org...

      --
      Like a good neighbor, fsck is there ...
    2. Re:Web = Garbage by Isca · · Score: 1

      It'll be interesting to see where C# is in 10 years. With Microsoft open sourcing it and the multiple compilers that recompile into different environments that are here and are being developed I'm wondering if it'll be everywhere or if it'll be fading away like VB is?

    3. Re:Web = Garbage by excelsior_gr · · Score: 1

      Plus some Fortran[year] for numerical applications.

    4. Re:Web = Garbage by dbIII · · Score: 1

      It'll be interesting to see where C# is in 10 years.

      Abandoned like every other version of an MS language unless there is a large, organised and mostly independent C# community outside of Microsoft. The developers versus marketers situation in MS means internally they are going to be trying to push "the next big thing" and abandon what they already have unless there are a lot of external successes that the developers can dazzle the marketers with.

    5. Re:Web = Garbage by rdnetto · · Score: 1

      It'll be interesting to see where C# is in 10 years. With Microsoft open sourcing it and the multiple compilers that recompile into different environments that are here and are being developed I'm wondering if it'll be everywhere or if it'll be fading away like VB is?

      I don't believe C# will ever flourish outside of Windows, unless Microsoft starts supporting it on non-Windows platforms. Mono has had a lukewarm reception, and in my experience isn't as solid/reliable as .NET.

      D on the otherhand, has similar syntax and is much more portable. I can easily see it overtaking C# if it gets some proper corporate support behind it...

      --
      Most human behaviour can be explained in terms of identity.
  15. So much Fail. Ignore. by Just+Some+Guy · · Score: 1

    When you write code and declare a variable, dynamic languages let you change the type of data held by the variable when the program is running; those languages that don’t are known as “static” or “strongly typed.” Languages such as C++ and Java are strongly-typed languages, while JavaScript, PHP, and Perl are dynamic languages.

    "Staticness" and "strongness" are orthogonal properties. Python, for instance, has strongly typed values (you can't convince an int that it's a str), but dynamic variables (a=123;a='foo' is valid). And while C++ is statically typed, I'd be hard pressed to describe something with void* and unions as strongly typed.

    TL;DR: Words have meaning. It's OK to disagree about whether a particular language is strongly or weakly typed, but it's not OK to claim that two different concepts are the same thing. When you make a fundamental mistake in the third paragraph, I'm likely to ignore anything else you have to say in the rest of the article.

    --
    Dewey, what part of this looks like authorities should be involved?
    1. Re:So much Fail. Ignore. by K.+S.+Kyosuke · · Score: 1

      Not only that, if you have a variable of a non-final class type or interface type in Java, you can also "change the type of data held by the variable when the program is running". E.g, without this property, it would be difficult to process items of polymorphic collections (i.e., collections allowing items of multiple types/representations simultaneously, which in Java happens to be the case of all collections, of course).

      --
      Ezekiel 23:20
    2. Re:So much Fail. Ignore. by Anonymous Coward · · Score: 2, Insightful

      Heh, even if you have a variable that *IS* final, you can *STILL* change it's value at runtime.

      Java doesn't enforce final at the bytecode level.... It's a compile-time hint and the values can still be modified at runtime.

      It's one of the main differing qualities of C++ vs Java. Const is enforced much more than "Final" in Java.

      Also C++ templates aren't by-default type-erased like Java's generics. But in C++ type-erasure is a pattern that I can choose to use or not.

      Lately I do work that garbage collection simply doesn't work well for..... I much prefer manually handling unique/shared_ptrs myself and choosing when and where stuff gets freed and in what order. Big data type stuff with lots of CPUs and massively parallel algorithms using in-memory working sets over 1 TB.

      The older I get, the more I realize that C and C++ were the only languages I really ever needed despite learning easier languages first. (BASIC/QBASIC/VB/Perl/Python/Java/C++/C)

      Now I wished I started with C++. Seriously. It's all i really need.... Python for quick prototyping crap, C++11 for the rest.

    3. Re:So much Fail. Ignore. by Forever+Wondering · · Score: 1

      And the whole riff about GC. It makes out like it's superior in all cases.

      It does mention refcounting as a subset [which perl does just fine with]. But, even with GC/refcount, you still have to break cyclic links in a tree (e.g. parent node has a list of children and each child points to its parent) when you're done or it will never GC. Also, sometimes you have to do something explicit to release resources (e.g. files) at a given time, rather than some arbitrary time later.

      Further, GC is the bane of anything that must provide a constant semi-realtime response. With refcounting [can be done even in C/C++ if designed that way], you've got a "pay as you go" system [when refcount goes to zero, you free immediately]. With GC, you're "piling up debt" [of reclamation].

      I've got a friend who is working on a java based web server system. When GC reclamation [finally] kicks in, the entire system goes "offline" for 35-45 seconds at a clip. He claims that particular system can be ameliorated with better programming practices (e.g. be mindful when a given construct will produce large amounts of GC), but is hard pressed to convince his colleagues of the need to do so.

      --
      Like a good neighbor, fsck is there ...
    4. Re:So much Fail. Ignore. by DickBreath · · Score: 4, Insightful

      So much fail about Garbage Collection.

      GC is not about forgetting to free memory. It's about higher level abstraction removing the need for the programmer to do the bookkeeping that the machine can do. Why don't we still program in assembler? Because it's less productive. It's about productivity. As data structures become extremely complex, and get modified over time, keeping track of the ownership responsibility of who is supposed to dispose of what becomes difficult to impossible, and is the source of memory leak bugs. In complex enough programs, you end up re-inventing a poor GC when you could have used one that is the product of decades of research.

      The article fails to understand that you can also run out of memory in a program using GC. Just keep allocating stuff without and keeping references to everything you allocate.

      Reference Counting is not real GC. Cyclical data structures will never get freed using reference counting.

      One of the major, but under-recognized benefits of GC, which the article fails to mention, is that GC allows much simpler ''contracts' in APIs. No longer is memory management part of the 'contract' of an API. It doesn't matter which library or function created an object, nobody needs to worry about who is responsible for disposing of that object. When nobody references the object any more, the GC can gobble it up.

      On the subject of Virtual Machines, the article could mention some of the highly aggressive compilation techniques used in JIT compilers. So every method in Java is a virtual call. But a JIT compiler knows when there is only one subclass that implements a particular method and makes all calls to the method non-virtual. If another subclass is loaded (or dynamically created on the fly) the JIT can recompile all methods that call the method such that they are now virtual calls. Yet still, the JIT may be able to prove that certain calls are always and only to a specific subclass, and so they can be non-virtual.

      The JIT compiler in JVM can aggressively inline small functions. But if a class gets reloaded on the fly such an the body of an inlined method changed, the JIT will know to recompile every other method that inlined the changed method. Based on the changes to the method, it may or may not now make sense to inline it -- so the decision on whether to inline the method can change based on actual need.

      The HotSpot JVM dynamically profiles code and doesn't waste time and memory compiling methods that do not have any significant effect on the system's overall performance. The profiling can vary depending on factors that vary from system to system, and could not be predicted in advance when using a static compiler. The JIT compiler can compile your method using instructions that happen to exist on the current microprocessor at runtime -- something that could not be determined in advance with a static compiler.

      All of this may seem very complex. But it's why big Java systems run so darn fast. Not very many languages can have tens or even hundreds of gigabytes (yes GB) of heap with GC pause times of 10 ms. Yes, it may need six times the amount of memory, but for the overall benefits of speed, the cost of memory is cheap.

      --

      I'll see your senator, and I'll raise you two judges.
    5. Re:So much Fail. Ignore. by Anonymous Coward · · Score: 0

      If you want, you can use strong typing in C++. You cant do that in most of those scripting abominations. From PHP to Groovy.

    6. Re:So much Fail. Ignore. by russotto · · Score: 1

      GC is not about forgetting to free memory. It's about higher level abstraction removing the need for the programmer to do the bookkeeping that the machine can do.

      Abstractions leak. GC tends to leak in a way that can fixed mostly by doing the same sort of bookkeeping you'd do in an explicit allocation model.

      Why don't we still program in assembler?

      Because computers have gotten so complex that good compilers can beat good hand-assembled code nearly every time.

    7. Re:So much Fail. Ignore. by Anonymous Coward · · Score: 0

      All of this may seem very complex. But it's why big Java systems run so darn fast. Not very many languages can have tens or even hundreds of gigabytes (yes GB) of heap with GC pause times of 10 ms. Yes, it may need six times the amount of memory, but for the overall benefits of speed, the cost of memory is cheap.

      It is a bit of a myth that GC increases overall system performance. If you have a process that runs for a finite time it will finish faster since the GC can be delayed until the program is done. The GC itself is however more expensive than explicit and structured deallocation and with continuous system load it performs worse.
      Luckily in most cases there are times when the CPU and memory is idle and GC can be performed without a performance penalty but for things where you expect heavy load and memory usage for a long duration (Physics simulations?) GC will screw you over.

      There is no magic tool that just solves everything. In a good language garbage collection is an option that you can use or disable depending on what problem you solve.

    8. Re:So much Fail. Ignore. by Anonymous Coward · · Score: 0

      Because computers have gotten so complex that good compilers can beat good hand-assembled code nearly every time.

      I've been hearing this argument for the last 20 years or so, and it is unfortunately still not true. The reason we don't program in assembler is because writing good assembly code by hand takes so much longer than writing in a higher level language that the effort is almost never worth it.

    9. Re:So much Fail. Ignore. by DickBreath · · Score: 1

      Yes, that!

      Would you rather have your next whizbang software package one year sooner, but with let's say, 75% of the performance? Or would you rather wait an extra year (or more years) for a version that has somewhat faster execution? You can substitute any reasonable number for the 75%, like 50%, and this question might still get the same answer. Not only is software delivery faster, but less buggy. You can write bugs in high level languages, but you tend to write fewer of them because the abstractions are designed to protect you from certain classes of bugs. Structured programming to avoid GOTO spaghetti. Type checking. GC. Functional programming. Immutable variables. Immutable data structures. Automated reasoning. Logic programming. Computer Algebra Systems. Automated theorem provers. Etc. Pick whichever level of abstraction is suitable for your project. C is not perfect for everything, but it is simply wonderful for certain things. But that can be said for other languages as well.

      --

      I'll see your senator, and I'll raise you two judges.
    10. Re:So much Fail. Ignore. by DickBreath · · Score: 1

      Faster is both a characteristic of execution runtime, and time required for software development / maintenance. That development time has become a major important factor. Time to market. Beat competitors. Also programmer time is now vastly more expensive than hardware time. Just throw a few hundred gigabytes of RAM and a few racks of CPUs at it. This is still WAY cheaper than adding another programmer. (And more programmers add a certain drag factor on the development.)

      But overall, with an outstanding GC, and with JIT compilers that are the work of over 15 years of research (see JVM), you can achieve excellent performance. (See elsewhere in this slashdot where I describes some of the amazing things the JVM does. Also Google for why organizations, like Twitter, switched to Java. It may seem counter intuitive, but the results are real.)

      --

      I'll see your senator, and I'll raise you two judges.
    11. Re:So much Fail. Ignore. by Anonymous Coward · · Score: 0

      Until you plug it under Matlab, and cringe when your fucking GC just crashed your multi-day simulations, because of it's just fucked. Plugging in more memory is not a hammer.

    12. Re:So much Fail. Ignore. by Anonymous Coward · · Score: 0

      There is also the fact that Java systems over time don't get fragmented heaps like C++ programs do, purely because of the GC algorithms. If you are writing long lived server processes, that do a large number of allocations, then over time memory management in C++ degrades and performance slows down, as the heap gets more fragmented - in Java, it remains stable as the GC manages and reorganises the heap. When you add the JIT optimisations on top of that, the Java program also has the potential to get faster over time.

      * Disclaimer - it is still possible to write poor Java code, but the GC and JIT advantages, mean someone who knows what they are doing can excell with Java when it comes to performance.

    13. Re:So much Fail. Ignore. by david_thornley · · Score: 1

      FWIW, void * isn't really a problem with strong typing in C++, as you need to explicitly cast it to something to get a pointer type you can actually use. It is a type hole in C. As for unions, I rarely see them. C++, as normally used, is a reasonably type-safe language, although there's enough end runs to make me not call it really strongly typed..

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    14. Re:So much Fail. Ignore. by david_thornley · · Score: 1

      C++ uses reference counting, but that allows it to use a unified resource allocation and deallocation scheme. Both that and standard garbage collection are useful. Unfortunately, they're mutually exclusive.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    15. Re:So much Fail. Ignore. by Anonymous Coward · · Score: 0

      There is a diversity of approaches to GC, with different trade-offs. The short-object-lifetime conjecture works out pretty well in practice (and can be explicitly coded and/or compiled towards), and extremely fast handling of a small first generation arena has led to many approaches which takes advantage of what underlying hardware actually does (stack->hidden registers, cacheline colouring, etc.). Threading is commonplace in modern GCs, so there is no need to stop the world even for a full collection; anti-collision approaches involving write barriers, random selection of which page at a given hotness should be scanned, and so forth, mean that one has to try hard to hit the worst case of the the GC scan & sweep or scan & move with one's code.

      The important point about GC is that it reduces the time to allocate memory initially; the typical case is a pointer increment and no further bookkeeping. The cost of freeing and compacting can be amortized over time during idle periods, or where there is room for one or more GC threads to sift through older objects to see if they're still referenced.

      Reference Counting is not real GC.

      That's an unusual opinion. Automated reference counting implementations are essentially an optimization over simple mark & sweep; you can skip tracing down through objects who have nonzero reference counts until you are desperately short of memory, at which point you can trace down through those object trees and prune them (and there is where automated reference counting can really win with weak referencing, low-memory handlers or finalizers, and so forth - objects which are referenced but which are permitted to be purged in response to system behaviour are almost always part of a modern ref counting design.) Such approaches are orthogonal to precise vs conservative collection strategies.

      Not very many languages can have tens or even hundreds of gigabytes (yes GB) of heap with GC pause times of 10 ms.

      There are several large functional programming runtime environments which have worst-case bounded pauses measured in tens of machine instructions, and there is active research into avoiding ccNUMA waits during those worst-case periods.

      JVM GC is getting better and is benefiting from the ongoing and diverse work in automatic memory management. However not even Hotspot is not a shining beacon of awesome memory management modernness. Its performance is poor compared to proprietary JVMs such as Azul Zing, which benefits from its continuous concurrent compacting collection (C4) GC system.

      A better example of a big and popular open-source project beginning to use modern memory management techniques (and has actually been using even more modern JIT compilation (and dataflow-driven and profile-driven recompilation in frequently used code paths)) is the work Pizlo et al have been doing in WebKit (e.g. https://www.webkit.org/blog/33... or http://blog.llvm.org/2014/07/f... ). One of his slide decks makes the (pretty accurate) claim: "We took a dynamic language and made it fast!". Node.js is also a good example of increasing use of modern memory management in open source, lifting lots of material from V8.

  16. Fundamentals of Comp Sci by clifwlkr · · Score: 4, Insightful

    Or how about learn about the fundamentals of computer science. Actually learn what pointers are, pass by reference, multi-threading, type safety, and all of the things that implies. Then express those in whatever language you want. If you truly understand how computers and languages work, and what an enterprise system is composed of, you will likely have future proofed your career. If your language doesn't support many of those ( I am looking at you, JavaScript), then perhaps consider how much those jobs are likely to pay in the long run....

    1. Re:Fundamentals of Comp Sci by K.+S.+Kyosuke · · Score: 1

      1) Learn Oberon (with concurrency extensions, say, Active Oberon). 2) Achieve enlightenment. ... I can't tell you how to get to the "X) Profit!" part, though. ;)

      --
      Ezekiel 23:20
    2. Re:Fundamentals of Comp Sci by mark-t · · Score: 1

      Just a minor nitpick. Pointers are an implementation detail, not a computer science fundamental prinicple.

    3. Re:Fundamentals of Comp Sci by clifwlkr · · Score: 1

      Agreed to some extent, but how they are actually implemented in languages and what they mean kind of are... You just don't know how tired I am of working with people who can not understand the difference of pass by pointer, value, and reference though. Never mind a slew of other basics that really are important to understanding what you are writing is actually doing. The state of code is rapidly going down hill....

    4. Re:Fundamentals of Comp Sci by Anonymous Coward · · Score: 1

      Pointers are not an implementation detail. You're saying the method for which you access memory is an implementation detail. Honestly, I challenge you to name a single language that doesn't use pointers. How you deal with them I'll agree is an implementation detail, but pointers themselves are so fundamental to how computers work, to call them an "implementation detail" shows a gross lack of understanding of how a computer works.

      Case and point, C, C++, obvious as they make a clear distinction between pointers and non pointers. Java, everything is a pointer, you don't have to treat them special. Scripting languages, I've not bothered in looking at the specifics of their implementations, but I'd bet everything is a pointer, but doesn't give the niceness of creating copies of the pointers to the data, and instead only do deep copies.

    5. Re:Fundamentals of Comp Sci by mark-t · · Score: 1

      You suggest that I don't understand how computers work because I call pointers an implementation detail, then you go and cite examples where pointers are supposed to be getting used under the hood, and yet those very examples only illustrate the point that it is an implementation detail, and not actually foundational to programming.

      One of the definitive works with which I am familiar on the subject of computer science as it pertains to programming, by Knuth doesn't even dedicate a whole chapter to a concept that you seem to think is so fundamental to knowing how to program. Of course, I know that an argument from authority doesn't make one right.

      But then neither does an argument from ignorance.

    6. Re:Fundamentals of Comp Sci by Anonymous Coward · · Score: 0

      Don't forget the assembly

    7. Re:Fundamentals of Comp Sci by Anonymous Coward · · Score: 0

      Pointers are a fundamental principle, they came before having values in the variables. It's the address where the data is stored.

    8. Re:Fundamentals of Comp Sci by Anonymous Coward · · Score: 0

      Technically that can be said about all datatypes. A programming language doesn't need to have them.

      As for pointers often being highlighted as something tricky that is probably because of the obscure syntax C has for them.
      I've never heard anyone who started out with basic or assembler ever having problems with pointers. They have learned that it is nothing more than the address to some data from the beginning.

    9. Re:Fundamentals of Comp Sci by Anonymous Coward · · Score: 0

      That's not a minor nitpick, it is important.

      Computer science is not "learning to write programs".

    10. Re:Fundamentals of Comp Sci by CrashNBrn · · Score: 1

      You know, Oberon sounded interesting given it's pedigree. Except there's something like half-a-dozen different versions of it - with varied licensing, multiple compilers for the various Oberon versions...

      Then you read what the original "goals" for the Oberon language were (simplicity being a prime consideration) --- and he's gone back at least twice now, and rewritten Oberon - complicating each successive version in non-compatible ways with each other.

    11. Re:Fundamentals of Comp Sci by K.+S.+Kyosuke · · Score: 1

      Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away.

      ^^^ Actually, the attempt was to simplify something in each version. Oberon 2013 is perhaps the simplest one yet, but there's really two lineages to watch, and most people would probably find the BlackBox Component Builder much more palatable. (Although it's in a need of a massive overhaul, if you ask me - I'm actually considering looking into trying to graft the match-bounded polymorphism approach onto it, as outlined in Kim B. Bruce's Foundations of Object-Oriented Languages, because it just might turn out to be a good fit for the language. It's a massive effort, though; a whole 3.5% of the effort needed to write a correct C++ compiler :D).

      You know, the "burn the diskpacks" approach was actually what got Smalltalk in the 1970s in a short period of time into the forefront of software systems. Outside of Lisp machines, I'm not aware of anything that advanced in that time period. But after they set the language and system design in stone to commercialize it, most of the advancement has stopped, and new aggressive designs started later catching up (somewhat, at least). The same thing has happened with the (post?)modern computing systems like Linux or Windows that succeeded it in many of its domains: once you accept the status quo, the only way to "improve" the system will involve piling a complex layer on top of the existing system to "fix" the deficiencies of the layer beneath it at least for new applications. Significant new progress in the field suddenly becomes almost impossible under these circumstances.

      --
      Ezekiel 23:20
  17. Author thinks strong typing == static typing? by Anonymous Coward · · Score: 0

    It's been a while since I've had a language paradigm course but strong/weak is not synonymous with static/dynamic. Thoughts?

    1. Re:Author thinks strong typing == static typing? by gweihir · · Score: 2

      It is not. Strong typing can be implemented by attaching types to data. Static typing always attaches types to variables and they are fixed. But strong typing can also mean type-less variables, but no implicit conversion of values. For example, Perl is weakly typed, but that is because it will, for example, happily convert a string to a number all on its own. Python, on the other hand, is strongly typed, despite its variables not having types just like in Perl. The values assigned to the variables in Python have types and all type conversions have to be explicitly requested by the programmer.

      With such a stupid article, it is really no surprise the author gets basic things wrong.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    2. Re:Author thinks strong typing == static typing? by roger10-4 · · Score: 3, Insightful

      You're correct. The terms "strong" and "weak" do not have formal definitions and really aren't related to static or dynamic (which do have specific definitions). The definitions used by the article for functional programming and dynamic type systems aren't accurate/complete either. Furthermore, C/C++ wouldn't be considered a "strongly-typed" language since the type system can be freely ignored by the programmer. In any event, this article is poorly written and can probably be safely ignored.

    3. Re:Author thinks strong typing == static typing? by Anonymous Coward · · Score: 0

      Indeed... I nearly fell off my chair when I read that C++ was "strongly typed".

    4. Re:Author thinks strong typing == static typing? by gnupun · · Score: 1

      Strong/weak is related to checking the type of variable passed as a parameter vs. the formal type of function parameter. For example, old C compilers had weak typing since they had no function prototype requirement, so you could pass a "char *" variable where a function wanted to work with an "int" type variable. Pascal compilers, on the other hand, had very strict typing where you couldn't pass an Integer variable where the function parameter type was Percent (subrange 0..100).

      Static languages require the variable passed to functions be checked against the function parameter type at compile time whereas dynamic languages don't do the type checking at compile time; they do it at run time when the function parameter is used.

    5. Re:Author thinks strong typing == static typing? by gweihir · · Score: 1

      Yes, this joker probably meant "has a more complex type system".

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  18. Swift RT does not have GC by AlreadyStarted · · Score: 3, Informative

    Swift is a strongly-typed language, that operates inside a runtime with garbage collection.

    There is no GC in iOS. Also the GC in OS X is deprecated. Swift uses Automatic Reference Counting which is something... completely different.

  19. So much Fail. Ignore. by Anonymous Coward · · Score: 0

    an example of dynamic and loosly types, TCL.
    There is only one type: string. However internally it also knows about numbers and objects, but it converts those to strings willy nilly, and interprets string to those numbers and objects.

    TCL should not have existed, but companies that make hardware design tools fucking love it. However everyone in the industry that works with these tools have moved on to Python. But this is an industry that still doesn't have a working simulator and synthesiser for VHDL2008.

  20. Since when is... by camperdave · · Score: 1

    date_default_timezone_set(‘America/Los_Angeles’);

    Since when is ‘America/Los_Angeles’ a time zone?

    --
    When our name is on the back of your car, we're behind you all the way!
    1. Re:Since when is... by Chris+Mattern · · Score: 1

      Since interface designers faced with idiots decided "Pacific Time" was too difficult for people to figure out. They've been doing this for a while, actually.

    2. Re:Since when is... by ChunderDownunder · · Score: 1

      Pacific Time, USA could mean a bunch of islands in Oceania. e.g. Hawaii, Guam, Samoa, Northern Mariana Islands etc.

    3. Re:Since when is... by Chris+Mattern · · Score: 1

      No, the Pacific Time Zone (Pacific Standard Time, Pacific Daylight Time) is a specific official timezone name that uniquely identifies the timezone that includes LA. Hawaii is in the Hawaii-Aleutian Time Zone. Guam is in the Chamorro Time Zone, as are the Northern Mariana Islands, and American Samoa is in the Samoa Time Zone (the independent nation of Samoa is in the West Samoa Time Zone).

  21. All I need is PIC assembly, DOS batch files and AWK.

    --
    Mostly random stuff.
  22. Dice still sucks by Anonymous Coward · · Score: 0

    ... hey dice, this sort of cross posting between online entities is lame and irritating. Oh well, the time where I can use slashdot is diminishing as the unusable and unwated beta looms overhead.

    P.S. Don't use Dice.com they'll SPAM the shit out of you forever then deny it.

  23. Article is worthless for anyone with CS experience by Anonymous Coward · · Score: 0

    Holy fuck that article was bad. Slashdot, what have you become?

  24. Bah! by Anonymous Coward · · Score: 0

    Half the people reading this are going to need to learn PowerShell in the next year.

  25. Bullshit, as usual. by gweihir · · Score: 1

    Next year, unless you are at the bottom of the skill and payment pyramid, you will need C and derivatives (C++, Objective C) and maybe Python or Perl.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  26. My thoughts on these selections. by MAXOMENOS · · Score: 3, Interesting

    CSS/JavaScript/HTML5 is plainly obvious. Everything from Microsoft to mobile hybrid development relies on this these days.

    C# is the standard language of the Microsoft stack --- in fact, the bulk of MS-stack training is in C#, with only a smattering in VB.NET.

    Java is the COBOL of the early 21st Century. It isn't sexy anymore but it will always be around.

    PHP is used in a lot of web applications. I wish it weren't. In fact, I'd really rather see Ruby on Rails take over this space.

    If you're going to program native code, you could learn Swift, sure. You could also learn Rust (Mozilla's systems-level language with significant buy-in from Samsung) for device programming. If your goal is to write native apps, your best bet for Android is actually Java. By the way, one can also design native apps in Java (the code is Swing-like) and compile them to native apps for iOS or Android using Codename One, and I imagine a few shops will pick up that practice.

    I like Erlang as an honorable mention. I'd also add two others: Python (especially for data analysis) and PowerShell (which will set the grown-up Microsoft sysadmins from the point-and-click kids).

    1. Re:My thoughts on these selections. by ADRA · · Score: 3, Insightful

      Trust me, from a guy who's dealt with COBOL and Java, they're nothing alike in either corporate philosophy or boat-anchor of coding. For better or worse, Java and C# are essentially analogs in terms of what you can 'do' with them. Java sucks more in UI's, and some syntactic sugar that makes your life easier, and C#/.NET lacks the trillion toolkits used in Java for pretty much any common need. Many popular Java lib's are ported to .Net, but still a boat load you'll only find in Java land for now. Lets not labor the point. There will be a millions fan boys to jump on the point, but on a language stand point, they're so close that it shouldn't matter.

      PHP is a simple language for beginners and it got its entrenched status because some novice PHP dev's wrote some great sites / tools which people have organically grown around. Its a lousy language, and a very specific use case. I've never used RoR, but sounds about the same but in a more sexy buzz word.

      Erlang like all functional languages universally are very useful for their very limited number of business areas where they rock, and enevitably the evangelists of these languages always trump out how they're great for everything and the kitchen sink, but we all know they aren't, and will continually be relegated to areas where they shine. Hybrids like Scala have a chance, but frankly I'd hate to sit down and listen to a dev lead's meeting in a scala shop lay down the laws on when to use strictly functional no matter how broken it makes the code, and when to just use other paradigms that probably just work better, simpler, and faster to develop.

      --
      Bye!
  27. The programming language for the next 20 years... by Damouze · · Score: 5, Insightful

    C. Plain old C.

    Entire Operating Systems are written in it. Userland tools for those operating systems are usually written in it. Any self-respecting developer knows at least C. The rest is just like fashion tips: next year they're outdated.

    Although, as much as I hate to admit it, the same could be said for Java...

    --
    And on the Eighth Day, Man created God.
  28. Must be a joke article by Anonymous Coward · · Score: 0

    Learn Glue. As the once great Charles Barkley said "anything else would be uncivilized"

  29. Terrible article by Anonymous Coward · · Score: 0

    This reads like it was written by a student in a Writing 101 class who chose to research programming languages as a weekly assignment.

  30. Re:Dice by Anonymous Coward · · Score: 0

    Hell yeah, I played that at lan parties back when people used to lug desktops around every weekend just to play games.

  31. The concept of languages is dead by Anonymous Coward · · Score: 0

    Languages don't matter of, in the age of google, the concept of "learning a language" is obsolete, dont learn language, learn good programming logic, and understand the different types of languages in general, everything else you need to be able to adapt to and learn on the fly. don't bother sitting there and trying to learn code and memorize crap, you're wasting your time, just understand programming and understand how to learn code quickly and you will be 1 step ahead of everyone else who waste's money learning 1 or 2 languages.

    When you are successful at doing this, languages mean nothing to you, they are all the same (with a few exceptions), some have advantages over others in certain fields. Just understand that syntax is not meant to be memorized anymore, its meant to be looked up and used.

    Back in the day when there were only a handful of languages and the only references were books, it was worth memorizing, these days where the number of useful languages that are used everyday are by the dozens, you need to forget the concept of learning a language.

  32. Why Swift at all? by Anonymous Coward · · Score: 0

    ...when you can use Qt and compile the same code frickin' _everywhere_?

  33. IT security wanna-bees, take note by 93+Escort+Wagon · · Score: 1, Funny

    PHP is forecast to be very popular going forward. That means your employment prospects are good!

    --
    #DeleteChrome
    1. Re: IT security wanna-bees, take note by AcerbusNoir · · Score: 0

      PHP has received a lot of grief because inexperienced developers implemented poor and insecure code. It's not a fault of PHP - no more than it would be the fault of C for every buffer overflow exploit.

    2. Re: IT security wanna-bees, take note by 93+Escort+Wagon · · Score: 1

      Yes, it's not like the maintainers of the PHP language ever broke crypt() and then debated whether or not they were going to fix it...

      --
      #DeleteChrome
    3. Re: IT security wanna-bees, take note by ArcadeMan · · Score: 1

      Joke's on them. I never used crypt().

  34. Laugh at me, but Flash is still relevant by GoodNewsJimDotCom · · Score: 1

    With Flash you can make: Destop/Web/Android phone+tablet/ios phone+tablet all in the same code!

    Flash is a lot like C/C++ and Java, except it allows you to a couple things easier.

    I think of all the languages though, Java has to be the winner. It has about the power of C/C++, except you don't need to dot the is and cross the ts. Java is superior to C/C++ in strings, garbage collection and arrays. For most projects you'd take code that has less bugs in it and develops faster than code that executes a slight % faster.

    1. Re:Laugh at me, but Flash is still relevant by Anonymous Coward · · Score: 0

      I see you are clueless. Go back to your MBA studies.

  35. eJabberd by phorm · · Score: 1

    The only time I've seen Erlang was back when I used eJabberd (which at the time was better than the regular jabberd).

    Depending on one's industry, I'd say that GLSL would also be a useful (and interesting) thing to learn.

  36. Erlang is a tough chew by msobkow · · Score: 3, Informative

    I spent over two years working every day with Erlang on a project, and I still don't consider myself to be anywhere near an "expert" at the language. It's just too weird and special case for a lot of the functionality I was trying to code, so while certain tasks were easier than they would have been in Java or another procedural-object language, others were damned near impossible and took obscene amounts of time to get working at all -- never mind working efficiently.

    Personally I'd avoid it like the plague unless you have some special case need for it's features. Even with regards to concurrency, it's not really any better than any other language's concurrency features. They aren't really baked into the language as the summary suggests, but provided by frameworks in the API libraries, much as they are by other languages.

    The main difference with Erlang concurrency is that the concurrent models are the "normal" way to program Erlang, so you're likely to find a lot of good examples of how to do it. I've found the documentation for other language's concurrency features to be somewhat limited in comparison, and less "real world" in their examples.

    The main thing that I found neat about the Erlang framework was the ability to specify auto-restarts of failed threads. It takes all of about 4 lines of configuration to get a thread to be persistent/self-starting. That's the densest code I've ever seen for achieving such a task.

    The big downside to Erlang is that it's almost as bad as LISP -- everything is a list. Even "structures" are just lists of objects with tags that identify the list indices for accessing the members. Be prepared for a nightmare of tail recursion if you get into this field of programming.

    That said, it can be a fun and entertaining language to work with. For the things it is good at, it can be a joy to use. Much as with any language.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:Erlang is a tough chew by Algan · · Score: 1

      I spent over two years working every day with Erlang on a project, and I still don't consider myself to be anywhere near an "expert" at the language.

      Good, because it shows. For your information structures (records, in Erlang parlance) are actually tuples, with all the performance characteristics of those. And I can only be amused by "nightmare of tail recursion" .... welcome to every functional language, ever. After a while, tail recursion becomes your second nature.

      --
      If con is the opposite of pro, is Congress the opposite of progress?
    2. Re:Erlang is a tough chew by msobkow · · Score: 1

      And what is a tuple other than a list of values?

      Go back to university and study the basics.

      --
      I do not fail; I succeed at finding out what does not work.
    3. Re:Erlang is a tough chew by msobkow · · Score: 1

      And tail recursion is an extremely restrictive programming model. If you break out of the tail recursion model with Erlang (resulting in more readable code and sometimes unavoidable if you want a specific behaviour from your code), be prepared to run out of stack space.

      --
      I do not fail; I succeed at finding out what does not work.
    4. Re:Erlang is a tough chew by msobkow · · Score: 1

      Last but not least, you might want to dig deep into the bowels of Erlangs runtime (which I've had to do for thornier debugs.) Lists upon lists upon lists -- with syntactic sugar at the language level so you can *pretend* you're not dealing with a list.

      --
      I do not fail; I succeed at finding out what does not work.
    5. Re:Erlang is a tough chew by Anonymous Coward · · Score: 0

      I don't know Erlang but in functional languages like OCaml or Haskell tuples and lists are very different. A tuple is a product type, made of a fixed number of elements or arbitrary types. Like a structure, but with anonymous fields (identification by position). A list is variable length and made of elements of the same, single type. Similar to a linked-list of C structure, one for each element. So GP is right that both are very different.

  37. Re:The programming language for the next 20 years. by DutchUncle · · Score: 1

    I wish it were Pascal. Or at least some decent extensions, and some *real* macros, updating C. And maybe a little learning from history: I could do things in IBM Assembler macros in the 1970s that you still can't do in C++ templates. We spent too much time being cool and iconoclastic and "new" that we threw out the good with the bad - except C, which has hung around forever and you STILL don't know how big your values are.

  38. Elixir? by mothlos · · Score: 2

    As long as we are hyping Erlang, the Erlang community is getting some disruption from a language developed by a prominent Rubyist called Elixir. Clojure-inspired metaprogramming, a Ruby-ish syntax, and it all compiles down to the same VM code that Erlang compiles into.

    1. Re:Elixir? by ignavusinfo · · Score: 2

      As a long time Erlang proponent I'm finding that Elixir is an easier sell (admitting to liking Erlang's syntax can bring conversation to a standstill) and no less useful. Really a delightful language to work in.

  39. C# does not run in a virtual machine by Anonymous Coward · · Score: 0

    C# does not run in a virtual machine. It is just-in-time compiled to native code. The C# compiler compiles to IL (intermediate language) that at run time is compiled to native code. Depending on what you are doing, multiple runs may have the native code cached.

    1. Re:C# does not run in a virtual machine by msobkow · · Score: 1

      If JIT compilation is your definition of "does not run in a virtual machine", then modern Java doesn't run in a VM, either.

      --
      I do not fail; I succeed at finding out what does not work.
    2. Re:C# does not run in a virtual machine by Anonymous Coward · · Score: 0

      C# does not run in a virtual machine. It is just-in-time compiled to native code.

      Is that so?

  40. Re:The programming language for the next 20 years. by Anonymous Coward · · Score: 0

    One great thing about C is that if you don't like, you can use it to program a compiler for a new language that you prefer. (I haven't done that yet but I have written a parser/interpreter in it, as well as written meta-code in C -- i.e., C code that writes my C code for me. C gets a rep as an old fogey language, but it's quite fun really.)

  41. Re:The programming language for the next 20 years. by micahraleigh · · Score: 1

    That sounds nice.

    If your code doesn't use any strings.

  42. Functional Programming? by cforciea · · Score: 3, Insightful

    A functional language is one whereby the functions themselves can be stored in variables and passed around as parameters to other languages.

    What in the actual fuck. That may be the worst definition of a functional language I've ever heard. Even if I try to interpret it as something that could make any sort of sense, I just get that storing functions in variables makes a language functional, which the author goes on to debunk by pointing out that C++ isn't a functional language. Why bother even trying to describe them if you have no idea what the hell they are?

    1. Re:Functional Programming? by Anonymous Coward · · Score: 0

      A functional language is one whereby the functions themselves can be stored in variables and passed around as parameters to other languages.

      That may be the worst definition of a functional language I've ever heard.

      I think s/languages/functions/, and then it's at least marginally better. Probably not enough money for an editor.

    2. Re:Functional Programming? by odie5533 · · Score: 1

      Probably not enough money for an editor.

      Sprinkle in some 'whereby's and no one can tell you did the editing yourself.

    3. Re:Functional Programming? by Anonymous Coward · · Score: 0

      >Why bother even trying to describe them if you have no idea what the hell they are?

      You should already have known the article would be worthless once Jeff Cogswell's name popped up.

    4. Re:Functional Programming? by gweihir · · Score: 1

      The author really has no clue. He also doe snot understand what static and dynamic typing means and that it is orthogonal to weak and strong typing. Or that whether you have GC or not is not necessarily dependent on the language. You can attach a GC to C and have it working reasonably well.

      This article was written by an incompetent wannabe.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  43. Re:The programming language for the next 20 years. by Anonymous Coward · · Score: 0

    Yeah. We need to grow he Cyber War Domain.

    NOT !

  44. Re:The programming language for the next 20 years. by DickBreath · · Score: 3, Insightful

    Entire operating systems are written in C -- as they should be.

    But C is a low level language. Not the best tool for writing applications.

    Higher level languages and managed runtime systems have gained so much traction for a reason. They are very productive to use. They protect you from simple mistakes. The relieve the burden of memory management. GC simplifies library APIs by making the question of who should dispose of what become irrelevant. We could still be programming in assembly language instead of C. Why aren't we? Why aren't OSes written in assembly? Because C is more productive and higher level. Similarly, there are higher level languages than C, and they have their place. C is not the end all of abstraction.

    --

    I'll see your senator, and I'll raise you two judges.
  45. Re:The programming language for the next 20 years. by Anonymous Coward · · Score: 0

    Maybe you grow up, find a macro processor of YOUR choosing and do what you want with C++ ? There is no law forbidding you to use your OWN generic programming technique in your C++ code.

  46. Re: The programming language for the next 20 years by Anonymous Coward · · Score: 0

    Needing to learn a projects pet Marcos is why I don't bother with C projects.

  47. whoosh! by globaljustin · · Score: 1

    it's a semantic argument, IMHO...but you totally missed the joke

    if the defining criteria is your code language can do something another cannot, then have C++ render a hypertext document with linked photos & text into a browser

    still it's *semantics*...it's all machines following code pounded by a monkey

    --
    Thank you Dave Raggett
    1. Re:whoosh! by angel'o'sphere · · Score: 1

      There are many (classes of) languages.
      Natural languages are unpriced, they drop into jargon, e.g. if you write a cooking recipe: "100g carrots, chopped", not a correct sentence, grammatically correct, but perfect cooking jargon.

      Then there are programing languages, some simple ones, and more complex ones called "turing complete".

      Then there are plenty of languages that describe something completely different, like web pages (HTML) or books (TeX) ... OTOH I would not wonder if TeX is indeed turing complete ...

      Anyway, as long as you can not perform a calculation in HTML, XML, CSS or whatever you pick: t is not a programming language.

      still it's *semantics*...it's all machines following code pounded by a monkey And? The firing sequence in your cars engine is a programming language because a (computer) machine is pounding it out?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    2. Re:whoosh! by KingMotley · · Score: 1

      LESS can calculate 1 + 1 just fine, as can css. Just not output the way you probably want, perhaps. For example: "margin: calc( 1px + 1px);" works just fine.

    3. Re:whoosh! by KingMotley · · Score: 2

      So if you can do a calculation in HTML and CSS, then it is a programming language?

      Ok, here: http://experiments.hertzen.com...

      Ooops.

    4. Re:whoosh! by angel'o'sphere · · Score: 1

      Ah, interesting, so CSS3 has some calculation options, wow.
      That makes CSS3 a programming language, still not HTML.
      But thanx for the link, it is always good to stay up to date!

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    5. Re:whoosh! by angel'o'sphere · · Score: 1

      No input either :)
      I believe this is CSS3, or? And we talked about HTML and not CSS anyway.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    6. Re:whoosh! by PostPhil · · Score: 1

      No. I don't know why so many "geeks/nerds" are confused about this. There's no grey area here. "Calculators" (e.g. adding machines) existed before the modern digital computer, so it's not about mere *calculation*, it's about whether or not (given enough time and memory) the language can calculate ANYTHING that can be calculated. It must be TURING COMPLETE (i.e. one means of universal computation amongst others such as Lambda Calculus).

      It's not about mere basic arithmetic, it's about whether or not symbolic computation is possible. The litmus test is whether or not you can write a simulation of a universal Turing Machine within the computer language. If so, then it's a computer *programming* language. If not, then it's some other language such as a markup or *cough* stylesheet language.

      Yes, computer languages can eventually be promoted to computer *programming* languages with additions to the language. For example, SQL used to only be a query language that is now a programming language due to recursive queries and a language for stored procedures (SQL/PSM) officially added to the spec.

      Then programming languages are further divided into general purpose vs domain specific, etc. Simply, that theoretically equivalent computational power is not the same as equivalent practical power.

      In the CSS3 calculator example, it's just a hack that uses the experimental calc() function of CSS3 for simple arithmetic and some hard-coded (finite) elements to manipulate. If you actually try out the "calculator", you'll notice it's not even a fully functioning calculator, much less possessing the computational power of a real programming language. If that's not clear enough, then let me put it this way: can you write a potentially infinite loop (i.e. indeterminate number of iterations at the beginning) in CSS?

    7. Re:whoosh! by narcc · · Score: 1

      It's not about mere basic arithmetic, it's about whether or not symbolic computation is possible. The litmus test is whether or not you can write a simulation of a universal Turing Machine within the computer language.

      Oh, in that case, HTML5 +CSS3 qualifies. The more you know.

      Despite that fact, no one in their right mind would describe the combination that way. I'd find better criteria, if I were you.

    8. Re:whoosh! by gstoddart · · Score: 1

      Oh, in that case, HTML5 +CSS3 qualifies. The more you know.

      No, really. If you can implement a Turing Machine in HTML5 and CSS3 (and I mean a real one, not something which mimics it but actually doesn't do the computations) -- then what you would have would be a programming language.

      I have no idea if you actually can or not with those technologies, but Turing Completensss is the measure.

      If it aint Turing Complete, it's not really a programming language (or a computer).

      That definition is decades old.

      --
      Lost at C:>. Found at C.
    9. Re:whoosh! by narcc · · Score: 1

      That definition is decades old.

      So defined by whom? On what basis? Can you direct me to the relevant literature? (Don't look too hard, you won't find anything. Since we're playing CS101, you should pay particularly close attention to formal language theory, which you'll find quite illuminating.)

      HTML5+CSS3 is known to be Turing complete, yet no one would call HTML5+CSS3 a "programming language". There are other languages which are broadly recognized as "programming languages" which are not Turing complete. (CS101 again: TM's provide just one of many models of computation. Another, which is not Turing complete, would be FSM's. There are many others.)

      See, this thread is all about informal definitions. What is considered a programming language or not in a practical sense. The problem, of course, is that everyone here seems to have forgotten that! If you want to be pedantic, a programming language can be Turing complete, or not. They're just ways in which instructions are provided to a computer.

  48. Swift Popular? by Anonymous Coward · · Score: 1

    Thank you for helping to reinforce our Android-first meme.
    We are still a long way off, but with your continued effort we can shape the thoughts of developers to our advantage.
    $0.10 has been deposited into your Google Wallet.

    Thank you,

        Google.

  49. wrong bro by globaljustin · · Score: 1

    we can get pedantic about the difference between "coding" and "programming" languages...but others have gone down that road & it's never-ending

    we need a consistent paradigm

    HTML & CSS are coding languages...they are a defined set of symbols that contain commands run on a computer (specifically by a browser)...yes they are not "original gangster" coding languages that you can brag about..but they are a unique set of code that commands a machine...it's "code"

    not all people who use HTML/CSS are "coders"

    it's like back before facebook.com came online, one of the only options was Myspace...kids would get into the HTML & CSS via an interface and just randomly change color numbers and hack it up

    **that's not coding**

    whoever made the CSS for a site like...well facebook.com....is surely a coder

    keep your bragging rights, bro...you're more of a 'real' coder...but it's reductive and pedantic to say "CSS is not a programming language"

    --
    Thank you Dave Raggett
    1. Re:wrong bro by narcc · · Score: 1

      we can get pedantic about the difference between "coding" and "programming" languages

      No, you can't. There is no formal distinction. There isn't even a commonly understood / agreed upon informal distinction!

      Pretending that such a distinction exists is just another silly way for the otherwise unskilled to make themselves feel superior to their peers.

    2. Re:wrong bro by globaljustin · · Score: 1

      yeah i agree...esp. about silly ways otherwise unskilled make themselves feel superior...it's cheap & dumb...reminds me of Dungeons & Dragons for some reason...

      --
      Thank you Dave Raggett
  50. Goldman Saches uses Erlang for HTF by globaljustin · · Score: 1

    http://en.wikipedia.org/wiki/E...

    it's a relevant language to the conversation

    --
    Thank you Dave Raggett
  51. Erlang's used for Cloud Stuff, so Trendy by billstewart · · Score: 1

    Erlang's becoming at least slightly trendy because it's used in several sets of Cloud Stuff, and Cloud Stuff is heavily enough management-buzzwordy that HR departments have figured out they need to hire some Erlang programmers.

    It's especially useful for some of the orchestration tools out there, and it's useful if your management likes Cloud Stuff Buzzwords that don't start with "v" or "V".

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  52. The Pacific Ocean has two sides by tepples · · Score: 1

    Especially when "Pacific Time" may mean different things in different countries on different sides of the Pacific Ocean.

  53. Free Cocoa by tepples · · Score: 1

    So would free Swift rely on free Cocoa?

    1. Re:Free Cocoa by jbolden · · Score: 1

      I suspect that GNUstep will do the usual lag Apple by about a decade. So older Swift applications will probably be portable to GNUste while newer ones will not be.

  54. It is very simple by dbIII · · Score: 1

    Clearly if someone considers that CSS is essential for a programmer then they have limited exposure to situations where it is not (ie. anything other than applications to generate web pages). The only sad thing is trying to force that attitude on programmers who have nothing to do with web based applications.

  55. Meh by Anonymous Coward · · Score: 0

    Kind of a lame article. Other than Swift, everything listed has been around for some time, is fairly well established or obvious. Also, Couchbase is moving away from Erlang due to lack of performance. No mention of some of the more interesting languages to come about recently, like Go, D, or TypeScript. No mention of the CSS framework languages like SCSS and LASS.

  56. Re:The programming language for the next 20 years. by fisted · · Score: 1

    One great thing about C is that if you don't like, you can use it to program a compiler for a new language that you prefer.

    As if that was somehow not true for languages other than C...

  57. Really? by rebelwarlock · · Score: 1

    Chances are, if you need fucking Dice to tell you what languages to learn, you probably aren't a very good programmer.

  58. Re:The programming language for the next 20 years. by Anonymous Coward · · Score: 0

    Check out the FreePascal project. It's still kicking. Not many reasons not to use it.

  59. erlang by PC_THE_GREAT · · Score: 1

    Using erlang i always end up solving my stuffs recursively,i love the language :D. Way to go Erlang :p.

  60. iOS by Anonymous Coward · · Score: 0

    In 10 years, it will be like Symbian. Dead and buried.

  61. hello, world! by UmarOMC · · Score: 0

    10 PRINT... oh wait

    --
    MacPro 4,1 2.66GHz/Radeon HD 4870/Mac OS X 10.6.x
  62. Yay, C#. by Anonymous Coward · · Score: 0

    That article was beyond useless. Says a 20+ yr. exp software engineer who's actually thinking pretty hard about the language trends.

    Still languages are tools at best. I think next year you better start checking out the coping saw, as the vice grip fad seems to be pretty well played out.

  63. Popular + backwards-compatible = glacial progress by DavidHumus · · Score: 1

    Basing one's choice of language to learn on its current popularity - though this may be economically prudent - retards progress in programming languages almost as much as new languages' emphasis on backwards compatibility and ease of learning for novices.

    "Backward compatibility" gives us the backward languages that predominate today. Making things easy for beginners gives us languages mostly only suitable for newbies.

    Contrast this novice-oriented, backward-looking orientation with the little-understood idea that a language can be a tool of thought, that it can provide us with useful conceptual building blocks for thinking about computation at a high level.

  64. Re:The programming language for the next 20 years. by Anonymous Coward · · Score: 0

    It's not true for many languages other than C, presuming you want something compiling natively.

  65. Re:The programming language for the next 20 years. by Anonymous Coward · · Score: 0

    Edit: I meant such that you have fine-grained control over the natively compiled code -- e.g., you can write to the SIMD registers, massage the assembly code, etc. Something like compiling Java doesn't have that, unless of course you use it to wrap C.

  66. Re:The programming language for the next 20 years. by Anonymous Coward · · Score: 0

    Yeah. We need to grow he Cyber War Domain.

    NOT !

    ...what?

  67. Re:The programming language for the next 20 years. by Anonymous Coward · · Score: 0

    C++ is a better C, a fully complete and compliant superset with, these days, better optimization and much better safety features. Just say no to C unless you are in an embedded system with no other compiler.

  68. Re:The programming language for the next 20 years. by Anonymous Coward · · Score: 0

    Well, any language that can write out a binary executable can do the things you mention. It's just a pain to have to implement your own assembler to get the results you're talking about! :)