Pages

Wednesday, November 4, 2009

Programming language community index 2009

This is the index from Tiobe website of top programming languages until 2009


Position
Oct 2009
Position
Oct 2008
Delta in Position
Programming Language
Ratings
Oct 2009
1
1

Java
18.718%
2
2

C
16.891%
3
5

PHP
10.390%
4
3

C++
9.911%
5
4

(Visual) Basic
8.729%
6
8

C#
4.433%
7
6

Python
3.914%
8
7

Perl
3.776%
9
11

JavaScript
3.033%
10
10

Ruby
2.458%
11
9

Delphi
2.140%
12
13

PL/SQL
1.020%
13
49

Objective-C
0.902%
14
14

SAS
0.805%
15
16

Pascal
0.669%
16
20

ABAP
0.661%
17
19

Lisp/Scheme
0.605%
18
22

MATLAB
0.577%
19
12

D
0.570%
20
15

Lua
0.527%



The long term trends for the top 10 programming languages can be found in the line diagram below.

Predicting trends from this information
+ Some traditional languages as Java, C is down (not too much). These languages will not die (at least in 10 years later) because of the need to develop/maintain enterprise application/ embedded systems.
+ Scripting languages like Ruby, Python are trends at this time.
+ PHP still keeps its position. There are many open source from PHP community with great features. It can offer the cheapest solutions to develop application for small/medium organizations.
+ Objective C is still new but a hot trend because of the need to develop applications on Mac and iPhone.

Wednesday, October 28, 2009

Ruby On Rails

I've read this story in "Ruby On Rails for dummies" ebook. It's interesting! I was impressed. He he!
-----------------------------------------------------------------------
Once upon a time, there were three little programmers. The programmers wrote code for the World Wide Web — code to give users access to a company’s database.

The first programmer was in a hurry to write her code. She wrote simple code as quickly as she could. The second programmer wasn’t quite in such a hurry. She used the traditional Waterfall methodology — a multistep process involving analysis, design, coding, testing, and deployment. The third programmer was careful and industrious. She used a heavyweight persistence framework such as Enterprise JavaBeans. She built her software to cover every possible contingency and to accommodate any future need.

As you might expect, this story has a big bad wolf. The wolf might have been a manager, a client paying for the software’s creation, or a customer attempting to access the company’s Web site. The wolf went in reverse order, visiting the careful and industrious programmer’s Web site first.



Unfortunately, the wolf couldn’t log onto the industrious programmer’s site. Instead, he got the message: “This site is under construction.” The careful, industrious programmer had completed only half of her work. The heavyweight persistence framework was difficult to learn and burdensome to use.
Needless, to say, the wolf huffed and he puffed, and he blew the Web site down.

code in place, the second programmer couldn’t easily make major changes. All she could do was fix bugs and make the code run a bit faster. She promised that she’d update the requirements for version 2.0 of the system. But the wolf was impatient. He huffed and he puffed, and he blew the Web site down.

In desperation, the wolf visited the first programmer’s Web site. She had built the site quickly and easily, using Ruby on Rails. In fact, her first prototype had been up and running in two days. Her co-workers had tested the prototype, critiqued the prototype’s features, and told her what they expected in the next prototype.

The next prototype was ready sooner than anyone expected. Once again, co-workers tested the prototype, suggested improvements, and helped the programmer to refine her evolving requirements.

After several brief rounds of coding and testing, the Web site was ready for public use. The wolf enjoyed visiting the site because the site’s look and feel reflected the way it had been designed. The site was nimble, intelligent, and easy to use. The site did the kinds of things the wolf wanted it to do because the programmer had gotten feedback on each prototype. Everyone was happy . . . for a while anyway.

To repay the Ruby on Rails programmer, the wolf offered to repair her house’s leaking roof. Unfortunately, the wolf had a nasty accident. While he was working on the roof, he fell into the chimney and landed directly into a pot of boiling water. Goodbye, wolf!

But the Ruby on Rails programmer was happy. She had created a great Web site. And with all the time she’d saved using Ruby on Rails, she was able to climb up to the roof and repair the leak herself.
The end.

Thursday, October 8, 2009

Research topic for this month: iPhone AR

AR is not a new technology nowadays. However, its applications are very interesting and useful. To adapt the market trend, I decide to have a quick look into AR technology on iPhone.

