Thursday, April 25, 2013

The NoSql mini revolution

Hi all,
the latest trend in the software industry is the big data and noSQL movement.
since today many applications provide services to a lot of clients and have problem in scaling more and more software vendor considering giving off the sql transactions and choose NoSQL DB.
But i think lately due to this revolution we have another small revolution that provide good back wind for the NoSQL movement - using NoSQL DB just becouse it's easier.
Using SQL DB is something that we use to it but it's not simple. you have to write SQL queries, optimize them and use data structure that very diffrent from your program.
SQL queries are not predictable, i had SQL queries that in some cases took 15min and some cases the all night. now you need to open the execution plan and start understanding how the database server is working.
So sometimes it's very easy to use NoSQL DB usually a document DB that provide you easy working API and simple work if you don't need complicated stuff. and you use it not for sharding just for convnience.
I think it's very refreshing and really contribute a lot for the big data revolution.

Saturday, April 20, 2013

What is the best language programming

I think programmers fight on this questions like football fans cheers there group.
more than this often languages that consider to be the best language like cobol after few years consider to be very problematic languages. i believe also that many good languages are not consider good since they don't have good PR. in this post i will try to tell my opinion about what is the best programming languages and write my criteria on it. as you will see, well you probably already guessing is not a world of black and white and the answers are not so deterministic, however, i think i can spread some light on this issue.
First is important to say that programming language is a tool and like any tool it depends on the task that you need to preform, not all the applications are the same so the language should be feet to the task that you need to preform. of course, that rich frameworks and strong community are also a good criteria for good language. there are some languages that very good in specific thing, for example, perl is very good in text processing. logic languages like prolog good in artificial intelligence and so on.
also when you talk about good languages the question is good in what?
C & C++ good in performance and optimization
VB consider to be good in rapid application development, but notice that languages that belong to the .NET framework limit you to windows so of course they have some advantage working on windows.
But i think the most important thing in programming language is a language that help the programmer not to write bad code. for example, C++ put all the responsibility on the programmer. I think it's not good, good code is a code that prevent the user who use it to make mistakes and guide him to write good separate code.
The disadvantage for this issue is that sometimes you need to write more code since this is the right way to do it. I think java is a great example for such language and this is why i think java is very good programming language. let me provide an example: in java we don't have pointer to function, if you wish to send pointer to function you need to create interface with one method, implement in a class and than this object will be the function itself. java do it since in java everything is an object. this is why java is a pure object oriented language. but sometimes it requires more work even for simple cases. this is why the JCP try to add more functional attributes to java. however, all the functional languages has very unclear syntax and i think we should be very careful on this issue.
so what is the best language, well if you wish to write big server enterprise applications on cross platform probably java is your answer. in places that you wish to avoid the overhead of java you may use other languages and integrate them in java. but i think the architectures of java keep there minds helping the programmers working in the right way.

Saturday, April 6, 2013

The cloud and JEE

Here is a nice presentation that i wrote about the new cloud agenda and what are the plans in the JEE area about this issue: https://www.dropbox.com/s/au9tltnopmhhyds/Cloud%20%26%20JEE.pptx?goback=%2Egin_4829427_false_im*5preapp_cs*5connections