Mahdi Yusuf

Mahdi Yusuf


Most Pressed Keys and Programming Syntaxes

Wednesday, September 7, 2011

I switch between programming languages quite a bit; I often wondered what happens when having to deal with the different syntaxes, does the syntax allow you to be more expressive or faster at coding in one language or another. I dont really know about that; but what I do know what keys are pressed when writing with different programming languages. 

This might be something interesting for people who are deciding to select a programming language might look into, here is a post on the answer to the aged question of: Which programming language should I learn?

As far as I can tell languages with a wider focused spread across the keyboard are usually syntaxes we usually associate with ugly languages (ugly to read and code). ex. shell and perl.

You might argue that the variables names being used will alter the results, but as most languages programming have conventions for naming but we can assume a decent spread for variable names. I don’t offer conclusions, just poorly layout the facts. Although the heat map does miss out on things like shift and caps. ex. in perl with the dollar sign. ($)

Whitespace hasn’t been taken into consideration (tabs and spaces) which would have been a cool thing to see. 

The data that was used to gather this information was spread amongst various popular Github projects. 

Javascript

Shell

Java

C

C++

Ruby

Python

PHP

Perl

ObjC

Lisp 

Lisp code here was written by Paul Graham.

References

  1. heatmap.js http://www.patrick-wied.at/projects/heatmap-keyboard/

Discussion


Tuesday, August 2, 2011


Evolution Of Computer Languages

Evolution Of Computer Languages

Discussion


Since I started this blog, I have gotten quite a few emails asking me “What programming languages do you recommend for X?” I often finding myself writing something along the lines of

I would honestly recommend python. Something about me being biased because I know and love it.  Usually say something about the competing technology with a back handed insult. Also if they are starting out I would recommend a language that enforces better OO (Object Orientated) practices than python, like Java (don’t hate me but it’s true).

Then I go on to say something like you should try to learn one of each language type compiled, scripting and functional language. Never pin hole yourself. Always try to be aware of the differences when encountering these languages 

Keep in tune with trends that appear in fields of interest (web development, mobile)  but you don’t have to learn every new “IT” language.

Keep reading the blog or else statement.

Kind Closing

Name goes here.

So I have decided to write this blog post to safe my readers time, as well as keep my sanity. Don’t get me wrong I love hearing from my readers. Its just I am writing the same email over and over.  You know who you are. Grr.

Again these are just my opinions and the only thing I do professionally is being a bad ass aside from writing code. 

Web Development

  • Dusty’s Pick - Python/Django
  • Dying Technology - PHP
  • Others - Ruby/Ruby on Rails

Why you ask? You learn design patterns like MVC which is the basis for django and ruby on rails. PHP is an ugly language hard to learn, but it does get the job done. I feel though these other technologies are growing and allow for easier and quicker development experience. 

Integrated Development Environment

  • Dusty’s Pick - Eclipse
  • Pro Bros - Vim/Emacs
  • Windows Boys - Notepad++

You should be a master in one of these. It increases your productivity as well as increased ease when coding in some languages. I would recommend for beginners Eclipse! Why? Because of Twilight and the fact that it has extensive plugin architecture that includes almost every development language. Older guys swear by Vim/Emacs, its has big learning curve but people swear by it afterwards. Notepad++ for your portable use and allows you to download it quick and to comfort zone for off site development. 

Compiled/Packaged Languages

  • Dusty’s Pick - Java
  • OS and Applications - C/C++
  • The Other C - C#

The reason I recommend Java easiest to learn quickly and it creates a clear and concise way to show the power of OO programming without the clutter and mess of syntax that C/C++ are known for. Now, on the other hand for “performance” reasons most programs you see are written in either C/C++  which have interesting ways about going compiling from the sources you will end up writing yourself which is a skill within itself. Writing make files and dependency management. So learning them for that added benefit is worth it. I don’t know much about C# but people I know love it so here is a generic Wikipedia link.

TL;DR

There is so much, where should I begin? Forget all that I say pick one and stick with it, until you can plan out how to solve every problem from start to finish with thinking crap how am I going to do that. Once you reach that level, switch languages. But always ask yourself how would I do it in that language, what about this one? YA DIGG?


Discussion



Copyright 2012 Mahdi Yusuf
Errrrday I be programmin' (oh and hustlin' too)