4.13 java
In these days it is rather popular to do things in
java. siliconBrain completely is implemented in C, bash,
perl, makefile, .... I think java has a lot of
improvements, but also a lot of back draws. And it is not only the
language itself, which I criticize, but also things like
jsp, which is in my mind the false way to go.
In the siliconBrain project, I intend to do a lot of things contrary
to what is done today. So for example instead of writing
html pages, which eventually call programs to get data, I
write programs, which handle data and eventually generate
html.
The third reason not to use java in siliconBrain is, that it does not fit to
grep, sed, pipes, files, make, the
features of unix. For example one of my ideas is to use
unix processes to implement user sessions, which then
automatically inherit the unix access right possibilities as
well as the mutual isolation of sessions: one session cannot read nor
even modify data of another session.
My java critique is as follows:
I dislike:
- It has no processes as resource leak free, non disturbing user owned threads.
- It does not resist seamlessly in the hosting os. There are
no easy ways to access operating system functions, like pipes, memory,
processes, files, ....
- The byte compilation instead of a real machine code compilation is not
reasonable for server applications.
- The reflection api increases the number of interpreted and
type less applications.
- The vm is a new operating system. But with not all
features implemented. For example “pipes” and more seriously
“processes” are not existing.
- It is not possible to write command line versions of programs.
- It does not implement some of the most powerful concepts of older
languages, like the intrinsic support of regular expressions of
awk, or the extremely fast automatic storage of c,
or the powerful support of “pipes” and “redirection” of
bash.
- Performance seems not to be so good, because people always want to
tell me things about load balancing, connection pooling, object
reusage, ....
I like:
- It is highly portable.
- java brings a rich, standardized api. This is
itself extremely portable.
- The language is strictly and elegant designed.