Allegro.cc - Online Community

Allegro.cc Forums » Off-Topic Ordeals » Why is Java so huge

This thread is locked; no one can reply to it. rss feed Print
Why is Java so huge
Thomas Fjellstrom
Member #476
June 2000
avatar

Its purpose is to provide a strong theoretical basis, and to broaden the mind. Produce productive individuals? Are you trolling?

So basically there is no practical reason to go to university?

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

james_lohr
Member #1,947
February 2002

So basically there is no practical reason to go to university?

Of course there is: to provide a theoretical foundation to anything practical you might do.

type568
Member #8,381
March 2007
avatar

So basically there is no practical reason to go to university?

Wo-hooooooo! I leave that thing then!

verthex
Member #11,340
September 2009
avatar

Practical content like this is boring to teach and boring to learn. A CS Degree is supposed to be theoretical. If you want to learn language/platform specific crap like this, then go study at some polytechnic. This is the type of stuff that people can work out in their own time, and it most certainly should not be part of any self-respecting CS degree.

You're correct except that a lot of folks don't stay in academia after earning a cs degree and they actually think they recieved a degree to run Oracle, microsoft servers, and other specific tools which require "certification". And no employer will hire someone in honolulu without one, even with a masters. Maybe in your geographic area its different.

james_lohr
Member #1,947
February 2002

You're having a laugh right? Oracle / Java / Microsoft Servers certification is such a joke that most companies consider it a negative to have it on a developer's CV. Sure, if you want to work for a "Helpdesk" or be a DBA, then this type of certification makes sense, but it's not what employers look for in developers.

[edit]

Between this and the WoW thread I've nearly completely satisfied the troll in me. ;D

Thomas Fjellstrom
Member #476
June 2000
avatar

You're having a laugh right? Oracle / Java / Microsoft Servers certification is such a joke that most companies consider it a negative to have it on a developer's CV.

Bullshit. In many places they are a requirement. No cert, no job.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

verthex
Member #11,340
September 2009
avatar

Sure, if you want to work for a "Helpdesk" or be a DBA, then this type of certification makes sense, but it's not what employers look for in developers.

It has more to do with company resources and the lack of training involved with hiring someone new out of college. I'm serious, I'm not kidding.

james_lohr
Member #1,947
February 2002

I'll concede that that was one of my more blatant trollings of the today. ;D

But yeah, the number of "Certified Java Sun Programmer"s that fail our Java tech-test is amusing. :-X

verthex
Member #11,340
September 2009
avatar

But yeah, the number of "Certified Java Sun Programmer"s that fail our Java tech-test is amusing. :-X

Because that's company specific. You're company may need java for something more specialized besides what the Certified Java Sun Programmer"s taught them. Java is very broad based. If you're company named XYZ made a certification for whatever goals they required and were asked to give those to new recruits I'm sure they would pass those too. Running an oracle database by the way is mostly by the book. I'm not sure if they can fine tune the fucking thing like mysql.

Arthur Kalliokoski
Second in Command
February 2005
avatar

verthex said:

You're company may need java for something more specialized besides what the Certified Java Sun Programmer"s taught them.

It seems to me that if you're certified at a language, you can use all aspects of that language, not certified that you've memorized a few specific algorithms to use with that language.

They all watch too much MSNBC... they get ideas.

verthex
Member #11,340
September 2009
avatar

It seems to me that if you're certified at a language, you can use all aspects of that language, not certified that you've memorized a few specific algorithms to use with that language.

Right and I can remember all the jargon off the top of my head and put that down on a test. Java2s is a great site for filling in those blanks. But can you use that on a test? NOOOOOOOOOOO!

james_lohr
Member #1,947
February 2002

verthex said:

Because that's company specific.

Our company test is extremely general. Any reasonably good and experienced programmer (java/C/C++) will pass it comfortably. Our conclusion was that this particular Certification is not to be taken seriously.

Quote:

Running an oracle database by the way is mostly by the book. I'm not sure if they can fine tune the ing thing like mysql.

Oracle is a monstrosity. There is almost no limit to much depth you can go into fine-tuning the beast. It's horrifyingly complex compared to the more modern databases.

BAF
Member #2,981
December 2002
avatar

bamccaig said:

For example, WinForms is effectively a wrapper over the Windows API (i.e., not really portable at all). Java, on the other hand, had a goal of being portable from day one, so I think that more effort is put into developing platform independence (something Microsoft doesn't really want and settles for as a compromise), which often means sacrificing performance. I don't know of any Java frameworks that use the native Windows GUI, but then I'm not a Java programmer so they might well exist.

Well, let's compare the quality of Java UIs with that of WPF or Winforms. Portable GUI code is nothing but problematic anyway; for a good user experience, the UI should not be portable, IMO.

Quote:

Google Web Toolkit (GWT) is effectively a Java-compiler that compiles Java down into JavaScript. IIRC, the justification for this was that they already use a lot of Java and it's something that they embraced.
Of course, there's Android, which is entirely built on the Java platform. Again, I think the reason for this is that they are already intimately familiar with it, and it has a number of advantages when you want code to be easily portable across hardware and OS releases.

These two are totally irrelevant, especially GWT. You could just as easily compile a subset of C# down to javascript with the same result. And Android could have just as easily been built on mono instead of dalvik. These two show nothing about Java, especially when you consider they aren't using the official runtime or anything.

Quote:

but I am regularly bitten by little or no documentation for parts of .NET, or at the very least hard to find documentation, and the ecosystem around .NET isn't very helpful.

Strange, because I've had exactly the opposite experience. Usually, the APIs are so well put together that you don't even need documentation, and when you do, I've never had a problem finding anything. Maybe you're just using shitty third party libraries or something. Or, you just don't know how to read? ???

bamccaig said:

Today I stumbled across a rather good example of how .NET actually is: System.UriBuilder.

Is this another example of "being bitten by little or no documentation for parts of .NET?" Because in under 30 seconds, I found that the fragment issue is well documented, as well as the output of the port numbers. A quick click over to the constructor you're using shows that the port value is assigned, and therefore will be included in the output. Nothing mysterious going on here, it's all 100% documented.

torhu
Member #2,727
September 2002
avatar

The UriBuilder issue does look a bit like a case of implementation and docs disagreeing. ::)

MSDN said:

The display string does not contain the Port property value if the Port property was not set and a port was not specified when the UriBuilder was constructed.

bamccaig
Member #7,536
July 2006
avatar

BAF said:

These two are totally irrelevant, especially GWT. You could just as easily compile a subset of C# down to javascript with the same result. And Android could have just as easily been built on mono instead of dalvik. These two show nothing about Java, especially when you consider they aren't using the official runtime or anything.

What the fuck does this have to do with anything? Google choses to use Java. That's the only point that I was making... There are many implementations of the Java runtime. Sun's implementation isn't the only one. Also, if we're only talking about "official" implementations then .NET isn't even cross platform. ::) n00b.

BAF said:

Usually, the APIs are so well put together that you don't even need documentation,...

Herp derp, I'm going to push this code into production without reading the documentation to know that it implicitly drops the database...[1] ::)

BAF said:

Is this another example of "being bitten by little or no documentation for parts of .NET?" Because in under 30 seconds, I found that the fragment issue is well documented, as well as the output of the port numbers. A quick click over to the constructor you're using shows that the port value is assigned, and therefore will be included in the output. Nothing mysterious going on here, it's all 100% documented.

I don't give a fuck if stupid behavior is documented. It's still stupid. You're not helping your argument any...

References

  1. There actually are APIs in .NET that do something along these lines...
BAF
Member #2,981
December 2002
avatar

torhu said:

The UriBuilder issue does look a bit like a case of implementation and docs disagreeing.

The docs clearly state that the constructor he is using assigns the port property.

bamccaig said:

What the does this have to do with anything? Google choses to use Java. That's the only point that I was making... There are many implementations of the Java runtime. Sun's implementation isn't the only one. Also, if we're only talking about "official" implementations then .NET isn't even cross platform. n00b.

The whole discussion at that point was about Java sucking up resources and running like shit. So bringing GWT and Android in as arguments is like comparing apples to oranges at that point.

Quote:

I don't give a if stupid behavior is documented. It's still stupid. You're not helping your argument any...

You were ranting about the class doing strange things, and hinting at it being undocumented, and making it sound as if you had to do a bunch of experimentation to figure out what was going on. I was pointing out that it is fully documented, and not mysterious. Of course, the fact that Mono and .NET had the same exact output probably should have tipped you off as well.

If you don't want the port shown, clear the port property. When you parse the URI, you have to assign port to something (it's likely deferring to the Uri class for handling that), and at that point, it has no knowledge if it's default or not. It doesn't seem stupid at all to me.

I'm not sure about the other issue. I don't know enough about the use case or what's going on to know if it's stupid or not.

The bottom line is, contrary to your previous argument, there is nothing mystical and undocumented going on here.

bamccaig
Member #7,536
July 2006
avatar

BAF said:

The docs clearly state that the constructor he is using assigns the port property.

