Thursday, July 3, 2014

What is your favorite open source project?

I do spend at-least couple of hours everyday reading about what is going on in Java community to be aware where we are heading and what is hot these days.

Because in Java land everyday new frameworks, new libraries came out and few of them might be really good and can drastically simplify the work you are doing. So I thought it is good to know about these new and hot stuff even if you are not going to use them in your official project.

In the last few years it looks like frameworks craze is gone and Programming Languages era begins. Ceylon, Kotlin, XTend, Go, Dart, Swift etc etc...every BIG company is trying to invent their own programming language.

But I feel like again things got changed in 2014, now everyone talks about MicroServices and Platform.

Based on my understanding, Platform means a generic infrastructure tailored to solve one type of domain problem by using one or more programming languages (Polyglot programming) based on the need. You no need to stick to one programming language.

And then I am seeing on web, more and more companies started calling their "framework" as a "platform" which makes me wondering when this framework turned into Platform.

To tell this satirically I posted the following tweet on twitter.

"Seems frameworks & programming languages craze is gone..Now if u want to sound like a model IT developers spel Platform as much as possible."

Interestingly this turned into another interesting discussion https://twitter.com/sivalabs/status/484369820805124096 where my favorite twitter buddies participated.

Now the topic of interest is "Whether writing a book is good option or not. If yes, writing on what? Spring, SQL, JOOQ???

My friend @lukaseder feels instead of writing about Spring, better to write on SQL. And @petrikainulaine expressed his opinion that "he is not that passionate about SQL" which is my opinion too.

Twitter isn't nice place for long discussion because of 140 char limit. So I created this post on my blog so that we can continue on this topic more elaborately.

First is writing a book a good option?

Yes, if you are passionate about technology and the topic you are writing about. No, if you are writing just to earn money. No, if you don't want to spend your weekends also writing content thinking you could improve content within the page limit :-).

And my friend @dr_pompeii brought up another issue "Piracy". Yes, that's one of the problem. You can get a pirated e-copy of most of the books in 2 months.

On what topic should you write? Better to write on SQL instead of Spring?
Here I disagree with LukasEder :-). I write on topics which I am interested in and have good understanding. And let me shamelessly agree that I am not very good at SQL and I can't write a book on it which is more interesting than any of the existing SQL books. And most importantly I don't have a passion on SQL.

Promoting the articles on popular website might not be that difficult. I can write couple of posts about JavaEE 7 and let Reza do the promoting part :-)

I like Spring not just because of its popularity, I do learn how to design and code in a better by going through its source code. I learn how to write a good abstraction layer by looking into various Template classes and Adapters in Spring source code.

At time I also feel like I am after this Spring framework for a very long time and want to learn something different and more interesting.

So if it is not Spring, what is a good open source project that you suggest worth reading its source code and learn something good?
I thought of taking a deep look into Jersey (JAX-RS) and SLF4J libraries.

What would you suggest? Any ideas?


4 comments:

  1. "I do learn how to design and code in a better by going through its [Spring's] source code"

    So you fancy playing he odd game of Spring API Bingo? ;-)

    Read jOOQ's source code. It's awesome and you'll start loving SQL, promised ;-) Or maybe, it'll just confirm for you that SQL and JDBC is wicked. But, why not have a very close look at the Java 8 Streams API implementation? It's elegant and massive, a real challenge.

    ReplyDelete
    Replies
    1. I am not a big fan of their Looooooooooooooooooong descriptive tongue twisting classnames :-)
      What I mean by learning from Spring source code is there are some good Template pattern implementations, exception handling mechanism and lot of utility methods for dealing with Files, Classpath/URL Resources etc.

      I thought of learning Java8 new stuff like Lambdas/Streams. But I thought why not learn Groovy which is far more powerful and feature rich.

      I feel like Java8 new features are a small subset of Groovy. Isn't it?

      Delete
    2. Your Java8 program to generate Spring like class names is hilarious :-)

      Delete
  2. Hi siva i am fresh developer..how can i come to know new things happening in java community..Is there any subscription i can do so that i can get updates...

    Please suggest..between i read some of your posts they are really interesting

    Thanks in advance
    Chandu

    ReplyDelete