Wednesday, March 18, 2015

What are the Main Weak Point of Java as a Programming Language?

Java is a useful language, has many strengths, is widely used, and is attractive early on when you are learning because it is consistent and predictable. Much good software has been written in Java. It even has an aesthetic appeal, as it has been designed with great care. Java's shortcomings are more subtle. Curiously, its problems involve issues that one might not even notice at all early on, or perhaps, for a long time -- and this is exactly why they are so serious. 

Java has a certain inherent inflexibility, partly in its technical details (such as a verbose syntax that can't be shortened easily), but also its culture does not encourage solutions to these shortcomings, but rather an embrace of structure and consistency, often at the expense of clarity, maintainability, and flexibility.

The bottom line is that compared to most other languages, Java code is more heavyweight and less agile, and longtime Java programmers often have a bias toward over-engineering.

1) It's relatively verbose and many things are clumsy to do in the language directly, e.g. work with SQL, building a DSL, working with functions, regular expressions, etc. The amount of plumbing code you have to write to get stuff done is often pretty bad. Which is also one of the reasons there are so many frameworks for Java. The main reasons for this are probably static typing and it's inheritance from C++.

2) The officially pushed frameworks were designed by committees with lots of mingling of powerful companies trying to make a buck off the language (which means selling it to big enterprises which, right, are the shining example of how we should all do software development). That has led to awful over-engineered technologies like J(2)EE, big complicated application servers and a decennium worth of bad examples to both learning programmers using Java and programmers using other languages to point at.

# I believe that focusing on being the number 1 solution for enterprises and trying to monetize of the language has been particularly disastrous. That this was done with some degree of fairness in mind (make standards so that vendors can compete openly) only made the bloat worse.

# When many of these technologies were designed, many people believed that the future of software development was in commoditization. Components, not languages, high level design, not coding, were seen as the future (you'll still run into plenty of people who think you should more often than not buy rather than build, but unlike a decade ago, this is not taken for granted by the majority anymore). This was the time of the 4th generation languages (though already declining), UML roundtrip tools, WS-*, etc, and Java's ecosphere formed in that period.

3) Its an established, middle-aged language that is popular by Fortune 500 companies; you wouldn't want to be seen with it by your brogrammer friends!

Also like to add:
one of the issues I've run into with java is managing a complex type hierarchy.  It's a pain because rearranging the hierarchy in any way generally means updating dozens of classes to make sure that they provide all the necessary functions.  "Design patterns" generally make this worse, and generate code bloat.


5 Things a Java Developer Should Consider This Year

This post is about 5 things that I am planning to do this year. I have created it for me to track my progress then thought it can be a good direction for anybody similar.

1. Create an application using a NoSQL Data store and connect it with Java

If you have yet not understood the NoSQL databases its the best time. Lots of choices on the NOSQL side, may be MongoDB or Hadoop can be a starting point. We can create applications using Spring Data or the native Java adapters to connect to the Data Store.

2. Get the first app on Java PaaS on Cloud and ask your 5 friends to use it.

You have many platforms available including Openshift backed by JBoss and Redhat , CouldFoundry backed by Spring source and VMware. Cloud is the future of application deployments and Software as service gaining more popularity. From a developer point of view nothing really changes apart from the configurations and deployment.

3. What really is Software Design?

Read the GOF Design Pattern catalog and Search your project for the usage of it. If you are not using them check if you have similar patters. If you have a Java enterprise application you can check for Java EE patterns. Take a existing use case and think of possible alternative implementations.

4. Learn a new Programming Language and create a sample project

I think here you have 2 broad choices, Ruby or a JVM functional language. There are a number of functional languages available. It will help you become a polygot programmer.

5. Contribute to the community

You should be doing it already if not it is the time to start. There are a number of ways including Community Forums, Stack overflow or write a blog
on how your leanings.

its Published at DZone

Top Resources on Wordpress Customization

The most comprehensive resource is the WordPress codex at, but it can be difficult to get into. Depending on the level you're at, you could try the wpbeginner blog or look at Thord Daniel Hedengren's books, which go into more depth. Smashing magazine also has a WordPress section with lots of helpful & clear tutorials.

You've gotten a lot of really decent answers with some of the best sites out there.  I can't really top their answers.  However, I have several hundred (migrating from Delicious still) bookmarked recources in my Pearltrees account.Categorized by sub category like tutorials, templates, plugins, coding, etc... (Like I said, I am still migrating over from Delciious and I am constantly adding more resources).

The best way to learn is simply to mess with it. Set up a Wordpress as a sandbox. Get down there into the code. Make mistakes. The links others have posted are great, and good to keep open in another browser window as you work, but there's no substitute for getting in there and doing it. Use your browser's inspect element feature often. If you understand html and have good graphic skills you'll get it in no time.

It all depends on your learning style. The stuff was very helpful for me when starting out (Go ahead and buy the pdf of the book. It will definitely be worth it). The biggest help for me was the WordPress codex. It is tough to get into at first, but once you do there won't be anything you can't quickly figure out from the codex.

Top Resources on Wordpress Customization

Finally, I like the smashing magazine WordPress section as well as helpful tutorials on tutsplus ( and other blogs.  However these shouldn't be used for understanding WordPress. They should only be used for giving you ideas on different things and approaches that can be used with WordPress. 
Most likely your best resource is going to be the Wordpress Codex followed closely by trial and error. Also make sure to Google any crazy problem you're having.  No matter how ridiculous there's better than a 50% chance someone else has encountered it and written up their solution!

However, I'm going to shamelessly throw my own site into the mix (since it's not  ad supported or anything I can do this without any guilt!) - We try to  keep an ongoing list of information we've found useful in modifying  Wordpress sites for ourselves and customers. We've categorized posts by user experience level so that will make for some good background reading to get more familiar.


Top 10 Responsive Web Design Testing Tools

Web design tools are mostly used to test many resolutions of a website for designers. All web design testing tools have great responsive features.
Web design tools are a critical part of the responsive web design procedure. The aim of using a responsive layout is to make the website work on any type of device, but without mass testing it’s not possible to know for sure how the site is conducting in different situations. Responsive web design tools word consists of a mix of flexible grids, images and layouts and an intelligent use of CSS media queries. When the end-user switches from their laptop over to their iPad, the website being looked should automatically switch to image size, particular resolution and scripting abilities.


FROONT is a web-base tool that runs in your browser and allows you to see what you’re designing in the same way users will. Present comps online on all devices. Instead of giving static images to your developer, provide them with fully functional HTML and CSS code.

responsive-web-designing-testing-tools2 is a pixel perfect responsive design testing tool that lets you test your responsive design on 30 different device resolutions presets or check with custom resolution by resizing window.

Viewport Resizer

Viewport resizer is a browser-based tool to test any website’s responsiveness. Just save the bookmarklet, go to the page you want to test, click on your created bookmarklet and check all kinds of screen resolutions of the page.

Opera Mobile Emulator

Developing for mobile phones and tablets becomes a breeze. The emulator is super simple to install and lets you do serious mobile development from your desktop.


ReView is a dynamic viewport system that provides efficient responsive web design viewing choice. Developed in pure JavaScript according to the principles of core (mobile) first progressive enhancement. The system provides both initial ‘Opt-In’ and ‘Opt-Out’ responsive design states.


This is where Jetstrap comes in. It’s a visual interface-building tool for the Bootstrap framework. It provides a way for designers to quickly assemble rapid prototypes in the browser by dragging and dropping UI components onto a canvas.

Adobe Edge Inspect CC

Adobe Edge lets you preview and inspect web designs on devices.

The Responsive Calculator

The Responsive Calculator aids the web designers to convert PSD pixel to percent during the start of your responsive website. All you need to do is simply insert a few specifications and you’re done with turning your web page pixels into percentages.


Akamai Mobitest is a free tool created to raise awareness to Mobile Web Performance. Simply enter a URL, choose one of the device/location options above, and hit run. Your page will be loaded on a real mobile device, and you’ll receive rich detail about how long it took to load, including waterfall charts and video recording of the page load.

I am mobile

I am mobile is another good responsive design testing tool that test your web sites on various viewports and also gives you some tips to make your websites more mobile friendly.


Responsinator helps website makers quickly get an indication of how their responsive site will look on the most popular devices Responsivator lets you test your web applications iphone and ipad, kindle and Android platform. It also shows your site both in portrait and landscape mode.


Google Code To Close Down!

  The search giant is closing down Google Code because there are other alternatives available on the web. 'Google Code' was a new competitive alternative to SourceForge for open-source project hosting.
Google, Google Code , Github, Google spam and abuse, The end of Google Code, SourceForge,  open-source project hosting, developers

Google launched the project in 2006 because it was unhappy with the "limited" options available to the open source community. But since launch in 2006, it's seen as a "wide variety of better project hosting services" such as GitHub and Bitbucket rise to the forefront.

In May 2013, Google also shut down Google Code Download services. To "meet developers where they are," Google itself has transferred nearly a thousand of its own open-source projects to the popular coding repository GitHub.

Github isn't just a place to download, it has become a fantastic and integral part of the development process in a way that neither Sourceforge nor Google Code ever truly offered or enabled. The migration of developers to new services has left Google Code dealing with a deluge of spam and abuse.

The end of Google Code is coming in a timed approach. As of 12 March all new project creation has been disabled. On 24 August, the site goes read-only and the site will effectively disappear on 25 January , 2016.