×

Announcing: Slashdot Deals - Explore geek apps, games, gadgets and more. (what is this?)

Thank you!

We are sorry to see you leave - Beta is different and we value the time you took to try it out. Before you decide to go, please take a look at some value-adds for Beta and learn more about it. Thank you for reading Slashdot, and for making the site better!

Google Engineer Decries Complexity of Java, C++

Soulskill posted more than 4 years ago | from the keep-it-simple-stupid dept.

Education 878

snydeq writes "Google distinguished engineer Rob Pike ripped the use of Java and C++ during his keynote at OSCON, saying that these 'industrial programming languages' are way too complex and not adequately suited for today's computing environments. 'I think these languages are too hard to use, too subtle, too intricate. They're far too verbose and their subtlety, intricacy and verbosity seem to be increasing over time. They're oversold, and used far too broadly,' Pike said. 'How do we have stuff like this [get to be] the standard way of computing that is taught in schools and is used in industry? [This sort of programming] is very bureaucratic. Every step must be justified to the compiler.' Pike also spoke out against the performance of interpreted languages and dynamic typing."

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

We all know the ideal language has two functions (5, Funny)

spun (1352) | more than 4 years ago | (#33006364)

doWhatIWant()
and
doItFaster(doWhatIWant)

Re:We all know the ideal language has two function (4, Funny)

somaTh (1154199) | more than 4 years ago | (#33006500)

See, I'm already thinking about extentions.

doWhatIWantEvenThoughImTellingYouToDoSomethingElse()

Re:We all know the ideal language has two function (3, Funny)

cgenman (325138) | more than 4 years ago | (#33006534)

slowDownAndCrashSoICanSellAnUpgrade();

Re:We all know the ideal language has two function (1)

DragonFodder (712772) | more than 4 years ago | (#33006562)

doWhatISayNotAsIDo()

Re:We all know the ideal language has two function (1)

blai (1380673) | more than 4 years ago | (#33006772)

dontMakeMeTellYouWhatToDo(); -- turing complete

Re:We all know the ideal language has two function (5, Funny)

MikeyO (99577) | more than 4 years ago | (#33006832)

You obviously aren't paid by the hour to write java code, or else you'd have come up with something like:

ThreadFactory.getInstance().setExecutionTarget(new Runnable(){ public void run (doWhatIWant() }).addExecutionObserver(ExcecutionItemObserverFactory.getInstance()).start()

Which is much more "enterprise ready" than yours.

Re:We all know the ideal language has two function (1)

cpscotti (1032676) | more than 4 years ago | (#33006866)

I'd use upper case only. You know, in some exotic environments... displays that can't display lower case letters.. the whole story all again..
e.g.:
DO_WHAT_I_WANT()

Oh God... (1)

F0RR (1464631) | more than 4 years ago | (#33006370)

So they are complex after all. Who would have thought...

Complex? Difficult? Since when? (3, Funny)

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

Segmentation Fault

Maybe because programmers like to be clear (0, Flamebait)

BitZtream (692029) | more than 4 years ago | (#33006374)

On what they mean for the language to do, and want the compiler to provide as much help as possible while allowing for as much flexibility as possible.

I'm sure Google will now tell us the javascript is the only way of the future, with embedded python for shits and giggles.

I'm sorry to say, Google is now officially my new Microsoft. Too big for their own good, to concerned with controlling the computing world for me to trust anything they say or do.

Shrug, I guess Google will go back to using VB and I'll become irrelevant as a programmer. I'm not going to lose any sleep over my concern for it happening.

Re:Maybe because programmers like to be clear (1, Insightful)

BitZtream (692029) | more than 4 years ago | (#33006420)

Should have RTFA I guess, I now realize Mr Pike just talks in circles and really didn't have anything of value to say other than 'programming is hard'.

Re:Maybe because programmers like to be clear (3, Insightful)

metamechanical (545566) | more than 4 years ago | (#33006612)

What do you expect? To me it appeared to be little more than stumping for the programming language he wrote - Google Go. Which has yet to impress me. They say that it's flexible like an interpreted language but fast like a compiled one. To me, it seems like it's missing all the cool shit that makes me USE an interpreted language, but doesn't provide the same low-level access that makes me use a compiled one! All languages have their niche, I suppose, and I guess I'm just not the target demographic for Google Go

Re:Maybe because programmers like to be clear (5, Insightful)

lgw (121541) | more than 4 years ago | (#33006718)

This same rant has apeared generation after generation, and often from peope smart nough to know better. It's why COBOL was invented, with syntax like.

SUBTRACT DEBIT FROM BALANCE GIVING NEWBALANCE.

I kid you not, Adm Hopper actually thought that would make programming easier, and she was no moron.

Guess what guys? The reason programming is hard is because you must clearly and unambiguously state what you want to have happen. Yes, the languages could surely be better - the syntax and intricacies of C++ are pretty nightmarish, and Java only fixes some of those issues while introducing others. There's surely a better way to do resource management, and multi-threading, that are less error prone without making you give up needed control. But it's still going to be hard to solve hard problems, and you're still going to need to be very precise and detailed in describing how to solve a problem.

Irreducible complexity is irreducible.

Re:Maybe because programmers like to be clear (2, Interesting)

MightyMartian (840721) | more than 4 years ago | (#33006792)

Not to mention that, no matter what language you use, certain algorithms are going to be inherently complex, and in these areas the "simple" or "true" languages fall flat on their face. I've been coding in one form or another since the mid-1980s, and what I've seen from the "simple" languages is that they might be useful for teaching, but try to write a complex application or solve complex problems, and that simplicity simply makes the code even larger and more awkward.

Re:Maybe because programmers like to be clear (-1, Flamebait)

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

Jesus you suck some hard cock - deciding what the article said and decrying google.. before even reading it? Arrogant fuckwit, you know nothing.

Re:Maybe because programmers like to be clear (1)

bsDaemon (87307) | more than 4 years ago | (#33006754)

A guy who co-authored a couple of books with Brian Kernigan and co-invented UTF-8 with Ken Thompson is entitled to his opinions, although after watching the OSCON speech, I'm inclined to believe he shoulder the lighter part of the burden on those projects.

Re:Maybe because programmers like to be clear (4, Insightful)

lgw (121541) | more than 4 years ago | (#33006868)

UTF-8 was one moment of genius insight ("make sure the escape sequences cant be confused with notmal characters"), and the rest was trivial. The details weren't even very well thought through beyond that one clever idea: real standards deal mostly with error handling, and UTF-8 totally dropped the ball on that, leaving RFC 3629 to pick up the slack. If anything, co-inventing UTF-8 is an argument that he doesn't know much about real-world programming (Ken has of course proven himself elsewhere). Being the author of RFC 3629 (F. Yergeau) and cleaning up the mess would make one's opinions much more interesting!

Re:Maybe because programmers like to be clear (0)

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

> I'm sure Google will now tell us the javascript is the only way of the future, with embedded python for shits and giggles.

You could try and read the summary: "Pike also spoke out against the performance of interpreted languages and dynamic typing."

Re:Maybe because programmers like to be clear (1)

natehoy (1608657) | more than 4 years ago | (#33006628)

embedded python for shits and giggles

I know what you mean, but out of context it sounds so horribly wrong.

Re:Maybe because programmers like to be clear (1, Insightful)

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

to trust anything they say or do

Or, maybe, instead of trusting what they say, you could, you know, RTFA and see if the arguments are valid and maybe post some counter arguments.

I hope you know that JavaScript is one of the most used languages in the world, and that is it not controlled by Google. That in fact Google does not control Python either. And that one of the reasons JavaScript is popular is because it's accessible and easier to learn since you can start without caring about OO or functional programming. A 13 year old can just start document.write-ing his way into a webdeveloper career, print_r-ing his way through Wordpress after Wordpress site for his friends, family and local barbershop.

Seriously, there's no conspiracy here, and comparing to Microsoft is lame in this context. (Although, Microsoft is also starting to see the value of dynamic languages lately, hmm, maybe they and Google have a point?)

If you can't code in C++ you shouldn't code. (1, Insightful)

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

No,

What this world needs is competent programmers. C++ too hard for you? You shouldn't be programming. It's that simple.

Re:If you can't code in C++ you shouldn't code. (1, Insightful)

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

C++ hard? No programing language is "hard" (to anyone with a three digit IQ), writing good software is hard, and that has hardly anything to do with the language or tools you use.

Re:If you can't code in C++ you shouldn't code. (0)

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

100 is the average value, not the baseline.

/queue quote from "The Princess Bride"

Re:If you can't code in C++ you shouldn't code. (3, Insightful)

retchdog (1319261) | more than 4 years ago | (#33006664)

It's like the old saw about asking a Christian, "Is it okay to smoke while praying?" versus "Is it okay to pray while smoking?"

Of course competent programmers should handle C and all that. The point is, however, that the new ground to be discovered will be done by having non-programmers be able to quickly, easily, and accurately practice their craft with the aid of numerical analysis and data processing. It's the difference between doing something in an afternoon and needing to incorporate a company; pitch ideas; apply for grants/labs; &c.

The cynical programmer will say that the easy languages will inevitably allow fuckups. Well, that's true I guess (although isn't it an interesting project to reduce these?), but in any real project there are already several categories of fuckups (often methodological/statistical) which the programmer is, usually, blissfully unaware of, and will screw the data/results on a much grander and more subtle scale.

Here is a great example of an "empowering" language: http://processing.org/ [processing.org] Yeah, a `true programmer' may call it inefficient, but if it allows someone to do what they previously could not even conceive of, isn't this an infinite gain in efficiency?

Re:If you can't code in C++ you shouldn't code. (1)

maestroX (1061960) | more than 4 years ago | (#33006684)

What this world needs is competent programmers. C++ too hard for you? You shouldn't be programming. It's that simple.

I'll bite. Any competent programmer who thinks C++ is peanuts never tried to implement a parser for C++.

I remember one commenter on this site referring to C++ as the AK47 of languages.

That said, I only use (a subset of) c++ when exection speed and OO is favored over extensibility, development time and stability.

Re:If you can't code in C++ you shouldn't code. (2, Interesting)

AnonymousClown (1788472) | more than 4 years ago | (#33006760)

No,

What this world needs is competent programmers. C++ too hard for you? You shouldn't be programming. It's that simple.

Look, C++ is my programming language of choice: I like programming down to metal, having the OS load my program and run it without any intermediary like an interpreter or some sort of runtime (no I don't do CLI), and I like the ability to go down and do old school 'C' when I need to. But these days, it's like Stroustrup is adding features for the sake of adding features - trying to be "modern"? I don't know. It's making the language bulkier, adds even more chances for obfuscation, and it's getting to the point where even C++ fanboys like myself are reevaluating our relationship with the language.

Good god, when he first added templates (a great feature just see the STL), I had to deal with programmers who made template classes for everything and used it once for one data type. Plah-ease! Just because the feature is there doesn't mean you gotta use it. There's a time and place for everything. C++ is turning into the Word of programming languages: adding esoteric features that less than 1% of users will ever use.

C++ is turning into a bloated slow fat pig and I'm thinking of getting a divorce.

umm... (3, Insightful)

deviator (92787) | more than 4 years ago | (#33006390)

"Efficient" languages are too complex. "Simple" languages are too inefficient.

Normally I'd write this off as "duh" but this is Rob Pike.

Oh wait, he's pushing something new that somehow manages to be easy and efficient? OK...

Re:umm... (3, Insightful)

Bryansix (761547) | more than 4 years ago | (#33006526)

Right. Basically what we call "High level programming languages" are not all that high level any longer and the compiler is getting off without doing enough work. The language should be simple and the "hard work" should be done by the compiler figuring out the most effecient way to get done what it is being told to get done.

Re:umm... (1)

jythie (914043) | more than 4 years ago | (#33006634)

I am having flashbacks to that first generation MindStorm language where you 'programmed' with simulated lego blocks....

Re:umm... (1)

Albatrosses (1712146) | more than 4 years ago | (#33006872)

Come on, we both know that was awesome.

Missing context... (5, Insightful)

Akido37 (1473009) | more than 4 years ago | (#33006396)

Pike detailed the shortcomings of such languages as a way of describing the goals that he and other Google engineers have for a new programming language they developed, called Go.

Oh, so he's pushing a competing product and denigrating his competition? Nothing to see here, I think.

Re:Missing context... (0)

abigor (540274) | more than 4 years ago | (#33006462)

No, there's a lot to see here. Go is an interesting language.

And he's not pushing a "product" - he's justifying why they invented a new language in the first place.

Re:Missing context... (1)

Altus (1034) | more than 4 years ago | (#33006548)

And everyone who has ever invented a new language has done exactly the same thing.

Maybe Go is worth a closer look, but the quick look a google search has given me hasn't been very interesting. Not bad mind you, but its not clear what major advantages it provides. Would anyone care to expound on why its good/interesting?

I did find it interesting that the Wiki article says it is designed for fast compiling. That is not really something I have ever had much concern about even when working on extremely large code bases. Distributed builds work pretty well. It would not have been my design goal but maybe it has some value.

Re:Missing context... (1)

abigor (540274) | more than 4 years ago | (#33006728)

It's a garbage-collected systems language (ie fast and low-level if you want it to be) that has explicit support for concurrency. It pulls in some nice features from the usual suspects and groups them together in a pretty clean way.

On the downside, there's no generic programming support yet.

Re:Missing context... (0)

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

No worry, when it gets generic programming support, it will become mindboggingly complex and intricated.

Re:Missing context... (1)

kimgkimg (957949) | more than 4 years ago | (#33006644)

Okay so he's bashing compiled languages and bashing interpreted languages, so what's left? I guess flipping 1's and 0's with a binary editor I guess...

If C++'s complexity has him vexed (4, Funny)

swanzilla (1458281) | more than 4 years ago | (#33006416)

I'd like to hear what he thinks about Perl.

Re:If C++'s complexity has him vexed (1, Informative)

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

ROFL

I LOVE perl! (5, Funny)

DG (989) | more than 4 years ago | (#33006686)

I actually think that perl is the best programming language every designed.

(Waits for storms of laughter to subside)

No, really, I'm completely serious. perl is the English of programming languages. It takes the most useful parts of everything and mixes them all together into a useful conglomerate.

Much the same way you can use English to write a scientific dissertation, a sonnet (in full Billy S mode), or O RLY? perl can be as descriptive and formal or as loose and unbounded as the programmer chooses and it all JUST WORKS!

I **lothe** "bondage and discipline" languages that force me to think and write a certain way just because some would-be language guru thinks HIS way is the One True Path to enlightenment. perl gives me an expressive, more-than-one-way-to-do-it language that lets me think and work the way that best fits the problem at hand.

I have written enterprise-level perl code optimised for long-term maintainability and reliability (an LDAP server replication program that did schema translation). And I have written 5-second hacks that solved an immediate problem quickly and efficiently. perl lets me do this. No other language I've used matches perl's sheer versitility.

I love perl!

And I'm not at all ashamed to admit it.

DG

Re:If C++'s complexity has him vexed (5, Funny)

mrogers (85392) | more than 4 years ago | (#33006710)

I'd like to hear what he thinks about Perl.

Since his talk had no discernible structure, said the same thing in a dozen different ways and won't make any sense this time next year, I'd assume he's a fan.

Re:If C++'s complexity has him vexed (1, Funny)

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

Whatcha talking about, perl is easy! I just cat /dev/random > mycode.pl

Re:If C++'s complexity has him vexed (1)

arivanov (12034) | more than 4 years ago | (#33006758)

What he thinks or says is irrelevant.

You can judge that from Google job spec and recruitment policies and they are very clear.

C++ is solidly in first place. There is usually a honorary mentioning of C, Python and Java.

Perl is _NEVER_ present in a Google spec.

Practice what you preach ... (0)

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

And get your own company to think this way, too.

Not everybody runs servers for a living (1)

TREE (9562) | more than 4 years ago | (#33006440)

Interpreted code is great if you can babysit all the deployments. Generally, when you have to actually ship software, the sooner you find the bugs, the better. It doesn't get any earlier than compile time.

I have made brief forays into interpreted languages, and always feel immense pain and frustration from the lack of a compiler.

Re:Not everybody runs servers for a living (1)

M2Ys4U (1761184) | more than 4 years ago | (#33006650)

Golang isn't an interpreted language, though - it's compiled

A new phrase for "U.N. Barbie" (4, Funny)

Culture20 (968837) | more than 4 years ago | (#33006444)

English estas too malmola! Paroli en Esperanto!

Re:A new phrase for "U.N. Barbie" (0)

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

Looks like even Esperanto is too hard for Slashdotters. The corrected text:

La Anglo estas tre malmola! Parolu Esperanton!

And...? (3, Insightful)

arth1 (260657) | more than 4 years ago | (#33006446)

And where is the news here?

Picking the right tool for the job doesn't just cut down half the work time, but can help offset what sloppy workers do to destroy quality.

C++, Java, perl, C, forth, and sh are all different languages, and well suited to different jobs. But when all you have is a nailgun (i.e. all you are fluent in is a single language), every project starts looking like nailgun job, including your own foot.

Alternative Summary (5, Insightful)

bigsexyjoe (581721) | more than 4 years ago | (#33006452)

Google Engineer promotes Google language Go and claims it addresses weaknesses of existing languages, including Java and C++.

Re:Alternative Summary (1)

El_Muerte_TDS (592157) | more than 4 years ago | (#33006714)

Tsk... Go is way to verbose, it takes too much effort to do simple things.

Now, my new language 'G' fixes all those shortcomings.

Re:Alternative Summary (1)

KlomDark (6370) | more than 4 years ago | (#33006820)

Yah, but I took your sucky G language and turned it into a real language called G++, and a managed-memory implementation called G#... ;)

443,000 lines of Javascript?? (3, Interesting)

Black-Man (198831) | more than 4 years ago | (#33006454)

This guy has a lot of nerve telling other folks what programming language to use.

Linus thinks the same (1)

stanlyb (1839382) | more than 4 years ago | (#33006456)

And i have the same problem with java/C++, and btw, the inventor of C++ standard says so.....So, why do we continue to produce Java/C++ bloatware???

Re:Linus thinks the same (1, Insightful)

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

Linus has a fetish for C. He'll say anything.

Support and existing libraries. (1)

DeadDecoy (877617) | more than 4 years ago | (#33006662)

Java/C++ are attractive because they have the momentum of a large community behind them. Newer, more friendly languages like ruby or c# may not have the same libraries available as some of the more well-entrenched languages do. Or, they might have similar functionality that does not perform as well due to some overhead of the language itself. Another reason we deal with these languages is legacy code. Once upon a time, coders of old wrote a massive system, spanning millions of lines. At that point, it's cheaper to maintain the system then rewrite it from scratch. It all comes down to how much work your language of choice incurs. At first glance, java and c++ are curmudgeon-y to deal with because you have to write more lines to implement function XYZ, but developers still use them because there are libraries and frameworks that implement functions A-W.

Not a good diplomatic move... (3, Interesting)

drewhk (1744562) | more than 4 years ago | (#33006470)

You should bash Java, and C++ devs will agree. You should bash C++, and Java devs will agree.

Now you bashed both languages that has probably the most devs. Except some dynamic languages, of course (PHP and JS comes to mind).
Oh, you insulted them, too.

OMG...

Re:Not a good diplomatic move... (1)

JamesP (688957) | more than 4 years ago | (#33006568)

I prefer C++ to Java but I agree with both bashings

Re:Not a good diplomatic move... (0)

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

I absolutely hate both Java and C++, but I program in both. Maybe I should be doing something other than software development.

Re:Not a good diplomatic move... (1)

nomadic (141991) | more than 4 years ago | (#33006794)

You should bash Java, and C++ devs will agree. You should bash C++, and Java devs will agree.

As a non-programmer I like to bash every language, while pretending to know what I'm talking about. Coders are so much fun to aggravate.

"Google Engineer" ... seriously? (4, Insightful)

John Whitley (6067) | more than 4 years ago | (#33006484)

How about "Rob Pike Decries Complexity of Java, C++" instead?

|Rob Pike| >> |Google Engineer|

Summary: (4, Interesting)

IICV (652597) | more than 4 years ago | (#33006488)

Google distinguished engineer Rob Pike ripped the use of Java and C++ during his keynote at OSCON, saying that these 'industrial programming languages' are way too complex and not adequately suited for today's computing environments. ... Pike also spoke out against the performance of interpreted languages and dynamic typing. ... "Go is an attempt to combine the safety and performance of statically typed languages with the convenience and fun of dynamically typed interpretative languages," [Pike] said

Shorter Rob Pike: all those other languages suck, but the one I invented rocks. It's elegant and simple just like Lisp was back in the sixties!

I'm reminded of this blog [scienceblogs.com] post I read, where the author described it as "The Hurricane Lantern Effect". You look at someone else performing a task, and you think "geez, what an idiot! I can do it better in ten different ways!".

Then they hand the task off to you, and you slowly realize that each of your ten improvements isn't actually any better.

I bet you that if it's still around in ten years, someone else will decry Go 10.0 as being a "bureaucratic programming language".

Re:Summary: (4, Insightful)

BitZtream (692029) | more than 4 years ago | (#33006666)

Whats better is if you take a look at his history of 'inventions', you find one or two things that eventually, with the help of others, turned into something that other people use.

His personal list of inventions looks like a list of 'things no one gives a shit about'.

His list of Wikipedia quotes are golden. I think there was one on the list that didn't make him look like a total douche.

He's one of those guys that thinks everything sucks except what he's made ... unfortunately, the entire rest of the world feels pretty much the exact opposite.

Looking at his history, I don't think he'll ever say anything bad about Go, he'll just continue thinking it was perfect and that it failed because everyone else wasn't up to the task of using it.

Because they WORK (0)

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

If I need to write something very complex that no one else has written before, I can be confident that I can get the job done in C or C++. The mainstream compilers available today are mature and have well known behaviour. This simply cannot be said for any of the more recent languages, such as Python and Ruby (for example), that are *already* struggling with compatibility, performance and development issues that also plagued the "old" languages for years after their initial adoption. There is certainly something to be said for new interesting languages that can potentially make things easier, but IMHO there is FAR FAR more to be said for old languages that are much better understood for those who practice software engineering, rather than just "programming".

He's both right and wrong. (0, Troll)

onion2k (203094) | more than 4 years ago | (#33006494)

For an engineer working on the sort of massively complex computing problems that face the likes of Google he is entirely correct that the likes of Java and C++ are over-engineered and unnecessary for what he faces. That's spot on (I imagine, I'm not a Google engineer).

But most of today's computing problems aren't like that. The software industry has exploded in the past couple of decades, with close to every single business now demanding bespoke development in the form of websites, desktop apps, etc.

Those tasks are carried out by "code monkey" level people. People who need the over-engineering of a modern language because they're not really capable of writing code anywhere near the processor layer. They're puzzle solvers - people who glue together cookie-cutter libraries with the minimum of thinking. The people who use the languages Pike is decrying aren't the ones who're writing the frameworks and libraries that make it all so complicated, they're the ones who have to use libraries because they can't write code to do what the library does for them. It's hand-holding. It's necessary. Maybe not in the offices of Google, but definitely in the offices of "Joe Random Web Design Inc".

Re:He's both right and wrong. (0)

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

There's a processor layer? Is that anywhere near the data, business or presentation layer? Now... where is my banana....

Guess what (-1, Offtopic)

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

People poop. Yes, poop is gross, but everyone does it.

A man after my own heart (5, Insightful)

Brett Buck (811747) | more than 4 years ago | (#33006498)

These sorts of languages (and the underlying religious cults they bring with them) are probably appropriate for some uses. But what I see done in my life-critical real-time processor applications borders on criminal. Data hiding? How the f'ing hell do I check what is going on to the bit level is some twit determined to "hide the data". This is particularly apt right now, because we are adding a feature to our code that was almost trivial to add to our FORTRAN simulations, and because of the "cult of classes" C++ programming it's damn near impossible in the final product, and completely impossible to look at and tell what the heck it's doing. Trying to test it like a black box is never going to get to the level we need.

      We started having peer reviews of the code, and my colleagues and I are the designers of the system, so we would hypothetically need to sign off on it. We went for two hours to get 10 lines into it, no one could explain how it was working but that we should just "trust the compiler". That didn't fly with us, so the solution was to *not have us present at the peer reviews* since we were "disruptive"

    What we need is someone that can write straightforward procedural code, but no one seem to be willing or able to do it any more. It has all the features of a cult or a secret society, even when you get someone to understand and agree, they won't deviate from their dogma.

Re:A man after my own heart (0, Troll)

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

You sound inflexible and stuck in an era of programming long since left behind. I've worked with your kind before, but then you got "removed" from the project for causing too many problems and put in the corner glass case of emotion until one day you snapped and beat a keyboard against a desk and the HR department had a "real" (albeit stupid) reason to get rid of you as all the actual reasons they should have got rid of you for just didn't fly legally...

Something for everyone... (1)

Ossifer (703813) | more than 4 years ago | (#33006508)

"Pike also spoke out against the performance of interpreted languages and dynamic typing."

So, something for everyone to disagree with...

"Complexity" is a weird thing to hear... (0)

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

"Complexity" is a weird thing to hear whined about from a programmer who's apparently shilling for a language where this:

s := sum([]int{1,2,3})

is considered the "short way" to pass an array literal to a function...

Re:"Complexity" is a weird thing to hear... (1)

cbart387 (1192883) | more than 4 years ago | (#33006870)

I'll bite. What would you do to make it shorter? That seems pretty sane to me. I'm assuming the language's methods are determined by the signature. There's not that much (maybe the []) you could remove and still determine what is being passed in.

News Flash (2, Funny)

eclectro (227083) | more than 4 years ago | (#33006532)

Rob Pike likes to program in Forth [wikipedia.org] in his spare time.

It's unfortunate... (1)

LaRoach (968977) | more than 4 years ago | (#33006572)

...that they chose Java for their Android dev environment then...

import Wizards (1)

MadUndergrad (950779) | more than 4 years ago | (#33006574)

Do not meddle in the C++ of Googlers, for it is subtle and quick to segfault?

Excessive abstraction has always annoyed me (2, Insightful)

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

Almost everyone programming computers these days seems to be too eager to forget what the computer is actually calculating. When you are writing software that has any need to perform within certain memory or time constraints, or scale to any degree at all, you need to understand your program at that level.

For example, for high performance searching it is critical to understand pointer arithmetic to build an effective hash table. Without that, either your substitute search algorithm doesn't scale efficiently, or you're depending on a likely-less-than-optimal generic library.

I knew a database developer who insisted that each record in a database match the block size of the disk in use. The computer then calculated the block that contained the desired record and read/wrote only that block. Developers in high-level languages just wouldn't give a shit.

I knew a graphics developer who looked for every opportunity to use powers of two so he could use bit-masking and rotating: rotate 1 bit right to divide by two, or XOR with 0x07 to get modulus 8, etc.

Optimization by understanding what the computer is actually calculating is fading fast, and teaching Java at the university level only accelerates that trend.

Slashdot Interview (4, Informative)

Jodka (520060) | more than 4 years ago | (#33006580)

Slashdot previously interviewed [slashdot.org] Rob Pike.

Right. (0)

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

That's what I program in Esperanto.

Yes. And Go has the same problems (3, Informative)

Cyberax (705495) | more than 4 years ago | (#33006590)

Go has the same problems. They try to make it 'simpler' but along the way they actually make it more complex.

For example, try-catch-finally idiom is an easy and standard way to deal with exceptions. But no, they had to invent their own half-assed implementation just to be 'minimal'.

Also, they insist on using fucking _return_ _codes_ to indicate errors. WTF? It only makes code more complex because of tons of stupid 'if error' statements.

Personally, I like Rust's ( http://wiki.github.com/graydon/rust/project-faq [github.com] ) design more. At least, it has some new features.

I looked at Go. Not that impressed. (0)

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

I looked at Go. Not that impressed. Its easy to talk shit like this guy, but its a whole other thing to present a complete alternative.

If C/C++ is too complex... (1, Troll)

MacGyver2210 (1053110) | more than 4 years ago | (#33006624)

...perhaps he should find another line of work. Quite frankly, I love C++, and Java to a lesser degree. C and its big brother C++ are great languages to learn. They teach you more about how the computer uses the code you're writing than something like CodeBlocks where you just fit them together in the right order. Good luck debugging software at a real-world company if you don't like C.

As for Java, I think it's a pretty inefficient language, but so is C# and .NET applications in general. Any managed code has overhead.

If you hate Java so much, why did you base your phone OS around it?

I could see if he was railing against Assembly or Fortran or something, but then even still many people love Assembly too. My Machine Architecture teacher was a fiend for it, and once I learned how it really worked it wasn't that bad for me either. I, for one, am proud to say that I could manually write machine code (if I really had to) though I have no plans to do so. I think every true computer programmer should BE ABLE to do so, whether or not they ever do. That would, in my eyes, make a programmer worth their salt.

Re:If C/C++ is too complex... (1)

Anne Thwacks (531696) | more than 4 years ago | (#33006802)

many people love Assembly too

C is PDP11 assembler, rewritten by people who had tried using Macro-11 for fun.

I am still waiting for a Wii application where you write PHP by throwing cowpats at the screen, and fix the bugs by stamping on the Wii balance board!. Thats what I can user friendly.

Getting the bugs out of Android by shaking the phone upside down would be cool too!

Bring back Pascal! (0)

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

Bring back Oberon and Modula-2! and teach Pascal in school again!!!

Not to sound like a dummy amounst you... but when we worked with Pascal I 'got it'. Towards the end, C++ was making headway... that's win I had to change from a major in CS to a major in marketing with a minor in CS!! LOL!!!!!

Right! (1)

Kozar_The_Malignant (738483) | more than 4 years ago | (#33006658)

Who needs anything more complex than FORTRAN?

Understatement of the year (4, Informative)

ThoughtMonster (1602047) | more than 4 years ago | (#33006660)

You could at least mention that Rob Pike had a large part in designing Plan 9, a programming language called Limbo, and oh, UTF-8, and that by "he and other Google engineers", TFA means Ken Thompson, who created B (a predecessor to C) and had a part in creating an operating system called Unix.

These two people are the closest thing to a "computer scientist" there probably is, and I'd wager they know quite a lot about programming language design. Pike is known about his feelings towards programming languages like C++.

Rob Pike made a talk about Go and programming language design and makes some interesting points. It's available on youtube [youtube.com] .

Re:Understatement of the year (1)

MightyMartian (840721) | more than 4 years ago | (#33006852)

Which hardly makes them immune from criticism. "Programming languages or hard to learn!" has been a complaint since they were invented. Generally, more plain-english style languages like Cobol are fairly specific in application, and even there, once you get into later extensions to the language, they can become complex.

Most of the "simple" languages I've seen end up being either monsters, like pre-OOP BASIC, or Logo, both which were useful enough for teaching certain concepts (though when I learned Pascal in school, our teacher would get strange nervous ticks if you even mentioned BASIC).

These languages are the taught standards.... (1)

Immostlyharmless (1311531) | more than 4 years ago | (#33006672)

precisely because of what he seems to be complaining about, because they are feature packed and can do just about anything. Are they more difficult to learn and learn properly? Sure, but guess what? That's why its a job. Just like everyone else!

Your emergency room doctor knows the steps to bring you back from the half dead, very rarely does he need to use those skills when compared to everything else he does in the day. (broken bones, burns, run of the mill colds),but when he NEEDS that certain skill set to solve a major problem he has it available to him. Most other professions are the same way. You'll only need the hardcore stuff every great now and then; 95% of what you do will be the same old run of the mill, but when you need the hardcore, you need it, that's why they teach these languages as standards.

'Go' doesn't go far enough (1)

RafaelAngel (249818) | more than 4 years ago | (#33006674)

I tried my hardest back in college to really like programming. I failed. I was taught VB and Java. I just couldn't get around how foreign it is to me to think and write the way programmers do. I think we need a real natural language programming language that anyone can understand to use. Why not put the brains at Google to create such a programming language. I have been looking at Google's App Creator and it looks really neat. Visually creating programs is also another way to get people into programming.

And everyone at Google now speaks Esperanto (4, Insightful)

Call Me Black Cloud (616282) | more than 4 years ago | (#33006690)

How many words are in english? A lot. (According to the OED folks [oxforddictionaries.com] , "The Second Edition of the 20-volume Oxford English Dictionary contains full entries for 171,476 words in current use, and 47,156 obsolete words. To this may be added around 9,500 derivative words included as subentries.") How many words does the average native english speaker know? According to this random website [englishenglish.com] , 12,000-20,000 words. So English is complex, yet just 10% of the language meets a native speakers needs (less than that as we don't use all the words we know in normal conversation...except my wife when she's mad at me, then I hear every word she knows, many repeatedly)

So Java is complex. C++ is complex. I program in Java for my daily bread and I certainly don't use the entire language. It's only as complex as I need it to be. The complexity of my code is driven by what I'm trying to do, not by the language itself. And for code maintainability, I try to keep things as simple as possible.

C++ and Java make for good foundations (2, Insightful)

oxide7 (1013325) | more than 4 years ago | (#33006694)

It's been a long time since I've coded in a professional environment but I feel that having learned C++ you can learn any other language. It is complicated and verbose, but its extremely precise. Imagine having to learn how to manage memory with something like PHP. Actually -- because the new generation DOESNT LEARN C++ its why code is getting so sloppy now. There are easier languages sure, and using them can be fine, but if that's all you know, then you don't really know what your code is doing.

Partly Agree... (1)

jythie (914043) | more than 4 years ago | (#33006698)

While I disagree with his general tone/point, I can agree that Java/C++ are overused. Both languages have been trying to push themselves as universal solutions (just look at all the crud added to C++ over the years from other languages) to be used in all domains, rather then were they are actually useful.

I feel this is bad in two directions.. it shoves the language into a domain where it does not fit, thus producing sub-par results... and it also ends up pulling parts of that domain back into the language, resulting in an increasingly bloated standard with redundant ways of accomplishing tasks.

Esp in C++, one has to keep asking 'so which C++ paradigm was this programmer working in?

Stoopid Bloated Languages! (0)

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

We need to get rid of all the cruft of C++ and Java.. Things like Exceptions just add to Bloat... That's why GO is so superior.

Right on Rob... Go go!! (1)

grepya (67436) | more than 4 years ago | (#33006720)

... Go would be perfect if it also allowed for *some* manual memory management along with garbage collection. A large part of java's complexity that I see in big server type situations (> 8 G heap size) is that managing the gc parameters is almost a full time job. this [sun.com] is the theory and set of options you need to learn and internalize to get semi-satisfactory behavior from Sun's jdk1.5 gc. The complexity has only increased.... not decreased in later jdk's.

Emperor is Naked (1)

oakwine (1709682) | more than 4 years ago | (#33006722)

Yes, both languages are giant log jams of bilge. Glad someone said so. Back to C! Back to Scheme! We need a new OS too. There hasn't been a decent OS since CP/M.

Complexity (0)

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

Obvioulsy, hello world is not in any way a representation of the language as a whole, but it seems to me that Go is more complex that C++ and Python.

Go:
        05 package main

        07 import fmt “fmt” // Package implementing formatted I/O.

        09 func main() {
        10 fmt.Printf(“Hello, world; or ; or \n”);
        11 }

C++ (haven't used in a while)

        import #iostream

        int main(){
            cout "Hello World"
        }

Python

    def printer():
        print "hello world"

Programming is Hard (2, Interesting)

CSHARP123 (904951) | more than 4 years ago | (#33006734)

I RTFA, really all he is saying is programming is Hard. Well Duh, I am sorry to hear that from Google Engineer. May be he will be better off using C# or VB.Net. Welcome to programming.

So... we'll end up back at Atari BASIC? (3, Interesting)

Mad-Bassist (944409) | more than 4 years ago | (#33006744)

I kinda miss those days--easy to learn and embedded 6502 machine code subroutines to make things move faster.

He's just pimping Go (4, Informative)

istartedi (132515) | more than 4 years ago | (#33006750)

The summary makes him sound like a winer with no solution. If you read TFA, you see he's pimping Google's new language, Go. That's perfectly understandable since they pay him; but TFA also points out that languages accumulate cruft over time, and Go is a baby.

Those supposed-to-help IDEs are bad too (0)

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

I used to be able to code in Basic, then in Turbo-Pascal, then in Turbo C, then in Turbo Assembler, Javascript, PHP.

But when I start XCode... I simply freeze because the damn thing is way to complex to even begin to understand what the hell I'm supposed to do with all those windows and menus.

"your language is too complex" (0)

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

That's the standard complaint of language designers about each other's product.

But which would you prefer: Simple programs in a complex language, or complex programs in a simple language?

(Not just an academic question. In a IRAD experiment on implementing TCP, the "control programmer" wrote about 300 lines of C for the 'ACK or Timeout' part of the protocol. I wrote 5 lines of Ada95.)

It's what you do with it (0)

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

C++ is a metalanguage, in which you can define your own domain-specific language. That's all nice, but I suggest you don't. When you override operators like '=' and '+', you make things more confusing rather then prettier. Use a class when you need one, there's nothing wrong with structs and handles.

Before writing a program, ask yourself if it's inherently object oriented by nature. Sure you can model everything into a set of classes, but that doesn't mean you should always do so. I'm using dynamic datatypes, private attributes, inheritance, interfaces and then some all in pure C because they've been useful and are easy to implement. I'm not using Java-like exceptions and garbage collectors because I'm better off without them.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?