Jump to content

Best trailer every?

samosnik

This is freakin' brilliant! haha.

LTT Recruit: Tacoma | Organization: UOLTT Conglomerate | Group: Salvage and Military | Fleet: Anvil Carrack, Aegis Retaliator and CO Mustang Omega


Appreciation to: artofinca.com | UOLTT Conglomerate on RSI and LTT


If you don't know what my avatar is, it's from: Silverhawks

Link to comment
Share on other sites

Link to post
Share on other sites

As much as I despise Java (and I really, really do), I've seen this

a few times now, and still think it's pretty hilarious. :D

BUILD LOGS: HELIOS - Latest Update: 2015-SEP-06 ::: ZEUS - BOTW 2013-JUN-28 ::: APOLLO - Complete: 2014-MAY-10
OTHER STUFF: Cable Lacing Tutorial ::: What Is ZFS? ::: mincss Primer ::: LSI RAID Card Flashing Tutorial
FORUM INFO: Community Standards ::: The Moderating Team ::: 10TB+ Storage Showoff Topic

Link to comment
Share on other sites

Link to post
Share on other sites

Why the hate? :D

OK, first a disclaimer:

I should state that I'm not a very experienced Java programmer, so

some of my criticisms might simply stem from inexperience and/or

ignorance. I might also have omitted some common criticisms which

a more experienced programmer might level at Java. But, the following

criticisms are actually based on my personal experience, and not

just the usual "Top 10 Google Results For Why Java Is Bad" (there might

be some overlap though). ;)

Also: "I despise Java" != "Java is bad."

I'll split my gripes into two categories: Objective(-ish) and subjective.

The more objective part is as follows:

  • Security and all those annoying updates. Bloody hell! I'm aware

    that no software is bug-free, but that's not an acceptable excuse

    IMHO for the clusterfuck that is Java's state in this discipline.

  • Related to that: Java applets on the Web. Luckily they don't

    seem to be very prevalent these days on the web itself. But: There

    are still devices like printers and remote management tools which

    rely on Java, and whose firmware can't be upgraded to newer Java

    versions. So, for instance, when I wish to access our printer's

    web interface (year of manufacturing: 2007), I need to disable all

    Java security, otherwise it won't work. And nicely enough, Java

    is telling me that that won't be possible in future versions of

    Java anymore. So I'll either no longer be able to access the printer's

    web interface, or I'll need to set up a special machine with an

    old Java version in order to be able to access it. Same goes for

    the IPMI web interface for my Supermicro M/B. I think @IdeaStormer

    can also sing a few songs about the issue. Now, I know, one could

    make the argument that it is not a bad idea to improve Java security,

    and in general I would agree. Nonetheless, this is a serious

    issue for me with noticeable consequences, and it is directly

    Java's fault.

  • The utter obsession with OOP that comes with it, and the lack

    of a good way to mix imperative and OOP programming. OOP is nice,

    but like any other tool, it is not the best tool for every job.

    Related: No good way for global variables. Yes, I know, globals

    are the devil's work! IMHO, they have their legitimate uses and

    if you wish to implement an equivalent mechanism in Java, you're

    going to be adding lots of code for comparatively little additional

    functionality. ==> Code bloat

  • The RAM utilization (at least in those programs I've used).

    Java just seems to think that all the system's RAM is its own

    to eat up and do with as it pleases.

  • The speed hit you take for running things in the Java VM. Yes,

    this comes with the territory, and is probably less of an issue

    these days than it used to be. But, as an example, I have a Java

    IPMI program from Supermicro for interfacing with my server board,

    and it's just slow and sluggish. Yes, it's portable, but the user

    experience really isn't very good at all.

The more subjective reasons:
  • I hate the aesthetics of the code. And when I say hate, I really

    mean utterly despise. Some people may like it, but to me it's just

    headache-inducing. Now, you might think this is not a big deal,

    but to me, this actually matters a very great deal. I like beautiful

    code, I want beautiful code. When I work on code, I'm more motivated,

    more productive and just generally happier when that code is pleasing

    to my eyes. When I write code, I place great importance on making it

    pretty (at least to me ;)). Ugly code is demotivating and a pain to

    work with, and I have yet to come across any Java code that I would

    call even remotely in the neighbourhood of eye-pleasing.

    Again, completely subjective, I know, but a huge deal for me. Probably

    even the most important reason for my dislike of Java even.

  • camelCase. Do I write a long variable name InThisFashion, or inThisFashion,

    or inThisfashion (the second one is what I've seen most frequently).

    This becomes really bad for very long variable names (which, by the

    freaking way, there are a lof of in Java). And here as well, I dislike

    the aesthetics of camelCase. And yes, I'm aware that this is almost a

    religious debate among coders. ;)

  • The ridiculous verboseness of the language. Other people love this

    about it, but personally I really do not. I would much rather have

    more concise code and add a few comments more here and there for

    clarity instead.

  • Lots of small stuff that is just annoying when I write Java code

    but which doesn't come to mind at the moment because (luckily) I don't

    need to write this forum post in Java. :D

