Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Google Go Capturing Developer Interest

ScuttleMonkey posted more than 4 years ago | from the fear-the-behemoth dept.

Programming 434

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?

Sorry! There are no comments related to the filter you selected.

Go fuck yourself (-1, Flamebait)

Anonymous Coward | more than 4 years ago | (#31316626)

There are enough programming languages already.

How about implementing a nice C# API for whatever functionality you are re-inventing the wheel for this week?

Stick with over-simplistic search and buggy, not-ready-for-primetime cell phones, Google.

Re:Go fuck yourself (4, Insightful)

cmiller173 (641510) | more than 4 years ago | (#31317268)

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?

Re:Go fuck yourself (1)

piranha(jpl) (229201) | more than 4 years ago | (#31317604)

Gee, what do you need that can't be handled with a Turing machine and a lot of tape?

Re:Go fuck yourself (5, Funny)

dskoll (99328) | more than 4 years ago | (#31317980)

I'll let you know if/when my program halts...

Re:Go fuck yourself (0)

Anonymous Coward | more than 4 years ago | (#31318012)

The stopping problem.

Oh yeah, that ... (5, Insightful)

checkitout (546879) | more than 4 years ago | (#31316666)

Until this article, I forgot it was ever announced.

Re:Oh yeah, that ... (5, Insightful)

TheLink (130905) | more than 4 years ago | (#31316982)

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.

Re:Oh yeah, that ... (0)

Anonymous Coward | more than 4 years ago | (#31317500)

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

"many developers are so intrigued" (5, Insightful)

Anonymous Coward | more than 4 years ago | (#31316680)

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

Re:"many developers are so intrigued" (2, Funny)

Idiot with a gun (1081749) | more than 4 years ago | (#31316764)

Like Java?

Re:"many developers are so intrigued" (1, Funny)

Anonymous Coward | more than 4 years ago | (#31316802)

The what now?

Re:"many developers are so intrigued" (3, Funny)

I confirm I'm not a (720413) | more than 4 years ago | (#31316864)

Java [timbunce.org] . It's quite a big player in IT job market.

Re:"many developers are so intrigued" (0)

Anonymous Coward | more than 4 years ago | (#31316960)

*whoosh*

Re:"many developers are so intrigued" (1)

I confirm I'm not a (720413) | more than 4 years ago | (#31317076)

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

Re:"many developers are so intrigued" (0)

Anonymous Coward | more than 4 years ago | (#31317680)

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

Re:"many developers are so intrigued" (1)

Hognoxious (631665) | more than 4 years ago | (#31317756)

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.

Re:"many developers are so intrigued" (2, Interesting)

Idiot with a gun (1081749) | more than 4 years ago | (#31316902)

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.

Re:"many developers are so intrigued" (3, Interesting)

shutdown -p now (807394) | more than 4 years ago | (#31317950)

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.

Re:"many developers are so intrigued" (0, Informative)

Anonymous Coward | more than 4 years ago | (#31316880)

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

Re:"many developers are so intrigued" (4, Insightful)

MrBandersnatch (544818) | more than 4 years ago | (#31316920)

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

Write once, test everywhere?

Re:"many developers are so intrigued" (5, Insightful)

FlyingBishop (1293238) | more than 4 years ago | (#31317178)

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

Re:"many developers are so intrigued" (2, Interesting)

Anonymous Coward | more than 4 years ago | (#31317034)

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.

Re:"many developers are so intrigued" (3, Insightful)

binarylarry (1338699) | more than 4 years ago | (#31317110)

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.

Re:"many developers are so intrigued" (3, Interesting)

Anonymous Coward | more than 4 years ago | (#31317416)

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.

Re:"many developers are so intrigued" (3, Insightful)

Nursie (632944) | more than 4 years ago | (#31317454)

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.

Re:"many developers are so intrigued" (1, Insightful)

ClosedSource (238333) | more than 4 years ago | (#31317644)

"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.

Re:"many developers are so intrigued" (3, Insightful)

jo42 (227475) | more than 4 years ago | (#31317876)

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

Re:"many developers are so intrigued" (1)

slim (1652) | more than 4 years ago | (#31317652)

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.

Re:"many developers are so intrigued" (4, Insightful)

TheLink (130905) | more than 4 years ago | (#31317356)

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.

Re:"many developers are so intrigued" (1)

ClosedSource (238333) | more than 4 years ago | (#31317804)

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).

Re:"many developers are so intrigued" (4, Informative)

I confirm I'm not a (720413) | more than 4 years ago | (#31316814)

"Proprietary"? No, open source [golang.org]

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.

Re:"many developers are so intrigued" (0)

shutdown -p now (807394) | more than 4 years ago | (#31317996)

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.

Re:"many developers are so intrigued" (1, Troll)

hardburn (141468) | more than 4 years ago | (#31316844)

Yeah, total slashvertisement. It reads just like those "Acai Berry EXPOSED" ads that are just so awesome [penny-arcade.com] .

Re:"many developers are so intrigued" (5, Interesting)

colmore (56499) | more than 4 years ago | (#31317398)

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.

Re:"many developers are so intrigued" (2, Funny)

Monkeedude1212 (1560403) | more than 4 years ago | (#31317922)

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.

Name (2, Interesting)

Idiot with a gun (1081749) | more than 4 years ago | (#31316732)

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

Re:Name (5, Informative)

BhaKi (1316335) | more than 4 years ago | (#31316824)

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'.

Re:Name (0)

Anonymous Coward | more than 4 years ago | (#31317144)

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.

Re:Name (5, Funny)

schon (31600) | more than 4 years ago | (#31317516)

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.

Re:Name (1)

Jessta (666101) | more than 4 years ago | (#31317074)

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

Re:Name (3, Funny)

perltooc (933296) | more than 4 years ago | (#31317164)

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

Re:Name (1)

famebait (450028) | more than 4 years ago | (#31317474)

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

Or... (1)

raftpeople (844215) | more than 4 years ago | (#31317702)

"Go Ogle Go"

Debugger (1)

Lemming Mark (849014) | more than 4 years ago | (#31317994)

I seem to recall Rob Pike mentioning in his techtalk that a good name for the debugger would be "Ogle"

If I google go... (1)

pmontra (738736) | more than 4 years ago | (#31316752)

...luckily the game [wikipedia.org] still comes before the programming language.

Re:If I google go... (2, Interesting)

kirill.s (1604911) | more than 4 years ago | (#31316816)

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.

Re:If I google go... (1)

dullertap (1733776) | more than 4 years ago | (#31316872)

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

Re:If I google go... (1)

kirill.s (1604911) | more than 4 years ago | (#31317708)

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

Go [google.com]

Re:If I google go... (2, Insightful)

delinear (991444) | more than 4 years ago | (#31316874)

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.

Re:If I google go... (1)

Vintermann (400722) | more than 4 years ago | (#31316886)

Are you searching with Google by any chance?

Re:If I google go... (0)

Anonymous Coward | more than 4 years ago | (#31317624)

What? Like I'd intentionally use Bing?

What? (0)

Anonymous Coward | more than 4 years ago | (#31317844)

Bing Is Not Good?

Nothing special (1)

Dunderflute (1001355) | more than 4 years ago | (#31316788)

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

vs Java? (1)

Midnight Thunder (17205) | more than 4 years ago | (#31317274)

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.
 

Re:vs Java? (1)

famebait (450028) | more than 4 years ago | (#31317514)

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.

Bright future to go. (4, Insightful)

zeromorph (1009305) | more than 4 years ago | (#31316812)

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 [gnu.org] ), I am expecting Go to stay and prosper.

Re:Bright future to go. (1, Insightful)

Anonymous Coward | more than 4 years ago | (#31317254)

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.

Re:Bright future to go. (1)

Lemming Mark (849014) | more than 4 years ago | (#31318038)

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.

Re:Bright future to go. (0)

Anonymous Coward | more than 4 years ago | (#31317396)

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

Re:Bright future to go. (1)

Jah-Wren Ryel (80510) | more than 4 years ago | (#31317910)

I am expecting Go to stay

Go stay go!

Bad infomercial (5, Insightful)

captaindomon (870655) | more than 4 years ago | (#31316822)

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.

Slashvertisement (1)

oldhack (1037484) | more than 4 years ago | (#31316854)

That is all.

who's using it? (5, Funny)

larry bagina (561269) | more than 4 years ago | (#31316932)

"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 ...)

Re:who's using it? (2, Interesting)

zach_the_lizard (1317619) | more than 4 years ago | (#31317182)

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

Re:who's using it? (2, Insightful)

slim (1652) | more than 4 years ago | (#31317690)

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

Re:who's using it? (4, Interesting)

Tumbleweed (3706) | more than 4 years ago | (#31317320)

"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?

Re:who's using it? (2, Insightful)

Midnight Thunder (17205) | more than 4 years ago | (#31317576)

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.

Re:who's using it? (3, Insightful)

hans_e (548959) | more than 4 years ago | (#31317464)

You forgot the final logical step.

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

its (1)

BenoitRen (998927) | more than 4 years ago | (#31316940)

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

its

Damn apostrophe abusers!

already invented? (2, Insightful)

agentultra (1090039) | more than 4 years ago | (#31317046)

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

Re:already invented? (1)

binarylarry (1338699) | more than 4 years ago | (#31317150)

D has proprietary dependencies?

Re:already invented? (3, Informative)

ObsessiveMathsFreak (773371) | more than 4 years ago | (#31317790)

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.

it's an interesting case (5, Interesting)

fusiongyro (55524) | more than 4 years ago | (#31317058)

I wrote a small utility for detecting duplicate files [bitbucket.org] 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.

Alternatives? (4, Interesting)

Filik (578890) | more than 4 years ago | (#31317080)

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?

Re:Alternatives? (3, Informative)

binarylarry (1338699) | more than 4 years ago | (#31317176)

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

Re:Alternatives? (1, Funny)

Anonymous Coward | more than 4 years ago | (#31317342)

FORTRAN. Pros: Faster. Cons: Everything else.

Re:Alternatives? (2, Informative)

Anonymous Coward | more than 4 years ago | (#31317390)

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

Re:Alternatives? (1)

zach_the_lizard (1317619) | more than 4 years ago | (#31317428)

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.

Re:Alternatives? (5, Interesting)

Coryoth (254751) | more than 4 years ago | (#31317806)

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 [sunet.se] -- Very popular message passing/actor model based language.
  • Scala [scala-lang.org] -- A functional language with actor model concurrency for the JVM.
  • Oz [mozart-oz.org] -- An exceptionally multiparadigm language.
  • Occam-pi [pop-users.org] -- The modern version of the old occam for transputers; CSP style concurrency (I believe).
  • Chapel [cray.com] -- Cray's parallel programming language for supercompters. Cray's entry into DARPA's HPCS programming language competition.
  • X10 [codehaus.org]
  • Fortress [sun.com] -- 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 [origo.ethz.ch] -- An effort to take a CSP model and make it elegantly compatible with object oriented programming

What innovation? (5, Interesting)

piranha(jpl) (229201) | more than 4 years ago | (#31317116)

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.

What you're missing is ... (3, Interesting)

Auroch (1403671) | more than 4 years ago | (#31318030)

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.

What is Go? (0)

Anonymous Coward | more than 4 years ago | (#31317236)

What is Go?

Does that answer your question?

sad (-1, Troll)

Anonymous Coward | more than 4 years ago | (#31317362)

Google's Go is a sad sad excuse for a modern programming language -- puh leaze.

No multi-dimensional arrays (1)

halfdan the black (638018) | more than 4 years ago | (#31317364)

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.

Re:No multi-dimensional arrays (2, Informative)

siride (974284) | more than 4 years ago | (#31317480)

And this is most funny because C *does* actually have multi-dimensional arrays (at least statically sized ones).

Re:No multi-dimensional arrays (1)

halfdan the black (638018) | more than 4 years ago | (#31317614)

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.

Re:No multi-dimensional arrays (2, Informative)

siride (974284) | more than 4 years ago | (#31317660)

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.

Re:No multi-dimensional arrays (1)

camperdave (969942) | more than 4 years ago | (#31317818)

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.

Re:No multi-dimensional arrays (1)

sabre86 (730704) | more than 4 years ago | (#31317704)

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

Re:No multi-dimensional arrays (1)

mehemiah (971799) | more than 4 years ago | (#31317916)

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)

Re:No multi-dimensional arrays (0)

Anonymous Coward | more than 4 years ago | (#31317720)

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.

Re:No multi-dimensional arrays (0)

Anonymous Coward | more than 4 years ago | (#31317792)

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.

Another stagnant programming language (1)

lwriemen (763666) | more than 4 years ago | (#31317448)

The programming community has been stuck at 3GL for way too long.

Re:Another stagnant programming language (1)

hey! (33014) | more than 4 years ago | (#31317882)

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.

This article asks the tough questions (2, Funny)

Sloppy (14984) | more than 4 years ago | (#31317472)

"Mr. Burns, your campaign has the momentum of a runaway freight train. What makes you so popular?"

Whitespace (2, Interesting)

CaptnMArk (9003) | more than 4 years ago | (#31317744)

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.

Re:Whitespace (-1, Flamebait)

Anonymous Coward | more than 4 years ago | (#31317966)

Too bad they added significant whitespace. I'd support a semicolon-less syntax, but not at the cost of significant whitespace.

Name for me one modern language (other than possibly brainfuck [wikipedia.org] ) that doesn't have significant whitespace. The last one I remember came out in 1970.

And while you're mulling that over, and proposing wrong answers to the question, take your answer, write code in it, and stick white space between every character in the file. And see if your program still works.

Almost every language considers white space significant, especially when it appears in a variable name. "PayrollAmount" is not the same as "Payroll Amount".

Eh? (5, Insightful)

thePowerOfGrayskull (905905) | more than 4 years ago | (#31317802)

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.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?