aspose file tools*
The moose likes Beginning Java and the fly likes Worried about java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Worried about java" Watch "Worried about java" New topic
Author

Worried about java

Pratik D mehta
Ranch Hand

Joined: Jul 29, 2010
Posts: 121

I have just started to learn java and i am hearing from people that java has no future scope because it is slow and asp.net , php , c# would be in use at large , Can someone justify or simplify this


Understanding is Everything - Peter Lord
Deepak Bala
Bartender

Joined: Feb 24, 2006
Posts: 6662
    
    5

Can someone justify or simplify this


No one can, because it is not true


SCJP 6 articles - SCJP 5/6 mock exams - More SCJP Mocks
Deepak Bala
Bartender

Joined: Feb 24, 2006
Posts: 6662
    
    5

"idity mum" please check your private message for an important administrative matter
Rogerio Kioshi
Ranch Hand

Joined: Apr 12, 2005
Posts: 689
You forgot people that say Ruby on Rails is the future.


SCEA 5 (part 1), SCBCD, SCWCD, SCJP, CLP, CLS
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61608
    
  67

People are always saying that XYZ is "the future". Grain of salt.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

Pratik mhta wrote:I have just started to learn java and i am hearing from people that java has no future scope because it is slow and asp.net , php , c# would be in use at large , Can someone justify or simplify this

There are so many things wrong with that.

Java is *very* fast. It has one of the best virtual machines ever made with *very* good optimization. PHP is (mostly) garbage, and as far as I'm concerned, has no place doing real work when *so* many better options exist. (Of course it's usable, and a lot is done with it--that doesn't mean it's a good choice, though.)

It's also important not to confuse Java-the-language with Java-the-ecosystem. Java-the-language has some issues (in my opinion), some of which may be addressed by Java 7. Java has *very* good development tools, and unlike .NET, there are more than two implementations (IF you count Mono as a complete implementation). The JVM has some of the best languages running on it (although F# is quite good as well).
Pratik D mehta
Ranch Hand

Joined: Jul 29, 2010
Posts: 121

David Newton wrote:
Pratik mhta wrote:I have just started to learn java and i am hearing from people that java has no future scope because it is slow and asp.net , php , c# would be in use at large , Can someone justify or simplify this

There are so many things wrong with that.

Java is *very* fast. It has one of the best virtual machines ever made with *very* good optimization. PHP is (mostly) garbage, and as far as I'm concerned, has no place doing real work when *so* many better options exist. (Of course it's usable, and a lot is done with it--that doesn't mean it's a good choice, though.)

It's also important not to confuse Java-the-language with Java-the-ecosystem. Java-the-language has some issues (in my opinion), some of which may be addressed by Java 7. Java has *very* good development tools, and unlike .NET, there are more than two implementations (IF you count Mono as a complete implementation). The JVM has some of the best languages running on it (although F# is quite good as well).


Hello david
Can you explain the overview of java ecosystem , the different things made available by java to be used for specific purposes eg j2me for mobile evironment .
It would be of gret help as i have just started with java 5.0 few days back and any things i should be aware of before diving into java.
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

There's too much to list. But Java-the-ecosystem is the JVM, Java itself, and the huge number of libraries available to do nearly everything. J2ME (as you mention) and JEE (enterprise Java) are two chunks of it.
Pratik D mehta
Ranch Hand

Joined: Jul 29, 2010
Posts: 121

David Newton wrote:There's too much to list. But Java-the-ecosystem is the JVM, Java itself, and the huge number of libraries available to do nearly everything. J2ME (as you mention) and JEE (enterprise Java) are two chunks of it.

Ok david
I am interested in going for designing models for intelligent data retrieval and connecting resources efficiently and designing interfaces , how should i proceed with that in java also may be what are the other languages , please elaborate i am very new to this.
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

That is not enough of a problem statement for anyone to be able to help.
Pratik D mehta
Ranch Hand

Joined: Jul 29, 2010
Posts: 121

David Newton wrote:That is not enough of a problem statement for anyone to be able to help.

I meant it not as a problem statement but as in i can use Java script for web designing and so forth , if you can tell me something that will be important as i get started with Java it will be of good help to understand the Java technology or may be its map.
Thank you
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15299
    
    6

Don't really see this as a job discussion, so I moved it to a more appropriate place to discuss java and how to get started with it.


GenRocket - Experts at Building Test Data
Deepak Bala
Bartender

Joined: Feb 24, 2006
Posts: 6662
    
    5

Javascript and java are 2 different things. Not to be confused with one another

If you have a specific problem description in mind feel free to tell us. We can tell you which feature / library in java can solve the problem.
Arun C. Giridharan
Ranch Hand

Joined: Jul 11, 2010
Posts: 96
Due to the complexity of java go language was introduced !! by google............................[god knows what complexity !!]
Deepak Bala
Bartender

Joined: Feb 24, 2006
Posts: 6662
    
    5

Due to the complexity of java go language was introduced !! by google.


Complexity

Well I think that point is debatable. My definition of complexity is EJB 1.0
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

The FUD folks have been claiming that Java is "too slow" since it first came out. The reality is that the JVM has excellent optimization and for nearly all real world applications, there is no difference in execution speed. More, the argument has been used since the very first high level languages were invented in the 1950s. Assembly is too slow. Fortran is too slow. C is too slow.

Machines are cheap, engineers are expensive. Worry about the expensive parts of the system.
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

(Well, in all fairness, it *was* pretty slow when it first came out.)
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

David Newton wrote:(Well, in all fairness, it *was* pretty slow when it first came out.)


Yes, as was Fortran, ..... And even then, the point of the language was to speed up the engineers, not the hardware.

One noticeable language that started out fairly fast was the original K&R C, which maps nearly exactly to the PDP-11 assembly code. It didn't take much to write pretty good PDP-11 code. That didn't stay important long, as the Vax quickly became the machine of choice for early C implementations (see Unix). But even there, the Spac, Mips, and subsequent RISC machines made the carefully tweaked C code much less optimal than folks thought.

Software gets faster when good engineers have time to work on it. The 90/10 rule holds, 10 percent of the code is responsible for 90% of the slowness.

As always, there are exceptions, embedded systems have traditionally been more limited in resources, but even there, the trend is to wider processors (16-bits, then 32-bits) with more RAM and faster clocks.

Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18978
    
  40


While we are on the subject of slowness and hardware ... Here's my pet peeve... what the heck happened to memory speed?

Remember the days when memory kept up with the processor? When the processor loaded data from memory, it just works? Or in some cases where it didn't, the processor had to add a wait cycle -- ouch, the processor had to wait an extra cycle to load memory.

Now, when the CPU encounters a cache miss, the processor sometimes has to wait hundreds of cycles, depending on which level of cache missed. Why hasn't memory kept up with the processor?

Henry


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

Memory has gotten a tiny bit faster every year. Memory density is following Moore's law, but memory speed does not.

Henry's right, a cache miss that forces the CPU to go out to main memory is deadly. This is why CPUs have ever larger caches on chip and having level 3 cache on chip is common these days. There are real engineering challenges, and ever larger caches are don't really work with lots of cores. Since modern CPUs are all 4 core, and soon to be 16, we are going to be stuck with slow memory access for a long time.

The obvious approaches, such as speculative preloading of memory, have their own problems, such as overwhelming the memory-to-CPU bandwidth.

But back On Topic, speed of Java is really not an issue any more.

There are other things that are much more reasonable things to worry about, like the ever tempting efforts to "improve" the language by adding features. I'd be happy if the language itself never changed again. Libraries, sure, but the language itself, I can live with the devil I know.
Pratik D mehta
Ranch Hand

Joined: Jul 29, 2010
Posts: 121

I have another question -
Java runtime environment is the the Java virtual machine ?
What does java plugin do ?
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14338
    
  22

Arun Giridharan wrote:Due to the complexity of java go language was introduced !! by google............................[god knows what complexity !!]

Do you have a source which confirms this? I don't think Google came out with Go because they thought Java was too complex. I don't think Go has anything to do with Java at all.

Pratik D mehta wrote:Java runtime environment is the the Java virtual machine ?
What does java plugin do ?

The Java runtime environment = the Java virtual machine + things around it that are necessary (such as the standard library classes). The Java plugin is a plugin for web browsers, to enable them to run Java applets embedded in web pages.


Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 8 API documentation
Deepak Bala
Bartender

Joined: Feb 24, 2006
Posts: 6662
    
    5

Do you have a source which confirms this? I don't think Google came out with Go because they thought Java was too complex. I don't think Go has anything to do with Java at all.


Its true according to javaworld. I was stumped initially too

http://www.javaworld.com/community/node/4760
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

I don't see GO as related to Java at all either. Its a systems implementation language, in the spirit of C or Bliss. Its what the wizards use to write the critical tools, i.e. RDBMS, memcached, etc.

Its time to retire C and all its PDP-11/Vax baggage. GO has a shot, but new languages to replace old ones are invented every few years.
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

It's related in that it was (at least partially) a reaction to the perceived complexity of Java and C++; this was posted about a week or two ago around the net. The people that invented the language are telling us it was a reaction to Java/etc.

As far as it being a "systems implementation language" thus not related to Java... I don't get that, as it seems to be a pretty high-level, dynamic-like-but-static language suitable for implementing just about anything.
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

David Newton wrote:As far as it being a "systems implementation language" thus not related to Java... I don't get that, as it seems to be a pretty high-level, dynamic-like-but-static language suitable for implementing just about anything.


The "systems implementation" wording came from the announcement presentation at googletechtalks.

