back to article Google 'experiment' crossbreeds Python with C++

Google has open-sourced an experimental programming language that attempts to crossbreed a dynamic web-happy language like Python with a compiled language like C++. "There is a growing rebellion against cumbersome type systems like those of Java and C++, pushing people towards dynamically typed languages such as Python and …

COMMENTS

This topic is closed for new posts.
  1. Charles Manning
    Headmaster

    Get off my lawn!

    Just like the whole "W7 is so great coz Vista was so crap" way of viewing the world, go's compilation only looks fast because our current compilers are so awfully slow vs what we had over 20 years ago.

    Anyone alive that remember the latter half of the 1980s? Borland Turbo Pascal?

    The last time I tried Turbo Pascal was around 1994 on a 100MHz 486 with MSDOS 6.x. It compiled a few k lines of code so fast that the "compiling" message was gone before the video refresh had managed to paint it. I thought the compile button was broken.

    I wonder how fast it would compile on a modern machine.

    [ Yup, running a turbo pascal program is another matter. The speed calibration loop can't handle CPUs faster than 200MHz].

    <---There being no curmudgeon icon, the pedantic bastard will have to do.

  2. amanfromMars 1 Silver badge
    Go

    Google joins the RUXPerienced Party in Full Sovieted Swing

    I just love this classic Goline ..... "Now we come to processes and communication—concurrent programming. It's a big subject so to be brief we assume some familiarity with the topic." ..... which of course allows for all manner of customized code injection from an assumed base knowledge which is most unlikely to be exactly the same in every case, thus will it be different in every case and therefore is a chaos parameter programmed in to projects in an embedded sleeper mode ....... which can be very convenient for personal invocation for project program control at a later date.

    It is not a flaw or vulnerability though, for it is just the way things are. ......... with such a flaw and vulnerability always being available for exploitation and GCC Capture of Global Command and Control Operands. It is an Abiding Facility and Utility Vehicle ......... Virtual Trojan ....... Stealthy AIdDragon in PerlyGatesPython ASPirant Networks InterNetworking JApplications for GoDevices.

  3. rob miller
    Go

    but cathedral doors still partly closed...

    uber-geek publication The Washington Post helpfully writes:

    ----

    To get things started the right way, here's Go's rendition of Hello World!:

    05 package main07 import fmt "fmt"//Package implementing formatted I/O.09 func main() { 10 fmt.Printf("Hello, world; or ???????? ?????; or ????? ??n"); 11 }

    ---

    Must get right on to learning that one....

  4. ForthIsNotDead
    Badgers

    Cool?

    It sounds really cool. But there's just something about Google that I don't trust.

    I can imagine it analysing your code and sending results back to the chocolate factory, or even worse, advertisements in a side bar!

    (Only slightly tongue in cheek).

    And I don't really know what their issue is with more contemporay languages. They single out Java in the article, but it is mature, tried, and tested with billions of lines of code out in the wild. It's not to be sniffed at. Ditto .Net.

    They seem to have an issue with VM/VP based architectures, but to my mind, they do the job at hand just fine. Perhaps a bit slow to compile, but heck, how else would you get a toilet/fag/flirt break?

  5. Captain TickTock
    Joke

    "Less time reading blogs...?"

    Are they mad..?

  6. The Mighty Biff
    FAIL

    Sounds teh awesome !

    Or rather, it sounds a bit like C#, only without the huge number of libraries and a nice IDE. Presumably there will be an IDE ? I hear that vi is good.

    And who really cares about compile times anyway (cue post from someone that does...)

    Java, C++ and C# cover everything for me and there's always Coral 66 for those special occasions.

  7. Neil Stansbury
    Thumb Up

    @ForthIsNotDead

    They singled out Java quite rightly - Java *is* a four letter word - it is and always was an abomination of a language.

    It was called Java because words like "Dynamic" and "Loose Typing" were deemed to complex for them to grasp - these are the same people that thought C++ was "elegant".

  8. rpjs
    Coat

    Just what we need

    Another programming language, as we have so few to choose from already.

  9. Evil_Trev

    Bah Humbug

    Google are just jumping on the bandwagon, Best part of a decade ago there was UPC which allowed you to write SPMD (Single Program Multiple Data [sets]) code, IBM have X10 - a Java like language aimed at massively parallel machines (like those super-duper computer / playstation boxes). Poor old Microsloppy coders still have to go and write thread stuff like it was the 90's.

    Those cheeky Open source types have kludged together a not-yet-quite-done distributed message passing monstrosity called D-Bus that does some neat tricks like starting apps to deal with messages usable for distributed programming, it's old hat now.

    Google obviously felt left out and looked for a way to do something 'new' so they Kludged something together and hope that with a bit of google branding it won't look like a turd.

    @Amanfrommars:

    Do I take it you don't love the googlemiesters ? You could opt-out see http//www.theonion.com/content/video/google_opt_out_feature_lets_users for more details.

  10. Shadowfirebird

    Hmm

    New languages are always interesting*. This will appeal to C-type programmers.

    The stated intent is to produce a language like Python or Ruby that is compiled. Nice. But it reads nothing like either of those languages to me; too low-level. Either that, or the initial tutorial isn't well written.

    * To me. If you're bored by new languages, why are you reading this?

  11. Sandtreader
    Unhappy

    Cumbersome type system?

    You mean all those annoying compile-time checks and optimisations that stop your code blowing up and/or running like a dog at mission-critical run-time? Who needs them? Programmer time and the freedom to throw stuff together with no discernable structure is so much more important!

  12. DZ-Jay

    Cython or PythoC?

    I agree with some of the post above: some "modern" compilers and managed languages are just too slow so anything new may seem fast in comparison.

    However, fast and robust languages and compilers already exist, so I don't see a need to invent yet a new language; except for Google's abhorrence to "not-built-here" technologies.

    If Google's engineers spent less time re-inventing mature technologies in their own little ways and spent more time in actually implementing useful products or services in readily available mature technologies, perhaps they could get some of their products out of "beta", and maybe they could make some money that is not really tied to advertising.

    Of course, coming up with your very own way to implement C++ or BerkleyDB is a lot more fun, even if not very productive.

    If all they wanted was the speed of C with the flexibility of Python, they could have checked out Objective-C, which has these in spades. Plus, being based on Smalltalk, it brings with it decades of improvements and experience, polish and maturity.

    -dZ.

  13. Steve the Cynic
    Unhappy

    it's just a multithreaded interpreter

    First analysis, from the Language Design FAQ, http://golang.org/doc/go_lang_faq.html

    * "goroutines" are just a fancy, deceptive name for the idea of having a multithreaded interpreter/VM. They are not coroutines, despite the similarity of the names.

    * The first specious argument occurs very close to the top of the FAQ, concerning a misplaced * in a C-style declaration.

    * The issues surrounding order of execution of ++ and -- are not messy. The ++ in 'f(i++)' happens at a well-defined time, *before* the call to f(). and 'p[i] = q[i++]' is defined to be undefined.

    * I get a creepy-crawly feeling when I read the section on the lack of type inheritance, with the thought of hundreds or thousands of coincidental interface associations, and the entertaining set of bugs that will arise from that.

    Well, just my opinion, anyway.

  14. Anonymous Coward
    FAIL

    Great! A cross between Javascript and C++!

    It looks suspiciously close to the long-rumoured C++ update C++0x, which adds stuff like type inference. It's hard to tell for sure from the tutorial, but the core language looks ugly and no more powerful than C++. Maybe it has nice stuff for concurrent processing, but surely that could be done as an extension to an existing language rather than making up your own ridiculousness. But as long as they don't force anyone to use it, who cares?

  15. Stephen Channell
    Pint

    Syntax more like VisualBasic than C++ or Python

    "func sum(a[] int) int { // returns an int" is more like "function sum (a[] as integer) as integer" than "int sum (int[] a)".. but that's just academic... the key question is it just academic.

    has google built its applications in “go”; can it integrate with Python native interface (if so, why is there not a compiler option); can it integrate with Java (or do we still need JNI);why is there no p-code layer for portability; what’s the status of the ISO standardisation..

    ..otherwise.. can I interest you all in a new multi-paradigm cache oriented language I’ve though of called “Cashe”.. you’ll find out later why it’s called “Cashe” ;-)

  16. Cliff
    Joke

    How the heck?

    How the heck am I the first comment at time of posting to make a half-formed lame-arse gag about GOTO's being deprecated?

  17. Anonymous Coward
    Flame

    What rebellion?

    FTA:

    ""There is a growing rebellion against cumbersome type systems"

    No there isn't. At least not amongst any programmers I know. Perhaps the fluffy web crowd who graduated into programming PHP or python via HTML can't handle static typing or other "low level" nasties but for those of us who value efficient well written code and have at least half a clue of what we're doing then static typing is a bloody godsend. We heard similar sorts of whining a generation ago from VB coders trying to graduate to C++. Gimme a frigging break.

  18. Anonymous Coward
    Anonymous Coward

    re: Borland Turbo Pascal?

    And the latest versions of Delphi (which is what Turbo Pascal migrated became) will have finished compiling 250k lines of code before Visual Studio has even started working out user has press compile

    sadly though the business world thinks MS make the only option for Windows :(

  19. Subtilior

    no exceptions!

    interesting that it doesn't have the capacity to throw exceptions ... pretty much all popular languages do that nowadays, excepting 'C'. I guess they don't mix too well with all that 'goroutine' stuff or something.

  20. Anonymous Coward
    Flame

    can't help thinking

    those rebelling against the strongly type languages - are those who don't want to be bothered with mundane details

  21. Shakje

    @boltar

    Indeed, how's that VB6 coming along now guys?

  22. BlackMage
    Thumb Up

    @Sandtreader

    Very true

  23. Sandtreader
    Boffin

    Toy language

    OK, so it does have a type system of sorts. However:

    - No exceptions

    - No generics / templates

    - Any two things implementing the same interface(s) (by method names) are type-equivalent

    - Destruction only by GC - hence no RAII, except manually with "defer"

    - Explicit this!! - we're back in hacking up OO in C here.

    - GC is currently batch mark/sweep (incremental is SMOP, RSN)

    - No overloading

    - ++ -- are statements only

    - strings are immutable

    - Surface syntax is sufficiently similar but different to C/C++ that switching between them will be a nightmare - e.g. semis are separators, if/for have no () but require {}, precedence of << is different;

    - They insist on K&R bracing (spit ;-)

    Nice things:

    - Unified definition/declaration (no header files)

    - Multiple return values

    - Non-constant, non integer case

    - labelled break/continue

    - anonymous functions / lambda / closures

    - inferred types

    - tidied up iterators (range)

    ... Some (but not all) of which we get in C++0x. Now C++0x with unified definition/declaration, that would be worth making a song and dance about (but it's probably impossible).

  24. amanfromMars 1 Silver badge

    Come on, Google .... GODevices are 4Go2

    "@Amanfrommars:

    Do I take it you don't love the googlemiesters ? " .... By Evil_Trev Posted Wednesday 11th November 2009 10:25 GMT

    Oh, goodness me, No, Evil_Trev, it is exactly the opposite. Although they are exceeedingly slow in taking over Remote Virtual Global Governance Duties. One would almost be inclined to imagine that they were frightened to Move On and Take Over and Make Over Power and Control Orders.

    Do you think they are maybe missing Vital Viral NEUKlearer HyperRadioProActive Keys/Trigger Algorithms, which would be an inexcusably pathetic excuse?

  25. James 47

    @Pascal compile times

    Wasn't this really due to the fact that function definitions (or whatever the Pascal-ese was for them) had to be in a certain order? i.e it was a one-pass compiler.

  26. Anonymous Coward
    FAIL

    But does it come with a paradigm shift?

    Nothing to see here, moving on.

    Because we really need a new useless-yet-hideous programming language.

    Python is soooooo 2005, and it just wasn't useless enough.

    This new programming language will be very popular and hotly debated on three mailing lists, for about a year, and then they'll move on to the next paradigm shift.

  27. Dave_H
    Happy

    No one worries about compile times?

    If my system compile times weren't 1hour and 20 minutes, when would I get time to read The Register?

    I remember Turbo Pascal - tiny footprint and fast - where has it all gone wrong since?

    Yes - I do still optimise in assembler!

  28. Anonymous Coward
    Megaphone

    SAPPEUR is the Alternative

    Those of you who know and like PASCAL (or Ada) and C++, there is something new from Germany. It is called SAPPEUR.

    Strong typing, single inheritance, interfaces, stack allocation, destructors, array bounds checking, no VM. Fast and thin on memory. Integrates nicely with C++, as you can intersperse C++ wherever it is needed.

    Novel is the support for multicore/multiprocessor machines in the type system.

    Try for your own and have a look at it on http://www.sappeur.eu.

    There is a demo at

    http://www.sappeur.eu/scs/SAPPEUR_richtig/SAPPEUR_richtig.html

  29. Rafael 1
    Grenade

    @Just what we need

    LEARN GO IN 21 DAYS

    PROFESSIONAL GO

    GO FOR DUMMIES

    LEARN GO IN 24 HOURS

    SECRETS OF THE GO MASTER PROGRAMMERS

    THINKING IN GO

    KILLER GO

    LEARN GO IN 7 DAYS

    ADVANCED GO

    GO IN A NUTSHELL

    GO HOW TO PROGRAM

    GO GO GOOGLE GADGET INTEGRATOR!*

    Yes, I am shouting. I'm also very glad I don't teach CS1 anymore so I won't have to hear students saying "but C++/Java/C#/C/Pascal/Whatever is dead, why don't you teach us Go?"

    *Actually this last one sounds cool.

  30. Dodgy Dave
    FAIL

    Just STOP

    What we absolutely don't need is another syntax to remember for everyday things like variable declarations, for loops, and if statements. Java, C++, C# and Objective-C all manage it, and what's the point of a fast compiler if you need three goes to get your brackets and semicolons in the right place? Python succeeds because you can get going with virtually zero knowledge of its syntax.

    As a spiritual successor to Turbo Pascal, TCC (Tiny C Compiler) is worth a look, BTW.

  31. Colin Miller
    Joke

    wei-ch'i

    Have they been practicing wei-ch'i too much at the chocolate factory?

  32. Jean-Luc

    @Sandtreader

    If you think compiler checks are gonna magically keep your code from blowing up @ runtime, I have some prime real estate for you to buy in Florida.

This topic is closed for new posts.

Other stories you might like