| Sajha.com Archives | ![]() |
| Username | Post | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kera kaji | Posted
on 14-Jan-04 09:49 AM
I read lots of java books. but still the concept of programming does not get into my head. what other book should i try or what should i learn java. i am taking java right now but i have not understand quite weill. Can anybody suggest me anything? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bhole_babaji | Posted
on 14-Jan-04 09:57 AM
I suggest these books for beginners. 1. Core Java 2 Vol 1 : the fundamentals Cay Horstmann 2. Core Java 2 Vol 2 : The advanced features Cay Horstmann 2. Jave 2 : The complete Reference. Hebert Schildt |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JavaBeans | Posted
on 14-Jan-04 09:25 PM
Kera, Most books written for Java novices are similar; they are only different in the writing style of the authors. The book you have at the moment could be as good as any. It will take some time in getting used to programming any language, not just Java, especially if this is your first ever programming course. If you have a knack for discrete mathematics or higher level calculus then it will be easier for you to grasp the programming concepts much quicker. Otherwise, depending on how quickly you can digest steep learning curves, it may take you a little longer in order to make sense of fundamental concepts such as integrals, sets, aggregation, abstract, etc. So, whatever level of programming aptitude you have in Java at the moment, there is only way to improve it: code as much as you can after you've come across a new concept. Here is a suggestion: Download the latest JDK from Sun if you haven't already done so. Pick your favorite OS. Then using your favorite text editor, emacs or vi in Unix/Linux, or notepad in Windows start churning those texts into Java bytecode. Then let the interpreter go to work, and analyze how your current result differed from the one before. Repeat this until you get the hang of it. If you cannot understand what your compiler is doing or if you have any Java related question, post them here and I, or someone else, will try to answer them for you. Best, -JavaBeans |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Steve20 | Posted
on 15-Jan-04 07:23 AM
Thanks Javabean, I started taking Java in my first year of univeristy and I have done about 4 courses. i really dont want to do JAVA or programming for that matter but I had to take it as it was part of my curriculum. Now I am starting on C++..it seems even worse..what do you guys think about C++ and Java? which one is better? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| salakjith | Posted
on 15-Jan-04 08:04 AM
Java came after C++ and so it tries to solve problems with C++. However, Java is generally slower than C++ as it is a semi-interpreted language, while C++ compiles directly to the native machine language. There are, however, other alternatives to both Java and C++. C#, VB.NET etc are similar to Java but are faster than Java. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kera kaji | Posted
on 15-Jan-04 08:23 AM
thanks all of you....i think only way to improve my programming skill is to do more coding... |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JavaBeans | Posted
on 15-Jan-04 09:14 AM
Steve20, The choice of the programming language you choose depends on what the task at hand is. I could give you more accurate feedback if you tell me what you're majoring in, and which industry within IT/engineering you intend to pursue after graduation. There is a wealth of information on the web in the similarities and differences between Java and C++. The deciding factor, again, depends on what it is you are trying to accomplish with the language. Salakjith, Java does not try to solve problems with C++; rather, Java uses C++-like methodologies and construct because it is a C++-based language. They both have the same syntax. The major similarity ends there. Java being slower than C++ is a misconception, really. Those, who are not familiar with Java, have not heard of JIT, which is an answer to the problem you mentioned. JIT (Just In Time) is a VM plugin that speeds up VM execution by compiling bytecode to native machine code. Many tests have indicated that Java is in par, if not better than C++, speedwise. The JIT class library has been on JDK since its inception. Java embedded programmers who work on small appliances (i.e. PDA's, mobile phones) utilize this feature more often than other programmers. However, Java's real strength is in the enterprise server market, where it has a solid lead with J2EE platform. Both C# (Microsoft's version of Java) and VB.net (object oriented visual basic) are part of Microsoft's effort to push the enterprise server market with their .NET implementation. Obviously, they can't be faster than Java because Microsoft also uses their own VM called Microsoft Virtual Machine. Gates has been a serial cheater since he bought the Quick and Dirty Operating System for $1000 before calling it MS-DOS some years ago. Go figure... Java's solution is targeted toward much larger enterprise while Microsoft's solution is for more middle to small size companies. More importantly, Java runs in all popular OS while Microsoft's solution only runs on Windows. And I could go on... Let me know if you've got more specific Java question. -JavaBeans |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Steve20 | Posted
on 15-Jan-04 09:38 AM
Hello Java, My program is kinda good.. I am majoring in Distributed Computing and telecomm. Upon graduation I can go into Network field or just progam as I will be learning JAVA and C++ extensively. Until now I plan to dive into Telcomm field as it is more attracting less stressful to me. As I started learning JAVA ( maybe it was cuz of my teacher) I found it so damn broing...NOt that I was ba din maths..I always did good in stuffs like Calculus and discrete maths..but somehow it doesnt attract me... |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| salakjith | Posted
on 15-Jan-04 11:11 AM
JavaBeans, the performance of Java with JIT being in par with native compilers like C is a bit of a wishful thinking. Java's garbage collection and other automatic memory allocation features are bound to hamper performance. JIT can make the byte code execute faster than without it, but it does not compare with pure native and unmanaged code. On top of that, Java's UI framework Swing, has been notoriously slow and the move is towards simi-native libraries like SWT. However, .NET languages are, as a matter of fact, found to
where each language was iterated over computing the basic The reason why .NET languages tend to be faster than Java Having said that, I would say just use the technology that |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bhole_babaji | Posted
on 15-Jan-04 02:35 PM
VB.NET is friendlier to the programmer. Its IDE is very good. But I prefer elegance of the JAVA. But the claims of .NET faster than C is totally false. It is same as someone claiming programmes in C is faster than programs written in assembly. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JavaBeans | Posted
on 15-Jan-04 10:04 PM
Steve20, IMHO, I would concentrate more on low-level languages such as Assembly, HDL and C rather than on C++ or Java. Telecommunication engineering requires a lot of low-level expertise in the fields of distributed computing and networking. And these languages, which cater to the middle-bottom of the OSI model, are used quite extensively in those fields. In contrast, high-level languages such as C++ or Java are higher up on the OSI model, and will not help you to accomplish much as a telecommunication engineer. One of your tasks might be to create a routing algorithm for a given network; certainly, this requires one of the low-level languages to be effective. I hope you make an informed and sound decision. Good luck. Salakjith, C and C++ are two different programming conundrums; mainly C++ is object-oriented and C is procedural. I would not compare C to Java as they ensue different paradigms. If you re-glance at my post you will find reference to 'C++'. I will talk about this a bit later. Nevertheless, collectively speaking it seems you do have some understanding of the two different frameworks involved: J2EE and .NET. I use the word 'J2EE' here instead of Java because it’s a platform made for the enterprise, which is composed of several different Java components in the same way .NET is made up of its own bells and whistles. And these three seem to be the main issues here: performance, platform, and language. The Performance issue: Sun, from the very beginning, has always mentioned that Java was created to be portable; the phrase 'write once, run everywhere' has stuck to Java ever since. Consequently, in its true Java environment and as an expense, it has given room to be slower compared to the native code-compiled language like C. Sun thought this was well worth the expense, and I couldn't agree more. Here is the source : WhyPortability Matters That does not mean Java cannot be native-code compiled. It can. As mentioned before, this feature is mostly used by Java embedded-system developers. Other than the JIT (a VM plug-in) feature I've mentioned in my previous post, a software engineer can utilize a tool called 'native code translator', which translates the Java bytecode into native code. And this results in the native code compilation almost at par with C++. This has been known since Java's inception as this article proves: target=_blank>http://www.disordered.org/Java-JIT.html> Boosting Java Performance Here is an example table used in that article:
On your comments about pure C being slower than Visual C++ and C# is unfounded. If you start to rationalize the existence of C (i.e. Unix/Linux, Cisco's routing software, Real-Time Systems) you will begin to understand why. The Platform issue: Since .NET runs only on Windows, it's not a surprise that the languages in it are optimized for the OS. Therefore, it would be neither fair nor advantageous in comparing the performance of Java on Windows. Obviously, Java is not optimized to coordinate with Windows DLLs. Therefore, if one is planning to choose .NET solution as a platform of choice then one should use the .NET languages to develop needed software. It's more productive this way. Some of the limitations of this could be the scalability and portability issues, or its inability to provide more rigorous and complex-enterprise driven systems. Hence, J2EE is much more difficult to deploy than .NET. As I've indicated before J2EE is targeted toward large enterprises whereas .NET seems to attract small to mid size companies. Here is recent talk on this issue from Slashdot: target=_blank>http://developers.slashdot.org/developers/03/09/05/1855250.shtml?tid=108&tid=109&tid=126&tid=156&tid=187> J2EE vs .NET The Language Issue: C# resembles Java although Gates hates to admit it. However, C#'s only potential, as far as I can see, is if a programmer is stuck to .NET. Besides this, C# has not done much thus far. Not only it has weaker security features, but syntactically it's downright sloppy. The Visual C++ seems to be widely used by Games programmers rather than the Enterprise ones. And Java is moving away from the GUI paradigm at the Enterprise level. The source: target=_blank>http://web.zdnet.com.au/builder/program/java/story/0,2000034779,20273510,00.htm?> C# is only Java- only a little worse As you've correctly concluded, the platform's feasibility should fit the problem at hand when deciding which language/platform to choose. For me, Java in general and J2EE in particular, seems to be more of a viable solution given that it has: 1) open source development 2) large enterprise-orientation 3) OS platform independent support 4) support from major vendors (i.e. IBM, Oracle, Borland) 5) support for distributed architecture such as CORBA 6) web services integration, scalability, and robustness 7) widely used component based software engineering architecture 8) vendor-specific application servers (competition makes product better) 9) JCP (Java Community Process-- democratic way of developing Java's future) 10) proof of sizable clients: Citicorp, Delta, Oracle, EBay, etc. Good luck, -JavaBeans |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JavaBeans | Posted
on 15-Jan-04 10:05 PM
Bhole Babaji, The drag and drop feature does make the Visual.NET more attractive; however, keep in mind this is geared more toward a GUI developer. Besides this, it isn't much of a use when it comes to pure coding. If you like Visual.NET IDE for this purpose- pure coding, then you will love Eclipse- a fully Java-supported IDE with an unbelievable amount of plug-ins. Of course, that is, if you prefer to work with Java. Good luck, -JavaBeans |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bhole_babaji | Posted
on 16-Jan-04 04:10 PM
I have used Forte( Now Studio One) and JBuilder. I prefer Jbuilder to Forte. I haven't used Eclipse. Tomcat is a good J2EE. I like Java because it is a very elegant language. looks like you are working with true object oriented language. I think you mean Java and C++ are used for writing application programs. mostly that is true. I have mostly seen device drivers and other low level routines written in C or assembly. But still telecom comanies need lots of applications which are written in JAVA and C++. Test softwares are mostly written in scripts using shell or Perl or using C. Java is used for writing NMS and monitoring systems. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| salakjith | Posted
on 16-Jan-04 04:49 PM
bhole_babaji, Tomcat itself is not a J2EE server.. it's just a servlet container. A servlet container is just one of many components in a J2EE server. For a free and open source J2EE server, try JBoss.There is one J2EE container coming up from Apachegroup as well, but it is not released yet. I myself have programmed in Java for over 5 years and now I am also doing projects in .NET. Languagewise, since .NET languages came after Java, it has fixed a few problems that Java have had, including many additional "syntax-sugar" like enums and auto-boxing, and soon generics. Now with Java's 1.5 Tiger version, they are putting these features in Java as well. As for Java IDE, Eclipseis made with SWT toolkit for the UI and hence is more responsive than a SWING based IDE like JBuilder and Forte/NetBeans. If you want a SWING based IDE, give IntelliJ IDEA a try. It is one of the more popular IDEs these days. For .NET, though VS is the primary IDE, there are other free and open source IDEs as well. It is possible to use a combination of Mono/ |