• Coding
  • Programming Book Of The Day!

xterm wroteThere is so much ignorance in this thread its beyond fixing. As soon as you start talking about a "language" you're immediately proving that you are oblivious about the market and the products/SERVICES out there. The key in what i said which ought to be quoted is Services.

I could care less for any of the java related "applications". Everyone and his mom knows that java does not excel in front-end, at least not on the desktop level, Java's power goes hand in hand with Enterprise application server, thus the EE aspect of Java.

I'm not going to give a crash course about EE, you can look that up yourself, though i will tell you this; Every major corporation and giant in the business world be it banking or the lot, use a JAVA application server. Take a few moments and learn about an application server:

http://www.jboss.org
http://www.jboss.com

If you do find a need to argue about languages do it properly and argue about a language's purity, honesty, features (extensibility, high order functions, lazy evaluation, tail recursion || tail call optimization, type inference, generics), talk about the optimization, efficiency, cleanliness. And the list goes on.
1. NOT EVERY major corporation and giant in the business world be it banking or the lot, uses Java.

2. Not even HALF of them do, which shows your ignorance about the market :)

ASP or Ajax powered systems are widely spred amongst banks and other financial corporations as frontends.

3. I have never argued about the popularity of Java, you'd better re-read my posts. I have attacked its
performance and stability. IIS and ASP are as wide spred as Java, this doesn't give them a good name though!

Off-topic: smoking and drugs abuse are as popular as Java. Go defend them as well :cool:


4. Since EVERY major corporation uses Java why don't you go around and interview the sysadmins of SOME
of them. Just ask them how easy, flawless and cheap is the maintenance of those Java server applications.

5. I am not a bragger, but ... dude, I work on the worldwide top of the telecom business since aprx 10 years. Check the forums/google, I have been working with almost every huge telecom or telecom equipment vendor.
What I can tell you for sure is - every single attempt to use Java in the telecom field WAS and IS a disaster.

Examples - Nextone/Genband, Sysmaster (a.k.a. Voicemaster), NetCentrex (a.k.a. Comverse).



P.S. I have been workin with Jboss and Tomcat since 2000th, but thanks for the links.
the development of this thread ... is quite nice :P

P.S: I dont really like java and decline every almost every opportunity to work with it. to me it's more than a scripting language. i don't like it's structure, it's stability and specially it's performance.
P.S.: Although I quoted and addressing teodorgeorgiev, its a general discussion that involves anyone that has doubts about what i've said as well.
teodorgeorgiev wrote5. I am not a bragger, but ... dude, I work on the worldwide top of the telecom business since aprx 10 years. Check the forums/google, I have been working with almost every huge telecom or telecom equipment vendor.
What I can tell you for sure is - every single attempt to use Java in the telecom field WAS and IS a disaster.

Examples - Nextone/Genband, Sysmaster (a.k.a. Voicemaster), NetCentrex (a.k.a. Comverse).
And i will back you on this point any time you bring it on, at no point did i mention java being used in the telecom industry and anything below the Business Logic layer, heck i even disagree with the entire Mobile aspect of Java!. The specific use of "Every" correspond to the majority, majority of successful and over the top banks and business solution providers. I am not defending Java because i use or used it, in fact I will not touch Java ever again even if i get paid double the wage, though that is not in anyway related to any of the false "reasons" that you've stated.

I've clearly stated proper points which can be basis of argument when you are trying to assess languages. A language is means to an end. You could *speak* language X and get your point(functionality) done/across in a month with impressive performance or you could speak language Y and get your point(functionality) done in a week with slightly less impressive performance, the important thing to assess is how CRITICAL performance is versus how CRITICAL productivity is.

I do not diss C, C++, Python, Java, Perl, Ruby, ASM, VB.NET, C#, php, Erlang, Haskell, Nemerle, Scala, Groovy, LISP, Scheme, Prolog, Pascal or any other language because they fall on a multi-dimensional graph where each axis would correspond to a certain aspect of the programming field where a certain aspect overcomes another in a certain case. Is that really so hard for you to understand being a proffessional in the IT field?
Proners and AymanFarhat,

It is not always up to the programmer to properly optimize his code and certainly not in any imperative and object oriented language. It is relatively hard to explain in a forum especially since I've discussed this point in several meetings and orientation sessions, thus i'll keep it brief.