Merely assigning the port property is irrelevant. It would make sense if my URI actually had a port in it that it should assign the port. If there's no port then it should not because there's actually no port specified to assign. A URI is just a dumb URI. A URI parser should represent exactly what was parsed, and the port was not specified and is never needed when the scheme maps to a single default port (all implementations know the port and it's redundant to specify it). Therefore, adding that is completely useless clutter, and might even confuse some users of software that does explicitly specify the port.

BAF said:

The whole discussion at that point was about Java sucking up resources and running like shit. So bringing GWT and Android in as arguments is like comparing apples to oranges at that point.

No, you disputed the fact that Google uses a lot of Java and I provided examples known to me that suggest that Google does indeed use a lot of Java. That's what the discussion at that point was about. n00b.

BAF said:

You were ranting about the class doing strange things, and hinting at it being undocumented, and making it sound as if you had to do a bunch of experimentation to figure out what was going on. I was pointing out that it is fully documented, and not mysterious. Of course, the fact that Mono and .NET had the same exact output probably should have tipped you off as well.

I made absolutely no reference to documentation in the aforementioned post. The only thing that I said about the port is that it's unnecessary, redundant, clutter and misrepresents the original URI (there is a distinction between equivalence and equality).

BAF said:

If you don't want the port shown, clear the port property. When you parse the URI, you have to assign port to something...

Why should somebody have to take extra action for normal behavior instead of somebody that wants abnormal behavior taking special action? Your argument does not make sense. I'm arguing that it was designed stupidly. You're arguing that it can be worked around. That's a null argument.

BAF said:

...(it's likely deferring to the Uri class for handling that), and at that point, it has no knowledge if it's default or not. It doesn't seem stupid at all to me.

Firstly, it seems completely redundant to have a Uri class that can already parse a URI and also having a UriBuilder which doesn't seem to add any additional [useful] functionality. Which seems to only support my argument that .NET is both poorly organized and poorly designed.

Secondly, there's no reason the UriBuilder can't track whether or not the port was explicitly set and undo any "damage" or obscuring that the internal implementation may cause. That's sort of the point of classes and encapsulation. I don't care how you do what you do internally. I only care that you expose something sensible to me. That's the whole fucking point of a [well-written] library or framework[, which .NET clearly is not].

torhu
Member #2,727
September 2002
avatar

BAF said:

The docs clearly state that the constructor he is using assigns the port property.

Not that clearly as far as I can tell...

From [UriBuilder Constructor (String):

Quote:

This constructor initializes a new instance of the UriBuilder class with the Fragment, Host, Path, Port, Query, Scheme, and Uri properties set as specified in uri.

From UriBuilder.Port Property:

Quote:

If a port is not specified as part of the URI, the Port property returns the value of -1 to indicate that the default port value for the protocol scheme will be used to connect to the host.

From UriBuilder.ToString Method :

Quote:

The display string does not contain the Port property value if the Port property was not set and a port was not specified when the UriBuilder was constructed. The display string also does not contain the Port property value if the Port property or port number for the constructor was set to a value of -1.

Steve++
Member #1,816
January 2002

BAF said:

Well, let's compare the quality of Java UIs with that of WPF or Winforms. Portable GUI code is nothing but problematic anyway; for a good user experience, the UI should not be portable, IMO.

Let's not. As much as I like Java (EE 6) for web development, I'll concede that Java was never a serious contender in the desktop space. You're wrong, though, about Swing's poor quality (which I see mainly as a lack of features) being a result of its portability. You could have all sorts of bells and whistles and eye candy in a portable UI framework. WPF is a good example of a portable (in principle, though no one has done it) UI framework with loads of features and eye candy. Perhaps the thing that held the Java team back was that they supplied a native look-and-feel for each operating system and could only do so by targeting the lowest common denominator.

bamccaig
Member #7,536
July 2006
avatar

I said:

BAF said:

If you don't want the port shown, clear the port property. When you parse the URI, you have to assign port to something...

Why should somebody have to take extra action for normal behavior instead of somebody that wants abnormal behavior taking special action? Your argument does not make sense. I'm arguing that it was designed stupidly. You're arguing that it can be worked around. That's a null argument.

More importantly, if the URI being parsed is entirely dynamic then my application can't know if the port was specified or not without parsing the URI; which was sort of the point of using UriBuilder in the first fucking place. If I need to manually parse a URI anyway then .NET isn't doing me any favors. Which is exactly the point that I was making.

verthex
Member #11,340
September 2009
avatar

Oracle is a monstrosity. There is almost no limit to much depth you can go into fine-tuning the beast. It's horrifyingly complex compared to the more modern databases.

I know there is an autotune feature. I'm pretty sure that's more modern than mysql.

james_lohr
Member #1,947
February 2002

By "modern" I mean databases which have been born (or reborn) more recently than Oracle. Oracle is certainly up-to-date with the most advanced features, and probably still the most reliable and powerful database: it is, after all, still the de facto industry database ...but it is extremely (and unnecessarily) complicated because it is bloated with legacy features which can't be pulled because so many businesses are dependant upon them.

Steve++
Member #1,816
January 2002

bloated with legacy features which can't be pulled because so many businesses are dependant upon them

And it is so bloated, in fact, that there is no appetite for introducing paradigm-shifting features such as boolean columns and identifiers longer than 30 characters.

But who uses JSF?

More on this... The PrimeFaces group on facebook currently has 1,470 approved members. Outside of facebook, the forum has over 10,000 users with almost 50,000 posts. PrimeFaces users represent only a subset of JSF 2 developers. There are communities around other component suites such as IceFaces, RichFaces, Trinidad, etc. So they're definitely out there and likely number in the tens of thousands. And that's despite the face that you can barely find a job listing anywhere for JSF 2.

Matthew Leverton
Supreme Loser
January 1999
avatar

If this is any indication of relative popularity, on StackOverflow: 174K PHP tags vs 103K ASP.NET tags vs 7K JSF tags.

Thomas Fjellstrom
Member #476
June 2000
avatar

If this is any indication of relative popularity

It may be. But it may also be an indication of relative intelligence.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730



Go to: