In a few weeks, I have become thoroughly addicted. I would in no way
classify myself as a functional programming expert yet, and I'm still
learning what seems like basic syntax at times, though concepts like
recursion, closures, and list comprehensions are things I get, and
have quickly sucked me into the Scala world which is increasing my
functional programming knowledge daily.
I now have a very serious problem. I spend from 5pm on Friday till
9am on Monday coding in Scala (and I confess Grails a little too).
Then I log on at work, and I have to write Java again (where it's more
like 11am by the time I can face it). Monday is agony, pure agony, I
want to run away screaming. It's like going from Zen calligraphy to
paint by numbers with crayons.
I finally decide after another pretty lousy year, I'm gonna nose
around and find out what the job market is like.
Searching for Scala jobs in my Area on Dice: 3, one of them is a typo,
one lists it as a helpful extra-curricular interest. Searching for
Scala jobs where I want to relocate to on Dice: 0. I switch to a
nationwide search, and the results are in the low three digit range.
Monster.com yields slightly better results but still pitiful.
What have you done! I hate you! I will be subjected to daily torture
at work until delivered from the prison that is Java syntax!
I am beginning to understand now, why all the functional programmers
have been staring down their noses at the mere mortals who inhabit
regular cube-jobs (that sounded a bit wrong).
I wrote AOP code last year, and was told off because no one else could
understand AOP yet (srsly?), and so it couldn't be maintained (a fair
point, but tragic, as it was made of win, and uncovered a massive
bug). The number of other people I know in my division who could
write the first year CompSci exercise to reverse a list using
recursion by rote could likely be counted on the fingers of one hand,
and it's possible Captain Hook's bad hand would cover it. Even if I
could convince our management that Scala was the next step on the path
to enlightenment, I can't imagine too many others would be lining up
to join a project using it as the primary language.
How the heck do you find a job working in Scala outside of the Bay
Area or New York city?
I wrote AOP code last year, and was told off because no one else could
understand AOP yet (srsly?), and so it couldn't be maintained
Alex
--
You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
I could ask what's wrong with AOP, but you're probably thinking about the same as me on that one. I like to call code like that "god" code. It's the hidden mysterious force that can really screw things up without almost anyone knowing where it came from and why, or being able to fathom it's intention. Sometimes though - a little divine intervention is handy :D
I could ask what's wrong with AOP, but you're probably thinking about
the same as me on that one. I like to call code like that "god"
code.
Yup, I have yet to see a problem that could not be solved without AOP. Of course these fads are common within this business, i.e. after AOP came DI, which is another great example of a solution looking for a problem, making it hard to reason about code in an IDE.
--
You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
> I agree with the skepticism about AOP but strongly disagree about DI.
I think that DI is one of the most important things to write modular and
testable code.
For what concerns AOP, I think I disagree with others, but perhaps it's a
matter of what we mean with AOP. For sure I don't use it at full power,
e.g. to do dramatic changes to existing code. From this respect, yet, AOP
can be dangerous because it's the classic very powerful tool by which you
can kill yourself. But limited to the proper scopes, such as transactions
and security (in addition to the cited logging), it's very good. It's true
that with this limited use it's more a tool to implement a pattern (proxy
/ decorator) rather than a programming paradigm.
PS I also like it in Spring to perform DI to beans not managed by Spring
with static weaving.
--
Fabrizio Giudici - Java Architect, Project Manager
Tidalwave s.a.s. - "We make Java work. Everywhere."
fabrizio...@tidalwave.it
http://tidalwave.it - http://fabriziogiudici.it
In general though I distrust and avoid AOP -- until it's really the only
alternative.
--
Jess Holle
In general though I distrust and avoid AOP -- until it's really the only alternative.
I have yet to see either a theoretical or real-world usage of AOP where it's not just a hack to deal with the lack of first-class & higher-kinded functions.
I agree with the skepticism about AOP but strongly disagree about DI.
LOL - and I'm going to explain why LOL :-) First, I don't disagree. In
particular, I'm still using Locator. In my code you'll find stuff such as:
private final Service service = Locator.find(Service.class);
or
private final Provider<Service> service =
Locator.createProviderFor(Service.class);
Locator is simple syntactic sugar about the NetBeans Platform Lookup. I'm
using this a lot in my Platform projects (guess that...) and Android (to
which I've adapted Lookup).
Some time ago (1/2 years? I don't recall precisely) there was a long flame
in the NetBeans Plaform mailing list because a guy accused the Platform to
be obsolete since there was no DI, etc.... At the time, I developed a
very simple adapter that makes it possible to replace the two above lines
with:
@Inject
private Service service;
@Inject
private Provider<Service> service;
I had some doubts because of the loss of 'final' (and I'm still struggling
to find a way to preserve it in a meaningful way), but OTOH I appreciate
the fact that now the code is also compatible with Spring and Guice. I
resisted for some time to Spring, but I've started using it more and more
in the past three years and to me now is a superior alternative to JEE.
Having code that is reused in different projects (NetBeans Platform,
Spring, Android) I appreciate the use of @Inject. Of course, with some
reflection trickery I could have Locator to work with Spring... but isn't
simpler @Inject?
While singletons have been declared an anti-pattern and can probably cost you a job interview just for mentioning it
--
You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To view this discussion on the web visit https://groups.google.com/d/msg/javaposse/-/J-hjwM_vCg4J.