Do everything in Java…

Dmitry Olshansky via Digitalmars-d digitalmars-d at puremagic.com
Sat Dec 6 01:07:29 PST 2014


06-Dec-2014 01:28, Freddy пишет:
> On Thursday, 4 December 2014 at 13:48:04 UTC, Russel Winder via
> Digitalmars-d wrote:
>> It's an argument for Java over Python specifically but a bit more
>> general in reality. This stood out for me:
>>
>>
>> !…other languages like D and Go are too new to bet my work on."
>>
>>
>> http://www.teamten.com/lawrence/writings/java-for-everything.html
>
> My problems with java:
>    no unsigned ints
>    primitive are passed by value; arrays and user defined types are
> passed by reference only (killing memory usage)
>    no operator overloading(looks at java.util.ArrayList)
>    no templates
>    no property syntax(getters and setters are used instead even if
> you know the field is never going to be dynamic)
>    only and exactly one class per file(ALL THE IMPORTS)
>    every thing must be inside a class(globals and free functions
> are static fields in a class)
> This is all i can remember.


Solved in Scala:
- operator overloading
- properties - that + optional (), a library writer still can enforce () 
to be used
- only and exactly one class - any number in any combination
- everything class - sort of, it has 'object' clause (just like 'class') 
that can be thought as a kind of namespace or a singleton if you love OOP.

Not fixed:
  - unsigend types - nothing here unless Java adds support
  - pasing by value - there are immutable and value types (e.g. Tuples) 
but I think they are references behind the scenes
  - no templates, but you may use AST macros which is even more powerful

-- 
Dmitry Olshansky


More information about the Digitalmars-d mailing list