They did, in that talk, discuss that the complexity of current Java (which I took to mean the language and the common libraries and the libraries you need to include to do common stuff like talking to a remote HTTP server) driving them for a simpler design.

One can argue that any language can be used for any problem. And GO is strong enough that it can be used for a lot of things. But I will argue that some languages lend themselves to specific problem domains. Java is not a good one to label, it doesn't do a lot of critical stuff that it should for a lot of business uses (i.e. where is the Currency/Money) data type? And until they hacked in the reflection support, it lacked support for a lot of the idioms that are in constant use in systems work. (returning functions to execute)

So if I was given a clean sheet requirement to implement a RDBMS (which I did in Bliss 30 years ago), I would look long and hard at go and only consider Java for the implementation.
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

Pat Farrell wrote:They did, in that talk, discuss that the complexity of current Java (which I took to mean the language and the common libraries and the libraries you need to include to do common stuff like talking to a remote HTTP server) driving them for a simpler design.

Most of what I see that's important in Go isn't really directed at built-in app-level functionality, but rather at typing, dependencies, OOP, GC, and multi-core.
And until they hacked in the reflection support, it lacked support for a lot of the idioms that are in constant use in systems work. (returning functions to execute)

Or use interfaces. But the word "systems" may be throwing me off, because there's no application where I don't commonly pass functions/implementation around.
So if I was given a clean sheet requirement to implement a RDBMS (which I did in Bliss 30 years ago), I would look long and hard at go and only consider Java for the implementation.

I'm not sure what you're actually saying here, that you'd only implement an RDBMS in Java? Other than Go not actually being done, what in the language would lead you to believe Java is a better choice?
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

David Newton wrote:the word "systems" may be throwing me off

The term is not used as much today as it was decades ago. I use it, as it was, to mean "systems tools" like compilers, linkers, editors, grep/find. Things used by programmers, not applications used by consumers.

David Newton wrote: that you'd only implement an RDBMS in Java? Other than Go not actually being done, what in the language would lead you to believe Java is a better choice?

I'm trying (and failing) to say that given a clean slate, I would not pick Java to implement the next great DBMS. Not today. And I would not have Java at the top of my list if I was implementing a new compiler for a new language. I think that Java would be a poor choice.

Any DBMS built today would have to be designed for huge numbers of core processors, and large numbers of servers made up of lots of those multi-core chips. I've written in many threads here on the Ranch that I don't think Java' current threading model is scalable.
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

Pat Farrell wrote:The term is not used as much today as it was decades ago. I use it, as it was, to mean "systems tools" like compilers, linkers, editors, grep/find. Things used by programmers, not applications used by consumers.

Okay; I assumed that was what you meant, I just didn't get the relation between function pointers and systems programming, since it's a common technique across all domains.
Any DBMS built today would have to be designed for huge numbers of core processors, and large numbers of servers made up of lots of those multi-core chips. I've written in many threads here on the Ranch that I don't think Java' current threading model is scalable.

Oh, okay.
Deepak Bala
Bartender

Joined: Feb 24, 2006
Posts: 6662
    
    5

I'm trying (and failing) to say that given a clean slate, I would not pick Java to implement the next great DBMS. Not today. And I would not have Java at the top of my list if I was implementing a new compiler for a new language. I think that Java would be a poor choice.

Any DBMS built today would have to be designed for huge numbers of core processors, and large numbers of servers made up of lots of those multi-core chips. I've written in many threads here on the Ranch that I don't think Java' current threading model is scalable.


I thought it was the other way round , that you would certainly consider java for the implementation.

As for the thread scalability thing, I believe you advocate Scala ? How would it compare to 'go' ?
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 39791
    
  28
Pat Farrell wrote:The FUD folks . . .
What's FUD? Does it mean this?
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

Yes, sorry for the abbreviation. Fear, Uncertainty, and Doubt. Its a common technique to attack an idea without actually putting any effort into the argument.
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

Deepak Bala wrote:As for the thread scalability thing, I believe you advocate Scala ? How would it compare to 'go' ?

Too early for me to say, I will need to use both (not just read about them) to make a fair comparison.

From the reading I've done, go looks to be less of a leap, closer to more traditional languages. Whether that translates into a real advantage will take some real world programming. I tend to need a fair amount of time, say six months to become facile enough to talk intelligently, until then, take what I say with a grain of salt.
Arun C. Giridharan
Ranch Hand

Joined: Jul 11, 2010
Posts: 96
Do you have a source which confirms this? I don't think Google came out with Go because they thought Java was too complex. I don't think Go has anything to do with Java at all.



On the launch of go language ......it was said go will override the complexity of java.
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15299
    
    6

Arun Giridharan wrote:
Do you have a source which confirms this? I don't think Google came out with Go because they thought Java was too complex. I don't think Go has anything to do with Java at all.


On the launch of go language ......it was said go will override the complexity of java.


That doesn't necessarily imply that that is the reason for Go's creation. That's just one (arguably) feature of Go. It may very well be true but you might be reading into it a bit too much. Now, if someone show's me a quote like "Go was created because Java is too complex" then we have something to talk about.
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

Arun Giridharan wrote:On the launch of go language ......it was said go will override the complexity of java.


This is a link to the announcement:
Go announcement its on YouTube

In the very begining, the speaker uses the phrase "systems language" and "its a systems language, in the sense that we intended to be written [sic] to be used to write web servers and other, you know, systems aspects like that."

Also "its concurrent, because its really important in the modern world"

"So, although, its designed as a systems language, it has much broader use than just that.

I would like a proper citation of who said, and where we can find the quote, about the complexity of Java being a driver. I could believe it was said, but I don't see it in the announcement.
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

It's in the FAQ, and in the article linked to, and in the interview the article refers to.

It's Rob Pike; he's like all famous. The link from the article:

http://infoworld.com/d/developer-world/google-executive-frustrated-java-c-complexity-375
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14338
    
  22

Strange. Especially because Rob Pike says it, because he's not some management bobo who doesn't really know any technical stuff.

Java the language is not very complicated at all, and it's much simpler than C++ (which does have a lot of intricate pitfalls). I don't see the need for a language that's "simpler" than Java. If it's not the language itself he's talking about, but the ecosystem around it (with the thousands of libraries and frameworks) - that's what I regard one of the greatest strengths of Java: you can get a library or framework for anything, and you often have choice between multiple implementations.

If Go would ever become popular, then it will grow as well, new language features will be added and lots of people will be writing libraries and frameworks in it, and after a while it will be just as "complex" as Java. I see that I'm not the only one with this idea:

InfoWorld wrote:One member of the audience, Larry Augustin, the CEO of customer relationship management software provider SugarCRM, agreed with Pike's assessment that C++ and Java have gotten too complex, although he noted that this typically happens with all languages as they grow to meet a wider range of use cases.

"The reason that these languages have grown in complexity is because the more they are used, the more errors and ambiguities we've found, and the attempts to remove those ambiguities and errors have created something more complex," said Augustin, who has a background in software engineering and programming language design.

"I appreciate his goal," he said of Pike's efforts. "The question is can he achieve his target result? or does Go [become more complex] as more people use it," Augustin said.
Deepak Bala
Bartender

Joined: Feb 24, 2006
Posts: 6662
    
    5

Jesper Young wrote:Strange. Especially because Rob Pike says it, because he's not some management bobo who doesn't really know any technical stuff.

Java the language is not very complicated at all, and it's much simpler than C++ (which does have a lot of intricate pitfalls). I don't see the need for a language that's "simpler" than Java. If it's not the language itself he's talking about, but the ecosystem around it (with the thousands of libraries and frameworks) - that's what I regard one of the greatest strengths of Java: you can get a library or framework for anything, and you often have choice between multiple implementations.

If Go would ever become popular, then it will grow as well, new language features will be added and lots of people will be writing libraries and frameworks in it, and after a while it will be just as "complex" as Java. I see that I'm not the only one with this idea:

InfoWorld wrote:One member of the audience, Larry Augustin, the CEO of customer relationship management software provider SugarCRM, agreed with Pike's assessment that C++ and Java have gotten too complex, although he noted that this typically happens with all languages as they grow to meet a wider range of use cases.

"The reason that these languages have grown in complexity is because the more they are used, the more errors and ambiguities we've found, and the attempts to remove those ambiguities and errors have created something more complex," said Augustin, who has a background in software engineering and programming language design.

"I appreciate his goal," he said of Pike's efforts. "The question is can he achieve his target result? or does Go [become more complex] as more people use it," Augustin said.


Pretty much mirrors my thoughts.

More choices != Complexity

Verbosity != Complexity

I was making the same C++ comparison in my head when I heard the word 'Complex'
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

Deepak Bala wrote:Verbosity != Complexity

Depends on what you mean: verbosity is most certainly one type of complexity. The more there is to take in the more cognitive overhead there is. The more the problem is being obscured by the solution the more cognitive overhead there is.

One of Java's greatest weaknesses (to me) is that every solution looks like Java--not like the problem I'm trying to solve. This is somewhat alleviated by static imports, foreach, etc. but remains wrecked by reflection and lack of first-class functions. Workarounds require enough additional code to make the tradeoff questionable.

I spend a tremendous amount of time reading code (especially these days). Is reading C++ easier than reading Java? Of course--but I set my bar higher. Is reading Java easier than reading a higher-level language? Most emphatically not. Every program is a DSL: understanding a program mandates understanding its domain. Anything that obscures the domain is detrimental and hinders comprehension.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Worried about java