Flutterby™! : The Go programming language

Next unread comment / Catchup all unread comments User Account Info | Logout | XML/Pilot/etc versions | Long version (with comments) | Weblog archives | Site Map | | Browse Topics

The Go programming language

2009-11-11 17:24:35.949005+00 by Dan Lyke 7 comments

I've been playing about a bit with Python again, and again I'm having the "what niche does this fill?" issue. It's not anywhere near Perl's whipupitude, and its constructs are such that I end up prematurely thinking about optimization. Every time I dive into Python I start wondering why I'm not using C++ for the task.

Yesterday, I read this thread about Google possibly deprecating Python for internal projects, courtesy of Rafe, which seemed kind of weird given that the Google App Engine started and was wrapped around Python, but all of the comments about why made sense.

Today I ran across the Go systems programming language, which is apparently evolving from some internal Google projects. It's optionally typed, syntax looks like a mix of Python and C++, and has an emphasis on concurrent execution.

[ related topics: Perl Open Source Software Engineering Python ]

comments in descending chronological order (reverse):

#Comment Re: made: 2009-11-18 00:18:53.595734+00 by: Dan Lyke

Dalke compares Stackless Python and Go, and Elf duplicates the results, same machine for both benchmarks.

The emphasis on compile times also suggests there need to be some better interprocessor communications systems so that we're not recompiling huge monolithic systems or building huge dependencies of shared objects.

#Comment Re: made: 2009-11-16 16:49:45.144137+00 by: Dan Lyke

JT, I could see getting there with Python, and I've used that it has better introspection capabilities than Perl, but somehow the overall inertia of the language is such that when I'm ready to abandon Perl for Python I'm ready to just skip to C++. It'd probably be better if I didn't know Perl fairly well.

Mark, I love the progression in that thread from "why would you care about a command line interface when you have this nifty web site" to "oh, yeah, automatic dependencies and ..."

Shadow, yeah, although I would like a language in which I can declare and put restrictions on my variables. I'm fine with declaring them for scope's sake, as long as I can declare them in-line like C++, but I'd really like the ability to say "and when you're compiling debug, this variable should check all assignments for some range qualifications", kind of like Eiffel's "programming by contract". It'd seem to me that the optimizer writers would be all over this, and this would be the right place to add typing without constraining the optimizer (ie: do what you want for speed's sake, if this is always used in floating point expressions make it a float, but it's always gotta have integer values).

#Comment Re: made: 2009-11-14 20:13:54.553649+00 by: Mark A. Hershberger

TheSHAD0W: wonderful rant!

#Comment Re: made: 2009-11-14 17:46:17.142136+00 by: TheSHAD0W

http://www.xent.com/pipermail/...Week-of-Mon-20091109/054578.html - bwah!

#Comment Re: made: 2009-11-14 14:42:59.411973+00 by: Mark A. Hershberger

http://thread.gmane.org/gmane.comp.python.distutils.devel/11359

For an interesting take on what Perl has that Python wants.

#Comment Re: made: 2009-11-12 05:39:51.353345+00 by: JT

Back when I actually coded things, I preferred Python. It seemed the epitome of object-oriented programming. Although I mostly used it for scripting functions in servers which could probably have been done more efficiently in bash, it was easier to try to convert perl, Java, bash, and Python scripts all into a single language and Python seemed to handle anything I threw at it. Beyond that, it also made it easy for me to write programs on *nix and send them straight to windows, that part always made it somewhat complicated for me in C++, however I'd say it was probably because I spent more time learning Python than anything else.

#Comment Re: made: 2009-11-12 01:45:59.388773+00 by: TheSHAD0W

http://code.google.com/p/go/issues/detail?id=9