12

Interesting..

From the book Effective Java, third edition:

"1997, when Java was new, James Gosling (the father of Java), described it as a
“blue collar language” that was “pretty simple” [Gosling97]. At about the same time,
Bjarne Stroustrup (the father of C++) described C++ as a “multi-paradigm language”
that “deliberately differs from languages designed to support a single way of writing
programs” [Stroustrup95]. Stroustrup warned:"

"Much of the relative simplicity of Java is—like for most new languages—
partly an illusion and partly a function of its incompleteness. As time passes,
Java will grow significantly in size and complexity. It will double or triple in
size and grow implementation-dependent extensions or libraries."

Bjarne Stroustrup (the father of C++)

Comments
  • 2
    Well... I think it's a universal paradigm.

    It's hard to explain in a few lines...

    But just look at the last 30 years.

    (Wikipedia)

    1991: i486SX
    Frequencies: 16 MHz - 33 MHz,
    32 Bit, 4 GB RAM possible, 8 KB "L1" Cache

    2000: AMD K7 500 - 1000 MHz, 32 Bit, 4 GB RAM possible, 37 Million transistors, L1 Cache: 64 /64 Kb; L2 Cache 256 KB

    Most people look at it from a technological / scientific way (Shiny numbers!)…

    Let's look at it from a programmer's view... most of the stuff written in the 90s would be totally unacceptable now adays. Simple reason: they didn't have a choice. You couldn't even utilise strings much back in these days. Lot of mathematical fucking / optimization was necessary, which noone with a sane mind would do nowadays.
  • 0
    @IntrusionCM Then this means I'm insane. ;-P
  • 0
    @CaptainRant Hm. As I am more DB guy, I won't talk about packing and so on.

    But you can do a lot of stuff like that in a DB too. MySQL Enums by Index, Byteshifting with bitmasks, multi value columns ....

    It's terrifying what some people do.
  • 0
    @IntrusionCM 'Not necessary' does not mean 'should not'. There's sometimes going to be a trade-off between optimization and readability, but that does not mean those math fuck-ups are irrelevant
  • 0
    More to that than meets the eye.

    Gosling never wanted Java to grow much beyond Java 5, when generics were introduced. As far as he was concerned, it had used up it's "change budget" with generics, and shouldn't add any more significant language level features. Most others disagreed, hence it has evolved since.

    However, Stroustrup wasn't really correct either, at least not to the degree he was implying. Java has been reasonably slow at adopting new language level features even after Goslings involvement stopped. For a mature language, it's still relatively simple.

    Take a look at a newer language like C#, and Stroustrop's comment would have been bang on. For better or worse, it has a huge number of language level features - certainly hasn't stayed simple as it's evolved.
  • 0
    @AvyChenna

    It depends I guess...

    I specifically didn't give examples because a lot of these examples need to be explained very detailed...

    The easiest thing are bitmasks. An enumeration stored by utilizing bit shifts... Not uncommon in older code, as memory efficiency was necessary.

    Scalability wise a total nobrainer - especially in databases (no index, no fun)...

    Even architecture wise (except in low level programming) pretty hard to justify - as bit arithmetic can bite u in ur arse (note: endianess / overflows / ...).

    I remember one client where I had to unravel NESTED bitmasks.

    When u think bitmasks are bad, please do not read on. Heavy trauma incoming.

    one bitmasks can eg. be used to represent a role, another the group permission, another the user permission, another specific systemwide permissions.

    Each one single stored in a bitmask, then combined in a single field...

    Oh boy was it fun to unravel this...

    To end a long post short: I'm not talking about "basic stuff" - but rather things which nowadays "should" be rather unknown when you were not forced to deal with them...
Add Comment