I know that when you Google, you'll find quite a few people more knowledgeable

than me who dislike Java for their own reasons, and as I get more experienced,

mine will probably evolve as well, but this is my current stance on the subject.

In general, I find the idea of having a VM for each platform and writing

universally portable code for that VM very nice, and especially with how

powerful today's computers are, I think that in many cases the speed hit

you take would be tolerable.

But I also consider Java to be a very disappointing implementation of that

idea, however noble the concept may be.

As an addendum: This isn't about "C/C++ Master Race" or anything like that.

While I like C due to its inherent simplicity (and by that I mean the

language itself), it can be a huge pain to accomplish relatively simple

tasks in it I will admit.

As for C++, it's extremely powerful and very prevalent. However, it is

also hugely complex IMHO (then again, maybe I'm just too dumb :P ).

Mastering C++ is not likely something I'll ever accomplish in my lifetime,

unless I end up working in a job which uses it extensively (and even

then, I have my doubts TBH).

Personally, I love Perl and it is the go-to language for my personal

projects these days unless I really, really need the speed advantage of

C/C++.

I know, Python is all the rage these days, and that's fine. But I like

the aesthetics of Perl, I love all those cool "Perlisms" about it, the

weird things you can do with it (which, admittedly, is precisely what

many seem to dislike about it), I love that you can be very concise

or very verbose, depending on what makes sense (and yes, sometimes it

makes sense to be verbose, of course), and probably many other things

which are eluding me at the moment. :)

Anyway, I shall conclude this essay now, it's probably too long already

anyway. Still, I really like the video. :D

@MG2R

BUILD LOGS: HELIOS - Latest Update: 2015-SEP-06 ::: ZEUS - BOTW 2013-JUN-28 ::: APOLLO - Complete: 2014-MAY-10
OTHER STUFF: Cable Lacing Tutorial ::: What Is ZFS? ::: mincss Primer ::: LSI RAID Card Flashing Tutorial
FORUM INFO: Community Standards ::: The Moderating Team ::: 10TB+ Storage Showoff Topic

Link to comment
Share on other sites

Link to post
Share on other sites

 

Related to that: Java applets on the Web. Luckily they don't

seem to be very prevalent these days on the web itself. But: There

 

Well that is probably more a fault of printer manufacturers who don't care about their software at all :D

 

 

The utter obsession with OOP that comes with it, and the lack

of a good way to mix imperative and OOP programming. OOP is nice,

but like any other tool, it is not the best tool for every job.

 

I was under the impression that Java is one of those OOP languages not to force OOP onto you if you don't want it :D

 

 

The speed hit you take for running things in the Java VM. Yes,

this comes with the territory, and is probably less of an issue

these days than it used to be.

 

I recently had a discussion with a AI / machine learning professor asking him if he would also use java for projects where speed is of importance and he told me that with modern JVMs the speed difference between Java and let's say C/C++ is only marginal.

 

 

I hate the aesthetics of the code. And when I say hate, I really

mean utterly despise. Some people may like it, but to me it's just

headache-inducing.

Haha, that's actually a reason why I like Java over other languages :D

 

 

camelCase. Do I write a long variable name InThisFashion, or inThisFashion,

or inThisfashion (the second one is what I've seen most frequently).

not really java specific though :P

 

_____________

 

Currently trying to get into Objective-C ... can't decide if I hate it or like it :)

Mini-Desktop: NCASE M1 Build Log
Mini-Server: M350 Build Log

Link to comment
Share on other sites

Link to post
Share on other sites

I think you meant to say in the title is "Best Trailer ever" not best trailer every?

My Sig Rig: "X79 (3970X) -Midas"http://pcpartpicker.com/p/wsjGt6"  "Midas" Build Log - https://linustechtips.com/main/topic/59768-build-log-in-progress-code-name-midas/


"The Riddler" Custom Watercooled H440 Build Log ( in collaboration with my wife @ _TechPuppet_ ) - http://linustechtips.com/main/topic/149652-green-h440-special-edition-the-riddler-almost-there/


*Riptide Customs* " We sleeve PSU cables "

Link to comment
Share on other sites

Link to post
Share on other sites

Well that is probably more a fault of printer manufacturers who don't care about their software at all :D

Fair enough, yes. If only they hadn't decided to use Java. But

yeah, you're right, this is not really an inherent flaw of Java,

I'll grant you that.

 

I was under the impression that Java is one of those OOP languages not to force OOP onto you if you don't want it :D

It might just be because I'm not yet all that experienced with it,

but so far what I said above has been my impression. As said, my

opinions might change with more experience of course.

 

I recently had a discussion with a AI / machine learning professor asking him if he would also use java for projects where speed is of importance and he told me that with modern JVMs the speed difference between Java and let's say C/C++ is only marginal.

I have heard this as well a few times now, and it might well be

true. The issue (to me, at least) seems to be that everybody's

grandma has had to learn Java at some point, which makes for a

lot of rather incompetent programmers writing bad code (then

again, at least this way they're nicely stowed away in Java and

not interfering as much in other languages :P ). And I'd wager

that bad Java code can't really keep up with C/C++, you'd need

good Java code for that (this is leaving out the question of

whether or not the same incompetent programmers would be able

to write good enough C/C++ code, of course, it might well be that

their C/C++ versions of their Java programs would be just as

horrible).

Side note: I would definitely consider myself an incompetent

Java programmer at this point. ;)

Also, there seems to be quite a bit of old-ish Java code still

around which is still pretty slow. I'm pretty sure that IPMI program

I mentioned does not have a very recent codebase (it really is pretty

damn sluggish).

 

Haha, that's actually a reason why I like Java over other languages :D

No problem with that, as said, it's completely subjective. I could

easily imagine that my code might be the ugliest thing you've ever

seen, it really is just a matter of taste in the end. :)

 

not really java specific though :P

 

True, but it can't really be avoided in Java IME, whereas it is less

prevalent in some other languages (but obviously it will depend

on the code base as well). It might also be that I harbour a bit

of a grudge against Java because it seems it popularized camelCase

a lot (can't say if that's really true or not TBH, just a thought).

 

Currently trying to get into Objective-C ... can't decide if I hate it or like it :)

Well have fun with that. :D

Overall I'd say Java is like any other tool: It has its uses. I

just don't like working with that tool, and given the potential

of its core idea I'm a bit disappointed in the outcome I suppose.

EDIT:

Side note: So refreshing to have cilized internet debate instead

of the usual shouting matches (then again, this is the programming

section, not the GPU section).

On second thought, maybe it's just because we haven't picked the

right subject for things to get heated enough? So, next up is,

what, Tabs Vs. Spaces? That should be good for some bloodshed :P

(no, let's not, thread derailment and all that)

BUILD LOGS: HELIOS - Latest Update: 2015-SEP-06 ::: ZEUS - BOTW 2013-JUN-28 ::: APOLLO - Complete: 2014-MAY-10
OTHER STUFF: Cable Lacing Tutorial ::: What Is ZFS? ::: mincss Primer ::: LSI RAID Card Flashing Tutorial
FORUM INFO: Community Standards ::: The Moderating Team ::: 10TB+ Storage Showoff Topic

Link to comment
Share on other sites

Link to post
Share on other sites

camelCase. Do I write a long variable name InThisFashion, or inThisFashion,

or inThisfashion (the second one is what I've seen most frequently).

This becomes really bad for very long variable names (which, by the

freaking way, there are a lof of in Java). And here as well, I dislike

the aesthetics of camelCase. And yes, I'm aware that this is almost a

religious debate among coders.

 

I know I've always said that I preferred camelCase, these days I'm not

that sure about it anymore. I've been programming with underscores

separating words in names because that's the Drupal coding standard

and, to be honest, I'm getting used to it, slowly but surely.

 

not really java specific though :P

 

Well, it is kind of the de facto standard to use CamelCase for class names

and camelCase for variables in Java, though.

 

In general, I find the idea of having a VM for each platform and writing

universally portable code for that VM very nice, and especially with how

powerful today's computers are, I think that in many cases the speed hit

you take would be tolerable.

 

I don't get why we would need it. These days compilers are so advanced,

computers are so powerful, and storage is so abundant, that I don't see

why it would be a problem to just compile a version for whatever archi-

tecture you're targeting. The resulting code WILL be faster, and it WILL

be more efficient than when you're virtualizing.

 

Yes, running VM's to virtualize actual machines has it uses and I'm a huge

advocate of such a thing. But running every piece of code inside a VM?

I'll pass for that.

 

 

I have heard this as well a few times now, and it might well be

true. The issue (to me, at least) seems to be that everybody's

grandma has had to learn Java at some point, which makes for a

lot of rather incompetent programmers writing bad code (then

again, at least this way they're nicely stowed away in Java and

not interfering as much in other languages :P ). And I'd wager

that bad Java code can't really keep up with C/C++, you'd need

good Java code for that (this is leaving out the question of

whether or not the same incompetent programmers would be able

to write good enough C/C++ code, of course, it might well be that

their C/C++ versions of their Java programs would be just as

horrible).

 

Well, TBH (and I'm not a fan of Java, you know this), you're making an

unfair comparison -- comparing bad Java code to good C(++) code

because Java programmers are somehow inherently less good. This

argument is flawed IMO, you shouldn't compare two languages based

on the programmer but based on the language characteristics, and you

shouldn't assume a programmer isn't any good because he works with

Java.

 

Although, now that I think about it, yeah, you're right, any Java programmer

is a bad programmer. Death to the Java programmers! :D

 

This is a joke, please don't report me please (a)

 

 

 

Tabs Vs. Spaces?

 

Easy. Tabs for sure. A tab is the one true indentation symbol in the ASCII

table.

 

 

EDIT:

For the record, I'm a big fan of ANSI C. I think it is the only language that is

truly efficient, and since basically all noteworthy languages are derived from

C in one way or another, it can basically say "who's your daddy?" to every-

one :D

 

Furthermore, my heart goes out to C++, PHP, and Perl (although I really don't

write any Perl anymore, and it has been more than a year since I last did, I

had an affinity for the language from Perl 101).

 

I'm a big opponent of Java. That said, I can see it's merits and I know why it

is so widely spread, I just think that for almost every application, there are

better platforms to implement them on than Java.

Edited by MG2R
Link to comment
Share on other sites

Link to post
Share on other sites

I know I've always said that I preferred camelCase, these days I'm not

that sure about it anymore. I've been programming with underscores

separating words in names because that's the Drupal coding standard

and, to be honest, I'm getting used to it, slowly but surely.

 

 

Typing an underscore is more annoying than just typing a capital

letter I think, but I just prefer underscored variables when it

comes to the end result and have gotten so used to typing underscores

that it's my default setting these days.

 

I don't get why we would need it. These days compilers are so advanced,

computers are so powerful, and storage is so abundant, that I don't see

why it would be a problem to just compile a version for whatever archi-

tecture you're targeting. The resulting code WILL be faster, and it WILL

be more efficient than when you're virtualizing.

 

Yes, running VM's to virtualize actual machines has it uses and I'm a huge

advocate of such a thing. But running every piece of code inside a VM?

I'll pass for that.

 

I'm not an expert in compiler design at all, but in general I would

reckon going through a VM would make sense where adapting your actual

piece of software to different platforms does not justify the benefits

it brings with it. But in which cases this is true will in the end always

(ideally) be a case-by-case decision.

 

Well, TBH (and I'm not a fan of Java, you know this), you're making an

unfair comparison -- comparing bad Java code to good C(++) code

because Java programmers are somehow inherently less good. This

argument is flawed IMO, you shouldn't compare two languages based

on the programmer but based on the language characteristics, and you

shouldn't assume a programmer isn't any good because he works with

Java.

 

Although, now that I think about it, yeah, you're right, any Java programmer

is a bad programmer. Death to the Java programmers! :D

 

 

Yes, absolutely, this comparison is in fact not fair (well, at least

IMHO). I considered that too before posting, but this is what led me

to keep it in:

To flesh out my line of thinking a bit, I suppose this is more of an

issue I have with the Java ecosystem than with the language itself.

Hence my mentioning of "everybody's grandma...". Yes, I would say it's

unreasonable to assume that there are no competent Java programmers,

and I'd also say it's unreasonable to assume that all C/C++ programmers

are competent (in fact, I read Linus Torvald's rant about C++ and how

it attracts horrible programmers a while back, so the same argument

seems to exist between C and C++).

 

But nonetheless, the ecosystem, simply because it is such a widespread

language which gets touted as the solution to every problem, does seem

to generate a lot of code that gets widely used and is really not very

good (again, as an example, I cite the sluggish interface of the IPMI

software from Supermicro I've worked with).

Obviously, this is just my personal impression from what I have seen

of the ecosystem so far. It might very well be skewed and incorrect.

 

Easy. Tabs for sure. A tab is the one true indentation symbol in the ASCII

table.

Yes, semantical correctness FTW! :D

 

EDIT:

For the record, I'm a big fan of ANSI C. I think it is the only language that is

truly efficient, and since basically all noteworthy languages are derived from

C in one way or another, it can basically say "who's your daddy?" to every-

one :D

I really like C as well, but I honestly don't know if it's the only

truly efficient language. Wouldn't it depend on the task you throw at your

code (I'm really not informed well enough to make this judgement, so this

is more of a question than a criticism). Say, for instance, FORTRAN and

scientific simulations, that seems to be a very good match according to

what I've read.

Another thing: It might not necessarily always be desireable to have the

most efficient program, but instead save on development time by going with

an inherently less efficient language.

I do like C, but I have found that I'm not very quick at getting results

with it. Then again, that might just be because I'm incompetent. :D

 

Furthermore, my heart goes out to C++, PHP, and Perl (although I really don't

write any Perl anymore, and it has been more than a year since I last did, I

had an affinity for the language from Perl 101).

 

Love Perl, as said above. PHP I have found really useful, although as I have

delved deeper into Perl I have found some things about PHP I don't really like,

but overall I have found it an easy language to use and get (useful) results

within pretty short time.

C++... well, I don't think badly of the language, but I will admit that I'm

just not good enough at it to really enjoy using it. But, from what I've

seen so far, if I had the time to get somewhat competent at it, I'd probably

enjoy it.

 

I'm a big opponent of Java. That said, I can see it's merits and I know why it

is so widely spread, I just think that for almost every application, there are

better platforms to implement them on than Java.

As stated above, I'd say like any other tool it has its uses, I just think

it's often used for things for which other tools might be preferable.

BUILD LOGS: HELIOS - Latest Update: 2015-SEP-06 ::: ZEUS - BOTW 2013-JUN-28 ::: APOLLO - Complete: 2014-MAY-10
OTHER STUFF: Cable Lacing Tutorial ::: What Is ZFS? ::: mincss Primer ::: LSI RAID Card Flashing Tutorial
FORUM INFO: Community Standards ::: The Moderating Team ::: 10TB+ Storage Showoff Topic

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×