|
Re: How do you choose your programming language ?: msg#00075culture.hackers.israel
--- In hackers-il-hHKSG33TihhbjbujkaE4pw@xxxxxxxxxxxxxxxx, "Nadav Har'El" <nyh@xxxx> wrote: > > On Tue, Nov 22, 2005, Tzahi Fadida wrote about "RE: [hackers-il] How do you choose your programming language ?": > >... > > Anyway, all of these worth nothing if the software is distributed and there is a major > > recall because of bugs such as range checks rouge pointers, etc... the usual... > > Better use a high level language that restrict more than being flexible and even less > >... > > In theory, you are right, and such reasons are always quoted for why Java > is better than C. > > But while in theory, theory and practice are the same, in practice, practice > is often different from theory :) So lets return to the original discussion: use Pascal :) It have the low programming of pointers, memory handling on your own, and you have the "Java" like usage, that someone already made the job for you instead of do it on your own. It's native compiled to many OS's and many architecture, and it take lass time to do many things that on Java or C or C++ take a lot of time/code writing to do the same thing. :) So do you really want to enjoy all of this worlds, or just keep saying how much Java Sux, but keep using it ? Or saying "I do not like C/C++, but I don't have anything else to work with" ? > > What I mean is that often a program gets written in, say, Java, and while it > results in a program that has fewer bugs - it often results in a program that > is utterly unusable, because it takes up tons of memory ("don't worry, just > upgrade your memory to 1GB" is something I often hear in the context of Java > programs), or other performance issues. On more than one occasion (dare I > say, "every occasion"?) when a Java project or program is complete, the > people involved say, "This product has a great potential, but if it were > written in a different language, perhaps we could actually use it." > > And I'm saying this is a person who currently programs in Java for a living (!). > > So while when you say "C is better in performance" people always think > "I don't care because I don't mind if my program is 10% slower, or the > GUI takes 10 milliseconds instead of 1 milliseconds to update", you can't > neglect it altogether. A 5-fold memory usage increase, a 5-fold slowdown > in CPU-intensive applications, pauses (for garbage-collection or swapping) > during interactive applications - these things are NOT ACCEPTABLE. And in > some languages (especially Java) and some cases, they are nearly unavoidable. > > Since my vents are already open ( :-) ), let me say what really bothers me > about Java, and its concept of garbage collection. > Java basically assumes that by the time of garbage collection, most of the > objects in memory are garbage, and its GC algorithms handle this case very > efficiently. It is almost always the case, because Java encourages you to > create many transient objects that live for very short durations. > So Java programs typically allocate a (very) large heap, and just go over > it giving out memory until the heap is all finished, at which time garbage > collection is done (very efficiently - forget the details for now). > The problem is that this process is very good when the Java virtual machine > is given the machine's entire memory (Linux kernel hackers: this is exactly > like the Linux kernel always tries to fill up the entire memory with buffers > and caches). So Java is ok for running a single huge application on some > machine. But as soon as we start running several separate JVMs (namely, > different Java-written utilities) on the same machine, things get hairy. > You can't let each Java program use 1 GB of heap, because even if it needs > just 50 MB, it will REALLY USE that 1 GB. So you need to either allow the > program to use tons of memory (ever used Eclipse? it's really notorious in > this regard) or artificially limit the heap size of the program, causing > horrible crashes when the heap really runs out because the program really > needs more memory. Sun's JVM (but not IBM's!) knows to shrink the heap > to a size more similar to the real size needed, but it still doesn't do > this effectively, and it always uses up much more memory than the program > really needs. > > So in short, performance is *always* an issue: nobody cares about 10% > speedups, but people always care whether a utility takes 20 MB of memory > or 200 MB of memory (these are actual numbers from a comparison of one > C program and a similar Java program we did at work). > > -- > Nadav Har'El | Wednesday, Nov 23 2005, 21 Heshvan 5766 > nyh@xxxx |----------------------------------------- > Phone +972-523-790466, ICQ 13349191 |The trouble with being punctual is that > http://nadav.harel.org.il |nobody is there to appreciate it. > ------------------------ Yahoo! Groups Sponsor --------------------~--> Get fast access to your favorite Yahoo! Groups. Make Yahoo! your home page http://us.click.yahoo.com/dpRU5A/wUILAA/yQLSAA/saFolB/TM --------------------------------------------------------------------~-> Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/hackers-il/ <*> To unsubscribe from this group, send an email to: hackers-il-unsubscribe-hHKSG33TihhbjbujkaE4pw@xxxxxxxxxxxxxxxx <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/ |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: How do you choose your programming language ?: 00075, Nadav Har'El |
|---|---|
| Next by Date: | Re: Paul Graham about Web 2.0: 00075, Shlomi Fish |
| Previous by Thread: | Re: How do you choose your programming language ?i: 00075, Nadav Har'El |
| Next by Thread: | RE: How do you choose your programming language ?: 00075, Tzahi Fadida |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |