Many programming languages were designed to promote a certain style or way of working. Python, for example, strives to provide a single ‘obvious’ path to a solution for any common problem. At the other extreme Perl seeks to provide many different ways to do something. Ruby takes a curious middle ground by providing multiple solutions yet promoting only one or two conventions.
Community is also a big factor in the way computer languages are used, developed, and taught. Within the Ruby community the Ruby on Rails has raised awareness of the convention-over-configuration paradigm.
Having a variety of shortcuts such as those in Perl and PHP have proven useful when I’m in search of a quick and dirty solution. That is likely why Perl has been so popular for getting simple jobs done.
While language usage doesn’t always strictly follow the intended usage, there are examples indicating that design philosophy impacts outcomes:
- Java’s portable design has led to a widely
useddeployed virtual machine
- PHP web-focused design is likely a factor in its popularity for serving websites
- Python’s lean, easy-to-learn design has led to increased usage in programming courses
- Ruby and Rails time-saving advocacy of conventions has saved my coworkers and I time on several projects
Ultimately it is up to the software engineer to decide which road to take to get to the solution. Familiarity with the platform or style is another significant factor I’ve seen at work in the mind of individual engineers.
How about you? Do you have thoughts or experiences to share? If so please leave a comment.