Softpanorama
May the source be with you, but remember the KISS principle ;-)

Contents Bulletin Scripting in shell and Perl Network troubleshooting History Humor

Java Humor

Humor Chronicle RMS Linus Torvalds Larry Wall & Perl Top 10 Classic Unix Humor Softpanorama Humor Archive GPL
 C C++ Assembler Perl Shell Java Debugging
Admin Algorithms  Networking Solaris Windows Linux Editors
skeptical humor OFM Humor   SE   vi Viruses Eric Raymond Outsourcing

Java(R) is an object-oriented programming language,
not a mug-oriented hot beverage.

http://www.willa.me/2013/11/the-six-most-common-species-of-code.html

The Six Most Common Species Of Code

Michael Mandrus said...

A CS 101 student would never write a recursive function.
November 9, 2013 at 9:16 PM  
 
 

saurabh singh said...

@Michael Depending on the teacher taking the CS101. I am pretty much sure every one in my batch would have written a recursive function over an iterative solution
 
November 10, 2013 at 12:00 AM  

Animesh said...

@Saurabh, Michael
Recursive function for Fibonacci will be very inefficient. Its running time will grow exponentially with X. :) Watch this video : http://www.youtube.com/watch?v=GM9sA5PtznY
November 10, 2013 at 1:12 AM  
 

Abhishek said...

I hope someone noticed the point of this post and which in my view is that the more you know things, the more constrained your view becomes, instead of thinking in a straightforward manner, we think of all the ways something could go wrong and more often than not, it holds us back from doing anything.
November 10, 2013 at 2:43 AM  
 

Rooney said...

@Animesh

Recursion is not used without memoization. With it, it's a linear algorithm.
November 10, 2013 at 4:39 AM  
 

RockNes said...

Math guy's program will go in an infinite loop if b is a non integer number :/
November 10, 2013 at 7:35 AM  
 

meenu iyyer said...

This is sooo true and really funny.. i have been there and done that for all the different roles [Excpet the cat ofcourse ;)] .... code written at a large comany is the best.. ROFL!
November 10, 2013 at 7:39 AM  
 

KARTIK SACHAN said...

why u guys senti by looking at this ?
this if for fun only :) :)
November 10, 2013 at 8:43 AM  
 

thanbo said...

The Math PhD's closed-form answer is less efficient than the basic iterative/recursive solution. It requres 2n (or for the rounding version, n) multiplications to do the exponentiation, while the brute-force solution requires n additions, which on most processors are faster than multiplications.
November 10, 2013 at 9:18 AM  
 

virgincoder said...

LOL ! Funny ! I laughed so much when I saw the "Code Written At a Large Company" part ! LOL
November 10, 2013 at 9:48 AM  
 

Subhrajit said...

so no one gives a sh!t about the computational complexity. All the recursive implementations have exponential complexity. And I seriously have no clue what the author tried to prove with the totally gibberish large company or math PhD code.

How about the following:
int fibonacci(int x){
if (x <= 2)
return 1;
else {
int sum = 1, oldsum = 1, tmpsum;
for (int a = 3; a <= x; a++) {
tmpsum = sum;
sum = sum + oldsum;
oldsum = tmpsum;
}
return sum;
}
}

It has linear complexity.
November 10, 2013 at 11:51 AM  
 

Unknown said...

A database specialist would write

SELECT Value FROM dbo.Fibonacci WHERE n = @n;
 
November 10, 2013 at 12:36 PM  
 

Herman Saksono said...

I would be surprised if a large company has a fibonacci method that runs on O(2^n) time.
November 10, 2013 at 3:48 PM  
 
  •   
  • Gabrielle said...

    When I took my bachelor degree, I used "cat" species code for my homework. The code worked, but guess what? Got 0 because my teacher didn't understand any sh*t I wrote :))
    November 10, 2013 at 9:31 PM  
     
  •  
  • Rahul Thakur said...

    I get the humour, but for those suggesting improvements, here's a simpler one -

    void fibonacci(int number_of_terms){
    int T1=0, T2=1;
    do{
    T1 = T1 + T2;
    T2 = T1 - T2;
    printf("%d\n", T2);
    number_of_terms--;
    } while(number_of_terms > 0);
    }

    This is in C btw, and here's a compiled version - http://ideone.com/gs0Duz
    November 10, 2013 at 10:02 PM  
  •   
  • aMIT sHaKyA said...

    Here we go, complete imagination of author went to a toss. And post has become dead ground for recursive algo complexity discussion. Screw you coding wannabes.

    Too good post. Don't do CS graffiti here.
    November 10, 2013 at 10:50 PM  
  •   
  •  
  • HuzursuZ said...

    i do as

    f(n)=( (1+sqrt(5))^n - (1-sqrt(5))^n ) / (sqrt(5)*2^n)

    so what i become ?
    November 11, 2013 at 1:35 AM  
  •  
  • Paul K said...

    Had a good laugh :D

    Having worked at 5 *very* different companies in 5 years, I can testify that there is a lot of truth to this!

    (Except perhaps the one with the cat)
    November 11, 2013 at 5:56 AM  
  •  
  • Mads said...

    And code written by a student, that paid attention during algoritms, knows how to google and did remember to trust only reliable sources of information...

    http://introcs.cs.princeton.edu/java/23recursion/Fibonacci.java.html
    November 11, 2013 at 6:21 AM  
     

    ac said...

    is missing the kernel guy code:

    int fib(int n) {
    if (n < 0) {
    #ifdef HAVE_ERRNO
    errno = EDOM;
    #endif
    return -1;
    }

    return n == 0
    ? 0
    : (n == 1
    ? 1
    : (n == 2
    ? 2
    : fib(n - 2) * fib(n-1)
    )
    );
    }
     

    sarath chandra said...

    Lol so true, code written at large company does look like that, (why? :()
    November 11, 2013 at 6:42 AM  
     

    Daniel Dwire said...

    This comment has been removed by the author.
    November 11, 2013 at 6:52 AM  
     

    tsndiffopera said...

    Phew! Then who'd write a O(lg(n)) algorithm using matrix exponentiation ? Only me? :P

    [{1 1},{1 0}]^n = [{F_(n+1) F_n},{F_n F_(n-1)}]

    Also, x^n = x^(n/2)*x^(n/2)

    which has O(lg(n)) ;)
    November 11, 2013 at 7:08 AM  
     

    joe random said...

    Just to be pedantic for my CS/math bros:
    The CS101 code doesn't need recursion or memoization, and that would occur to most students, since that's how people do it by hand: they take the last two numbers, add them together, and get a new number. Then they can forget the oldest number. A simple for loop takes care of that. Admittedly, this is explicit memoization.

    But worse, the code by a "math phd" isn't any faster than that, and is inexact if there is rounding error, unless it uses an overcomplicated math framework that handles sqrts symbolically.

    Still, if you change the (math phd?) exponentiation function to do successive squaring, you get the best running time so far, O(log n). A CS101 student could even work out how to do it without a heavyweight math library, since all of the intermediate computations are on numbers of the form (a+b*sqrt(5))/2^n where a,b, and n are integers. So you only need integer arithmetic.

    There other O(log n) algorithms, such as ones exploiting the recurrences
    F_(2n-1) = (F_n)^2 + (F_(n-2))^2
    and
    F_(2n) = (2F_(n-1) + F_n)F_n

    Sincerely,
    a math phd candidate
    November 11, 2013 at 7:20 AM  

    Леха Чебара said...

    cat style looks like perl code
    November 11, 2013 at 8:08 AM  
     
     

    Haskell said...

    The Math PhD would use haskell and produce an infinite list of fibonacci results.
    November 11, 2013 at 8:38 AM  
     

    Siberiano said...

    I think math phd should write that in Lisp.

    A simple version would be, but you may expand to add other parameter forms.

    (defun fib (x) (if (< x 2) x (fib (- x 1) (- x 2))))
    November 11, 2013 at 9:02 AM  
     

    Maciek Napora said...

    My most beloved school of coding is so called 'Weimar school'. It used by Germans for writing embedded code, mainly safety critical code. It goes something like this:

    #define ONE 0U
    #define TWO 1U
    #define E_OK 0U
    #define THRE 16U
    #define HUNDRED 100U
    uint8_t UDS_tx_buff_au8[HUNDRED + ONE]

    uint8_t panic(uint16_t kondition_u16)
    {
    uint8_t temp_u8;

    /* I am evaluating kondition */
    if(kondition_u16 > THRE)
    {
    UDS_tx_buff_au8[ONE] = ONE;
    UDS_tx_buff_au8[TWO] = TWO;
    temp_u8 = HUNDRED;
    }
    else
    {
    UDS_tx_buff_au8[ONE] = ONE;
    UDS_tx_buff_au8[TWO] = ONE;
    temp_u8 = HUNDRED;
    }

    return temp_u8;
    }

    F$ck ya common sense, logical expresions folding and ROM saving.
    MISRA and QAC said so. German engineering knows that;D
    November 11, 2013 at 9:53 AM  
     

    AVichare said...

    Hmmm ... a functional programmer writing in C may write:

    return ((x == 1) || (x == 2)) ? 1 : (fibonacci (x - 1) + fibonacci (x - 2));

    arguing that: (a) tail recursion would take care of recursion costs, and (b) why bother with control flow if we only need the values.

    Reminds me of Perlis' quip: C programmers know the cost of everything and value of nothing, while Lisp programmers know the value of everything but the cost of nothing. :-)

    Thanks for a fun post.
    November 11, 2013 at 9:59 AM  
     

    Srikant Lanka said...

    Has anybody noticed that the smartest code with best practices is actually written by the cat?? Dude your cat is awesome..

    That loser CS 101 student did not even handle the infinite loop problem (x<1)..

    Soft Kitty, Warm Kitty, little ball of fur, Happy Kitty, Sleepy Kitty, purr purr, purr #respect
    November 11, 2013 at 11:28 AM  
     

    Justin Holmes said...

    A hackathon coder would use this:

    int getFibonacciNumber(int n) {
    int table[] = {-1, 1,1,2,3,5,6,13};
    if ((unsigned int)n > 13)
    return -1;
    return table[n];
    }
    November 11, 2013 at 12:44 PM  

    Milad Ekhteraei said...


    F_n = F_{n-1} + F_{n-2},\!\

    F_n = F_{n-1} + F_{n-2},\!\


    F_{n-2} = F_n - F_{n-1}

    F_{-n} = (-1)^{n+1} F_n

    F_{n}=\sum_{k=0}^{\lfloor\frac{n-1}{2}\rfloor} \tbinom {n-k-1} k

     

    Michael Wexler said...

    Code written by CS 101 student has too much indentation and looks too clean. In reality, the code would be flush against the left margin, no indents, no whitespace between operators/operands, and would probably have redundant comments on every other line (to please the prof), e.g. "//This is for the case x = 1 //This is for the case x == 2"

    Tyler Bartnick said...

    Funny because I am a CS 101 student and I did in fact write a recursive function without the help of outside resources for one of the functions needed in a project.

    Welcome to Karna said...

    Code as written by a hacker:

    public int fib(int n) { return (n > 2) ? fib(n-1)+fib(n-2):0; }

    Code as written as a seasoned: developer


    import org.apache.commons.math;
    public int fib(int n) {
    return Math.fibonacci(n);
    }
    November 11, 2013 at 10:13 PM  

    Mehrzad Karami said...

    So true, Going through this I had a flashback of all companies i have worked with in the last 15 years.
    More you know, the more constrained you are

    Meng Lin said...

    Comman, at least there will be unit tests in the code produced at a large company, lol
    November 12, 2013 at 6:19 AM  
     

    juzhax said...

    echo "bye";


    I like PHP.
     

    kasyap1125 said...

    I am going to write cat code in my company tomorrow :) :P
    November 12, 2013 at 9:35 AM  
     
     

    Simon Richard Clarkstone said...

    Code written by a type theorist. (It calculates Fibonacci numbers in the Haskell type system.)


    {-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, UndecidableInstances #-}
    data Zero
    data Succ n
    class Add a b c | a b -> c
    instance Add Zero b b
    instance Add a b c => Add (Succ a) b (Succ c)
    class Fibb a b | a -> b
    instance Fibb Zero Zero
    instance Fibb (Succ Zero) (Succ Zero)
    instance (Fibb a r1, Fibb (Succ a) r2, Add r1 r2 b) => Fibb (Succ (Succ a)) b


    To calculate, you need to create placeholder values with appropriate types, and ask the interpreter what type the combination of the two would have.

    *Main> let fibb = undefined :: (Fibb a b) => a -> b
    *Main> let six = undefined :: Succ (Succ (Succ (Succ (Succ (Succ Zero)))))
    *Main> :t fibb six
    fibb six
    :: Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))
    November 12, 2013 at 10:04 AM  

    Jayabalan said...

    thinking ... should get CAT.

    Denis Ivin said...

    Sorry, couldn't resist... Bad Indian code http://pastie.org/8475451
    November 12, 2013 at 10:52 AM  
     

    Kevin Rogovin said...

    Just a thought: one can compute Fib(n) in O(1). There is a nice closed from for Fib(n) to derived it consider that it satisfies:

    Fib(n+2) - Fib(n+1) - Fib(n) = 0

    nice, linear and homogeneous.

    The punchline is that

    Fib(n) = c0 * b0^n + c1*b1^n

    where b0 and b1 solve for

    x^2 - x - 1 =0 [Golden ratio!]

    and c0 and c1 are so that

    co + c1 = Fib(0) = 1
    c0*b0 + b1*b1 = Fib(1) = 1

    Though, accuracy might be an issue.
    November 12, 2013 at 10:57 AM  

    Jack Kern said...

    And then there's the smart way to do it:

    https://gist.github.com/ElectricJack/7441844
    November 12, 2013 at 5:13 PM  

    Prabandham Srinidhi said...

    And this is how it is done in ruby :)

    def fibonaci(n)
    a=[0]
    (o..n).map {|x| x<=1? a[x]=x :(a[x] = a[x-1]+a[x-2])}
    puts a.inspect
    end
    end

    102524021510033218601 said...

    :D
    Who gonna write the DP code? :)
    November 12, 2013 at 9:52 PM  
     
     

    XProger said...

    return int(0.5+(pow(1.618033988749895, n) / 2.23606797749979));

    Daniel Dinnyes said...

    The real Math Ph.D. wouldn't use `one()` or `add(one(), one(), one(), one(), one())` when there is already a `zero()` defined. Rather he would write it using induction, like
    `succ(zero())`, or `succ(succ(succ(succ(succ(zero())))))`. Hope that helps ;)

    Sergio Daniel Lepore said...

    Hahahahahahaha
    November 15, 2013 at 6:18 AM  

     

    Bill Talks to Satan

    "Wiiiiilliam  Gaaaates..."

    "Oh, hi, Satan.  What's up downstairs?"

    "It's tiiiiime..."

    "Yeah, but we're still debugging Memphis, and Ballmer swears he'll wipe out Adobe before lunch, and  Melinda wants to change the tile in the third-floor kitchen again, and..."

    "Sorry, Bill.  I've given  you too many extensions already, not to mention the Oracle8 launch event disaster, not to mention Steve Jobs' head on a platter."

    "Yeah, that was a good one.  I think you enjoy this as much as I..."

    "Regardless, a deal's a deal.  Your soul is mine, Bill Gates.  And today is the day you pay your eternal debt to me."

    "Now, let's be reasonable here, Satan..."

    "Reasonable?!?  You want reasonable?!?   You're the richest man in the world!  You've got a beautiful wife and daughter!  Microsoft is the most powerful  company on the planet!  We're even using NT to run hell's WAN server!  And  frankly, it sucks.  That's one of  the reasons I've come to collect.  If you can't get my network to run right,  you'll spend the afterlife writing Windows applications that run on doorbells..."

    "What's your alternative, Satan?  Netware?  AppleTalk?  OS/2?  You're a funny guy for someone who breathes fire."

    "Well, God  is porting all his heaven-critical applications to Java..."

    "Java?!?  Stop it, Satan.  You're going to make me wet my pants again like that time you told me to buy Novell for $50 a share."

    "Yes, Java, running on Sun servers, IBM plumbing and Oracle databases with thin clients accessing the apps via the web through Netscape Navigator."

    "That's not a solution, that's one of those Grimm's fairy tales that scare children to death.  I have yet to see an NC actually being used to do anything except crash during demonstrations.  Look, Java is a nice little language for animating web sites, but Shockwave after too many espressos isn't going to displace Windows as an applications platform on hundreds of millions of PCs."

    "Nevertheless, Java is the future of computing, and I'll be damned if I'm going to give God a strategic technology advantage!"

    "Satan, what if I told you I could kill off Java with a single word?"

    "Interesting.  Tell me more."

    "Wait a minute.  What's in it for me?"

    "I promise I won't turn you into Larry Ellison's bidet right this second."

    "Okay, that works for me.  Here's the word...disable."

    "Disable what?"

    "Disable Java support in Internet Explorer."

    "You mean Microsoft's web browser won't run Java anymore?"

    "That's  right, brimstone breath.  You want to run Java, give Netscape 50 bucks per seat and pray that IBM doesn't buy the company to merge Communicator with Lotus Notes."

    "The Department of Justice will..."

    "Will what?  Punish me because I won't support a product my enemies want to use to destroy my company?  Chevrolet  dealers don't have to sell Fords.  Pepsi's restaurants don't have to offer Coke.  Why does Microsoft have to support Java?"

    "It's an industry standard..."

    "It's an industry hallucination."

    "There will be a public outcry..."

    "From who?  Network managers?  MIS?  The CIO?   They're up to their nosehairs in  Cobol getting ready for January 1, 2000.  To them, Java is still a cute word  for coffee."

    "What about all those spiffy applets on thousands of web sites?"

    "Microsoft owns 100 percent of the Apple and Windows preload market for browsers, and our overall share has gone from zero to half in two years.  It's a safe bet most people will soon use IE for web access.  If they come to a site that doesn't work because of Java, they'll simply jump to the next one.  Trust me, developers will switch to ActiveX faster than you can say
    'Playstation.'"

    "What about other platforms..."

    "Like Intel has competition?"

    "Interactive TV..."

    "We call it WebTV in Redmond."

    "Venture capitalists have invested billions..."

    "To get a date with Kim Polese."

    "Sun will write a plug-in..."

    "Not without the hidden APIs."

    "Of all  my minions, you are my very favorite, Bill.  You may stay."

    "Thanks, Satan.  Now, about that Exchange license agreement..."

    By Jaroslav Tulach
     

     

    Interview With the Father of Java#15041408

    Java is great for enterprise apps I

    t's sort of embedded in the social experiment called the Internet. I was wondering why major websites are so slow lately.

    Time  to move to CPA (http://www.livejournal.com/users/sinistertim101 | Last Journal: Sunday February 12, @11:15PM)
     
    Its like of call-by-values for objects forcing you to do nothing but call by references are really great in tracking bugs for newbie programmers.

    And no child parent object support but rather super class and two layers of classes underneath it where you can't access methods in the super class after all 3 are created are great as well.

    Java is a perfect language that is nothing but a joy to stare out for hours and hours everday. ... Can't wait to get my CPA so I can leave the programming field... Cries

    Re:Balony

    (Score:2)
    by Decaff (42676) on Saturday April 01, @09:55AM (#15041408)

    The installer is 16MB, but the size of the jre once installed is ~50M. (The size difference comming from the fact that the installer is compressed)

    But if it is only 16MB to install, who cares how big it is afterwards? 50MB is insignificant in terms of disk space these days.

    Slashdot Peter Naur Wins 2005 Turing Award

    Nobel prize for peace[of mind](Score:1)

    by packetmill (955023) on Saturday March 04, @04:48PM (#14851120)

    should go to the guy who invented Java.

    Re:Nobel prize for peace[of mind](Score:2)

    by m50d (797211) on Saturday March 04, @05:07PM (#14851160)
    (http://www.sdonag.plus.com/ | Last Journal: Sunday February 26, @10:42AM)

    Given how much java makes me want to kill people, I don't think that's fair.

    javaresp

     SUN MICROSYSTEMS SUES ISLAND OF JAVA*

    Mountain View, CA -- Sun Microsystems today filed a trademark infringement against the island of Java* over the use of Sun's
    Java* trademark.

    Responding to criticism that the island has been called Java* for centuries, Sun lawyer Frank Cheatham said "Yeah, and in all that time they never filed for a trademark. They deserve to lose the name."

    Rather than pay the licensing fee, the island decided to change its name. They originally voted to change it to Visu Albasic, but
    an angry telegram from Redmond, Washington convinced them otherwise. The country finally settled on a symbol for a name -- a neatly-colored coffee cup which still evokes the idea of java. Since most newspapers and magazines will not be able to print the name of the island, it will hereafter be referred to in print as "The Island Formerly Known As Java*".

    The Island Formerly Known As Java* bills itself as a cross-landmass island, but so far has only been implemented in production on the Malay Archipelago. Africa is been rumored to have implemented it on Madagascar, but it is still in alpha testing.

    Lawyers from Sun would also like to locate the owners of the huge fiery ball at the center of the solar system. They have some legal papers for them...

    ----------------------------------------------------------------------

    *Java is a Trademark of Sun Microsystems, Inc. Anyone caught using the  trademark without permission will be beaten, flogged, sued, and forced  to use Microsoft products.
     

    Top quotes:

    Humorix Judge Holds Microsoft In Contempt Of Court

    Judge Holds Microsoft In Contempt Of Court
    Fake News written by James Baughn on January 23, 2003
    from the we-all-have-contempt-for-microsoft dept.

    WASHINGTON, D.C. -- When a Federal judge sided with Sun Microsystems and ordered Microsoft to include Java with upcoming versions of Windows, Microsoft's legal team announced that the company would fully comply with the order.

    The problem, however, is that everybody's favorite software monopoly has a slightly different notion of what "Java" means. Earlier today Microsoft joined forces with everybody's favorite coffee monopoly to comply with the court order by bundling free samples of Starbucks Java with each copy of Windows.

    Both Sun Microsystems and the court judge were not amused.

    Enraged by Microsoft's flaunting of the court order, the judge found the company in contempt of court and ordered that one of Microsoft's representatives, Clippit the Dancing Paper Clip, be held in prison until the company comes into compliance with the order.

    "Any idiot could plainly see that I was talking about Sun Microsystem's Java(R) Virtual Machine, not Starbuck's Triple Cappachimochalattespresso Deluxe coffee!" ranted the judge while a bailiff escorted Clippit to Cellblock 3. "This is so ludicrous that even the webmaster of a low-budget humor website wouldn't dare imagine something this unbelievable!"

    It's not entirely clear who at Microsoft came up with the idea of bundling coffee instead of Java with Windows. The most likely suspect, the Vice President of Court Order Compliance, was out of town during the whole debacle. "I was in California settling that state's tyrannical billion dollar class-action lawsuit against us," he said. "This wasn't my doing."

    Another potential culprit, the Chief Executive of Cutting Off Competitors' Air Supply, also pleaded innocence. "Sure, it was my idea to bundle a crippled, watered-down out-of-date Java VM with Windows and then blame Sun whenever nothing worked right on it. But flagrantly violating a court order only hurts us, not Sun."

    Regardless of who issued the command to stick out the company's proverbial middle finger at the judge, Clippit the Dancing Paper Clip is now sitting in a prison cell, annoying the jailor with questions like, "I see you are trying to execute an inmate. Would you like help with this operation?"

    "This is the first time we've had an animated character in our prison and I hope it's the last," said warden Sally Terry Kuhnfinemint. "He keeps jumping around all over the cell asking if I need any help. For the millionth time, I don't need any [expletive] help! I would shoot the little bastard, but 'cliparticide' is a Class A felony in this state."

    If Microsoft doesn't comply with the order within 120 days -- for real this time -- the judge has threatened to lock up other Microserfs, including the Internet Explorer 'e' logo (no real loss there), Bob of Microsoft Bob fame (again, no real loss), Dr. Watson (Windows can crash just fine without him), and "Arthur", the animated king featured in Freecell (whatever).

    In a pre-emptive strike, the judge also said that Microsoft can't get by with shipping the Java VM under some obscure folder of the Windows CD like "\Misc\Worthless Stuff\Filler Material\Sun Sucks\Clicking On This Folder Voids The Windows EULA\Proceed At Own Risk\Java\".

    At press time, we haven't received word on whether Microsoft will fully comply with the new order. "Who cares about some annoying animated fictional characters?" asked one industry observer. "Microsoft won't have any motivation to comply until the judge starts throwing some annoying *real* people in jail -- like the entire Microsoft legal or marketing teams. Without those people, the company would fold overnight."
     

     

    10 reasons why Java is bad for you by Michael Swaine Reproduced from Some Observations on Apple and Java in Dr Dobbs, February 1997:

    1. We don't need another C++. One is bad enough.
    2. It's too stripped down for many programming purposes, the legacy of being designed originally to run on smart toasters or something. Needed or desired features may be added on later, but having the right features designed in from the start is the way to go.
    3. Multithreading is a pretty obscure feature to include considering the things left out.
    4. Multithreading will rot your teeth.
    5. Java is slow.
    6. It'll never be fast. Without explicit memory management and the use of pointers, Java can never match C for fast executable code. And it's interpreted, so the user has to wait for the interpretation phase to see the application or applet execute. Just-in-time compilation doesn't help.
    7. Most of Java's alleged virtues (portability, ability to deliver functionality over the Internet, ability to screen code for security purposes) come from its being interpreted. Other interpreted languages have or could easily have these same virtues and are at the same time easier to program in than Java. Some interpreted languages also have large libraries to draw upon to speed development. We don't need another Visual Basic.
    8. The development environments currently available leave something to be desired.
    9. How open a standard is it when a runtime environment license costs $125,000? And when Sun controls the development of the language? And licensees are required to turn any improvements the make over to Sun?
    10. In the late 1997, what we need are more and higher high-level languages that can speed development of more powerful, media-rich applications and that can call upon compiled routines written in an efficient low-level language when they need to. We don't need another C.



    Etc

    FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available in our efforts to advance understanding of environmental, political, human rights, economic, democracy, scientific, and social justice issues, etc. We believe this constitutes a 'fair use' of any such copyrighted material as provided for in section 107 of the US Copyright Law. In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit exclusivly for research and educational purposes.   If you wish to use copyrighted material from this site for purposes of your own that go beyond 'fair use', you must obtain permission from the copyright owner. 

    ABUSE: IPs or network segments from which we detect a stream of probes might be blocked for no less then 90 days. Multiple types of probes increase this period.  

    Society

    Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

    Quotes

    War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes

    Bulletin:

    Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

    History:

    Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

    Classic books:

    The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Haterís Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

    Most popular humor pages:

    Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

    The Last but not Least


    Copyright © 1996-2016 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License.

    The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

    Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

    FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

    This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

    You can use PayPal to make a contribution, supporting development of this site and speed up access. In case softpanorama.org is down you can use the at softpanorama.info

    Disclaimer:

    The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

    Last modified: February 11, 2017