Slashdot Mirror


Google Go Capturing Developer Interest

angry tapir writes with news that Google Go seems to be cutting a wide swath through the programming community in just a short time since its early, experimental release. While Google insists that Go is still a work in progress (like so many of their offerings), many developers are so intrigued by the feature set that they are already implementing many noncritical applications with it. What experiences, good or bad, have you had with Google Go, and how likely is it to really take over?

434 comments

  1. Oh yeah, that ... by checkitout · · Score: 5, Insightful

    Until this article, I forgot it was ever announced.

    1. Re:Oh yeah, that ... by TheLink · · Score: 5, Insightful

      Me too. I'll wait for those captured developer(s) to develop more libraries for it first.

      A programming language that's "powerful" for the code you write is good for those uber-programmers.

      A programming language that's "powerful" for the code you no longer have to write is for those crappy programmers like me :).

      Many promising programming languages make it to the first category but never make it to the second.

      --
    2. Re:Oh yeah, that ... by Anonymous Coward · · Score: 0

      Same here - when it was announced I looked into it and was impressed but then promptly forgot about it...

    3. Re:Oh yeah, that ... by T.E.D. · · Score: 1

      Me too. I'll wait for those captured developer(s) to develop more libraries for it first.

      You beast! FREE THE CAPTURED GO DEVELOPERS!

    4. Re:Oh yeah, that ... by Brian+Gordon · · Score: 1

      Maybe because nobody can figure out what it is with such a useless search term as "Go".

      Not to mention easily confused with the game Go.

    5. Re:Oh yeah, that ... by Dayze!Confused · · Score: 1

      I must have missed the announcement also, but just this weekend at my local LUG (KaLUG) this was the topic of a two hour presentation.

      --
      "All tyranny needs to gain a foothold is for people of good conscience to remain silent." [Thomas Jefferson]
    6. Re:Oh yeah, that ... by somersault · · Score: 1

      And that other programming language also called Go..

      --
      which is totally what she said
    7. Re:Oh yeah, that ... by Pollardito · · Score: 1

      unfortunately the second category contains too many platforms that become tedious when you want "the code that you didn't have to write" to work differently, since they don't bother to give you very good tools to reimplement those features differently since "no one will need those"

  2. "many developers are so intrigued" by Anonymous Coward · · Score: 5, Insightful

    Translation: Someone is drumming up some marketing astroturf for a single-company controlled proprietary language.

    1. Re:"many developers are so intrigued" by Idiot+with+a+gun · · Score: 2, Funny

      Like Java?

    2. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 1, Funny

      The what now?

    3. Re:"many developers are so intrigued" by I+confirm+I'm+not+a · · Score: 4, Informative

      "Proprietary"? No, open source

      I'll concede Google is a single company, but the Go developers I've encountered are all outside Google, and speak very warmly of Google's Go team.

      Translation: there is much astro-turfing on them thar intarwebs. This ain't it.

      --
      This is where the serious fun begins.
    4. Re:"many developers are so intrigued" by hardburn · · Score: 1, Troll

      Yeah, total slashvertisement. It reads just like those "Acai Berry EXPOSED" ads that are just so awesome.

      --
      Not a typewriter
    5. Re:"many developers are so intrigued" by I+confirm+I'm+not+a · · Score: 3, Funny

      Java. It's quite a big player in IT job market.

      --
      This is where the serious fun begins.
    6. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0, Informative

      At least Java's main benefit was portability. Afaik from what I read, Google Go is only known to have a fast compile time..

    7. Re:"many developers are so intrigued" by Idiot+with+a+gun · · Score: 2, Interesting

      Google Go is in basically the exact same position Java was. Both are technically OSS, but both are also controlled by a single company. I'm sure this exact same thing happened in Usenet back before Java was popular, and look where it is now.

    8. Re:"many developers are so intrigued" by MrBandersnatch · · Score: 4, Insightful

      "At least Java's main benefit was portability."

      Write once, test everywhere?

    9. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      *whoosh*

    10. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 2, Interesting

      We always laughed at Java's "portability" as being something that Sun's marketing dept. cooked up.

      For a long time, the only supported platforms were Solaris and Windows. Then came Linux support. Some vendors, like IBM and HP, offered support on AIX and HP-UX, but it always trailed the features of the latest releases from Sun. Even Apple didn't have a good implementation of the JVM for Mac OS X for quite some time.

      Perl is portable. Python is portable. Tcl is portable. Ruby is portable. Java is not.

    11. Re:"many developers are so intrigued" by I+confirm+I'm+not+a · · Score: 1

      I guess you missed the subtlety of the answer you "whooshed" back to, eh?! Sometimes replies can contain sarcasm; mine did.

      --
      This is where the serious fun begins.
    12. Re:"many developers are so intrigued" by binarylarry · · Score: 3, Insightful

      lol, sounds like someone who's never used any of them in production.

      Prohint: There's a reason why Java is the most popular platform and language for huge, cross platform enterprise software. And it does involve portability.

      --
      Mod me down, my New Earth Global Warmingist friends!
    13. Re:"many developers are so intrigued" by FlyingBishop · · Score: 5, Insightful

      That's inevitable. It's certainly better than write everywhere, test everywhere.

    14. Re:"many developers are so intrigued" by TheLink · · Score: 4, Insightful

      Perl and python are quite portable too, though not as portable as Java.

      But in practice many nontrivial programs end up with so many dependencies that they aren't that portable anymore.

      For example, say you want to write a program to record video from a video camera and audio from a sound device. And you want to cater for the possibility of more than one selectable camera and sound device.

      Even if you write it in java, you're going to have to do different things depending on whether it runs on Windows, OSX or Ubuntu.

      Why? Little things like figuring out which is the user's default recording device, and using it might be different on different platforms.

      Or in theory it's supposed to work, but currently the current Java release for the current OS release is buggy, so the workaround meantime is "...".

      If you want a polished end product you have to take care of stuff like that.

      --
    15. Re:"many developers are so intrigued" by colmore · · Score: 5, Interesting

      Oh whatever, this is news.

      There hasn't been a successful new systems programming language since the introduction of C++ almost thirty years ago. Programming language technology has advanced a great deal since then. A new systems language is a very big deal, and Google is playing very fair and open with it.

      Quit bitching.

      --
      In Capitalist America, bank robs you!
    16. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 3, Interesting

      I'm currently working with a relatively large Python app that we deploy to servers running Linux, Solaris, and (unfortunately) HP-UX. The same codebase works flawlessly on all of those systems. Oh, and most of the developers develop it on Windows, where it runs fine, too.

      At a previous job, we developed a Perl-based web app that ran on our clients' servers. When I left, we supported Linux, FreeBSD, Solaris, Windows, HP-UX, AIX, UnixWare and even IRIX and BSD/OS, all with the same codebase.

      I've run into significantly more portability problems with Java than I ever have with Perl or Python. I've never used Ruby or Tcl, so I can't comment there.

    17. Re:"many developers are so intrigued" by Nursie · · Score: 3, Insightful

      As someone that works on a non-java cross-platform enterprise product and has experience working with some of the big java ones I'd like to add -

      For fsck's sake please stop using java unless you know what you're doing!

      I know, the old "C is just faster" meme makes people angry. I'm sure java can be programmed well and made to be fast and efficient. So why is it every java app of any size I encounter is a slow, bloated memory hog?

      I'll be sticking to C for the foreseeable future methinks.

    18. Re:"many developers are so intrigued" by ClosedSource · · Score: 1, Insightful

      "There's a reason why Java is the most popular platform and language for huge, cross platform enterprise software."

      Sure, it's because PHBs are easily duped. Now they're stuck with it.

    19. Re:"many developers are so intrigued" by slim · · Score: 1

      Meanwhile, the JRuby guys get people coming to them in conferences saying "Hey, thanks for JRuby - I've got my Rails app running on a System/390"

      Java is portable - accept it.

    20. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      You fail at sarcasm. Please anger yourself more over my AC postings, your pettiness amuses me.

    21. Re:"many developers are so intrigued" by Hognoxious · · Score: 1

      Sometimes replies can contain sarcasm; mine did.

      Yeah, explaining the joke - that's my favorite kind. Golden. You can't get better sarcasm than that.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    22. Re:"many developers are so intrigued" by ClosedSource · · Score: 1

      You're right. It's not so much that Java's design was bad, but that the idea of WORA was naive.

      I think the problem was that Sun's software architects really didn't have much experience outside of the Unix mono-culture.

      Ideally you'd want to include developers with deep experience with embedded systems and many different OS(s).

    23. Re:"many developers are so intrigued" by jo42 · · Score: 3, Insightful

      ...and how many years and versions of Java did it take to get to real portability?

    24. Re:"many developers are so intrigued" by Monkeedude1212 · · Score: 2, Funny

      It's because there is no need for a new systems language. Everyone knows that COBOL does everything you need it to and will last forever.

    25. Re:"many developers are so intrigued" by shutdown+-p+now · · Score: 3, Interesting

      Java was aggressively marketed as a flagship product, and language revisions were rather conservative post-release to create an image of stability. That's why it went so well.

      Go is the exact opposite of that.

    26. Re:"many developers are so intrigued" by shutdown+-p+now · · Score: 0

      Software may be open sourced while still implementing a proprietary standard. In the case of a language, "proprietary" means that language specification is being developed by a single company, not by some standards body, joint committee, or community at large.

      Yes, by that definition, Java prior to JCP was proprietary.

    27. Re:"many developers are so intrigued" by colmore · · Score: 1

      Just to be pedantic, I don't think COBOL was a systems language. It was for business logic. Back in those days systems programming was straight assembly.

      --
      In Capitalist America, bank robs you!
    28. Re:"many developers are so intrigued" by Monkeedude1212 · · Score: 4, Funny

      I don't think COBOL was a systems language. It was for business logic.

      No, it wasn't a systems language.

      THATS how amazing COBOL is.

    29. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      Go is like a type safe python with syntax support for concurrency. I've been using it regularly since it's release. When the generic system is hammered out and a solid library exists, it will draw a massive user base. It's going to run in chrome, natively. I bet middle-weight desktop apps will be running in the browser within 3 years. In 5 years the Adobe suite will be in the browser as a service for $200/ year, continuous upgrades, remote backup. (Piracy?? What's that?) Seemless collaboration will emerge ... Come one, come all, your adventure awaits on the off world colonies.

    30. Re:"many developers are so intrigued" by binarylarry · · Score: 1

      You keep telling yourself that.

      --
      Mod me down, my New Earth Global Warmingist friends!
    31. Re:"many developers are so intrigued" by binarylarry · · Score: 1

      It can't be that large (hello python, no threads, no JIT, etc) and if you're running into all kinds of Java portability problems, you're doing something really, really wrong.

      Would you mind posting some of the "portability" issues you're having?

      --
      Mod me down, my New Earth Global Warmingist friends!
    32. Re:"many developers are so intrigued" by elfprince13 · · Score: 3, Insightful

      because Java programmers are never taught about memory management. It's just "magic" and so they don't think about it. C programmers who happen to be writing code in Java are a very different bunch.

    33. Re:"many developers are so intrigued" by kv9 · · Score: 1

      There's a reason why Java is the most popular platform and language for huge, cross platform enterprise software. And it does involve portability.

      does it also involve buzzword loving astroturfers that use 'lol' in their arguments?

    34. Re:"many developers are so intrigued" by Ragzouken · · Score: 2, Informative

      One of the portability issues that I've encountered is that in Linux Java will repeat both KeyPressed and KeyReleased events when a key is held down, but on Windows it repeats only the KeyPressed, which makes it very difficult to work out when a key has physically been released on Linux.

    35. Re:"many developers are so intrigued" by roman_mir · · Score: 5, Funny

      you don't think Go will go well? :)

      I read the spec, I noticed that Ken Thompson is one of the designers and this:

      This approach makes for clean-looking, semicolon-free code. The one surprise is that it's important to put the opening brace of a construct such as an if statement on the same line as the if; if you don't, there are situations that may not compile or may give the wrong result. The language forces the brace style to some extent.

      - if this is not done on purpose, I'll eat my hat (which by coincidence is currently made of some eatable stuff I think).

      I know why there is this new language now, forget about everything else, Ken just wanted to make a point of the correct style of opening braces and he came up with a language that does not allow you to do any different!

    36. Re:"many developers are so intrigued" by Nursie · · Score: 1

      The only problem you get with that, in my limited experience of C programmers going to java, is you get C-like java code. Whilst I think class-proliferation is an ugly side effect of most java programming, I've seen C developers do it horribly backwards and end up with huge singles classes that perform many different behaviours depending on methods called and arguments given.

      Still, there's got to be some middle ground, or just some good, talented java programmers out there that aren't relying on moore's law to make their stuff usable.

    37. Re:"many developers are so intrigued" by binarylarry · · Score: 1

      oh right, I'm astroturfing.

      Astroturfing for one open source development platform that I like, against another open source development platform that I like.

      Good job pointing that out, you get a gold star.

      --
      Mod me down, my New Earth Global Warmingist friends!
    38. Re:"many developers are so intrigued" by afabbro · · Score: 1

      Just to be pedantic, I don't think COBOL was a systems language.

      Is C++? Seems most systems are still written in C.

      --
      Advice: on VPS providers
    39. Re:"many developers are so intrigued" by Lunix+Nutcase · · Score: 1

      And yet the C programmers writing Java code are the ones most likely to be writing among the worst Java code one can find.

    40. Re:"many developers are so intrigued" by 1729 · · Score: 2, Insightful

      It can't be that large (hello python, no threads, no JIT, etc)

      Are you really claiming there are no large Python apps? A lot of people in high-performance computing (including myself) are running huge massively-parallel (either MPI or some MPI+threads hybrid model) scientific codes that are largely Python, with some computationally expensive modules written in C or C++.

    41. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 3, Interesting

      I hate to sound like a Wikipedia faggot, but citations please?

      We have an internal RoR app that's used by quite a few people at once. We tried using JRuby a few months ago, but it just couldn't handle the load as effectively as Matz's Ruby implementation, which itself isn't all that good. This was on the same Solaris server, so I don't think it was a problem with Java or the server.

      From our experience, JRuby is just too damn slow for anything serious. It takes the slow runtime of Ruby, adds in the bloat of Java, and in the end gives a really unpleasant experience to the users.

    42. Re:"many developers are so intrigued" by elfprince13 · · Score: 1

      I was using C as an example of a language where memory management is up to the developer. C++ would have been a better example, but I know very people who know one and not the other.

    43. Re:"many developers are so intrigued" by FTWinston · · Score: 1

      and he came up with a language that does not allow you to do any different!

      sometimes, apparently. I suspect I'll keep my distance til it makes up its mind one way or the other.

    44. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      Ummm modula 3? People have been trying to make a new systems language for decades and most of them died in quiet obscurity, unfortunately.

    45. Re:"many developers are so intrigued" by TheNarrator · · Score: 1

      I think a lot of people underestimate how important not breaking backward compatibility has been to Java's success. It makes managers and people who pay to have code written feel more confident that they won't experience the kind of code rot and upgrade hassles that have plagued other platforms.

    46. Re:"many developers are so intrigued" by binarylarry · · Score: 0, Flamebait

      You're reallying use a dynamically typed, interpreted language with no multiprocessor support to run "huge massively-parallel scientific codes"?

      You sir are a badass, a moron or a sadist. I'm not sure which.

      --
      Mod me down, my New Earth Global Warmingist friends!
    47. Re:"many developers are so intrigued" by Unequivocal · · Score: 0

      I wrote a internet public database-driven consumer website in Ruby. I wrote it all in Windows/Postgres and when I deployed on our cloud server rental (Linux or BSD, I forget which) it worked just fine. The intermediate layers (webserver, process host) were different, but the whole stack worked fine. Since then I've never run across a bug that was due to OS incompatibilities. So chalk up Ruby into the multi-platform list.

    48. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      If you know how to effectively use Python's built-in and/or 3rd party C-based extension modules, it's perfectly feasible to do what you said, on multiple CPUs. And the results can be much more clean and natural than Java's narrow, boilerplate cluttered, one-programming-paradigm-fits-all approach.

    49. Re:"many developers are so intrigued" by binarylarry · · Score: 1

      Right, that's why in python land there's one library to do something (if you're lucky).

      But in Java land there's usually at least 5.

      That's because there's only one way to do anything in Java. And Java is the only language you can use on the JVM. There are no python, ruby, implementations available for that platform

      --
      Mod me down, my New Earth Global Warmingist friends!
    50. Re:"many developers are so intrigued" by 1729 · · Score: 1

      You're reallying use a dynamically typed, interpreted language with no multiprocessor support to run "huge massively-parallel scientific codes"?

      Yup. That's actually quite common now. However, as I wrote above, the computationally-expensive modules/libraries are written in C or C++.

      As for multiprocessor support: I use MPI, but there's also the Python multiprocessing module. Threading is possible too, but limited (at least in pure Python code) by the Global Interpreter Lock.

    51. Re:"many developers are so intrigued" by tixxit · · Score: 1

      We run Plone (Zope) on Windows and Linux internally and FreeBSD externally. Most "portability" issues arise during the building phase, but I've never had one that set me back more than about an hour. Now, getting Java 1.4+ running on older versions of FreeBSD was a bit of a pain. Upgrading to FreeBSD 7 was a god send. Now, all that said: you can run Python on the JVM, so, technically, Python is supported at least everywhere that Java is =]

    52. Re:"many developers are so intrigued" by gbjbaanb · · Score: 1

      but its true.

      Where are all the lightweight Java applications? Dwarfed by the number of 'big enterprise' apps that are, frankly a wast of CPU time. I'm not necessarily criticising Java for this state of affairs as its more down to the programmers/designers/architects and other assorted project management sprawl that these companies tend to encourage (disclaimer, I know I'm working with one of them, and their ability to pad even the smallest detail is astounding).

      So all the Enterprise Java stuff is nearly always crud, the reason why they are all written in Java isn;t because its the best language, but usually because it was the coolest of its day, all the outsourced developers jumped on it, all the students jumped on it, all the real programmers tutted and thought, "nice toy, can we do real work though please". The PHBs in those companies jumped on it because it was the new, cool app and they knew they could recruit programmers (and cheap offshore ones at that!) and all those architects (thinking of their CVs) said it would be the best thing ever.

      Today - we have .NET to repeat those issues all over again, and Java is considered a legacy technology. Microsoft did you over, and created a whole new world of VB programmers (but VB with curly braces so its ok).

    53. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 1, Interesting

      It is magic. No, really. Unless you're familiar enough with the Java memory model to know what you're doing, you treat it as magic.

      What you don't do if you're not familiar with the model is listen to uninformed rants about how awful GC is and go inventing nonsense like "pools" to reuse objects that actually make the problem worse. Garbage collection of the young generation is nearly free. Anything outside it is not. Tenuring your temporary objects is A Bad Thing.

    54. Re:"many developers are so intrigued" by Princeofcups · · Score: 1

      Perl and python are quite portable too, though not as portable as Java.

      Perl is 100% portable unless you are a CPAN junkie.

      --
      The only thing worse than a Democrat is a Republican.
    55. Re:"many developers are so intrigued" by tixxit · · Score: 1

      Why not? Python is a great language to get something up and running fast with, and you can easily create modules in C to handle the heavy lifting. As for multiprocessor support, I assure you, 2 Python processes will run on 2 cores just fine. Yes, multithreading sucks in CPython, but if you can solve your problem by running n largely independent processes (which is probably what the gp does), then you can just fire up n Python processes. They'll make use of those extra cores just fine.

    56. Re:"many developers are so intrigued" by bill_kress · · Score: 1

      Although you are correct, compare this to the fact that some Java apps written for the web will soon show up, unaltered, on your microwave or other more realistic appliances and on your phone as well. In many cases this could be done without even recompiling.

      These are the targets of the portability. The only thing that comes close is flash. As far as complex back-ends, the supporting code is often written into the JVM as a compatibility layer where that is necessary (for instance, between different models of phone).

      As platforms become more standardized, they factor the unique parts (like the video/audio you mentioned) out into the JVM as JSRs. There are many JSRs under development all the time and many are to allow standardized java access to some resource like you mentioned.

      So in Java, you can expect that if you can't write generic code to adapt to your video camera/audio device yet, you will be able to soon.

      What serves that function in other languages?

    57. Re:"many developers are so intrigued" by slim · · Score: 0

      I hate to sound like a Wikipedia faggot, but citations please?

      Enebo mentions it in passing during this presentation: http://www.infoq.com/presentations/enebo-jruby

      We have an internal RoR app that's used by quite a few people at once. We tried using JRuby a few months ago, but it just couldn't handle the load as effectively as Matz's Ruby implementation, which itself isn't all that good. This was on the same Solaris server, so I don't think it was a problem with Java or the server.

      From our experience, JRuby is just too damn slow for anything serious. It takes the slow runtime of Ruby, adds in the bloat of Java, and in the end gives a really unpleasant experience to the users.

      In the same presentation he bigs up the JVM as a Ruby runtime -- hotspot optimisation, great GC -- , but I have no personal experience to put up against yours.

    58. Re:"many developers are so intrigued" by radtea · · Score: 1

      Ken just wanted to make a point of the correct style of opening braces and he came up with a language that does not allow you to do any different!

      "Correct" generally means that there is an objective, measureable advantage of doing it that way. Even people who use debatable concepts like "correct English" can fall back on the claim that some level of agreement on usage is and objective, measureable requirement for communication.

      What is the objective, measurable effect of brace style?

      Show me the data! The notion that anyone can arbitrarily impose a "correct" way of doing something simply because they have power, influence and authority went out with the Victorians. Those of us living in the Age of Empricism require objective, measureable effects to distinguish the (usually mulitple) correct way(s) of doing something from the multitude of incorrect ways.

      And "I prefer it that way" or "I can imagine a scenario in which that way is optimal" count as "data" in the relevant sense. Such statements are data about you, and make as much sense in this context as "I am six feet tall. Therefore this style of braces is better."

      --
      Blasphemy is a human right. Blasphemophobia kills.
    59. Re:"many developers are so intrigued" by roman_mir · · Score: 1

      The notion that anyone can arbitrarily impose a "correct" way of doing something simply because they have power, influence and authority went out with the Victorians.

      - pffft, wrong, Ken just proved you wrong.

    60. Re:"many developers are so intrigued" by cheesybagel · · Score: 2, Interesting

      Ken Thompson also developed Plan 9, and Inferno, and Limbo (what?). Yes, Limbo was a programming language. With concurrency support. While all of these were kinda neat, they never took off.

      I looked at Go when it was released, but was underwhelmed. Seemed like another Java wannabe to me. The news article is just plain wrong. How can Go have the same productivity of Python when it is a statically typed language? I mean, try reading some actual Go code, and Python code, and then tell me which one is easier to read, and write.

    61. Re:"many developers are so intrigued" by sorak · · Score: 2, Interesting

      Nah. It's like Perl; In high demand because nobody knows how to use it. <ducks>

    62. Re:"many developers are so intrigued" by omission9 · · Score: 1

      I have personally seen python run very very well on an open-mosix cluster.
      I have no idea of python's inherent support for multiple processors but
      with open-mosix it migrates the jobs to the different processes for you anyway.
      This use of python with open-mosix is fairly common within various high throughput computing
      niches. Or at least it was. I haven't worked in a scientific workplace in many years.

    63. Re:"many developers are so intrigued" by ajs · · Score: 2, Informative

      Can I get some sense of how you determined that Go was proprietary, then?

      I don't think it's reasonable to call any language proprietary whose spec is licensed under CC-A and managed by an open team outside of the company. That's really hard to back up, and I'd need some kind of source for that.

      C# it ain't.

    64. Re:"many developers are so intrigued" by ajs · · Score: 1

      Google Go is in basically the exact same position Java was. Both are technically OSS, but both are also controlled by a single company. I'm sure this exact same thing happened in Usenet back before Java was popular, and look where it is now.

      Can you back that up? Was Java's spec under an open (CC-A) license? Was Java's core specification team a mix of in- and out-of-company people?

    65. Re:"many developers are so intrigued" by cheesybagel · · Score: 1
      Java is pretty nice for network programming. It has good socket support (after they rewrote the API a couple of times). It also has some decent built-in datastructures (after they rewrote them), and concurrency support. This is most of what you need for 'big enterprise' apps. Enterprises also often have less manpower resources and the code can last a long time (decades) so you want something portable.

      C# is a better language for writing client side apps (Java GUI API sucks). It is also pretty easy to add inline SQL to it.

    66. Re:"many developers are so intrigued" by cheesybagel · · Score: 1

      CPAN is the whole point behind using Perl though.

    67. Re:"many developers are so intrigued" by shutdown+-p+now · · Score: 0

      Good point about the license, but I wonder if I'd be able to take that spec, extend it, and still call the resulting language "Go". Is the name itself trademarked by Google (or the team)?

      If the team is truly open, however (and not just for implementers, but for actual language design as well), then, yes, it's not proprietary.

    68. Re:"many developers are so intrigued" by MrSteveSD · · Score: 1

      Oh lovely, a language that forces a brace style I absolutely hate. I think I'll be giving it a miss.

    69. Re:"many developers are so intrigued" by msuarezalvarez · · Score: 1

      Using *what* GUI library? You do realize that there is no such thing as "Python's KeyPressed event", right?

    70. Re:"many developers are so intrigued" by Monkeedude1212 · · Score: 1

      Wow - so who here is still a Cobol programmer?

      I was trying to be funny.

    71. Re:"many developers are so intrigued" by rednip · · Score: 1

      So, you have problems with the UI packages, not a surprise it's always been one of the weakest parts of Java. However, I'm not sure how you'd compare it to python's built in UI, or perl's for that matter :). I'm guessing that you had just tried a Java solution for a problem you couldn't solve in python or perl.

      Client side Java (applets) solutions, have always had many more problems than server side Java projects, and many use other UI platforms (like Eclipse's RCP). Everything from browser integration to how the UI behaves on various platforms have caused trouble for applet developers; it's one of the reasons why Flash is so widely installed.

      --
      The force that blew the Big Bang continues to accelerate.
    72. Re:"many developers are so intrigued" by Sancho · · Score: 1

      He's talking about Java. Does Java have a KeyPressed event?

    73. Re:"many developers are so intrigued" by cynyr · · Score: 1

      see threading, okay no JIT i give you, but python does have threads. http://docs.python.org/library/threading.html http://docs.python.org/library/thread.html

      --
      All of the above was encrypted with a Quad ROT-13 method. Unauthorized decryption is in violation of the DMCA.
    74. Re:"many developers are so intrigued" by ajs · · Score: 0, Troll

      That's inevitable. It's certainly better than write everywhere, test everywhere.

      No, it wasn't.

      Java's platform abstraction meant that, instead of applying the rules that the vendor provided you with for adapting code to their platform (as every OS vendor did for, for example, C code), you had to port to an unknown platform which wasn't local and wasn't quite generic either. In the end, this lead to a schism that prevented Java from ever getting a foothold in any of the areas in which interoperability with existing infrastructure was key (systems administration, QA, scalable infrastructure, high performance tools, 3D applications, Desktop/office tools, etc.) All of these systems are still written in C or C++ to this day.

      Java was only useful in captive environments like financial industry apps, early content delivery apps for the Web (though that has really eroded since Java's heyday) and embedded environments where there is no existing system (e.g. phones, DVD players).

    75. Re:"many developers are so intrigued" by ajs · · Score: 1

      Perl and python are quite portable too, though not as portable as Java.

      They're far, far more portable than Java.

      Java is essentially non-portable by design. It has only one environment where it runs: the JVM. Unfortunately, the JVM is only ported to new platforms in the loosest terms, though to be fair, they've done a large amount of work to make it more platform friendly under Windows, but it's still got a long way to go after more than a decade.

      Python and Perl, on the other hand (along with other HLLs that don't use a platform-abstracting VM) are far more portable, interacting with system libraries and platform features in ways that make sense without having to re-specify the language to do so.

    76. Re:"many developers are so intrigued" by __aagmrb7289 · · Score: 2, Funny

      Do NOT pass GO, do NOT collect $200!

    77. Re:"many developers are so intrigued" by Frankie70 · · Score: 2, Informative

      Oh - I so agree.
      Java is portable on Windows & Solaris (haven't used Java on Linux, so no idea).
      Most other OS's you will get 90% of your stuff working. But chasing down the
      remaining 10% OS specific issues will take 90% of your time.

    78. Re:"many developers are so intrigued" by shutdown+-p+now · · Score: 1

      No, it doesn't. AWT might have one, and Swing might have one, and SWT might have one.

    79. Re:"many developers are so intrigued" by FlyingBishop · · Score: 1

      you had to port to an unknown platform which wasn't local and wasn't quite generic either.

      Are you talking about a solved problem or blithely claiming that one of the top programming languages currently in use is dead?

    80. Re:"many developers are so intrigued" by shutdown+-p+now · · Score: 1

      But, see, to know that there is a difference between small & short-lived objects and large ones, you have to be familiar enough with Java memory model.

      (it's a very similar story on .NET, by the way, only there it's compounded by existence of value types, use of which can both help and hinder performance)

      Just goes to show that GC does not release the programmer from requirement to understand how things actually work, at least on conceptual level (generations, compacting etc).

    81. Re:"many developers are so intrigued" by BitZtream · · Score: 4, Insightful

      I run into more portability issues with Python than I ever have with Java, and thats just between Windows and Linux, the same could be said for Ruby. I haven't dug deep enough into perl to say the same for it. I avoid TCL ever since I stopped using eggdrop, vile creature that it is.

      I've written a little python, a lot of ruby, and a fair amount of java, it beats both those others for cross platform issues in my experience, and I'm ignoring Ruby on DOS as thats a whole new set of issues and isn't really even a fair comparison since the OS is so far different, I don't think there is a DOS JVM, and I have no idea about python and DOS.

      I absolutely HATED Java apps before I was forced to start writing Java code myself. What I learned VERY rapidly is that Java apps suck if you're a shitty programmer. If you don't have any clue how to write code and no clue about the common pitfalls of cross platform dev, it can kill you. 9 times out of 10, its because the programmer did stupid shit that he/she shouldn't have that is clearly OS specific when its a cross platform compatibility issue. Likewise all the slow beasts of Java 'apps' that you come across generally suck because the programmers have no idea what they are doing. Stupid crap like doing string concatenation one character at a time using a string variable rather than class designed for string concatenation and proper allocation for it.

      Java isn't the problem. Much like VB, shitty Java programmers are the problem. Java and to a much larger extent, VB draw in people who aren't programmers because of the marketing, and then we see tons of crappy Java apps because the language is in fact, TOO easy to use.

      Say what you want about Java in the past, it could be true. Today? Muh, there is very little if any truth in your statements at this point in time.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    82. Re:"many developers are so intrigued" by Ragzouken · · Score: 1

      Using Java's standard AWT library. Not being aware that python even has a key pressed event, I'm not in a position to realise that Java has no Python equivalent.

    83. Re:"many developers are so intrigued" by ajs · · Score: 1

      Good point about the license, but I wonder if I'd be able to take that spec, extend it, and still call the resulting language "Go". Is the name itself trademarked by Google (or the team)?

      If the team is truly open, however (and not just for implementers, but for actual language design as well), then, yes, it's not proprietary.

      I don't think the name matters. What matters is that, like C or Common LISP, the language is specified in an open (as in open to contribution) way. Sure, AT&T's Bell Labs created C (before the breakup), but it wasn't a proprietary language after its management was turned over to ANSI.

      Go isn't at the stage where an international standards board makes sense, but I'm encouraged by the openness of the process.

    84. Re:"many developers are so intrigued" by gangien · · Score: 1

      It's naive, because I haven't worked on java apps that had to run on windows, linux, solaris, aix, hp-ux and even z/OS... oh wait I have. No, it doesn't cover every area you may want to touch, as GP pointed out. But the WORA idea has been quite successful, for many projects.

    85. Re:"many developers are so intrigued" by BitZtream · · Score: 2, Interesting

      Because most Java programmers suck.

      I know EXACTLY what you're talking about. Until I was forced to write in Java, I felt the EXACT same way.

      Then I heard about how much of Google is powered by Java, and then finally I was forced to work with it for my day job.

      As someone who prefers C, if you can obtain the performance you want in any higher level language the C/C++, then you can probably do it in Java. I've written an imagine processing library for SVGs that uses Apache Batik to convert my generated SVGs to bitmaps for display. The port of the C code I originally had to Java was actually faster long term than the C code. Mind you, its not real heavy lifting and in reality the C code was doing some retarded things parsing the XML (like reseralizing for no good reason between steps) so I know for a fact the C code would be faster than it was, but considering I can process several thousand of svg files in a second on an old P4, it certainly far exceeds my requirements and took me almost no time to write.

      Java really isn't bad, Java Apps do generally suck, and you should still be weary of Java apps. Treat them just like a VB app. Its probably a pile of shit, but there are good programmers working with Java that can make really nice, fast, well behaving applications.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    86. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      You read anger in that reply? You might want to check your social-o-meter, it seems to be miscalibrated.

    87. Re:"many developers are so intrigued" by MillionthMonkey · · Score: 1

      if ((index(whoosh) % 2) >= 1)
      *whoosh*
      *whoosh*
      end

    88. Re:"many developers are so intrigued" by MillionthMonkey · · Score: 1

      Whoops, <= arrgh hit submit too soon arrgh *sob*

    89. Re:"many developers are so intrigued" by billcopc · · Score: 1

      Sure, it's portable, as long as the you have an EE engine for your preferred platform. It's portable because the platform specifics have been displaced to the VM, but if your particular VM is shite, you're still up a creek. And then you run into VM-specific bugs.

      I see nothing that Java does, that couldn't be done better with a real compiler and a stable library. In essence, that's what the EE platform provides: a big standard library.

      --
      -Billco, Fnarg.com
    90. Re:"many developers are so intrigued" by BitZtream · · Score: 1

      If you're going to say there hasn't been anything new since C++ was introduced, ignore all the other potential langauges arbitrarly, then you should also be ignoring a language annouced 4 months ago, that really ISN'T that 'common' since even most of slashdot had to think twice when looking at the title for the article.

      Regardless of hype, Go doesn't really mean shit to anyone anywhere yet. Outside of Google, which is investing in the project, you're an idiot or a newbie if you start warping your development models around a language so new.

      MS said the same thing about the .NET language family and system. Last I checked, Windows isn't written in C#, its written in C/C++ and ASM, and some apps and services on top are being ported to the .NET framework over time.

      You shouldn't believe everything you read on the Internet, and following the latest fad is a pretty bad idea as well.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    91. Re:"many developers are so intrigued" by The+End+Of+Days · · Score: 0, Flamebait

      You've proven nothing but your own inability to write good Java.

    92. Re:"many developers are so intrigued" by umghhh · · Score: 1

      Ohh now pools are evil - what else I came across while reading this flame. This is good - I knew it when I saw the title of TFA - wholy war is coming and now it is here! Fantastic!

    93. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      So your definition of open is utter chaos? You can't (legally) do what you just described with the Linux kernel. Is that proprietary?

    94. Re:"many developers are so intrigued" by umghhh · · Score: 1

      the way I see it is similar - java and alikes are the source of all evil. Not in technical terms but because it is too easy to write 'hello arse world' and claim expertise. The fact is that any language is just a tool - what matters is a hard heart of the coder. If he knows his/her trade s/he is an engineer, if not s/he is a computer scientist or worse. Unfortunately world is polluted with the later with bunch of clueless managers following newest off shoring trend (or what is newest fashion) on top. But hey why do I complain - I live well (still) by fixing mess created by this lot so maybe I should not.....

    95. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 1, Informative

      In COBOL's heyday, PL/I was more commonly used as a systems programming language, not straight up assembly.

    96. Re:"many developers are so intrigued" by Eli+Gottlieb · · Score: 2, Insightful

      Go forces the use of garbage collection and makes me use its included batteries for concurrency. It's an applications-programming language, not systems-programming.

    97. Re:"many developers are so intrigued" by shutdown+-p+now · · Score: 1

      I was talking about language specification, not a particular implementation. Is there a specification for the Linux kernel, so that one can re-implement a compatible one?

      Regardless, "proprietary" doesn't mean "bad".

    98. Re:"many developers are so intrigued" by thetoadwarrior · · Score: 1

      If you must do so in Go and in JavaScript you should always put the bracket on the same line to guarantee to avoid problems (even if rare) then that's two languages where you should do it. Might as well do it for all of them rather than switching. Besides, it is the superior way of doing it.

    99. Re:"many developers are so intrigued" by mustafap · · Score: 2, Informative

      I agree. Sounds like his python code is responsible for most of the climate issues we have :o)

      --
      Open Source Drum Kit, LPLC deve board - mjhdesigns.com
    100. Re:"many developers are so intrigued" by thetoadwarrior · · Score: 1

      I'd say they're all about the same. If you're making applets then you'll have more problems with Java but for webapps, it's not that hard to get things working across the board. It may not be flawless in some instances but that's where it pays to hire developers that have a lot of experience in the language you want to use.

    101. Re:"many developers are so intrigued" by RAMMS+EIN · · Score: 3, Insightful

      The other question is what portability really means.

      Many people think that portability means "your code will run on multiple platforms".

      With Java, I feel it is more a case of "your code will run on the Java platform".

      The distinction is that, in the latter case, a lot of the facilities that have been implemented for existing platforms have to be re-implemented for the new platform. I feel a lot of effort has gone into creating things for Java that already existed outside it.

      By contrast, many other programming languages attempt to fit in and play nice with whatever platform they end up being deployed on. Where Java has your programs run inside a virtual machine which is more or less the same across native platforms, other languages have you create programs that are just like the programs your native platform knows how to run. Where Java has people build functionality on the facilities provided by the virtual machine, other languages have you build functionality on the facilities provided by the native platform.

      The approaches are different, and lead to a vastly different feel both during application development and when using an application developed using one approach or the other. Both approaches have their pros and cons.

      Java's approach has the advantage that, absent deficiencies in the specification and bugs in the implementation, the Java platform is the same everywhere, regardless of native platform. The disadvantage is that you lose access to the native platform's facilities that are not also in the virtual platform. It also means that your software is almost certain to not really fit in with the native platform.

      The other approach leaves you with access to the native platform's facilities, which is a double-edged sword. The disadvantage is that many of those will not be available on all platforms, and code that uses them will therefore be non-portable. The advantage is that you can make your software do anything that would normally be expected of an application on the native platform. Software developed using this approach will thus tend to integrate better with the native platform, and feel less foreign to users.

      --
      Please correct me if I got my facts wrong.
    102. Re:"many developers are so intrigued" by mustafap · · Score: 1

      >And yet the C programmers writing Java code are the ones most likely to be writing among the worst Java code one can find.

      And they shouldn;t be allowed to waste their talents writing Java. They should get back to writing proper software, and leave the million-and-one website/webshop crap to the guys who should be working in McDonalds

      --
      Open Source Drum Kit, LPLC deve board - mjhdesigns.com
    103. Re:"many developers are so intrigued" by Hurricane78 · · Score: 3, Insightful

      Yeah. And all those are *extremely* slow interpreted scripting languages. While java on the server (its actual main base) is actually half as fast as C. Which is really nice for code that does all the type checking for you and is machine code independent.

      The reason that Java WAS not on every platform is... well, have you seen the size of its standard libraries (J2SE, J2EE)?? All those language’s *built-in* languages are a joke to what Java offers out of the box.

      Sorry, but for professional big projects, those languages can’t hold a candle to Java. The only one that can do that, might be .NET. But that one’s by definition not portable. (No, the Linux version of it doesn’t count, for it is way outdated.)

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    104. Re:"many developers are so intrigued" by Hurricane78 · · Score: 1

      s/\*built-in\* languages/*built-in* libraries/

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    105. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      you are on heavy crack and so are those who got you a +3 insightful. Java pretty much powers the Real-World [TM]... From a huge part of the biggest website ever (Walmart,GMail,FedEx, whatnot) to entire countries medical care track record, to entire countries national Java ID card, to Blu-Ray players to... 99.9% of the banking industry. FFS dudes... You cannot make a non-cash payment anywhere on this planet without having Java involved in the process.

      The fscking language is immune to buffer overrun/overflow and is the biggest language success story of these last 20 years.

      Java, for good or bad, will leave a legacy that shall make COBOL looks like a 2-feet high dwarf.

      Oh, and that's only Java the language, because there's also "Java the VM" and amazing stuff like Scala coming up.

      You have no idea how important Java has become.

    106. Re:"many developers are so intrigued" by dgriff · · Score: 1

      For a long time, the only supported platforms were Solaris and Windows. Then came Linux support. Some vendors, like IBM and HP, offered support on AIX and HP-UX, but it always trailed the features of the latest releases from Sun. Even Apple didn't have a good implementation of the JVM for Mac OS X for quite some time.

      Pah, I ported Java to NeXTStep (the precursor to OS X) back in 1995. Wasn't that hard. I was also part of the two-person team who ported Java to Acorn's RISC machine in 1997. Then moved to IBM to help out with the port to the mainframe. Java is (or was) a doddle to port. But then even back in 95 there were people who were saying it would be "impossible" to implement Java on top of Mach threads.

      Oh and to the person who claimed "Java was aggressively marketed as a flagship product" - at the beginning it was anything but. We just thought it was a cool new language.

    107. Re:"many developers are so intrigued" by Skreems · · Score: 1

      1) I've used JS for years and never once ran into a case where the location of the opening brace caused a bug or misinterpretation. I think you're making this up.
      2) Putting the brace on the next line creates a scope block that's easier to visually identify quickly. For small blocks (a couple lines) it doesn't make much difference. For larger blocks, it's much quicker to read code that puts the brace on the next line. "Same line" is absolutely not superior.

      --
      Slashdot needs a "-1, Wrong" moderation option.
      The Urban Hippie
    108. Re:"many developers are so intrigued" by thetoadwarrior · · Score: 1
      Douglas Crockford, author of JavaScript: The Good Parts, mentions this and provides an example in a video

      http://developer.yahoo.com/yui/theater/video.php?v=crockonjs-3

      I think this is the video but to be honest it's probably not so I grabbed a quote from this site:
      http://java.ociweb.com/mark/programming/JavaScript.html also mentions it.

      Brace Placement

      K&R brace placement (open brace at end of line of code instead of on a new line) must be used because otherwise semicolon insertion will add a semicolon to the end of the line before the open brace and the code in the braces will be ignored.

      As I remember this isn't something that comes up often which is why most people don't notice it if they do it the other way but if you run into it I think it can be a pain to discover. TBH, I can't remember if the error is obvious because I've only ever heard it once in the video and never saw it happen since I don't code with the brace on its own line.

    109. Re:"many developers are so intrigued" by binarylarry · · Score: 1

      yeah but they don't work, GIL.

      --
      Mod me down, my New Earth Global Warmingist friends!
    110. Re:"many developers are so intrigued" by davidbofinger · · Score: 1

      Like Java?

      I'd love some, and thanks for offering.

    111. Re:"many developers are so intrigued" by Derleth · · Score: 1

      There hasn't been a successful new systems programming language

      Go is garbage-collected. That keeps it from being a systems programming language for a lot of people who actually use systems programming languages.

      I’m not saying that’s ‘fair’ or ‘right’, it’s just the way it is.

      (The difference with D is that in D, you can explicitly disable garbage collection for stretches of the code. A ‘Real Programmer’ would presumably disable it for the whole program.)

      --
      How can you use my intestines as a gift? -Actual Hong Kong subtitle.
    112. Re:"many developers are so intrigued" by BikeHelmet · · Score: 1

      I know why there is this new language now, forget about everything else, Ken just wanted to make a point of the correct style of opening braces and he came up with a language that does not allow you to do any different!

      Heresy!

      I was shocked to discover that I've always used Python style indentation, with one caveat. For short statements, I'll put brackets on the first line - stuff like this:

      public int getX() { return x; }

      But for most stuff, my code looks like this:

      if(linesIntersect(LineA, LineB))
          {
          drawText("X detected.", 8, 8);
          doSomething();
          }

      I haven't gotten any complaints, so it must still be readable. I think I started spacing the lines because I began with Javascript in Notepad. That's big black bold text on a white background. Pages of code looking like this gets extremely ugly:

      if(linesIntersect(LineA, LineB)) {
          drawText("X detected.", 8, 8);
          doSomething();
          }

    113. Re:"many developers are so intrigued" by roman_mir · · Score: 1

      You say 'heresy' on the idea of coding style standard to the guy responsible probably for one of the most used computer languages in history? I wonder.

      Also from my personal perspective, when you open a brace on its own line, at least bother to indent the code in the braces by one more tab or something, it looks like a mad man wrote it otherwise.

    114. Re:"many developers are so intrigued" by BikeHelmet · · Score: 1

      Java is more portable. Yes, they spin it as being ridiculously easy. It's still more portable.

      Java
      -> Compile once.
      -> Test on each platform.
      -> Adjust code.
      -> Done

      C
      -> Compile once per platform.
      -> Test on each platform.
      -> Deal with compiler specific bugs per-platform/architecture.
      -> Deal with debugger specific bugs, limitations, and inconsistencies per platform/architecture.
      -> Adjust code per platform.
      -> Done

      I recall reading threads about people trying to optimize C for the GP2X. People fighting with cryptic error messages, discovering obscure bugs with certain toolchains. If you found a version of GCC that outputted stable code, performance was ridiculously unpredictable - some compiles would run 50-60% slower with the exact same options, for seemingly no reason. Profiling was even worse for predictability - I think one emu dev had performance ranging from 20-80% of what he wanted, depending on what he tested - but loading up the ROM he wanted to run faster wouldn't necessarily enhance code performance. Often it worsened it. Ultimately he replaced some bits with assembly, and got almost a 100% speedup (in FPS) over the best profiled run.

      When Java has to compete with stuff like that, it's easy to highlight "write once run everywhere" as a benefit. You have to remember that although C is almost perfect on x86, it's not as mature on every platform, and other languages do oust it from its position quite frequently.

      The beagleboard has had similar issues, as do most microcontrollers. Although you can't beat C or assembly for code densitity, on a lot of platforms it's very unpredictable and hard to properly debug.

    115. Re:"many developers are so intrigued" by vcompiler · · Score: 1, Insightful

      I doubt that. Many languages invented before Java have already been qualified to fulfill cross-platform requirement in almost all fields except GUI. And look Java did what to GUI? Almost nothing. Java's GUI sucks, and instead of providing cross-platform, it created a new platform (recommend the use of Metal Look-and-Feel?). If your whole solution to make people working on two platforms feel better is to create the third platform, what's your point? Does people who are willing to get unified user experience have to pay money to Microsoft and Sun and Apple, and then resort to Java to get the same Look-and-Feel?

      More over, all users I encountered, except developers, using one single OSs dominantly. So if you want to offer your app on multiple platforms, good, but only make the functionality cross-platform, not the user experience at the GUI level. Your cross-platform app is meant to make the same functionality accessible from different OSs, not to enforce the users of an OS experience what they should feel in another, or worse, in another new.

      I think some people eventually realize GUI is of so high level of complexity and all different GUIs of different OSs can not be abstracted with a unified model in such detailed level like Java Swing.

      So write once, test everywhere, for non-GUI? OK, C and other language already do that. For GUI? No improvement from Java.

    116. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      The correct way for opening braces? Or do you mean YOUR correct way? I've seen it done a few different ways, and all have good and bad.

    117. Re:"many developers are so intrigued" by roman_mir · · Score: 1

      muhaha, well now, in this language there is only one correct way, every other way will be a compiler error, so it's not true for this language.

    118. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      Try writing a Bluetooth application that works on a phone/PDA and a desktop machine. You can't use any language other than Java, because no-one else was so wise as to first come up with a specification for libraries to implement. That is portability. With C++ or .NET you're screwed.

    119. Re:"many developers are so intrigued" by michaelmuffin · · Score: 1

      [Java's] language revisions were rather conservative.... Go is the exact opposite of that.

      howso?

    120. Re:"many developers are so intrigued" by BikeHelmet · · Score: 1

      You say 'heresy' on the idea of coding style standard to the guy responsible probably for one of the most used computer languages in history? I wonder.

      *woosh*

      It was sarcasm.

      Also from my personal perspective, when you open a brace on its own line, at least bother to indent the code in the braces by one more tab or something, it looks like a mad man wrote it otherwise.

      Why? Everything that happens in sequence is equally indented in my code.

      Also, it wouldn't match up with Python's indenting then, would it?

      If it bugs you so much, set your IDE to fix it. That's one of the benefits of smarter software - for such minor things, we can all do whatever works for us.

    121. Re:"many developers are so intrigued" by shutdown+-p+now · · Score: 1

      When Java first appeared, you could, for the most part, get to it from the then-dominant language (C++) by removing features. In other words, it was simpler than what the average developer of the day was required to handle.

      As for language updates - as I understand, Go is effectively not stabilized yet, so I guess it's too early to judge on that. But then it's also too early to judge on adoption, as well.

    122. Re:"many developers are so intrigued" by roman_mir · · Score: 1

      *woosh*

      It was sarcasm.

      - you can 'woosh' me all you want, sarcasm does not follow in your case, from a single word given with no context. Statement 'heresy' can is very ambiguous, if you don't think so: vagina.

      Why? Everything that happens in sequence is equally indented in my code.

      - it just looks troubled, what can I say, like something subtle is wrong, but it's hard to pinpoint, sort of like some part of brain needs to turn off in order not to gauge the eyes out while looking at it.

      Also, it wouldn't match up with Python's indenting then, would it?

      - I don't care, I don't do python day to day and if I did I would still use the correct K&R indentation.

      If it bugs you so much, set your IDE to fix it. That's one of the benefits of smarter software - for such minor things, we can all do whatever works for us.

      - yeah, good luck with that on my projects, someone with that attitude wouldn't be in the team for too long. If everyone changes the format to what they like all the time, CVS would not be useful to see the real code differences clearly because the entire file would change too often.

    123. Re:"many developers are so intrigued" by Ritchie70 · · Score: 1

      Hey. Stop insulting the guys who work at McDonald's.

      Work a day in one of those restaurants and you'll find out what hard work is.

      --
      The preferred solution is to not have a problem.
    124. Re:"many developers are so intrigued" by michaelmuffin · · Score: 1

      the language itself is stable and pretty much complete, as is the subset of its library analogous to C's library. the rest of the library and ports to new platforms are being worked on and steadily becoming more mature. if you include an implementation's library in your assessment of the language itself, then i suppose you are right. in my own experience though i haven't found that to be useful as i use only small portions of languages' libraries

    125. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      And Java is the only language you can use on the JVM. There are no python, ruby, implementations available for that platform

      ....except for Jython.
       

    126. Re:"many developers are so intrigued" by gbutler69 · · Score: 1

      I don't code with the brace on its own line.

      Well, I do, and I have NEVER seen this problem in any modern JS implementation. This might be something from JS/ECMAScript 1.x or somesuch, but, I just don't believe it is true anymore.

      --
      Over-the-top Response Guy! Giving "Over-the-Top Responses" since 1970.
    127. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      Not like Linux. That's controlled by a single PERSON with a more restrictive license.

    128. Re:"many developers are so intrigued" by BikeHelmet · · Score: 1

      Your post is overflowing with hostility. I can see you're very set in your ways.

      - you can 'woosh' me all you want, sarcasm does not follow in your case, from a single word given with no context.

      Statement 'heresy' can is very ambiguous, if you don't think so: vagina.

      Heresy is a very strong word.

      The sarcasm is derived from the assumption of using Python (a young language) as the accepted standard rather than C. (the older language)

      - I don't care, I don't do python day to day and if I did I would still use the correct K&R indentation.

      No you wouldn't. There's no curly braces in python... and if you remove that difference, quite a lot of indentation styles are identical.

      Apparently I use the Whitesmiths style - I do find it interesting that you consider only one indentation style correct, period, regardless of language. That's a very narrow view.

      - yeah, good luck with that on my projects, someone with that attitude wouldn't be in the team for too long. If everyone changes the format to what they like all the time, CVS would not be useful to see the real code differences clearly because the entire file would change too often.

      Smarter software.

      The last IDE I used didn't store any indentation - it simply displayed it based on your preferences. CVS is happy, and every programmer is happy. Just don't open the code in notepad.

      If you want to ram your favourite style down your team's throats, and discriminate against other coders simply because you're set in your ways... then go ahead. Not my problem. It's not yours either - it's only a problem for the guy with a different opinion than you, also trying to get hired by you.

    129. Re:"many developers are so intrigued" by deek · · Score: 1

      Not quite. I've created a few perl scripts in my time. Some were designed to run on both windows and unix. There's a few little gotchas you've got to worry about when dealing with the two platforms.

      Things like the newline character. Perl will print a different newline character if it's run in Windows. This is quite important to know if you want to output text to a standard file format operated on by another program.

      While I'm on files, if you want to deal with binary files in windows perl, you need to use the binmode command. Not so with unix.

      Anyway, perl isn't 100% portable. You've got to cover the problem cases. Thankfully, there's not too many issues, and it's relatively easy to write portable code.

    130. Re:"many developers are so intrigued" by Skreems · · Score: 1

      It sounds like he's talking about a poorly written JS pre-processor. If you write something to compress whitespace and do variable replacement and such, you could make a mistake that would lead to this bug. I've written thousands and thousands of lines of JavaScript, ALWAYS using "brace on the next line" style, and never had it misinterpret anything. There's no way this has been an issue in the past 7 or 8 years with any of the major browsers.

      The fact that it DOES happen in Go, though, is ridiculous.

      --
      Slashdot needs a "-1, Wrong" moderation option.
      The Urban Hippie
    131. Re:"many developers are so intrigued" by roman_mir · · Score: 1

      Heresy is a very strong word.

      - sure, but it is not in itself a sarcastic remark in any way that is explicit.

      The sarcasm is derived from the assumption of using Python (a young language) as the accepted standard rather than C. (the older language)

      - well, that's deep, I give it to you, but it is deep in your head, it is not at all visible, if you wanted to be actually understood, you could have made it more explicit that this was your attempt at 'sarcasm'. Also it's Thompson, not K or R.

      Let me see, how would I do sarcasm in this case?
      ---

      I know why there is this new language now, forget about everything else, Ken just wanted to make a point of the correct style of opening braces and he came up with a language that does not allow you to do any different!

      - Ken wanted to make a point of 'the correct style'? As if he ever created a language or anything else that set any precedents of standards the way Python does. Heresy!
      ---
      Ok, so maybe the above can be identified as a sarcasm and the link to the comparative age of B to Python is not only in my own head but also is somewhere, where it can be seen on the page. Unless you believe that what you type into the forum and what is in your head are equivalent?

      The great thing about standards, of course, is that there are so many of them. I consider code's readability and it is for me related to the manner in which the code is displayed, and the style that I find the most practical as well as pleasing to the eye is K&R variant. So this is the main point of contention here.

      If you want to ram your favourite style down your team's throats, and discriminate against other coders simply because you're set in your ways... then go ahead. Not my problem. It's not yours either - it's only a problem for the guy with a different opinion than you, also trying to get hired by you.

      - no, I don't ram my style down anyone's throat. In a project I want all code that is checked in to be in one style, that is all. So if you want to use your own style and your IDE supports displaying it in that style but does not modify the format of the lines of code that you did no touch and allows CVS to do its work, then go nuts.

    132. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      Goddammit, and this is why I'll never use Go.

    133. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      Write once, debug everywhere

    134. Re:"many developers are so intrigued" by kaffiene · · Score: 1

      Uh-huh. I've written Gui code on Linux that I've run on Windows and Mac with no changes. I've never done that with C, C++, Perl or Python.

    135. Re:"many developers are so intrigued" by I+confirm+I'm+not+a · · Score: 1

      You're right. In future I'll make my sarcasm blatant. Except then, of course, it won't be sarcasm.

      --
      This is where the serious fun begins.
    136. Re:"many developers are so intrigued" by I+confirm+I'm+not+a · · Score: 1

      Well, I was referring to the "It's quite a big player in [the] IT job market" part as sarcasm. I assumed that no one here would actually follow the link... (or that everyone but our trolling friend could guess what the link referred to) ;-)

      --
      This is where the serious fun begins.
    137. Re:"many developers are so intrigued" by TheLink · · Score: 1

      > So in Java, you can expect that if you can't write generic code to adapt to your video camera/audio device yet, you will be able to soon.

      Yes but the users will have to download the new JVM that includes the code (and the various other JSRs you mention).

      Not such a big problem[1] given wider reach of broadband nowadays. Back in those low-bandwidth days it was a big problem - lots of users having to update their java software, IIRC there were even incompatibilities amongst the different releases.

      [1] and as long as the JVM never gets bigger than say "vmplayer" appliances... ;)

      --
    138. Re:"many developers are so intrigued" by Haeleth · · Score: 1

      I know, the old "C is just faster" meme makes people angry. I'm sure java can be programmed well and made to be fast and efficient. So why is it every java app of any size I encounter is a slow, bloated memory hog?

      In my experience it's because Java programmers try to write fast and efficient code, but don't know how.

      So, for example, they'll use arrays rather than ArrayLists, because "arrays are faster", except they're growing their arrays dynamically by reallocating and copying the entire array every time an element is appended. (Yes, I saw this one recently. Yes, switching to an ArrayList sped it up significantly.)

      It would help if Java was easier to profile. There's no excuse for not including a decent profiler in every JDK, or at least bundling one with every IDE. Sure, there are plenty of decent profilers around, including free ones, but the sad truth is that if a tool is not actually included by default in the standard install of the most basic toolkit, then many developers will never manage to get hold of it. So most Java code out there has probably never been properly profiled, and most Java coders out there have never learned what kinds of construct actually tend to produce slow code.

    139. Re:"many developers are so intrigued" by BikeHelmet · · Score: 1

      Sorry, sometimes I forget that not everyone has the same view of Python as I do. I've watched it become extremely popular in indy projects - and lately even for internal tools at businesses.

      In the past few years, there's been a flood of Python praise in the news, and it seems to have entirely replaced Pascal as the "first language" everyone suggests.

      Whenever I see someone asking how to make a 2D game, the first answer is always PyGame. How strange - even a few years ago, the first answer would've been Flash, and then C/SDL.

      The great thing about standards, of course, is that there are so many of them. I consider code's readability and it is for me related to the manner in which the code is displayed, and the style that I find the most practical as well as pleasing to the eye is K&R variant. So this is the main point of contention here.

      I accept your reasoning, and agree with it. I find Whitesmiths most pleasing.

      In a project I want all code that is checked in to be in one style, that is all.

      Good. I feel the same way.

      So if you want to use your own style and your IDE supports displaying it in that style but does not modify the format of the lines of code that you did no touch and allows CVS to do its work, then go nuts.

      So, we no longer disagree about anything - except that perhaps I need express my humour a little better. Debate resolved!

    140. Re:"many developers are so intrigued" by e2d2 · · Score: 1

      PERFORMANCE PERFORMANCE PERFORMANCE

      C++ is a bloated hog, I suggest ANSI C with embedded Assembly.

    141. Re:"many developers are so intrigued" by Anonymous Coward · · Score: 0

      LOL @ "Perl is portable."

      Perl does a great job replacing shell script, awk, sed, and dozens of other UNIX utilities with one integrated package, but it's just as portable as your average shell, awk, sed or whatever script, even among UNIX systems. Then there's Windows. I dare you to write non-UNIX Perl. The Perl standard library is weak, but so is the system integration; it's a "wanna-be" portable language.

      It's like saying Makefiles are portable... technically.. not really..

      I don't know the other languages enough to comment, but given you're opinion on Perl... lawl.

    142. Re:"many developers are so intrigued" by ajs · · Score: 1

      you had to port to an unknown platform which wasn't local and wasn't quite generic either.

      Are you talking about a solved problem or blithely claiming that one of the top programming languages currently in use is dead?

      Java was essentially dead on arrival. It had several bursts of potential success, but ultimately, it's just become the less-horrible COBOL of the 1990s and 2000s.

      That's not to say I dislike Java. It's not that bad as languages go, but it failed to capture a market outside of the world of highly captive environments.

      COBOL was the world's most popular programming language for a long time. Thing is, a language whose use constrained to black-box environments isn't really going to be considered "alive," in the larger sense of programming language vitality because nothing new builds on it.

      Eclipse and Open Office are the only two exceptions to this that I can think of. One was written by the company that published Java and one was designed to be an IDE for Java. That's not my definition of broad adoption outside of captive environments.

  3. Name by Idiot+with+a+gun · · Score: 2, Interesting

    Whatever happened to the previous language named Go? Did the creator settle with Google, or did Google just ignore him?

    1. Re:Name by BhaKi · · Score: 5, Informative

      There has been no settlement because there has been no legal dispute. There has been no legal dispute because the creator didn't trademark the name 'Go'.

      --
      The largest prime factor of my UID is 263267.
    2. Re:Name by Jessta · · Score: 1

      That other language was called "Go!" not "Go" and yeah everyone ignored him because nobody had heard of his language anyway.

      --
      ...and that is all I have to say about that.
      http://jessta.id.au
    3. Re:Name by Anonymous Coward · · Score: 0

      Except that you do not have to register a trademark to be valid... In many countries a trademark is valid if you actively advertise it and act on violations. The author of the real Go! is at least trying to accomplish the second goal.

    4. Re:Name by perltooc · · Score: 3, Funny

      Maybe they should just call it "Goo". Then they can call the subsequent version "Gooo", and so on.

    5. Re:Name by famebait · · Score: 1

      I like how you can refactor "Google Go" into "Goog Lego". No idea if it is intentional.

      --
      sudo ergo sum
    6. Re:Name by schon · · Score: 5, Funny

      Except that in order for a non-registered trademark to be valid, it must be well known.

      Sorry, but "hey, I created a language - it was used by both me *and* my ex-girlfriend's dog five years ago" doesn't cut it.

    7. Re:Name by dotgain · · Score: 1

      That was initially proposed, but the project leader got a googolplex over it.

    8. Re:Name by Yvanhoe · · Score: 1

      And the fact that he is not an ass also plays some role, as he could have had a valid legal claim even without registration.

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    9. Re:Name by derGoldstein · · Score: 3, Insightful

      Another element that plays a role is Google's "ass-ness". Does anyone think for a second that they didn't bother *Googling* the damn name prior to release? There is and *was* a Wikipedia entry, it'd probably be one of the first results. They simply switched on the "Apple Mode" -- grab the name, and let's see who has the balls to sue.

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    10. Re:Name by derGoldstein · · Score: 1

      I imagine that if you ask fast enough, you could make a case for naming a search engine "Bing!"...
      You could certainly name just about anything "Yahoo", or maybe "Yahoo?". I mean it's not like they could claim it's in the same industry as they're in. Yahoo's like Schrodinger's cat -- simultaneously in every industry and in no industry.

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    11. Re:Name by cerberusss · · Score: 2, Funny

      Whatever happened to the previous language named Go? Did the creator settle with Google, or did Google just ignore him?

      The previous version was renamed into in "Go, Next Edition". It's GoNE.

      Oh, and please try the fish.

      --
      8 of 13 people found this answer helpful. Did you?
    12. Re:Name by Anonymous Coward · · Score: 0

      http://en.wikipedia.org/w/index.php?title=Go!_(programming_language)&dir=prev&action=history

      You mean the wikipedia page that was created on Nov 11, 2009, one day after Google announced Go? Either you think that Google has created a search engine that predicts what pages will exist in the future, or you have your "assness" ass-backwards.

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

      If I m not mistaken the name of the other language was "Go!". I saw some references when studying about agent oriented languages. I would prefer that Google changed the name, "Go" is not a search friendly word ("Issue9" or "Golang" would be lot better).

    14. Re:Name by Colz+Grigor · · Score: 1

      God, I remember the AfD discussion over the non-notability of that subject, too. What a pain in the ass. derGoldstein, take a note: you can throw away an entire great argument with one incorrect fact used merely as hyperbole.

  4. If I google go... by pmontra · · Score: 1

    ...luckily the game still comes before the programming language.

    1. Re:If I google go... by kirill.s · · Score: 2, Interesting

      It's still surprising to see the Go Programming language on the 4th place when searching for "Go".
      How could it be so high based on just incoming links alone? It seems rather unpopular, considering how few of us ./ users know of it.

    2. Re:If I google go... by dullertap · · Score: 1

      apparently "they" are too, now it's 3rd place

    3. Re:If I google go... by delinear · · Score: 2, Insightful

      Well we could suspect nefarious link ranking by Google, but it's more likely the fact that anything Google does is instantly linked from every news source on the planet, including the big, respected media websites which generate a lot of page rank and don't want to be seen as missing out on the Next Big Thing.

    4. Re:If I google go... by Vintermann · · Score: 1

      Are you searching with Google by any chance?

      --
      xkcd is not in the sudoers file. This incident will be reported.
    5. Re:If I google go... by Anonymous Coward · · Score: 0

      What? Like I'd intentionally use Bing?

    6. Re:If I google go... by kirill.s · · Score: 1

      I still get golang.org on 4th place after:
      1) go.com
      2) en.wikipedia.org/wiki/Go_(game)
      3) www.gotransit.com

      Go

    7. Re:If I google go... by icebraining · · Score: 1

      So it seems. In Yahoo its 16th.

    8. Re:If I google go... by Anonymous Coward · · Score: 0

      Ironically, if you use Bing, google.com comes before any references for either the game or the programming language. No mention of the language on the first page though.

    9. Re:If I google go... by guyminuslife · · Score: 1

      The other day, I searched on Bing for something generic relating to SQL. I forget what it was, exactly.

      The first five results were all about MS SQL Server.

      Don't think search engines refrain from upranking their own technologies.

      --
      I don't believe in time. It's a grand conspiracy designed to sell watches.
    10. Re:If I google go... by phantomfive · · Score: 1

      Google groups things into categories, and on their first page search results tries to give a sample from various categories, so indeed it doesn't come from popularity alone.

      --
      Qxe4
  5. Nothing special by Dunderflute · · Score: 1

    It's all just a bunch of hype. Last time I checked the language wasn't even finished.

  6. Bright future to go. by zeromorph · · Score: 4, Insightful

    It is an interesting concept for a low-level language and could be pretty important. And since the gccgo compiler has been accepted by the gcc steering committee (link), I am expecting Go to stay and prosper.

    --
    "Hannibal's plans never work right. They just work." Amy/A-Team
    1. Re:Bright future to go. by Anonymous Coward · · Score: 1, Insightful

      It's a 'systems' language who's implementations are slower than Java, with a universally panned name, uses meaningful capitalization, etc, that can't even interoperate with C much less anything else.

      The only thing actually interesting about this language is as a demonstration of how easily politics trumps technology.

    2. Re:Bright future to go. by Anonymous Coward · · Score: 0

      And the question is, "What is your analysis, Mr. Spock?"

    3. Re:Bright future to go. by Jah-Wren+Ryel · · Score: 1

      I am expecting Go to stay

      Go stay go!

      --
      When information is power, privacy is freedom.
    4. Re:Bright future to go. by Lemming+Mark · · Score: 1

      I liked the look of the language as far as it went but what disappointed me a bit was that it still didn't seem suitable for lower level stuff, e.g. embedded and kernel work. Those guys are still stuck with C, which serves them well but isn't as nice as it could be either. If I wanted a replacement for C in userland without so much complexity as C++ or Obj-C offer, I'd think Go would be a relevant choice, although it probably needs to mature a bit first.

    5. Re:Bright future to go. by lokpest · · Score: 1

      I am expecting Go to stay and prosper.

      So, what you're saying is that you dont think it will Go away? ;)

    6. Re:Bright future to go. by pslam · · Score: 2, Interesting
      I liked the look of the language as far as it went but what disappointed me a bit was that it still didn't seem suitable for lower level stuff, e.g. embedded and kernel work. Those guys are still stuck with C, which serves them well but isn't as nice as it could be either. If I wanted a replacement for C in userland without so much complexity as C++ or Obj-C offer, I'd think Go would be a relevant choice, although it probably needs to mature a bit first.

      I like Go, but it's wrong to call it a systems language. I have no idea why they're marketing it as such. I can't think of a single system (as in, low-level, embedded, or even PC system software) where it would be suitable.

      What they should have said is it's a NATIVE compiled language, or maybe just 'static'. There's huge advantages to that, even if it's not suitable for systems programming. Sadly, I think that niche is already pretty much covered by Java and C#.

    7. Re:Bright future to go. by Lemming+Mark · · Score: 2, Informative

      I think when they're saying "systems" they really mean stuff like network servers, etc. I guess that is systems code so it's fair up to that point. But, unlike C, it's not suitable for *all* systems-level code (low level libraries, kernel stuff, embedded stuff), which seems a shame. So they're overreaching the language's scope somewhat there ...

    8. Re:Bright future to go. by spinkham · · Score: 1

      Remember how Java was panned at first for being so darned slow?

      If you have a well designed language, you can always make the implementation faster later.

      If you have a poorly designed language, you fix it by building a new one. The problem with Java isn't that it's slow(it's not) or even that it eats memory like Jabba the Hutt(it does), but the fact that they have tried too many times to evolve the language without changing it. Java proves you can make stuff fast later, but bolting good concepts on to languages after the fact while maintaining backwards compatibility and ending up with something usable is near impossible.

      Google has been spending time designing the language, and performance optimization is still yet to come. I for one think they're doing the correct thing.

      --
      Blessed are the pessimists, for they have made backups.
    9. Re:Bright future to go. by eabrek · · Score: 1

      If you want a better C, check out D

    10. Re:Bright future to go. by Anonymous Coward · · Score: 0

      If you think about checking out D, read this blog post from a member of the D community. It's a long rant, but the short story is, D will *never* work properly on windows, and it will *never* have a solid specification or even a decent reference compiler. D is a constant source of heartbreak, because it's got such a wonderful soul but it just won't get the help it needs.

      The D language is really nice -- All eleventeen mutually incompatible permutations of it. As long as you aren't on windows. Or trying to debug it.

    11. Re:Bright future to go. by eabrek · · Score: 1

      Yea, I follow the D newsgroups. Jarrett's meltdown is famous.

      I don't program much in D, beyond some simple exploration (on Windows, no less). But when I think about new programming languages, I look at D.

    12. Re:Bright future to go. by Anonymous Coward · · Score: 0

      And since the gccgo compiler has been accepted by the gcc steering committee

      Read the whole thread; it's pretty loosey goosey; it doesn't mean much to have been "accepted by the gcc steering committee."

    13. Re:Bright future to go. by Anonymous Coward · · Score: 0

      If you have a well designed language, you can always make the implementation faster later.

      Okay genius, how do you make interfaces in Google Go fast? To start, tell how to make them use only one level of indirection. Next describe how to get no indirection like C++ templates or (in practice) Java interfaces.

      And then there's the address-of operator... Google Go is sloooow by design.

    14. Re:Bright future to go. by RocketRabbit · · Score: 1

      Just like Smalltalk! (ducks)

    15. Re:Bright future to go. by Haeleth · · Score: 1

      Remember how Java was panned at first for being so darned slow?

      Yes. And I also observe that to this very day a vast number of people still pan Java for being slow.

      It doesn't matter whether it is or not. Reputations do not die easily. Java got that reputation and now it's stuck with it.

      If Go doesn't speed up very quickly, it will face the same problem. And it will be more of a problem for Go than Java, since systems languages have traditionally rated speed very highly, while Java has been most successful in domains where it has long been standard practice to accept slower performance and just throw hardware at problems.

  7. Bad infomercial by captaindomon · · Score: 5, Insightful

    This summary reads like a bad infomercial. "How likely is it to really take over?" not likely at all, and nobody would ask that question unless they worked for Google Marketing.

    --
    Just because I can hook a shark from a boat, I do no offer to wrestle it in the water.
    1. Re:Bad infomercial by Auroch · · Score: 1

      "How likely is it to really take over?" not likely at all, and nobody would ask that question unless they worked for Google Marketing.

      I'd agree, except google has done a great job taking over areas that I never thought would be monopolized.

      --
      Quartz Extreme and Core Image. Are there any other real reasons to spend all that money on generic hardware?
    2. Re:Bad infomercial by nacturation · · Score: 1

      The article is clearly a press release from Google.

      --
      Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
    3. Re:Bad infomercial by ajs · · Score: 1

      This summary reads like a bad infomercial. "How likely is it to really take over?" not likely at all, and nobody would ask that question unless they worked for Google Marketing.

      As with many other Google efforts, Go isn't managed exclusively by Google (much like Android). So your statement really doesn't make much sense. There are many people who do feel that Go is the correct logical step from many existing languages. I'm on the fence, but as a disinterested observer, I think its reasonable to say that the community of folks who are anticipating that future are largely not Google employees.

  8. Slashvertisement by oldhack · · Score: 1

    That is all.

    --
    Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
  9. who's using it? by larry+bagina · · Score: 5, Funny

    "C++ is too hard, I'll use java. java is too hard, I'll use C#. C# is too hard, I'll use python. Python is too hard (boner?), I'll use ruby. ruby is too hard, I'll use Go." -- GoFanBoy (formerly RubyFanBoy, formerly PythonFanBoy, formerly ...)

    --
    Do you even lift?

    These aren't the 'roids you're looking for.

    1. Re:who's using it? by zach_the_lizard · · Score: 2, Interesting

      Or I'll use Haskell instead. I love seeing things like orderWords = unwords. sort. words. Yum.

      --
      SSC
    2. Re:who's using it? by Tumbleweed · · Score: 4, Interesting

      "C++ is too hard, I'll use java. java is too hard, I'll use C#. C# is too hard, I'll use python. Python is too hard (boner?), I'll use ruby. ruby is too hard, I'll use Go." -- GoFanBoy (formerly RubyFanBoy, formerly PythonFanBoy, formerly ...)

      Ruby is considered easier than Python? C# is considered easier than Java?

    3. Re:who's using it? by hans_e · · Score: 3, Insightful
      You forgot the final logical step.

      "Go is too hard. I'm going to write my own language."

    4. Re:who's using it? by Midnight+Thunder · · Score: 2, Insightful

      Ruby is considered easier than Python? C# is considered easier than Java?

      It doesn't really matter when you reason for changing language is more hype based, rather than considering what problem they are really solving.

      --
      Jumpstart the tartan drive.
    5. Re:who's using it? by slim · · Score: 2, Insightful

      Haskell's lovely - but you need to be /clever/ to use it. It's not going to unseat procedural languages.

    6. Re:who's using it? by ClosedSource · · Score: 2, Insightful

      "C# is considered easier than Java?"

      Well, at least by me. You don't have to deal with checked exceptions or use adapters for (some) event handling.

    7. Re:who's using it? by IICV · · Score: 1

      Wooosh.

      It's not about which language is actually easier, it's about which language is currently in the limelight. Presumably this guy started using C when FORTRAN was too hard, FORTRAN when raw assembly was too hard, assembly when punched cards were too hard, and punched cards when talking to a group of forty computers was too hard.

      Personally, I find Ruby to be by far the most confusing of all these languages, and C# with Linq to be more sensible than Java. Mmm, sweet delicious nearly first-class functions.

    8. Re:who's using it? by Abcd1234 · · Score: 2, Insightful

      And anyone who's programmed in a functional style understands how nice it is to have proper, lexical closures at one's disposal, as opposed to hacking it with inner classes and hoping for the best.

    9. Re:who's using it? by mcvos · · Score: 1

      Ruby is considered easier than Python?

      It's certainly not harder. Ruby is about as easy as a procedural language can get (and it's somewhat functional too!). As long as you don't need multithreading, of course.

    10. Re:who's using it? by Blakey+Rat · · Score: 1

      C# is easier than Java, if only because it has a kick-ass IDE in Visual Studio and high-quality well-documented libraries.

    11. Re:who's using it? by Unequivocal · · Score: 1

      First class functions: Are you saying Ruby doesn't do first class functions but C# does? I'm not sure about your point here? FWIW, you can detach just about anything from anything in ruby and call/store/marshall it later. It's been a while since I toyed with C#, but I seem to recall it permits almost as much flexibility.

    12. Re:who's using it? by Lord+Ender · · Score: 2, Informative

      C# was developed as a reaction to Java. They were trying to make a language with Java's features but without its warts. I'm sure it is easier than Java for many things.

      Ruby and Python were both developed as reactions to Perl (again: all the features, sans the warts). Python tried to be easy for beginner programmers (and was successful; it's taught in many intro classes). Ruby tried to be easy to experienced programmers. If you're trying to to real OOP, you will find no easier syntax than Ruby's.

      So, at least in some ways, both those languages are "easier."

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    13. Re:who's using it? by Eivind+Eklund · · Score: 1

      Your "is too hard" idea is the opposite of what I see - I see very good programmers changing languages early, and mediocre programmers coming along later (or sticking with whatever they learned).

      Eivind.

      --
      Doubting the existence of evolution is like doubting the existence of China: It just shows that you're uninformed.
    14. Re:who's using it? by IICV · · Score: 1

      How did you even get that out of my post? C#-with-Linq has kinda first class functions (you have to wrap them in a properly typed Action or Func object, but the type inference usually manages that for you automatically), Java has some bullshit with reflection or whatever that basically amounts to deep voodoo. Ruby is just too magical and poorly documented for my taste, but I'm not claiming that it doesn't first-class functions.

    15. Re:who's using it? by Unoti · · Score: 2, Insightful

      Explicitly declaring thrown exceptions is one key thing I like *better* about Java over C#. It's a good idea, not a bad one.

    16. Re:who's using it? by shutdown+-p+now · · Score: 3, Interesting

      Haskell is lovely because it lets you write extremely elegant and witty code that is also utterly unreadable. It's like it went so far away from Perl that it came back to the same thing from a different direction - the more clever Haskell code has to be extremely carefully deconstructed, operator by operator, to understand what it does, much like you had to do the same with Perl's @#$ magical expletives.

      I absolutely love Haskell, and it's type system is second to none, but it's not a productive language for vast majority of typical software written today. You need to look at languages that are specifically designed to tackle the problems (of working in a team, producing readable code, not breaking code with third-party library updates etc) there.

    17. Re:who's using it? by shutdown+-p+now · · Score: 1

      If you restrict yourself to a subset of a language, maybe.

      Otherwise, C# users have to deal with:

      - user-defined value types
      - first-class functions
      - type inference (did you ever read the spec on how it works for arguments of generic methods when lambdas are involved?..)
      - unsigned integral types (and mixed arithmetic issues that arise)
      - native pointer types and pointer arithmetic
      - operator overloading
      - pass-by-reference

      just to name a few.

      This isn't to say it's a bad thing. All of the above give you more power. Furthermore, one could say that many of those features "just work" in a sense that programmer doesn't typically need to understand how type inference works, for example. But then sometimes they do not, and relying on magic without understanding how it works can land you straight into "here be dragons" land.

      All in all, I'd say that it's pretty clear that Java is a simpler language than C# - a cursory glance at language specs of each is enough to conclude that. Whether that simplicity helps ease of use, or hinders it, is a different question.

    18. Re:who's using it? by BitZtream · · Score: 1

      Yes

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    19. Re:who's using it? by ClosedSource · · Score: 1

      To each his own, but have you ever had to edit your java code because Sun (or a third party) changed their exception specification? You might end up having to modify all the functions in the call chain!

    20. Re:who's using it? by The+End+Of+Days · · Score: 1

      Eclipse has Visual Studio beaten six ways from Sunday for anyone who isn't a click-and-drag programming monkey. C# has a lot more sugar in its syntax, which is the real win. The downside is that .NET, in general, is behind Java in freely available third party library support.

    21. Re:who's using it? by Blakey+Rat · · Score: 1

      Eclipse has Visual Studio beaten six ways from Sunday for anyone who isn't a click-and-drag programming monkey.

      No way. VS's debugger alone wipes the floor with Eclipse's. I can start from JScript, dive into C#, and step through freakin' GPU shader language code without ever switching debuggers. I've never seen another environment capable of that.

      Or maybe my opinion is invalid because I'm just a "click-and-drag programming monkey." But, hey, when the click-and-drag programming monkeys are more productive than you, and giving their company more bang-for-the-buck, maybe you should be paying attention.

    22. Re:who's using it? by Anonymous Coward · · Score: 0

      The problem with Haskell is that people who think they're /clever/ use it and, as we all know, most of those people are not clever.

      In addition, I wouldn't start a codebase where I could only hire clever people to write it. They often cost a lot more than people who are less clever but tend to show up at the office during the day to write code.

    23. Re:who's using it? by syousef · · Score: 1

      C# is considered easier than Java?

      Clearly you've never done any J2EE programming.

      --
      These posts express my own personal views, not those of my employer
    24. Re:who's using it? by u38cg · · Score: 2, Funny

      Hah. I found a book in my library the other day called "Real World Haskell". I was laughing so much, I had to be told to be quiet.

      --
      [FUCK BETA]
    25. Re:who's using it? by jasonjacks0n · · Score: 1

      have you ever had to edit your java code because Sun (or a third party) changed their exception specification? You might end up having to modify all the functions in the call chain!

      That's exactly one of the issues checked exceptions are meant to deal with - if the exception-throwing behavior of code you call changes, you get notified during compilation so that you can update your own code (either by handling the new exceptions, or passing them on). That's not bad, that's good!

      What's the practical alternative? A random new exception shows up in your error logs one day, and you think huh.. guess they changed their exception spec?

      To each his own, as you said, but I love Java's checked exceptions. One thing I hate about C# is that it won't even let me optionally specify each function's exceptions.

      --
      This space intentionally left blank.
    26. Re:who's using it? by ClosedSource · · Score: 1

      "That's exactly one of the issues checked exceptions are meant to deal with - if the exception-throwing behavior of code you call changes, you get notified during compilation so that you can update your own code (either by handling the new exceptions, or passing them on). That's not bad, that's good!"

      Handling exceptions deep down in the call chain is almost always the wrong thing to do, so in the scenario where an exception is added it's caught at the highest level. So it's not really a problem.

      "One thing I hate about C# is that it won't even let me optionally specify each function's exceptions."

      Sure you can, unless you are under the mistaken impression that "specify" is the same as having the compiler check for it. Most specifications can't be checked by the compiler even in Java.

      But if you do want a "compile-time" check you can use attributes as CLRxLint does. Obviously that isn't as convenient as having it built-in.

  10. its by BenoitRen · · Score: 1

    in just a short time since it's early, experimental release

    its

    Damn apostrophe abusers!

  11. already invented? by agentultra · · Score: 2, Insightful

    Why pick Go when there's D which already has a pretty stable platform to develop on?

    1. Re:already invented? by binarylarry · · Score: 1

      D has proprietary dependencies?

      --
      Mod me down, my New Earth Global Warmingist friends!
    2. Re:already invented? by ObsessiveMathsFreak · · Score: 3, Informative

      How do you make a concurrent process in D? Perl? Ruby? C? Lisp?

      Go actually provides a usable, platform independent method of concurrent programming that doesn't involve mucking about with pthreads, or constants like &MMDIPS_MULTICORE_AGG. You just call "go func()" and a new process is spawned.

      --
      May the Maths Be with you!
    3. Re:already invented? by shutdown+-p+now · · Score: 1

      So is Go a system language, or is it a high-level concurrent programming language?

      It should really decide what it is.

    4. Re:already invented? by DragonWriter · · Score: 1

      Why pick Go when there's D which already has a pretty stable platform to develop on?

      For Erlang-style concurrency.

      (OTOH, then the question becomes why pick Go when there's Erlang already...)

    5. Re:already invented? by Abcd1234 · · Score: 1

      Those are mutually exclusive concepts? Huh. You might want to tell Google...

    6. Re:already invented? by BuR4N · · Score: 1

      How do you make a concurrent process in

      You can use Intel Threading Building Blocks for example, but you _should_ muck around with threads, locks and their type of bugs (dead locks, race conditions etc) so you know whats happening under the hood.

      http://www.threadingbuildingblocks.org/

      --
      http://www.intellipool.se/ - Intellipool Network Monitor
    7. Re:already invented? by eabrek · · Score: 1

      The source code for dmd has been available since Mar 2009 (D 1.041 and D 2.026).

      There are open source compiler implementations: gdc and ldc

      The Tango library for D is open source (and much more extensive than the proprietary library - Phobos).

    8. Re:already invented? by Kludge · · Score: 1

      You just call "go func()" and a new process is spawned.

      like sh?

    9. Re:already invented? by Waffle+Iron · · Score: 1

      Go certainly makes concurrent programming easy, but I think that they suffer from the same problem as many languages that came before it. They focus on whatever happens the current hot topic of the day (in Go's case concurrency, class inheritance in the case of Java, string manipulation for Perl, etc), and they put in a bunch of funky syntax to support it.

      As time goes by, other hot topics come and go, but the language remains stuck near where it started. It will have great support for this one thing, but will end up with clumsy kludges for newer things. In the case of Go, the concurrency syntax is so specialized, I don't think that they have planned out any way to elegantly extend the language in the future.

    10. Re:already invented? by shutdown+-p+now · · Score: 1

      In practice, it seems to be. Can you point out a single successful strictly high-level system programming language?

    11. Re:already invented? by Anonymous Coward · · Score: 0

      In C and Perl: fork().

      News flash: Go isn't "platform independent". It only works on x86. GCCGO is broken as it doesn't support segmented stacks, so concurrency doesn't scale nearly as well. In fact, GCCGO is doomed (much like GCC D) unless and until the Go developers drop their separate compiler and focus on GCCGO.

    12. Re:already invented? by Anonymous Coward · · Score: 0

      The source code is for D's front end, and is not sufficient to build the full compiler.

      And frankly dmd not even all that good, but it could at least inform the continued development of gdc or ldc.

    13. Re:already invented? by Abcd1234 · · Score: 1

      Hmm, I suppose I was too terse, and thus I phrased my counter-post poorly.

      My contention is that Go *isn't* high-level, at least not in the traditional sense. At it's core, it's really dressed up C. What it *does* contain is a few high-level concepts, among them a more abstract concurrency model. As such, Go is probably best thought of as a hybrid language (mid-level? *shrug*).

    14. Re:already invented? by Anonymous Coward · · Score: 0

      Speaking of a usable, platform independent method of concurrent programming, you forgot Ada.

    15. Re:already invented? by shutdown+-p+now · · Score: 1

      I'm somewhat reluctant to consider a language which mandates tracing garbage collection, and only has checked pointers and no pointer arithmetic - and, in general, is fully memory-safe by design - as "not quite high-level".

      But I guess it is a matter of perspective - after all, there isn't any clear-cut definition for the term.

    16. Re:already invented? by Abcd1234 · · Score: 1

      I'm somewhat reluctant to consider a language which mandates tracing garbage collection, and only has checked pointers and no pointer arithmetic

      Buh? I must be misremembering... I *thought* Go actually had native pointers (along with the rest of its unboxed types).

      Alright, nevermind then. :)

    17. Re:already invented? by shutdown+-p+now · · Score: 1

      Buh? I must be misremembering... I *thought* Go actually had native pointers (along with the rest of its unboxed types).

      Oh, it does have pointer types. It's just that you can only get a value by using the address operator, or "nil" - no pointer arithmetic. They propose using slices (which are effectively fat pointers into arrays that know their length) instead in language design FAQ.

      I note, however, that you're still apparently able to take an address of a local, and return that, and I don't see any special provisions in the language spec; yet they claim full memory safety, which implies no dangling pointers. I guess that means they lift potentially escaping locals to heap, since GC makes that possible, but it would be great to find some definite confirmation of that.
       

    18. Re:already invented? by ajs · · Score: 1

      So is Go a system language, or is it a high-level concurrent programming language?

      It should really decide what it is.

      It is a concurrent system programming language, and the fact that that terminology doesn't make any sense to you is probably evidence enough that it's doing something interesting (interesting does not equal successful... time will tell).

    19. Re:already invented? by eabrek · · Score: 1

      The front end has always been open source. It was the full source which became available recently.

    20. Re:already invented? by BitZtream · · Score: 1

      Perl? Ruby? C?

      Fork() (in C on windows it takes a few more lines of code than just calling fork() but its only a few)

      I can't speak for D or Lisp, I don't know really anything about them as far as actually using them.

      I'm really sorry you don't realize it but ... just because they don't call it a thread or process, doesn't mean its actually something different.

      Programming really hasn't changed in years, multiprocessing is becoming the norm, but its in no way what to ever 'new'.

      From the following quote I'm going to conclude that you're haven't been programming very long.

      You just call "go func()" and a new process is spawned.

      The rest of us call this fork(). It may make forking easier for the uninitiated but its not actually any different, and I for one have seen the damage caused by making a language 'easier' to use. VB and Java a great examples of how making programming 'easier' makes the quality of programs developed with that system noticeably lower than 'harder' systems.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    21. Re:already invented? by shutdown+-p+now · · Score: 1

      Why pick Go when there's D which already has a pretty stable platform to develop on?

      D is not really a stable platform, either, unfortunately.

    22. Re:already invented? by Anonymous Coward · · Score: 0

      [ ... ] fork.

      sigh.

    23. Re:already invented? by RAMMS+EIN · · Score: 1

      Pretty much like "func &" in sh, yes.

      And why not? There are a lot of good ideas in the Bourne shell and its successors.

      --
      Please correct me if I got my facts wrong.
    24. Re:already invented? by Anonymous Coward · · Score: 0

      I believe that in perl you can prefix function calls with the 'async' keyword to get the same effect.

    25. Re:already invented? by Anonymous Coward · · Score: 0

      Ever heard of SR? http://www.cs.arizona.edu/sr/.

      It, too, claimed to be a system programming language with easy concurrent programming. Didn't catch, for some reasons.

    26. Re:already invented? by onefriedrice · · Score: 1

      How do you make a concurrent process in D? Perl? Ruby? C? Lisp?

      Easy.

      Go actually provides a usable, platform independent method of concurrent programming that doesn't involve mucking about with pthreads, or constants like &MMDIPS_MULTICORE_AGG. You just call "go func()" and a new process is spawned.

      I can do that in even less keystrokes...

      fork();

      Yeah, you probably don't consider that "platform independent," but Go is marketed as a "systems" language, and all the systems currently supported by Go are all POSIX-compliant. I understand that Go's language support is value added, but it's not like language support for concurrency is some new thing; you just conveniently listed languages which weren't designed with concurrency in mind while ignoring the dozens of more-mature languages which were.

      I have spent some time looking into Go and wasn't generally impressed. I saw pieces of C, pieces of Erlang, pieces of Python, and a whole lot of quirks. It has a nice and fast compiler, which I like, but I certainly was not amazed by its innovation or implementation.

      --
      This author takes full ownership and responsibility for the unpopular opinions outlined above.
    27. Re:already invented? by michaelmuffin · · Score: 1

      How do you make a concurrent process in [...] C?

      with the plan 9 thread library. it has channels similar to those in go for synchronization

      http://swtch.com/plan9port/man/man3/thread.html

    28. Re:already invented? by Anonymous Coward · · Score: 0

      To answer your question about the last one:

      (require 'chanl)
      (in-package 'chanl)

      (defparameter *channel* (make-instance 'channel))

      (pexec () (loop (send *channel* "success")))
      (pexec () (loop (print (recv *channel*)))

      Run on Clozure Common Lisp, that code will run on Windows, OSX, and Linux. Run it on ECL and it'll probably work on even more platforms. And you know what? That's a library. If you just want to call it "go" because pexec makes you pee your pants:

      (defmacro go (&body body) `(pexec () ,@body))

      !next

    29. Re:already invented? by Anonymous Coward · · Score: 0

      D2 has multiprocessing built into it. If they would have stopped wildly changing the damn language years ago, it would be the king here.

      Oh goodie. Another language that makes it super easy for a programmer to spawn off a zombie apocalypse of threads. I can smell the stability from here.

    30. Re:already invented? by agentultra · · Score: 1

      Fair, the transition from D1 - D2 is seeing some significant backwards in-compatible changes.

      I wonder how long it will take Go to go through the same process?

    31. Re:already invented? by Anonymous Coward · · Score: 0

      IIUC D 2.0 will have similar concurrency support to Go. It's imminent, but yes, it's only alpha for now.

      Now Go, when are you going to support templates, exceptions, operator overloading?

  12. it's an interesting case by fusiongyro · · Score: 5, Interesting

    I wrote a small utility for detecting duplicate files in Go back when it first came out. I haven't really kept it up to date so I'm not sure if it compiles with the current version.

    It's an interesting language. Apart from its lineage, which is interesting and great if you're into Plan 9, it seems to me to be an old-school procedural shot across the bow of the current crop of compiled functional languages (ML, Haskell). It's hard to place the language in any camp, because it does furnish functional programming and object-oriented features without really committing to the dogma of either one. It gives you a ton of interesting features that seem to work really well in concert, but it's also missing some core functionality. I can live without exceptions but I'm not sure I can live without type genericity in this day and age. And a lot of other programmers have their own little nits with it.

    Overall, it seems great. But I seldom need code compiled to the machine, and I'm conversant with and fond of the compiled FP languages so I tend to rely on them for these kinds of utilities. I suspect at Google this will eventually become the de-facto language for implementing protocol buffer servers. If and when that happens, the language will have a guaranteed niche for a long time to come, whether or not it wins over hearts and minds outside the giant.

    1. Re:it's an interesting case by Anonymous Coward · · Score: 0

      I'll see your 170 lines of Go and raise you 3 lines of Perl:


      my %saw = ( );
      my @dupes = grep { my ($sha1) = split( /\s+/, `sha1sum $_`); $saw{$sha1}++ } grep { -f $_ } map {chomp; $_ } `find`;
      print "Duplicate Files:\n", join("\n", @dupes);

    2. Re:it's an interesting case by fusiongyro · · Score: 1

      Brevity wasn't the point of the exercise, using Go was. (Although it's worth noting mine is parallel, uses one process, and is much kinder on the memory.)

    3. Re:it's an interesting case by RAMMS+EIN · · Score: 1

      ``It's hard to place the language in any camp, because it does furnish functional programming and object-oriented features without really committing to the dogma of either one. It gives you a ton of interesting features that seem to work really well in concert''

      There actually is a camp for languages like that. They're called multi-paradigm languages, and I believe a language that can elegantly express many paradigms is a Good Thing. Languages commonly considered to be multi-paradigm include Ruby, Lua, Common Lisp, and OCaml.

      --
      Please correct me if I got my facts wrong.
    4. Re:it's an interesting case by fusiongyro · · Score: 1

      The difference, to me, is degree of ideology. CL's OOP is intense and powerful, and doesn't feel bolted on later; OCaml's does feel bolted on later. Both are ostensibly functional languages but lack a lot of the pedantic functional purity advocacy; they're out to please. Ruby's standard library has a lot of FP flair but it certainly isn't out to win people from the FP world over to OOP, it's out to accomodate. I can't speak to Lua.

      The situation with Go is different in that the designers (I'm talking about Cox here mostly) are vehemently against OOP and I suspect they're as ornery about FP. Go doesn't have a big mishmash of features from different languages to try and get as many bullet points as it can on the box. It's striving for simplicity and to them that means a minimum of features. So you lose inheritance and curried functions and there are no continuations and the lambda syntax is wordy. Those aren't the features they want you to use.

      In truth, even with OCaml they don't really push you towards using their object system. Same with PostgreSQL. In both cases, it started life as a research project and got incorporated because it was useful to some minority, but it's not the hallowed programming method. Ironically, with CL, you probably get more blank stares for using advanced FP ideas than for using CLOS. And with Ruby, well, it's all about finesse, and there doesn't seem to be much concern for the featureset you use as long as you make a DSL.

  13. Alternatives? by Filik · · Score: 4, Interesting

    Could anyone post a list of alternative modern programming languages that equally handles parallelism as well, that are still being actively developed, and their pros and cons compared to Google Go? I'm interested in learning one of these, I just can't find any easy overview anywhere (all mentioned in wikipedia are pretty old so lots must be missing...). Surely Haskell isn't the latest such project, there must be lots of others just around corner?

    1. Re:Alternatives? by binarylarry · · Score: 3, Informative

      Scala.

      Pros:
      Built on a mature, polished platform (Java)
      Nice language syntax
      Functionalish constructs are available
      Great parallel framework (actors) along with the functional aspects

      Cons:
      No native AOT support
      IDE support is still newish

      --
      Mod me down, my New Earth Global Warmingist friends!
    2. Re:Alternatives? by Anonymous Coward · · Score: 1, Funny

      FORTRAN. Pros: Faster. Cons: Everything else.

    3. Re:Alternatives? by Anonymous Coward · · Score: 2, Informative

      erlang has parallelism much more in the core of the language.

    4. Re:Alternatives? by zach_the_lizard · · Score: 1

      There's Scala, Erlang, and, as you mentioned, Haskell. All of them have active development, but I am most familiar with Haskell itself. All of them have the advantage that any more established language will have: they will have better or more numerous compilers, libraries, and instructional materials. They all have mindshare that Go does not have. In the case of Haskell, Haskell has a very strong type system and lazy evaluation, in addition to being a mostly pure functional language. Go does not use LE from what I can tell, and this will have important effects on the optimizations that can be done. Haskell tends to avoid mutable types and side effects, which can make it easier to go parallel, but they can also cause it to miss out on things like the (efficient) quicksort algorithm. If you can't modify an array in place, it become pointless to use that algorithm. Without more information on Go, I cannot say much more.

      --
      SSC
    5. Re:Alternatives? by Coryoth · · Score: 5, Interesting

      I can't give opinions on all of these (and some are still in development at this time anyway), but here's a list of some languages with paralellism designed in:

      • Erlang -- Very popular message passing/actor model based language.
      • Scala -- A functional language with actor model concurrency for the JVM.
      • Oz -- An exceptionally multiparadigm language.
      • Occam-pi -- The modern version of the old occam for transputers; CSP style concurrency (I believe).
      • Chapel -- Cray's parallel programming language for supercompters. Cray's entry into DARPA's HPCS programming language competition.
      • X10
      • Fortress -- Sun's language for serious scientific computing. It was Sun's entry into DARPA's HPCS programming language competition, but lost and is now open sourced.
      • Eiffel SCOOP -- An effort to take a CSP model and make it elegantly compatible with object oriented programming
    6. Re:Alternatives? by mcvos · · Score: 1

      Functionalish constructs are available

      Functionalish constructs? I thought it was a fully functional language with dynamic-ish constructs available despite its static typing system.

      But I'm no Scala programmer. (It's high on my to-learn list, though.)

    7. Re:Alternatives? by binarylarry · · Score: 1

      Some of the functional nut jobs claim Scala isn't functional because it supports mutable objects, OO and other non functional features.

      In any event, it's more of a compromise.

      --
      Mod me down, my New Earth Global Warmingist friends!
    8. Re:Alternatives? by Idiot+with+a+gun · · Score: 1

      My coworker and I got in a big argument about Scala earlier.

      I hate it when people call it functional. I'd far prefer multi-paradigm, and here's why.

      No proper Tail Call Optimization. In simple cases the compiler inlines your function as a loop, or it uses a trampoline function. This can make make writing functional code (which has no loops generally) inefficient (and ugly). That's what you get for sticking on the JVM I guess.

      Introduction of non-pure functions through inclusion of systems library. The argument for Scala is that you have access to any Java library. The issue is that none of these libraries are pure functions, so you ruin the pure nature of your program.

      Does this make Scala bad? No. But I think to call it a functional language is to be disingenuous. Is it handy having functional constructs (yay partial application and maps!) in an OOP language? Heck yes. But it's not really designed for pure functional programming, so I really wouldn't call it functional.

    9. Re:Alternatives? by Anonymous Coward · · Score: 0

      Why does paralellism have to be so damn obvious and a burden on the application-programmer.

      Simula & PostScript by design support paralellism without the hassle. How much paralellism a program will achive depends solely on the developer of the compiler/interpreter (perhaps thats why no language-vendors want to market Simula or PostScript any more).

    10. Re:Alternatives? by mcvos · · Score: 1

      It's not pure, untainted functional, sure, but it also has immutable objects, doesn't it?

    11. Re:Alternatives? by descubes · · Score: 1

      There's XL. OK, to be honest, it doesn't handle parallelism that well yet, but how this will be done is understood. And whether it's actively developed or not depends on your definition of "actively" ;-)

      Pros:

        - Designed for meta-programming
        - Extensible (you can add your own notations with compiler plug-ins)
        - No forced placement of { and } (largely because you don't need them)
        - Probably the first language where you could redefine a Pascal-like WriteLn (way back in 2000 or so)
        - The XL compiler is written in XL (the Go compiler isn't written in Go)
        - Expression reduction, a generalized form of operator overloading, e.g. define expression A+B*C=0 when A, B and C are matrices
        - True generic types, e.g. a way to use "array" as a type to denote code that doesn't care about element type or size
        - Generic validation, i.e. detect in the specification whether it's OK to use a given generic type, e.g. maximum only works if you have an order relation.
        - Generates C or Java (work currently in progress for generating machine code on the fly using LLVM)
        - No parser-injected semi-colons. What were they thinking?
        - OTOH, the new-line that separates statements is an infix operator (and so is the semi-colon). Now, that is cool.
        - Very simple base syntax, implemented within less than 1000 lines of code

      Cons:

        - Not backed by Google or any large company
        - Never went much beyond the "amusing exercise in compiler technology" stage, i.e. not used for any real stuff

      Disclaimer: I invented and implemented that language, which means that you are probably biased :-)

      --
      -- Did you try Tao3D? http://tao3d.sourceforge.net
  14. What innovation? by piranha(jpl) · · Score: 5, Interesting

    So, what has Go brought to the table?

    Go is designed with internal messaging capabilities, intended to simplify the creation of applications running on different nodes, and improve their performance.

    "It's a way to try to address how to write concurrent software that's more robust, as opposed to using the old threading model of Java and others," Voss said.

    ...

    In this regard, Go offers "a new programming paradigm" that makes it easier to solve a wide variety of programming problems by simplifying many types of parallel processing.

    No, Go doesn't bring anything new to the concurrency table. The two things I've seen about Go concurrency that are regarded as special are M:N/"green" threads and CSP-style channels.

    M:N threading is an implementation detail of a language runtime. Whereas the standard library of a language might specify how threads are available to client applications (programs written in the language), it's best left to the implementation (runtime or compiler) to decide how to translate those threads onto the machine. Some implementations might want to focus on scalable, high-performance threading, and so they'd choose M:N. Some others might emphasize simplicity, and map language threads directly to OS threads. What Go has done is standardized this implementation detail into the language specification. (I don't think that's a good idea, but that's a matter of taste.) Other language implementations offer M:N threading, including GHC and (I think) Erlang.

    On channels: they're cool. I love them. But there's a lot of prior art here, and many languages have great CSP-style channel libraries written for them that offer the same great flavor of relatively safe message passing and alternation between sets of channels:

    In summary, I just don't get what the buzz with Go is about, besides that it's Google's very own language.

    1. Re:What innovation? by Babylon+Rocker · · Score: 1

      occam is a concurrent programming language that builds on the Communicating Sequential Processes (CSP) process algebra,[1] and shares many of its features. It is named after William of Ockham of Occam's Razor fame.

    2. Re:What innovation? by grepya · · Score: 1

      Whereas the standard library of a language might specify how threads are available to client applications (programs written in the language), it's best left to the implementation (runtime or compiler) to decide how to translate those threads onto the machine.

          No. If you really care about performance (and my job involves caring a lot about performance), it's *not* necessarily best to let the implementation to decide how to handle threading. Not with the ubiquitous multi-core "SMP" systems -- which are anything *but* symmetric when it comes to memory accesses from different cores on different physical chips. Going to the kernel for thread switching and lock contention can be super-linearly more expensive with the number of cores. (I would make an exception there about systems like Apple's libdispatch which, at least in theory, can work directly with the kernel and with deep knowledge of the hardware architecture to schedule my work over the appropriate cores... but that's not we're talking about with a relatively high level language like Go). I haven't looked carefully into Go, but in fact your assertion that it allows me to choose M:N threading (with perhaps tunable M and N), makes me want to find out more about this. And if, as some others here have asserted, it combines elements of python and C while adding concurrency in the syntax of the language, that's just about the perfect combination of features a bread and butter engineer like myself would be looking for, as opposed to other languages (Erlang et al), that may contain similar multi-processing goodness (message passing between light-weight tasks etc.) but are too far removed from the popular programming paradigms of the day to make them practical in a general-purpose programming context.
           

    3. Re:What innovation? by ajs · · Score: 2, Interesting

      You're making a very old argument. One that was made by C purists when C++ was introduced: that simply adding syntax for something doesn't make your language special. C++ users disagreed and many defected from the C camp. Were they right? Possibly.

      Of course, the smalltalk users were also right: these were not new features. C++ was just applying previously developed tools to the C language.

      None of that mattered in the long term.

      Is Go the new C++? I have no idea, but I don't think you're taking an objective, historical view, here.

    4. Re:What innovation? by 5pp000 · · Score: 1

      I just don't get what the buzz with Go is about, besides that it's Google's very own language.

      I don't get it either. It certainly doesn't have anything to make me want to switch from Common Lisp.

      Calispel looks interesting... I may have a use for it. Thanks for posting!

      --
      Your god may be dead, but mine aren't!
    5. Re:What innovation? by Anonymous Coward · · Score: 0

      I'm sure Rob Pike is more aware of this fact than you are.

      To add to your list, though: PLT Scheme, Stackless Python, Concurrent Haskell...

      Go's object system (or lack thereof) is interesting for other reasons, though. See http://bywicket.com/users/mikel/weblog/126a4/ and any of the posts having to do with Categories. It could still probably be made better with inheritance, though. Not that Go's idea is original, but it's interesting to see that there's a language that the plebs consider interesting that actually uses good ideas. Kinda like how JavaScript is a piece of shit, but has given significante exposure to prototype-based programming.

  15. What is Go? by Anonymous Coward · · Score: 0

    What is Go?

    Does that answer your question?

  16. Go considered harmful by StripedCow · · Score: 3, Funny
    --
    If Pandora's box is destined to be opened, *I* want to be the one to open it.
  17. Re:Go fuck yourself by cmiller173 · · Score: 4, Insightful

    30 years ago there were enough programming languages "already". What do you need that can't be handled by COBOL, FORTRAN, Pascal, Ada, ANSI C and assembly language?

  18. vs Java? by Midnight+Thunder · · Score: 1

    Reading the documentation on Go, really makes me wonder why I would want to use this instead of a language such as Java? One of the arguments is that it is 'loosely typed', which IMHO is not necessarily an advantage in large projects, since in a large project I want to be sure that the compiler catches the obvious mistakes, and not wait until runtime. I already used a loosely typed OO language called Smalltalk and if the documentation wasn't good, then you had to work hard to find out what object the method was expecting.

    If the goal is really to compete with the like of Javascript (JS), then I can appreciate the need for an alternative, but given how entrenched JS is, I see this as an uphill struggle.

    New languages, really need to prove themselves as addressing a real problem, otherwise its just another way of fragmenting the expertise in the field.
     

    --
    Jumpstart the tartan drive.
    1. Re:vs Java? by famebait · · Score: 1

      Have you tried concurrency in Java? Granted, Go is not alone in offering good support for parallell execution. Erlang, scala, haskell etc. come to mind. But doing it java is pure pain.

      --
      sudo ergo sum
    2. Re:vs Java? by Dunderflute · · Score: 1

      Concurrency is important but my point is that it's not even complete. It might not ever be complete if it's just a pet project, Google-backed or not.

      There are plenty of other languages for parallel programming that have a lot more testing and have been around for a lot longer.

      Until I see Go used in something mission critical with some real financial backing I don't see it being any more than a hobbyists tool.

      But if it's only being used for something small then why bother? If it's a script then use Bash. If it needs to be portable use Java. If you want to interact with a lot of free libraries then use C or C++. I don't understand where Go fits in. Just being "fast" is completely arbitrary.

    3. Re:vs Java? by shutdown+-p+now · · Score: 1

      Have you tried concurrency in Java? ... doing it java is pure pain.

      Things will change to some extent in Java 7 (though it's still not as seamless as in Go).

    4. Re:vs Java? by Anonymous Coward · · Score: 0

      AFAIK the main feature is how it handles concurrency.

    5. Re:vs Java? by Anonymous Coward · · Score: 0

      Java is loosely typed.

      See also: generics.

  19. No multi-dimensional arrays by halfdan+the+black · · Score: 1

    Go looks nice, but it still does not have real multi-dimensional arrays. This is the key issue that keeps me using Fortran.

    WTF don't any C derived languages have real multi-dimensional arrays? Yes, I know you can fake it with array of pointers to pointers, i.e. foo[i][j], but the problem is even if you allocate a contiguous block, and have your pointer array index into it, it still requires at least two memory accesses to access an element, which absolutely kills performance. And I just freaking hate doing foo[i * ROWS + j], its nasty and error prone. So, why has Fortran had multi-dimensional arrays since freaking 1960, and still no C derived languages have it.

    BTW, native complex number vector operations would be nice.

    1. Re:No multi-dimensional arrays by siride · · Score: 2, Informative

      And this is most funny because C *does* actually have multi-dimensional arrays (at least statically sized ones).

    2. Re:No multi-dimensional arrays by halfdan+the+black · · Score: 1

      I said REAL multi-dimensional arrays.
      Stack allocated multi-dim arrays do not have the same memory layout as dynamically allocated ones, and are for the most part useless, i.e. you are limited by your stack size, so try allocating a 100,000 * 100,000 array on the stack.

    3. Re:No multi-dimensional arrays by siride · · Score: 2, Informative

      You can allocate global multi-dim arrays. But anyways, it's not a big deal. Make a macro or a function to do the address translation for you and then forget about the impl. details. That's what FORTRAN effectively has to do. That's for C, where there should be no performance loss. For less low-level C-derived languages -- well, I guess if you need performance, you wouldn't be using them.

    4. Re:No multi-dimensional arrays by sabre86 · · Score: 1

      How long has Fortran had dynamic multidimensional arrays and how are they implemented without some sort of indirection? You can statically allocate multidimensional arrays in C just fine and it doesn't use indirection (I believe). I'm not so sure the pointers actually hurt you that much on performance, anyway. Continuously allocating an n-dimensional array is a pain, though, in C. And I'm facing a head scratcher right now as to why my C code on matrices is underperforming, but theoretically it works pretty well and other people seem to have had success with it.

      The issue as I've understood it is that C pointers aren't restricted by default, so the compiler can't assume that these are the only pointers to the array. C99 fixes that with "restrict" keyword. Your compiler may vary.

      Oh, and I believe it's foo[i * COLS + j]. C is row major.

      Seriously, native complex number vector operations would be awesome, particularly with automagic compilation to vector units or maybe to OpenCL.

      --sabre86

    5. Re:No multi-dimensional arrays by Anonymous Coward · · Score: 0

      Because C is a low-level system programming language. You can roll multidimensional arrays a million different ways in C, or choose a million different languages that have them natively.

      If you are keeping to Fortran I suspect you are not doing any low-level system programming at all. In which case, sure, dodge C.

      As for performance, are you still using a machine without an L1 cache?! The double memory reference for NumRec-style multi-dimensional arrays shouldn't be an issue for sensible access patterns, and if you don't have sensible access patterns in the first place, your performance already sucks and can't be blamed on this device.

    6. Re:No multi-dimensional arrays by Anonymous Coward · · Score: 0

      because your block of memory should already be contiguous with respect to your data segment. memory references are already a constant time operation, you think GCC compiles char** with 2 memory dereferences from a statically allocated array? That's a SINGLE load (or store) operation.

    7. Re:No multi-dimensional arrays by camperdave · · Score: 1

      You should not care about the memory layout of your arrays. If you do, you're programming at the wrong level. The whole point of providing array variable types is to hide the implementation details. How the compiler translates array(7,5,2) to a value is strictly an issue for compiler devs.

      --
      When our name is on the back of your car, we're behind you all the way!
    8. Re:No multi-dimensional arrays by mehemiah · · Score: 1

      BTW, native complex number vector operations would be nice.

      how do you suppose we represent that in memory? Would you like to submit one to the IEEE or shale they just be the only ones using it? The field of complex numbers is closed anyway (going for a pun, not sure what it is)

    9. Re:No multi-dimensional arrays by shutdown+-p+now · · Score: 1

      WTF don't any C derived languages have real multi-dimensional arrays?

      C# (and CTS) has them:

      float[,] a = new float[2, 3];
      a[0, 0] = 1;

      but performance in all present-day implementations sucks compared to vectors.

    10. Re:No multi-dimensional arrays by sabre86 · · Score: 1

      As, um, vectors of complex numbers (2-tuples)? I like the pun, though. It is closed under addition, it's not closed under multiplication (obviously), but I gather if you assume the axiom of choice, it's also algebraically closed.

      --sabre86

    11. Re:No multi-dimensional arrays by shutdown+-p+now · · Score: 2, Informative

      And this is most funny because C *does* actually have multi-dimensional arrays (at least statically sized ones).

      C99 has non-statically-allocated (albeit still non-resizeable) arrays, including multi-dimensional ones.

    12. Re:No multi-dimensional arrays by halfdan+the+black · · Score: 1

      C# does have them, and the syntax is nice. I haven't touched Windows (thankfully) in about 5 years, but the last time I tried them in c#, the performance was surprisingly bad compared to jagged arrays. One would think that the compiler could do some optimization because it is be definition a contiguous block of memory. I've not tried mono, so no idea how their performance is.

    13. Re:No multi-dimensional arrays by Anonymous Coward · · Score: 0

      WTF don't any C derived languages have real multi-dimensional arrays?

      C# has built-in support for true multi-dimensional arrays (in addition to support for Java-style jagged arrays). Boost provides multi-dimensional arrays for C++. The C# operations are safe by default; Boost can be compiled with or without range checking, similar to Fortran.

      It's true that Go currently does not offer dynamic multi-dimensional arrays, but at least they offer static multi-dimensional arrays, which are useful in many situations (for example, modeling transformation matrices).

    14. Re:No multi-dimensional arrays by shutdown+-p+now · · Score: 1

      last time I tried them in c#, the performance was surprisingly bad compared to jagged arrays. One would think that the compiler could do some optimization because it is be definition a contiguous block of memory.

      It's because every element access for multidimensional arrays is actually a method call.

      For single-dimensional, zero-based arrays ("vectors" in CTS parlance; it also allows for non-zero-based arrays, which aren't vectors), CIL has special instructions to access elements - ldelem & stelem - as well as to obtain pointers to them - ldelema & stelema. For multidimensional ones, there is no such thing, so compilers have to use the universal fallback of using T[...].Get(...) and T[...].Set(..., T) methods available on all array classes.

      In theory, this doesn't preclude optimizations on JIT level, as compiler can easily detect those Get/Set method calls, and generate efficient code for them. In practice, however, all existing implementations only properly optimize special vector opcodes, leaving Get/Set calls (whether multidimensional or not) intact.

    15. Re:No multi-dimensional arrays by drewm1980 · · Score: 1

      Last I checked, Go has no language-level support for scientific computing whatsoever. At MINIMUM they should provide a standardized, fully-strided, ndarray data container, so that the libraries that developers add later will at least be able to easily share data. And if this is all they provide, I hope at least the language definition is flexible enough to extend the syntax to support things like slicing and broadcasting.

      The scientific and engineering world really needs a language that combines the ease-of-use of python/numpy with language-level support for expressing concurrency. I hope Go will eventually become this language, but this is clearly not a priority for the Go developers at this time.

    16. Re:No multi-dimensional arrays by drewm1980 · · Score: 1

      Compilers cannot be expected to decide what storage is appropriate for each of the arrays in your never-been-seen-before algorithm, and when it is appropriate to switch between storage types, when to duplicate the same array with different storage, etc...

    17. Re:No multi-dimensional arrays by halfdan+the+black · · Score: 1

      I really was hoping that Sun Fortress would become something for scientific computing, but its tied to Java, so its dead before it even started. While Java may be common in web servers, it is typically not even installed on clusters. So, until something betters comes along, I guess I'll just stick with Fortran2003, F2Py, and Python.

    18. Re:No multi-dimensional arrays by Anonymous Coward · · Score: 0

      C# is not a C derived language.

    19. Re:No multi-dimensional arrays by shutdown+-p+now · · Score: 1

      C# has very clear C++ influences, and C++ is derived from C. Syntactically, C# is clearly in the same family. Semantically, it has mostly the same set of basic statements (if, while, for, switch, ...), operators (?: ++ =) with same precedence, and a similar set of primitive types.

      Heck, it even has very C'ish pointers - both syntactically and semantically - complete with pointer arithmetic.

    20. Re:No multi-dimensional arrays by camperdave · · Score: 1

      I wasn't aware that a program could tell the compiler to use a row-first/column-next array storage vs column-first/row-next array storage, or to switch between them.

      --
      When our name is on the back of your car, we're behind you all the way!
    21. Re:No multi-dimensional arrays by ajs · · Score: 2

      Go looks nice, but it still does not have real multi-dimensional arrays. This is the key issue that keeps me using Fortran.

      Because it's spurious optimization.

      Modern HLLs (and even most of the languages that live in the spaces between machine language/C and HLLs) spend so much time doing bounds protection, reference counting, garbage collection, constructing, destructing, etc, that if you find yourself in need of the extra cycle indicated by a double-indirect lookup, then you need to use a lower level tool for that code section, not a 2D array. In many languages this is commonly found in image processing and large math libraries. PIL for Python, PDL for Perl, etc. are designed to perform these low-level operations in a way that the high level language can manage cleanly.

      You don't need a huge tumor on the side of the language syntax just so that your reference counted, garbage collected, safe accessed arrays are stored without an extra pointer. That would be absurd.

    22. Re:No multi-dimensional arrays by halfdan+the+black · · Score: 1

      Really !?!,

      Are you aware of any documentation on this? All I could find was the usual pre C99 multi dim docs.

    23. Re:No multi-dimensional arrays by drewm1980 · · Score: 1

      You can't. That's the problem. Because there is no good language-level support for multi-dimensional arrays, most languages are forced to deal with something as basic as storing an array of numbers in libraries. Since it's more difficult to write a library that supports multiple storage formats (even ignoring efficiency), most libraries don't, and the user is forced to write code to translate between them.

    24. Re:No multi-dimensional arrays by shutdown+-p+now · · Score: 1

      It's called "variable-length arrays", or VLA for short. Google for C99 VLA and you'll see plenty of references.

      The definite reference is, of course, ISO C99 standard. There's no single section covering them there, as it's a rather far-reaching language change (for example, sizeof on a VLA operand is non-const). You'll just have to read through the spec. IIRC, the ANSI rationale, published alongside the spec, has references to all relevant paragraphs.

      For a specific example:

      int transpose(int n, float m[n][n]) {
        for (int i = 0; i < n-1; ++i) {
          for (int j = i+1; j < n; ++j) {
            float x = m[i][j];
            m[i][j] = m[j][i];
            m[j][i] = x;
          }
        }
      }
       
      int main() {
        int n;
        scanf("%d", &n);
       
        float m[n][n];
      ...
        transpose(n, m);
      }

      As you can see, the allocation is properly dynamic, based on user input. There are two catches: you have to pass the array size explicitly as a separate argument for it to be available inside the function, and there are no static type checking at that point (i.e. if I pass some random value instead of n in above code, it will compile successfully, and read/write outside of array bounds at runtime).

      The other catch is that implementation is rather flaky. GCC doesn't yet claim full C99 compliance, and VLAs in particular have been broken historically. I've heard that they do work fine these days, but it may be too little, too late...

    25. Re:No multi-dimensional arrays by camperdave · · Score: 1

      But again, the program shouldn't care how it's laid out. The program won't be able to tell if it's in RAM, or on disk even, so whether it's laid out lengthwise, widthwise, or gripwise is irrelevant. If it does matter, then perhaps an array isn't the data structure you should be using.

      --
      When our name is on the back of your car, we're behind you all the way!
    26. Re:No multi-dimensional arrays by RAMMS+EIN · · Score: 1

      Or rather, the problem is that there is support for arrays, but it's not generalized so that you can have multi-dimensional arrays or any other kind of collection with the same interface. For example, you may implement sparse arrays, and have elt(xs, 3) return the element at position 3 in xs. But you won't be able to use that with anything that expects arrays, because it will acces your elements as xs[3]. If, by contrast, elt had been a generic function, with an implementation provided for regular arrays, you could implement elt for whatever data type you came up with and have it work with everything that works on arrays.

      --
      Please correct me if I got my facts wrong.
    27. Re:No multi-dimensional arrays by drewm1980 · · Score: 1

      This is all about having standardized container class for data stored in multi-dimensional arrays. Most users, most of the time, will use whatever the default storage is. However, users writing high performance numerical algorithms have a legitimate need to be able to manually manage the layout of their data in memory so that they can optimize their data access pattern. There is no avoiding this, and if golang follows it's current trajectory, array formats will be just as much of a fragmented mess as they are in the C/C++ world.

    28. Re:No multi-dimensional arrays by Anonymous Coward · · Score: 0

      You should not care about cache usage, algorithmic complexity, memory usage or memory locality. If you do, you're thinking about stuff I know nothing about. The whole point of providing array variable types is for me not to have to understand what's really going on. How the compiler translates array(7,5,2) to a value is strictly an issue for people that cares about performance.

      There, I fixed it for you.

    29. Re:No multi-dimensional arrays by drewm1980 · · Score: 1

      Here's another example... They currently have an image reading library that has its own image type.

      It doesn't support slicing out a sub-array to get a sub-image, i.e. im[10:20, 10:20, :]. It doesn't support slicing out the channel you want, i.e. im[:,:,0] for Red channel. It doesn't support even basic math operations, i.e. adding together two images. All of this is stuff that should get implemented in a very general, standardized way. The same will go for multi-channel audio data. If someone core to the project doesn't act quickly, it will be increasingly difficult to even achieve uniformity within the Go standard library.

    30. Re:No multi-dimensional arrays by camperdave · · Score: 1

      If the algorithm depends on the layout of the data, then it should be written in a program generated data structure, not in a compiler generated data structure, simple as that. Any program making use of implementation details "beneath" the specifications of the language are incorrectly written. An array is an array regardless of which way it is stored.

      --
      When our name is on the back of your car, we're behind you all the way!
    31. Re:No multi-dimensional arrays by drewm1980 · · Score: 1

      Are you a programmer? Intelligently choosing the layout of your data is a significant part of writing high performance code. It is not some exotic hack. It is supported in all of the languages one uses for writing high performance code (C, C++, Fortran, CUDA, OpenCL, etc.).

      None of those languages have a ~standard strided array type, and library writers have produced a huge mess of incompatible matrix types as a result. Golang is headed down the same path.

  20. Another stagnant programming language by lwriemen · · Score: 1

    The programming community has been stuck at 3GL for way too long.

    1. Re:Another stagnant programming language by hey! · · Score: 1

      Because we've reached the point where programming per se is not the limiting factor in programmer.

      Oh, some languages are nicer to program in than others. I'll take Python over Java, for example, if the criterion is just how fun and easy it is to write programs. But I'll often choose Java in many instances because it has libraries and frameworks that make my job easier.

      And there's the rub. It's dealing with frameworks and APIs and libraries that kills you. The Java ecosystem is like a huge, booby-trapped treasure chest.

      When I started programming professionally back in the 1980s it was a lot more fun, because there wasn't much in the way of libraries. Programming was mostly thinking about problems. Now it's mostly thinking about APIs.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    2. Re:Another stagnant programming language by shutdown+-p+now · · Score: 1

      The programming community has been stuck at 3GL for way too long.

      When Java and C++, of all things, are getting closures, you know things are moving. Slowly as it may seem.

    3. Re:Another stagnant programming language by Unequivocal · · Score: 1

      Well said. Keeping up with API's and libraries that are available in any given language is a task in itself. It's hard to complain, but sometimes I feel like I can write a solution quicker than finding, evaluating and then learning a new library.

      One problem I've had is that a lot of new libraries are actually pretty poor implementations, so you can't just grab one that has the right functionality, you actually have to make sure that it works efficiently (and that when it doesn't, it's actually the library and not one's poor understanding of it). All this takes time, and has the rude backdoor of making your time investment a total loss if it turns out the lib has a fundamental defect - which has happened to me a number of times.

    4. Re:Another stagnant programming language by lwriemen · · Score: 1

      > Because we've reached the point where programming per se is not the limiting factor in programmer.

      I disagree. 3GL doesn't provide a sufficient level of abstraction, so the programmer wastes a lot of time mixing the solution to the problem with the implementation of the solution in 3GL. This puts a cap on productivity, communication, and testability. We've been abstracted away from 2GL (i.e., assembly) for a long time. It's now time to be abstracted away from 3GL.

  21. This article asks the tough questions by Sloppy · · Score: 2, Funny

    "Mr. Burns, your campaign has the momentum of a runaway freight train. What makes you so popular?"

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  22. Re:Go fuck yourself by piranha(jpl) · · Score: 1

    Gee, what do you need that can't be handled with a Turing machine and a lot of tape?

  23. Or... by raftpeople · · Score: 1

    "Go Ogle Go"

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

      googl' EGO

  24. Whitespace by CaptnMArk · · Score: 2, Interesting

    Too bad they added significant whitespace. I'd support a semicolon-less syntax, but not at the cost of significant whitespace.
    Perhaps an alternate function call syntax or using {}instead of () in expressions would work.

    1. Re:Whitespace by Abcd1234 · · Score: 2, Insightful

      Quick being an obnoxious, pedantic jackass (though, kudos for once again demonstrating the Greater Internet Fuckwad Theory).

      It's clear the OP meant "significant indentation", and it disappeared back in the days of Fortran until Python popped up on the scene and everyone suddenly decided it was a good idea again.

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

      I can't speak for AC above, but I read his/her point to be that whitespace is always significant. The whitespace fallacy is one of 'I learned about "{" and not " ", and I can't change.'

      Sometimes change is good.

    3. Re:Whitespace by Abcd1234 · · Score: 1

      I can't speak for AC above, but I read his/her point to be that whitespace is always significant.

      Correct, and it was a non-point, since it's blatantly obvious to anyone versed in this issue that, when one complains about "signficant whitespace", what they're referring to is semantically relevant indentation.

      Put another way, the reasoning that significant indentation is fine because we need whitespace to separate tokens is idiotic. By that logic it's perfectly reasonable to have languages treat "x+y", "x + y", and "x____+____y" differently (I tried to insert a bunch of extra spaces there, but alas, in HTML, multiple inter-word whitespace isn't significant when formatting... how ironic).

      The whitespace fallacy is one of 'I learned about "{" and not " ", and I can't change.'

      It's not a "fallacy". But nice use of weasel words, there.

      The "significant whitespace" issue is that semantically significant indentation is annoying at best, and can actually introduce errors in certain conditions at worst, as the lexical scope of a piece of code is now determined by a bunch of invisible characters.

      People who don't understand this issue are the same idiots who write this:

      if (condition)
          action

      Instead of this:

      if (condition) {
          action
      }

      As they don't seem to fully comprehend that explicit lexical scoping is important for eliminating certain classes of errors during software maintenance.

    4. Re:Whitespace by TheCouchPotatoFamine · · Score: 1

      I love significant whitespace because it stops people with your mindset from making up their own spacing regime for every program they write. see my signature.

      --
      CS majors know the time/space tradeoff, but they never get taught the 3rd, crucial, tradeoff of the set: comprehension!
    5. Re:Whitespace by Unequivocal · · Score: 1

      Well said! Too bad the GIFT-proof posted anonymously - probably why he did too.

      I really want to like python but every time I sit down with it and realize indents are significant it makes me want to cry and I give up.

      Simple pseudo-example:

      func foo
          do some stuff
          here
                in a loop
      print debug stuff here so it sticks out and I won't forget to remove it
                more loop
          end loop
      end func

      A language that prohibits that is unworkable for me.

    6. Re:Whitespace by TheSync · · Score: 1

      I was the biggest significant whitespace disbeliever until I had to write a lot of Python. I'm sold now!!! It is awesome.

    7. Re:Whitespace by JesseMcDonald · · Score: 1

      It's clear the OP meant "significant indentation"...

      Indentation is only part of it. C-style languages (including Java, I believe) make no distinction between varying amounts or types of whitespace anywhere in the syntax, treating it purely as a token separator. Significantly, there are no token emitted to record the presence of whitespace, much less individual spaces, tabs, or newlines, separately from comments or other boundaries (i.e. operators).

      The principle behind this lack of distinction, which I happen to agree with wholeheartedly, is that the meaning of a program should not be influenced by characters the programmer cannot see. Of course, one could employ an editor which substitutes visible glyphs for whitespace, but this amounts to changing the character set to suit the language. It seems better to my mind to simply use a sane syntax in the first place.

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
    8. Re:Whitespace by Abcd1234 · · Score: 1

      Yeah, my primary complaint is that because Python has no marker to indicate block closure, no editor can actually auto-indent Python properly, which leaves the programmer stuck with idiotic highlight-and-shift operations to get things at the right level. This makes refactoring a royal pain in the ass, IME.

      Of course, this problem could be easily fixed if python introduced one, single, optional keyword: end. Hell, keep the significant whitespace! Be my guest! But ffs, is it so very difficult to add an 'end' keyword, so that our editors can actually help us manage our code?

    9. Re:Whitespace by Anonymous Coward · · Score: 0

      I'm with you. I stopped using it when that came up. When I criticized it I was flatly told I was wrong by developers, based on incorrect assumptions. When I took their words out of my mouth and explained myself better I was just ignored. Thus ended my interest in the issue, and the language.

      At this point Erlang is simpler to write and maintain. Without callback support in the FFI it's really no better as a systems language.

    10. Re:Whitespace by Unequivocal · · Score: 1

      Yeah - and open-end function blocks are so deeply against-the-grain (for me) that I just have not gotten over them. I probably sound like a grey haired antique, but I write ruby code all the time and love it!

      Your point about shift-indenting to refactor is a good one. Plus I meet so many junior progs who foul up (just a bit) with indenting. I'll put it right when I edit the code, but I can't imagine what would happen if indents were significant on a production enterprise app. Maybe it'd be a good thing as these coders' code wouldn't work at all in python? Hmm.

      I'm sad to have python just pass me by -- ruby does a lot to permit different coding styles to co-exist side-by-side, and as you point out, a few small changes for python would permit the same..

    11. Re:Whitespace by Anonymous Coward · · Score: 0

      Well said! Too bad the GIFT-proof posted anonymously - probably why he did too.

      I really want to like python but every time I sit down with it and realize indents are significant it makes me want to cry and I give up.

      Simple pseudo-example:

      func foo

          do some stuff

          here

                in a loop
                print debug stuff
      #here so it sticks out and I won't forget to remove it

                more loop

          end loop
      end func

      A language that prohibits that is unworkable for me.

      Problem solved

    12. Re:Whitespace by Anonymous Coward · · Score: 0

      Hmm...

      the meaning of a program should not be influenced by characters the programmer cannot see.

      Using this logic (and assuming you cannot see spaces - I can - spacing is VERY obvious to me), this implies that you believe that a program should be entirely parse-able with all spacing and line breaks removed.

      Of course, this is silly. Some spacing is syntactically significant in EVERY language. This is certainly true in literals, which shoots holes in your Utopian ideal.

      prompt="please enter your name"

      In many languages, a space signifies an end of token. Simple JavaScript example:

      var x=1

      is NOT the same as:

      varx=1

      Most people do not understand the issue, and spout off as the original post did, with a disdain for "significant whitespace", when they really haven't thought through the issue.

    13. Re:Whitespace by Just+Some+Guy · · Score: 1

      no editor can actually auto-indent Python properly

      O RLY?

      --
      Dewey, what part of this looks like authorities should be involved?
    14. Re:Whitespace by Krahar · · Score: 1

      Junior coders only don't indent because they think it's stupid, unless we are talking people who only learned to program a few weeks ago. Python will give them a reason to do the sane thing before they realize through experience that indenting actually is not too much trouble anyway.

    15. Re:Whitespace by Abcd1234 · · Score: 1

      Yes, really. It is *impossible* for PythonMode to, without fail, *correctly* auto-indent a piece of Python code. For example, given this:

      if expression:
          do something
      do something else

      It is impossible for the editor to determine whether or not I wanted that second expression executed within the context of the if block, barring my delimiting the block explicitly, which, unfortunately, I can't do in Python. Of course, this is a trivial example, but the minute you start moving blocks of code around, particularly between various lexical levels, it can quickly become quite tedious ensuring that the code is indented properly, as the editor can't do it for me.

      For example, suppose I have this:

      if expression:
          do something
          do another thing

      if another expr:
          do one more thing

      And I then move the code as follows:

      if expression:
          do something
      if another expr:
          do one more thing
          do another thing

      Do you know what I meant to do? Did I intend to move the second if within the first, or did I intend for that second expression in the first if statement to execute in the second if statement? Answer: you have no idea, because the lack of bracing makes it impossible to determine where the blocks are supposed to start and end.

      Now, maybe you're a magical experienced programmer who never has to refactor anything (your low UID would suggest you aren't a newb, though your comment seems to suggest otherwise). But the rest of us cut/copy/paste blocks of code pretty damn frequently. And Python's very nature cripples an editor's ability to help the programmer get such operations right.

    16. Re:Whitespace by Abcd1234 · · Score: 1

      Junior coders only don't indent because they think it's stupid

      Uh, I think you mean programming neophytes.

      I have *never* met a "junior coder", ie a new employee fresh out of school, who didn't understand the value of indentation. And if I *did* come across such an individual, a) they would've never gotten past our interview cycle, and b) if they somehow squeaked through, they'd be terminated immediately, as it's clear they are unable to perform the job for which they've been hired.

      For the neophytes, they're write ugly code for a while, get bad grades for style, and then gradually improve, and eventually learn the value of it. But that's why they go to school in the first place.

    17. Re:Whitespace by CaptnMArk · · Score: 1

      For me, the acceptable solution to Python is to make the 'pass' keyword mandatory at the end of block.

      Emacs can auto indent based on this:

          if True:
              a
              b
              pass
          c

       

    18. Re:Whitespace by Abcd1234 · · Score: 1

      Interesting! That's definitely better. Pity you can't put the 'pass' at the same level of the 'if', so that the block is more clearly delimited. But at least this is an improvement (I wonder if Vim can also use 'pass' as an auto-indent hint...).

    19. Re:Whitespace by CaptnMArk · · Score: 1

      My problem with both go and javascript is the problem called 'implicit semicolon insertion'.

    20. Re:Whitespace by Anonymous Coward · · Score: 0

      Actually, you CAN add extra crap to your python program and achieve exactly what you feel is important - tipping off your editor.


      if expression:
              do something
              #}
      do something else

      In fact, you can easily modify an editor to handle your second example: If you drop code into an if block, adjust the the code indentation accordingly.

      And you can even post-process your source file so that they meet the standards that most Python programmers are accustomed to. And pre-process files so that when you open the Python file that someone else wrote, it adds the magic cruft.

      But it's just a reaaaaaaaly stupid idea. It most certainly can be done, though.

    21. Re:Whitespace by Just+Some+Guy · · Score: 1

      Do you know what I meant to do? Did I intend to move the second if within the first, or did I intend for that second expression in the first if statement to execute in the second if statement? Answer: you have no idea, because the lack of bracing makes it impossible to determine where the blocks are supposed to start and end.

      That's a perfect example of a solid theoretical concern that never, ever comes up in practice. I wish I had a dollar for every time I've heard a detailed explanation of a problem that would be very inconvenient - if it ever existed.

      In reality, everyone I've ever turned on to Python complained for the first day, silently considered on the second day, and declared it the One True Way on the third day. Again, these things seem like they would be problems, but they never turn out to be.

      --
      Dewey, what part of this looks like authorities should be involved?
    22. Re:Whitespace by shutdown+-p+now · · Score: 1

      The "significant whitespace" issue is that semantically significant indentation is annoying at best, and can actually introduce errors in certain conditions at worst, as the lexical scope of a piece of code is now determined by a bunch of invisible characters.

      The gaps are quite visible, however, even if they have no "black" pixels in them.

      And the "annoying" part is quite subjective, of course. I never had trouble with it in any of the languages where I had to deal with it (Python, Haskell, F#) - quite the opposite, in fact.

    23. Re:Whitespace by Abcd1234 · · Score: 1

      That's a perfect example of a solid theoretical concern that never, ever comes up in practice.

      Yes, people never move code between lexical levels. oO

      And by the way, yes, I've come across this in real-life. Yes, it's really fucking annoying. And yes, it turned me off Python as a primary scripting language (given the plethora of alternatives, there's no reason to put up with an annoyance like that when I can move to a language that better suits my way of working).

    24. Re:Whitespace by JesseMcDonald · · Score: 1

      Using this logic (and assuming you cannot see spaces - I can - spacing is VERY obvious to me), this implies that you believe that a program should be entirely parse-able with all spacing and line breaks removed.

      Not at all. Clearly it is possible to see whether whitespace is present (assuming "whitespace" includes only space, tabs, and newlines, and not e.g. backspaces). However, one frequently cannot visually distinguish between a space and a tab, or even a space or tab and a newline in the presence of line-wrapping—to say nothing of mixed tabs and spaces, and editors with varying tabstops. It would be more accurate to say that I believe all programs should parse identically should any of their unquoted whitespace be replaced by other whitespace, an inline comment, or any other token-separator applicable to the language.

      The use of whitespace as a token separator is not an issue, as would have been perfectly obvious if you had bothered to actually read my earlier comment. The problem lies entirely in assigning syntactic value to specific amounts or kinds of whitespace, such that programs which appear identical can nonetheless manifest distinct behavior.

      Some spacing is syntactically significant in EVERY language. This is certainly true in literals...

      Ah, but spaces in strings are not syntactically significant. The parser treats the string literal as a single, atomic token, including any internal spaces; changes in the number or types of internal spaces have no effect whatsoever on the shape of the parse tree.

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
    25. Re:Whitespace by Abcd1234 · · Score: 1

      And the "annoying" part is quite subjective, of course. I never had trouble with it in any of the languages where I had to deal with it (Python, Haskell, F#) - quite the opposite, in fact.

      Yes, but lets take Haskell as an example. In Haskell, you don't nest your code that deep. At most you'll have maybe one let or where block, and if you need to go deeper, you'll start splitting things out into multiple functions. It's simply the nature of the way the code is written and organized. As such, you're never indenting very deep.

      But Python inherits directly from Algol and similar nested-block languages, where multiple lexical levels, up to three, four, or more levels deep (thanks to classes, functions, loops, conditionals, lambdas, etc), are extremely common. In that case, suddenly that whitespace becomes very significant indeed, and far more tedious to deal with.

      So yeah, for Haskell or F# I don't mind at all, because the very nature of the language means deep indentation just doesn't happen that often, and the language itself actively discourages it by making it really really annoying. :) But for imperative, block-oriented languages, I'm sorry, there's just no good reason for semantically significant indentation (decent programmers format their own code and don't need the language enforcing it for them), and solid reasons against it.

    26. Re:Whitespace by Anonymous Coward · · Score: 0

      Ah, but spaces in strings are not syntactically significant. The parser treats the string literal as a single, atomic token, including any internal spaces; changes in the number or types of internal spaces have no effect whatsoever on the shape of the parse tree.

      Once again: "this string" is NOT the same as "thisstring" (and also not the same as a string with two spaces in it). So spaces are significant in single, atomic tokens - in all common language parsers.

    27. Re:Whitespace by Anonymous Coward · · Score: 0

      Are you being intentionally obtuse? The grammatical structure of the program is identical regardless of the particular value of some string literal.

      - T

    28. Re:Whitespace by Anonymous Coward · · Score: 0

      There is a HUGE difference between syntactically insignificant and significance. You don't seem to get it.


      if (a == "this string")

      Extra spaces immediately after the word "if" are syntactically insignificant. The program runs the same way no matter how many spaces are there.

      Spaces in the string literal are significant.

      Get it?

      I didn't think so. Go back to school. Maybe when you take a programming class or a compiler design class, you'll understand the terminology.

    29. Re:Whitespace by Anonymous Coward · · Score: 0

      While Jesse McDonald did write "not syntactically significant", I wrote "grammatical structure of the program is identical", and from the context of Jesse's post and the greater thread, particularly where he mentions tokens, it is clear he means whitespace which has semantics beyond separators. That should have been perfectly clear to you upon reading this from Jesse:

      It would be more accurate to say that I believe all programs should parse identically should any of their unquoted whitespace be replaced by other whitespace, an inline comment, or any other token-separator applicable to the language.

      Get it?

      I didn't think so. Go back to school. Maybe when you take a reading comprehension or remedial English class, you'll understand plain language.

      - T

    30. Re:Whitespace by Krahar · · Score: 1

      You are right. I haven't met people with a degree in Computer Science who do not indent their code either. I was responding to the line "Plus I meet so many junior progs who foul up (just a bit) with indenting." by the previous poster, and my point was that those people aren't actually unable to indent perfectly, they just don't care *that* much about it. With Python they will more quickly come to care, so that should be a good point for Python as opposed to something to worry about.

  25. Eh? by thePowerOfGrayskull · · Score: 5, Insightful

    angry tapir writes with news that Google Go seems to be cutting a wide swath through the programming community

    He may write that, but that's not what the article says:

    While Go is still a work in progress, some developers are so encouraged by its features and design that they have started using it to build noncritical application

    What experiences, good or bad, have you had with Google Go, and how likely is it to really take over?

    Um, take over what? Is this a serious question? The answer here is "never" -- for the same reason that no single language will ever "take over" the software development landscape. There is no one tool fit for every job.

    1. Re:Eh? by Auroch · · Score: 2

      Um, take over what? Is this a serious question? The answer here is "never" -- for the same reason that no single language will ever "take over" the software development landscape. There is no one tool fit for every job.

      I'd be inclined to agree with you, except I once felt the same way about search engines and chinese toys.

      --
      Quartz Extreme and Core Image. Are there any other real reasons to spend all that money on generic hardware?
    2. Re:Eh? by spinkham · · Score: 0

      There is still no one search engine.. Google search is obviously the largest for text based web page searches, but my websites still see ~5% of search hits from Live and Yahoo.

      More to the point, even in the Google family you have google search, google image search, google video search, google news search, etc.. There isn't one search engine to rule them all, even if there is one commercial in the space. In the future we might see google GO scripting edition, google GO embedded, etc, but there are more niches then can be served by one language effectively.

      I use C, Bash, Ruby, Lua, and PHP for wildly different things. While I'd like to have one language to cover all that, it's not likely in my lifetime anyway.

      --
      Blessed are the pessimists, for they have made backups.
    3. Re:Eh? by Anonymous Coward · · Score: 1

      There is no one tool fit for every job.

      Sure there is. It's a computer. Everything else is implementation details.

    4. Re:Eh? by thePowerOfGrayskull · · Score: 1

      There is no one tool fit for every job.

      Sure there is. It's a computer. Everything else is implementation details.

      There is no one tool fit for every job.

      Come to think of it, I spoke too hastily. Obviously duct tape and mechanics wire (if considered as a single tool) are more than adequate for any task.

  26. What? by Anonymous Coward · · Score: 0

    Bing Is Not Good?

  27. Re:Go fuck yourself by dskoll · · Score: 5, Funny

    I'll let you know if/when my program halts...

  28. Debugger by Lemming+Mark · · Score: 1

    I seem to recall Rob Pike mentioning in his techtalk that a good name for the debugger would be "Ogle"

  29. Re:Go fuck yourself by Anonymous Coward · · Score: 0

    The stopping problem.

  30. What you're missing is ... by Auroch · · Score: 3, Interesting

    But there's a lot of prior art here, and many languages have great CSP-style channel libraries written for them that offer the same great flavor of relatively safe message passing and alternation between sets of channels:

    What Go has done is standardized this implementation detail into the language specification

    The two things I've seen about Go concurrency that are regarded as special are M:N/"green" threads and CSP-style channels.

    I'll agree with your points, but many vehicles have wheels and motors and there is still a clear preference (or at least avoidance) of certain brands and models. Go brings things together well, and is a 'better' option because it does integrate so much prior art (as you have said) into a great package.

    --
    Quartz Extreme and Core Image. Are there any other real reasons to spend all that money on generic hardware?
  31. nice try, google by Sterculius · · Score: 1

    I looked into it. It is still basically unusable for any real-world app, as far as I can tell. I would say that its chances of taking over are probably about the same as Sarah Palin being elected President, or finding sentient life on Mars.

  32. Go! by jalefkowit · · Score: 2, Funny

    Go? That's the language that Toyota uses to write their firmware, right?

    1. Re:Go! by iliketrash · · Score: 1

      C'mon--somebody mod this up to "funny."

  33. Line Numbers? by camperdave · · Score: 1

    What's with the line numbers? I thought we buried those in the same unmarked grave as disco and rotary dial phones.

    --
    When our name is on the back of your car, we're behind you all the way!
    1. Re:Line Numbers? by al.caughey · · Score: 2, Funny

      What's with the line numbers? I thought we buried those in the same unmarked grave as disco and rotary dial phones.

      Those line numbers, they're

      Ah ah ah ah stayin' alive stayin' alive

      (apologies to the Brothers Gibb)

  34. Boycott Google by nawitus · · Score: 0, Troll

    Google makes very good products, but they don't take privacy seriously at all. Even if they did, I'm not going to use any more products by Google (and I'm soon transfering out of Gmail). The reason is that Google is just growing to be too big, it's not even funny anymore. Soon they know everything and have huge corporate power. And it's a corporation after all. Their main goal is profit, not acting morally.

    1. Re:Boycott Google by KazW · · Score: 1

      Google makes very good products, but they don't take privacy seriously at all. Even if they did, I'm not going to use any more products by Google (and I'm soon transfering out of Gmail). The reason is that Google is just growing to be too big, it's not even funny anymore. Soon they know everything and have huge corporate power. And it's a corporation after all. Their main goal is profit, not acting morally.

      Did your crystal ball tell you this? Big Corporation != Evil Corporation.The correct sentiment to have would be that you hope that legislation regarding consumer privacy will improve. If small company X writes a program, makes a web service or whatever that is found to be useful, then they will naturally get bigger because people will use said service. By your logic, even if company X never changed the source code(aside to accommodate for scaling from increased use), then you'd still boycott them because they grew to be a big corporation. I'm not even going to discuss morals on this issue, because you're just assuming that everyone has the same morals.

      Your "logic" isn't even logic at all, it's self inflicted stupidity.

      --
      Geeks don't grock information, they grep it.
    2. Re:Boycott Google by nawitus · · Score: 1

      Corporations are naturally somewhat evil, because their goal is to make profit, not do anything good. I didn't imply you should boycott a large company if it has single product, but google has 100+ products all with linked private details. Your "logic" isn't even logic at all, it's self inflicted stupidity.

  35. No genericity by shutdown+-p+now · · Score: 1

    First of all, a statically typed language that claims to be high-level, in 2010, with no form of type genericity? Seriously?

    how likely is it to really take over?

    Extremely unlikely. So far all I see is "yet another exotic language", of which there are thousands. A new language needs some serious corporate backing (not just "uh, we released this thing, though it's not kinda for production...") and a major marketing push to get it adopted. For an example of how this works (or rather doesn't), look at the much more innovative and mature Scala, which still struggles for adoption. Ditto for D.

  36. Nirvana Quest by strangeattraction · · Score: 5, Funny

    I was one of those developers chafing at the bid to get my hands on Go. Once I started I never looked backed. I was able to write my own version of HelloWorld in half (that is 1/2) the time it took me to do it in C and it was bug Free with no memory leaks. I think that pretty says it all. If you're looking for a programming language that solves all your coding problems look no further. Now that I have abandoned Java my manually linking programs with xml skills have declined sharply. Similarly after abandoning Lisp my ability to match parenthesis's has almost vanished. No matter, with Go I perceive the universe in my belly button.

    1. Re:Nirvana Quest by shutdown+-p+now · · Score: 1

      If you're looking for a programming language that solves all your coding problems look no further. Now that I have abandoned Java my manually linking programs with xml skills have declined sharply. Similarly after abandoning Lisp my ability to match parenthesis's has almost vanished. No matter, with Go I perceive the universe in my belly button.

      There is still place to ascend further, my friend. May I introduce you to the ultimate pinnacle of programming language design: the Nil programming language.

    2. Re:Nirvana Quest by LMacG · · Score: 1

      Yeah, and I'm champing at the bit to correct another mangled idiom. And don't even get me started on forming plurals.

      --
      Slightly disreputable, albeit gregarious
  37. Go Too, considered harmful by Anonymous Coward · · Score: 0

    FTFY

  38. You'd Think... by not+already+in+use · · Score: 1

    ...a search engine giant might name it something a lil more search engine friendly.

    --
    Similes are like metaphors
    1. Re:You'd Think... by Anonymous Coward · · Score: 0

      You think that's not search-engine friendly? Just wait for them to release a GPS app, called "Where Am I?"

    2. Re:You'd Think... by Homburg · · Score: 1

      They're a search engine giant - they can just change the search engine to make the name search-engine friendly.

  39. Re:Go fuck yourself by An+ominous+Cow+art · · Score: 1

    Oops, mismoderated this, sorry.

  40. Heil Grammatik! by Anonymous Coward · · Score: 0

    Could someone please fix the "it's" in "[...] in just a short time since it's early, experimental release."?

  41. I'm waiting for Goo... by theMAGE · · Score: 1

    or whatever they call Go++.

  42. Go? by BoppreH · · Score: 1

    Did you mean Issue 9?

    1. Re:Go? by AnderMoney · · Score: 1

      Yeah, I am going to continue to ignore this language on principle until they change it to its proper name.

  43. same ... by Lazy+Jones · · Score: 1

    ... paid marketing again, it's really sad. (OK I lied, I somehow found my way to the Go page once in those 4 months and found nothing worthwhile)

    --
    "I love my job, but I hate talking to people like you" (Freddie Mercury)
  44. FAIL. Do not pass Go do not collect 200 dollars. by Anonymous Coward · · Score: 0

    Recently I downloaded Go (redhat 4) but as far as I could get was a low level error when I tried to run
    my first hello world program. I noticed someone else had reported the exact same error to their newsgroup
    several weeks prior - and not one person had responded with help. I tried to diagnose the problem my self
    as I really,really wanted to take a look at this language. But alas, to me, it just wasn't worth the effort -
    There are so many other new languages to explore that *do* work "out of the box" (scala, clojure, erlang, ....)
    that I just concluded Go is not ready for prime time. So I guess if Google offered me a dream job working
    with Ken Thompson and Rob Pike to work on Go I would be sufficiently motivated to give another try. But
    at this point I will wait for the first signs of a Go based "Killer App" to look at it again.

  45. mod parent up by argent · · Score: 1

    mod parent up "nice bitchslap". :)

  46. What's wrong with Ruby? by cabazorro · · Score: 0, Troll

    10.times do p "Ruby is it\n" end

    --
    - these are not the droids you are looking for -
  47. You've encountered Go developers? by Anonymous Coward · · Score: 1, Funny

    Were they riding unicorns?

    1. Re:You've encountered Go developers? by I+confirm+I'm+not+a · · Score: 1

      Pink unicorns, no less!

      I used to have a couple of colleagues who would pick up every language going - particularly languages of the Erlang, Haskell, Scala, Go variety. They'd played with Go (they weren't developing the language itself) and quite liked it.

      --
      This is where the serious fun begins.
  48. Shifting Paradigms by ThatsNotPudding · · Score: 1

    AdSense monitors all code comments.

  49. That's already taken too! by edalytical · · Score: 1

    Goo

    --
    Win a signed Stephen Carpenter ESP Guitar from the Deftones: http://def-tag.com/?r=0008781
  50. Re:Go fuck yourself by johnjaydk · · Score: 1

    You forgot LISP. THEN the rant would make sense.

    --
    TCAP-Abort
  51. Re:Go fuck yourself by Unoriginal_Nickname · · Score: 0, Flamebait

    You're joking, but what you said is actually a problem. Go suffers from the same design mentality behind UNIX and C. Whether you love C or hate C, we don't need a new clone that solves none of the problems and introduces no new ideas.

    There are lots of people who have designed and implemented a C-like programming language. I'm one of them. The only reason anybody even cares about Go is because of Ken's name, which is pretty surprising because his insane, short-sighted design decisions are responsible for so many software engineering problems it isn't even funny.

  52. The anti-standard standard by Nerdposeur · · Score: 1

    The notion that anyone can arbitrarily impose a "correct" way of doing something simply because they have power, influence and authority went out with the Victorians. Those of us living in the Age of Empricism require objective, measureable effects to distinguish the (usually mulitple) correct way(s) of doing something from the multitude of incorrect ways.

    So imposing standards is incorrect, then?

    Got any data to show that it's harmful?

  53. Re:Go fuck yourself by amplt1337 · · Score: 1

    XMLHttpRequest?

    --
    Freedom isn't free; its price is the well-being of others.
  54. Re:Go fuck yourself by Anonymous Coward · · Score: 0

    1) Websites. Duh.
    2) Modern languages are becoming more focused on making programming easier. Sure, I could write a graphics engine in C or assembly, but it's so much easier and faster using a newer language like C#, or a newer IDE like Visual Studio (Man, how did anybody EVER program without being able to right-click go-to-definition or intellisense?). So it's not "What can't be handled by X" but more of "What can do the same thing but is easier to program than X."
    3) How about portability, since you didn't put Java on the list? And yes, I know Java isn't 100% portable depending on what you are doing or if you are running certain dependencies, but which of the languages you listed is more portable than Java?

    We constantly upgrade our tech to make things go faster and work easier. Honestly, you don't think that'll EVER happen with programming languages?

  55. Let me just ask.... by Anonymous Coward · · Score: 0

    Who the fuck is John Gordon?

  56. Re:Go fuck yourself by jketch · · Score: 1

    Oops, I messed up on moderating this too. That's what I get for not browsing at -1.

  57. Re:Go fuck yourself by cmiller173 · · Score: 1

    The point I was trying to make to the OP was that his attitude has been around probably since the second computer language was created.

    Ironically, I do program in Java with a modern IDE.

  58. Go innovates programming practice, not theory by waTR · · Score: 1

    "Go is not meant to innovate programming theory. It's meant to innovate programming practice."

    I have done a lot of reading about Golang and have followed the community since its launch. The people involved are great, and the language is extremely straight-forward. I would put it up against any other language as a first-learned programming language. Golang is a "patterns" based language -- like javascript. This makes it EXTREMELY flexible. It is, however, very different from non-pattern based languages, such as C/C++, ruby, python, etc. Perhaps one of the reasons I have great appreciation for it is because I fell in love with javascript (the good parts), after watching the videos at: http://stackoverflow.com/questions/110371/what-javascript-tutorials-on-the-web-would-you-recommend/111177#111177

    I see a lot of potential for this language. I have recently been really impressed by javascript, as a completely different approach to programming thanks to closures (I'm coming from C/C++ & Python). I think golang is everything that made javascript a huge leap forward in programming methods back in the 90s, nothing that makes it bad, and add a great multi-threading layer on top of that.

    While the libraries are still lacking, that says nothing about the language itself. Libraries come over time. Though, I must say that the base libraries that the language was launched with provide enough for people to do some great stuff.

    --
    Huh? [devShell.org]
    1. Re:Go innovates programming practice, not theory by shutdown+-p+now · · Score: 1

      I have recently been really impressed by javascript, as a completely different approach to programming thanks to closures (I'm coming from C/C++ & Python) ... I think golang is everything that made javascript a huge leap forward in programming methods back in the 90s, nothing that makes it bad, and add a great multi-threading layer on top of that.

      You do realize that Python has closures, right? Nor JavaScript was the first major language to introduce them...

      Libraries come over time.

      Actually, historical experience shows that they do not. Indeed, that is the usual stumbling block for most new programming languages out there - the other major one being the lack of tooling support (IDEs, debuggers, static code analyzers etc).

      The fact that libraries do not magically get written once you publish your new and cool language to the world is precisely why targeting JVM and CLR is so popular lately - so that you can piggy-back on top of readily available, large and mature - if somewhat outdated in terms of language features they use - libraries and frameworks.

    2. Re:Go innovates programming practice, not theory by Anonymous Coward · · Score: 0

      I have recently been really impressed by javascript, as a completely different approach to programming thanks to closures

      You do know that closures == memory leaks for Jscript on IE?

  59. Re:Go fuck yourself by ajs · · Score: 1

    30 years ago there were enough programming languages "already". What do you need that can't be handled by COBOL, FORTRAN, Pascal, Ada, ANSI C and assembly language?

    You kids and your Pascal and COBOL.

    Get off my lawn!

    *returns to toggling in bootloader code for reading the OS off paper tape*

  60. Can hello world be email hello world by Twillerror · · Score: 1

    I would love it if any new language tutorial didn't just print hello world to the console.

    Who the hell needs to do that anymore.

    Any language should be able to send an email and vaildate an email out of the box. Otherwise I'll just use Python...etc.

  61. My two-word counter-argument: by ClosedSource · · Score: 1

    type erasure.

    1. Re:My two-word counter-argument: by shutdown+-p+now · · Score: 1

      Yes, definitely. Also wildcards. Still, I think the total would be in C# favor.

  62. Re:Go fuck yourself by Anonymous Coward · · Score: 0

    I can write a Go compiler in COBOL, a COBOL compiler in FORTRAN, a Fortran compiler in Pascal, a Pascal compiler in Ada, an Ada compiler in ANSI C, and an ANSI C compiler in assembly language. So there's nothing I need that can't be handled in ... oh, wait, I can write an assembler in a Turing machine. So there's nothing I need that can't be handled by a Turing machine. It's Turing complete! (tm) Now what do you have to say, Go boy?

  63. Re:Go fuck yourself by EsbenMoseHansen · · Score: 1

    3) How about portability, since you didn't put Java on the list? And yes, I know Java isn't 100% portable depending on what you are doing or if you are running certain dependencies, but which of the languages you listed is more portable than Java?

    We constantly upgrade our tech to make things go faster and work easier. Honestly, you don't think that'll EVER happen with programming languages?

    Almost every programming language on that list is more portable than Java.... with C being the king when it comes to portability. What Java offers (really, the JVM) is a portable runtime, which is a different beast (a property it shares with virtually (hah!) all other virtual machines.) In principle, I think it would be possible to write a C compiler that could output Java bytecode.

    But the OP is missing stuff like objects support, functional programming support, generic programming support and a host of other features that that generation did not support. Then there is stuff like context free LALR grammars, dynamic typing, operator overloading and various syntactic sugar that makes things go sooo much faster when coding.

    --
    Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
  64. Confused by Anonymous Coward · · Score: 0

    I played with go quite a bit in the first week after it was released and was considering using it on an upcoming project. If they've added significant whitespace, the language is dead for me. I'm not sure they have given...

    It's unwise to make program structure depend on invisible characters. -- Rob Pike 2008

    A quick search turns up this go proposal (again from Rob Pike):

    Another language the proposal may evoke is Python, which uses white
    space for indentation. Again, the story here is very different.
    Program structure is not defined by white space. Instead, a much
    milder thing is happening: lists of statements, constants, etc. may be
    separated by placing them one per line instead of by inserting
    semicolons. That's all.

    That's very different than significant white space, it's simply making semicolons optional. Is it really significant white space or simply FUD based on the proposal above that everyone's up in arms about?

  65. Linking with other languages by dargaud · · Score: 1

    Personally I cannot stand languages that lock you in. Meaning that if you cannot link your program to a C system library or a Fortran math library, I won't be using it. Like Java. So how does Go work with other languages ?

    --
    Non-Linux Penguins ?
    1. Re:Linking with other languages by Sensei+Eggwoah · · Score: 1
  66. Re:Go fuck yourself by michaelmuffin · · Score: 1

    Go suffers from the same design mentality behind UNIX and C.

    [ken's] insane, short-sighted design decisions are responsible for so many software engineering problems

    would you care to elaborate on these points?

  67. Memory is not the only resource by tepples · · Score: 1

    Most of the stuff I see "pooled" isn't memory but things like database connections, which are significantly more expensive to set up and tear down than memory objects.

  68. You can create tens of thousands of coroutines by Anonymous Coward · · Score: 0

    You can't do that if you map each co-routine to a unique thread.

    OS threads are klunky and heavy-weight - you have to state how big the stack size is in advance.

    Go designers made the right decision.

  69. Incomplete Car Analogy by shivamib · · Score: 1

    I'll agree with your points, but many vehicles have wheels and motors and there is still a clear preference

    I am sorry but your car analogy does not compute.

  70. Let me say it a millin times..... by Anonymous Coward · · Score: 0

    print "Python is the bestest!! OMG!!" * 1000000