Below is a very interesting demo that I've found on Internet.




Some quick notes for iPhone AR technology

Third party providers provide us solution to build iPhone AR app



1. iPhone ARKit: open source iphone AR
Ref links:
http://github.com/zac/iphonearkit/
http://www.iphonear.org/
http://code.google.com/p/iphonearkit/


2. SREngine
SREngine stands for Scene Recognition Engine, which is a software engine to recognize static scenes of architectures, streets, posters, rooms, and so on. Due to the ability to specify what user is.



3. ARToolKit v4.4 iPhone
The ARToolKit v4.4 is the first fully-featured AR framework that supports native operation on Apple iPhone, which lets you create applications with sample real world imagery captured with your iPhone camera, and merges them with software-generated 3D objects. The ARToolKit is also well integrated with the accelerometer of the iPhone, which allows it to automatically detect movements from the iPhone, and impose those movements on 3D images instantaneously.


4. D'Fusion Mobile - a solution provided by T-Immersion company
(http://demos.t-immersion.com/)
D’Fusion mobile will operate seamlessly on Symbian and Windows devices, with iPhone and Android support following thereafter. Providing a simple and user friendly experience on mobile phone Total Immersion offers turn key solutions adapted to your needs. Put your smartphone in front of a marker and get a unique 3D Augmented Reality experience!


5.Metaio Mobile
Link: http://www.metaio.com/products/mobile/

Unifeye Mobile is a glimpse of the (virtual/real) future - through the viewfinder of your cell phone's camera! With Unifeye Mobile, metaio is developing the first fully-integrated Augmented Reality software for mobile devices.

Latest news from Apple with AR technology:

Link: http://arstechnica.com/apple/news/2009/07/augmented-reality-coming-to-iphone-with-iphone-os-31.ars

Developers should be able to use official APIs in iPhone OS 3.1 to create so-called "augmented reality" apps for the iPhone 3GS, according to comments from one developer. Already, developers are trying to find uses for such apps

Tuesday, September 29, 2009

Social network vs Community site

Yesterday, when I have to research a technical solution for a new prospect, I asked some questions to Mr. Hong - an excellent Technical manager in our company - about approaches to build current system for a big community. He tells me many good points and consult me a lot. However, I found another lack thing in my knowledge: what are differences between Online Community site and Social network? For a long time, I use the terms "online community" and "social network" interchangeably.

After trying searching and digging into these concepts, I found some points help me to understand them more clearly.
A social network is a social structure made of individuals (or organizations) called "nodes," which are tied (connected) by one or more specific types of interdependency, such as friendship, kinship, financial exchange, dislike, sexual relationships, or relationships of beliefs, knowledge or prestige.
Social network analysis views social relationships in terms of network theory about nodes and ties. Nodes are the individual actors within the networks, and ties are the relationships between the actors. The resulting graph-based structures are often very complex. There can be many kinds of ties between the nodes. Research in a number of academic fields has shown that social networks operate on many levels, from families up to the level of nations, and play a critical role in determining the way problems are solved, organizations are run, and the degree to which individuals succeed in achieving their goals.

(From http://en.wikipedia.org/wiki/Social_network)

A virtual community, e-community or online community is a group of people that primarily interact via communication media such as newsletters, telephone, email, internet social network service or instant messages rather than face to face, for social, professional, educational or other purposes.

(http://en.wikipedia.org/wiki/Online_community)

These definitions may make us more confuse. However, in my opinion, these are some things that we should consider:
1. Target of a social network is "building the social structure". Target of an online community site is: "building communication tools of a community". Anyways, in many cases the boundary is not always clear.
2. All activities of a user in a social network must be attached with "social nodes". That means "a user joined to a social network must find and expand his/her relationships". Without doing this, he/she can not see any activities are happening. This is the strongest point of social network ("encouraging and forcing making relationships"). In online community site, this is not required. You can join a community site (like Community Server forum) and can see all happening activities without making friends with anyone. (I found this point in this article).

I am waiting for your comments and sharings about these concepts!

Wednesday, September 23, 2009

Meditation Garden iPhone app and SiO2


I love this app. It inspires me to develop app with SiO2 game engine!

MeditationGarden from SIO2 Interactive on Vimeo.