It is the job of both the compiler designer and the programmer to optimize their own end. As long as the programmer does proper segmentation and divide his code into pure segments and impure ones, properly considering what approach to take be it through analyzing the order of complexity or whatnot , he's doing a proper job on his end. Purity comes when you relieve your code from side effects (also known as Monads), purity comes when at any point in time or state of the world or universe, when you say f(x:int) => int, passing "f" the same x would always return the same result. The compiler also has a major part in the optimization; Simple example a looping construct in Java is more performant than a looping construct in C#, striking everyone odd given that applications in C# are compiled natively whereas Java is not.

Perhaps another topic is required for such a discussion.
I think we need another thread for discussing such debates, and this thread is now FUBAR :P

And as xterm said:
If you do find a need to argue about languages do it properly and argue about a language's purity, honesty, features (extensibility, high order functions, lazy evaluation, tail recursion || tail call optimization, type inference, generics), talk about the optimization, efficiency, cleanliness. And the list goes on.
I was just thinking, if you want to develop cross platform, what could be done is a java core (some kind program that will input and output bits and text) which will provide all the processing, and a C++ (or whatever) gui for the system in question to interact with that (using Cocoa for mac, .net for windows...) since java seems to usually result in bad GUIs.
This will also allow the logic to be stored on one computer (the part that is written in java) and the gui on another one if needed.

There is also the Qt framework, which allows developers to compile the same code for different platforms:
http://www.qtsoftware.com/

VMWare also created their solution based on their technology, I guess it lets you build an application running on top of a thin virtual OS and bundle the whole thing as one package.

http://www.vmware.com/products/thinapp/features.html
rolf wroteI was just thinking, if you want to develop cross platform, what could be done is a java core (some kind program that will input and output bits and text) which will provide all the processing, and a C++ (or whatever) gui for the system in question to interact with that (using Cocoa for mac, .net for windows...) since java seems to usually result in bad GUIs. A bunch of low-level platorm-specific executables can also be built for operations that are too slow in java.

There is also the Qt framework, which allows developers to compile the same code for different platforms:
http://www.qtsoftware.com/

VMWare also created their solution based on their technology, sort of a VMWare reader + an application running on top of that, bundled in one package.

http://www.vmware.com/products/thinapp/features.html
In this particular case (no data centralization, need for clustering or intra/internet aspect whatsoever) being a desktop application, i would advise the use of anything other than java.

Any portable toolkit is thus a good option, I'd go for http://www.mono-project.com really, they've been doing a heck of a job, sadly a WPF port is not yet (and never likely) occured.
AymanFarhat wrote@teodorgeorgiev, well you are right that many programs written in Java maybe be buggy and slow but it does not depend on the technology and Java language, it depends on the programmer. I believe that a good programmer can write efficient code that yields efficient programs whether in java or any other language even python, a bad programmer can write bad programs in any language too even in C or C++ :| so you can't generalize. ;)

And speaking of wanna be programmers, I heard lots of people making fun of Java programmers the same as you did, this is not very accurate nor professional talk, first of all: I have seen lots of successful software development companies that rely on Java and the technology behind it to deliver write software and they have produced very efficient Java programs (I have tested them myself), Second a Java programmer is a programmer who surely can write in any other language such as C/C++, Php, c# etc.. depending on what is demanded, or else he shouldn't be considered a programmer in the first place.

Btw, speaking of Python a friend of mine who is software developer told me that he saw an ad saying that a programmer who knows Python is needed, they would pay not less that $3000/month as a salary, so don't take Python by joke ;) If you had problems with Python or Java please don't generalize, those technologies once implemented in the right way are very efficient and good. Sometimes high level languages such as Java are needed it is not necessarily to take a standard that there is better and there is the best, and please don't be like some other people and tell me that real programmers are those who program in C and Assembly and dive into the low level languages. I do respect those languages as they are the foundations upon each software is built and usually serve as a back end but each language has it's own use. Imagine yourself writing a web service in Assembly :lol: Or imagine creating a decent user interface in C ;) Those may be done but in real life and business, we need languages that allows the programmer to deliver this stuff much faster... and with better Interface etc...

Furthermore, if you believe that Java is for the wanna be programmers and would like to generalize, then I can say that VB.net, C#.net, J#.net are too. :lol:
You are aware that you based your opinion on a programming language over the salary of its developers...

I think back in the days, Cobol was one of the most demanded and well paid languages :D
Thanks God not everyone thinks like you... othewise wed still writing Cobol...
Or imagine creating a decent user interface in C
So? I dont even write C, but Im sure there is nothing extraordinary about that. Maybe the problem would be that most available libraries are in C++, but then its not really a problem with the language...
You are aware that you based your opinion on a programming language over the salary of its developers...
I don't see anything wrong in that, if it wasn't good and demanded there wont be such a good salary for it. After all programming is a business and it is demand that is driving this field into developing more and more.
I think back in the days, Cobol was one of the most demanded and well paid languages big_smile Thanks God not everyone thinks like you... othewise wed still writing Cobol..
Man, this is totally irrelevant :/ You think if we think about how much a developer gets for programming in a certain language will keep us in our place? I am sure that one day there will be time when a better and more advanced language that will emerge, that language will pay more thus Python would then be thrown away and we program in the new one just as what happened with Cobol. I dont see anything wrong in there :/

All what I am talking about is from the corporate perspective, personal taste and personal projects are a different thing
So? I dont even write C, but Im sure there is nothing extraordinary about that. Maybe the problem would be that most available libraries are in C++, but then its not really a problem with the language...
I didnt say there is something extraordinary about it, nor there is a problem in the language, but I wanted to give an example where each language has it's own role, that is I prefer C to be for back end development. Do you have something against that? :rolleyes:
Indeed, Rolf, the newest NetBeans IDE gives some pretty decent GUI interface unlike its predecessors.

And btw, xterm, here my voice might sound sharp but - I do not think that you are the one to give me a damn lesson of Python and wether or not it is a joke. Just don't. FYI I was hired by Motorolla and used to code in Python for almost half an year. I know very well this language and it SUX. Based on those 12-14 hours a day spent on this crap I can surely say that Python is a joke, yet an ugly one. Indeed, Python is slower than Java in general.
Indeed, Rolf, the newest NetBeans IDE gives some pretty decent GUI interface unlike its predecessors.
It does, i agree.
And btw, xterm, here my voice might sound sharp but - I do not think that you might give me a damn lesson of Python and wether or not it is a joke. Just don't. FYI I was hired by Motorolla and used to code in Python for almost half an year. I know very well this language and it SUX. Based on 12-14 hours a day spent on this crap I can surely say that this language is a joke, yet an ugly one. Indeed, Python is slower than Java in general.
I didn't try Python but I heard some good things about it, now I hear that you had a horrible experience with it, why do you think they still use it then? It seems it has it's use in Telecom :rolleyes:
*sigh* I assume the discussion is over.
*sigh* I assume the discussion is over.
Agree :) bec, I think we are going no where...
Since the discussion is getting nowhere, let's get back to the original topic of this post...

I'd recommend the "Head First" series where available to learn a new language... the books are engaging and entertaining taking a whole different approach of the "a monotonous list of code examples and apis" book...
It's my second preferred book series after the "Get Wise" series to learn english
rolf wroteI was just thinking, if you want to develop cross platform, what could be done is a java core (some kind program that will input and output bits and text) which will provide all the processing, and a C++ (or whatever) gui for the system in question to interact with that (using Cocoa for mac, .net for windows...) since java seems to usually result in bad GUIs.
This will also allow the logic to be stored on one computer (the part that is written in java) and the gui on another one if needed.

There is also the Qt framework, which allows developers to compile the same code for different platforms:
http://www.qtsoftware.com/

VMWare also created their solution based on their technology, I guess it lets you build an application running on top of a thin virtual OS and bundle the whole thing as one package.

http://www.vmware.com/products/thinapp/features.html
Btw, as for code portability one can use the popular pwlib and his C++ code will be Windows/Unix portable.
currently reading F# for Scientists. "If you’re a computationally-oriented researcher, scientist, or developer who needs to learn the basics of functional programming, .NET and scientific computing, F# for Scientists will bring you up to speed with basic syntax and programming language concepts .."

for newcomers i'd recommend "Concrete Mathematics: A Foundation for Computer Science"; at least it's fun
a year later
there is a really great tutorial for ruby.. the website is http://www.sapphiresteel.com/ there is 2 books little book if ruby and book if ruby.. its a really useful tutorial with a youtube video on every chapter on the book.. its really great.
Rahmu Edit: Off-topic. Stick to the original topic: Sharing programming books!