Y'all are a bunch of wankers!

An Interview with A. Stepanov

Question:
Java is a very new language, still it lacks templates, so it prevents using Generic Programming. Everything must be a class. What do you think of Java?

Answer:
I spent several months programming in Java. Contrary to its authors prediction, it did not grow on me. I did not find any new insights - for the first time in my life programming in a new language did not bring me new insights. It keeps all the stuff that I never use in C++ - inheritance, virtuals - OO gook - and removes the stuff that I find useful. It might be successful - after all, MS DOS was - and it might be a profitable thing for all your readers to learn Java, but it has no intellectual value whatsoever. Look at their implementation of hash tables. Look at the sorting routines that come with their "cool" sorting applet. Try to use AWT. The best way to judge a language is to look at the code written by its proponents. "Radix enim omnium malorum est cupiditas" - and Java is clearly an example of a money oriented programming (MOP). As the chief proponent of Java at SGI told me: "Alex, you have to go where the money is." But I do not particularly want to go where the money is - it usually does not smell nice there.

http://www.stlport.org/resources/StepanovUSA.html
Permalink software developer 
March 18th, 2007 12:22am
who dat? and why would his opinion be interesting/relevant?

if you don't ever do OO coding then Java is not the language for you at all. it's a language for who do OO and can bare with some of its 'everything is an object' comprises.

and who talks in Latin during an interview? wtf. as if money had anything to do with it. frigging elitist.
Permalink Geeky McGeekerson 
March 18th, 2007 1:09am
he wrote the STL.
Permalink hello. 
March 18th, 2007 1:15am
for the first time in my life programming in a new language did not bring me new insights."

Rough translation:  I'm only happy when I'm confused about something.  ;-P.

I know the feeling, though.

C++ is more insightful because you are dealing more closely with the OS libraries as the OS sees it; particularly in Windows, I would think.

But Java GUI and Win32 GUI programming, for example, still strike me as being remarkably similar.
Permalink Send private email LinuxOrBust 
March 18th, 2007 8:54am
Well, ok. That's who he is. Still the people who spend years and years writing libraries and so forth have much different users than the rest of us (their users are the rest of us). Is it not surprising he'd not like a template-less language (Java has some generics now)?
Permalink Geeky McGeekerson 
March 18th, 2007 9:41am
What I don't understand is that Windows itself is already written, we just users (as programmers).  Maybe he's talking about contributing to the Gtk+ base for Gnome.  hehe.
Permalink Send private email LinuxOrBust 
March 18th, 2007 10:34am
See, if we had all just stayed with C++, there would be no need to use C++ just to make libraries for other languages.
;-)
Permalink Send private email LinuxOrBust 
March 18th, 2007 10:39am
Consider the source. STL is incredibly inconvenient. Me thinks AS needs to lash himself to find god.
Permalink son of parnas 
March 18th, 2007 10:59am
> STL is incredibly inconvenient.

Interesting.  How so?
Permalink software developer 
March 18th, 2007 11:26am
> Interesting.  How so?

What kind of list doesn't know it's beginning and end? Having to do begin end all the time is crazy.
Permalink son of parnas 
March 18th, 2007 11:29am
What do you mean know its end? Is the complaint that you have to call begin() and end() on a list? What are you expecting to be able to call list[size-1] ? Use a vector.  A linked list doesn't gaurantee contiguous memory.
Permalink software developer 
March 18th, 2007 11:38am
> A linked list doesn't gaurantee contiguous memory.

Typically that's why we use abstractions, so I don't have to care. STLers spent all their time arguing about performance and spent no time on features and programming models.
Permalink son of parnas 
March 18th, 2007 12:28pm
If you don't want to care, just use vector all the time.  It's a better array and that's all you (well.... nearly?) have to think about.

What you've just said is I want an abstraction that makes a link list look just like a vector.  It's not simple. I'm not even sure its possible.  Do you expect to able to insert items into the middle of a list in constant time?  Do you expect to able to randomly access items? 

> spent no time on features and programming models.

What's missing and what's a programming model?  They are foundational classes.  Let the STLers argue performance and build your own features on top of vector.
Permalink software developer 
March 18th, 2007 12:43pm
> build your own features on top of vector.

Which is why we didn't need it in the first place. It did so little you had to add to it to make useful. Thus Boost.


And I don't think I've ever needed a linked list or a vector. I need a way to store stuff in a list.
Permalink son of parnas 
March 18th, 2007 12:48pm
Oh.  That's hardly true and it doesn't seem consistent.  Someone who doesn't care or even know the difference between linked lists and vectors can hardly claim that they needed some boost magic to make the stl useful.

Again if you just need to store things in a list, put them in a vector. 

What part of Boost did you need to make the stl containers useful?
Permalink software developer 
March 18th, 2007 12:52pm
> Someone who doesn't care or even know the difference between linked lists and vectors c

I didn't say that I don't know the difference. I said I've needed to store things in a list, not a vector or a linked list.
Permalink son of parnas 
March 18th, 2007 12:55pm
well.. You seemed so puzzled by the begin and end functions of list. OK, so you knew the difference, but chose to use list which had these requirements that you found "incredibly inconvenient" and "crazy."  Riiiiiiight.
Permalink software developer 
March 18th, 2007 12:59pm
You do realize begin end is used everywhere for iteration?
Permalink son of parnas 
March 18th, 2007 1:06pm
What is your point?  You miss array[0] ? 

If you want to wrap functions that have the form for_each(c.begin(),c.end(),func) to avoid passing begin and end. I'm sure it can be done...
Permalink software developer 
March 18th, 2007 1:41pm
> You miss array[0] ?

I prefer ruby's approach.
Permalink son of parnas 
March 18th, 2007 4:05pm
"for the first time in my life programming in a new language did not bring me new insights."

the purpose and function of a programming language is to solve problems. It is not so developers can feel enlightened while writing code.

that fellow needs to get off his high horse and spend a few years outside academia.
Permalink arg! 
March 18th, 2007 7:26pm
The correct abbreviation for "standard template library" is POS.
Permalink  
March 19th, 2007 5:33am
software developer, quoting this thread on JOS is quite worthy of you.
Permalink son of parnas 
March 19th, 2007 10:38am

This topic is archived. No further replies will be accepted.

Other topics: March, 2007 Other topics: March, 2007 Recent topics Recent topics