Populiarity of programming languages

Angelegt von suung Mon, 04 Oct 2010 13:35:00 GMT

Reading niklas' article , i did a research, because i was pretty sure to have seen a chart, that shows PHP far before the next language (i guess C).


Now i give you some links:


1) Wikipedia explains, how populiarity of languages is calculated:

  • It is difficult to determine which programming languages are most widely used, and what usage means varies by context. One language may occupy the greater number of programmer hours, a different one have more lines of code, and a third utilize the most CPU time. Some languages are very popular for particular kinds of applications. For example, COBOL is still strong in the corporate data center, often on large mainframes; FORTRAN in engineering applications; C in embedded applications and operating systems; and other languages are regularly used to write many different kinds of applications.
    
    Various methods of measuring language popularity, each subject to a different bias over what is measured, have been proposed:
    
    counting the number of job advertisements that mention the language[1]
  • the number of books sold that teach or describe the language[2]
  • estimates of the number of existing lines of code written in the language—which may underestimate languages not often found in public searches[3]
  • counts of language references (i.e., to the name of the language) found using a web search engine.
  • counting the number of projects in that language on SourceForge and FreshMeat.[4]

    2) Langpop.com gives you a lot of different graphs, interesting!
    3) The technical university Wien has a table

Super Simple Message Queuing

Angelegt von niklas Mon, 02 Aug 2010 00:08:00 GMT

It's a fu**ing simple publish/subscribe implementation:

Preparation

sudo gem install amqp # gem that implements AMQP (see link below)
sudo apt-get install rabbitmq-server # super-fast MQ server, written in Erlang/OTP

First Process (subscriber)

Save as subscriber.rb
require 'rubygems'
require 'mq'

EM.run {
  queue = MQ.new.queue('foo')
  queue.subscribe do |data|
    $stderr.puts "[#{Time.now}] RECEIVED: #{data.inspect}"
  end
}

Second Process (publisher)

Save as publisher.rb
require 'rubygems'
require 'mq'

EM.run {
  queue = MQ.new.queue('foo')
  10.times do |i|
    queue.publish("Message ##{i}")
  end
}

Run subscriber

Run this:
ruby subscriber.rb

Run publisher

Fire up a new terminal and run:
ruby publisher.rb

Output of subscriber

The publisher won't give you any output, but the subscriber will print each message received through the queue to stderr:
[Mon Aug 02 02:02:55 +0200 2010] RECEIVED: "Message #0"
[Mon Aug 02 02:02:58 +0200 2010] RECEIVED: "Message #1"
[Mon Aug 02 02:03:01 +0200 2010] RECEIVED: "Message #2"
[Mon Aug 02 02:03:05 +0200 2010] RECEIVED: "Message #3"
[Mon Aug 02 02:03:08 +0200 2010] RECEIVED: "Message #4"
[Mon Aug 02 02:03:11 +0200 2010] RECEIVED: "Message #5"
[Mon Aug 02 02:03:14 +0200 2010] RECEIVED: "Message #6"
[Mon Aug 02 02:03:17 +0200 2010] RECEIVED: "Message #7"
[Mon Aug 02 02:03:20 +0200 2010] RECEIVED: "Message #8"
[Mon Aug 02 02:03:23 +0200 2010] RECEIVED: "Message #9"
[Mon Aug 02 02:03:26 +0200 2010] RECEIVED: "Message #10"

Conclusion

REALLY light weight message queue for local processes, based on a open standard.