Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
zootm
Aug 8, 2006

We used to be better friends.

idolmind86 posted:

Yes, I was serious. The problem becomes less than trivial when you have to worry about having linear scalability, speed, files up to 4G in size, data corruption, character set conversion, low memory usage, etc.
Okay, now we know you're not serious. Especially given that the Ricebridge CSV manager just gives you a "List of String arrays", something that any open source CSV parser will give you. Of course most open source libraries will give you a pull/push API (solving concerns 1, 2, 3, and 6), and Java deals with character set conversion for you so screwing that up is actually quite hard (concern 5).

I can see the point in having an XML reader which can handle a subset of XPath (the main feature of the Ricebridge XML reader; "full" implementations usually have to build a DOM) but "convenience" isn't one of the concerns that you cite.

Adbot
ADBOT LOVES YOU

zootm
Aug 8, 2006

We used to be better friends.

geeves posted:

What are some decent frameworks that anyone can recommend I take a look at - I know a bit about what's out there, but I've been mainly stuck in Struts and Apache Jackrabbit / Sling for the last 5 years and really haven't really looked. I have the opportunity to possibly pick something fresh (for me anyway) for a small freelance project I'm taking.

The project is a licensed search-oriented application based on pre-defined content - there are other details to be handled but that is the bulk of the application.
I hear many good things about the Play Framework for websites.

zootm
Aug 8, 2006

We used to be better friends.

Contra Duck posted:

I think you don't really understand the size of a language like Java. Seriously, look at all of this. Ignoring the rapid pace at which new features are added, complete proficiency in these things alone would take DECADES. You might be able to become a passable programmer in the space of a year if you work hard but when you throw around terms like 'complete proficiency' you're demonstrating that you don't fully grasp the scope of what you're trying to achieve.
Almost none of those are actually relevant to Java the language, though (not to mention the number of them which supersede other entries). Java is not especially complex to learn as a language, and most of the APIs are irrelevant to most people. Getting a good grasp of the the core language itself and maybe the collections libraries, as well as a good grounding in programming in general (learning another language is more important than learning most APIs, even if they're the ones you end up using), is more than enough to claim proficiency in Java as a language.

Working on some real projects (another important step) will give you experience with common APIs, but more importantly it will teach you how to learn about these APIs, because learning every API available to Java (especially given how many of the ones listed are often replaced with third-party alternatives) is a pointless and herculean task. Memorising APIs, especially those irrelevant to the tasks you plan to perform, is the very definition of a fool's errand.

zootm
Aug 8, 2006

We used to be better friends.

Jam2 posted:

To me, proficiency means being able to use tools available to solve problems and write good code as a valued contributor within an engineering team. It means being able to hold your own in a work environment full of experienced programmers. It means being able to bring something to the table. This is my three to four year goal.
If this is your goal then brushing up on your problem-solving and general software design skills is much more important than learning any given language or set of tools. If anything concentrating on a single toolset limits your "proficiency" in this regard.

The most important thing that new hires bring is a fresh perspective. The actual toolchain tends to be relatively easy to pick up on the job if you're in an anyway half-decent work environment. In particular there is almost no way that you can be educated in practical terms in the way that you describe without just working on things, preferably with others who are more and less experienced with you. As such, the initial plan you laid out (which I hadn't looked at; I was replying to replies to you) looks not unreasonable.

Don't worry about "advanced concepts", just learn the concepts that people actually use and you'll end up as proficient as anyone.

zootm
Aug 8, 2006

We used to be better friends.

Contra Duck posted:

This I will discuss this though. To me that person is a good programmer who happens to have spent a weekend looking at Java*. The usefulness of Java doesn't come from the base language, it comes from the incredible variety of high-quality libraries and add-on features. Unless you have some working knowledge of important add-ons like Java EE and persistence APIs and know of a lot of the smaller ones, I think it's hard to claim that you have any sort of expertise.
I think you're mostly right asserting that. I just don't want people to think that it's a reason not to get out in the world and attempt to work in the field. There is little or no way to learn these APIs effectively other than just using them. And generally the good ones are easy to pick up as one goes.

Contra Duck posted:

* Just to clarify, that's not meant as an insult.
Assuming it was me you were worried about insulting, I didn't take it that way. Sadly I am one of these people with way more knowledge about Java APIs than I want to have already.

tef posted:

I mean how many java programmers actually understand the type of enum :v:
This is the true test of whether people grok generics, I guess.

zootm
Aug 8, 2006

We used to be better friends.

Aleksei Vasiliev posted:

question: is this not awesome

http://www.youtube.com/watch?v=2a4RNw8A5L8&cc_load_policy=1
Was watching that earlier. It does manage to somehow transcend "cringey geek humour" using production values. Bravo.

zootm
Aug 8, 2006

We used to be better friends.

MEAT TREAT posted:

Just show them how to convert everything into a Runtime exception :unsmigghh:.
I know that UnhandledException is probably my most-used Apache Commons class...

zootm
Aug 8, 2006

We used to be better friends.

Exxon Hess posted:

I don't know if Scala will be able to take advantage of it, since it's not a dynamically typed language, but Groovy, Rhino, and JRuby will probably get a significant bump, as Hotspot will get a much better shot at JITting.
Scala can probably use them for structural types, and I wouldn't be surprised if there were some type things you can do in Scala but not in Java that would be benefit, but in general you're right.

zootm
Aug 8, 2006

We used to be better friends.

Ranma posted:

personally I prefer the:
String line;
while((line = scanner.nextLine) != null) {
}

syntax.
I vehemently hate that syntax, but it tends to be the nicest way of writing such a thing.

zootm
Aug 8, 2006

We used to be better friends.
The Integer implementation has an 2-argument overload Integer.toString(int i, int radix) which lets you generate non-base 10 strings (there's also toHexString, toOctalString, and toBinaryString). If you ever plan on using that functionality, it might be worth using the Integer.toString variant just so code doesn't look weird.

Having said that although it's untidy that there's a couple of ways to do this, if you're agonising over which is the "right" one to do, you're probably focusing on the wrong thing.

zootm
Aug 8, 2006

We used to be better friends.
Hamcrest matching for tests is handy, but I think using it in TestNG would not be difficult if one wanted to. The main reason I've seen TestNG used is that it can organise tests into groups, and run tests in parallel, though.

There are some neat experimental features in JUnit (Assume, @Theories, Rules) which are worth checking if they meet your use-case. Also worth bearing in mind that if you end up using some additional testing library it's a bit more likely to support JUnit, as the more traditional library.

Mostly though they're both good and unless you have special requirements they're pretty functionally similar.

Adbot
ADBOT LOVES YOU

zootm
Aug 8, 2006

We used to be better friends.

crm posted:

What does the state of java webstacks look like these days? I'm been stuck in Weblogic Portal purgatory the last few years and need to get out.

What's popular? If you're starting a new project, what do you use?

Note: I'm going to be stuck with Oracle or Netezza as my backend and deploying to a weblogic server.
Play Framework seems to be the Framework du Jour, however due to some limitations in the servlet spec its newer versions can't be deployed to containers, they just run standalone. This is obviously an issue if I've is in a managed environment like yourself.

I personally quite like using Jersey (a REST framework implementing the JAX-RS API) for writing webapps, although it's not really what it's designed for. It's easy enough to hack in a templating engine as an output format that can provide text/html representations. That might be a bit idiosyncratic though.

Failing that maybe Spring MVC? Not super-pleasing, sadly.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply