http://www.theregist.../11/11/google_go/
Sounds neat.
More here - http://golang.org/
Cheers,
Scott.
![]() |
|
![]() The merging of Python and C seems fairly well thought out. Making strings first-class objects should attract a lot of programmers who grew up on C.
I'm intrigued by the decision of omitting semi-colons. There will be a vast class of programmers who will find that difficult... (think about the polarisation about semi-colon insertion in JavaScript). The collapsing of all looping into a single statement, for, is daring. And switch has had a significant overhaul. Wade. Q:Is it proper to eat cheeseburgers with your fingers? A:No, the fingers should be eaten separately. |
|
![]() Yet another new language without database drivers, usable frameworks, or a community. :-)
Should be interesting to see what happens to it. Regards,
-scott Welcome to Rivendell, Mr. Anderson. |
|
![]() Dont most modern databases have their own database drivers?
|
|
![]() You need a programming interface for them. Unless this language can directly use C, C++, Python, or some other library (which it may very well be able to, I didn't look).
Regards,
-scott Welcome to Rivendell, Mr. Anderson. |
|
![]() |
|
![]()
Yay, C libraries. Regards,
-scott Welcome to Rivendell, Mr. Anderson. |
|
![]() MySQL's C libraries are rather clunky. No, let me revise that: MySQL's network calling protocol is a little clunky and this shows in the C library. If MySQL wanted to get into the Go bandwagon, they'd write a decent modern API in the language itself that uses the wire protocol.
I don't know what Postgres's API is like. Wade. Q:Is it proper to eat cheeseburgers with your fingers? A:No, the fingers should be eaten separately. |
|
![]() LOLCODE...
http://en.wikipedia.org/wiki/LOLCODE |
|
![]() |
|
![]() There can be no performance critical looping without a couple of core points like a separate prepare/execute set of statements.
And the concept of DBI:DBD is greeat for moving between databases unless you tie yourself down on purpose. |
|
![]() Every database layer has mistakes and it looks like he's trying to avoid as many as he can. I'm impressed.
Wade. Q:Is it proper to eat cheeseburgers with your fingers? A:No, the fingers should be eaten separately. |
|
![]() For Googling purposes, that is.
Regards,
-scott Welcome to Rivendell, Mr. Anderson. |
|
![]() How do you search for "Word"? Well, you have to search for "Microsoft Word" or you won't get anything useful.
This naming convention ensures that you won't be able to search for anything about Go without being explicitly reminded who "owns" it, regardless of what the license says. --
Drew |
|
![]() But to actually find something, everyone has to call it "Google Go" or that doesn't work.
If I write a PostgreSQL wrapper and say it's for the "Go language", no one will find it if they're looking for "Google Go". Regards,
-scott Welcome to Rivendell, Mr. Anderson. |
|
![]() Q:Is it proper to eat cheeseburgers with your fingers? A:No, the fingers should be eaten separately. |
|
![]() ...what's the problem being solved, here?
|
|
![]() That is, it tries to remove or simplify the minutae of programming in high-level assembly (which is what C is often called) without fencing off too much that is useful. At the same time, it adds genuine language support for the sort of things the various C libraries try to add and most modern languages support intrinsically.
Put another way, it's trying to create a much better C by looking at what people like in languages like Python. C has a nasty reputation of requiring programmers to take care of silly details. Strings are the classic example: they are not first-class objects in C. You have to do all the memory management yourself, every time and everywhere. This detracts significantly from ease of development. Wade. Q:Is it proper to eat cheeseburgers with your fingers? A:No, the fingers should be eaten separately. |
|
![]() wait a minute!@ All transactions must halt while I do GC
hmm ta rumpty dah....... tech support can I help you? yer fucking program locks up for 2 minutes every 13 as opposed to, put some memoryt here, use it release it fucking language designers |
|
![]() And surely there are modern algorithms that are halfway between the simplest garbage collection and the most aggressive reference counting.
OTOH, I understand the choice to not have to worry about explicit string memory allocation. Wade, who's wondering why he's defending this new language. Q:Is it proper to eat cheeseburgers with your fingers? A:No, the fingers should be eaten separately. |
|
![]() |
|
![]() That is, all the speed of C with all the covenience of Python.
Having said that, I'm not a fan of either language. Wade. Q:Is it proper to eat cheeseburgers with your fingers? A:No, the fingers should be eaten separately. |
|
![]() We're working at something relevantly similar at my firm, called GPSEE. It's using javascript, not python... but the main thing is that we have a pretty decent foreign function interface for it. The code repository for the FOSS part of gpsee is at
http://code.google.com/p/gpsee with support available on Freenode at irc://irc.freenode.org channel #gpsee. You'll be wanting the support as my boss freely admits that the docs at the google code page "kinda blow". That said, you can only expect to find Wes (my boss) and Donny (contract programmer that's working with us) on there during business hours EST. Basically, there are tools there that can be used to basically import any C function easily into javascript. Note that this is javascript using the gsr (gpsee script runner) program... this is absolutely not intended for use in the browser and almost certainly will never be in a browser due to the rather obvious security implications. This is intended for compatibility with the CommonJS (formerly ServerJS) framework. We are already using some of this in production, and if your platform supports the nano-JIT compiler it can result in some serious serious performance out of it. Since javascript is at heart a functional language, the basic approach is to include C functions under a special object, and then we wrap those functions as appropriate in javascript objects using javascript to do so. We are already using some of this in production in a high-traffic high-availability environment without problems. My personal take on this particular project is that once it gets known within the wider community my boss is going to become a programming star; you can include any arbitrary existing C function into the javascript interpreter with about a half-hour of C programming, mostly to create the necessary structures for storing arguments and returns from those C functions. Type promotion is largely done in a sane manner; for example, if a C function returns NULL it will be automagically promoted to the null object in javascript, etc etc etc. If anyone wants to go check it out (and maybe help out) please feel free to visit the site and channel above. Cheers, Jack |