Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That’s just obtuse. Compare Lisp, Forth, APL, Prolog, Ada, or Fortran. Java is just C++ with a few twists. You can literally write code that will compile in both.


That's exactly how I meant it. Another alternative to Java at the time was Smalltalk, with different syntax. Choosing C++ syntax for Java was clearly a marketing move (as it was for C++) - we shouldn't underestimate network effect of familiar syntax.

I think Java succeeded for the same reasons C++ succeeded - built on familiar syntax, reasonably free and "supported by" a large company. Java being a decent language is a consequence of its success more than of its original design.


Free as in beer, in contrast to proprietary Smalltalk.


> You can literally write code that will compile in both.

An example, please.


int fibonacci(int n) {

    if (n <= 0) return 0;

    if (n == 1) return 1;

    int a = 0, b = 1, temp;
    for (int i = 2; i <= n; i++) {
        temp = a + b;
        a = b;
        b = temp;
    }
    return b;
}

...if only the return type was "Crow" then you could .eat() that...


That will not compile with javac, as it is not a method of a class.


That code will it just needs to be in the proper context. No the same file will not compile, even if only because javac needs files to end with .java .


Java has "unnamed classes" now which makes this work.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: